gdamour     2004/08/07 04:22:13

  Modified:    modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment
                        MockConnectorConfigBuilder.java
                        EARConfigBuilderTest.java MockEJBConfigBuilder.java
                        MockWARConfigBuilder.java
               modules/j2ee/src/java/org/apache/geronimo/j2ee/deployment
                        EARConfigBuilder.java ModuleBuilder.java
               
modules/connector/src/java/org/apache/geronimo/connector/deployment
                        ConnectorModuleBuilder.java
               modules/jetty/src/java/org/apache/geronimo/jetty/deployment
                        JettyModuleBuilder.java
               modules/j2ee maven.xml
  Added:       modules/j2ee/src/test-unpacked-ear/META-INF
                        geronimo-application.xml application.xml
  Removed:     modules/j2ee/src/java/org/apache/geronimo/j2ee/deployment
                        ModuleBuilderWithUnpack.java
  Log:
  o Supports deployment of unpacked EARs. An unpacked EAR can contain either 
(standard) packed or unpacked
  WAR, EJB JAR and RAR.
  
  o Gets rid of the ModuleBuilderWithUnpack interface as OpenEJB supports by 
now deployment of unpacked EJB JAR.
  
  Revision  Changes    Path
  1.4       +2 -2      
incubator-geronimo/modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment/MockConnectorConfigBuilder.java
  
  Index: MockConnectorConfigBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment/MockConnectorConfigBuilder.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MockConnectorConfigBuilder.java   23 Jul 2004 06:06:19 -0000      1.3
  +++ MockConnectorConfigBuilder.java   7 Aug 2004 11:22:12 -0000       1.4
  @@ -30,7 +30,7 @@
   /**
    * @version $Revision$ $Date$
    */
  -public class MockConnectorConfigBuilder extends Assert implements 
ModuleBuilderWithUnpack {
  +public class MockConnectorConfigBuilder extends Assert implements 
ModuleBuilder {
       public EARContext earContext;
       public Module connectorModule;
       public ClassLoader cl;
  
  
  
  1.8       +81 -45    
incubator-geronimo/modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTest.java
  
  Index: EARConfigBuilderTest.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTest.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- EARConfigBuilderTest.java 6 Aug 2004 22:44:37 -0000       1.7
  +++ EARConfigBuilderTest.java 7 Aug 2004 11:22:12 -0000       1.8
  @@ -35,7 +35,11 @@
   public class EARConfigBuilderTest extends TestCase {
   
       private static String EAR_BASE_DIR;
  -
  +    private static String EAR_PATH;
  +    private static MockEJBConfigBuilder ejbConfigBuilder = new 
MockEJBConfigBuilder();
  +    private static MockWARConfigBuilder webConfigBuilder = new 
MockWARConfigBuilder();
  +    private static MockConnectorConfigBuilder connectorConfigBuilder = new 
MockConnectorConfigBuilder();
  +    
       private static final String j2eeServerName = "someDomain";
       private static final ObjectName j2eeServer = 
JMXUtil.getObjectName(j2eeServerName + 
":j2eeType=J2EEServer,name=J2EEServerName");
       private static final ObjectName transactionManagerObjectName = 
JMXUtil.getObjectName(j2eeServerName + ":type=TransactionManager");
  @@ -47,7 +51,25 @@
           TestSuite inner = new TestSuite(EARConfigBuilderTest.class);
           TestSetup setup14 = new TestSetup(inner) {
               protected void setUp() {
  -                EARConfigBuilderTest.EAR_BASE_DIR = "target/test-ear14";
  +                EAR_BASE_DIR = "target/test-ear14";
  +                EAR_PATH = "test-ear.ear";
  +                ejbConfigBuilder.ejbModule = new 
EJBModule("test-ejb-jar.jar", URI.create("test-ejb-jar.jar"));
  +                webConfigBuilder.contextRoot = "test";
  +                webConfigBuilder.webModule = new WebModule("test-war.war", 
URI.create("test-war.war"), "test");
  +                connectorConfigBuilder.connectorModule = new 
ConnectorModule("test-rar.rar", URI.create("test-rar.rar"));
  +            }
  +
  +            protected void tearDown() {
  +            }
  +        };
  +        TestSetup setupNaked14 = new TestSetup(inner) {
  +            protected void setUp() {
  +                EAR_BASE_DIR = "target/test-ear14";
  +                EAR_PATH = "test-naked-ear.ear";
  +                ejbConfigBuilder.ejbModule = new 
EJBModule("test-ejb-jar.jar", URI.create("test-ejb-jar.jar"));
  +                webConfigBuilder.contextRoot = "test";
  +                webConfigBuilder.webModule = new WebModule("test-war.war", 
URI.create("test-war.war"), "test");
  +                connectorConfigBuilder.connectorModule = new 
ConnectorModule("test-rar.rar", URI.create("test-rar.rar"));
               }
   
               protected void tearDown() {
  @@ -55,53 +77,73 @@
           };
           TestSetup setup13 = new TestSetup(inner) {
               protected void setUp() {
  -                EARConfigBuilderTest.EAR_BASE_DIR = "target/test-ear13";
  +                EAR_BASE_DIR = "target/test-ear13";
  +                EAR_PATH = "test-ear.ear";
  +                ejbConfigBuilder.ejbModule = new 
EJBModule("test-ejb-jar.jar", URI.create("test-ejb-jar.jar"));
  +                webConfigBuilder.contextRoot = "test";
  +                webConfigBuilder.webModule = new WebModule("test-war.war", 
URI.create("test-war.war"), "test");
  +                connectorConfigBuilder.connectorModule = new 
ConnectorModule("test-rar.rar", URI.create("test-rar.rar"));
  +            }
  +
  +            protected void tearDown() {
  +            }
  +        };
  +        TestSetup setupNaked13 = new TestSetup(inner) {
  +            protected void setUp() {
  +                EAR_BASE_DIR = "target/test-ear13";
  +                EAR_PATH = "test-naked-ear.ear";
  +                ejbConfigBuilder.ejbModule = new 
EJBModule("test-ejb-jar.jar", URI.create("test-ejb-jar.jar"));
  +                webConfigBuilder.contextRoot = "test";
  +                webConfigBuilder.webModule = new WebModule("test-war.war", 
URI.create("test-war.war"), "test");
  +                connectorConfigBuilder.connectorModule = new 
ConnectorModule("test-rar.rar", URI.create("test-rar.rar"));
  +            }
  +
  +            protected void tearDown() {
  +            }
  +        };
  +        TestSetup setupUnpacked = new TestSetup(inner) {
  +            protected void setUp() {
  +                EAR_BASE_DIR = "target/test-unpacked-ear";
  +                EAR_PATH = "full/";
  +                ejbConfigBuilder.ejbModule = new EJBModule("test-ejb-jar/", 
URI.create("test-ejb-jar/"));
  +                webConfigBuilder.contextRoot = "test";
  +                webConfigBuilder.webModule = new WebModule("test-war/", 
URI.create("test-war/"), "test");
  +                connectorConfigBuilder.connectorModule = new 
ConnectorModule("test-rar.rar", URI.create("test-rar.rar"));
               }
   
               protected void tearDown() {
               }
           };
  +        TestSetup setupUnpackedNaked = new TestSetup(inner) {
  +            protected void setUp() {
  +                EAR_BASE_DIR = "target/test-unpacked-ear";
  +                EAR_PATH = "naked/";
  +                ejbConfigBuilder.ejbModule = new EJBModule("test-ejb-jar/", 
URI.create("test-ejb-jar/"));
  +                webConfigBuilder.contextRoot = "test";
  +                webConfigBuilder.webModule = new WebModule("test-war/", 
URI.create("test-war/"), "test");
  +                connectorConfigBuilder.connectorModule = new 
ConnectorModule("test-rar.rar", URI.create("test-rar.rar"));
  +            }
  +
  +            protected void tearDown() {
  +            }
  +        };
  +        
           TestSuite suite = new TestSuite();
           suite.addTest(setup14);
  +        suite.addTest(setupNaked14);
           suite.addTest(setup13);
  +        suite.addTest(setupNaked13);
  +        suite.addTest(setupUnpacked);
  +        suite.addTest(setupUnpackedNaked);
           return suite;
       }
   
       public void testBuildConfiguration() throws Exception {
  -        MockEJBConfigBuilder ejbConfigBuilder = new MockEJBConfigBuilder();
  -        MockWARConfigBuilder webConfigBuilder = new MockWARConfigBuilder();
  -        MockConnectorConfigBuilder connectorConfigBuilder = new 
MockConnectorConfigBuilder();
           EARConfigBuilder configBuilder = new EARConfigBuilder(j2eeServer, 
transactionManagerObjectName, connectionTrackerObjectName, 
transactionalTimerObjectName, nonTransactionalTimerObjectName, null, 
ejbConfigBuilder, null, webConfigBuilder, connectorConfigBuilder, null);
  -        File earFile = new File(EAR_BASE_DIR + "/test-ear.ear");
  +        File earFile = new File(EAR_BASE_DIR + "/" + EAR_PATH);
   
           File carFile = File.createTempFile("EARTest", ".car");
           try {
  -            ejbConfigBuilder.ejbModule = new EJBModule("test-ejb-jar.jar", 
URI.create("test-ejb-jar.jar"));
  -            webConfigBuilder.contextRoot = "test";
  -            webConfigBuilder.webModule = new WebModule("test-war.war", 
URI.create("test-war.war"), "test");
  -            connectorConfigBuilder.connectorModule = new 
ConnectorModule("test-rar.rar", URI.create("test-rar.rar"));
  -
  -            XmlObject plan = 
configBuilder.getDeploymentPlan(earFile.toURL());
  -            configBuilder.buildConfiguration(carFile, null, earFile, plan);
  -        } finally {
  -            carFile.delete();
  -        }
  -    }
  -
  -    public void testNakedEarBuildConfiguration() throws Exception {
  -        MockEJBConfigBuilder ejbConfigBuilder = new MockEJBConfigBuilder();
  -        MockWARConfigBuilder webConfigBuilder = new MockWARConfigBuilder();
  -        MockConnectorConfigBuilder connectorConfigBuilder = new 
MockConnectorConfigBuilder();
  -        EARConfigBuilder configBuilder = new EARConfigBuilder(j2eeServer, 
transactionManagerObjectName, connectionTrackerObjectName, 
transactionalTimerObjectName, nonTransactionalTimerObjectName, null, 
ejbConfigBuilder, null, webConfigBuilder, connectorConfigBuilder, null);
  -        File earFile = new File(EAR_BASE_DIR + "/test-naked-ear.ear");
  -
  -        File carFile = File.createTempFile("EARTest", ".car");
  -        try {
  -            ejbConfigBuilder.ejbModule = new EJBModule("test-ejb-jar.jar", 
URI.create("test-ejb-jar.jar"));
  -            webConfigBuilder.contextRoot = "test";
  -            webConfigBuilder.webModule = new WebModule("test-war.war", 
URI.create("test-war.war"), "test");
  -            connectorConfigBuilder.connectorModule = new 
ConnectorModule("test-rar.rar", URI.create("test-rar.rar"));
  -
               XmlObject plan = 
configBuilder.getDeploymentPlan(earFile.toURL());
               configBuilder.buildConfiguration(carFile, null, earFile, plan);
           } finally {
  @@ -110,10 +152,8 @@
       }
   
       public void testNoEJBDeployer() throws Exception {
  -        MockWARConfigBuilder warConfigBuilder = new MockWARConfigBuilder();
  -        MockConnectorConfigBuilder connectorConfigBuilder = new 
MockConnectorConfigBuilder();
  -        EARConfigBuilder configBuilder = new EARConfigBuilder(j2eeServer, 
transactionManagerObjectName, connectionTrackerObjectName, 
transactionalTimerObjectName, nonTransactionalTimerObjectName, null, null, 
null, warConfigBuilder, connectorConfigBuilder, null);
  -        File earFile = new File(EAR_BASE_DIR + "/test-ear.ear");
  +        EARConfigBuilder configBuilder = new EARConfigBuilder(j2eeServer, 
transactionManagerObjectName, connectionTrackerObjectName, 
transactionalTimerObjectName, nonTransactionalTimerObjectName, null, null, 
null, webConfigBuilder, connectorConfigBuilder, null);
  +        File earFile = new File(EAR_BASE_DIR + "/" + EAR_PATH);
   
           File carFile = File.createTempFile("EARTest", ".car");
           try {
  @@ -128,10 +168,8 @@
       }
   
       public void testNoWARDeployer() throws Exception {
  -        MockEJBConfigBuilder ejbConfigBuilder = new MockEJBConfigBuilder();
  -        MockConnectorConfigBuilder connectorConfigBuilder = new 
MockConnectorConfigBuilder();
           EARConfigBuilder configBuilder = new EARConfigBuilder(j2eeServer, 
transactionManagerObjectName, connectionTrackerObjectName, 
transactionalTimerObjectName, nonTransactionalTimerObjectName, null, 
ejbConfigBuilder, null, null, connectorConfigBuilder, null);
  -        File earFile = new File(EAR_BASE_DIR + "/test-ear.ear");
  +        File earFile = new File(EAR_BASE_DIR + "/" + EAR_PATH);
   
           File carFile = File.createTempFile("EARTest", ".car");
           try {
  @@ -146,10 +184,8 @@
       }
   
       public void testNoConnectorDeployer() throws Exception {
  -        MockWARConfigBuilder warConfigBuilder = new MockWARConfigBuilder();
  -        MockEJBConfigBuilder ejbConfigBuilder = new MockEJBConfigBuilder();
  -        EARConfigBuilder configBuilder = new EARConfigBuilder(j2eeServer, 
transactionManagerObjectName, connectionTrackerObjectName, 
transactionalTimerObjectName, nonTransactionalTimerObjectName, null, 
ejbConfigBuilder, null, warConfigBuilder, null, null);
  -        File earFile = new File(EAR_BASE_DIR + "/test-ear.ear");
  +        EARConfigBuilder configBuilder = new EARConfigBuilder(j2eeServer, 
transactionManagerObjectName, connectionTrackerObjectName, 
transactionalTimerObjectName, nonTransactionalTimerObjectName, null, 
ejbConfigBuilder, null, webConfigBuilder, null, null);
  +        File earFile = new File(EAR_BASE_DIR + "/" + EAR_PATH);
   
           File carFile = File.createTempFile("EARTest", ".car");
           try {
  
  
  
  1.3       +10 -1     
incubator-geronimo/modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment/MockEJBConfigBuilder.java
  
  Index: MockEJBConfigBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment/MockEJBConfigBuilder.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MockEJBConfigBuilder.java 18 Jul 2004 22:04:27 -0000      1.2
  +++ MockEJBConfigBuilder.java 7 Aug 2004 11:22:12 -0000       1.3
  @@ -16,11 +16,13 @@
    */
   package org.apache.geronimo.j2ee.deployment;
   
  +import java.io.File;
   import java.net.URI;
   import java.net.URL;
   import java.util.jar.JarFile;
   
   import junit.framework.Assert;
  +
   import org.apache.xmlbeans.XmlObject;
   import org.apache.xmlbeans.SchemaTypeLoader;
   
  @@ -50,6 +52,13 @@
   
       public Module createModule(String name, XmlObject plan) {
           return null;
  +    }
  +
  +    public void installModule(File earFolder, EARContext earContext, Module 
module) {
  +        assertNotNull(earFolder);
  +        assertNotNull(earContext);
  +        this.earContext = earContext;
  +        assertEquals(this.ejbModule, ejbModule);
       }
   
       public void installModule(JarFile earFile, EARContext earContext, Module 
ejbModule) {
  
  
  
  1.4       +2 -2      
incubator-geronimo/modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment/MockWARConfigBuilder.java
  
  Index: MockWARConfigBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/j2ee/src/test/org/apache/geronimo/j2ee/deployment/MockWARConfigBuilder.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MockWARConfigBuilder.java 23 Jul 2004 06:06:19 -0000      1.3
  +++ MockWARConfigBuilder.java 7 Aug 2004 11:22:12 -0000       1.4
  @@ -29,7 +29,7 @@
   /**
    * @version $Revision$ $Date$
    */
  -public class MockWARConfigBuilder extends Assert implements 
ModuleBuilderWithUnpack {
  +public class MockWARConfigBuilder extends Assert implements ModuleBuilder {
       public EARContext earContext;
       public WebModule webModule;
       public ClassLoader cl;
  
  
  
  1.1                  
incubator-geronimo/modules/j2ee/src/test-unpacked-ear/META-INF/geronimo-application.xml
  
  Index: geronimo-application.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--
  
      Copyright 2004 The Apache Software Foundation
  
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
  
  <application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application";
      configId="org/apache/geronimo/j2ee/deployment/test"
      parentId="org/apache/geronimo/Server">
  
      <!-- a random gbean just to verify that the deployer doesn't die because 
of it -->
      <gbean name="foo:j2eeType=J2EEDomain,name=foo" 
class="org.apache.geronimo.j2ee.management.impl.J2EEDomainImpl"/>
  
  </application>
  
  
  1.1                  
incubator-geronimo/modules/j2ee/src/test-unpacked-ear/META-INF/application.xml
  
  Index: application.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--
  
      Copyright 2004 The Apache Software Foundation
  
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
  <application xmlns="http://java.sun.com/xml/ns/j2ee";
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/application_1_4.xsd";
      version="1.4">
      <description>description</description>
      <display-name>display-name</display-name>
      <icon>
        <small-icon>url/to/small/icon</small-icon>
        <large-icon>url/to/large/icon</large-icon>
      </icon>
      <module>
          <web>
              <!-- supports an exploded WAR within an exploded EAR -->
              <web-uri>test-war/</web-uri>
              <context-root>test</context-root>
          </web>
      </module>
      <module>
          <ejb>test-ejb-jar/</ejb>
      </module>
      <module>
          <!-- supports a standard RAR within an exploded RAR -->
          <connector>test-rar.rar</connector>
      </module>
  </application>
  
  
  
  1.19      +21 -14    
incubator-geronimo/modules/j2ee/src/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java
  
  Index: EARConfigBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/j2ee/src/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- EARConfigBuilder.java     6 Aug 2004 22:44:36 -0000       1.18
  +++ EARConfigBuilder.java     7 Aug 2004 11:22:12 -0000       1.19
  @@ -70,8 +70,8 @@
       private final Kernel kernel;
       private final Repository repository;
       private final ModuleBuilder ejbConfigBuilder;
  -    private final ModuleBuilderWithUnpack webConfigBuilder;
  -    private final ModuleBuilderWithUnpack connectorConfigBuilder;
  +    private final ModuleBuilder webConfigBuilder;
  +    private final ModuleBuilder connectorConfigBuilder;
       private final EJBReferenceBuilder ejbReferenceBuilder;
       private final String j2eeServerName;
       private final String j2eeDomainName;
  @@ -82,7 +82,7 @@
       private final ObjectName nonTransactionalTimerObjectName;
   
   
  -    public EARConfigBuilder(ObjectName j2eeServer, ObjectName 
transactionContextManagerObjectName, ObjectName connectionTrackerObjectName, 
ObjectName transactionalTimerObjectName, ObjectName 
nonTransactionalTimerObjectName, Repository repository, ModuleBuilder 
ejbConfigBuilder, EJBReferenceBuilder ejbReferenceBuilder, 
ModuleBuilderWithUnpack webConfigBuilder, ModuleBuilderWithUnpack 
connectorConfigBuilder, Kernel kernel) {
  +    public EARConfigBuilder(ObjectName j2eeServer, ObjectName 
transactionContextManagerObjectName, ObjectName connectionTrackerObjectName, 
ObjectName transactionalTimerObjectName, ObjectName 
nonTransactionalTimerObjectName, Repository repository, ModuleBuilder 
ejbConfigBuilder, EJBReferenceBuilder ejbReferenceBuilder, ModuleBuilder 
webConfigBuilder, ModuleBuilder connectorConfigBuilder, Kernel kernel) {
           this.kernel = kernel;
           this.repository = repository;
           this.j2eeServer = j2eeServer;
  @@ -213,6 +213,9 @@
               if (id.endsWith(".ear")) {
                   id = id.substring(0, id.length() - 4);
               }
  +            if ( id.endsWith("/") ) {
  +                id = id.substring(0, id.length() - 1);
  +            }
               id = id.substring(id.lastIndexOf('/') + 1);
           }
   
  @@ -251,7 +254,16 @@
                   for (Iterator iter = files.iterator(); iter.hasNext();) {
                       File file = (File) iter.next();
                       URI path = baseURI.relativize(file.toURI());
  -                    if (moduleLocations.contains(path.toString())) {
  +                    boolean isNestedModuleFile = false;
  +                    // skips the files contained by a nested module.
  +                    for (Iterator iter2 = moduleLocations.iterator(); 
iter2.hasNext();) {
  +                        String moduleLocation = (String) iter2.next();
  +                        if ( path.toString().startsWith(moduleLocation) ) {
  +                            isNestedModuleFile = true;
  +                            break;
  +                        }
  +                    }
  +                    if ( isNestedModuleFile ) {
                           continue;
                       }
                       earContext.addFile(path, file);
  @@ -259,13 +271,7 @@
               }
   
               public void installModule(ModuleBuilder moduleBuilder, 
EARContext earContext, Module module) throws IOException, DeploymentException {
  -                if (false == module instanceof ConnectorModule &&
  -                        false == module instanceof WebModule) {
  -                    throw new DeploymentException("Only unpacked RARs and 
WARs (in unpacked EAR) are supported.");
  -                }
  -                // TODO gets rid of this cast when all the ModuleBuilder will
  -                // support unpacked deployments.
  -                ((ModuleBuilderWithUnpack) 
moduleBuilder).installModule(earFolder, earContext, module);
  +                moduleBuilder.installModule(earFolder, earContext, module);
               }
   
               public void release() {
  @@ -452,6 +458,7 @@
                       if (webConfigBuilder == null) {
                           throw new DeploymentException("Can not deploy web 
application; No war deployer defined: " + webModule.getURI());
                       }
  +
                       moduleLocations.add(uri.toString());
                       webModules.add(webModule);
                   } else if (module.isSetConnector()) {
  @@ -648,8 +655,8 @@
           infoFactory.addReference("Repository", Repository.class);
           infoFactory.addReference("EJBConfigBuilder", ModuleBuilder.class);
           infoFactory.addReference("EJBReferenceBuilder", 
EJBReferenceBuilder.class);
  -        infoFactory.addReference("WebConfigBuilder", 
ModuleBuilderWithUnpack.class);
  -        infoFactory.addReference("ConnectorConfigBuilder", 
ModuleBuilderWithUnpack.class);
  +        infoFactory.addReference("WebConfigBuilder", ModuleBuilder.class);
  +        infoFactory.addReference("ConnectorConfigBuilder", 
ModuleBuilder.class);
   
           infoFactory.addAttribute("kernel", Kernel.class, false);
   
  
  
  
  1.3       +4 -1      
incubator-geronimo/modules/j2ee/src/java/org/apache/geronimo/j2ee/deployment/ModuleBuilder.java
  
  Index: ModuleBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/j2ee/src/java/org/apache/geronimo/j2ee/deployment/ModuleBuilder.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ModuleBuilder.java        18 Jul 2004 22:04:27 -0000      1.2
  +++ ModuleBuilder.java        7 Aug 2004 11:22:12 -0000       1.3
  @@ -16,6 +16,7 @@
    */
   package org.apache.geronimo.j2ee.deployment;
   
  +import java.io.File;
   import java.net.URI;
   import java.net.URL;
   import java.util.jar.JarFile;
  @@ -38,6 +39,8 @@
       URI getParentId(XmlObject plan) throws DeploymentException;
   
       URI getConfigId(XmlObject plan) throws DeploymentException;
  +
  +    void installModule(File earFolder, EARContext earContext, Module module) 
throws DeploymentException;
   
       void installModule(JarFile earFile, EARContext earContext, Module 
module) throws DeploymentException;
   
  
  
  
  1.12      +5 -4      
incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java
  
  Index: ConnectorModuleBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ConnectorModuleBuilder.java       4 Aug 2004 12:05:34 -0000       1.11
  +++ ConnectorModuleBuilder.java       7 Aug 2004 11:22:12 -0000       1.12
  @@ -68,7 +68,6 @@
   import org.apache.geronimo.j2ee.deployment.EARContext;
   import org.apache.geronimo.j2ee.deployment.Module;
   import org.apache.geronimo.j2ee.deployment.ModuleBuilder;
  -import org.apache.geronimo.j2ee.deployment.ModuleBuilderWithUnpack;
   import org.apache.geronimo.xbeans.geronimo.GerAdminobjectInstanceType;
   import org.apache.geronimo.xbeans.geronimo.GerAdminobjectType;
   import org.apache.geronimo.xbeans.geronimo.GerConfigPropertySettingType;
  @@ -102,7 +101,7 @@
   /**
    * @version $Revision$ $Date$
    */
  -public class ConnectorModuleBuilder implements ModuleBuilderWithUnpack {
  +public class ConnectorModuleBuilder implements ModuleBuilder {
   
       private static final SchemaTypeLoader SCHEMA_TYPE_LOADER = 
XmlBeans.typeLoaderUnion(new SchemaTypeLoader[]{
           
XmlBeans.typeLoaderForClassLoader(org.apache.geronimo.xbeans.j2ee.String.class.getClassLoader()),
  @@ -196,6 +195,9 @@
           try {
               if (!module.getURI().equals(URI.create("/"))) {
                   ZipEntry rarEntry = 
earFile.getEntry(module.getURI().toString());
  +                if ( null == rarEntry ) {
  +                    throw new DeploymentException("Can not find RAR file " + 
module.getURI());
  +                }
                   // Unpack the nested RAR.
                   File tempFile = 
FileUtil.toTempFile(earFile.getInputStream(rarEntry));
                   rarFile = new JarFile(tempFile);
  @@ -922,7 +924,6 @@
       static {
           GBeanInfoFactory infoFactory = new 
GBeanInfoFactory(ConnectorModuleBuilder.class);
           infoFactory.addInterface(ModuleBuilder.class);
  -        infoFactory.addInterface(ModuleBuilderWithUnpack.class);
           GBEAN_INFO = infoFactory.getBeanInfo();
       }
   
  
  
  
  1.21      +5 -10     
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
  
  Index: JettyModuleBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- JettyModuleBuilder.java   6 Aug 2004 22:44:37 -0000       1.20
  +++ JettyModuleBuilder.java   7 Aug 2004 11:22:13 -0000       1.21
  @@ -42,7 +42,6 @@
   import javax.management.MalformedObjectNameException;
   import javax.management.ObjectName;
   import javax.management.ReflectionException;
  -import javax.naming.NamingException;
   import javax.transaction.UserTransaction;
   
   import org.apache.geronimo.common.xml.XmlBeansUtil;
  @@ -55,14 +54,11 @@
   import org.apache.geronimo.j2ee.deployment.EARContext;
   import org.apache.geronimo.j2ee.deployment.Module;
   import org.apache.geronimo.j2ee.deployment.ModuleBuilder;
  -import org.apache.geronimo.j2ee.deployment.ModuleBuilderWithUnpack;
   import org.apache.geronimo.j2ee.deployment.WebModule;
   import org.apache.geronimo.jetty.JettyWebAppContext;
   import org.apache.geronimo.jetty.JettyWebAppJACCContext;
   import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
  -import org.apache.geronimo.naming.java.ComponentContextBuilder;
   import org.apache.geronimo.naming.java.ReadOnlyContext;
  -import org.apache.geronimo.naming.jmx.JMXReferenceFactory;
   import org.apache.geronimo.schema.SchemaConversionUtils;
   import org.apache.geronimo.security.deploy.DefaultPrincipal;
   import org.apache.geronimo.security.deploy.Principal;
  @@ -71,9 +67,6 @@
   import org.apache.geronimo.security.deploy.Security;
   import org.apache.geronimo.transaction.UserTransactionImpl;
   import org.apache.geronimo.xbeans.geronimo.jetty.*;
  -import org.apache.geronimo.xbeans.j2ee.EjbLocalRefType;
  -import org.apache.geronimo.xbeans.j2ee.EjbRefType;
  -import org.apache.geronimo.xbeans.j2ee.EnvEntryType;
   import org.apache.geronimo.xbeans.j2ee.ResourceRefType;
   import org.apache.geronimo.xbeans.j2ee.WebAppDocument;
   import org.apache.geronimo.xbeans.j2ee.WebAppType;
  @@ -86,7 +79,7 @@
   /**
    * @version $Revision$ $Date$
    */
  -public class JettyModuleBuilder implements ModuleBuilderWithUnpack {
  +public class JettyModuleBuilder implements ModuleBuilder {
       static final SchemaTypeLoader SCHEMA_TYPE_LOADER = 
XmlBeans.typeLoaderUnion(new SchemaTypeLoader[]{
           
XmlBeans.typeLoaderForClassLoader(org.apache.geronimo.xbeans.j2ee.String.class.getClassLoader()),
           
XmlBeans.typeLoaderForClassLoader(JettyWebAppDocument.class.getClassLoader())
  @@ -220,6 +213,9 @@
           try {
               if (!webModule.getURI().equals(URI.create("/"))) {
                   ZipEntry warEntry = 
earFile.getEntry(webModule.getURI().toString());
  +                if ( null == warEntry ) {
  +                    throw new DeploymentException("Can not find WAR file " + 
webModule.getURI());
  +                }
                   // Unpack the nested JAR.
                   File tempFile = 
FileUtil.toTempFile(earFile.getInputStream(warEntry));
                   webAppFile = new JarFile(tempFile);
  @@ -650,7 +646,6 @@
       static {
           GBeanInfoFactory infoFactory = new 
GBeanInfoFactory(JettyModuleBuilder.class);
           infoFactory.addInterface(ModuleBuilder.class);
  -        infoFactory.addInterface(ModuleBuilderWithUnpack.class);
           GBEAN_INFO = infoFactory.getBeanInfo();
       }
   
  
  
  
  1.5       +29 -1     incubator-geronimo/modules/j2ee/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/j2ee/maven.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- maven.xml 1 Aug 2004 20:14:19 -0000       1.4
  +++ maven.xml 7 Aug 2004 11:22:13 -0000       1.5
  @@ -45,10 +45,14 @@
           <j:set var="ear.target.base.dir" 
value="${basedir}/target/test-ear13"/>
   
           <attainGoal name="setupEar"/>
  +        
  +        <attainGoal name="setupUnpackedEar"/>
       </preGoal>
   
       <goal name="setupEar">
           <ant:mkdir dir="${ear.target.base.dir}/test-ejb-jar/META-INF"/>
  +        
  +        <ant:mkdir dir="${ear.target.base.dir}/test-ejb-jar/META-INF"/>
           <copy todir="${ear.target.base.dir}/test-ejb-jar/META-INF">
               <fileset dir="${ear.src.base.dir}/test-ejb-jar/META-INF"/>
           </copy>
  @@ -96,4 +100,28 @@
               </fileset>
           </ant:jar>
       </goal>
  +
  +    <goal name="setupUnpackedEar">
  +        <j:set var="ear.unpacked.relative" value="full"/>
  +        <attainGoal name="setupBaseUnpackedEar"/>
  +        <copy 
todir="${basedir}/target/test-unpacked-ear/${ear.unpacked.relative}/META-INF">
  +            <fileset dir="${basedir}/src/test-unpacked-ear/META-INF"/>
  +        </copy>
  +        
  +        <j:set var="ear.unpacked.relative" value="naked"/>
  +        <attainGoal name="setupBaseUnpackedEar"/>
  +        <copy 
todir="${basedir}/target/test-unpacked-ear/${ear.unpacked.relative}/META-INF">
  +            <fileset dir="${basedir}/src/test-unpacked-ear/META-INF">
  +                <include name="application.xml"/>
  +            </fileset>
  +        </copy>
  +    </goal>
  +    
  +    <goal name="setupBaseUnpackedEar">
  +        <ant:mkdir 
dir="${basedir}/target/test-unpacked-ear/${ear.unpacked.relative}/META-INF"/>
  +        <ant:mkdir 
dir="${basedir}/target/test-unpacked-ear/${ear.unpacked.relative}/test-ejb-jar"/>
  +        <ant:mkdir 
dir="${basedir}/target/test-unpacked-ear/${ear.unpacked.relative}/test-war"/>
  +        <ant:touch 
file="${basedir}/target/test-unpacked-ear/${ear.unpacked.relative}/test-rar.rar"/>
  +    </goal>
  +
   </project>
  
  
  

Reply via email to