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(