Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 35477 invoked from network); 25 Sep 2006 15:00:13 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 25 Sep 2006 15:00:13 -0000 Received: (qmail 88106 invoked by uid 500); 25 Sep 2006 15:00:12 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 88066 invoked by uid 500); 25 Sep 2006 15:00:12 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 88027 invoked by uid 99); 25 Sep 2006 15:00:10 -0000 Received: from idunn.apache.osuosl.org (HELO idunn.apache.osuosl.org) (140.211.166.84) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 25 Sep 2006 08:00:10 -0700 Authentication-Results: idunn.apache.osuosl.org smtp.mail=sppatel@apache.org; spf=permerror X-ASF-Spam-Status: No, hits=-9.4 required=5.0 tests=ALL_TRUSTED,NO_REAL_NAME Received-SPF: error (idunn.apache.osuosl.org: domain apache.org from 140.211.166.113 cause and error) Received: from [140.211.166.113] ([140.211.166.113:51116] helo=eris.apache.org) by idunn.apache.osuosl.org (ecelerity 2.1.1.8 r(12930)) with ESMTP id CB/E9-13750-6DEE7154 for ; Mon, 25 Sep 2006 07:59:35 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 35CEE1A9823; Mon, 25 Sep 2006 07:58:48 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r449697 [4/4] - in /geronimo/server/branches/sachin: ./ applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/configmanager/ applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/conf... Date: Mon, 25 Sep 2006 14:58:44 -0000 To: scm@geronimo.apache.org From: sppatel@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20060925145848.35CEE1A9823@eris.apache.org> X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Modified: geronimo/server/branches/sachin/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/AbstractWebModuleBuilder.java URL: http://svn.apache.org/viewvc/geronimo/server/branches/sachin/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/AbstractWebModuleBuilder.java?view=diff&rev=449697&r1=449696&r2=449697 ============================================================================== --- geronimo/server/branches/sachin/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/AbstractWebModuleBuilder.java (original) +++ geronimo/server/branches/sachin/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/AbstractWebModuleBuilder.java Mon Sep 25 07:58:35 2006 @@ -78,14 +78,21 @@ import org.apache.geronimo.xbeans.j2ee.UrlPatternType; import org.apache.geronimo.xbeans.j2ee.WebAppType; import org.apache.geronimo.xbeans.j2ee.WebResourceCollectionType; +import org.apache.geronimo.xbeans.j2ee.WebAppDocument; import org.apache.geronimo.xbeans.geronimo.j2ee.GerSecurityDocument; +import org.apache.geronimo.naming.deployment.ResourceEnvironmentSetter; +import org.apache.geronimo.schema.SchemaConversionUtils; import org.apache.xmlbeans.XmlObject; +import org.apache.xmlbeans.XmlException; +import org.apache.xmlbeans.XmlCursor; +import org.apache.xmlbeans.XmlDocumentProperties; /** * @version $Rev$ $Date$ */ public abstract class AbstractWebModuleBuilder implements ModuleBuilder { private static final Log log = LogFactory.getLog(AbstractWebModuleBuilder.class); + private static final QName TAGLIB = new QName(SchemaConversionUtils.J2EE_NAMESPACE, "taglib"); private static final String LINE_SEP = System.getProperty("line.separator"); protected static final AbstractNameQuery MANAGED_CONNECTION_FACTORY_PATTERN; @@ -96,6 +103,7 @@ protected final Kernel kernel; protected final NamespaceDrivenBuilderCollection securityBuilders; protected final NamespaceDrivenBuilderCollection serviceBuilders; + protected final ResourceEnvironmentSetter resourceEnvironmentSetter; protected final NamingBuilder namingBuilders; @@ -109,12 +117,12 @@ */ private static final URI RELATIVE_MODULE_BASE_URI = URI.create("../"); - protected AbstractWebModuleBuilder(Kernel kernel, Collection securityBuilders, Collection serviceBuilders, NamingBuilder namingBuilders) { + protected AbstractWebModuleBuilder(Kernel kernel, Collection securityBuilders, Collection serviceBuilders, NamingBuilder namingBuilders, ResourceEnvironmentSetter resourceEnvironmentSetter) { this.kernel = kernel; this.securityBuilders = new NamespaceDrivenBuilderCollection(securityBuilders); this.serviceBuilders = new NamespaceDrivenBuilderCollection(serviceBuilders); this.namingBuilders = namingBuilders; - + this.resourceEnvironmentSetter = resourceEnvironmentSetter; } static { @@ -600,6 +608,78 @@ } securityBuilders.build(gerWebApp, earContext, module.getEarContext()); serviceBuilders.build(gerWebApp, earContext, module.getEarContext()); + } + + protected static WebAppDocument convertToServletSchema(XmlObject xmlObject) throws XmlException { + if (WebAppDocument.type.equals(xmlObject.schemaType())) { + XmlBeansUtil.validateDD(xmlObject); + return (WebAppDocument) xmlObject; + } + XmlCursor cursor = xmlObject.newCursor(); + try { + cursor.toStartDoc(); + cursor.toFirstChild(); + if (SchemaConversionUtils.J2EE_NAMESPACE.equals(cursor.getName().getNamespaceURI())) { + XmlObject result = xmlObject.changeType(WebAppDocument.type); + XmlBeansUtil.validateDD(result); + return (WebAppDocument) result; + } + + XmlDocumentProperties xmlDocumentProperties = cursor.documentProperties(); + String publicId = xmlDocumentProperties.getDoctypePublicId(); + if ("-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN".equals(publicId) || + "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN".equals(publicId)) { + XmlCursor moveable = xmlObject.newCursor(); + try { + moveable.toStartDoc(); + moveable.toFirstChild(); + String schemaLocationURL = "http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"; + String version = "2.4"; + SchemaConversionUtils.convertToSchema(cursor, SchemaConversionUtils.J2EE_NAMESPACE, schemaLocationURL, version); + cursor.toStartDoc(); + cursor.toChild(SchemaConversionUtils.J2EE_NAMESPACE, "web-app"); + cursor.toFirstChild(); + SchemaConversionUtils.convertToDescriptionGroup(SchemaConversionUtils.J2EE_NAMESPACE, cursor, moveable); + SchemaConversionUtils.convertToJNDIEnvironmentRefsGroup(SchemaConversionUtils.J2EE_NAMESPACE, cursor, moveable); + cursor.push(); + if (cursor.toNextSibling(TAGLIB)) { + cursor.toPrevSibling(); + moveable.toCursor(cursor); + cursor.beginElement("jsp-config", SchemaConversionUtils.J2EE_NAMESPACE); + while (moveable.toNextSibling(TAGLIB)) { + moveable.moveXml(cursor); + } + } + cursor.pop(); + do { + String name = cursor.getName().getLocalPart(); + if ("filter".equals(name) || "servlet".equals(name) || "context-param".equals(name)) { + cursor.push(); + cursor.toFirstChild(); + SchemaConversionUtils.convertToDescriptionGroup(SchemaConversionUtils.J2EE_NAMESPACE, cursor, moveable); + while (cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "init-param")) { + cursor.push(); + cursor.toFirstChild(); + SchemaConversionUtils.convertToDescriptionGroup(SchemaConversionUtils.J2EE_NAMESPACE, cursor, moveable); + cursor.pop(); + } + cursor.pop(); + } + } while (cursor.toNextSibling()); + } finally { + moveable.dispose(); + } + } + } finally { + cursor.dispose(); + } + XmlObject result = xmlObject.changeType(WebAppDocument.type); + if (result != null) { + XmlBeansUtil.validateDD(result); + return (WebAppDocument) result; + } + XmlBeansUtil.validateDD(xmlObject); + return (WebAppDocument) xmlObject; } class UncheckedItem {