You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xu...@apache.org on 2010/09/06 04:43:30 UTC
svn commit: r992929 - in /geronimo/server/trunk:
framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/xmlbeans/
plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/
plugins/tomcat/geron...
Author: xuhaihong
Date: Mon Sep 6 02:43:29 2010
New Revision: 992929
URL: http://svn.apache.org/viewvc?rev=992929&view=rev
Log:
GERONIMO-5511 context-priority-classloader is not allowed in geronimo-web.xml for backwards compatibility (Based on the patch from viola)
Modified:
geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/xmlbeans/XmlBeansUtil.java
geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java
geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
Modified: geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/xmlbeans/XmlBeansUtil.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/xmlbeans/XmlBeansUtil.java?rev=992929&r1=992928&r2=992929&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/xmlbeans/XmlBeansUtil.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/xmlbeans/XmlBeansUtil.java Mon Sep 6 02:43:29 2010
@@ -22,10 +22,12 @@ import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.xml.namespace.QName;
@@ -35,12 +37,15 @@ import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlOptions;
import org.apache.xmlbeans.XmlValidationError;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.w3c.dom.Element;
/**
* @version $Rev$ $Date$
*/
public class XmlBeansUtil {
+ private static final Logger logger = LoggerFactory.getLogger(XmlBeansUtil.class);
private static final Map<String, String> NAMESPACE_UPDATES = new HashMap<String, String>();
//TODO thread safe? conncurrentReaderMap?
private static final Map<QName, QNameSet> substitutionGroups = new HashMap<QName, QNameSet>();
@@ -153,6 +158,10 @@ public class XmlBeansUtil {
}
public static void validateDD(XmlObject dd) throws XmlException {
+ validateDD(dd, Collections.<String>emptySet());
+ }
+
+ public static void validateDD(XmlObject dd, Set<String> ignoreElements) throws XmlException {
XmlOptions xmlOptions = new XmlOptions();
xmlOptions.setLoadLineNumbers();
Collection errors = new ArrayList();
@@ -167,6 +176,10 @@ public class XmlBeansUtil {
XmlValidationError validationError = (XmlValidationError) o;
List<QName> expected = validationError.getExpectedQNames();
QName actual = validationError.getOffendingQName();
+ if (ignoreElements.contains(actual.getLocalPart())) {
+ iterator.remove();
+ logger.warn(actual.getLocalPart() + " is not supported yet.");
+ }
if (expected != null) {
for (QName expectedQName : expected) {
QNameSet substitutions = getQNameSetForSubstitutionGroup(expectedQName);
@@ -180,8 +193,8 @@ public class XmlBeansUtil {
}
if (!errors.isEmpty()) {
- StringBuffer buf = new StringBuffer("Invalid deployment descriptor: errors:\n\n");
- for (Object o: errors) {
+ StringBuilder buf = new StringBuilder("Invalid deployment descriptor: errors:\n\n");
+ for (Object o : errors) {
buf.append(o).append("\n\n");
}
buf.append("Descriptor:\n").append(dd.toString()).append("\n");
@@ -193,6 +206,5 @@ public class XmlBeansUtil {
} catch (AssertionError e) {
//ignore. Would be the NPE above if assertions were turned off
}
-// System.out.println("descriptor: " + dd.toString());
}
}
Modified: geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java?rev=992929&r1=992928&r2=992929&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java Mon Sep 6 02:43:29 2010
@@ -99,7 +99,6 @@ import org.apache.openejb.jee.Servlet;
import org.apache.openejb.jee.ServletMapping;
import org.apache.openejb.jee.WebApp;
import org.apache.xbean.finder.AbstractFinder;
-import org.apache.xbean.finder.BundleAnnotationFinder;
import org.apache.xbean.finder.ClassFinder;
import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlDocumentProperties;
Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java?rev=992929&r1=992928&r2=992929&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Mon Sep 6 02:43:29 2010
@@ -17,6 +17,8 @@
package org.apache.geronimo.tomcat.deployment;
+import static java.lang.Boolean.TRUE;
+
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -26,8 +28,10 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.jar.JarFile;
import javax.servlet.Servlet;
@@ -100,8 +104,6 @@ import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static java.lang.Boolean.TRUE;
-
/**
* @version $Rev:385659 $ $Date$
*/
@@ -112,6 +114,7 @@ public class TomcatModuleBuilder extends
private static final String TOMCAT_NAMESPACE = TomcatWebAppDocument.type.getDocumentElementName().getNamespaceURI();
private static final Map<String, String> NAMESPACE_UPDATES = new HashMap<String, String>();
+ private static final Set<String> INGORE_ELEMENT_NAMES = new HashSet<String>();
static {
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/web", "http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1");
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/j2ee/web-1.1", "http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1");
@@ -122,6 +125,10 @@ public class TomcatModuleBuilder extends
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-1.2", "http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1");
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0", "http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1");
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/web/tomcat/config", "http://geronimo.apache.org/xml/ns/j2ee/web/tomcat/config-1.0");
+
+ INGORE_ELEMENT_NAMES.add("context-priority-classloader");
+ INGORE_ELEMENT_NAMES.add("configId");
+ INGORE_ELEMENT_NAMES.add("parentId");
}
private final Environment defaultEnvironment;
@@ -372,7 +379,7 @@ public class TomcatModuleBuilder extends
XmlObject webPlan = new GenericToSpecificPlanConverter(GerTomcatDocument.type.getDocumentElementName().getNamespaceURI(),
TomcatWebAppDocument.type.getDocumentElementName().getNamespaceURI(), "tomcat").convertToSpecificPlan(rawPlan);
tomcatWebApp = (TomcatWebAppType) webPlan.changeType(TomcatWebAppType.type);
- XmlBeansUtil.validateDD(tomcatWebApp);
+ XmlBeansUtil.validateDD(tomcatWebApp, INGORE_ELEMENT_NAMES);
} else {
tomcatWebApp = createDefaultPlan();
}
@@ -597,9 +604,6 @@ public class TomcatModuleBuilder extends
//Also, currently, it seems that Tomcat could not handle those jndi elements correctly
webApp.setMetadataComplete(true);
- String specDeploymentPlan = getSpecDDAsString(webModule);
- module.setOriginalSpecDD(specDeploymentPlan);
-
//remove naming stuff from webApp so tomcat doesn't process it uselessly
webApp.getEjbLocalRef().clear();
webApp.getEjbRef().clear();
@@ -609,8 +613,11 @@ public class TomcatModuleBuilder extends
webApp.getResourceEnvRef().clear();
webApp.getResourceRef().clear();
webApp.getServiceRef().clear();
- specDeploymentPlan = getSpecDDAsString(webModule);
- earContext.addFile(new URI("./WEB-INF/web.xml"), specDeploymentPlan);
+
+ String specDeploymentPlan = getSpecDDAsString(webModule);
+ module.setOriginalSpecDD(specDeploymentPlan);
+
+ earContext.addFile(new URI("./WEB-INF/web.xml"), specDeploymentPlan);
}
//}
webModuleData.setAttribute("deploymentDescriptor", module.getOriginalSpecDD());