Author: dblevins
Date: Sat Sep 24 21:37:08 2011
New Revision: 1175269

URL: http://svn.apache.org/viewvc?rev=1175269&view=rev
Log:
Split out web services support to a different module

Added:
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListener.java
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListeners.java
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/pom.xml
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatRsRegistry.java
      - copied, changed from r1175091, 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatRsRegistry.java
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java
      - copied, changed from r1175091, 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWsRegistry.java
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java
    
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
Removed:
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatRsRegistry.java
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWsRegistry.java
Modified:
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
    openejb/trunk/openejb3/assembly/openejb-tomcat/pom.xml

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml?rev=1175269&r1=1175268&r2=1175269&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml 
(original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml 
Sat Sep 24 21:37:08 2011
@@ -58,16 +58,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
-      <artifactId>openejb-webservices</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.openejb</groupId>
-      <artifactId>openejb-rest</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-tomcat-common</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -95,13 +85,11 @@
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-catalina</artifactId>
       <version>${tomcat.version}</version>
-      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.myfaces.core</groupId>
       <artifactId>myfaces-api</artifactId>
       <version>${myfaces.version}</version>
-      <scope>provided</scope>
     </dependency>
   </dependencies>
 </project>

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java?rev=1175269&r1=1175268&r2=1175269&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
 Sat Sep 24 21:37:08 2011
@@ -23,7 +23,6 @@ import org.apache.catalina.Host;
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleEvent;
 import org.apache.catalina.LifecycleListener;
-import org.apache.catalina.Service;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardServer;
 import org.apache.openejb.OpenEJB;
@@ -31,13 +30,13 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.core.ServerFederation;
 import org.apache.openejb.core.ThreadContext;
 import org.apache.openejb.loader.Loader;
+import org.apache.openejb.loader.SystemClassPath;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.server.ServerService;
 import org.apache.openejb.server.ServiceException;
 import org.apache.openejb.server.ServiceManager;
 import org.apache.openejb.server.ejbd.EjbServer;
-import org.apache.openejb.server.rest.RsRegistry;
-import org.apache.openejb.server.webservices.WsRegistry;
+import org.apache.openejb.spi.Service;
 import org.apache.openejb.tomcat.installer.Installer;
 import org.apache.openejb.tomcat.installer.Paths;
 import org.apache.openejb.tomcat.loader.TomcatHelper;
@@ -82,6 +81,8 @@ import java.util.Properties;
  */
 public class TomcatLoader implements Loader {
 
+    private static final Logger logger = 
Logger.getInstance(LogCategory.OPENEJB_STARTUP, TomcatLoader.class);
+
     /**
      * OpenEJB Server Daemon
      */
@@ -176,6 +177,7 @@ public class TomcatLoader implements Loa
         // Install tomcat thread context listener
         ThreadContext.addThreadContextListener(new 
TomcatThreadContextListener());
 
+
         // Install tomcat war builder
         TomcatWebAppBuilder tomcatWebAppBuilder = (TomcatWebAppBuilder) 
SystemInstance.get().getComponent(WebAppBuilder.class);
         if (tomcatWebAppBuilder == null) {
@@ -184,18 +186,11 @@ public class TomcatLoader implements Loa
             SystemInstance.get().setComponent(WebAppBuilder.class, 
tomcatWebAppBuilder);
         }
 
-        // Install the Tomcat webservice registry
-        TomcatWsRegistry tomcatSoapHandler = (TomcatWsRegistry) 
SystemInstance.get().getComponent(WsRegistry.class);
-        if (tomcatSoapHandler == null) {
-            tomcatSoapHandler = new TomcatWsRegistry();
-            SystemInstance.get().setComponent(WsRegistry.class, 
tomcatSoapHandler);
-        }
+        // Web Services will be installed into the WebDeploymentListeners list
+        SystemInstance.get().setComponent(WebDeploymentListeners.class, new 
WebDeploymentListeners());
 
-        TomcatRsRegistry tomcatRestHandler = (TomcatRsRegistry) 
SystemInstance.get().getComponent(RsRegistry.class);
-        if (tomcatRestHandler == null) {
-            tomcatRestHandler = new TomcatRsRegistry();
-            SystemInstance.get().setComponent(RsRegistry.class, 
tomcatRestHandler);
-        }
+        optionalService(properties, 
"org.apache.tomee.webservices.TomeeJaxRsService");
+        optionalService(properties, 
"org.apache.tomee.webservices.TomeeJaxWsService");
 
         // Start OpenEJB
         ejbServer = new EjbServer();
@@ -243,7 +238,6 @@ public class TomcatLoader implements Loa
                 services.add(restService);
             } catch (ClassNotFoundException ignored) {
             } catch (Exception e) {
-                Logger logger = 
Logger.getInstance(LogCategory.OPENEJB_STARTUP, getClass());
                 logger.error("REST failed to start", e);
             }
         }
@@ -258,6 +252,17 @@ public class TomcatLoader implements Loa
         });
     }
 
+    private void optionalService(Properties properties, String className) {
+        try {
+            Service service = (Service) Class.forName(className).newInstance();
+            service.init(properties);
+        } catch (ClassNotFoundException e) {
+            logger.info("Optional service not installed: " + className);
+        } catch (Exception e) {
+            logger.error("Failed to start: " + className, e);
+        }
+    }
+
     private void setIfNull(Properties properties, String key, String value) {
         if (!properties.containsKey(key)) properties.setProperty(key, value);
     }
@@ -305,7 +310,7 @@ public class TomcatLoader implements Loa
      * @param standardServer      tomcat server instance
      */
     private void processRunningApplications(TomcatWebAppBuilder 
tomcatWebAppBuilder, StandardServer standardServer) {
-        for (Service service : standardServer.findServices()) {
+        for (org.apache.catalina.Service service : 
standardServer.findServices()) {
             if (service.getContainer() instanceof Engine) {
                 Engine engine = (Engine) service.getContainer();
                 for (Container engineChild : engine.findChildren()) {

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=1175269&r1=1175268&r2=1175269&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
 Sat Sep 24 21:37:08 2011
@@ -58,8 +58,6 @@ import org.apache.openejb.core.ivm.namin
 import org.apache.openejb.jee.EnvEntry;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.server.rest.RESTService;
-import org.apache.openejb.server.webservices.WsService;
 import org.apache.openejb.tomcat.common.LegacyAnnotationProcessor;
 import org.apache.openejb.tomcat.common.TomcatVersion;
 import org.apache.openejb.tomcat.common.UserTransactionFactory;
@@ -88,7 +86,6 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
@@ -152,13 +149,6 @@ public class TomcatWebAppBuilder impleme
     private CoreContainerSystem containerSystem;
 
     /**
-     * WsService
-     */
-    private WsService wsService;
-
-    private RESTService rsService;
-
-    /**
      * Creates a new web application builder
      * instance.
      */
@@ -587,19 +577,10 @@ public class TomcatWebAppBuilder impleme
         // required for Pojo Web Services because when Assembler creates the 
application
         // the CoreContainerSystem does not contain the WebContext
         // see also the start method 
getContainerSystem().addWebDeployment(webContext);
-        WsService wsService = getWsService();
-        if (wsService != null) {
-            List<WebAppInfo> webApps = contextInfo.appInfo.webApps;
-            for (WebAppInfo webApp : webApps) {
-                wsService.afterApplicationCreated(webApp);
-            }
-        }
-
-        RESTService rsService = getRsService();
-        if (rsService != null) {
-            List<WebAppInfo> webApps = contextInfo.appInfo.webApps;
-            for (WebAppInfo webApp : webApps) {
-                rsService.afterApplicationCreated(webApp);
+        WebDeploymentListeners listeners = 
SystemInstance.get().getComponent(WebDeploymentListeners.class);
+        if (listeners != null) {
+            for (WebAppInfo webApp : contextInfo.appInfo.webApps) {
+                listeners.afterApplicationCreated(webApp);
             }
         }
 
@@ -1010,24 +991,6 @@ public class TomcatWebAppBuilder impleme
         return containerSystem;
     }
 
-    /**
-     * Gets WsService implementation.
-     *
-     * @return wsService
-     */
-    private WsService getWsService() {
-        if (wsService == null) {
-            wsService = SystemInstance.get().getComponent(WsService.class);
-        }
-        return wsService;
-    }
-
-    private RESTService getRsService() {
-        if (rsService == null) {
-            rsService = SystemInstance.get().getComponent(RESTService.class);
-        }
-        return rsService;
-    }
 
     /**
      * Gets id of the context. Context id

Added: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListener.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListener.java?rev=1175269&view=auto
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListener.java
 (added)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListener.java
 Sat Sep 24 21:37:08 2011
@@ -0,0 +1,28 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.openejb.tomcat.catalina;
+
+import org.apache.openejb.assembler.classic.WebAppInfo;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface WebDeploymentListener {
+
+    public void afterApplicationCreated(final WebAppInfo webApp);
+
+}

Added: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListeners.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListeners.java?rev=1175269&view=auto
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListeners.java
 (added)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebDeploymentListeners.java
 Sat Sep 24 21:37:08 2011
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.openejb.tomcat.catalina;
+
+import org.apache.openejb.assembler.classic.WebAppInfo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+* @version $Rev$ $Date$
+*/
+public class WebDeploymentListeners implements WebDeploymentListener {
+    List<WebDeploymentListener> listeners = new 
ArrayList<WebDeploymentListener>();
+
+    public boolean add(WebDeploymentListener webDeploymentListener) {
+        return listeners.add(webDeploymentListener);
+    }
+
+    @Override
+    public void afterApplicationCreated(WebAppInfo webApp) {
+        for (WebDeploymentListener listener : listeners) {
+            listener.afterApplicationCreated(webApp);
+        }
+    }
+
+}

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml?rev=1175269&r1=1175268&r2=1175269&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml 
(original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml 
Sat Sep 24 21:37:08 2011
@@ -49,11 +49,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
-      <artifactId>openejb-cxf</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-client</artifactId>
       <version>${project.version}</version>
     </dependency>

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml?rev=1175269&r1=1175268&r2=1175269&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml 
(original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml 
Sat Sep 24 21:37:08 2011
@@ -119,6 +119,18 @@
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
+      <artifactId>tomee-webservices</artifactId>
+      <version>${project.version}</version>
+      <scope>runtime</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.openejb</groupId>
+          <artifactId>javaee-api</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-tomcat-loader</artifactId>
       <version>${project.version}</version>
       <scope>runtime</scope>

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/pom.xml?rev=1175269&r1=1175268&r2=1175269&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/pom.xml Sat Sep 24 21:37:08 
2011
@@ -36,6 +36,7 @@
     <module>openejb-tomcat-common</module>
     <module>openejb-tomcat-webapp</module>
     <module>openejb-tomcat-bundle</module>
+    <module>tomee-webservices</module>
     <module>tomee-itests</module>
     <module>tomee-embedded</module>
   </modules>

Added: openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/pom.xml?rev=1175269&view=auto
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/pom.xml 
(added)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/pom.xml 
Sat Sep 24 21:37:08 2011
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+-->
+
+<!-- $Rev: 600338 $ $Date: 2007-12-02 09:08:04 -0800 (Sun, 02 Dec 2007) $ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+  <parent>
+    <artifactId>openejb-tomcat</artifactId>
+    <groupId>org.apache.openejb</groupId>
+    <version>4.0.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>tomee-webservices</artifactId>
+  <packaging>jar</packaging>
+  <name>OpenEJB :: Assembly :: Tomcat :: Web Services</name>
+  <description>This module contains the classes that will be added to the 
catalina class loader</description>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>rat-maven-plugin</artifactId>
+        <configuration>
+          <excludes>
+            
<exclude>src/main/resources/META-INF/org.apache.openejb.tomcat/ServerClassLoader</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>javaee-api</artifactId>
+      <classifier>tomcat</classifier>
+      <version>${javaee-api.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-webservices</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-rest</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-cxf-rs</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-tomcat-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-tomcat-loader</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-tomcat-catalina</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-server</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-ejbd</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-http</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>tomcat-catalina</artifactId>
+      <version>${tomcat.version}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.myfaces.core</groupId>
+      <artifactId>myfaces-api</artifactId>
+      <version>${myfaces.version}</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+</project>
+

Copied: 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatRsRegistry.java
 (from r1175091, 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatRsRegistry.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatRsRegistry.java?p2=openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatRsRegistry.java&p1=openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatRsRegistry.java&r1=1175091&r2=1175269&rev=1175269&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatRsRegistry.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatRsRegistry.java
 Sat Sep 24 21:37:08 2011
@@ -14,9 +14,17 @@
  *     See the License for the specific language governing permissions and
  *     limitations under the License.
  */
-package org.apache.openejb.tomcat.catalina;
+package org.apache.tomee.webservices;
 
-import org.apache.catalina.*;
+import org.apache.catalina.Container;
+import org.apache.catalina.Context;
+import org.apache.catalina.Engine;
+import org.apache.catalina.Host;
+import org.apache.catalina.Lifecycle;
+import org.apache.catalina.LifecycleEvent;
+import org.apache.catalina.LifecycleListener;
+import org.apache.catalina.Service;
+import org.apache.catalina.Wrapper;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.core.StandardServer;
 import org.apache.openejb.server.httpd.HttpListener;
@@ -54,7 +62,8 @@ public class TomcatRsRegistry implements
         }
     }
 
-    @Override public List<String> createRsHttpListener(HttpListener listener, 
ClassLoader classLoader, String completePath, String virtualHost) {
+    @Override
+    public List<String> createRsHttpListener(HttpListener listener, 
ClassLoader classLoader, String completePath, String virtualHost) {
         String path = completePath;
         if (path == null) {
             throw new NullPointerException("contextRoot is null");
@@ -81,16 +90,16 @@ public class TomcatRsRegistry implements
         Context context = (Context) host.findChild(webContext);
         context.addLifecycleListener(new LifecycleListener() {
             public void lifecycleEvent(LifecycleEvent event) {
-               Context context = (Context) event.getLifecycle();
-               if (event.getType().equals(Lifecycle.BEFORE_START_EVENT)) {
-                       
context.getServletContext().setAttribute(IGNORE_CONTEXT, "true");
-               }
-               if (event.getType().equals(Lifecycle.START_EVENT) || 
event.getType().equals(Lifecycle.BEFORE_START_EVENT) || 
event.getType().equals("configure_start")) {
+                Context context = (Context) event.getLifecycle();
+                if (event.getType().equals(Lifecycle.BEFORE_START_EVENT)) {
+                    context.getServletContext().setAttribute(IGNORE_CONTEXT, 
"true");
+                }
+                if (event.getType().equals(Lifecycle.START_EVENT) || 
event.getType().equals(Lifecycle.BEFORE_START_EVENT) || 
event.getType().equals("configure_start")) {
                     context.setConfigured(true);
                 }
             }
         });
-        
+
 
         Wrapper wrapper = context.createWrapper();
         final String name = "rest_" + listener.hashCode();
@@ -124,7 +133,8 @@ public class TomcatRsRegistry implements
         return addresses;
     }
 
-    @Override public HttpListener removeListener(final String completePath) {
+    @Override
+    public HttpListener removeListener(final String completePath) {
         String path = completePath;
         if (path == null) {
             return listeners.get(path);
@@ -134,7 +144,7 @@ public class TomcatRsRegistry implements
         if (!path.startsWith("/")) path = "/" + path;
 
         if (TomcatHelper.isTomcat7() && TomcatHelper.isStopping()) {
-               return listeners.get(path);
+            return listeners.get(path);
         }
 
         Context context = contexts.remove(path);

Copied: 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java
 (from r1175091, 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWsRegistry.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java?p2=openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java&p1=openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWsRegistry.java&r1=1175091&r2=1175269&rev=1175269&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWsRegistry.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java
 Sat Sep 24 21:37:08 2011
@@ -15,15 +15,8 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.openejb.tomcat.catalina;
+package org.apache.tomee.webservices;
 
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
 import org.apache.catalina.Engine;
@@ -46,8 +39,17 @@ import org.apache.catalina.deploy.Securi
 import org.apache.openejb.server.httpd.HttpListener;
 import org.apache.openejb.server.webservices.WsRegistry;
 import org.apache.openejb.server.webservices.WsServlet;
+import org.apache.openejb.tomcat.catalina.OpenEJBValve;
 import org.apache.openejb.tomcat.loader.TomcatHelper;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
 import static org.apache.openejb.tomcat.catalina.BackportUtil.getServlet;
 import static 
org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.IGNORE_CONTEXT;
 
@@ -177,14 +179,14 @@ public class TomcatWsRegistry implements
         // configured true, or it will treat it as a failed deployment
         context.addLifecycleListener(new LifecycleListener() {
             public void lifecycleEvent(LifecycleEvent event) {
-               Context context = (Context) event.getLifecycle();
+                Context context = (Context) event.getLifecycle();
 
-               if (event.getType().equals(Lifecycle.BEFORE_START_EVENT)) {
-                       
context.getServletContext().setAttribute(IGNORE_CONTEXT, "true");
-               }
+                if (event.getType().equals(Lifecycle.BEFORE_START_EVENT)) {
+                    context.getServletContext().setAttribute(IGNORE_CONTEXT, 
"true");
+                }
 
 
-               if (event.getType().equals(Lifecycle.START_EVENT) || 
event.getType().equals(Lifecycle.BEFORE_START_EVENT) || 
event.getType().equals("configure_start")) {
+                if (event.getType().equals(Lifecycle.START_EVENT) || 
event.getType().equals(Lifecycle.BEFORE_START_EVENT) || 
event.getType().equals("configure_start")) {
                     context.setConfigured(true);
                 }
             }
@@ -279,9 +281,9 @@ public class TomcatWsRegistry implements
         if (!path.startsWith("/")) path = "/" + path;
 
         if (TomcatHelper.isTomcat7() && TomcatHelper.isStopping()) {
-               return;
+            return;
         }
-        
+
         Context context = webserviceContexts.remove(path);
         try {
             context.stop();

Added: 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java?rev=1175269&view=auto
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java
 (added)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java
 Sat Sep 24 21:37:08 2011
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.tomee.webservices;
+
+import org.apache.openejb.assembler.classic.WebAppInfo;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.server.rest.RESTService;
+import org.apache.openejb.server.rest.RsRegistry;
+import org.apache.openejb.spi.Service;
+import org.apache.openejb.tomcat.catalina.WebDeploymentListener;
+import org.apache.openejb.tomcat.catalina.WebDeploymentListeners;
+
+import java.util.Properties;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TomeeJaxRsService implements Service, WebDeploymentListener {
+
+    @Override
+    public void init(Properties props) throws Exception {
+        final SystemInstance system = SystemInstance.get();
+
+        TomcatRsRegistry tomcatRestHandler = (TomcatRsRegistry) 
system.getComponent(RsRegistry.class);
+        if (tomcatRestHandler == null) {
+            tomcatRestHandler = new TomcatRsRegistry();
+            system.setComponent(RsRegistry.class, tomcatRestHandler);
+        }
+
+        system.getComponent(WebDeploymentListeners.class).add(this);
+    }
+
+    @Override
+    public void afterApplicationCreated(WebAppInfo webApp) {
+        // required for Pojo Web Services because when Assembler creates the 
application
+        // the CoreContainerSystem does not contain the WebContext
+        // see also the start method 
getContainerSystem().addWebDeployment(webContext);
+        RESTService component = 
SystemInstance.get().getComponent(RESTService.class);
+        if (component == null) return;
+        component.afterApplicationCreated(webApp);
+    }
+
+}

Added: 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java?rev=1175269&view=auto
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
 (added)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
 Sat Sep 24 21:37:08 2011
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.tomee.webservices;
+
+import org.apache.openejb.assembler.classic.WebAppInfo;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.server.webservices.WsRegistry;
+import org.apache.openejb.server.webservices.WsService;
+import org.apache.openejb.spi.Service;
+import org.apache.openejb.tomcat.catalina.WebDeploymentListener;
+import org.apache.openejb.tomcat.catalina.WebDeploymentListeners;
+
+import java.util.Properties;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TomeeJaxWsService implements Service, WebDeploymentListener {
+
+    @Override
+    public void init(Properties props) throws Exception {
+        // Install the Tomcat webservice registry
+        final SystemInstance system = SystemInstance.get();
+
+        TomcatWsRegistry tomcatSoapHandler = (TomcatWsRegistry) 
system.getComponent(WsRegistry.class);
+        if (tomcatSoapHandler == null) {
+            tomcatSoapHandler = new TomcatWsRegistry();
+            system.setComponent(WsRegistry.class, tomcatSoapHandler);
+        }
+
+        system.getComponent(WebDeploymentListeners.class).add(this);
+    }
+
+    @Override
+    public void afterApplicationCreated(WebAppInfo webApp) {
+        // required for Pojo Web Services because when Assembler creates the 
application
+        // the CoreContainerSystem does not contain the WebContext
+        // see also the start method 
getContainerSystem().addWebDeployment(webContext);
+        WsService component = 
SystemInstance.get().getComponent(WsService.class);
+        if (component == null) return;
+        component.afterApplicationCreated(webApp);
+    }
+}


Reply via email to