You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/05/29 19:49:23 UTC
svn commit: r1598344 - in /tomee/tomee/trunk/tomee: ./
tomee-loader/src/main/java/org/apache/tomee/loader/ tomee-overlay-runner/
tomee-overlay-runner/src/ tomee-overlay-runner/src/main/
tomee-overlay-runner/src/main/java/ tomee-overlay-runner/src/main/...
Author: rmannibucau
Date: Thu May 29 17:49:23 2014
New Revision: 1598344
URL: http://svn.apache.org/r1598344
Log:
TOMEE-1227 tomee-overlay-runner to ease EE in tomcat applications
Added:
tomee/tomee/trunk/tomee/tomee-overlay-runner/
tomee/tomee/trunk/tomee/tomee-overlay-runner/pom.xml
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/Deployer.java
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/TomEEOverlayRunner.java
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/resources/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/resources/META-INF/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/resources/META-INF/services/
tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
Modified:
tomee/tomee/trunk/tomee/pom.xml
tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java
Modified: tomee/tomee/trunk/tomee/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/pom.xml?rev=1598344&r1=1598343&r2=1598344&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/pom.xml (original)
+++ tomee/tomee/trunk/tomee/pom.xml Thu May 29 17:49:23 2014
@@ -55,6 +55,7 @@
<module>apache-tomee</module>
<module>tomee-util</module>
<module>tomee-juli</module>
+ <module>tomee-overlay-runner</module>
<!--<module>tomee-deb</module>-->
</modules>
Modified: tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java?rev=1598344&r1=1598343&r2=1598344&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java (original)
+++ tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java Thu May 29 17:49:23 2014
@@ -32,6 +32,7 @@ import javax.servlet.http.HttpServlet;
*
* This method of bootstrapping is mutually exclussive to the {@link OpenEJBListener} approach
*/
+@Deprecated // use tomee-overlay-runner or another way to ensure you deterministicly work
public class LoaderServlet extends HttpServlet {
//Default serial version id
@@ -75,7 +76,7 @@ public class LoaderServlet extends HttpS
* @param config javax.servlet.ServletConfig
* @return java.util.Properties
*/
- private Properties initParamsToProperties(final ServletConfig config) {
+ protected Properties initParamsToProperties(final ServletConfig config) {
final Properties properties = new Properties();
//@Tomcat
Added: tomee/tomee/trunk/tomee/tomee-overlay-runner/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-overlay-runner/pom.xml?rev=1598344&view=auto
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-overlay-runner/pom.xml (added)
+++ tomee/tomee/trunk/tomee/tomee-overlay-runner/pom.xml Thu May 29 17:49:23 2014
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>tomee</artifactId>
+ <groupId>org.apache.openejb</groupId>
+ <version>1.7.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>tomee-overlay-runner</artifactId>
+ <name>OpenEJB :: TomEE :: Overlay Runner</name>
+ <description>This jar is intended to be embed in a war overlay of one TomEE war to start TomEE from a webapp</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>javaee-api</artifactId>
+ <version>6.0-5</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency> <!-- openejb-core is not needed but parent import it so setting it as provided to avoid wrong packaging -->
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-core</artifactId>
+ <version>${openejb.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>tomee-catalina</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>tomcat-catalina</artifactId>
+ <version>${tomcat.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/Deployer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/Deployer.java?rev=1598344&view=auto
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/Deployer.java (added)
+++ tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/Deployer.java Thu May 29 17:49:23 2014
@@ -0,0 +1,36 @@
+/*
+ * 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.overlay;
+
+import org.apache.catalina.core.StandardContext;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.reflection.Reflections;
+import org.apache.tomee.catalina.TomcatWebAppBuilder;
+
+import javax.servlet.ServletContext;
+
+// mainly to avoid classloading issue since TomcatWebAppBuilder is added on the fly to tomcat classloader
+public class Deployer {
+ public static void deploy(final ServletContext ctx) {
+ final TomcatWebAppBuilder builder = SystemInstance.get().getComponent(TomcatWebAppBuilder.class);
+ builder.configureStart(StandardContext.class.cast(Reflections.get(Reflections.get(ctx, "context"), "context")));
+ }
+
+ private Deployer() {
+ // no-op
+ }
+}
Added: tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/TomEEOverlayRunner.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/TomEEOverlayRunner.java?rev=1598344&view=auto
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/TomEEOverlayRunner.java (added)
+++ tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/java/org/apache/tomee/overlay/TomEEOverlayRunner.java Thu May 29 17:49:23 2014
@@ -0,0 +1,52 @@
+/*
+ * 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.overlay;
+
+import org.apache.tomee.loader.TomcatEmbedder;
+
+import javax.servlet.ServletContainerInitializer;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import java.io.File;
+import java.util.Properties;
+import java.util.Set;
+
+public class TomEEOverlayRunner implements ServletContainerInitializer {
+ @Override
+ public void onStartup(final Set<Class<?>> classes, final ServletContext ctx) throws ServletException {
+ if (System.getProperty("openejb.embedder.source") != null) {
+ ctx.log("TomEE already initialized");
+ return;
+ }
+
+ ctx.log("Embedded TomEE starting");
+
+ final Properties properties = new Properties();
+ properties.putAll(System.getProperties());
+ properties.setProperty("openejb.system.apps", Boolean.toString(Boolean.getBoolean("openejb.system.apps")));
+ properties.setProperty("tomee.war", new File(ctx.getRealPath("WEB-INF")).getParentFile().getAbsolutePath());
+ properties.setProperty("openejb.embedder.source", getClass().getSimpleName());
+
+ TomcatEmbedder.embed(properties, ServletContainerInitializer.class.getClassLoader());
+
+ ctx.log("Embedded TomEE started");
+
+ Deployer.deploy(ctx);
+
+ ctx.log("Application '" + ctx.getContextPath() + "' TomEE-ised");
+ }
+}
Added: tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer?rev=1598344&view=auto
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer (added)
+++ tomee/tomee/trunk/tomee/tomee-overlay-runner/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer Thu May 29 17:49:23 2014
@@ -0,0 +1 @@
+org.apache.tomee.overlay.TomEEOverlayRunner