[jboss-cvs] JBossAS SVN: r93732 - in projects/jboss-cl/trunk: classloading/src/main/java/org/jboss/classloading/plugins/metadata and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Sep 18 10:34:33 EDT 2009
Author: thomas.diesler at jboss.com
Date: 2009-09-18 10:34:32 -0400 (Fri, 18 Sep 2009)
New Revision: 93732
Modified:
projects/jboss-cl/trunk/classloader/src/test/java/org/jboss/test/classloader/jmx/test/JMXUnitTestCase.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/TestCapability.java
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/metadata/ModuleCapability.java
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/metadata/PackageCapability.java
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/ClassLoadingSpace.java
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/Domain.java
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/Capability.java
projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/support/TestCapability.java
Log:
[JBCL-24] Circular and self dependencies
Modified: projects/jboss-cl/trunk/classloader/src/test/java/org/jboss/test/classloader/jmx/test/JMXUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/test/java/org/jboss/test/classloader/jmx/test/JMXUnitTestCase.java 2009-09-18 14:31:03 UTC (rev 93731)
+++ projects/jboss-cl/trunk/classloader/src/test/java/org/jboss/test/classloader/jmx/test/JMXUnitTestCase.java 2009-09-18 14:34:32 UTC (rev 93732)
@@ -355,7 +355,6 @@
assertEquals(expectedURLs, urls);
}
- @SuppressWarnings("unchecked")
public void testClassLoaderMBean() throws Exception
{
ClassLoaderSystem system = createClassLoaderSystemWithModifiedBootstrap();
Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/metadata/ModuleCapability.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/metadata/ModuleCapability.java 2009-09-18 14:31:03 UTC (rev 93731)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/metadata/ModuleCapability.java 2009-09-18 14:34:32 UTC (rev 93732)
@@ -29,6 +29,7 @@
* ModuleCapability.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author Thomas.Diesler at jboss.com
* @version $Revision: 1.1 $
*/
public class ModuleCapability extends AbstractCapability
@@ -66,7 +67,7 @@
super(name, version);
}
- public boolean resolves(Module module, Requirement requirement)
+ public boolean resolves(Module reqModule, Requirement requirement)
{
if (requirement instanceof ModuleRequirement == false)
return false;
Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/metadata/PackageCapability.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/metadata/PackageCapability.java 2009-09-18 14:31:03 UTC (rev 93731)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/metadata/PackageCapability.java 2009-09-18 14:34:32 UTC (rev 93732)
@@ -33,6 +33,7 @@
* PackageCapability.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author Thomas.Diesler at jboss.com
* @version $Revision: 1.1 $
*/
public class PackageCapability extends AbstractCapability implements ExportPackages
@@ -114,7 +115,7 @@
this.splitPolicy = policy;
}
- public boolean resolves(Module module, Requirement requirement)
+ public boolean resolves(Module reqModule, Requirement requirement)
{
if (requirement instanceof PackageRequirement == false)
return false;
Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/ClassLoadingSpace.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/ClassLoadingSpace.java 2009-09-18 14:31:03 UTC (rev 93731)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/ClassLoadingSpace.java 2009-09-18 14:34:32 UTC (rev 93732)
@@ -298,9 +298,9 @@
{
for (String packageName : packageNames)
{
- Module removed = modulesByPackage.remove(packageName);
- if (removed != module)
- throw new IllegalStateException("BUG: Removed module " + removed + " for package " + packageName + " is not the expected module: " + module);
+ Module other = modulesByPackage.get(packageName);
+ if (other == module)
+ modulesByPackage.remove(packageName);
}
}
Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/Domain.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/Domain.java 2009-09-18 14:31:03 UTC (rev 93731)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/Domain.java 2009-09-18 14:34:32 UTC (rev 93732)
@@ -35,6 +35,7 @@
*
* @author <a href="adrian at jboss.org">Adrian Brock</a>
* @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ * @author Thomas.Diesler at jboss.com
* @version $Revision: 1.1 $
*/
public class Domain
@@ -244,7 +245,7 @@
return result;
}
- // TODO JBCL-24 check for self-dependency/circularity
+ Module firstMatch = null;
for (Module other : modules)
{
List<Capability> capabilities = other.getCapabilities();
@@ -253,10 +254,22 @@
for (Capability capability : capabilities)
{
if (capability.resolves(module, requirement))
- return other;
+ {
+ if (firstMatch != null)
+ {
+ String otherName = other.getName() + ":" + other.getVersion();
+ String firstName = firstMatch.getName() + ":" + firstMatch.getVersion();
+ log.debug("Requirement " + requirement + " resolves agaist " + firstName + " and " + otherName + " - using first.");
+ }
+ if (firstMatch == null)
+ firstMatch = other;
+ }
}
}
}
+
+ if (firstMatch != null)
+ return firstMatch;
// Check the parent afterwards when required
if (parentDomain != null && parentFirst == false)
Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/Capability.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/Capability.java 2009-09-18 14:31:03 UTC (rev 93731)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/Capability.java 2009-09-18 14:34:32 UTC (rev 93732)
@@ -29,17 +29,18 @@
* Capability.
*
* @author <a href="adrian at jboss.org">Adrian Brock</a>
+ * @author Thomas.Diesler at jboss.com
* @version $Revision: 1.1 $
*/
public interface Capability extends Serializable
{
/**
* Whether this capability resolves the requirement
+ * @param reqModule the requirement module
+ * @param requirement the requirement
*
- * @param module the module
- * @param requirement the requirement
* @throws IllegalArgumentException for a null requirement
* @return true when it is resolves the requirement
*/
- boolean resolves(Module module, Requirement requirement);
+ boolean resolves(Module reqModule, Requirement requirement);
}
Modified: projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/support/TestCapability.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/support/TestCapability.java 2009-09-18 14:31:03 UTC (rev 93731)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/support/TestCapability.java 2009-09-18 14:34:32 UTC (rev 93732)
@@ -44,7 +44,7 @@
super(name, version);
}
- public boolean resolves(Module module, Requirement requirement)
+ public boolean resolves(Module reqModule, Requirement requirement)
{
return false;
}
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/TestCapability.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/TestCapability.java 2009-09-18 14:31:03 UTC (rev 93731)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/TestCapability.java 2009-09-18 14:34:32 UTC (rev 93732)
@@ -44,7 +44,7 @@
super(name, version);
}
- public boolean resolves(Module module, Requirement requirement)
+ public boolean resolves(Module reqModule, Requirement requirement)
{
return false;
}
More information about the jboss-cvs-commits
mailing list