You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by rw...@apache.org on 2011/10/13 14:32:05 UTC
svn commit: r1182804 -
/geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java
Author: rwonly
Date: Thu Oct 13 12:32:05 2011
New Revision: 1182804
URL: http://svn.apache.org/viewvc?rev=1182804&view=rev
Log:
GERONIMO-6191 can not query the persistence unit gbean when ejb is in a war
Modified:
geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java
Modified: geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java?rev=1182804&r1=1182803&r2=1182804&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java (original)
+++ geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java Thu Oct 13 12:32:05 2011
@@ -202,23 +202,29 @@ public class PersistenceRefBuilder exten
String persistenceUnitName = persistenceRef.getPersistenceUnitName().trim();
persistenceUnitNameQuery = findPersistenceUnit(module, localConfiguration, persistenceUnitName);
} else {
- AbstractName childName = module.getEarContext().getNaming().createChildName(module.getModuleName(), "", NameFactory.PERSISTENCE_UNIT);
- Map<String, String> name = new HashMap<String, String>(childName.getName());
- name.remove(NameFactory.J2EE_NAME);
- persistenceUnitNameQuery = new AbstractNameQuery(null, name, PERSISTENCE_UNIT_INTERFACE_TYPES);
- Set<AbstractNameQuery> patterns = Collections.singleton(persistenceUnitNameQuery);
- LinkedHashSet<GBeanData> gbeans = localConfiguration.findGBeanDatas(localConfiguration, patterns);
- persistenceUnitNameQuery = checkForDefaultPersistenceUnit(gbeans);
+ LinkedHashSet<GBeanData> gbeans = new LinkedHashSet<GBeanData>();
+ do {
+ AbstractName childName = module.getEarContext().getNaming().createChildName(module.getModuleName(), "", NameFactory.PERSISTENCE_UNIT);
+ Map<String, String> name = new HashMap<String, String>(childName.getName());
+ name.remove(NameFactory.J2EE_NAME);
+
+ persistenceUnitNameQuery = new AbstractNameQuery(null, name, PERSISTENCE_UNIT_INTERFACE_TYPES);
+ Set<AbstractNameQuery> patterns = Collections.singleton(persistenceUnitNameQuery);
+ gbeans = localConfiguration.findGBeanDatas(module.getEarContext().getConfiguration(), patterns);
+
+ if (!gbeans.isEmpty()) {
+ persistenceUnitNameQuery = checkForDefaultPersistenceUnit(gbeans);
+ break;
+ }
+
+ module = module.getParentModule();
+ } while(module!=null);
+
if (gbeans.isEmpty()) {
- gbeans = localConfiguration.findGBeanDatas(patterns);
- persistenceUnitNameQuery = checkForDefaultPersistenceUnit(gbeans);
-
- if (gbeans.isEmpty()) {
- if (defaultPersistenceUnitAbstractNameQuery == null) {
- throw new DeploymentException("No default PersistenceUnit specified, and none located");
- }
- persistenceUnitNameQuery = defaultPersistenceUnitAbstractNameQuery;
+ if (defaultPersistenceUnitAbstractNameQuery == null) {
+ throw new DeploymentException("No default PersistenceUnit specified, and none located");
}
+ persistenceUnitNameQuery = defaultPersistenceUnitAbstractNameQuery;
}
checkForGBean(localConfiguration, persistenceUnitNameQuery, false, false, new HashSet<AbstractName>());
}