You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2010/01/30 23:51:43 UTC
svn commit: r904911 - in /openejb/trunk/openejb3/assembly: ./ openejb-jetty/
openejb-jetty/openejb-jetty-common/ openejb-jetty/openejb-jetty-webapp/
openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/
openejb-tomcat...
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>