diff --git a/README.md b/README.md index a94cec0..27994cb 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,10 @@ This project generates a .jar with a couple of Spring Data repositories and asso I have had trouble getting this structure to work, so this project is intended to simplify things as much as possible to establish how best to do it. +The project is configured to *not* create the schema or tables. It assumes that: +* You have a MySQL instance. Modify the connection settings in `config/application.yml` as appropriate. +* You have two schemas in your database and tables, as can be set up using `db/schema.sql`. + It's built with Maven, so from the command line you can run a full build (including tests): mvn clean install - diff --git a/config/application.yml b/config/application.yml new file mode 100644 index 0000000..f5374ab --- /dev/null +++ b/config/application.yml @@ -0,0 +1,33 @@ +logging: + level: INFO + +spring: + datasource: + url: jdbc:mysql://localhost/foo_schema + username: root + password: d4t4b4s3sForLif3 + driverClassName: com.mysql.jdbc.Driver + test-on-borrow: true + test-while-idle: true + validation-query: select 1; + maxActive: 1 + jpa: + show-sql: false + generate-ddl: false + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL5InnoDBDialect + ddl-auto: validate + hbm2ddl: + import_files: + +bar: + datasource: + url: jdbc:mysql://localhost/bar_schema + username: root + password: d4t4b4s3sForLif3 + driverClassName: com.mysql.jdbc.Driver + test-on-borrow: true + test-while-idle: true + validation-query: select 1; + maxActive: 1 diff --git a/db/schema.sql b/db/schema.sql new file mode 100644 index 0000000..218ef73 --- /dev/null +++ b/db/schema.sql @@ -0,0 +1,17 @@ +DROP SCHEMA IF EXISTS `foo_schema`; +CREATE SCHEMA `foo_schema` DEFAULT CHARACTER SET utf8 ; +USE `foo_schema`; +CREATE TABLE foo ( + ID bigint NOT NULL AUTO_INCREMENT, + Name varchar(5), + PRIMARY KEY (ID) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +DROP SCHEMA IF EXISTS `bar_schema`; +CREATE SCHEMA `bar_schema` DEFAULT CHARACTER SET utf8 ; +USE `bar_schema`; +CREATE TABLE bar ( + ID bigint NOT NULL AUTO_INCREMENT, + Name varchar(5), + PRIMARY KEY (ID) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/pom.xml b/pom.xml index 2b09dc1..b621fc1 100755 --- a/pom.xml +++ b/pom.xml @@ -6,233 +6,56 @@ com.sctrcd multids-demo - 1.0.0-SNAPSHOT - Spring-data multiple datasource demo + 2.0.0-SNAPSHOT + Multiple data sources with Spring Boot and SpringData JPA jar - A application demonstrating how to use Spring Data repositories with multiple datasources. - + + org.springframework.boot + spring-boot-starter-parent + 1.3.1.RELEASE + + + - 1.7 + 1.8 UTF-8 - 3.2.5.RELEASE + UTF-8 - - - Version99 - Version 99 Does Not Exist Maven repository - - default - http://version99.qos.ch/ - - - - - - - org.slf4j - slf4j-api - 1.6.4 - - - commons-logging - commons-logging - 99-empty - - - org.slf4j - slf4j-log4j12 - 1.6.4 - - - org.slf4j - jcl-over-slf4j - 1.6.4 - - - log4j - log4j - 1.2.16 - - - - - - - - org.springframework - spring-context-support - ${org.springframework.version} - - - - org.springframework.data - spring-data-jpa - 1.4.2.RELEASE - - - - - org.springframework - spring-orm - ${org.springframework.version} - - - - - org.springframework - spring-oxm - ${org.springframework.version} - - - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - org.springframework - spring-web - ${org.springframework.version} - - - - - org.springframework - spring-test - ${org.springframework.version} - test - - - - org.hibernate - hibernate-core - 4.0.1.Final - - - org.hibernate - hibernate-entitymanager - 4.0.1.Final - - - org.hibernate - hibernate-commons-annotations - 3.2.0.Final - - - org.hibernate.javax.persistence - hibernate-jpa-2.0-api - 1.0.1.Final - - - - javax.validation - validation-api - 1.0.0.GA + org.springframework.boot + spring-boot-starter-data-jpa - org.hibernate - hibernate-validator - 4.2.0.Final + mysql + mysql-connector-java - org.hibernate - hibernate-ehcache - 4.0.0.Final - - - - org.hsqldb - hsqldb - 2.2.9 - - - - cglib - cglib-nodep - 2.2.2 - - - - commons-dbcp - commons-dbcp - 1.4 - - - commons-beanutils - commons-beanutils - 1.8.3 - - - - org.slf4j - slf4j-api - 1.6.4 - - - commons-logging - commons-logging - 99-empty - - - org.slf4j - slf4j-log4j12 - 1.6.4 - - - org.slf4j - jcl-over-slf4j - 1.6.4 - - - log4j - log4j - 1.2.16 - - - - junit - junit - 4.8.1 - + org.projectlombok + lombok + 1.16.6 provided - org.hamcrest - hamcrest-all - 1.1 + org.springframework.boot + spring-boot-starter-test test - - org.mockito - mockito-all - 1.8.4 - test - - - - - src/main/resources - - + + org.apache.maven.plugins + maven-eclipse-plugin + + true + true + + maven-compiler-plugin 2.3.2 @@ -241,6 +64,10 @@ ${java.version} + + org.springframework.boot + spring-boot-maven-plugin + diff --git a/src/main/java/com/sctrcd/multidsdemo/BarConfig.java b/src/main/java/com/sctrcd/multidsdemo/BarConfig.java new file mode 100644 index 0000000..4cf12e6 --- /dev/null +++ b/src/main/java/com/sctrcd/multidsdemo/BarConfig.java @@ -0,0 +1,49 @@ +package com.sctrcd.multidsdemo; + +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@EnableJpaRepositories( + entityManagerFactoryRef = "barEntityManagerFactory", + transactionManagerRef = "barTransactionManager", + basePackages = { "com.sctrcd.multidsdemo.bar.repo" }) +public class BarConfig { + + @Bean(name = "barDataSource") + @ConfigurationProperties(prefix="bar.datasource") + public DataSource barDataSource() { + return DataSourceBuilder.create().build(); + } + + @Bean(name = "barEntityManagerFactory") + public LocalContainerEntityManagerFactoryBean barEntityManagerFactory( + EntityManagerFactoryBuilder builder, + @Qualifier("barDataSource") DataSource barDataSource) { + return builder + .dataSource(barDataSource) + .packages("com.sctrcd.multidsdemo.bar.domain") + .persistenceUnit("bar") + .build(); + } + + @Bean(name = "barTransactionManager") + public PlatformTransactionManager barTransactionManager( + @Qualifier("barEntityManagerFactory") EntityManagerFactory barEntityManagerFactory) { + return new JpaTransactionManager(barEntityManagerFactory); + } + +} diff --git a/src/main/java/com/sctrcd/multidsdemo/FooConfig.java b/src/main/java/com/sctrcd/multidsdemo/FooConfig.java new file mode 100644 index 0000000..d05802e --- /dev/null +++ b/src/main/java/com/sctrcd/multidsdemo/FooConfig.java @@ -0,0 +1,52 @@ +package com.sctrcd.multidsdemo; + +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@EnableJpaRepositories( + entityManagerFactoryRef = "entityManagerFactory", + basePackages = { "com.sctrcd.multidsdemo.foo.repo" }) +public class FooConfig { + + @Primary + @Bean(name = "dataSource") + @ConfigurationProperties(prefix="spring.datasource") + public DataSource dataSource() { + return DataSourceBuilder.create().build(); + } + + @Primary + @Bean(name = "entityManagerFactory") + public LocalContainerEntityManagerFactoryBean entityManagerFactory( + EntityManagerFactoryBuilder builder, + @Qualifier("dataSource") DataSource dataSource) { + return builder + .dataSource(dataSource) + .packages("com.sctrcd.multidsdemo.foo.domain") + .persistenceUnit("foo") + .build(); + } + + @Primary + @Bean(name = "transactionManager") + public PlatformTransactionManager transactionManager( + @Qualifier("entityManagerFactory") EntityManagerFactory entityManagerFactory) { + return new JpaTransactionManager(entityManagerFactory); + } + +} diff --git a/src/main/java/com/sctrcd/multidsdemo/MultiDsApplication.java b/src/main/java/com/sctrcd/multidsdemo/MultiDsApplication.java new file mode 100644 index 0000000..bc3fff3 --- /dev/null +++ b/src/main/java/com/sctrcd/multidsdemo/MultiDsApplication.java @@ -0,0 +1,13 @@ +package com.sctrcd.multidsdemo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MultiDsApplication { + + public static void main(String[] args) { + SpringApplication.run(MultiDsApplication.class, args); + } + +} diff --git a/src/main/java/com/sctrcd/multidsdemo/bar/domain/Bar.java b/src/main/java/com/sctrcd/multidsdemo/bar/domain/Bar.java new file mode 100644 index 0000000..788dfd4 --- /dev/null +++ b/src/main/java/com/sctrcd/multidsdemo/bar/domain/Bar.java @@ -0,0 +1,29 @@ +package com.sctrcd.multidsdemo.bar.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Entity +@Getter +@Setter +@ToString +@NoArgsConstructor +public class Bar { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column + private Long id; + + @Column + private String name; + +} diff --git a/src/main/java/com/sctrcd/multidsdemo/integration/repositories/bar/BarRepository.java b/src/main/java/com/sctrcd/multidsdemo/bar/repo/BarRepository.java similarity index 55% rename from src/main/java/com/sctrcd/multidsdemo/integration/repositories/bar/BarRepository.java rename to src/main/java/com/sctrcd/multidsdemo/bar/repo/BarRepository.java index bbc97b7..689f0db 100644 --- a/src/main/java/com/sctrcd/multidsdemo/integration/repositories/bar/BarRepository.java +++ b/src/main/java/com/sctrcd/multidsdemo/bar/repo/BarRepository.java @@ -1,8 +1,8 @@ -package com.sctrcd.multidsdemo.integration.repositories.bar; +package com.sctrcd.multidsdemo.bar.repo; import org.springframework.data.jpa.repository.JpaRepository; -import com.sctrcd.multidsdemo.domain.bar.Bar; +import com.sctrcd.multidsdemo.bar.domain.Bar; public interface BarRepository extends JpaRepository { diff --git a/src/main/java/com/sctrcd/multidsdemo/domain/bar/Bar.java b/src/main/java/com/sctrcd/multidsdemo/domain/bar/Bar.java deleted file mode 100644 index 81337d0..0000000 --- a/src/main/java/com/sctrcd/multidsdemo/domain/bar/Bar.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.sctrcd.multidsdemo.domain.bar; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -@Entity -public class Bar { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column - private Long id; - - @Column - private String name; - - public Bar() { - } - - public Bar(String name) { - this.name = name; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - -} diff --git a/src/main/java/com/sctrcd/multidsdemo/domain/foo/Foo.java b/src/main/java/com/sctrcd/multidsdemo/domain/foo/Foo.java deleted file mode 100644 index 4644aca..0000000 --- a/src/main/java/com/sctrcd/multidsdemo/domain/foo/Foo.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.sctrcd.multidsdemo.domain.foo; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -@Entity -public class Foo { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column - private Long id; - - @Column - private String name; - - public Foo() { - } - - public Foo(String name) { - this.name = name; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - -} diff --git a/src/main/java/com/sctrcd/multidsdemo/foo/domain/Foo.java b/src/main/java/com/sctrcd/multidsdemo/foo/domain/Foo.java new file mode 100644 index 0000000..d13a323 --- /dev/null +++ b/src/main/java/com/sctrcd/multidsdemo/foo/domain/Foo.java @@ -0,0 +1,29 @@ +package com.sctrcd.multidsdemo.foo.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Entity +@Getter +@Setter +@ToString +@NoArgsConstructor +public class Foo { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column + private Long id; + + @Column + private String name; + +} diff --git a/src/main/java/com/sctrcd/multidsdemo/integration/repositories/foo/FooRepository.java b/src/main/java/com/sctrcd/multidsdemo/foo/repo/FooRepository.java similarity index 55% rename from src/main/java/com/sctrcd/multidsdemo/integration/repositories/foo/FooRepository.java rename to src/main/java/com/sctrcd/multidsdemo/foo/repo/FooRepository.java index f2689ff..7538214 100644 --- a/src/main/java/com/sctrcd/multidsdemo/integration/repositories/foo/FooRepository.java +++ b/src/main/java/com/sctrcd/multidsdemo/foo/repo/FooRepository.java @@ -1,8 +1,8 @@ -package com.sctrcd.multidsdemo.integration.repositories.foo; +package com.sctrcd.multidsdemo.foo.repo; import org.springframework.data.jpa.repository.JpaRepository; -import com.sctrcd.multidsdemo.domain.foo.Foo; +import com.sctrcd.multidsdemo.foo.domain.Foo; public interface FooRepository extends JpaRepository { diff --git a/src/main/java/com/sctrcd/multidsdemo/integration/config/AppConfig.java b/src/main/java/com/sctrcd/multidsdemo/integration/config/AppConfig.java deleted file mode 100644 index 9547c01..0000000 --- a/src/main/java/com/sctrcd/multidsdemo/integration/config/AppConfig.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.sctrcd.multidsdemo.integration.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.orm.hibernate4.HibernateExceptionTranslator; -import org.springframework.orm.jpa.JpaVendorAdapter; -import org.springframework.orm.jpa.vendor.Database; -import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; - -@Configuration -@ComponentScan(basePackages = { "com.sctrcd.multidsdemo" }) -public class AppConfig { - - /** - * Primary because if we have activated embedded databases, we do not want - * the application to connect to an external database. - */ - @Bean - public JpaVendorAdapter jpaVendorAdapter() { - HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter(); - jpaVendorAdapter.setShowSql(true); - jpaVendorAdapter.setGenerateDdl(true); - jpaVendorAdapter.setDatabase(Database.HSQL); - return jpaVendorAdapter; - } - - @Bean - public HibernateExceptionTranslator hibernateExceptionTranslator() { - return new HibernateExceptionTranslator(); - } - -} diff --git a/src/main/java/com/sctrcd/multidsdemo/integration/config/bar/BarConfig.java b/src/main/java/com/sctrcd/multidsdemo/integration/config/bar/BarConfig.java deleted file mode 100644 index c905158..0000000 --- a/src/main/java/com/sctrcd/multidsdemo/integration/config/bar/BarConfig.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sctrcd.multidsdemo.integration.config.bar; - -import javax.persistence.EntityManager; -import javax.persistence.EntityManagerFactory; -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.JpaVendorAdapter; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -@Configuration -@EnableTransactionManagement -@EnableJpaRepositories( - entityManagerFactoryRef = "barEntityManagerFactory", - transactionManagerRef = "barTransactionManager", - basePackages = { "com.sctrcd.multidsdemo.integration.repositories.bar" }) -public class BarConfig { - - @Autowired - JpaVendorAdapter jpaVendorAdapter; - - /** - * Primary because if we have activated embedded databases, we do not want - * the application to connect to an external database. - */ - @Bean(name = "barDataSource") - public DataSource dataSource() { - return new EmbeddedDatabaseBuilder() - .setName("bardb") - .setType(EmbeddedDatabaseType.HSQL) - .build(); - } - - @Bean(name = "barEntityManager") - public EntityManager entityManager() { - return entityManagerFactory().createEntityManager(); - } - - @Bean(name = "barEntityManagerFactory") - public EntityManagerFactory entityManagerFactory() { - LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean(); - lef.setDataSource(dataSource()); - lef.setJpaVendorAdapter(jpaVendorAdapter); - lef.setPackagesToScan("com.sctrcd.multidsdemo.domain.bar"); - lef.setPersistenceUnitName("barPersistenceUnit"); - lef.afterPropertiesSet(); - return lef.getObject(); - } - - @Bean(name = "barTransactionManager") - public PlatformTransactionManager transactionManager() { - return new JpaTransactionManager(entityManagerFactory()); - } - -} diff --git a/src/main/java/com/sctrcd/multidsdemo/integration/config/foo/FooConfig.java b/src/main/java/com/sctrcd/multidsdemo/integration/config/foo/FooConfig.java deleted file mode 100644 index 23f2315..0000000 --- a/src/main/java/com/sctrcd/multidsdemo/integration/config/foo/FooConfig.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sctrcd.multidsdemo.integration.config.foo; - -import javax.persistence.EntityManager; -import javax.persistence.EntityManagerFactory; -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.JpaVendorAdapter; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -@Configuration -@EnableTransactionManagement -@EnableJpaRepositories( - entityManagerFactoryRef = "fooEntityManagerFactory", - transactionManagerRef = "fooTransactionManager", - basePackages = {"com.sctrcd.multidsdemo.integration.repositories.foo"}) -public class FooConfig { - - @Autowired - JpaVendorAdapter jpaVendorAdapter; - - /** - * Primary because if we have activated embedded databases, we do not want - * the application to connect to an external database. - */ - @Bean(name = "fooDataSource") - public DataSource dataSource() { - return new EmbeddedDatabaseBuilder() - .setName("foodb") - .setType(EmbeddedDatabaseType.HSQL) - .build(); - } - - @Bean(name = "fooEntityManager") - public EntityManager entityManager() { - return entityManagerFactory().createEntityManager(); - } - - @Bean(name = "fooEntityManagerFactory") - public EntityManagerFactory entityManagerFactory() { - LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean(); - lef.setDataSource(dataSource()); - lef.setJpaVendorAdapter(jpaVendorAdapter); - lef.setPackagesToScan("com.sctrcd.multidsdemo.domain.foo"); - lef.setPersistenceUnitName("fooPersistenceUnit"); - lef.afterPropertiesSet(); - return lef.getObject(); - } - - @Bean(name = "fooTransactionManager") - public PlatformTransactionManager transactionManager() { - return new JpaTransactionManager(entityManagerFactory()); - } - -} diff --git a/src/test/java/com/sctrcd/multidsdemo/RepositoryTest.java b/src/test/java/com/sctrcd/multidsdemo/RepositoryTest.java new file mode 100644 index 0000000..886b91c --- /dev/null +++ b/src/test/java/com/sctrcd/multidsdemo/RepositoryTest.java @@ -0,0 +1,60 @@ +package com.sctrcd.multidsdemo; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import com.sctrcd.multidsdemo.bar.domain.Bar; +import com.sctrcd.multidsdemo.bar.repo.BarRepository; +import com.sctrcd.multidsdemo.foo.domain.Foo; +import com.sctrcd.multidsdemo.foo.repo.FooRepository; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = MultiDsApplication.class) +public class RepositoryTest { + + private static Logger log = LoggerFactory.getLogger(RepositoryTest.class); + + @Autowired + private FooRepository fooRepo; + + @Autowired + private BarRepository barRepo; + + @Test + public void shouldSaveFoo() { + int countBefore = fooRepo.findAll().size(); + try { + Foo foo = new Foo(); + foo.setName("foo"); + fooRepo.saveAndFlush(foo); + } catch (Exception e) { + log.error("Error saving Foo.", e); + throw e; + } + int countAfter = fooRepo.findAll().size(); + assertEquals(1, countAfter - countBefore); + } + + @Test + public void shouldSaveBar() { + int countBefore = barRepo.findAll().size(); + try { + Bar bar = new Bar(); + bar.setName("bar"); + barRepo.saveAndFlush(bar); + } catch (Exception e) { + log.error("Error saving Bar.", e); + throw e; + } + int countAfter = barRepo.findAll().size(); + assertEquals(1, countAfter - countBefore); + } + +} diff --git a/src/test/java/com/sctrcd/multidsdemo/integration/repositories/bar/BarRepositoryTest.java b/src/test/java/com/sctrcd/multidsdemo/integration/repositories/bar/BarRepositoryTest.java deleted file mode 100644 index ff79293..0000000 --- a/src/test/java/com/sctrcd/multidsdemo/integration/repositories/bar/BarRepositoryTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.sctrcd.multidsdemo.integration.repositories.bar; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.support.AnnotationConfigContextLoader; - -import com.sctrcd.multidsdemo.domain.bar.Bar; -import com.sctrcd.multidsdemo.integration.config.AppConfig; -import com.sctrcd.multidsdemo.integration.repositories.bar.BarRepository; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = AppConfig.class, loader = AnnotationConfigContextLoader.class) -public class BarRepositoryTest { - - private static Logger log = LoggerFactory.getLogger(BarRepositoryTest.class); - - @Autowired - BarRepository barRepo; - - @Test - public void test() { - try { - Bar bar = new Bar("bar"); - barRepo.saveAndFlush(bar); - } catch (Exception e) { - log.error("Error saving Bar.", e); - throw e; - } - } - -} diff --git a/src/test/java/com/sctrcd/multidsdemo/integration/repositories/foo/FooRepositoryTest.java b/src/test/java/com/sctrcd/multidsdemo/integration/repositories/foo/FooRepositoryTest.java deleted file mode 100644 index 5a51a60..0000000 --- a/src/test/java/com/sctrcd/multidsdemo/integration/repositories/foo/FooRepositoryTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.sctrcd.multidsdemo.integration.repositories.foo; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.support.AnnotationConfigContextLoader; - -import com.sctrcd.multidsdemo.domain.foo.Foo; -import com.sctrcd.multidsdemo.integration.config.AppConfig; -import com.sctrcd.multidsdemo.integration.repositories.foo.FooRepository; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = AppConfig.class, loader = AnnotationConfigContextLoader.class) -public class FooRepositoryTest { - - private static Logger log = LoggerFactory.getLogger(FooRepositoryTest.class); - - @Autowired - FooRepository fooRepo; - - @Test - public void test() { - try { - Foo foo = new Foo("foo"); - fooRepo.saveAndFlush(foo); - } catch (Exception e) { - log.error("Error saving Foo.", e); - throw e; - } - } - -} diff --git a/src/test/resources/log4j.xml b/src/test/resources/log4j.xml deleted file mode 100755 index 4b741bf..0000000 --- a/src/test/resources/log4j.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -