[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