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);
+ }
+}