You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ma...@apache.org on 2010/01/19 11:46:20 UTC

svn commit: r900721 - in /incubator/aries/trunk/jpa: jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/ jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/ jpa-container-context/src/test/j...

Author: mahrwald
Date: Tue Jan 19 10:46:20 2010
New Revision: 900721

URL: http://svn.apache.org/viewvc?rev=900721&view=rev
Log:
ARIES-118 Handle default unit name ""

Modified:
    incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.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
    incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java
    incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java
    incubator/aries/trunk/jpa/jpa-container/src/test/java/org/apache/aries/jpa/container/PersistenceBundleLifecycleTest.java

Modified: incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java?rev=900721&r1=900720&r2=900721&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java Tue Jan 19 10:46:20 2010
@@ -227,6 +227,7 @@
       props.put(PersistenceUnitConstants.OSGI_UNIT_NAME, name);
       props.put(PersistenceUnitConstants.CONTAINER_MANAGED_PERSISTENCE_UNIT, Boolean.TRUE);
       props.put(PersistenceUnitConstants.OSGI_UNIT_PROVIDER, unit.getProperty(PersistenceUnitConstants.OSGI_UNIT_PROVIDER));
+      props.put(PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME, "".equals(name));
       
       BundleContext persistenceBundleContext = unit.getBundle().getBundleContext();
       reg = persistenceBundleContext.registerService(

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=900721&r1=900720&r2=900721&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 Tue Jan 19 10:46:20 2010
@@ -35,6 +35,7 @@
 import org.apache.aries.blueprint.mutable.MutableBeanProperty;
 import org.apache.aries.blueprint.reflect.BeanPropertyImpl;
 import org.apache.aries.blueprint.reflect.ReferenceMetadataImpl;
+import org.apache.aries.jpa.container.PersistenceUnitConstants;
 import org.apache.aries.jpa.container.context.PersistenceManager;
 import org.osgi.framework.Bundle;
 import org.osgi.service.blueprint.reflect.BeanArgument;
@@ -64,7 +65,10 @@
   private static final String ATTR_UNIT_NAME = "unitname";
   
   private static final String TYPE_JTA = "TRANSACTION";
-  private static final String DEFAULT_UNIT_NAME = null;
+  private static final String DEFAULT_UNIT_NAME = "";
+  
+  public static final String EMPTY_UNIT_NAME_FILTER = 
+    "(" + PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME + "=true)";
   
   private PersistenceManager manager;
   
@@ -175,10 +179,10 @@
 
     ReferenceMetadataImpl refMetadata = new ReferenceMetadataImpl();
     refMetadata.setInterface(clazz.getName());
-    if (unitName != null)
-      refMetadata.setFilter("(osgi.unit.name="+unitName+")");
+    if (!"".equals(unitName))
+      refMetadata.setFilter("(" + PersistenceUnitConstants.OSGI_UNIT_NAME + "=" + unitName + ")");
     else
-      refMetadata.setFilter("(!(osgi.unit.name=*))");
+      refMetadata.setFilter(EMPTY_UNIT_NAME_FILTER);
     
     MutableBeanProperty propertyMetadata = new BeanPropertyImpl();
     propertyMetadata.setName(property);
@@ -210,13 +214,8 @@
   }
   
   private String parseUnitName(Element element) {
-    String result = element.hasAttribute(ATTR_UNIT_NAME) ? 
+    return element.hasAttribute(ATTR_UNIT_NAME) ? 
         element.getAttribute(ATTR_UNIT_NAME) : DEFAULT_UNIT_NAME;
-    
-    if ("".equals(result))
-      result = DEFAULT_UNIT_NAME;
-    
-    return result;
   }
   
   private Map<String, Object> parseJPAProperties(Element element, ParserContext context) {

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=900721&r1=900720&r2=900721&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 Tue Jan 19 10:46:20 2010
@@ -115,7 +115,7 @@
     ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
     
     assertEquals("emf2", property.getName());
-    assertEquals("(!(osgi.unit.name=*))", reference.getFilter());
+    assertEquals(NSHandler.EMPTY_UNIT_NAME_FILTER, reference.getFilter());
   }
   
   @Test
@@ -127,7 +127,7 @@
     ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
     
     assertEquals("emf3", property.getName());
-    assertEquals("(!(osgi.unit.name=*))", reference.getFilter());
+    assertEquals(NSHandler.EMPTY_UNIT_NAME_FILTER, reference.getFilter());
   }
   
   @Test 
@@ -167,14 +167,14 @@
     ReferenceMetadata reference = (ReferenceMetadata) ((BeanProperty) bean.getProperties().get(0)).getValue();
     
     assertEquals(EntityManager.class.getName(), reference.getInterface());
-    assertEquals("(!(osgi.unit.name=*))", reference.getFilter());
+    assertEquals(NSHandler.EMPTY_UNIT_NAME_FILTER, reference.getFilter());
     
     Map<String,Object> props = new HashMap<String, Object>();
     props.put("type", PersistenceContextType.EXTENDED);
     props.put("one", "eins");
     props.put("two", "zwo");
     Skeleton.getSkeleton(manager).assertCalled(
-        new MethodCall(PersistenceManager.class, "registerContext", null, clientBundle, props));    
+        new MethodCall(PersistenceManager.class, "registerContext", "", clientBundle, props));    
   }
   
   private Element getTestElement(String beanName) {

Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java?rev=900721&r1=900720&r2=900721&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java Tue Jan 19 10:46:20 2010
@@ -30,5 +30,8 @@
   public static final String OSGI_UNIT_PROVIDER = "osgi.unit.provider";
   /** The service property key mapped to a Boolean indicating whether this persistence unit is container managed */ 
   public static final String CONTAINER_MANAGED_PERSISTENCE_UNIT = "org.apache.aries.jpa.container.managed";
-
+  /** The service property key mapped to a Boolean indicating whether this persistence unit has the default (empty string) unit name 
+   *  This allows clients to filter for empty string persistence unit names.
+   */
+  public static final String EMPTY_PERSISTENCE_UNIT_NAME = "org.apache.aries.jpa.default.unit.name";
 }

Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java?rev=900721&r1=900720&r2=900721&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java Tue Jan 19 10:46:20 2010
@@ -181,6 +181,7 @@
         props.put(PersistenceUnitConstants.OSGI_UNIT_NAME, unitName);
         props.put(PersistenceUnitConstants.OSGI_UNIT_PROVIDER, providerName);
         props.put(PersistenceUnitConstants.CONTAINER_MANAGED_PERSISTENCE_UNIT, Boolean.TRUE);
+        props.put(PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME, "".equals(unitName));
         try {
           registrations.add(bundle.getBundleContext().registerService(EntityManagerFactory.class.getCanonicalName(), entry.getValue(), props));
         } catch (Exception e) {

Modified: incubator/aries/trunk/jpa/jpa-container/src/test/java/org/apache/aries/jpa/container/PersistenceBundleLifecycleTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/test/java/org/apache/aries/jpa/container/PersistenceBundleLifecycleTest.java?rev=900721&r1=900720&r2=900721&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/test/java/org/apache/aries/jpa/container/PersistenceBundleLifecycleTest.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/test/java/org/apache/aries/jpa/container/PersistenceBundleLifecycleTest.java Tue Jan 19 10:46:20 2010
@@ -29,7 +29,6 @@
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStreamWriter;
-import java.io.Writer;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Dictionary;
@@ -945,6 +944,8 @@
         }
       }
       assertTrue("No emf expected with the name " + emf.getProperty("osgi.unit.name"), found);
+      assertEquals("".equals(emf.getProperty("osgi.unit.name")),
+          emf.getProperty(PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME));
       
       assertEquals("Wrong unit provider name registered", providerRef.getProperty("javax.persistence.provider"), emf.getProperty("osgi.unit.provider"));