djencks 2004/02/13 17:50:15
Modified: modules/jetty project.xml
modules/jetty/src/java/org/apache/geronimo/jetty/deployment
AbstractModule.java JettyModule.java
UnpackedModule.java WARConfiguration.java
WARConfigurationFactory.java WebAppDConfigBean.java
WebAppDConfigRoot.java
modules/jetty/src/schema geronimo-jetty.xsd xmlconfig.xml
modules/jetty/src/test/org/apache/geronimo/jetty/deployment
DeploymentTest.java
WARConfigurationFactoryTest.java
modules/naming/src/schema geronimo-naming.xsd
Log:
added naming to jetty (no real tests)
Revision Changes Path
1.16 +9 -1 incubator-geronimo/modules/jetty/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/jetty/project.xml,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- project.xml 12 Feb 2004 23:33:21 -0000 1.15
+++ project.xml 14 Feb 2004 01:50:14 -0000 1.16
@@ -116,6 +116,14 @@
</dependency>
<dependency>
+ <groupId>geronimo-spec</groupId>
+ <artifactId>geronimo-spec-j2eeschema</artifactId>
+ <version>DEV</version>
+ <properties>
+ </properties>
+ </dependency>
+
+ <dependency>
<groupId>jetty</groupId>
<artifactId>org.mortbay.jetty</artifactId>
<version>5.0.beta0</version>
1.5 +43 -13
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/AbstractModule.java
Index: AbstractModule.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/AbstractModule.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractModule.java 5 Feb 2004 01:37:56 -0000 1.4
+++ AbstractModule.java 14 Feb 2004 01:50:15 -0000 1.5
@@ -55,32 +55,49 @@
*/
package org.apache.geronimo.jetty.deployment;
-import java.util.Properties;
-import java.util.Collections;
import java.net.URI;
-import javax.enterprise.deploy.spi.TargetModuleID;
+import java.util.Collections;
+import java.util.Properties;
+
import javax.management.ObjectName;
+import javax.naming.Context;
+import javax.transaction.UserTransaction;
-import org.apache.geronimo.deployment.DeploymentModule;
-import org.apache.geronimo.deployment.DeploymentException;
import org.apache.geronimo.deployment.ConfigurationCallback;
+import org.apache.geronimo.deployment.DeploymentException;
+import org.apache.geronimo.deployment.DeploymentModule;
import org.apache.geronimo.gbean.jmx.GBeanMBean;
import org.apache.geronimo.jetty.JettyWebApplicationContext;
import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.naming.deployment.ComponentContextBuilder;
+import org.apache.geronimo.naming.java.ProxyFactory;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppType;
+import org.apache.geronimo.xbeans.j2ee.WebAppType;
/**
- *
- *
+ *
+ *
* @version $Revision$ $Date$
*/
public class AbstractModule implements DeploymentModule {
+
+ private final ProxyFactory proxyFactory;
protected final URI configID;
protected URI uri;
protected String contextPath;
protected boolean contextPriorityClassLoader;
-
- public AbstractModule(URI configID) {
+ protected WebAppType webApp;
+ protected final JettyWebAppType jettyWebApp;
+
+ public AbstractModule(URI configID, JettyWebAppType jettyWebApp,
ProxyFactory proxyFactory) throws DeploymentException {
this.configID = configID;
+ this.jettyWebApp = jettyWebApp;
+ this.proxyFactory = proxyFactory;
+ contextPath = jettyWebApp.getContextRoot().getStringValue();
+ if (contextPath == null) {
+ throw new DeploymentException("No context root specified");
+ }
+
contextPriorityClassLoader=jettyWebApp.getContextPriorityClassloader();
}
public void init() throws DeploymentException {
@@ -102,15 +119,28 @@
GBeanMBean app = new
GBeanMBean(JettyWebApplicationContext.GBEAN_INFO);
app.setAttribute("URI", uri);
app.setAttribute("ContextPath", contextPath);
- app.setAttribute("ContextPriorityClassLoader", new
Boolean(contextPriorityClassLoader));
- app.setAttribute("ComponentContext", null);
+ app.setAttribute("ContextPriorityClassLoader", new
Boolean(contextPriorityClassLoader));
app.setAttribute("PolicyContextID", null);
+ //jndi
+ if (proxyFactory != null) {
+ UserTransaction userTransaction = null;
+ Context componentContext = new
ComponentContextBuilder(proxyFactory, cl).buildContext(
+ webApp.getEjbRefArray(),
jettyWebApp.getEjbRefArray(),
+ webApp.getEjbLocalRefArray(),
jettyWebApp.getEjbLocalRefArray(),
+ webApp.getEnvEntryArray(),
+ webApp.getMessageDestinationRefArray(),
jettyWebApp.getMessageDestinationRefArray(),
+ webApp.getResourceEnvRefArray(),
jettyWebApp.getResourceEnvRefArray(),
+ webApp.getResourceRefArray(),
jettyWebApp.getResourceRefArray(),
+ userTransaction);
+ app.setAttribute("ComponentContext", componentContext);
+ }
+
app.setReferencePatterns("Configuration",
Collections.singleton(Kernel.getConfigObjectName(configID)));
app.setReferencePatterns("JettyContainer",
Collections.singleton(new
ObjectName("geronimo.web:type=WebContainer,container=Jetty"))); // @todo
configurable
app.setReferencePatterns("TransactionManager",
Collections.EMPTY_SET);
app.setReferencePatterns("TrackedConnectionAssociator",
Collections.EMPTY_SET);
callback.addGBean(name, app);
-
+
} catch (Throwable e) {
throw new DeploymentException("Unable to build GBean for web
application", e);
}
1.11 +15 -9
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/JettyModule.java
Index: JettyModule.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/JettyModule.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- JettyModule.java 8 Feb 2004 20:19:21 -0000 1.10
+++ JettyModule.java 14 Feb 2004 01:50:15 -0000 1.11
@@ -65,7 +65,11 @@
import org.apache.geronimo.deployment.ConfigurationCallback;
import org.apache.geronimo.deployment.DeploymentException;
-import org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyWebAppType;
+import org.apache.geronimo.deployment.util.UnclosableInputStream;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppType;
+import org.apache.geronimo.xbeans.j2ee.WebAppDocument;
+import org.apache.geronimo.naming.java.ProxyFactory;
+import org.apache.xmlbeans.XmlException;
/**
*
@@ -79,16 +83,11 @@
private URI classes;
private URI lib;
- public JettyModule(URI configID, InputStream moduleArchive,
JettyWebAppType webApp) throws DeploymentException {
- super(configID);
+ public JettyModule(URI configID, InputStream moduleArchive,
JettyWebAppType jettyWebApp, ProxyFactory proxyFactory) throws
DeploymentException {
+ super(configID, jettyWebApp, proxyFactory);
moduleDirectory = null;
this.zipArchive = new ZipInputStream(moduleArchive);
closeStream = false;
- contextPath = webApp.getContextRoot().getStringValue();
- if (contextPath == null) {
- throw new DeploymentException("No context root specified");
- }
- contextPriorityClassLoader=webApp.getContextPriorityClassloader();
}
public void init() throws DeploymentException {
@@ -112,6 +111,11 @@
}
callback.addFile(uri.resolve(name), zipArchive);
+ if (name.equals("WEB-INF/web-app.xml")) {
+ WebAppDocument webAppDoc =
WebAppDocument.Factory.parse(new UnclosableInputStream(zipArchive));
+ webApp = webAppDoc.getWebApp();
+ }
+
// If we do not give the context priority over
classloading, then we add the standard locations to our classpath.
if (!contextPriorityClassLoader) {
if (!addedClasses &&
name.startsWith("WEB-INF/classes/")) {
@@ -127,6 +131,8 @@
}
catch (IOException e) {
throw new DeploymentException("Unable to unpack WAR
content", e);
+ } catch (XmlException e) {
+ throw new DeploymentException("Unable to parse WAR content",
e);
}
}
else {
1.4 +12 -11
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/UnpackedModule.java
Index: UnpackedModule.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/UnpackedModule.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- UnpackedModule.java 5 Feb 2004 01:37:56 -0000 1.3
+++ UnpackedModule.java 14 Feb 2004 01:50:15 -0000 1.4
@@ -58,25 +58,26 @@
import java.io.File;
import java.net.URI;
-import org.apache.geronimo.deployment.util.XMLUtil;
-import org.w3c.dom.Document;
+import org.apache.geronimo.deployment.DeploymentException;
+import org.apache.geronimo.naming.java.ProxyFactory;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppType;
/**
- *
- *
+ *
+ *
* @version $Revision$ $Date$
*/
public class UnpackedModule extends AbstractModule {
-
- public UnpackedModule(URI configID, File archive, Document
deploymentPlan) {
- super(configID);
+
+ public UnpackedModule(URI configID, File archive, JettyWebAppType
jettyWebApp, ProxyFactory proxyFactory) throws DeploymentException {
+ super(configID, jettyWebApp, proxyFactory);
this.uri = archive.toURI();
+ //????? contextPath is read from required geronimo dd.
contextPath = archive.getName();
if (contextPath.endsWith(".war")) {
contextPath = contextPath.substring(0, contextPath.length() - 4);
}
- contextPath =
XMLUtil.getChildContent(deploymentPlan.getDocumentElement(), "context-root",
contextPath, contextPath);
- }
-
+ }
+
// TODO - generate classpath?
}
1.5 +1 -14
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WARConfiguration.java
Index: WARConfiguration.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WARConfiguration.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- WARConfiguration.java 6 Feb 2004 08:55:49 -0000 1.4
+++ WARConfiguration.java 14 Feb 2004 01:50:15 -0000 1.5
@@ -55,22 +55,9 @@
*/
package org.apache.geronimo.jetty.deployment;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import javax.enterprise.deploy.model.DDBeanRoot;
import javax.enterprise.deploy.model.DeployableObject;
-import javax.enterprise.deploy.spi.DConfigBeanRoot;
-import javax.enterprise.deploy.spi.exceptions.ConfigurationException;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import org.apache.geronimo.deployment.plugin.DeploymentConfigurationSupport;
-import org.apache.xmlbeans.XmlException;
-import org.xml.sax.SAXException;
-import org.w3c.dom.Document;
/**
*
1.8 +12 -8
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WARConfigurationFactory.java
Index: WARConfigurationFactory.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WARConfigurationFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- WARConfigurationFactory.java 9 Feb 2004 00:01:20 -0000 1.7
+++ WARConfigurationFactory.java 14 Feb 2004 01:50:15 -0000 1.8
@@ -58,17 +58,13 @@
import java.io.InputStream;
import java.net.URI;
-import javax.enterprise.deploy.model.DeployableObject;
-import javax.enterprise.deploy.shared.ModuleType;
-import javax.enterprise.deploy.spi.DeploymentConfiguration;
-import javax.enterprise.deploy.spi.exceptions.InvalidModuleException;
-
import org.apache.geronimo.deployment.DeploymentException;
import org.apache.geronimo.deployment.DeploymentModule;
import
org.apache.geronimo.deployment.plugin.factories.DeploymentConfigurationFactory;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoFactory;
-import
org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyWebAppDocument;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppDocument;
+import org.apache.geronimo.naming.java.ProxyFactory;
import org.apache.xmlbeans.SchemaType;
import org.apache.xmlbeans.SchemaTypeLoader;
import org.apache.xmlbeans.XmlBeans;
@@ -82,11 +78,17 @@
public class WARConfigurationFactory implements
DeploymentConfigurationFactory {
private static final SchemaTypeLoader SCHEMA_TYPE_LOADER =
XmlBeans.getContextTypeLoader();
+ private ProxyFactory proxyFactory;
+
+ public WARConfigurationFactory(ProxyFactory proxyFactory) {
+ this.proxyFactory = proxyFactory;
+ }
+
//TODO a createModule method taking a file/directory for unpacked jsp
handling.
//Should create a UnpackedModule if supplied file is a directory.
public DeploymentModule createModule(InputStream moduleArchive,
XmlObject deploymentPlan, URI configID, boolean isLocal) throws
DeploymentException {
JettyWebAppDocument webAppDoc = (JettyWebAppDocument)deploymentPlan;
- return new JettyModule(configID, moduleArchive,
webAppDoc.getWebApp());
+ return new JettyModule(configID, moduleArchive,
webAppDoc.getWebApp(), proxyFactory);
}
//these might be temporary
@@ -103,6 +105,8 @@
static {
GBeanInfoFactory infoFactory = new GBeanInfoFactory("Jetty WAR
Configuration Factory", WARConfigurationFactory.class.getName());
infoFactory.addInterface(DeploymentConfigurationFactory.class);
+ infoFactory.addReference("ProxyFactory", ProxyFactory.class);
+ infoFactory.setConstructor(new String[] {"ProxyFactory"}, new
Class[] {ProxyFactory.class});
GBEAN_INFO = infoFactory.getBeanInfo();
}
1.8 +2 -2
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WebAppDConfigBean.java
Index: WebAppDConfigBean.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WebAppDConfigBean.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- WebAppDConfigBean.java 9 Feb 2004 23:11:04 -0000 1.7
+++ WebAppDConfigBean.java 14 Feb 2004 01:50:15 -0000 1.8
@@ -62,7 +62,7 @@
import org.apache.geronimo.deployment.plugin.DConfigBeanSupport;
import org.apache.geronimo.deployment.plugin.j2ee.ENCHelper;
-import org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyWebAppType;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppType;
import org.apache.xmlbeans.SchemaTypeLoader;
import org.apache.xmlbeans.XmlBeans;
1.6 +3 -3
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WebAppDConfigRoot.java
Index: WebAppDConfigRoot.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WebAppDConfigRoot.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WebAppDConfigRoot.java 11 Feb 2004 08:02:21 -0000 1.5
+++ WebAppDConfigRoot.java 14 Feb 2004 01:50:15 -0000 1.6
@@ -64,8 +64,8 @@
import javax.enterprise.deploy.spi.exceptions.ConfigurationException;
import org.apache.geronimo.deployment.plugin.DConfigBeanRootSupport;
-import
org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyWebAppDocument;
-import org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyWebAppType;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppDocument;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppType;
import org.apache.xmlbeans.SchemaTypeLoader;
import org.apache.xmlbeans.XmlBeans;
import org.apache.xmlbeans.XmlException;
1.3 +7 -3
incubator-geronimo/modules/jetty/src/schema/geronimo-jetty.xsd
Index: geronimo-jetty.xsd
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/schema/geronimo-jetty.xsd,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- geronimo-jetty.xsd 12 Feb 2004 16:29:00 -0000 1.2
+++ geronimo-jetty.xsd 14 Feb 2004 01:50:15 -0000 1.3
@@ -1,18 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:ger="http://geronimo.apache.org/xml/ns/web/jetty"
+ xmlns:jetty="http://geronimo.apache.org/xml/ns/web/jetty"
targetNamespace="http://geronimo.apache.org/xml/ns/web/jetty"
+ xmlns:ger="http://geronimo.apache.org/xml/ns/j2ee"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.0">
- <xsd:element name="web-app" type="ger:web-appType"/>
+ <xsd:import namespace="http://geronimo.apache.org/xml/ns/j2ee"
schemaLocation="../../../naming/src/schema/geronimo-naming.xsd"/>
+
+ <xsd:element name="web-app" type="jetty:web-appType"/>
<xsd:complexType name="web-appType">
<xsd:sequence>
- <xsd:element name="context-root" type="ger:context-rootType"/>
+ <xsd:element name="context-root" type="jetty:context-rootType"/>
<xsd:element name="context-priority-classloader"
type="xsd:boolean"/>
+ <xsd:group ref="ger:jndiEnvironmentRefsGroup"/>
</xsd:sequence>
</xsd:complexType>
1.3 +7 -1 incubator-geronimo/modules/jetty/src/schema/xmlconfig.xml
Index: xmlconfig.xml
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/schema/xmlconfig.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xmlconfig.xml 12 Feb 2004 16:29:00 -0000 1.2
+++ xmlconfig.xml 14 Feb 2004 01:50:15 -0000 1.3
@@ -2,8 +2,14 @@
>
<xb:namespace uri="http://geronimo.apache.org/xml/ns/web/jetty">
-
<xb:package>org.apache.geronimo.xbeans.geronimo.deployment.jetty</xb:package>
+ <xb:package>org.apache.geronimo.xbeans.geronimo.jetty</xb:package>
<xb:prefix>Jetty</xb:prefix>
+ </xb:namespace>
+
+ <!--this should be unnecessary. Probably needs xmlbeans plugin to reuse
the naming classes rather than generating duplicates-->
+ <xb:namespace uri="http://geronimo.apache.org/xml/ns/j2ee">
+ <xb:package>org.apache.geronimo.xbeans.geronimo</xb:package>
+ <xb:prefix>Ger</xb:prefix>
</xb:namespace>
</xb:config>
1.7 +2 -2
incubator-geronimo/modules/jetty/src/test/org/apache/geronimo/jetty/deployment/DeploymentTest.java
Index: DeploymentTest.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/test/org/apache/geronimo/jetty/deployment/DeploymentTest.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DeploymentTest.java 6 Feb 2004 08:55:49 -0000 1.6
+++ DeploymentTest.java 14 Feb 2004 01:50:15 -0000 1.7
@@ -80,7 +80,7 @@
import org.apache.geronimo.deployment.service.ServiceDeployer;
import org.apache.geronimo.deployment.util.URLInfo;
import org.apache.geronimo.gbean.jmx.GBeanMBean;
-import
org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyWebAppDocument;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppDocument;
/**
*
1.10 +4 -4
incubator-geronimo/modules/jetty/src/test/org/apache/geronimo/jetty/deployment/WARConfigurationFactoryTest.java
Index: WARConfigurationFactoryTest.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/test/org/apache/geronimo/jetty/deployment/WARConfigurationFactoryTest.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- WARConfigurationFactoryTest.java 11 Feb 2004 08:02:21 -0000 1.9
+++ WARConfigurationFactoryTest.java 14 Feb 2004 01:50:15 -0000 1.10
@@ -61,9 +61,9 @@
import javax.enterprise.deploy.spi.DConfigBeanRoot;
import org.apache.geronimo.deployment.tools.loader.WebDeployable;
-import
org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyContextRootType;
-import
org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyWebAppDocument;
-import org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyWebAppType;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyContextRootType;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppDocument;
+import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppType;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
1.2 +2 -2
incubator-geronimo/modules/naming/src/schema/geronimo-naming.xsd
Index: geronimo-naming.xsd
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/naming/src/schema/geronimo-naming.xsd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- geronimo-naming.xsd 13 Feb 2004 23:41:47 -0000 1.1
+++ geronimo-naming.xsd 14 Feb 2004 01:50:15 -0000 1.2
@@ -19,9 +19,9 @@
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
- <xsd:element name="env-entry"
+ <!--xsd:element name="env-entry"
type="ger:env-entryType"
- minOccurs="0" maxOccurs="unbounded"/>
+ minOccurs="0" maxOccurs="unbounded"/-->
<xsd:element name="ejb-ref"
type="ger:ejb-refType"
minOccurs="0" maxOccurs="unbounded"/>