You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2009/04/10 20:35:12 UTC
svn commit: r763999 [2/4] - in /geronimo/sandbox/djencks/framework:
buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/
buildsupport/car-maven-plugin/src/main/resources/META-INF/plexus/
buildsupport/car-maven-plugin/src/te...
Modified: geronimo/sandbox/djencks/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml (original)
+++ geronimo/sandbox/djencks/framework/configs/jsr88-deploymentfactory/src/main/history/dependencies.xml Fri Apr 10 18:35:10 2009
@@ -7,73 +7,78 @@
<type>car</type>
</module-id>
<dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-common</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>commons-jexl</groupId>
- <artifactId>commons-jexl</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-kernel</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-plugin</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-deploy-jsr88-bootstrapper</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.xbean</groupId>
- <artifactId>xbean-reflect</artifactId>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>wstx-asl</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-logging</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-common</artifactId>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-activation_1.1_spec</artifactId>
+ <groupId>asm</groupId>
+ <artifactId>asm-commons</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-api</artifactId>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-deploy-jsr88</artifactId>
+ <groupId>org.apache.xbean</groupId>
+ <artifactId>xbean-reflect</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-deploy-config</artifactId>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-crypto</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-system</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-cli</artifactId>
<type>jar</type>
</dependency>
<dependency>
@@ -82,63 +87,63 @@
<type>jar</type>
</dependency>
<dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
+ <groupId>commons-jexl</groupId>
+ <artifactId>commons-jexl</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>asm</groupId>
- <artifactId>asm-commons</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-stax-api_1.0_spec</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-container-default</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-deploy-jsr88</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-kernel</artifactId>
+ <artifactId>geronimo-plugin</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib-nodep</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-archiver</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-crypto</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>xpp3</groupId>
- <artifactId>xpp3_min</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-archiver</artifactId>
+ <artifactId>plexus-component-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-deploy-config</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-system</artifactId>
+ <artifactId>geronimo-deploy-jsr88-bootstrapper</artifactId>
<type>jar</type>
</dependency>
<dependency>
@@ -147,8 +152,18 @@
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-cli</artifactId>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-activation_1.1_spec</artifactId>
<type>jar</type>
</dependency>
</plugin-artifact>
Modified: geronimo/sandbox/djencks/framework/configs/online-deployer/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/configs/online-deployer/src/main/history/dependencies.xml?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/configs/online-deployer/src/main/history/dependencies.xml (original)
+++ geronimo/sandbox/djencks/framework/configs/online-deployer/src/main/history/dependencies.xml Fri Apr 10 18:35:10 2009
@@ -7,63 +7,73 @@
<type>car</type>
</module-id>
<dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-common</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>commons-jexl</groupId>
- <artifactId>commons-jexl</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-kernel</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-plugin</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.xbean</groupId>
- <artifactId>xbean-reflect</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>wstx-asl</artifactId>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-common</artifactId>
+ <artifactId>geronimo-logging</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-activation_1.1_spec</artifactId>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>jline</groupId>
- <artifactId>jline</artifactId>
+ <groupId>asm</groupId>
+ <artifactId>asm-commons</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-api</artifactId>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
+ <groupId>org.apache.xbean</groupId>
+ <artifactId>xbean-reflect</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-system</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-cli</artifactId>
<type>jar</type>
</dependency>
<dependency>
@@ -72,68 +82,73 @@
<type>jar</type>
</dependency>
<dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-crypto</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>asm</groupId>
- <artifactId>asm-commons</artifactId>
+ <groupId>commons-jexl</groupId>
+ <artifactId>commons-jexl</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-container-default</artifactId>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jline</groupId>
+ <artifactId>jline</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-kernel</artifactId>
+ <artifactId>geronimo-plugin</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib-nodep</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-archiver</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>xpp3</groupId>
- <artifactId>xpp3_min</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-crypto</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-archiver</artifactId>
+ <artifactId>plexus-component-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-system</artifactId>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-cli</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-activation_1.1_spec</artifactId>
<type>jar</type>
</dependency>
</plugin-artifact>
Modified: geronimo/sandbox/djencks/framework/configs/shutdown/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/configs/shutdown/src/main/history/dependencies.xml?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/configs/shutdown/src/main/history/dependencies.xml (original)
+++ geronimo/sandbox/djencks/framework/configs/shutdown/src/main/history/dependencies.xml Fri Apr 10 18:35:10 2009
@@ -7,158 +7,173 @@
<type>car</type>
</module-id>
<dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-deploy-tool</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>commons-jexl</groupId>
- <artifactId>commons-jexl</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-javaee-deployment_1.1MR3_spec</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.xmlbeans</groupId>
- <artifactId>xmlbeans</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-service-builder</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-plugin</artifactId>
+ <artifactId>geronimo-deployment</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-deploy-tool</artifactId>
+ <artifactId>geronimo-system</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.xbean</groupId>
- <artifactId>xbean-reflect</artifactId>
+ <groupId>org.apache.xmlbeans</groupId>
+ <artifactId>xmlbeans</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-common</artifactId>
+ <groupId>xml-resolver</groupId>
+ <artifactId>xml-resolver</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>jline</groupId>
- <artifactId>jline</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-api</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-stax-api_1.0_spec</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-deploy-config</artifactId>
+ <artifactId>geronimo-cli</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-deploy-jsr88</artifactId>
+ <artifactId>geronimo-kernel</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-deploy-jsr88</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-common</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>commons-cli</groupId>
- <artifactId>commons-cli</artifactId>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-plugin</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-archiver</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>asm</groupId>
- <artifactId>asm-commons</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-container-default</artifactId>
+ <artifactId>plexus-component-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-kernel</artifactId>
+ <artifactId>geronimo-deploy-config</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>xml-resolver</groupId>
- <artifactId>xml-resolver</artifactId>
+ <groupId>jline</groupId>
+ <artifactId>jline</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib-nodep</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-crypto</artifactId>
+ <artifactId>geronimo-logging</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>xpp3</groupId>
- <artifactId>xpp3_min</artifactId>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-archiver</artifactId>
+ <groupId>asm</groupId>
+ <artifactId>asm-commons</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-deployment</artifactId>
+ <groupId>org.apache.xbean</groupId>
+ <artifactId>xbean-reflect</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-system</artifactId>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-javaee-deployment_1.1MR3_spec</artifactId>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-cli</artifactId>
+ <artifactId>geronimo-crypto</artifactId>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.framework</groupId>
- <artifactId>geronimo-service-builder</artifactId>
+ <groupId>commons-jexl</groupId>
+ <artifactId>commons-jexl</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
<type>jar</type>
</dependency>
</plugin-artifact>
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-core/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-core/pom.xml?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-core/pom.xml (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-core/pom.xml Fri Apr 10 18:35:10 2009
@@ -34,6 +34,12 @@
<dependencies>
<dependency>
<groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-kernel</artifactId>
+ <version>${version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.geronimo.framework</groupId>
<artifactId>geronimo-system</artifactId>
<version>${version}</version>
</dependency>
@@ -43,6 +49,10 @@
<artifactId>geronimo-management</artifactId>
<version>${version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
+ </dependency>
</dependencies>
</project>
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/pom.xml?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/pom.xml (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/pom.xml Fri Apr 10 18:35:10 2009
@@ -33,6 +33,15 @@
<dependencies>
<dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.framework</groupId>
+ <artifactId>geronimo-logging</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
</dependency>
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/BasicGBeanInfoFactory.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/BasicGBeanInfoFactory.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/BasicGBeanInfoFactory.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/BasicGBeanInfoFactory.java Fri Apr 10 18:35:10 2009
@@ -73,6 +73,8 @@
return (GBeanInfo) method.invoke(null, new Object[]{});
} catch (Exception e) {
throw new GBeanInfoFactoryException("Could not get GBeanInfo from class: " + className, e);
+ } catch (NoClassDefFoundError e) {
+ throw new GBeanInfoFactoryException("Could not get GBeanInfo from class: " + className, e);
}
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java Fri Apr 10 18:35:10 2009
@@ -292,7 +292,12 @@
public void addInterface(Class intf, String[] persistentAttributes, String[] manageableAttributes) {
Set persistentNames = new HashSet(Arrays.asList(persistentAttributes));
Set manageableNames = new HashSet(Arrays.asList(manageableAttributes));
- Method[] methods = intf.getMethods();
+ Method[] methods = new Method[0];
+ try {
+ methods = intf.getMethods();
+ } catch (NoClassDefFoundError e) {
+ throw (NoClassDefFoundError)new NoClassDefFoundError("could not get methods from interface: " + intf.getName() + " loaded in classLoader: " + intf.getClassLoader()).initCause(e);
+ }
for (int i = 0; i < methods.length; i++) {
Method method = methods[i];
if ("java.lang.Object".equals(method.getDeclaringClass().getName())) continue;
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/JarFileClassLoaderFactory.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/JarFileClassLoaderFactory.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/JarFileClassLoaderFactory.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/JarFileClassLoaderFactory.java Fri Apr 10 18:35:10 2009
@@ -141,13 +141,13 @@
log.debug(buf.toString());
}
- if (Boolean.getBoolean("Xorg.apache.geronimo.OneClassLoaderPerJar")) {
+ if (true || Boolean.getBoolean("Xorg.apache.geronimo.OneClassLoaderPerJar")) {
OneClassLoaderPerJarClassLoaderBuilder classLoaderBuilder = new OneClassLoaderPerJarClassLoaderBuilder();
- return classLoaderBuilder.build(environment, parentClassLoaders, classLoadingRules, artifactToURL);
+ return classLoaderBuilder.build(environment, parentClassLoaders, classLoadingRules, artifactToURL, configurationResolver);
}
URL[] urls = flattenedURLs(artifactToURL);
-
+
// The JarFileClassLoader was created to address a locking problem seen only on Windows platforms.
// It carries with it a slight performance penalty that needs to be addressed. Rather than make
// *nix OSes carry this burden we'll engage the JarFileClassLoader for Windows or if the user
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/BasicGlobalClassLoaderRegister.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/BasicGlobalClassLoaderRegister.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/BasicGlobalClassLoaderRegister.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/BasicGlobalClassLoaderRegister.java Fri Apr 10 18:35:10 2009
@@ -21,36 +21,79 @@
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
+import java.util.HashSet;
import org.apache.geronimo.kernel.repository.Artifact;
/**
- *
* @version $Rev:$ $Date:$
*/
public class BasicGlobalClassLoaderRegister implements GlobalClassLoaderRegister {
- protected final Map<Artifact, GlobalClassLoader> register;
-
+
+ final Map<Artifact, Set<Artifact>> graph = new HashMap<Artifact, Set<Artifact>>();
+ final Map<Artifact, GlobalClassLoader> register;
+ final Map<Artifact, GlobalClassLoader> noVersionRegister;
+
public BasicGlobalClassLoaderRegister() {
register = new HashMap<Artifact, GlobalClassLoader>();
+ noVersionRegister = new HashMap<Artifact, GlobalClassLoader>();
+ }
+
+ public void register(Artifact child, Set<Artifact> parents) {
+ if (child == null) throw new NullPointerException("child required");
+ if (parents == null) throw new NullPointerException("parents required");
+ Set<Artifact> old = graph.put(child, parents);
+ if (old != null && !old.equals(parents)) {
+ HashSet<Artifact> removed = new HashSet<Artifact>(old);
+ removed.removeAll(parents);
+ HashSet<Artifact> added = new HashSet<Artifact>(parents);
+ added.removeAll(parents);
+ throw new IllegalArgumentException("parents of artifact: " + child +
+ " changed:\nold: " + old +
+ "\nnew: " + parents +
+ "\nremoved: " + removed +
+ "\n added: " + added);
+ }
+ }
+
+ public void unregister(Artifact artifact) {
+ graph.remove(artifact);
}
-
+
+ public Set<Artifact> getParents(Artifact artifact) {
+ Set<Artifact> parents = graph.get(artifact);
+ if (parents == null) throw new NullPointerException("artifact not known: " + artifact);
+ return parents;
+ }
+
public void register(GlobalClassLoader classLoader) {
synchronized (register) {
register.put(classLoader.getArtifact(), classLoader);
+ noVersionRegister.put(strip(classLoader.getArtifact()), classLoader);
}
}
public void unregister(GlobalClassLoader classLoader) {
synchronized (register) {
register.remove(classLoader.getArtifact());
+ register.remove(strip(classLoader.getArtifact()));
}
}
public GlobalClassLoader retrieve(Artifact artifact) {
synchronized (register) {
- return register.get(artifact);
+ GlobalClassLoader cl = register.get(artifact);
+ if (cl == null) {
+ cl = noVersionRegister.get(strip(artifact));
+ }
+ return cl;
}
}
-
+
+ private Artifact strip(Artifact artifact) {
+ return new Artifact(artifact.getGroupId(), artifact.getArtifactId(), (String) null, artifact.getType());
+ }
+
+
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/DependencySAXHandler.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/DependencySAXHandler.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/DependencySAXHandler.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/DependencySAXHandler.java Fri Apr 10 18:35:10 2009
@@ -19,6 +19,7 @@
package org.apache.geronimo.kernel.config.classloading;
+import java.util.HashSet;
import java.util.Set;
import org.apache.geronimo.kernel.repository.Artifact;
@@ -31,49 +32,81 @@
* @version $Rev:385718 $ $Date: 2009-02-16 18:23:27 +1100 (Mon, 16 Feb 2009) $
*/
public final class DependencySAXHandler extends DefaultHandler {
- private final Set<Artifact> dependencies;
- private String currentString;
+ private final GlobalClassLoaderRegister register;
+ private StringBuilder currentString = new StringBuilder();
private boolean dependency;
- private boolean exclusions;
+ private boolean parent;
private String groupId;
private String artifactId;
-
- public DependencySAXHandler(Set<Artifact> dependencies) {
- if (null == dependencies) {
- throw new IllegalArgumentException("dependencies is required");
+ private String version;
+ private String type;
+ private Artifact child;
+ private Set<Artifact> parents;
+
+ public DependencySAXHandler(GlobalClassLoaderRegister register) {
+ if (null == register) {
+ throw new IllegalArgumentException("register is required");
}
- this.dependencies = dependencies;
+ this.register = register;
}
@Override
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException {
if (name.equals("dependency")) {
- dependency = true;
- } else if (name.equals("exclusions")) {
- exclusions = true;
+ if (dependency) {
+ parent = true;
+ if (child == null) {
+ child = getArtifact();
+ }
+ } else {
+ dependency = true;
+ parents = new HashSet<Artifact>();
+ }
}
}
@Override
public void endElement(String uri, String localName, String name) throws SAXException {
- if (name.equals("groupId") && dependency && !exclusions) {
- groupId = currentString;
- } else if (name.equals("artifactId") && dependency && !exclusions) {
- artifactId = currentString;
+ if (name.equals("groupId") && dependency) {
+ groupId = currentString.toString().trim();
+ currentString = new StringBuilder();
+ } else if (name.equals("artifactId") && dependency) {
+ artifactId = currentString.toString().trim();
+ currentString = new StringBuilder();
+ } else if (name.equals("version") && dependency) {
+ version = currentString.toString().trim();
+ currentString = new StringBuilder();
+ } else if (name.equals("type") && dependency) {
+ type = currentString.toString().trim();
+ currentString = new StringBuilder();
} else if (name.equals("dependency")) {
- if (null != groupId && null != artifactId) {
- dependencies.add(new Artifact(groupId, artifactId, (String) null, null));
+ if (parent) {
+ Artifact tmp = getArtifact();
+ parents.add(tmp);
+ parent = false;
+ } else if (dependency) {
+ Artifact tmp = child == null? getArtifact(): child;
+ register.register(tmp, parents);
+ dependency = false;
+ parents = null;
+ child = null;
}
- dependency = false;
- groupId = null;
- artifactId = null;
- } else if (name.equals("exclusions")) {
- exclusions = false;
}
}
+ private Artifact getArtifact() {
+ Artifact tmp = new Artifact(groupId, artifactId, version, type == null? "jar": type);
+ groupId = null;
+ artifactId = null;
+ version = null;
+ type = null;
+ return tmp;
+ }
+
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
- currentString = new String(ch, start, length);
+ if (dependency) {
+ currentString.append(ch, start, length);
+ }
}
}
\ No newline at end of file
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoader.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoader.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoader.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoader.java Fri Apr 10 18:35:10 2009
@@ -29,6 +29,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
+import java.util.Collections;
import java.util.concurrent.CopyOnWriteArraySet;
import org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader;
@@ -45,11 +46,18 @@
private final Artifact artifact;
private final Set<Artifact> dependencies;
- private final CopyOnWriteArraySet<GlobalClassLoaderListener> listeners;
- private final CopyOnWriteArraySet<String> resourcesNotFound;
- private final CopyOnWriteArraySet<GlobalClassLoader> flattenedParents;
+ private final CopyOnWriteArraySet<GlobalClassLoaderListener> listeners = new CopyOnWriteArraySet<GlobalClassLoaderListener>();
+ private final CopyOnWriteArraySet<String> resourcesNotFound = new CopyOnWriteArraySet<String>();
+ private final CopyOnWriteArraySet<GlobalClassLoader> flattenedParents = new CopyOnWriteArraySet<GlobalClassLoader>();
private ClassLoader[] parents;
-
+
+ public GlobalClassLoader(Artifact artifact, URL[] urls, ClassLoader[] parents) {
+ super(urls);
+ this.artifact = artifact;
+ this.parents = parents;
+ dependencies = Collections.emptySet();
+ }
+
public GlobalClassLoader(Artifact artifact, URL[] urls, Set<Artifact> dependencies) {
super(urls);
if (null == dependencies) {
@@ -58,9 +66,6 @@
this.artifact = artifact;
this.dependencies = dependencies;
- listeners = new CopyOnWriteArraySet<GlobalClassLoaderListener>();
- resourcesNotFound = new CopyOnWriteArraySet<String>();
- flattenedParents = new CopyOnWriteArraySet<GlobalClassLoader>();
parents = new ClassLoader[] { ClassLoader.getSystemClassLoader() };
}
@@ -215,14 +220,14 @@
for (ClassLoader parent : parents) {
Enumeration<URL> urls = parent.getResources(name);
while (urls.hasMoreElements()) {
- URL url = (URL) urls.nextElement();
+ URL url = urls.nextElement();
foundResources.add(url);
}
}
Enumeration<URL> urls = findResources(name);
while (urls.hasMoreElements()) {
- URL url = (URL) urls.nextElement();
+ URL url = urls.nextElement();
foundResources.add(url);
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoaderDependencyResolver.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoaderDependencyResolver.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoaderDependencyResolver.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoaderDependencyResolver.java Fri Apr 10 18:35:10 2009
@@ -29,5 +29,5 @@
* @version $Rev:$ $Date:$
*/
public interface GlobalClassLoaderDependencyResolver {
- Set<Artifact> resolve(Artifact artifact, URL[] urls);
+ void resolve(URL url, GlobalClassLoaderRegister register);
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoaderRegister.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoaderRegister.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoaderRegister.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/GlobalClassLoaderRegister.java Fri Apr 10 18:35:10 2009
@@ -19,6 +19,8 @@
package org.apache.geronimo.kernel.config.classloading;
+import java.util.Set;
+
import org.apache.geronimo.kernel.repository.Artifact;
/**
@@ -31,4 +33,10 @@
void unregister(GlobalClassLoader classLoader);
GlobalClassLoader retrieve(Artifact artifact);
+
+ void register(Artifact child, Set<Artifact> parents);
+
+ void unregister(Artifact artifact);
+
+ Set<Artifact> getParents(Artifact artifact);
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/MavenDependencyResolver.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/MavenDependencyResolver.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/MavenDependencyResolver.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/MavenDependencyResolver.java Fri Apr 10 18:35:10 2009
@@ -20,70 +20,72 @@
package org.apache.geronimo.kernel.config.classloading;
import java.io.IOException;
+import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
-import org.apache.geronimo.kernel.repository.Artifact;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
/**
- *
+ * Given a URL to an artifact in a maven repo, say <base>.jar, attempts to read dependencies out of
+ * the maven pom at <base>.pom and a geronimo specific <base>-additional.xml
+ *
* @version $Rev:$ $Date:$
*/
public class MavenDependencyResolver implements GlobalClassLoaderDependencyResolver {
+ private static final Logger log = LoggerFactory.getLogger(MavenDependencyResolver.class);
- public Set<Artifact> resolve(Artifact artifact, URL[] urls) {
- if (urls.length != 1) {
- return Collections.<Artifact>emptySet();
+ public void resolve(URL url, GlobalClassLoaderRegister register) {
+ try {
+ InputStream in = locateDependencyDeclaration(url);
+ try {
+ addDependencies(register, in);
+ } finally {
+ in.close();
+ }
+ } catch (IOException e) {
+ //ignore
}
- URL url = urls[0];
-
- Set<Artifact> dependencies = new HashSet<Artifact>();
-
- URL dependencyDeclaration = locateDependencyDeclaration(url);
- addDependencies(dependencies, dependencyDeclaration);
-
- dependencyDeclaration = locateAdditionalDependencyDeclaration(url);
- addDependencies(dependencies, dependencyDeclaration);
-
- return dependencies;
+
}
- protected void addDependencies(Set<Artifact> dependencies, URL dependencyDeclaration) {
+ void addDependencies(GlobalClassLoaderRegister register, InputStream dependencyDeclaration) {
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
SAXParser parser = factory.newSAXParser();
- parser.parse(dependencyDeclaration.openStream(), new DependencySAXHandler(dependencies));
+ parser.parse(dependencyDeclaration, new DependencySAXHandler(register));
+ } catch (NullPointerException e) {
+ log.error("error parsing " + dependencyDeclaration, e);
} catch (SAXException e) {
- e.printStackTrace();
+ log.error("error parsing " + dependencyDeclaration, e);
} catch (ParserConfigurationException e) {
- e.printStackTrace();
+ log.error("error parsing " + dependencyDeclaration, e);
} catch (IOException e) {
+ //missing/unreadable file
}
}
- protected URL locateDependencyDeclaration(URL url) {
- String urlAsString = url.toString();
- String pomAsString = trimExtension(urlAsString) + ".pom";
- try {
- return new URL(pomAsString);
- } catch (MalformedURLException e) {
- throw new AssertionError(e);
- }
- }
-
- protected URL locateAdditionalDependencyDeclaration(URL url) {
+ protected InputStream locateDependencyDeclaration(URL url) throws IOException {
String urlAsString = url.toString();
- String overrideAsString = trimExtension(urlAsString) + "-additional.xml";
+ String pomAsString = trimExtension(urlAsString) + ".plugin-metadata";
try {
- return new URL(overrideAsString);
+ try {
+ return new URL(pomAsString).openStream();
+ } catch (IOException e) {
+ String metadata = trimFile(urlAsString) + "/geronimo-plugin.xml";
+ try {
+ return new URL(metadata).openStream();
+ } catch (IOException e1) {
+ String internalMetadata = urlAsString + "/META-INF/geronimo-plugin.xml";
+ return new URL(internalMetadata).openStream();
+ }
+ }
} catch (MalformedURLException e) {
throw new AssertionError(e);
}
@@ -93,4 +95,8 @@
return urlAsString.substring(0, urlAsString.lastIndexOf('.'));
}
+ protected String trimFile(String urlAsString) {
+ return urlAsString.substring(0, urlAsString.lastIndexOf('/'));
+ }
+
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/MultiParentClassLoader2.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/MultiParentClassLoader2.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/MultiParentClassLoader2.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/MultiParentClassLoader2.java Fri Apr 10 18:35:10 2009
@@ -55,65 +55,62 @@
*/
public class MultiParentClassLoader2 extends URLClassLoader implements ConfigurationClassLoaderExtension {
private static final Logger log = LoggerFactory.getLogger(MultiParentClassLoader2.class);
+ //set up what kind of classloading strategy we will use.
- private final Artifact id;
- private final ClassLoader[] parents;
- private final ClassLoadingRules classLoadingRules;
- private boolean destroyed = false;
- private Set<String> resourcesNotFound = new HashSet<String>();
-
- // I used this pattern as its temporary and with the static final we get compile time
+ // I used this pattern as its temporary and with the static final we get compile time
// optimizations.
private final static int classLoaderSearchMode;
private final static int ORIGINAL_SEARCH = 1;
private final static int OPTIMIZED_SEARCH = 2;
private final static boolean LONG_CLASSLOADER_TO_STRING = false;
-
+
static {
- // Extract the classLoaderSearchMode if specified. If not, default to "safe".
- String mode = System.getProperty("Xorg.apache.geronimo.kernel.config.MPCLSearchOption");
- int runtimeMode = OPTIMIZED_SEARCH; // Default to optimized
- String runtimeModeMessage = "Original Classloading";
- if (mode != null) {
- if (mode.equals("safe")) {
+ // Extract the classLoaderSearchMode if specified. If not, default to "safe".
+ String mode = System.getProperty("Xorg.apache.geronimo.kernel.config.MPCLSearchOption");
+ int runtimeMode = OPTIMIZED_SEARCH; // Default to optimized
+ String runtimeModeMessage = "Original Classloading";
+ if (mode != null) {
+ if (mode.equals("safe")) {
runtimeMode = ORIGINAL_SEARCH;
runtimeModeMessage = "Safe ClassLoading";
- } else if (mode.equals("optimized"))
- runtimeMode = OPTIMIZED_SEARCH;
- }
-
- classLoaderSearchMode = runtimeMode;
- LoggerFactory.getLogger(MultiParentClassLoader2.class).info(
- "ClassLoading behaviour has changed. The "+runtimeModeMessage+" mode is in effect. If you are experiencing a problem\n"+
- "you can change the behaviour by specifying -DXorg.apache.geronimo.kernel.config.MPCLSearchOption= property. Specify \n"+
- "=\"safe\" to revert to the original behaviour. This is a temporary change until we decide whether or not to make it\n"+
- "permanent for the 2.0 release");
+ } else if (mode.equals("optimized"))
+ runtimeMode = OPTIMIZED_SEARCH;
+ }
+
+ classLoaderSearchMode = runtimeMode;
+ LoggerFactory.getLogger(MultiParentClassLoader2.class).info(
+ "ClassLoading behaviour has changed. The " + runtimeModeMessage + " mode is in effect. If you are experiencing a problem\n" +
+ "you can change the behaviour by specifying -DXorg.apache.geronimo.kernel.config.MPCLSearchOption= property. Specify \n" +
+ "=\"safe\" to revert to the original behaviour. This is a temporary change until we decide whether or not to make it\n" +
+ "permanent for the 2.0 release");
}
-
+
+
+ private final Artifact id;
+ //explicit parents, normally MultiParentClassLoader2 instances. These follow the classloading rules so can modify the visibility of
+ //contained classes.
+ private final ClassLoader[] parents;
+ private final ClassLoadingRules classLoadingRules;
+ private boolean destroyed = false;
+ private Set<String> resourcesNotFound = new HashSet<String>();
+
+ //jars "in" this classloader. These classloaders cannot affect the visibility of contained classes. The classloading rule inverseclassloading
+ //determines whether the parents or these classloaders are searched first.
private final Set<GlobalClassLoader> classloaders;
-
+
public MultiParentClassLoader2(Artifact id,
- Set<GlobalClassLoader> globalClassLoaders,
- ClassLoader[] parents,
- ClassLoadingRules classLoadingRules) {
+ Set<GlobalClassLoader> globalClassLoaders,
+ ClassLoader[] parents,
+ ClassLoadingRules classLoadingRules) {
super(new URL[0]);
this.id = id;
this.classloaders = globalClassLoaders;
this.parents = parents;
this.classLoadingRules = classLoadingRules;
-
- addParents(globalClassLoaders);
-
- ClassLoaderRegistry.add(this);
- }
- protected void addParents(Set<GlobalClassLoader> globalClassLoaders) {
- for (GlobalClassLoader globalClassLoader : globalClassLoaders) {
- for (ClassLoader parent : parents) {
- globalClassLoader.addParent(parent);
- }
- }
+
+ ClassLoaderRegistry.add(this);
}
/**
@@ -140,19 +137,19 @@
}
/**
- * TODO This method should be removed and replaced with the best classLoading option. Its intent is to
+ * TODO This method should be removed and replaced with the best classLoading option. Its intent is to
* provide a way for folks to switch back to the old classLoader if this fix breaks something.
*/
protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
- if (classLoaderSearchMode == ORIGINAL_SEARCH)
- return loadSafeClass(name, resolve);
- else
- return loadOptimizedClass(name, resolve);
+ if (classLoaderSearchMode == ORIGINAL_SEARCH)
+ return loadSafeClass(name, resolve);
+ else
+ return loadOptimizedClass(name, resolve);
}
-
+
/**
* This method executes the old class loading behaviour before optimization.
- *
+ *
* @param name
* @param resolve
* @return
@@ -223,22 +220,20 @@
}
throw new ClassNotFoundException(name + " in classloader " + id);
- }
-
+ }
+
/**
- *
* Optimized classloading.
- *
- * This method is the normal way to resolve class loads. This method recursively calls its parents to resolve
+ * <p/>
+ * This method is the normal way to resolve class loads. This method recursively calls its parents to resolve
* classloading requests. Here is the sequence of operations:
- *
- * 1. Call findLoadedClass to see if we already have this class loaded.
- * 2. If this class is a java.* or data primitive class, call the SystemClassLoader.
- * 3. If inverse loading and class is not in the non-overridable list, check the local ClassLoader.
- * 4. If the class is not a hidden class, search our parents, recursively. Keeping track of which parents have already been called.
- * Since MultiParentClassLoaders can appear more than once we do not search an already searched ClassLoader.
- * 5. Finally, search this ClassLoader.
- *
+ * <p/>
+ * 1. Call findLoadedClass to see if we already have this class loaded.
+ * 2. If this class is a java.* or data primitive class, call the SystemClassLoader.
+ * 3. If inverse loading and class is not in the non-overridable list, check the local ClassLoader.
+ * 4. If the class is not a hidden class, search our parents, recursively. Keeping track of which parents have already been called.
+ * Since MultiParentClassLoaders can appear more than once we do not search an already searched ClassLoader.
+ * 5. Finally, search this ClassLoader.
*/
protected synchronized Class<?> loadOptimizedClass(String name, boolean resolve) throws ClassNotFoundException {
@@ -261,7 +256,7 @@
name.equals("double") ||
name.equals("long")) {
try {
- return resolveClass(findSystemClass(name), resolve);
+ return resolveClass(findSystemClass(name), resolve);
} catch (ClassNotFoundException cnfe) {
// ignore...just being a good citizen.
}
@@ -277,18 +272,18 @@
} catch (ClassNotFoundException ignored) {
}
}
-
+
//
// Check parent class loaders
//
if (!isHiddenClass(name)) {
- try {
- LinkedList<ClassLoader> visitedClassLoaders = new LinkedList<ClassLoader>();
+ try {
+ LinkedList<ClassLoader> visitedClassLoaders = new LinkedList<ClassLoader>();
Class clazz = checkParents(name, resolve, visitedClassLoaders);
if (clazz != null) return resolveClass(clazz, resolve);
- } catch (ClassNotFoundException cnfe) {
- // ignore
- }
+ } catch (ClassNotFoundException cnfe) {
+ // ignore
+ }
}
//
@@ -307,7 +302,7 @@
throw new ClassNotFoundException(name + " in classloader " + id);
}
-
+
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
LinkedList<ClassLoader> visitedClassLoaders = new LinkedList<ClassLoader>();
@@ -326,13 +321,13 @@
}
throw new ClassNotFoundException();
}
-
+
/**
* This method is an internal hook that allows us to be performant on Class lookups when multiparent
* classloaders are involved. We can bypass certain lookups that have already occurred in the initiating
* classloader. Also, we track the classLoaders that are visited by adding them to an already vistied list.
* In this way, we can bypass redundant checks for the same class.
- *
+ *
* @param name
* @param visitedClassLoaders
* @return
@@ -352,13 +347,13 @@
//
if (!isHiddenClass(name)) {
try {
- Class clazz = checkParents(name, resolve, visitedClassLoaders);
- if (clazz != null) return resolveClass(clazz,resolve);
+ Class clazz = checkParents(name, resolve, visitedClassLoaders);
+ if (clazz != null) return resolveClass(clazz, resolve);
} catch (ClassNotFoundException cnfe) {
- // ignore
+ // ignore
}
}
-
+
//
// if we are not using inverse class loading, check local urls now
//
@@ -366,7 +361,7 @@
// have alredy checked he parent and the parent didn't have the
// class, so we can override now
if (!isDestroyed()) {
- Class clazz = findClass(name, visitedClassLoaders);
+ Class clazz = findClass(name, visitedClassLoaders);
return resolveClass(clazz, resolve);
}
@@ -374,12 +369,12 @@
}
/**
- * In order to optimize the classLoading process and visit a directed set of
- * classloaders this internal method for Geronimo MultiParentClassLoaders
+ * In order to optimize the classLoading process and visit a directed set of
+ * classloaders this internal method for Geronimo MultiParentClassLoaders
* is used. Effectively, as each classloader is visited it is passed a linked
* list of classloaders that have already been visited and can safely be skipped.
* This method assumes the context of an MPCL and is not for use external to this class.
- *
+ *
* @param name
* @param visitedClassLoaders
* @return
@@ -390,24 +385,24 @@
if (!visitedClassLoaders.contains(parent)) {
visitedClassLoaders.add(parent); // Track that we've been here before
try {
- if (parent instanceof MultiParentClassLoader2) {
- Class clazz = ((MultiParentClassLoader2) parent).loadClassInternal(name, resolve, visitedClassLoaders);
- if (clazz != null) return resolveClass(clazz, resolve);
- } else if (parent instanceof ChildrenConfigurationClassLoader) {
+ if (parent instanceof MultiParentClassLoader2) {
+ Class clazz = ((MultiParentClassLoader2) parent).loadClassInternal(name, resolve, visitedClassLoaders);
+ if (clazz != null) return resolveClass(clazz, resolve);
+ } else if (parent instanceof ChildrenConfigurationClassLoader) {
Class clazz = ((ChildrenConfigurationClassLoader) parent).loadClass(name, visitedClassLoaders);
if (clazz != null) return resolveClass(clazz, resolve);
- } else {
- return parent.loadClass(name);
- }
- } catch (ClassNotFoundException cnfe) {
+ } else {
+ return parent.loadClass(name);
+ }
+ } catch (ClassNotFoundException cnfe) {
// ignore
} catch (MalformedURLException me) {
log.debug("Failed findClass for {}", name, me);
}
}
- }
- // To avoid yet another CNFE we'll simply return null and let the caller handle appropriately.
- return null;
+ }
+ // To avoid yet another CNFE we'll simply return null and let the caller handle appropriately.
+ return null;
}
private boolean isNonOverridableClass(String name) {
@@ -488,7 +483,7 @@
}
return null;
}
-
+
public Enumeration<URL> findResources(String name) throws IOException {
if (isDestroyed()) {
return Collections.enumeration(Collections.EMPTY_SET);
@@ -501,7 +496,7 @@
return new UnionEnumeration<URL>(enumerations);
}
-
+
protected void recursiveFind(Set<ClassLoader> knownClassloaders, List<Enumeration<URL>> enumerations, String name) throws IOException {
if (isDestroyed() || knownClassloaders.contains(this)) {
return;
@@ -546,7 +541,7 @@
}
};
}
-
+
private boolean isNonOverridableResource(String name) {
ClassLoadingRule nonOverrideableRule = classLoadingRules.getNonOverrideableRule();
return nonOverrideableRule.isFilteredResource(name);
@@ -571,7 +566,7 @@
return;
}
if (childClassLoader instanceof MultiParentClassLoader2) {
- for (ClassLoader cl: ((MultiParentClassLoader2)childClassLoader).parents) {
+ for (ClassLoader cl : ((MultiParentClassLoader2) childClassLoader).parents) {
ancestors.add(cl);
getAncestorsInternal(ancestors, cl);
}
@@ -581,7 +576,7 @@
getAncestorsInternal(ancestors, cl);
}
}
-
+
public String toString() {
StringBuilder b = new StringBuilder();
if (LONG_CLASSLOADER_TO_STRING) {
@@ -596,14 +591,14 @@
b.append(indent).append("[").append(getClass().getName()).append(" id=").append(id).append("]\n");
b.append(indent).append("urls:\n");
String newIndent = indent + " ";
- for (URL url: getURLs()) {
+ for (URL url : getURLs()) {
b.append(newIndent).append(url).append("\n");
}
b.append(indent).append("parents:\n");
- for (ClassLoader cl: parents) {
+ for (ClassLoader cl : parents) {
if (cl instanceof MultiParentClassLoader2) {
- ((MultiParentClassLoader2)cl).toBuilder(b, newIndent);
+ ((MultiParentClassLoader2) cl).toBuilder(b, newIndent);
} else {
b.append(newIndent).append(cl.toString()).append("\n");
}
@@ -662,5 +657,5 @@
ClassLoaderRegistry.remove(this);
super.finalize();
}
-
+
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/OneClassLoaderPerJarClassLoaderBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/OneClassLoaderPerJarClassLoaderBuilder.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/OneClassLoaderPerJarClassLoaderBuilder.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/classloading/OneClassLoaderPerJarClassLoaderBuilder.java Fri Apr 10 18:35:10 2009
@@ -20,6 +20,7 @@
package org.apache.geronimo.kernel.config.classloading;
import java.net.URL;
+import java.net.MalformedURLException;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
@@ -29,27 +30,37 @@
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.ClassLoadingRules;
import org.apache.geronimo.kernel.repository.Environment;
+import org.apache.geronimo.kernel.repository.MissingDependencyException;
+import org.apache.geronimo.kernel.config.ConfigurationResolver;
/**
*
* @version $Rev:$ $Date:$
*/
public class OneClassLoaderPerJarClassLoaderBuilder {
- private static final GlobalClassLoaderRegister GLOBAL_CL_REGISTER = new BasicGlobalClassLoaderRegister();
+ public static final GlobalClassLoaderRegister GLOBAL_CL_REGISTER = new BasicGlobalClassLoaderRegister();
public ClassLoader build(Environment environment,
List<ClassLoader> parentClassLoaders,
ClassLoadingRules classLoadingRules,
- LinkedHashMap<Artifact, URL[]> artifactToURL) {
- Set<GlobalClassLoader> globalClassLoaders = retrieveGlobalClassLoaders(environment.getConfigId(), artifactToURL);
+ LinkedHashMap<Artifact, URL[]> artifactToURL,
+ ConfigurationResolver configurationResolver) throws MissingDependencyException, MalformedURLException {
+ Set<GlobalClassLoader> globalClassLoaders = retrieveGlobalClassLoaders(environment.getConfigId(), artifactToURL, configurationResolver);
return new MultiParentClassLoader2(environment.getConfigId(),
globalClassLoaders,
parentClassLoaders.toArray(new ClassLoader[parentClassLoaders.size()]),
classLoadingRules);
}
- protected Set<GlobalClassLoader> retrieveGlobalClassLoaders(Artifact configId, LinkedHashMap<Artifact, URL[]> urls) {
+ protected Set<GlobalClassLoader> retrieveGlobalClassLoaders(Artifact configId, LinkedHashMap<Artifact, URL[]> urls, ConfigurationResolver configurationResolver) throws MissingDependencyException, MalformedURLException {
Set<GlobalClassLoader> classloaders = new HashSet<GlobalClassLoader>();
+ URL artifactURL;
+ try {
+ artifactURL = configurationResolver.resolve(configId).toURL();
+ new MavenDependencyResolver().resolve(artifactURL, GLOBAL_CL_REGISTER);
+ } catch (MissingDependencyException e) {
+ //bootstrap configuration
+ }
for (Map.Entry<Artifact, URL[]> entry : urls.entrySet()) {
Artifact artifact = entry.getKey();
URL[] entryURLs = entry.getValue();
@@ -57,23 +68,39 @@
synchronized (GLOBAL_CL_REGISTER) {
classLoader = GLOBAL_CL_REGISTER.retrieve(artifact);
if (null == classLoader) {
- classLoader = newGlobalClassLoader(artifact, entryURLs);
- GLOBAL_CL_REGISTER.register(classLoader);
+ classLoader = newGlobalClassLoader(artifact, entryURLs, configurationResolver);
}
}
classloaders.add(classLoader);
}
-
- HierarchyHandler hierarchyHandler = new HierarchyHandler();
- hierarchyHandler.buildHierarchy(classloaders);
-
return classloaders;
}
- protected GlobalClassLoader newGlobalClassLoader(Artifact artifact, URL[] urls) {
- GlobalClassLoaderDependencyResolver resolver = new MavenDependencyResolver();
- Set<Artifact> dependencies = resolver.resolve(artifact, urls);
- return new GlobalClassLoader(artifact, urls, dependencies);
+ protected GlobalClassLoader newGlobalClassLoader(Artifact artifact, URL[] urls, ConfigurationResolver configurationResolver) throws MissingDependencyException, MalformedURLException {
+ Set<Artifact> parents;
+ try {
+ parents = GLOBAL_CL_REGISTER.getParents(artifact);
+ } catch (NullPointerException e) {
+ throw new MissingDependencyException("Unregistered artifact", null, artifact);
+ }
+ ClassLoader[] classLoaders;
+ if (parents != null && !parents.isEmpty()) {
+ classLoaders = new ClassLoader[parents.size()];
+ int i = 0;
+ for (Artifact parent: parents) {
+ GlobalClassLoader cl = GLOBAL_CL_REGISTER.retrieve(parent);
+ if (cl == null) {
+ URL url = configurationResolver.resolve(parent).toURL();
+ cl = newGlobalClassLoader(parent, new URL[] {url}, configurationResolver);
+ }
+ classLoaders[i++] = cl;
+ }
+ } else {
+ classLoaders = new ClassLoader[] {getClass().getClassLoader()};
+ }
+ GlobalClassLoader cl = new GlobalClassLoader(artifact, urls, classLoaders);
+ GLOBAL_CL_REGISTER.register(cl);
+ return cl;
}
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ImportType.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ImportType.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ImportType.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ImportType.java Fri Apr 10 18:35:10 2009
@@ -29,12 +29,12 @@
private static final Map typesByName = new HashMap();
// todo this class imples that there are only classes and services... is that true?
- public static final ImportType ALL = new ImportType("ALL");
- public static final ImportType CLASSES = new ImportType("CLASSES");
- public static final ImportType SERVICES = new ImportType("SERVICES");
+ public static final ImportType ALL = new ImportType("all");
+ public static final ImportType CLASSES = new ImportType("classes");
+ public static final ImportType SERVICES = new ImportType("services");
public static ImportType getByName(String name) {
- ImportType type = (ImportType) typesByName.get(name.toUpperCase());
+ ImportType type = (ImportType) typesByName.get(name.toLowerCase());
if (type == null) throw new IllegalStateException("Unknown import type: " + name);
return type;
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/config/ConfigurationManagerTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/config/ConfigurationManagerTest.java?rev=763999&r1=763998&r2=763999&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/config/ConfigurationManagerTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/config/ConfigurationManagerTest.java Fri Apr 10 18:35:10 2009
@@ -671,8 +671,6 @@
assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(artifactManagerData.getAbstractName()));
ArtifactManager artifactManager = (ArtifactManager) kernel.getGBean(artifactManagerData.getAbstractName());
- ListableRepository testRepository = new MockRepository(configurations.keySet());
- DefaultArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, testRepository);
artifact1 = new Artifact("test", "1", "1.1", "bar");
artifact2 = new Artifact("test", "2", "2.2", "bar");
@@ -712,6 +710,8 @@
configurations.put(artifact3NoVersion, configurationData3newer);
}
+ ListableRepository testRepository = new MockRepository(configurations.keySet());
+ DefaultArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, testRepository);
configurationManager = new KernelConfigurationManager(kernel,
Collections.singleton(configStore),