From 07850b416da9293e715f09f481cbaab849908a7d Mon Sep 17 00:00:00 2001 From: Ludovic Claude <ludovic.claude54@gmail.com> Date: Fri, 21 Dec 2018 16:45:17 +0100 Subject: [PATCH] Fix spring configuration --- docker/config/application.tmpl | 4 ++++ pom.xml | 2 +- src/main/java/eu/hbp/mip/MIPApplication.java | 13 +++++++++++-- .../hbp/mip/configuration/AkkaConfiguration.java | 2 +- ...gsnagConfig.java => BugsnagConfiguration.java} | 2 +- .../configuration/PersistenceConfiguration.java | 15 ++++++++++++++- src/main/java/eu/hbp/mip/model/Article.java | 2 ++ 7 files changed, 34 insertions(+), 6 deletions(-) rename src/main/java/eu/hbp/mip/configuration/{BugsnagConfig.java => BugsnagConfiguration.java} (92%) diff --git a/docker/config/application.tmpl b/docker/config/application.tmpl index 9a56dad4c..fcdc4ec92 100644 --- a/docker/config/application.tmpl +++ b/docker/config/application.tmpl @@ -21,6 +21,10 @@ spring: username: {{ default .Env.FEATURES_DB_USER "postgres" }} password: {{ .Env.FEATURES_DB_PASSWORD }} driver-class-name: org.postgresql.Driver + data: + jpa: + repositories: + bootstrap-mode: default jpa: hibernate: dialect: org.hibernate.dialect.PostgreSQL9Dialect diff --git a/pom.xml b/pom.xml index 4963d1dbd..911818e6e 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ <asciidoctor.maven.plugin.version>1.5.5</asciidoctor.maven.plugin.version> <asciidoctorj.pdf.version>1.5.0-alpha.15</asciidoctorj.pdf.version> <asciidoctorj.version>1.5.5</asciidoctorj.version> - <spring-data-commons.version>1.13.17.RELEASE</spring-data-commons.version> + <spring-data-commons.version>1.12.11.RELEASE</spring-data-commons.version> <angularjs.version>1.5.7</angularjs.version> <jquery.version>3.0.0</jquery.version> <bootstrap.version>3.3.7</bootstrap.version> diff --git a/src/main/java/eu/hbp/mip/MIPApplication.java b/src/main/java/eu/hbp/mip/MIPApplication.java index df70ba78a..b3f8648cd 100644 --- a/src/main/java/eu/hbp/mip/MIPApplication.java +++ b/src/main/java/eu/hbp/mip/MIPApplication.java @@ -4,10 +4,19 @@ package eu.hbp.mip; +import eu.hbp.mip.configuration.*; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; -@SpringBootApplication + +@Configuration +@EnableAutoConfiguration(exclude = { ValidationAutoConfiguration.class }) +@Import({ AkkaConfiguration.class, BugsnagConfiguration.class, + CacheConfiguration.class, PersistenceConfiguration.class, + SecurityConfiguration.class, WebConfiguration.class}) public class MIPApplication { public static void main(String[] args) { diff --git a/src/main/java/eu/hbp/mip/configuration/AkkaConfiguration.java b/src/main/java/eu/hbp/mip/configuration/AkkaConfiguration.java index d85bf5d3a..6e679f671 100644 --- a/src/main/java/eu/hbp/mip/configuration/AkkaConfiguration.java +++ b/src/main/java/eu/hbp/mip/configuration/AkkaConfiguration.java @@ -27,7 +27,7 @@ import static eu.hbp.mip.akka.SpringExtension.SPRING_EXTENSION_PROVIDER; @Configuration @ComponentScan -class AkkaConfiguration { +public class AkkaConfiguration { protected final Logger LOGGER = LoggerFactory.getLogger(this.getClass()); diff --git a/src/main/java/eu/hbp/mip/configuration/BugsnagConfig.java b/src/main/java/eu/hbp/mip/configuration/BugsnagConfiguration.java similarity index 92% rename from src/main/java/eu/hbp/mip/configuration/BugsnagConfig.java rename to src/main/java/eu/hbp/mip/configuration/BugsnagConfiguration.java index 4bc042fe8..b02b1e6a1 100644 --- a/src/main/java/eu/hbp/mip/configuration/BugsnagConfig.java +++ b/src/main/java/eu/hbp/mip/configuration/BugsnagConfiguration.java @@ -8,7 +8,7 @@ import org.springframework.context.annotation.Import; @Configuration @Import(BugsnagSpringConfiguration.class) -public class BugsnagConfig { +public class BugsnagConfiguration { @Bean public Bugsnag bugsnag() { return new Bugsnag("dff301aa15eb795a6d8b22b600586f77"); diff --git a/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java b/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java index 069f65525..d1a57c654 100644 --- a/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java +++ b/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java @@ -11,9 +11,12 @@ import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.*; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.JpaVendorAdapter; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource; @@ -22,7 +25,8 @@ import javax.sql.DataSource; */ @Configuration -@EnableJpaRepositories(value = "eu.hbp.mip.repositories") +@EnableJpaRepositories("eu.hbp.mip.repositories") +@EnableTransactionManagement @EntityScan(basePackages = "eu.hbp.mip.model") public class PersistenceConfiguration { @@ -67,11 +71,20 @@ public class PersistenceConfiguration { public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(portalDataSource()); + em.setPackagesToScan("eu.hbp.mip.model"); + em.setPersistenceUnitName("portal"); JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); em.setJpaVendorAdapter(vendorAdapter); return em; } + @Bean + public PlatformTransactionManager transactionManager() { + JpaTransactionManager txManager = new JpaTransactionManager(); + txManager.setEntityManagerFactory(entityManagerFactory().getNativeEntityManagerFactory()); + return txManager; + } + @Bean(name = "flyway", initMethod = "migrate") public Flyway migrations() { Flyway flyway = new Flyway(); diff --git a/src/main/java/eu/hbp/mip/model/Article.java b/src/main/java/eu/hbp/mip/model/Article.java index 220839623..4fdfc40b8 100644 --- a/src/main/java/eu/hbp/mip/model/Article.java +++ b/src/main/java/eu/hbp/mip/model/Article.java @@ -7,6 +7,7 @@ package eu.hbp.mip.model; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; +import org.springframework.validation.annotation.Validated; import javax.persistence.*; import javax.validation.constraints.NotNull; @@ -19,6 +20,7 @@ import java.util.List; @Table(name = "`article`") @ApiModel @JsonInclude(JsonInclude.Include.NON_NULL) +@Validated public class Article { @Id -- GitLab