You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2010/01/30 04:33:13 UTC

svn commit: r904725 - in /geronimo/server/trunk/plugins: j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/ jetty8/geronimo-jetty8-builder/src/main/java/org/apache/geronimo/jetty8/deployment/ tomcat/geronimo-tomcat7-build...

Author: gawor
Date: Sat Jan 30 03:33:11 2010
New Revision: 904725

URL: http://svn.apache.org/viewvc?rev=904725&view=rev
Log:
make sure the deploymentDescriptor attribute has the right root element

Modified:
    geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java
    geronimo/server/trunk/plugins/jetty8/geronimo-jetty8-builder/src/main/java/org/apache/geronimo/jetty8/deployment/JettyModuleBuilder.java
    geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java

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=904725&r1=904724&r2=904725&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 Sat Jan 30 03:33:11 2010
@@ -82,6 +82,7 @@
 import org.apache.xmlbeans.XmlDocumentProperties;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlOptions;
 import org.osgi.framework.Bundle;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -393,6 +394,19 @@
         return resolutionUri;
     }
 
+    protected String getSpecDDAsString(WebModule module) {
+        StringWriter writer = new StringWriter();    
+        XmlOptions options = new XmlOptions();
+        QName webQName = new QName("http://java.sun.com/xml/ns/javaee", "web-app");
+        options.setSaveSyntheticDocumentElement(webQName);
+        try {
+            module.getSpecDD().save(writer, options);
+        } catch (IOException e) {
+            // ignore
+        }
+        return writer.toString();
+    }
+    
     protected WebAppDocument convertToServletSchema(XmlObject xmlObject) throws XmlException {
 
         String schemaLocationURL = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";

Modified: geronimo/server/trunk/plugins/jetty8/geronimo-jetty8-builder/src/main/java/org/apache/geronimo/jetty8/deployment/JettyModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty8/geronimo-jetty8-builder/src/main/java/org/apache/geronimo/jetty8/deployment/JettyModuleBuilder.java?rev=904725&r1=904724&r2=904725&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty8/geronimo-jetty8-builder/src/main/java/org/apache/geronimo/jetty8/deployment/JettyModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/jetty8/geronimo-jetty8-builder/src/main/java/org/apache/geronimo/jetty8/deployment/JettyModuleBuilder.java Sat Jan 30 03:33:11 2010
@@ -571,7 +571,7 @@
             //not truly metadata complete until MBEs have run
             if (!webApp.getMetadataComplete()) {
                 webApp.setMetadataComplete(true);
-                module.setOriginalSpecDD(module.getSpecDD().toString());
+                module.setOriginalSpecDD(getSpecDDAsString(webModule));
             }
             webModuleData.setAttribute("deploymentDescriptor", module.getOriginalSpecDD());
 

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=904725&r1=904724&r2=904725&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 Sat Jan 30 03:33:11 2010
@@ -87,7 +87,6 @@
 import org.apache.geronimo.xbeans.javaee.ServletType;
 import org.apache.geronimo.xbeans.javaee.WebAppDocument;
 import org.apache.geronimo.xbeans.javaee.WebAppType;
-import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlObject;
 import org.osgi.framework.Bundle;
@@ -103,7 +102,6 @@
     static final String ROLE_MAPPER_DATA_NAME = "roleMapperDataName";
 
     private static final String TOMCAT_NAMESPACE = TomcatWebAppDocument.type.getDocumentElementName().getNamespaceURI();
-    private static final String IS_JAVAEE = "IS_JAVAEE";
     private static final Map<String, String> NAMESPACE_UPDATES = new HashMap<String, String>();
     static {
         NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/web", "http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1");
@@ -160,18 +158,15 @@
         
         String specDD = null;
         WebAppType webApp = null;
-        Boolean isJavaee;
         
         URL specDDUrl = bundle.getEntry("WEB-INF/web.xml");
         if (specDDUrl == null) {
             webApp = WebAppType.Factory.newInstance();
-            isJavaee = true;
         } else {
             try {
                 specDD = JarUtils.readAll(specDDUrl);
 
                 XmlObject parsed = XmlBeansUtil.parse(specDD);
-                isJavaee = "http://java.sun.com/xml/ns/javaee".equals(getRootNamespace(parsed));
                 
                 WebAppDocument webAppDoc = convertToServletSchema(parsed);
                 webApp = webAppDoc.getWebApp();
@@ -215,7 +210,6 @@
         for (ModuleBuilderExtension mbe : moduleBuilderExtensions) {
             mbe.createModule(module, bundle, naming, idBuilder);
         }
-        module.getSharedContext().put(IS_JAVAEE, isJavaee);
         return module;
     }
     
@@ -227,7 +221,6 @@
         // parse the spec dd
         String specDD = null;
         WebAppType webApp = null;
-        Boolean isJavaee;
         try {
             if (specDDUrl == null) {
                 specDDUrl = JarUtils.createJarURL(moduleFile, "WEB-INF/web.xml");
@@ -239,8 +232,6 @@
 
             // we found web.xml, if it won't parse that's an error.
             XmlObject parsed = XmlBeansUtil.parse(specDD);
-            //Dont save updated xml if it isn't javaee
-            isJavaee = "http://java.sun.com/xml/ns/javaee".equals(getRootNamespace(parsed));
 
             WebAppDocument webAppDoc = convertToServletSchema(parsed);
             webApp = webAppDoc.getWebApp();
@@ -255,7 +246,6 @@
                 //not for us
                 return null;
             }
-            isJavaee = true;
             //else ignore as jee5 allows optional spec dd for .war's
         }
 
@@ -297,21 +287,9 @@
         for (ModuleBuilderExtension mbe : moduleBuilderExtensions) {
             mbe.createModule(module, plan, moduleFile, targetPath, specDDUrl, environment, contextRoot, earName, naming, idBuilder);
         }
-        module.getSharedContext().put(IS_JAVAEE, isJavaee);
         return module;
     }
 
-    private static String getRootNamespace(XmlObject object) {
-        XmlCursor cursor = object.newCursor();
-        try {
-            cursor.toStartDoc();
-            cursor.toFirstChild();
-            return cursor.getName().getNamespaceURI();
-        } finally {
-            cursor.dispose();
-        }
-    }
-    
     private String getContextRoot(TomcatWebAppType tomcatWebApp, String contextRoot, WebAppType webApp, boolean standAlone, JarFile moduleFile, String targetPath) {
         //If we have a context root, override everything
         if (tomcatWebApp.isSetContextRoot()) {
@@ -565,7 +543,7 @@
             //not truly metadata complete until MBEs have run
             if (!webApp.getMetadataComplete()) {
                 webApp.setMetadataComplete(true);
-                module.setOriginalSpecDD(module.getSpecDD().toString());
+                module.setOriginalSpecDD(getSpecDDAsString(webModule));
             }
             webModuleData.setAttribute("deploymentDescriptor", module.getOriginalSpecDD());