Author: dain
Date: Wed Sep 19 18:14:10 2007
New Revision: 577489

URL: http://svn.apache.org/viewvc?rev=577489&view=rev
Log:
Merging 576624 from trunk
Enable annotation processing for collapsed ears in Tomcat

Added:
    
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatWebAppBuilder.java
      - copied unchanged from r576624, 
openejb/trunk/openejb3/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatWebAppBuilder.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ConnectorInfo.java
      - copied unchanged from r576624, 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ConnectorInfo.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/WebAppBuilder.java
      - copied unchanged from r576624, 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/WebAppBuilder.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/WebAppInfo.java
      - copied unchanged from r576624, 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/WebAppInfo.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java
      - copied unchanged from r576624, 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java
    openejb/branches/3.0-beta-1/examples/servlet-samples/   (props changed)
      - copied from r576624, openejb/trunk/openejb3/examples/servlet-samples/
    openejb/branches/3.0-beta-1/examples/servlet-samples/pom.xml
      - copied unchanged from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/pom.xml
    openejb/branches/3.0-beta-1/examples/servlet-samples/src/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/
    openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/
    openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/
    openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/org/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/org/
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/org/apache/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/org/apache/
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/org/apache/openejb/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/org/apache/openejb/
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/org/apache/openejb/examples/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/org/apache/openejb/examples/
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/org/apache/openejb/examples/servlet/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/org/apache/openejb/examples/servlet/
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/org/apache/openejb/examples/servlet/AnnotatedEJB.java
      - copied unchanged from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/org/apache/openejb/examples/servlet/AnnotatedEJB.java
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/org/apache/openejb/examples/servlet/AnnotatedEJBLocal.java
      - copied unchanged from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/org/apache/openejb/examples/servlet/AnnotatedEJBLocal.java
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/java/org/apache/openejb/examples/servlet/AnnotatedServlet.java
      - copied unchanged from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/java/org/apache/openejb/examples/servlet/AnnotatedServlet.java
    openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/resources/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/resources/
    openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/webapp/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/webapp/
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/webapp/WEB-INF/
      - copied from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/webapp/WEB-INF/
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/webapp/WEB-INF/web.xml
      - copied unchanged from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/webapp/WEB-INF/web.xml
    
openejb/branches/3.0-beta-1/examples/servlet-samples/src/main/webapp/index.jsp
      - copied unchanged from r576624, 
openejb/trunk/openejb3/examples/servlet-samples/src/main/webapp/index.jsp
Removed:
    
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatWarBuilder.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ResourceModule.java
Modified:
    openejb/branches/3.0-beta-1/assembly/openejb-tomcat/maven.xml
    
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/GlobalListenerSupport.java
    
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatLoader.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
    
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java
    openejb/branches/3.0-beta-1/examples/pom.xml

Modified: openejb/branches/3.0-beta-1/assembly/openejb-tomcat/maven.xml
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/assembly/openejb-tomcat/maven.xml?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- openejb/branches/3.0-beta-1/assembly/openejb-tomcat/maven.xml (original)
+++ openejb/branches/3.0-beta-1/assembly/openejb-tomcat/maven.xml Wed Sep 19 
18:14:10 2007
@@ -214,6 +214,10 @@
       </j:if>
     </goal>
 
+    <goal name="setup:ejb-examples">
+      <mkdir dir="${tomcat.home}/webapps/ejb-examples"/>
+      <unjar 
src="${user.home}/.m2/repository/org/apache/openejb/servlet-samples/1.0-SNAPSHOT/servlet-samples-1.0-SNAPSHOT.war"
 dest="${tomcat.home}/webapps/ejb-examples"/>
+    </goal>
 
     <!--======================-->
     <!--   Testing profiles   -->
@@ -224,6 +228,7 @@
       <attainGoal name="setup:tomcat"/>
       <attainGoal name="setup:loader-webapp"/>
       <attainGoal name="setup:itests"/>
+      <attainGoal name="setup:ejb-examples"/>
       <attainGoal name="start:tomcat"/>
     </goal>
 
@@ -232,6 +237,7 @@
       <attainGoal name="setup:tomcat"/>
       <attainGoal name="setup:loader-webapp"/>
       <attainGoal name="setup:itests"/>
+      <attainGoal name="setup:ejb-examples"/>
       <attainGoal name="start:tomcat-debug"/>
     </goal>
 

Modified: 
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/GlobalListenerSupport.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/GlobalListenerSupport.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/GlobalListenerSupport.java
 (original)
+++ 
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/GlobalListenerSupport.java
 Wed Sep 19 18:14:10 2007
@@ -78,6 +78,10 @@
         }
     }
 
+    public void stop() {
+        standardServer.removePropertyChangeListener(this);
+    }
+
     private void serviceAdded(Service service) {
         Container container = service.getContainer();
         if (container instanceof StandardEngine) {
@@ -161,6 +165,7 @@
         }
     }
 
+    @SuppressWarnings({"UnusedDeclaration"})
     private void contextRemoved(StandardContext context) {
     }
 

Modified: 
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatLoader.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatLoader.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatLoader.java
 (original)
+++ 
openejb/branches/3.0-beta-1/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatLoader.java
 Wed Sep 19 18:14:10 2007
@@ -18,6 +18,7 @@
 package org.apache.openejb.tomcat;
 
 import org.apache.openejb.OpenEJB;
+import org.apache.openejb.assembler.classic.WebAppBuilder;
 import org.apache.openejb.core.ServerFederation;
 import org.apache.openejb.core.ThreadContext;
 import org.apache.openejb.loader.Loader;
@@ -48,10 +49,10 @@
 
         ThreadContext.addThreadContextListener(new 
TomcatThreadContextListener());
 
-        TomcatWarBuilder warBuilder = 
SystemInstance.get().getComponent(TomcatWarBuilder.class);
-        if (warBuilder == null) {
-            TomcatWarBuilder tomcatWarBuilder = new TomcatWarBuilder();
-            tomcatWarBuilder.start();
+        if (SystemInstance.get().getComponent(WebAppBuilder.class) == null) {
+            TomcatWebAppBuilder tomcatWebAppBuilder = new 
TomcatWebAppBuilder();
+            tomcatWebAppBuilder.start();
+            SystemInstance.get().setComponent(WebAppBuilder.class, 
tomcatWebAppBuilder);
         }
 
         SystemInstance.init(props);

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
 Wed Sep 19 18:14:10 2007
@@ -26,6 +26,8 @@
     public String jarPath;
     public final List<ClientInfo> clients = new ArrayList<ClientInfo>();
     public final List<EjbJarInfo> ejbJars = new ArrayList<EjbJarInfo>();
+    public final List<ConnectorInfo> connectors = new 
ArrayList<ConnectorInfo>();
+    public final List<WebAppInfo> webApps = new ArrayList<WebAppInfo>();
     public final List<PersistenceUnitInfo> persistenceUnits = new 
ArrayList<PersistenceUnitInfo>();
     public final List<String> libs = new ArrayList<String>();
     public String cmpMappingsXml;

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 Wed Sep 19 18:14:10 2007
@@ -345,6 +345,34 @@
         createApplication(appInfo, null, classLoader);
     }
 
+    public void createConnector(ConnectorInfo connectorInfo) throws 
NamingException, IOException, OpenEJBException {
+        AppInfo appInfo = new AppInfo();
+        appInfo.jarPath = connectorInfo.moduleId;
+        appInfo.connectors.add(connectorInfo);
+        createApplication(appInfo);
+    }
+
+    public void createConnector(ConnectorInfo connectorInfo, ClassLoader 
classLoader) throws NamingException, IOException, OpenEJBException {
+        AppInfo appInfo = new AppInfo();
+        appInfo.jarPath = connectorInfo.moduleId;
+        appInfo.connectors.add(connectorInfo);
+        createApplication(appInfo, null, classLoader);
+    }
+
+    public void createWebApp(WebAppInfo webAppInfo) throws NamingException, 
IOException, OpenEJBException {
+        AppInfo appInfo = new AppInfo();
+        appInfo.jarPath = webAppInfo.moduleId;
+        appInfo.webApps.add(webAppInfo);
+        createApplication(appInfo);
+    }
+
+    public void createWebApp(WebAppInfo webAppInfo, ClassLoader classLoader) 
throws NamingException, IOException, OpenEJBException {
+        AppInfo appInfo = new AppInfo();
+        appInfo.jarPath = webAppInfo.moduleId;
+        appInfo.webApps.add(webAppInfo);
+        createApplication(appInfo, null, classLoader);
+    }
+
     public void createApplication(AppInfo appInfo) throws OpenEJBException, 
IOException, NamingException {
         createApplication(appInfo, null, createAppClassLoader(appInfo));
     }
@@ -510,6 +538,14 @@
                 containerSystem.getJNDIContext().bind("java:openejb/client/" + 
clientInfo.moduleId + "/comp/injections", injections);
             }
 
+            // WebApp
+            WebAppBuilder webAppBuilder = 
SystemInstance.get().getComponent(WebAppBuilder.class);
+            if (webAppBuilder != null) {
+                for (WebAppInfo webAppInfo : appInfo.webApps) {
+                    webAppBuilder.deploy(webAppInfo);
+                }
+            }
+
             deployedApplications.put(appInfo.jarPath, appInfo);
         } catch (Throwable t) {
             try {
@@ -534,6 +570,17 @@
         Context globalContext = containerSystem.getJNDIContext();
         UndeployException undeployException = new UndeployException("Failed 
undeploying application: id=" + appInfo.jarPath);
 
+        WebAppBuilder webAppBuilder = 
SystemInstance.get().getComponent(WebAppBuilder.class);
+        if (webAppBuilder != null) {
+            for (WebAppInfo webAppInfo : appInfo.webApps) {
+                try {
+                    webAppBuilder.undeploy(webAppInfo);
+                } catch (Throwable t) {
+                    undeployException.getCauses().add(new Exception("webApp: " 
+ webAppInfo.moduleId + ": " + t.getMessage(), t));
+                }
+            }
+        }
+
         // get all of the ejb deployments
         List<CoreDeploymentInfo> deployments = new 
ArrayList<CoreDeploymentInfo>();
         for (EjbJarInfo ejbJarInfo : appInfo.ejbJars) {
@@ -618,6 +665,7 @@
         for (String jarPath : appInfo.libs) {
             jars.add(toUrl(jarPath));
         }
+        // todo add connector data
 
         // Create the class loader
         ClassLoader classLoader = new URLClassLoader(jars.toArray(new 
URL[]{}), OpenEJB.class.getClassLoader());

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 Wed Sep 19 18:14:10 2007
@@ -183,8 +183,8 @@
             for (ClientModule clientModule : appModule.getClientModules()) {
                 deploy(clientModule);
             }
-            for (ResourceModule resourceModule : 
appModule.getResourceModules()) {
-                deploy(resourceModule);
+            for (ConnectorModule connectorModule : 
appModule.getResourceModules()) {
+                deploy(connectorModule);
             }
             for (WebModule webModule : appModule.getWebModules()) {
                 deploy(webModule);
@@ -196,8 +196,8 @@
             return clientModule;
         }
 
-        public ResourceModule deploy(ResourceModule resourceModule) throws 
OpenEJBException {
-            return resourceModule;
+        public ConnectorModule deploy(ConnectorModule connectorModule) throws 
OpenEJBException {
+            return connectorModule;
         }
 
         public WebModule deploy(WebModule webModule) throws OpenEJBException {
@@ -332,8 +332,8 @@
             for (ClientModule clientModule : appModule.getClientModules()) {
                 deploy(clientModule);
             }
-            for (ResourceModule resourceModule : 
appModule.getResourceModules()) {
-                deploy(resourceModule);
+            for (ConnectorModule connectorModule : 
appModule.getResourceModules()) {
+                deploy(connectorModule);
             }
             for (WebModule webModule : appModule.getWebModules()) {
                 deploy(webModule);
@@ -358,9 +358,9 @@
             return clientModule;
         }
 
-        public ResourceModule deploy(ResourceModule resourceModule) throws 
OpenEJBException {
+        public ConnectorModule deploy(ConnectorModule connectorModule) throws 
OpenEJBException {
             // resource modules currently don't have any annotations
-            return resourceModule;
+            return connectorModule;
         }
 
         public WebModule deploy(WebModule webModule) throws OpenEJBException {

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
 Wed Sep 19 18:14:10 2007
@@ -32,7 +32,7 @@
 
     private final ValidationContext validation;
     private final List<URL> additionalLibraries = new ArrayList<URL>();
-    private final List<ResourceModule> resourceModules = new 
ArrayList<ResourceModule>();
+    private final List<ConnectorModule> connectorModules = new 
ArrayList<ConnectorModule>();
     private final List<WebModule> webModules = new ArrayList<WebModule>();
     private final List<ClientModule> clientModules = new 
ArrayList<ClientModule>();
     private final List<EjbModule> ejbModules = new ArrayList<EjbModule>();
@@ -63,7 +63,7 @@
         for (ClientModule module : clientModules) {
             if (module.getValidation().hasWarnings()) return true;
         }
-        for (ResourceModule module : resourceModules) {
+        for (ConnectorModule module : connectorModules) {
             if (module.getValidation().hasWarnings()) return true;
         }
         for (WebModule module : webModules) {
@@ -80,7 +80,7 @@
         for (ClientModule module : clientModules) {
             if (module.getValidation().hasFailures()) return true;
         }
-        for (ResourceModule module : resourceModules) {
+        for (ConnectorModule module : connectorModules) {
             if (module.getValidation().hasFailures()) return true;
         }
         for (WebModule module : webModules) {
@@ -97,7 +97,7 @@
         for (ClientModule module : clientModules) {
             if (module.getValidation().hasErrors()) return true;
         }
-        for (ResourceModule module : resourceModules) {
+        for (ConnectorModule module : connectorModules) {
             if (module.getValidation().hasErrors()) return true;
         }
         for (WebModule module : webModules) {
@@ -146,8 +146,8 @@
         this.cmpMappings = cmpMappings;
     }
 
-    public List<ResourceModule> getResourceModules() {
-        return resourceModules;
+    public List<ConnectorModule> getResourceModules() {
+        return connectorModules;
     }
 
     public List<WebModule> getWebModules() {

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
 Wed Sep 19 18:14:10 2007
@@ -32,6 +32,7 @@
 import org.apache.openejb.jee.MessageDestinationRef;
 import org.apache.openejb.jee.JndiReference;
 import org.apache.openejb.jee.ResourceRef;
+import org.apache.openejb.jee.JndiConsumer;
 import org.apache.openejb.jee.jpa.unit.Persistence;
 import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
 import org.apache.openejb.jee.oejb3.EjbDeployment;
@@ -39,7 +40,6 @@
 import org.apache.openejb.jee.oejb3.ResourceLink;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
-import org.apache.openejb.util.Messages;
 
 import javax.sql.DataSource;
 import javax.jms.Queue;
@@ -108,6 +108,12 @@
         for (ClientModule clientModule : appModule.getClientModules()) {
             deploy(clientModule);
         }
+        for (ConnectorModule connectorModule : appModule.getResourceModules()) 
{
+            deploy(connectorModule);
+        }
+        for (WebModule webModule : appModule.getWebModules()) {
+            deploy(webModule);
+        }
         for (PersistenceModule persistenceModule : 
appModule.getPersistenceModules()) {
             deploy(persistenceModule);
         }
@@ -408,8 +414,21 @@
     }
 
     private void deploy(ClientModule clientModule) throws OpenEJBException {
+        processJndiRefs(clientModule.getModuleId(), 
clientModule.getApplicationClient());
+    }
+
+    @SuppressWarnings({"UnusedDeclaration"})
+    private void deploy(ConnectorModule connectorModule) throws 
OpenEJBException {
+        // Nothing to process for resource modules
+    }
+
+    private void deploy(WebModule webModule) throws OpenEJBException {
+        processJndiRefs(webModule.getModuleId(), webModule.getWebApp());
+    }
+
+    private void processJndiRefs(String moduleId, JndiConsumer jndiConsumer) 
throws OpenEJBException {
         // Resource env reference
-        for (ResourceRef ref : 
clientModule.getApplicationClient().getResourceRef()) {
+        for (ResourceRef ref : jndiConsumer.getResourceRef()) {
             // skip destinations with a global jndi name
             String mappedName = ref.getMappedName();
             if (mappedName == null) mappedName = "";
@@ -418,12 +437,12 @@
             }
 
             String destinationId = (mappedName.length() == 0) ? ref.getName() 
: mappedName;
-            destinationId = getResourceId(clientModule.getModuleId(), 
destinationId, ref.getType());
+            destinationId = getResourceId(moduleId, destinationId, 
ref.getType());
             ref.setMappedName(destinationId);
         }
 
         // Resource env reference
-        for (JndiReference ref : 
clientModule.getApplicationClient().getResourceEnvRef()) {
+        for (JndiReference ref : jndiConsumer.getResourceEnvRef()) {
             // skip destinations with a global jndi name
             String mappedName = ref.getMappedName() + "";
             if (mappedName.startsWith("jndi:")){
@@ -431,12 +450,12 @@
             }
 
             String destinationId = (mappedName.length() == 0) ? ref.getName() 
: mappedName;
-            destinationId = getResourceEnvId(clientModule.getModuleId(), 
destinationId, ref.getType());
+            destinationId = getResourceEnvId(moduleId, destinationId, 
ref.getType());
             ref.setMappedName(destinationId);
         }
 
         // Message destination reference
-        for (MessageDestinationRef ref : 
clientModule.getApplicationClient().getMessageDestinationRef()) {
+        for (MessageDestinationRef ref : 
jndiConsumer.getMessageDestinationRef()) {
             // skip destinations with a global jndi name
             String mappedName = ref.getMappedName() + "";
             if (mappedName.startsWith("jndi:")){
@@ -444,7 +463,7 @@
             }
 
             String destinationId = (mappedName.length() == 0) ? ref.getName() 
: mappedName;
-            destinationId = getResourceEnvId(clientModule.getModuleId(), 
destinationId, ref.getType());
+            destinationId = getResourceEnvId(moduleId, destinationId, 
ref.getType());
             ref.setMappedName(destinationId);
         }
     }

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 Wed Sep 19 18:14:10 2007
@@ -41,8 +41,9 @@
 import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
 import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
 import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.assembler.classic.ConnectorInfo;
+import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.config.sys.ConnectionManager;
-import org.apache.openejb.config.sys.Connector;
 import org.apache.openejb.config.sys.Container;
 import org.apache.openejb.config.sys.JndiProvider;
 import org.apache.openejb.config.sys.Openejb;
@@ -54,6 +55,8 @@
 import org.apache.openejb.config.sys.JaxbOpenejb;
 import org.apache.openejb.jee.ApplicationClient;
 import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.Connector;
+import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.jee.jpa.EntityMappings;
 import org.apache.openejb.jee.jpa.JpaJaxbUtil;
 import org.apache.openejb.jee.jpa.unit.Persistence;
@@ -64,7 +67,6 @@
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Messages;
-import org.apache.openejb.util.Join;
 
 import javax.xml.bind.JAXBException;
 import java.io.File;
@@ -217,7 +219,7 @@
         sys.facilities.transactionService = 
configureService(openejb.getTransactionManager(), TransactionServiceInfo.class);
 
         // convert legacy connector declarations to resource declarations
-        for (Connector connector : openejb.getConnector()) {
+        for (org.apache.openejb.config.sys.Connector connector : 
openejb.getConnector()) {
             Resource resource = JaxbOpenejb.createResource();
             resource.setJar(connector.getJar());
             resource.setId(connector.getId());
@@ -306,6 +308,20 @@
         return appInfo.clients.get(0);
     }
 
+    public ConnectorInfo configureApplication(ConnectorModule connectorModule) 
throws OpenEJBException {
+        AppModule appModule = new AppModule(connectorModule.getClassLoader(), 
connectorModule.getJarLocation());
+        appModule.getResourceModules().add(connectorModule);
+        AppInfo appInfo = configureApplication(appModule);
+        return appInfo.connectors.get(0);
+    }
+
+    public WebAppInfo configureApplication(WebModule webModule) throws 
OpenEJBException {
+        AppModule appModule = new AppModule(webModule.getClassLoader(), 
webModule.getJarLocation());
+        appModule.getWebModules().add(webModule);
+        AppInfo appInfo = configureApplication(appModule);
+        return appInfo.webApps.get(0);
+    }
+
     public AppInfo configureApplication(AppModule appModule) throws 
OpenEJBException {
         logger.info("Configuring app: "+appModule.getJarLocation());
         deployer.deploy(appModule);
@@ -390,6 +406,31 @@
             appInfo.clients.add(clientInfo);
         }
 
+        for (ConnectorModule connectorModule : appModule.getResourceModules()) 
{
+            Connector applicationClient = connectorModule.getConnector();
+            ConnectorInfo connectorInfo = new ConnectorInfo();
+            connectorInfo.description = applicationClient.getDescription();
+            connectorInfo.displayName = applicationClient.getDisplayName();
+            connectorInfo.codebase = connectorModule.getJarLocation();
+            connectorInfo.moduleId = connectorModule.getModuleId();
+            appInfo.connectors.add(connectorInfo);
+        }
+
+        for (WebModule webModule : appModule.getWebModules()) {
+            WebApp webApp = webModule.getWebApp();
+            WebAppInfo webAppInfo = new WebAppInfo();
+            webAppInfo.description = webApp.getDescription();
+            webAppInfo.displayName = webApp.getDisplayName();
+            webAppInfo.codebase = webModule.getJarLocation();
+            webAppInfo.moduleId = webModule.getModuleId();
+            
+            webAppInfo.contextRoot = webModule.getContextRoot();
+
+            JndiEncInfoBuilder jndiEncInfoBuilder = new 
JndiEncInfoBuilder(appInfo.ejbJars);
+            webAppInfo.jndiEnc = jndiEncInfoBuilder.build(webApp, 
webModule.getJarLocation(), webAppInfo.moduleId);
+            appInfo.webApps.add(webAppInfo);
+        }
+
         appInfo.jarPath = appModule.getJarLocation();
         List<URL> additionalLibraries = appModule.getAdditionalLibraries();
         for (URL url : additionalLibraries) {
@@ -422,7 +463,6 @@
         }
         return name;
     }
-
 
     private static class DefaultService {
         private final Class<? extends Service> type;

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java
 Wed Sep 19 18:14:10 2007
@@ -34,6 +34,8 @@
 import org.apache.openejb.assembler.classic.InterceptorInfo;
 import org.apache.openejb.assembler.classic.ClientInfo;
 import org.apache.openejb.assembler.classic.PersistenceUnitInfo;
+import org.apache.openejb.assembler.classic.ConnectorInfo;
+import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.util.Messages;
 import org.apache.openejb.util.OpenEjbVersion;
 
@@ -178,6 +180,14 @@
                 }
                 for (ClientInfo clientInfo : appInfo.clients) {
                     System.out.println("    Client(main-class=" + 
clientInfo.mainClass + ", id=" + clientInfo.moduleId + ", path=" + 
clientInfo.codebase + ")");
+                    System.out.println("");
+                }
+                for (ConnectorInfo connectorInfo : appInfo.connectors) {
+                    System.out.println("    Connector(id=" + 
connectorInfo.moduleId + ", path=" + connectorInfo.codebase + ")");
+                    System.out.println("");
+                }
+                for (WebAppInfo webAppInfo : appInfo.webApps) {
+                    System.out.println("    WebApp(context-root=" + 
webAppInfo.contextRoot + ", id=" + webAppInfo.moduleId + ", path=" + 
webAppInfo.codebase + ")");
                     System.out.println("");
                 }
                 for (PersistenceUnitInfo persistenceUnitInfo : 
appInfo.persistenceUnits) {

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
 Wed Sep 19 18:14:10 2007
@@ -141,7 +141,7 @@
                                 ejbModules.put(entry.getKey(), 
entry.getValue());
                             } else if (ClientModule.class.equals(moduleType)) {
                                 clientModules.put(entry.getKey(), 
entry.getValue());
-                            } else if 
(ResourceModule.class.equals(moduleType)) {
+                            } else if 
(ConnectorModule.class.equals(moduleType)) {
                                 resouceModules.put(entry.getKey(), 
entry.getValue());
                             } else if (WebModule.class.equals(moduleType)) {
                                 webModules.put(entry.getKey(), 
entry.getValue());
@@ -291,11 +291,11 @@
                             connector = 
ReadDescriptors.readConnector(descriptors.get("ra.xml"));
                         }
 
-                        ResourceModule resourceModule = new 
ResourceModule(connector, appClassLoader, rarFile.getAbsolutePath(),  
moduleName);
+                        ConnectorModule connectorModule = new 
ConnectorModule(connector, appClassLoader, rarFile.getAbsolutePath(),  
moduleName);
 
-                        resourceModule.getAltDDs().putAll(descriptors);
+                        connectorModule.getAltDDs().putAll(descriptors);
 
-                        appModule.getResourceModules().add(resourceModule);
+                        appModule.getResourceModules().add(connectorModule);
                     } catch (OpenEJBException e) {
                         logger.error("Unable to load RAR: " + 
appDir.getAbsolutePath() + ", module: " + moduleName + ". Exception: " + 
e.getMessage(), e);
                     }
@@ -380,7 +380,7 @@
             addPersistenceUnits(appModule, classLoader, baseUrl);
 
             return appModule;
-        } else if (ResourceModule.class.equals(moduleClass)) {
+        } else if (ConnectorModule.class.equals(moduleClass)) {
             // unpack the rar file
             File rarFile = new File(baseUrl.getPath());
             rarFile = unpack(rarFile);
@@ -410,12 +410,12 @@
             ClassLoader appClassLoader = new TemporaryClassLoader(urls, 
OpenEJB.class.getClassLoader());
 
             // create the Resource Module
-            ResourceModule resourceModule = new ResourceModule(connector, 
appClassLoader, jarFile.getAbsolutePath(),  null);
-            resourceModule.getAltDDs().putAll(descriptors);
+            ConnectorModule connectorModule = new ConnectorModule(connector, 
appClassLoader, jarFile.getAbsolutePath(),  null);
+            connectorModule.getAltDDs().putAll(descriptors);
 
             // Wrap the resource module with an Application Module
-            AppModule appModule = new AppModule(classLoader, 
resourceModule.getJarLocation());
-            appModule.getResourceModules().add(resourceModule);
+            AppModule appModule = new AppModule(classLoader, 
connectorModule.getJarLocation());
+            appModule.getResourceModules().add(connectorModule);
 
             // Persistence Units
             addPersistenceUnits(appModule, classLoader, baseUrl);
@@ -547,7 +547,7 @@
         }
 
         if (descriptors.containsKey("ra.xml")) {
-            return ResourceModule.class;
+            return ConnectorModule.class;
         }
 
         URL manifestUrl = descriptors.get("MANIFEST.MF");

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
 Wed Sep 19 18:14:10 2007
@@ -70,8 +70,8 @@
             readAppClient(clientModule, appModule);
         }
 
-        for (ResourceModule resourceModule : appModule.getResourceModules()) {
-            readConnector(resourceModule, appModule);
+        for (ConnectorModule connectorModule : appModule.getResourceModules()) 
{
+            readConnector(connectorModule, appModule);
         }
 
         for (WebModule webModule : appModule.getWebModules()) {
@@ -276,19 +276,19 @@
         }
     }
 
-    private void readConnector(ResourceModule resourceModule, AppModule 
appModule) throws OpenEJBException {
-        if (resourceModule.getConnector() != null) return;
+    private void readConnector(ConnectorModule connectorModule, AppModule 
appModule) throws OpenEJBException {
+        if (connectorModule.getConnector() != null) return;
 
-        Object data = resourceModule.getAltDDs().get("ra.xml");
+        Object data = connectorModule.getAltDDs().get("ra.xml");
         if (data instanceof Connector) {
-            resourceModule.setConnector((Connector) data);
+            connectorModule.setConnector((Connector) data);
         } else if (data instanceof URL) {
             URL url = (URL) data;
             Connector connector = readConnector(url);
-            resourceModule.setConnector(connector);
+            connectorModule.setConnector(connector);
         } else {
-            DeploymentLoader.logger.debug("No ra.xml found assuming annotated 
beans present: " + appModule.getJarLocation() + ", module: " + 
resourceModule.getModuleId());
-            resourceModule.setConnector(new Connector());
+            DeploymentLoader.logger.debug("No ra.xml found assuming annotated 
beans present: " + appModule.getJarLocation() + ", module: " + 
connectorModule.getModuleId());
+            connectorModule.setConnector(new Connector());
         }
     }
 

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
 Wed Sep 19 18:14:10 2007
@@ -64,6 +64,8 @@
 import org.apache.openejb.assembler.classic.ClientInfo;
 import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.InfoObject;
+import org.apache.openejb.assembler.classic.ConnectorInfo;
+import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.assembler.Deployer;
 
 public class VmDeploymentManager implements DeploymentManager {
@@ -183,6 +185,26 @@
                     return new TargetModuleIDImpl(DEFAULT_TARGET, 
ejbJarInfo.moduleId);
                 }
             }
+            if (infoObject instanceof ConnectorInfo) {
+                // are connector modules allowed
+                if (allowedModuleType != null && 
!allowedModuleType.equals(ModuleType.RAR)) {
+                    return null;
+                }
+                ConnectorInfo connectorInfo = (ConnectorInfo) infoObject;
+                if (connectorInfo.moduleId == appInfo.jarPath) {
+                    return new TargetModuleIDImpl(DEFAULT_TARGET, 
connectorInfo.moduleId);
+                }
+            }
+            if (infoObject instanceof WebAppInfo) {
+                // are web app modules allowed
+                if (allowedModuleType != null && 
!allowedModuleType.equals(ModuleType.WAR)) {
+                    return null;
+                }
+                WebAppInfo webAppInfo = (WebAppInfo) infoObject;
+                if (webAppInfo.moduleId == appInfo.jarPath) {
+                    return new TargetModuleIDImpl(DEFAULT_TARGET, 
webAppInfo.moduleId);
+                }
+            }
         }
 
         // regular ear
@@ -200,6 +222,14 @@
         for (EjbJarInfo ejbJarInfo : appInfo.ejbJars) {
             TargetModuleIDImpl ejbJarModuleId = new 
TargetModuleIDImpl(DEFAULT_TARGET, ejbJarInfo.moduleId);
             ejbJarModuleId.setParentTargetModuleID(earModuleId);
+        }
+        for (ConnectorInfo connectorInfo : appInfo.connectors) {
+            TargetModuleIDImpl clientModuleId = new 
TargetModuleIDImpl(DEFAULT_TARGET, connectorInfo.moduleId);
+            clientModuleId.setParentTargetModuleID(earModuleId);
+        }
+        for (WebAppInfo webAppInfo : appInfo.webApps) {
+            TargetModuleIDImpl clientModuleId = new 
TargetModuleIDImpl(DEFAULT_TARGET, webAppInfo.moduleId, webAppInfo.contextRoot);
+            clientModuleId.setParentTargetModuleID(earModuleId);
         }
 
         return earModuleId;

Modified: 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java
 Wed Sep 19 18:14:10 2007
@@ -383,7 +383,7 @@
     }
 
     public Boolean isMetadataComplete() {
-        return metadataComplete;
+        return metadataComplete != null && metadataComplete;
     }
 
     public void setMetadataComplete(Boolean value) {

Modified: openejb/branches/3.0-beta-1/examples/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/examples/pom.xml?rev=577489&r1=577488&r2=577489&view=diff
==============================================================================
--- openejb/branches/3.0-beta-1/examples/pom.xml (original)
+++ openejb/branches/3.0-beta-1/examples/pom.xml Wed Sep 19 18:14:10 2007
@@ -37,5 +37,6 @@
     <module>resource-injection</module>
     <module>telephone-stateful</module>
     <module>expanded-env-entries</module>
+    <module>servlet-samples</module>
   </modules>
 </project>

Propchange: openejb/branches/3.0-beta-1/examples/servlet-samples/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Sep 19 18:14:10 2007
@@ -0,0 +1,10 @@
+*.iws
+*.ipr
+*.iml
+.classpath
+.project
+.settings
+*.log
+junit*.properties
+target
+bin


Reply via email to