[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