[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