[jboss-cvs] JBossAS SVN: r57378 - in trunk/tomcat: . src/resources src/tests/org/jboss/test/deployers

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 3 01:47:30 EDT 2006


Author: scott.stark at jboss.org
Date: 2006-10-03 01:47:26 -0400 (Tue, 03 Oct 2006)
New Revision: 57378

Added:
   trunk/tomcat/src/resources/war-deployers-beans.xml
   trunk/tomcat/src/tests/org/jboss/test/deployers/jboss-web24-ex1.xml
Modified:
   trunk/tomcat/.classpath
   trunk/tomcat/src/tests/org/jboss/test/deployers/WebAppParsingDeployerTestCase.java
   trunk/tomcat/src/tests/org/jboss/test/deployers/web24-ex1.xml
Log:
Tests of the web metadata deployers

Modified: trunk/tomcat/.classpath
===================================================================
--- trunk/tomcat/.classpath	2006-10-03 05:44:39 UTC (rev 57377)
+++ trunk/tomcat/.classpath	2006-10-03 05:47:26 UTC (rev 57378)
@@ -40,7 +40,7 @@
 	<classpathentry combineaccessrules="false" kind="src" path="/system-jmx"/>
 	<classpathentry sourcepath="/home/svn/JBossMC/jbossmc/deployers/src/main" kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-deployers.jar"/>
 	<classpathentry sourcepath="/home/svn/JBossMC/jbossmc/container/src/main" kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-container.jar"/>
-	<classpathentry sourcepath="/home/svn/JBossHead/projects/test/trunk/test/src/main" kind="lib" path="/thirdparty/jboss/test/lib/jboss-test.jar"/>
+	<classpathentry sourcepath="C:/svn/JBossHead/projects/test/test/src/main" kind="lib" path="/thirdparty/jboss/test/lib/jboss-test.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/junit/lib/junit.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/aop/lib/jboss-aop-jdk50.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>

Added: trunk/tomcat/src/resources/war-deployers-beans.xml
===================================================================
--- trunk/tomcat/src/resources/war-deployers-beans.xml	2006-10-03 05:44:39 UTC (rev 57377)
+++ trunk/tomcat/src/resources/war-deployers-beans.xml	2006-10-03 05:47:26 UTC (rev 57378)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Web application deployers
+$Id:$
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!-- web.xml parsing deployer -->
+   <bean name="WebAppParsingDeployer" class="org.jboss.deployment.WebAppParsingDeployer">
+      <install bean="MainDeployer" method="addDeployer">
+         <parameter><this/></parameter>
+      </install>
+      <uninstall bean="MainDeployer" method="removeDeployer">
+         <parameter><this/></parameter>
+      </uninstall>
+   </bean>
+   <bean name="WebAppParsingDeployer" class="org.jboss.deployment.JBossWebAppParsingDeployer">
+      <install bean="MainDeployer" method="addDeployer">
+         <parameter><this/></parameter>
+      </install>
+      <uninstall bean="MainDeployer" method="removeDeployer">
+         <parameter><this/></parameter>
+      </uninstall>
+   </bean>
+
+</deployment>

Modified: trunk/tomcat/src/tests/org/jboss/test/deployers/WebAppParsingDeployerTestCase.java
===================================================================
--- trunk/tomcat/src/tests/org/jboss/test/deployers/WebAppParsingDeployerTestCase.java	2006-10-03 05:44:39 UTC (rev 57377)
+++ trunk/tomcat/src/tests/org/jboss/test/deployers/WebAppParsingDeployerTestCase.java	2006-10-03 05:47:26 UTC (rev 57378)
@@ -1,15 +1,35 @@
 package org.jboss.test.deployers;
 
 import java.net.URL;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
 import org.jboss.deployers.plugins.deployer.AbstractDeploymentUnit;
+import org.jboss.deployers.plugins.deployment.MainDeployerImpl;
 import org.jboss.deployers.plugins.structure.AbstractDeploymentContext;
 import org.jboss.deployers.spi.deployer.DeploymentUnit;
+import org.jboss.deployers.spi.structure.DeploymentContext;
+import org.jboss.deployers.spi.structure.StructureDetermined;
+import org.jboss.metadata.EjbLocalRefMetaData;
+import org.jboss.metadata.EnvEntryMetaData;
+import org.jboss.metadata.WebMetaData;
+import org.jboss.metadata.web.ParamValue;
 import org.jboss.test.BaseTestCase;
 import org.jboss.virtual.VFS;
 import org.jboss.virtual.VirtualFile;
-import org.jboss.web.tomcat.deployers.WebAppParsingDeployer;
+import org.jboss.deployment.JBossWebAppParsingDeployer;
+import org.jboss.deployment.WebAppParsingDeployer;
 
+/**
+ * This is a test of the org.jboss.deployment.WebAppParsingDeployer deployer. It should be in a server related testsuite, but
+ * including such a test in the server project slows the workspace build so its here until there is better
+ * separation of tests/projects.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision:$
+ */
 public class WebAppParsingDeployerTestCase extends BaseTestCase
 {
 
@@ -18,21 +38,102 @@
       super(name);
    }
 
+   @Override
+   protected void setUp() throws Exception
+   {
+      System.setProperty("org.jboss.test.logging.LogginPlugin",
+            "org.jboss.test.logging.Log4jConsoleLoggingPlugin");
+      super.setUp();
+   }
+
    /**
-    * 
+    * Parse a servlet 2.4 web.xml descriptor
     * @throws Exception
     */
    public void testWebApp24Ex1()
       throws Exception
    {
+      log.info("testWebApp24Ex1");
       DeploymentUnit unit = createDeploymentUnit("org/jboss/test/deployers");
       WebAppParsingDeployer deployer = new WebAppParsingDeployer();
+
       deployer.setWebXmlPath("web24-ex1.xml");
       deployer.deploy(unit);
-      Object dd = unit.getTransientManagedObjects().getAttachment("web24-ex1.xml");
-      log.debug("web.xml DD: "+dd);
+      WebMetaData dd = unit.getAttachment(WebMetaData.class);
+      assertNotNull("WebMetaData dd", dd);
+      validateWebMetaData24Ex1(dd, false);
    }
 
+   public void testWebAppJBossWebApp()
+      throws Exception
+   {
+      DeploymentUnit unit = createDeploymentUnit("org/jboss/test/deployers");
+      MainDeployerImpl md = new MainDeployerImpl();
+      WebAppParsingDeployer d1 = new WebAppParsingDeployer();
+      d1.setWebXmlPath("web24-ex1.xml");
+      md.addDeployer(d1);
+      JBossWebAppParsingDeployer d2 = new JBossWebAppParsingDeployer();
+      md.addDeployer(d2);
+      d2.setWebXmlPath("jboss-web24-ex1.xml");
+      DeploymentContext ctx = unit.getDeploymentContext();
+      ctx.setStructureDetermined(StructureDetermined.PREDETERMINED);
+      md.addDeploymentContext(ctx);
+      md.process();
+      
+      WebMetaData dd = unit.getAttachment(WebMetaData.class);
+      assertNotNull("WebMetaData dd", dd);
+      validateWebMetaData24Ex1(dd, true);
+   }
+
+   protected void validateWebMetaData24Ex1(WebMetaData dd, boolean hasJBossWeb)
+   {
+      assertEquals("web-app/description", "Web App 2.4 Descriptor", dd.getDescription());
+      assertEquals("web-app/display-name", "Web App 2.4 Descriptor on Display", dd.getDisplayName());
+      assertEquals("web-app/distributable", true, dd.getDistributable());
+      // web-app/context-param
+      List<ParamValue> contextParams = dd.getContextParams();
+      assertEquals("context-params.size = 1", 1, contextParams.size());
+      ParamValue pv = contextParams.get(0);
+      assertEquals("pv.description", "A test context-param", pv.getDescription());
+      assertEquals("pv.name", "contextParam1", pv.getName());
+      assertEquals("pv.value", "contextParam1Value", pv.getValue());
+      // web-app/ejb-local-ref
+      Map<String, EjbLocalRefMetaData> ejbLocalRefs = dd.getEjbLocalReferenceMap();
+      assertEquals("ejb-local-ref.size = 1", 1, ejbLocalRefs.size());
+      EjbLocalRefMetaData elrmd = ejbLocalRefs.get("SomeLocalEJB");
+      assertNotNull("SomeLocalEJB", elrmd);
+      assertEquals("SomeLocalEJB", elrmd.getName());
+      assertEquals("SomeLocalEJB.Local", "org.jboss.ejb.ISomeLocal", elrmd.getLocal());
+      assertEquals("SomeLocalEJB.LocalHome", "org.jboss.ejb.ISomeLocalHome", elrmd.getLocalHome());
+      assertEquals("SomeLocalEJB.Type", "Session", elrmd.getType());
+      // web-app/env-entry
+      HashSet<String> expectedNames = new HashSet<String>();
+      expectedNames.add("aString");
+      expectedNames.add("anInt");
+      Iterator<EnvEntryMetaData> envEntryIter = dd.getEnvironmentEntries();
+      while( envEntryIter.hasNext() )
+      {
+         EnvEntryMetaData entry = envEntryIter.next();
+         if( entry.getName().endsWith("aString") )
+         {
+            assertEquals("type is String", "java.lang.String", entry.getType());
+            assertEquals("aStringValue", "aStringValue", entry.getValue());
+         }
+         else if( entry.getName().endsWith("anInt") )
+         {
+            assertEquals("type is Integer", "java.lang.Integer", entry.getType());
+            assertEquals("aStringValue", "123456", entry.getValue());
+         }
+         expectedNames.remove(entry.getName());
+      }
+      assertEquals("All expected names seen", 0, expectedNames.size());
+      if( hasJBossWeb == false )
+         return;
+      
+      String contextRoot = dd.getContextRoot();
+      assertEquals("context-root", "testWebAppJBossWebApp", contextRoot);
+   }
+
    /**
     * 
     * @param root

Added: trunk/tomcat/src/tests/org/jboss/test/deployers/jboss-web24-ex1.xml
===================================================================
--- trunk/tomcat/src/tests/org/jboss/test/deployers/jboss-web24-ex1.xml	2006-10-03 05:44:39 UTC (rev 57377)
+++ trunk/tomcat/src/tests/org/jboss/test/deployers/jboss-web24-ex1.xml	2006-10-03 05:47:26 UTC (rev 57378)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE jboss-web PUBLIC
+        "-//JBoss//DTD Web Application 2.3V2//EN"
+    "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
+
+<jboss-web>
+    <context-root>testWebAppJBossWebApp</context-root>
+</jboss-web>

Modified: trunk/tomcat/src/tests/org/jboss/test/deployers/web24-ex1.xml
===================================================================
--- trunk/tomcat/src/tests/org/jboss/test/deployers/web24-ex1.xml	2006-10-03 05:44:39 UTC (rev 57377)
+++ trunk/tomcat/src/tests/org/jboss/test/deployers/web24-ex1.xml	2006-10-03 05:47:26 UTC (rev 57378)
@@ -33,7 +33,13 @@
     <env-entry>
         <env-entry-name>aString</env-entry-name>
         <env-entry-type>java.lang.String</env-entry-type>
+        <env-entry-value>aStringValue</env-entry-value>
     </env-entry>
+    <env-entry>
+        <env-entry-name>anInt</env-entry-name>
+        <env-entry-type>java.lang.Integer</env-entry-type>
+        <env-entry-value>123456</env-entry-value>
+    </env-entry>
 
     <!-- ### Security -->
     <security-constraint>




More information about the jboss-cvs-commits mailing list