From 8850e645cec454d1bfbe5cf05f88c9d3fd131b25 Mon Sep 17 00:00:00 2001 From: jamesagnew Date: Wed, 18 Nov 2020 07:20:51 -0500 Subject: [PATCH] Fix issue in 5.2.0 bump --- .../jpa/starter/FhirServerConfigCommon.java | 14 ++++++++++++ .../starter/JpaHibernateDialectProvider.java | 22 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/main/java/ca/uhn/fhir/jpa/starter/JpaHibernateDialectProvider.java diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigCommon.java b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigCommon.java index cfe9bde..091f37a 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigCommon.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigCommon.java @@ -3,6 +3,7 @@ package ca.uhn.fhir.jpa.starter; import ca.uhn.fhir.jpa.api.config.DaoConfig; import ca.uhn.fhir.jpa.binstore.DatabaseBlobBinaryStorageSvcImpl; import ca.uhn.fhir.jpa.binstore.IBinaryStorageSvc; +import ca.uhn.fhir.jpa.config.HibernateDialectProvider; import ca.uhn.fhir.jpa.model.config.PartitionSettings; import ca.uhn.fhir.jpa.model.entity.ModelConfig; import ca.uhn.fhir.jpa.subscription.channel.subscription.SubscriptionDeliveryHandlerFactory; @@ -10,9 +11,11 @@ import ca.uhn.fhir.jpa.subscription.match.deliver.email.IEmailSender; import ca.uhn.fhir.jpa.subscription.match.deliver.email.JavaMailEmailSender; import com.google.common.base.Strings; import org.hl7.fhir.dstu2.model.Subscription; +import org.springframework.boot.env.YamlPropertySourceLoader; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; import org.springframework.transaction.annotation.EnableTransactionManagement; import java.util.Optional; @@ -110,6 +113,11 @@ public class FhirServerConfigCommon { return retVal; } + @Bean + public YamlPropertySourceLoader yamlPropertySourceLoader() { + return new YamlPropertySourceLoader(); + } + @Bean public PartitionSettings partitionSettings(AppProperties appProperties) { PartitionSettings retVal = new PartitionSettings(); @@ -123,6 +131,12 @@ public class FhirServerConfigCommon { } + @Primary + @Bean + public HibernateDialectProvider jpaStarterDialectProvider() { + return new JpaHibernateDialectProvider(); + } + @Bean public ModelConfig modelConfig(AppProperties appProperties) { ModelConfig modelConfig = new ModelConfig(); diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/JpaHibernateDialectProvider.java b/src/main/java/ca/uhn/fhir/jpa/starter/JpaHibernateDialectProvider.java new file mode 100644 index 0000000..61395a1 --- /dev/null +++ b/src/main/java/ca/uhn/fhir/jpa/starter/JpaHibernateDialectProvider.java @@ -0,0 +1,22 @@ +package ca.uhn.fhir.jpa.starter; + +import ca.uhn.fhir.context.ConfigurationException; +import ca.uhn.fhir.jpa.config.HibernateDialectProvider; +import org.hibernate.dialect.Dialect; +import org.springframework.beans.factory.annotation.Value; + +public class JpaHibernateDialectProvider extends HibernateDialectProvider { + + @Value("${spring.jpa.properties.hibernate.dialect}") + public String myDialectClass; + + + @Override + public Dialect getDialect() { + try { + return (Dialect) Class.forName(myDialectClass).newInstance(); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { + throw new ConfigurationException("Can not load dialect: " + myDialectClass); + } + } +}