diff --git a/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/AriesEntityManagerFactoryBuilder.java b/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/AriesEntityManagerFactoryBuilder.java index dca7270..c43826b 100644 --- a/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/AriesEntityManagerFactoryBuilder.java +++ b/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/AriesEntityManagerFactoryBuilder.java @@ -83,6 +83,7 @@ public class AriesEntityManagerFactoryBuilder implements EntityManagerFactoryBui private boolean complete; + private Map overrides; public AriesEntityManagerFactoryBuilder(BundleContext containerContext, PersistenceProvider provider, Bundle providerBundle, PersistenceUnit persistenceUnit) { @@ -210,7 +211,11 @@ private Map processProperties(Map props) { for(String key : punitProps.stringPropertyNames()) { processed.put(key, punitProps.get(key)); } - + synchronized (this) { + if (overrides != null) { + processed.putAll(overrides); + } + } if(props != null) { processed.putAll(props); } @@ -537,4 +542,8 @@ private void dataSourceReady(DataSource ds, Map props) { } createEntityManagerFactory(props); } + + public synchronized void setOverrides(Map overrides) { + this.overrides = overrides; + } } diff --git a/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/ManagedEMF.java b/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/ManagedEMF.java index 62b29cd..8582f41 100644 --- a/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/ManagedEMF.java +++ b/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/ManagedEMF.java @@ -71,7 +71,7 @@ public void updated(Dictionary properties) throws ConfigurationExcept if (LOGGER.isDebugEnabled()) { LOGGER.debug("Using properties override {}", overrides); } - + builder.setOverrides(overrides); builder.createEntityManagerFactory(overrides); configured.set(true); }