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>