[jboss-cvs] JBossAS SVN: r108099 - trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Sep 10 00:04:44 EDT 2010


Author: flavia.rainone at jboss.com
Date: 2010-09-10 00:04:44 -0400 (Fri, 10 Sep 2010)
New Revision: 108099

Modified:
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/NoDuplicatesClasspath.java
Log:
[JBAS-8250] Enable NoDuplicatesClasspath in ClasspathFactory

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java	2010-09-10 02:34:01 UTC (rev 108098)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java	2010-09-10 04:04:44 UTC (rev 108099)
@@ -264,6 +264,10 @@
    public void addLifecycleListener(ArchiveLifecycleListener listener)
    {
       this.lifecycleListeners.add(listener);
+      if (bda != null)
+      {
+         listener.archiveVisible(this, bda);
+      }
    }
 
    /**

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java	2010-09-10 02:34:01 UTC (rev 108098)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java	2010-09-10 04:04:44 UTC (rev 108099)
@@ -106,7 +106,7 @@
                ArchiveInfo archiveInfo = unitLoader == null? null: ArchiveInfo.getInstance(unitLoader);
                if (archiveInfo == null)
                {
-                  classpath = new ClasspathImpl(domain.toString());
+                  classpath = new NoDuplicatesClasspath(domain.toString());
                }
                else
                {
@@ -119,7 +119,7 @@
                {
                   ClassLoaderDomain clDomain = (ClassLoaderDomain) domain;
                   Classpath parentClasspath = getClasspath(null, clDomain.getParent());
-                  classpath = new ClasspathImpl(clDomain.getName(), parentClasspath);
+                  classpath = new NoDuplicatesClasspath(clDomain.getName(), parentClasspath);
                }
                else
                {

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/NoDuplicatesClasspath.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/NoDuplicatesClasspath.java	2010-09-10 02:34:01 UTC (rev 108098)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/NoDuplicatesClasspath.java	2010-09-10 04:04:44 UTC (rev 108099)
@@ -23,6 +23,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
 
@@ -104,7 +105,21 @@
       // only the reference BDA points to the other BDAs in this classpath
       if (bda == reference)
       {
-         return getBDAs();
+         Collection<BeanDeploymentArchive> otherBDAs= getBDAs();
+      
+         if (otherBDAs.isEmpty())
+         {
+            if (classpath != null)
+               return classpath.getBDAs(bda);
+            return Collections.emptyList();
+         }
+         else
+         {
+            Collection<BeanDeploymentArchive> allBDAs = new ArrayList<BeanDeploymentArchive>();
+            allBDAs.addAll(otherBDAs);
+            allBDAs.addAll(classpath.getBDAs(bda));
+            return allBDAs;
+         }
       }
       else
       {
@@ -150,6 +165,10 @@
                   iterator.remove();
                   referenceCollection.add(reference);
                }
+               synchronized(this)
+               {
+                  archives.remove(archive);
+               }
             }
             else
             {
@@ -157,10 +176,6 @@
             }
          }
       }
-      synchronized(this)
-      {
-         archives.remove(archive);
-      }
    }
 
    public String toString()



More information about the jboss-cvs-commits mailing list