Author: dblevins
Date: Sat Jan 30 22:51:43 2010
New Revision: 904911

URL: http://svn.apache.org/viewvc?rev=904911&view=rev
Log:
Need to start abstracting things from the Tomcat integration so we can use them 
in both integrations.  Lot's of stuff that isn't Tomcat specific.
Created a new openejb-webapp-common module for this purpose and made both 
openejb-tomcat and openejb-jetty modules use it

Added:
    openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-common/
      - copied from r904785, 
openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-loader/
Modified:
    openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-common/pom.xml
    openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-webapp/pom.xml
    openejb/trunk/openejb3/assembly/openejb-jetty/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-common/pom.xml
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Installer.java
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Paths.java
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHook.java
    openejb/trunk/openejb3/assembly/pom.xml

Modified: 
openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-common/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-common/pom.xml?rev=904911&r1=904785&r2=904911&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-common/pom.xml 
(original)
+++ openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-common/pom.xml 
Sat Jan 30 22:51:43 2010
@@ -26,13 +26,13 @@
     <version>3.1.3-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
-  <artifactId>openejb-jetty-loader</artifactId>
+  <artifactId>openejb-jetty-common</artifactId>
   <packaging>jar</packaging>
-  <name>OpenEJB :: Assembly :: Jetty :: Loader</name>
+  <name>OpenEJB :: Assembly :: Jetty :: Common</name>
   <dependencies>
     <dependency>
       <groupId>org.apache.openejb</groupId>
-      <artifactId>openejb-loader</artifactId>
+      <artifactId>openejb-webapp-common</artifactId>
       <version>${version}</version>
     </dependency>
 <!--

Modified: 
openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-webapp/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-webapp/pom.xml?rev=904911&r1=904910&r2=904911&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-webapp/pom.xml 
(original)
+++ openejb/trunk/openejb3/assembly/openejb-jetty/openejb-jetty-webapp/pom.xml 
Sat Jan 30 22:51:43 2010
@@ -111,6 +111,12 @@
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-jetty-common</artifactId>
+      <version>${version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-core</artifactId>
       <version>${version}</version>
       <scope>runtime</scope>

Modified: openejb/trunk/openejb3/assembly/openejb-jetty/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-jetty/pom.xml?rev=904911&r1=904910&r2=904911&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-jetty/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-jetty/pom.xml Sat Jan 30 22:51:43 
2010
@@ -31,6 +31,7 @@
 
   <modules>
     <module>openejb-jetty-loader</module>
+    <module>openejb-jetty-common</module>
     <module>openejb-jetty-webapp</module>
   </modules>
 </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=904911&r1=904910&r2=904911&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 Jan 30 22:51:43 2010
@@ -52,17 +52,47 @@
 import java.util.Properties;
 
 /**
+ * <h1>Prerequisites</h1>
+ * <p/>
+ * System properties that must be set:
+ * <ul>
+ * <li/>openejb.home -> catalina.home
+ * <li/>openejb.base -> catalina.base
+ * <li/>openejb.war -> $openejb.war
+ * <li/>tomcat.version if not set
+ * <li/>tomcat.built if not set
+ * </ul>
+ *
+ * <h1>Integration Actions</h1>
+ *
+ * <ul>
+ * <li/>Setup ServiceJar: set openejb.provider.default -> 
org.apache.openejb.tomcat
+ * We therefore will load this file: 
META-INF/org.apache.openejb.tomcat/service-jar.xml
+ * <li/>Init SystemInstance and OptionsLog
+ * <li/>
+ * <li/>
+ * </ul>
+ *
+ * See {...@link org.apache.openejb.config.ServiceUtils#defaultProviderURL}
+ *
+ *
+ *
  * @version $Revision: 617255 $ $Date: 2008-01-31 13:58:36 -0800 (Thu, 31 Jan 
2008) $
  */
 public class TomcatLoader implements Loader {
     private EjbServer ejbServer;
     protected ServiceManager manager;
+    private final String platform;
+
+    public TomcatLoader() {
+        platform = "tomcat";
+    }
 
     public void init(Properties properties) throws Exception {
         // Enable System EJBs like the MEJB and DeployerEJB
         properties.setProperty("openejb.deployments.classpath", "true");
         
properties.setProperty("openejb.deployments.classpath.filter.systemapps", 
"false");
-        System.setProperty("openejb.provider.default", 
"org.apache.openejb.tomcat");
+        System.setProperty("openejb.provider.default", "org.apache.openejb." + 
platform);
 
         // Loader maybe the first thing executed in a new classloader
         // so we must attempt to initialize the system instance.

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=904911&r1=904910&r2=904911&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 Jan 30 22:51:43 2010
@@ -33,6 +33,11 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-webapp-common</artifactId>
+      <version>${version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-loader</artifactId>
       <version>${version}</version>
     </dependency>

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Installer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Installer.java?rev=904911&r1=904910&r2=904911&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Installer.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Installer.java
 Sat Jan 30 22:51:43 2010
@@ -290,7 +290,9 @@
         //
         // conf/openejb.xml
         //
-        File openEjbXmlFile = new File(paths.getCatalinaConfDir(), 
"openejb.xml");
+        File confDir = paths.getCatalinaConfDir();
+
+        File openEjbXmlFile = new File(confDir, "openejb.xml");
         if (!openEjbXmlFile.exists()) {
             // read in the openejb.xml file from the openejb core jar
             String openEjbXml = readEntry(coreJar, "default.openejb.conf");
@@ -307,7 +309,7 @@
         //
         String openejbLoggingProps = readEntry(coreJar, "logging.properties");
         if (openejbLoggingProps != null) {
-            File loggingPropsFile = new File(paths.getCatalinaConfDir(), 
"logging.properties");
+            File loggingPropsFile = new File(confDir, "logging.properties");
             String newLoggingProps = null;
             if (!loggingPropsFile.exists()) {
                 newLoggingProps = openejbLoggingProps;

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Paths.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Paths.java?rev=904911&r1=904910&r2=904911&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Paths.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/installer/Paths.java
 Sat Jan 30 22:51:43 2010
@@ -29,6 +29,7 @@
  *
  */
 public class Paths {
+
        /**
         * The openejb webapp directory under <<tomcat-install>>/webapps
         */
@@ -99,7 +100,7 @@
      * @param catalinaBaseDir the absolute path of the catalina base directory
      */
     public void setCatalinaBaseDir(String catalinaBaseDir) {
-        this.catalinaBaseDir = createFile(catalinaBaseDir);
+        setCatalinaBaseDir(createFile(catalinaBaseDir));
     }
     /**
      * Sets the catalina base directory
@@ -411,9 +412,9 @@
         }
     }
 
-    private File createFile(String catalinaHomeDir) {
-        if (catalinaHomeDir != null && catalinaHomeDir.trim().length() > 0) {
-            return new File(catalinaHomeDir.trim());
+    private File createFile(String fileName) {
+        if (fileName != null && fileName.trim().length() > 0) {
+            return new File(fileName.trim());
         }
         return null;
     }

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHook.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHook.java?rev=904911&r1=904910&r2=904911&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHook.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHook.java
 Sat Jan 30 22:51:43 2010
@@ -32,14 +32,17 @@
  *
  * Requires openejb.war to be set, the sets the following properties:
  *
- * set openejb.loader -> tomcat-system
+ * System properties:
  * set openejb.home -> catalina.home
  * set openejb.base -> catalina.base
- * set openejb.libs -> $openejb.war/lib
- *
+ * set openejb.war -> $openejb.war
  * set tomcat.version if not set
  * set tomcat.built if not set
  *
+ * Local properties: 
+ * set openejb.loader -> tomcat-system
+ * set openejb.libs -> $openejb.war/lib
+ *
  * With these properties setup, this class with construct an {...@link 
Embedder}
  * using the "org.apache.openejb.tomcat.catalina.TomcatLoader" as the loader.
  *
@@ -84,8 +87,9 @@
         properties.setProperty("openejb.base", catalinaBase);
         System.setProperty("openejb.base", catalinaBase);
 
-        //TODO: why do we need this, this was already set. Thats how we create 
the File openejbWar
+        // Set the openejb.war property as a *System* property
         System.setProperty("openejb.war", openejbWar.getAbsolutePath());
+        
         // set the property openejb.libs to contain the absolute path of the 
lib directory of openejb webapp
         File libDir = new File(openejbWar, "lib");
         String libPath = libDir.getAbsolutePath();
@@ -121,7 +125,14 @@
 
         try {
             // create the loader
+
+            // This init call affects only this WebappClassloader and is just 
required
+            // for runnig the Embedder.  The SystemInstance will be 
initialized more permanently
+            // in the parent classloader once the required libraries are added.
             SystemInstance.init(properties);
+
+            // This guy does the magic of squishing the openejb libraries into 
the parent classloader
+            // and kicking off the reall integration.
             Embedder embedder = new 
Embedder("org.apache.openejb.tomcat.catalina.TomcatLoader");
             embedder.init(properties);
         } catch (Exception e) {

Modified: openejb/trunk/openejb3/assembly/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/pom.xml?rev=904911&r1=904910&r2=904911&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/pom.xml Sat Jan 30 22:51:43 2010
@@ -30,6 +30,7 @@
   <name>OpenEJB :: Assembly</name>
 
   <modules>
+    <module>openejb-webapp-common</module>
     <module>openejb-itests-standalone-client</module>
     <module>openejb-standalone</module>
     <module>openejb-tomcat</module>


Reply via email to