[jboss-cvs] JBossAS SVN: r112028 - projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/resolvers/strategy.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Aug 12 07:33:54 EDT 2011
Author: jaikiran
Date: 2011-08-12 07:33:54 -0400 (Fri, 12 Aug 2011)
New Revision: 112028
Modified:
projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/resolvers/strategy/BaseSearchStrategy.java
Log:
Commit Ales' change to BaseSearchStrategy to handle multiple PUs in a deployment unit https://github.com/alesj/jboss-jpa/commit/058516c06f9e25c8c7477fea2e87eeaa67637f23
Modified: projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/resolvers/strategy/BaseSearchStrategy.java
===================================================================
--- projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/resolvers/strategy/BaseSearchStrategy.java 2011-08-12 11:07:10 UTC (rev 112027)
+++ projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/resolvers/strategy/BaseSearchStrategy.java 2011-08-12 11:33:54 UTC (rev 112028)
@@ -21,6 +21,8 @@
*/
package org.jboss.jpa.resolvers.strategy;
+import java.util.Set;
+
import org.jboss.beans.metadata.api.annotations.Inject;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.jpa.javaee.JavaEEModuleInformer;
@@ -30,18 +32,18 @@
/**
* The spec compliant persistence unit search stragegy.
- *
+ *
* To allow injection by class it has a base name.
- *
+ *
* See EJB 3.0 6.2.2.
- *
+ *
* @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
* @version $Revision: $
*/
public abstract class BaseSearchStrategy implements SearchStrategy
{
private JavaEEModuleInformer javaEEModuleInformer;
-
+
public String findPersistenceUnitSupplier(PersistenceUnitDependencyResolver resolver, DeploymentUnit deploymentUnit, String persistenceUnitName)
{
String name = findWithinModule(resolver, deploymentUnit, persistenceUnitName, true);
@@ -49,13 +51,13 @@
name = findWithinApplication(resolver, deploymentUnit.getTopLevel(), persistenceUnitName);
return name;
}
-
+
protected String findWithinApplication(PersistenceUnitDependencyResolver resolver, DeploymentUnit unit, String persistenceUnitName)
{
String name = findWithinModule(resolver, unit, persistenceUnitName, false);
if(name != null)
return name;
-
+
for(DeploymentUnit child : unit.getChildren())
{
name = findWithinApplication(resolver, child, persistenceUnitName);
@@ -64,7 +66,7 @@
}
return null;
}
-
+
/*
* When finding the default persistence unit, the first persistence unit encountered is returned.
* TODO: Maybe the name of unscoped persistence units should be changed, so only one can be deployed anyway.
@@ -73,14 +75,18 @@
{
if(!allowScoped && isScoped(unit))
return null;
-
- PersistenceMetaData persistenceMetaData = unit.getAttachment(PersistenceMetaData.class);
- if(persistenceMetaData == null)
+
+ Set<? extends PersistenceMetaData> set = unit.getAllMetaData(PersistenceMetaData.class);
+ if(set == null || set.isEmpty())
return null;
- for(PersistenceUnitMetaData persistenceUnit : persistenceMetaData.getPersistenceUnits())
+
+ for (PersistenceMetaData persistenceMetaData : set)
{
- if(persistenceUnitName == null || persistenceUnitName.length() == 0 || persistenceUnit.getName().equals(persistenceUnitName))
- return resolver.createBeanName(unit, persistenceUnit.getName());
+ for(PersistenceUnitMetaData persistenceUnit : persistenceMetaData.getPersistenceUnits())
+ {
+ if(persistenceUnitName == null || persistenceUnitName.length() == 0 || persistenceUnit.getName().equals(persistenceUnitName))
+ return resolver.createBeanName(unit, persistenceUnit.getName());
+ }
}
return null;
}
More information about the jboss-cvs-commits
mailing list