You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2005/10/01 08:29:28 UTC
svn commit: r292930 - in /geronimo/branches/1.0-M5/modules:
jetty-builder/src/java/org/apache/geronimo/jetty/deployment/
jetty-builder/src/test/org/apache/geronimo/jetty/deployment/
tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/ web-bui...
Author: djencks
Date: Fri Sep 30 23:29:22 2005
New Revision: 292930
URL: http://svn.apache.org/viewcvs?rev=292930&view=rev
Log:
Fix problems with ear deployment including web apps
Modified:
geronimo/branches/1.0-M5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
geronimo/branches/1.0-M5/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/PlanParsingTest.java
geronimo/branches/1.0-M5/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
geronimo/branches/1.0-M5/modules/web-builder/src/java/org/apache/geronimo/web/deployment/GenericToSpecificPlanConverter.java
Modified: geronimo/branches/1.0-M5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.0-M5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java?rev=292930&r1=292929&r2=292930&view=diff
==============================================================================
--- geronimo/branches/1.0-M5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java (original)
+++ geronimo/branches/1.0-M5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java Fri Sep 30 23:29:22 2005
@@ -291,7 +291,7 @@
// load the geronimo-web.xml from either the supplied plan or from the earFile
try {
if (plan instanceof XmlObject) {
- rawPlan = (XmlObject) plan;//SchemaConversionUtils.getNestedObject((XmlObject) plan, "web-app");
+ rawPlan = (XmlObject) plan;
} else {
if (plan != null) {
rawPlan = XmlBeansUtil.parse(((File) plan).toURL());
@@ -315,16 +315,10 @@
JettyWebAppType jettyWebApp = null;
if (rawPlan != null) {
- XmlCursor cursor = rawPlan.newCursor();
- try {
- new GenericToSpecificPlanConverter(GerJettyDocument.type.getDocumentElementName().getNamespaceURI(),
- JettyWebAppDocument.type.getDocumentElementName().getNamespaceURI()).convertToSpecificPlan(cursor);
- SchemaConversionUtils.findNestedElement(cursor, "web-app");
- jettyWebApp = (JettyWebAppType) cursor.getObject().copy().changeType(JettyWebAppType.type);
- SchemaConversionUtils.validateDD(jettyWebApp);
- } finally {
- cursor.dispose();
- }
+ XmlObject webPlan = new GenericToSpecificPlanConverter(GerJettyDocument.type.getDocumentElementName().getNamespaceURI(),
+ JettyWebAppDocument.type.getDocumentElementName().getNamespaceURI(), "jetty").convertToSpecificPlan(rawPlan);
+ jettyWebApp = (JettyWebAppType) webPlan.changeType(JettyWebAppType.type);
+ SchemaConversionUtils.validateDD(jettyWebApp);
} else {
String defaultContextRoot = determineDefaultContextRoot(webApp, standAlone, moduleFile, targetPath);
jettyWebApp = createDefaultPlan(defaultContextRoot);
Modified: geronimo/branches/1.0-M5/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/PlanParsingTest.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.0-M5/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/PlanParsingTest.java?rev=292930&r1=292929&r2=292930&view=diff
==============================================================================
--- geronimo/branches/1.0-M5/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/PlanParsingTest.java (original)
+++ geronimo/branches/1.0-M5/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/PlanParsingTest.java Fri Sep 30 23:29:22 2005
@@ -2,9 +2,9 @@
import java.io.File;
import java.net.URI;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
-import java.util.ArrayList;
import java.util.jar.JarFile;
import javax.management.ObjectName;
@@ -14,17 +14,15 @@
import org.apache.geronimo.j2ee.deployment.WebServiceBuilder;
import org.apache.geronimo.kernel.jmx.JMXUtil;
import org.apache.geronimo.schema.SchemaConversionUtils;
+import org.apache.geronimo.web.deployment.GenericToSpecificPlanConverter;
import org.apache.geronimo.xbeans.geronimo.naming.GerResourceRefType;
-import org.apache.geronimo.xbeans.geronimo.web.GerWebAppDocument;
-import org.apache.geronimo.xbeans.geronimo.web.GerWebAppType;
-import org.apache.geronimo.xbeans.geronimo.web.jetty.config.GerJettyDocument;
import org.apache.geronimo.xbeans.geronimo.web.jetty.JettyWebAppDocument;
import org.apache.geronimo.xbeans.geronimo.web.jetty.JettyWebAppType;
+import org.apache.geronimo.xbeans.geronimo.web.jetty.config.GerJettyDocument;
import org.apache.geronimo.xbeans.j2ee.WebAppDocument;
import org.apache.geronimo.xbeans.j2ee.WebAppType;
-import org.apache.geronimo.web.deployment.GenericToSpecificPlanConverter;
-import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
/**
*/
@@ -128,6 +126,12 @@
}
+ /** This test has 2 purposes: one the obvious one explicitly tested,
+ * the other that passing a JettyWebAppType XmlObject in works. This latter
+ * models a web-app element inside an ear plan.
+ *
+ * @throws Exception
+ */
public void testContextRootWithPlanAndContextSet() throws Exception {
JettyWebAppDocument jettyWebAppDoc = JettyWebAppDocument.Factory.newInstance();
@@ -182,21 +186,17 @@
public void testConvertToJettySchema() throws Exception {
File resourcePlan = new File(basedir, "src/test-resources/plans/plan4.xml");
assertTrue(resourcePlan.exists());
- XmlObject plan = XmlBeansUtil.parse(resourcePlan.toURL());
- XmlCursor cursor = plan.newCursor();
- try {
- new GenericToSpecificPlanConverter(GerJettyDocument.type.getDocumentElementName().getNamespaceURI(),
- JettyWebAppDocument.type.getDocumentElementName().getNamespaceURI()).convertToSpecificPlan(cursor);
- } finally {
- cursor.dispose();
- }
+ XmlObject rawPlan = XmlBeansUtil.parse(resourcePlan.toURL());
+ XmlObject webPlan = new GenericToSpecificPlanConverter(GerJettyDocument.type.getDocumentElementName().getNamespaceURI(),
+ JettyWebAppDocument.type.getDocumentElementName().getNamespaceURI(), "jetty").convertToSpecificPlan(rawPlan);
File ConvertedPlan = new File(basedir, "src/test-resources/plans/plan4-converted.xml");
assertTrue(ConvertedPlan.exists());
XmlObject converted = XmlBeansUtil.parse(ConvertedPlan.toURL());
XmlCursor c = converted.newCursor();
SchemaConversionUtils.findNestedElement(c, "web-app");
+ c.toFirstChild();
ArrayList problems = new ArrayList();
- compareXmlObjects(plan, c, problems);
+ compareXmlObjects(webPlan, c, problems);
assertEquals("problems: " + problems, 0, problems.size());
}
Modified: geronimo/branches/1.0-M5/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.0-M5/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java?rev=292930&r1=292929&r2=292930&view=diff
==============================================================================
--- geronimo/branches/1.0-M5/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java (original)
+++ geronimo/branches/1.0-M5/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Fri Sep 30 23:29:22 2005
@@ -129,7 +129,7 @@
ObjectName tomcatContainerObjectName,
WebServiceBuilder webServiceBuilder,
Repository repository) {
- this.defaultParentId = defaultParentId == null? Collections.EMPTY_LIST: Arrays.asList(defaultParentId);
+ this.defaultParentId = defaultParentId == null ? Collections.EMPTY_LIST : Arrays.asList(defaultParentId);
this.defaultContextPriorityClassloader = defaultContextPriorityClassloader;
this.tomcatContainerObjectName = tomcatContainerObjectName;
@@ -243,7 +243,7 @@
// load the geronimo-web.xml from either the supplied plan or from the earFile
try {
if (plan instanceof XmlObject) {
- rawPlan = (XmlObject) plan;//SchemaConversionUtils.getNestedObject((XmlObject) plan, "web-app");
+ rawPlan = (XmlObject) plan;
} else {
if (plan != null) {
rawPlan = XmlBeansUtil.parse(((File) plan).toURL());
@@ -267,16 +267,10 @@
TomcatWebAppType tomcatWebApp = null;
if (rawPlan != null) {
- XmlCursor cursor = rawPlan.newCursor();
- try {
- new GenericToSpecificPlanConverter(GerTomcatDocument.type.getDocumentElementName().getNamespaceURI(),
- TomcatWebAppDocument.type.getDocumentElementName().getNamespaceURI()).convertToSpecificPlan(cursor);
- SchemaConversionUtils.findNestedElement(cursor, "web-app");
- tomcatWebApp = (TomcatWebAppType) cursor.getObject().copy().changeType(TomcatWebAppType.type);
- SchemaConversionUtils.validateDD(tomcatWebApp);
- } finally {
- cursor.dispose();
- }
+ XmlObject webPlan = new GenericToSpecificPlanConverter(GerTomcatDocument.type.getDocumentElementName().getNamespaceURI(),
+ TomcatWebAppDocument.type.getDocumentElementName().getNamespaceURI(), "tomcat").convertToSpecificPlan(rawPlan);
+ tomcatWebApp = (TomcatWebAppType) webPlan.changeType(TomcatWebAppType.type);
+ SchemaConversionUtils.validateDD(tomcatWebApp);
} else {
String defaultContextRoot = determineDefaultContextRoot(webApp, standAlone, moduleFile, targetPath);
tomcatWebApp = createDefaultPlan(defaultContextRoot);
@@ -430,23 +424,23 @@
webModuleData.setReferencePattern("Container", tomcatContainerObjectName);
// Process the Tomcat container-config elements
- if (tomcatWebApp.isSetHost()) {
- String virtualServer = tomcatWebApp.getHost().trim();
- webModuleData.setAttribute("virtualServer", virtualServer);
- }
- if (tomcatWebApp.isSetCrossContext()) {
- webModuleData.setAttribute("crossContext", Boolean.TRUE);
- }
- if (tomcatWebApp.isSetTomcatRealm()) {
- String tomcatRealm = tomcatWebApp.getTomcatRealm().trim();
- ObjectName realmName = NameFactory.getComponentName(null, null, null, null, tomcatRealm, RealmGBean.GBEAN_INFO.getJ2eeType(), moduleJ2eeContext);
- webModuleData.setReferencePattern("TomcatRealm", realmName);
- }
- if (tomcatWebApp.isSetValveChain()) {
- String valveChain = tomcatWebApp.getValveChain().trim();
- ObjectName valveName = NameFactory.getComponentName(null, null, null, null, valveChain, ValveGBean.J2EE_TYPE, moduleJ2eeContext);
- webModuleData.setReferencePattern("TomcatValveChain", valveName);
- }
+ if (tomcatWebApp.isSetHost()) {
+ String virtualServer = tomcatWebApp.getHost().trim();
+ webModuleData.setAttribute("virtualServer", virtualServer);
+ }
+ if (tomcatWebApp.isSetCrossContext()) {
+ webModuleData.setAttribute("crossContext", Boolean.TRUE);
+ }
+ if (tomcatWebApp.isSetTomcatRealm()) {
+ String tomcatRealm = tomcatWebApp.getTomcatRealm().trim();
+ ObjectName realmName = NameFactory.getComponentName(null, null, null, null, tomcatRealm, RealmGBean.GBEAN_INFO.getJ2eeType(), moduleJ2eeContext);
+ webModuleData.setReferencePattern("TomcatRealm", realmName);
+ }
+ if (tomcatWebApp.isSetValveChain()) {
+ String valveChain = tomcatWebApp.getValveChain().trim();
+ ObjectName valveName = NameFactory.getComponentName(null, null, null, null, valveChain, ValveGBean.J2EE_TYPE, moduleJ2eeContext);
+ webModuleData.setReferencePattern("TomcatValveChain", valveName);
+ }
Map portMap = webModule.getPortMap();
@@ -513,7 +507,7 @@
}
DefaultPrincipal defaultPrincipal = earContext.getSecurityConfiguration().getDefaultPrincipal();
securityHolder.setDefaultPrincipal(defaultPrincipal);
- if (defaultPrincipal != null){
+ if (defaultPrincipal != null) {
securityHolder.setSecurity(true);
}
Modified: geronimo/branches/1.0-M5/modules/web-builder/src/java/org/apache/geronimo/web/deployment/GenericToSpecificPlanConverter.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.0-M5/modules/web-builder/src/java/org/apache/geronimo/web/deployment/GenericToSpecificPlanConverter.java?rev=292930&r1=292929&r2=292930&view=diff
==============================================================================
--- geronimo/branches/1.0-M5/modules/web-builder/src/java/org/apache/geronimo/web/deployment/GenericToSpecificPlanConverter.java (original)
+++ geronimo/branches/1.0-M5/modules/web-builder/src/java/org/apache/geronimo/web/deployment/GenericToSpecificPlanConverter.java Fri Sep 30 23:29:22 2005
@@ -24,6 +24,7 @@
import org.apache.geronimo.xbeans.geronimo.security.GerSecurityDocument;
import org.apache.geronimo.xbeans.geronimo.web.GerWebAppDocument;
import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
/**
* @version $Rev: $ $Date: $
@@ -37,23 +38,29 @@
private static final QName SECURITY_QNAME = GerSecurityDocument.type.getDocumentElementName();
private final String configNamespace;
private final String namespace;
+ private final String element;
- public GenericToSpecificPlanConverter(String configNamespace, String namespace) {
+ public GenericToSpecificPlanConverter(String configNamespace, String namespace, String element) {
this.configNamespace = configNamespace;
this.namespace = namespace;
+ this.element = element;
}
- public void convertToSpecificPlan(XmlCursor cursor) throws DeploymentException {
- if (SchemaConversionUtils.findNestedElement(cursor, "web-app")) {
- cursor.push();
- if (cursor.getName().equals(GENERIC_QNAME)) {
+ public XmlObject convertToSpecificPlan(XmlObject plan) throws DeploymentException {
+ XmlCursor rawCursor = plan.newCursor();
+ try {
+ if (SchemaConversionUtils.findNestedElement(rawCursor, "web-app")) {
+ XmlObject webPlan = rawCursor.getObject().copy();
+
+ XmlCursor cursor = webPlan.newCursor();
+ cursor.push();
if (cursor.toChild(GENERIC_CONFIG_QNAME)) {
XmlCursor source = cursor.newCursor();
cursor.push();
cursor.toEndToken();
cursor.toNextToken();
try {
- if (source.toChild(configNamespace, "jetty")) {
+ if (source.toChild(configNamespace, element)) {
source.copyXmlContents(cursor);
}
@@ -63,7 +70,8 @@
cursor.pop();
cursor.removeXml();
}
- cursor.toStartDoc();
+ cursor.pop();
+ cursor.push();
while (cursor.hasNextToken()) {
if (cursor.isStart()) {
if (namespace.equals(cursor.getName().getNamespaceURI())) {
@@ -76,35 +84,38 @@
cursor.toNextToken();
}
}
- }
- //move security elements after refs
- SchemaConversionUtils.convertToGeronimoSubSchemas(cursor);
+ SchemaConversionUtils.convertToGeronimoSubSchemas(cursor);
+ //move security elements after refs
- cursor.pop();
- cursor.push();
- if (cursor.toChild(namespace, "security-realm-name")) {
- XmlCursor other = cursor.newCursor();
- try {
- other.toParent();
- if (other.toChild(SYSTEM_NAMESPACE, "gbean")) {
- other.toPrevToken();
- } else {
- other.toEndToken();
- other.toPrevToken();
- }
- cursor.moveXml(other);
- cursor.pop();
- cursor.push();
- if (cursor.toChild(SECURITY_QNAME)) {
+ cursor.pop();
+ cursor.push();
+ if (cursor.toChild(namespace, "security-realm-name")) {
+ XmlCursor other = cursor.newCursor();
+ try {
+ other.toParent();
+ if (other.toChild(SYSTEM_NAMESPACE, "gbean")) {
+ other.toPrevToken();
+ } else {
+ other.toEndToken();
+ other.toPrevToken();
+ }
cursor.moveXml(other);
+ cursor.pop();
+ cursor.push();
+ if (cursor.toChild(SECURITY_QNAME)) {
+ cursor.moveXml(other);
+ }
+ } finally {
+ other.dispose();
}
- } finally {
- other.dispose();
}
+ cursor.pop();
+ return webPlan;
+ } else {
+ throw new DeploymentException("No web-app element");
}
- cursor.pop();
- } else {
- throw new DeploymentException("No web-app element");
+ } finally {
+ rawCursor.dispose();
}
}