You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ti...@apache.org on 2010/02/05 21:10:31 UTC
svn commit: r907079 - in
/incubator/aries/trunk/jpa/jpa-container-context/src:
main/java/org/apache/aries/jpa/container/context/impl/
main/java/org/apache/aries/jpa/container/context/namespace/
test/java/org/apache/aries/jpa/container/context/namespace/
Author: timothyjward
Date: Fri Feb 5 20:10:30 2010
New Revision: 907079
URL: http://svn.apache.org/viewvc?rev=907079&view=rev
Log:
ARIES-148 : Stop passing internal properties to createEntityManager()
Modified:
incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/ManagedPersistenceContextFactory.java
incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java
incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/ManagedPersistenceContextFactory.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/ManagedPersistenceContextFactory.java?rev=907079&r1=907078&r2=907079&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/ManagedPersistenceContextFactory.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/ManagedPersistenceContextFactory.java Fri Feb 5 20:10:30 2010
@@ -18,7 +18,9 @@
*/
package org.apache.aries.jpa.container.context.impl;
+import java.util.HashMap;
import java.util.Map;
+import java.util.Properties;
import javax.persistence.Cache;
import javax.persistence.EntityManager;
@@ -46,14 +48,17 @@
private final ServiceReference emf;
private final Map<String, Object> properties;
private final JTAPersistenceContextRegistry registry;
+ private final PersistenceContextType type;
public ManagedPersistenceContextFactory(ServiceReference unit,
Map<String, Object> props, JTAPersistenceContextRegistry contextRegistry) {
emf = unit;
- properties = props;
+ //Take a copy of the Map so that we don't modify the original
+ properties = new HashMap<String, Object>(props);
registry = contextRegistry;
-
+ //Remove our internal property so that it doesn't get passed on the createEntityManager call
+ type = (PersistenceContextType) properties.remove(PersistenceContextManager.PERSISTENCE_CONTEXT_TYPE);
}
public EntityManager createEntityManager() {
@@ -63,7 +68,6 @@
}
EntityManagerFactory factory = (EntityManagerFactory) emf.getBundle().getBundleContext().getService(emf);
- PersistenceContextType type = (PersistenceContextType) properties.get(PersistenceContextManager.PERSISTENCE_CONTEXT_TYPE);
if(type == PersistenceContextType.TRANSACTION || type == null)
return new JTAEntityManager(factory, properties, registry);
else {
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java?rev=907079&r1=907078&r2=907079&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java Fri Feb 5 20:10:30 2010
@@ -40,6 +40,7 @@
import org.apache.aries.jpa.container.PersistenceUnitConstants;
import org.apache.aries.jpa.container.context.GlobalPersistenceManager;
import org.apache.aries.jpa.container.context.PersistenceManager;
+import org.apache.aries.jpa.container.context.impl.PersistenceContextManager;
import org.osgi.framework.Bundle;
import org.osgi.service.blueprint.reflect.BeanArgument;
import org.osgi.service.blueprint.reflect.BeanMetadata;
@@ -145,7 +146,9 @@
String unitName = parseUnitName(element);
HashMap<String,Object> properties = new HashMap<String, Object>();
- properties.put(ATTR_TYPE, parseType(element));
+ //Remember to add the PersistenceContextType so that we can create the correct type of
+ //EntityManager
+ properties.put(PersistenceContextManager.PERSISTENCE_CONTEXT_TYPE, parseType(element));
properties.putAll(parseJPAProperties(element, context));
manager.registerContext(unitName, client, properties);
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java?rev=907079&r1=907078&r2=907079&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java Fri Feb 5 20:10:30 2010
@@ -40,6 +40,7 @@
import org.apache.aries.blueprint.reflect.RefMetadataImpl;
import org.apache.aries.blueprint.reflect.ReferenceMetadataImpl;
import org.apache.aries.jpa.container.context.PersistenceManager;
+import org.apache.aries.jpa.container.context.impl.PersistenceContextManager;
import org.apache.aries.unittest.mocks.MethodCall;
import org.apache.aries.unittest.mocks.Skeleton;
import org.junit.Before;
@@ -199,7 +200,7 @@
assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)(osgi.unit.name=myUnit))", reference.getFilter());
Map<String,Object> props = new HashMap<String, Object>();
- props.put("type", PersistenceContextType.TRANSACTION);
+ props.put(PersistenceContextManager.PERSISTENCE_CONTEXT_TYPE, PersistenceContextType.TRANSACTION);
Skeleton.getSkeleton(manager).assertCalled(
new MethodCall(PersistenceManager.class, "registerContext", "myUnit", clientBundle, props));
}
@@ -221,7 +222,7 @@
reference.getFilter());
Map<String,Object> props = new HashMap<String, Object>();
- props.put("type", PersistenceContextType.EXTENDED);
+ props.put(PersistenceContextManager.PERSISTENCE_CONTEXT_TYPE, PersistenceContextType.EXTENDED);
props.put("one", "eins");
props.put("two", "zwo");
Skeleton.getSkeleton(manager).assertCalled(