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"));