[jboss-cvs] JBossAS SVN: r108584 - in projects/jboss-deployers/trunk: deployers-impl/src/test/java/org/jboss/test/deployers/classloading and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 14 12:30:23 EDT 2010


Author: alesj
Date: 2010-10-14 12:30:21 -0400 (Thu, 14 Oct 2010)
New Revision: 108584

Added:
   projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoadingDomainUnitTestCase.java
Modified:
   projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/classloading/AbstractClassLoadingDomainDeployer.java
   projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/DeployersClassLoadingTestSuite.java
   projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoaderDependenciesTest.java
   projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/bootstrap/bootstrap.xml
Log:
CL domain metadata tests.

Modified: projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/classloading/AbstractClassLoadingDomainDeployer.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/classloading/AbstractClassLoadingDomainDeployer.java	2010-10-14 15:52:48 UTC (rev 108583)
+++ projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/classloading/AbstractClassLoadingDomainDeployer.java	2010-10-14 16:30:21 UTC (rev 108584)
@@ -62,7 +62,7 @@
    public void deploy(DeploymentUnit unit, ClassLoadingDomainMetaData deployment) throws DeploymentException
    {
       String name = deployment.getName();
-      if (name == null)
+      if (name == null || "<unknown>".equals(name))
          name = unit.getName();
 
       ParentPolicyMetaData ppmd = deployment.getParentPolicy();
@@ -92,7 +92,7 @@
    public void undeploy(DeploymentUnit unit, ClassLoadingDomainMetaData deployment)
    {
       String name = deployment.getName();
-      if (name == null)
+      if (name == null || "<unknown>".equals(name))
          name = unit.getName();
 
       // should be already removed, but let's make sure

Modified: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/DeployersClassLoadingTestSuite.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/DeployersClassLoadingTestSuite.java	2010-10-14 15:52:48 UTC (rev 108583)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/DeployersClassLoadingTestSuite.java	2010-10-14 16:30:21 UTC (rev 108584)
@@ -21,21 +21,17 @@
 */
 package org.jboss.test.deployers.classloading;
 
+import org.jboss.test.deployers.classloading.test.*;
+
 import junit.framework.Test;
 import junit.framework.TestSuite;
 import junit.textui.TestRunner;
 
-import org.jboss.test.deployers.classloading.test.ClassLoadingLifeCycleUnitTestCase;
-import org.jboss.test.deployers.classloading.test.MockClassLoaderDependenciesUnitTestCase;
-import org.jboss.test.deployers.classloading.test.ModuleRemoveUnitTestCase;
-import org.jboss.test.deployers.classloading.test.SubDeploymentMockClassLoaderUnitTestCase;
-import org.jboss.test.deployers.classloading.test.UndeployOrderClassLoaderUnitTestCase;
-import org.jboss.test.deployers.classloading.test.MockResourceVisitorDeployerUnitTestCase;
-
 /**
  * Deployers Deployer Test Suite.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision: 37459 $
  */
 public class DeployersClassLoadingTestSuite extends TestSuite
@@ -55,6 +51,7 @@
       suite.addTest(MockResourceVisitorDeployerUnitTestCase.suite());
       suite.addTest(ModuleRemoveUnitTestCase.suite());
       suite.addTest(ClassLoadingLifeCycleUnitTestCase.suite());
+      suite.addTest(ClassLoadingDomainUnitTestCase.suite());
 
       return suite;
    }

Modified: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoaderDependenciesTest.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoaderDependenciesTest.java	2010-10-14 15:52:48 UTC (rev 108583)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoaderDependenciesTest.java	2010-10-14 16:30:21 UTC (rev 108584)
@@ -31,7 +31,12 @@
 import org.jboss.classloader.spi.ParentPolicy;
 import org.jboss.classloading.spi.dependency.ClassLoading;
 import org.jboss.classloading.spi.dependency.policy.mock.MockClassLoadingMetaData;
-import org.jboss.classloading.spi.metadata.*;
+import org.jboss.classloading.spi.metadata.CapabilitiesMetaData;
+import org.jboss.classloading.spi.metadata.Capability;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
+import org.jboss.classloading.spi.metadata.Requirement;
+import org.jboss.classloading.spi.metadata.RequirementsMetaData;
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.classloading.spi.version.VersionRange;
 import org.jboss.deployers.client.spi.DeployerClient;
@@ -85,6 +90,11 @@
       super(name);
    }
 
+   protected ClassLoaderSystem getSystem()
+   {
+      return system;
+   }
+
    protected Class<?> assertLoadClass(ClassLoader start, Class<?> reference) throws Exception
    {
       return assertLoadClass(start, reference, start);

Copied: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoadingDomainUnitTestCase.java (from rev 104761, projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoadingLifeCycleUnitTestCase.java)
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoadingDomainUnitTestCase.java	                        (rev 0)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/classloading/test/ClassLoadingDomainUnitTestCase.java	2010-10-14 16:30:21 UTC (rev 108584)
@@ -0,0 +1,129 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2010, Red Hat Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.deployers.classloading.test;
+
+import org.jboss.classloading.spi.metadata.ClassLoadingDomainMetaData;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
+import org.jboss.classloading.spi.metadata.FilterMetaData;
+import org.jboss.classloading.spi.metadata.ParentPolicyMetaData;
+import org.jboss.deployers.client.spi.DeployerClient;
+import org.jboss.deployers.client.spi.Deployment;
+import org.jboss.deployers.plugins.classloading.AbstractClassLoadingDomainDeployer;
+import org.jboss.deployers.spi.deployer.Deployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.test.deployers.classloading.support.a.A;
+import org.jboss.test.deployers.classloading.support.b.B;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * ClassLoadingDomainUnitTestCase
+ *
+ * @author ales.justin at jboss.org
+ */
+public class ClassLoadingDomainUnitTestCase extends ClassLoaderDependenciesTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(ClassLoadingDomainUnitTestCase.class);
+   }
+
+   public ClassLoadingDomainUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   @Override
+   protected DeployerClient getMainDeployer(Deployer... deployers)
+   {
+      AbstractClassLoadingDomainDeployer deployer = new AbstractClassLoadingDomainDeployer();
+      DeployerClient mainDeployer = super.getMainDeployer(deployer);
+      deployer.setSystem(getSystem());
+      return mainDeployer;
+   }
+
+   public void testSmoke() throws Exception
+   {
+      DeployerClient mainDeployer = getMainDeployer();
+
+      Deployment deployment = createSimpleDeployment(NameA);
+      addClassLoadingMetaData(deployment, deployment.getName(), null);
+
+      ClassLoadingDomainMetaData cldmd = new ClassLoadingDomainMetaData();
+      addMetaData(deployment, cldmd, ClassLoadingDomainMetaData.class);
+
+      DeploymentUnit unit = assertDeploy(mainDeployer, deployment);
+      try
+      {
+         assertDomain(unit.getName());
+      }
+      finally
+      {
+         mainDeployer.undeploy(deployment);
+      }
+   }
+
+   public void testParentPolicy() throws Exception
+   {
+      DeployerClient mainDeployer = getMainDeployer();
+
+      Deployment deploymentA = createSimpleDeployment(NameA);
+      addClassLoadingMetaData(deploymentA, deploymentA.getName(), null, A.class, B.class);
+      DeploymentUnit unitA = assertDeploy(mainDeployer, deploymentA);
+      try
+      {
+         ClassLoader clA = unitA.getClassLoader();
+         assertLoadClass(clA, A.class);
+         assertLoadClass(clA, B.class);
+
+         Deployment deploymentB = createSimpleDeployment(NameB);
+         ClassLoadingMetaData clmd = addClassLoadingMetaData(deploymentB, deploymentB.getName(), null);
+         addRequirePackage(clmd, A.class, null);
+         ClassLoadingDomainMetaData cldmd = new ClassLoadingDomainMetaData();
+         ParentPolicyMetaData ppmd = new ParentPolicyMetaData();
+         FilterMetaData bfmd = new FilterMetaData();
+         bfmd.setValueString(A.class.getPackage().getName());
+         ppmd.setBeforeFilter(bfmd);
+         cldmd.setParentPolicy(ppmd);
+         addMetaData(deploymentB, cldmd, ClassLoadingDomainMetaData.class);
+
+         DeploymentUnit unitB = assertDeploy(mainDeployer, deploymentB);
+         try
+         {
+            ClassLoader clB = unitB.getClassLoader();
+            assertLoadClass(clB, A.class, clA);
+            assertLoadClassFail(clB, B.class);
+         }
+         finally
+         {
+            mainDeployer.undeploy(deploymentB);
+         }
+      }
+      finally
+      {
+         mainDeployer.undeploy(deploymentA);
+      }
+
+
+   }
+}

Modified: projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/bootstrap/bootstrap.xml
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/bootstrap/bootstrap.xml	2010-10-14 15:52:48 UTC (rev 108583)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/bootstrap/bootstrap.xml	2010-10-14 16:30:21 UTC (rev 108584)
@@ -105,6 +105,13 @@
       <property name="name">jboss-classloading.xml</property>
       <property name="buildManagedObject">true</property>
    </bean>
+   <bean name="ClassLoadingDomainMetaDataParser" class="org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer">
+      <constructor>
+         <parameter>org.jboss.classloading.spi.metadata.ClassLoadingDomainMetaData</parameter>
+      </constructor>
+      <property name="name">jboss-classloading-domain.xml</property>
+      <property name="buildManagedObject">true</property>
+   </bean>
    <bean name="DeploymentMetaDataParser" class="org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer">
       <constructor>
          <parameter>org.jboss.deployers.spi.classloading.DeploymentMetaData</parameter>
@@ -126,6 +133,9 @@
    <bean name="ClassLoaderDescribeDeployer" class="org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderDescribeDeployer">
       <property name="classLoading"><inject bean="ClassLoading"/></property>
    </bean>
+   <bean name="ClassLoadingDomainDeployer" class="org.jboss.deployers.plugins.classloading.AbstractClassLoadingDomainDeployer">
+      <property name="system"><inject bean="ClassLoaderSystem"/></property>
+   </bean>
    <bean name="ClassLoaderDeployer" class="org.jboss.deployers.plugins.classloading.AbstractLevelClassLoaderSystemDeployer">
       <property name="classLoading"><inject bean="ClassLoading"/></property>
       <property name="system"><inject bean="ClassLoaderSystem"/></property>



More information about the jboss-cvs-commits mailing list