[jboss-cvs] JBossAS SVN: r79920 - trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Oct 22 08:16:20 EDT 2008


Author: remy.maucherat at jboss.com
Date: 2008-10-22 08:16:20 -0400 (Wed, 22 Oct 2008)
New Revision: 79920

Modified:
   trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
   trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatService.java
Log:
- Update to using SchemaBinding (needs XB 2.0.0 GA).
- Hack in property replacement since I can't get it to work.
- Old code is still in by default.

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java	2008-10-22 12:14:12 UTC (rev 79919)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java	2008-10-22 12:16:20 UTC (rev 79920)
@@ -33,6 +33,7 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.servlet.ServletContext;
+import javax.xml.namespace.QName;
 
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.deploy.SessionCookie;
@@ -73,13 +74,18 @@
 import org.jboss.metadata.web.spec.WebResourceCollectionMetaData;
 import org.jboss.metadata.web.spec.WebResourceCollectionsMetaData;
 import org.jboss.metadata.web.spec.WelcomeFileListMetaData;
+import org.jboss.util.StringPropertyReplacer;
+import org.jboss.util.xml.JBossEntityResolver;
 import org.jboss.virtual.VirtualFile;
 import org.jboss.web.tomcat.metadata.ContextMetaData;
 import org.jboss.web.tomcat.metadata.ContextXMLObjectModelFactory;
 import org.jboss.web.tomcat.metadata.ParameterMetaData;
+import org.jboss.web.tomcat.metadata.ServerMetaData;
 import org.jboss.xb.binding.ObjectModelFactory;
 import org.jboss.xb.binding.Unmarshaller;
 import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.builder.JBossXBBuilder;
 
 @SuppressWarnings("unchecked")
 public class JBossContextConfig extends ContextConfig
@@ -545,10 +551,11 @@
    {
       ContextMetaData contextMetaData = null;
       try {
-         ObjectModelFactory factory = new ContextXMLObjectModelFactory();
+         SchemaBinding schema = JBossXBBuilder.build(ContextMetaData.class);
          Unmarshaller u = UnmarshallerFactory.newInstance().newUnmarshaller();
          u.setSchemaValidation(false);
          u.setValidation(false);
+         u.setEntityResolver(new JBossEntityResolver());
          InputStream is = null;
          try {
             if (local)
@@ -564,7 +571,7 @@
             if (is == null) {
                return;
             }
-            contextMetaData = ContextMetaData.class.cast(u.unmarshal(is, factory, null));
+            contextMetaData = ContextMetaData.class.cast(u.unmarshal(is, schema));
          } finally {
             if (is != null) {
                try {
@@ -585,11 +592,13 @@
          {
             
             if (contextMetaData.getAttributes() != null) {
-               Iterator<String> names = contextMetaData.getAttributes().keySet().iterator();
+               Iterator<QName> names = contextMetaData.getAttributes().keySet().iterator();
                while (names.hasNext()) {
-                  String name = names.next();
+                  QName name = names.next();
                   String value = (String) contextMetaData.getAttributes().get(name);
-                  IntrospectionUtils.setProperty(context, name, value);
+                  // FIXME: This should be done by XB
+                  value = StringPropertyReplacer.replaceProperties(value);
+                  IntrospectionUtils.setProperty(context, name.getLocalPart(), value);
                }
             }
 

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatService.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatService.java	2008-10-22 12:14:12 UTC (rev 79919)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatService.java	2008-10-22 12:16:20 UTC (rev 79920)
@@ -38,6 +38,7 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.security.jacc.PolicyContext;
+import javax.xml.namespace.QName;
 
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.connector.Connector;
@@ -51,6 +52,8 @@
 import org.jboss.system.ServiceMBeanSupport;
 import org.jboss.system.server.Server;
 import org.jboss.system.server.ServerImplMBean;
+import org.jboss.util.StringPropertyReplacer;
+import org.jboss.util.xml.JBossEntityResolver;
 import org.jboss.web.tomcat.metadata.AnyXmlMetaData;
 import org.jboss.web.tomcat.metadata.ConnectorMetaData;
 import org.jboss.web.tomcat.metadata.EngineMetaData;
@@ -64,6 +67,8 @@
 import org.jboss.xb.binding.ObjectModelFactory;
 import org.jboss.xb.binding.Unmarshaller;
 import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.builder.JBossXBBuilder;
 
 /**
  * Temporary workaround to support controlling the lifecycle of the webserver runtime portion of TomcatDeployer via a
@@ -140,10 +145,11 @@
       
          // Parse main server.xml
          // FIXME: this could be done somewhere else
-         ObjectModelFactory factory = new ServerXMLObjectModelFactory();
+         SchemaBinding schema = JBossXBBuilder.build(ServerMetaData.class);
          Unmarshaller u = UnmarshallerFactory.newInstance().newUnmarshaller();
          u.setSchemaValidation(false);
          u.setValidation(false);
+         u.setEntityResolver(new JBossEntityResolver());
          InputStream is = null;
          ServerMetaData serverMetaData = null;
          try {
@@ -160,7 +166,7 @@
                log.error("Could not read configured server.xml (will try default): " + tomcatDeployer.getConfigFile());
                is = getClass().getClassLoader().getResourceAsStream("server.xml");
             }
-            serverMetaData = ServerMetaData.class.cast(u.unmarshal(is, factory, null));
+            serverMetaData = ServerMetaData.class.cast(u.unmarshal(is, schema));
          } finally {
             if (is != null) {
                try {
@@ -206,6 +212,7 @@
             org.apache.catalina.Service service = 
                (org.apache.catalina.Service) getInstance(serviceMetaData, "org.apache.catalina.core.StandardService");
             addLifecycleListeners(service, serviceMetaData.getListeners());
+            service.setName(serviceMetaData.getName());
             service.setServer(catalinaServer);
             catalinaServer.addService(service);
             
@@ -222,12 +229,14 @@
                   Connector connector = new Connector(connectorMetaData.getProtocol());
                   if (connectorMetaData.getAttributes() != null)
                   {
-                     Iterator<String> names = connectorMetaData.getAttributes().keySet().iterator();
+                     Iterator<QName> names = connectorMetaData.getAttributes().keySet().iterator();
                      while (names.hasNext())
                      {
-                        String name = names.next();
+                        QName name = names.next();
                         String value = (String) connectorMetaData.getAttributes().get(name);
-                        IntrospectionUtils.setProperty(connector, name, value);
+                        // FIXME: This should be done by XB
+                        value = StringPropertyReplacer.replaceProperties(value);
+                        IntrospectionUtils.setProperty(connector, name.getLocalPart(), value);
                      }
                   }
                   service.addConnector(connector);
@@ -357,11 +366,13 @@
       }
       Object instance = TomcatService.class.getClassLoader().loadClass(className).newInstance();
       if (metaData.getAttributes() != null) {
-         Iterator<String> names = metaData.getAttributes().keySet().iterator();
+         Iterator<QName> names = metaData.getAttributes().keySet().iterator();
          while (names.hasNext()) {
-            String name = names.next();
+            QName name = names.next();
             String value = (String) metaData.getAttributes().get(name);
-            IntrospectionUtils.setProperty(instance, name, value);
+            // FIXME: This should be done by XB
+            value = StringPropertyReplacer.replaceProperties(value);
+            IntrospectionUtils.setProperty(instance, name.getLocalPart(), value);
          }
       }
       return instance;




More information about the jboss-cvs-commits mailing list