[jboss-cvs] JBossAS SVN: r102091 - in projects/weld-int/trunk: deployer and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 8 17:08:59 EST 2010
Author: alesj
Date: 2010-03-08 17:08:59 -0500 (Mon, 08 Mar 2010)
New Revision: 102091
Modified:
projects/weld-int/trunk/deployer/pom.xml
projects/weld-int/trunk/deployer/src/test/java/org/jboss/test/deployers/test/BootDeployerTestCase.java
projects/weld-int/trunk/pom.xml
Log:
Test Kernel's class leak.
Modified: projects/weld-int/trunk/deployer/pom.xml
===================================================================
--- projects/weld-int/trunk/deployer/pom.xml 2010-03-08 22:07:11 UTC (rev 102090)
+++ projects/weld-int/trunk/deployer/pom.xml 2010-03-08 22:08:59 UTC (rev 102091)
@@ -170,6 +170,27 @@
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-mdr</artifactId>
+ <optional>true</optional>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-reflect</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-common-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-spi</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
<!-- Test dependencies -->
<dependency>
Modified: projects/weld-int/trunk/deployer/src/test/java/org/jboss/test/deployers/test/BootDeployerTestCase.java
===================================================================
--- projects/weld-int/trunk/deployer/src/test/java/org/jboss/test/deployers/test/BootDeployerTestCase.java 2010-03-08 22:07:11 UTC (rev 102090)
+++ projects/weld-int/trunk/deployer/src/test/java/org/jboss/test/deployers/test/BootDeployerTestCase.java 2010-03-08 22:08:59 UTC (rev 102091)
@@ -23,13 +23,23 @@
import javax.naming.Context;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Map;
+
import junit.framework.Test;
+import org.jboss.beans.metadata.api.annotations.Inject;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.dependency.plugins.AbstractController;
+import org.jboss.dependency.plugins.tracker.AbstractContextRegistry;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.deployers.client.spi.DeployerClient;
import org.jboss.deployers.client.spi.Deployment;
import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.kernel.plugins.bootstrap.basic.KernelConstants;
+import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.test.deployers.support.deployer.CheckableJndiBinderDeployer;
import org.jboss.virtual.VirtualFile;
@@ -42,9 +52,12 @@
*/
public class BootDeployerTestCase extends AbstractWeldTest
{
+ private KernelController controller;
+
public BootDeployerTestCase(String name)
{
super(name);
+ setAutowireCandidate(true);
}
public static Test suite()
@@ -52,6 +65,12 @@
return suite(BootDeployerTestCase.class);
}
+ @Inject(bean = KernelConstants.KERNEL_CONTROLLER_NAME)
+ public void setController(KernelController controller)
+ {
+ this.controller = controller;
+ }
+
protected void testBootstrap(VirtualFile ear) throws Exception
{
// should already be on the deployer
@@ -67,6 +86,7 @@
DeployerClient mainDeployer = getDeployerClient();
mainDeployer.addDeployment(deployment);
mainDeployer.process();
+ ControllerContext wbContext = null;
try
{
DeploymentUnit earDU = getMainDeployerStructure().getDeploymentUnit(deployment.getName());
@@ -91,6 +111,11 @@
duSimpleName = earDU.getSimpleName();
Context context = assertInstanceOf(bmContext.lookup(duSimpleName), Context.class, false);
assertSame(bootstrap, context.lookup("bootstrap"));
+
+ Class<?> wbClass = earDU.getClassLoader().loadClass("org.jboss.test.deployers.support.CheckableBootstrap");
+ wbContext = controller.getContextByClass(wbClass);
+ assertNotNull(wbContext);
+ assertSame(bootstrap, wbContext.getTarget());
}
finally
{
@@ -104,6 +129,28 @@
// clear binding
assertNull(bmContext.lookup(duSimpleName));
+
+ // clear context 2 class mapping
+ if (wbContext != null)
+ assertNull(wbContext.getTarget());
+
+ Field registryField = AbstractController.class.getDeclaredField("registry");
+ registryField.setAccessible(true);
+ Object registry = registryField.get(controller);
+ Field mapField = AbstractContextRegistry.class.getDeclaredField("contextsByClass");
+ mapField.setAccessible(true);
+ Map<Class<?>, ?> map = (Map) mapField.get(registry);
+ for (Class<?> clazz : map.keySet())
+ {
+ String className = clazz.getName();
+ // should be the only one -- no other service/bean should use it -- except if we leak
+ if ("org.jboss.test.deployers.support.CheckableBootstrap".equals(className))
+ {
+
+ Object value = map.get(clazz);
+ fail("" + value);
+ }
+ }
}
assertTrue(invoke(bootstrap, "Shutdown"));
}
Modified: projects/weld-int/trunk/pom.xml
===================================================================
--- projects/weld-int/trunk/pom.xml 2010-03-08 22:07:11 UTC (rev 102090)
+++ projects/weld-int/trunk/pom.xml 2010-03-08 22:08:59 UTC (rev 102091)
@@ -29,11 +29,12 @@
<version.jboss.interceptor>1.0.0-CR11</version.jboss.interceptor>
<version.jboss.vfs>2.2.0.Alpha2</version.jboss.vfs>
<version.jboss.man>2.1.1.SP1</version.jboss.man>
- <version.jboss.microcontainer>2.2.0.Alpha4</version.jboss.microcontainer>
+ <version.jboss.mdr>2.2.0.Alpha2</version.jboss.mdr>
+ <version.jboss.microcontainer>2.2.0-SNAPSHOT</version.jboss.microcontainer>
<version.jboss.cl>2.2.0.Alpha1</version.jboss.cl>
<version.jboss.deployers>2.2.0.Alpha1</version.jboss.deployers>
<version.jboss.common.core>2.2.17.GA</version.jboss.common.core>
- <version.jboss.logging.spi>2.2.0.CR1</version.jboss.logging.spi>
+ <version.jboss.logging.spi>2.1.1.GA</version.jboss.logging.spi>
<version.jboss.classloading.spi>6.0.0-Alpha8</version.jboss.classloading.spi>
<version.jboss.transaction.spi>6.0.0-Alpha8</version.jboss.transaction.spi>
<version.jboss.metadata>2.0.0-alpha-5</version.jboss.metadata>
@@ -301,6 +302,12 @@
</dependency>
<dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-mdr</artifactId>
+ <version>${version.jboss.mdr}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.kernel</groupId>
<artifactId>jboss-dependency</artifactId>
<version>${version.jboss.microcontainer}</version>
@@ -310,6 +317,12 @@
<groupId>org.jboss.kernel</groupId>
<artifactId>jboss-kernel</artifactId>
<version>${version.jboss.microcontainer}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-mdr</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
@@ -331,6 +344,12 @@
</dependency>
<dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-log4j</artifactId>
+ <version>${version.jboss.logging.spi}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.integration</groupId>
<artifactId>jboss-classloading-spi</artifactId>
<version>${version.jboss.classloading.spi}</version>
More information about the jboss-cvs-commits
mailing list