[jboss-cvs] JBossAS SVN: r61109 - in branches/tdiesler/trunk: server and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 5 18:02:57 EST 2007
Author: thomas.diesler at jboss.com
Date: 2007-03-05 18:02:57 -0500 (Mon, 05 Mar 2007)
New Revision: 61109
Modified:
branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/ServiceRefInjector.java
branches/tdiesler/trunk/server/.classpath
branches/tdiesler/trunk/server/build.xml
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerChainMetaData.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerChainsMetaData.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerMetaData.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/InitParamMetaData.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/PortComponentRefMetaData.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandler.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java
Log:
partial commit
Modified: branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/ServiceRefInjector.java
===================================================================
--- branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/ServiceRefInjector.java 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/ServiceRefInjector.java 2007-03-05 23:02:57 UTC (rev 61109)
@@ -25,17 +25,13 @@
import java.lang.reflect.AnnotatedElement;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
import javax.naming.Context;
-import javax.naming.NamingException;
import javax.xml.ws.WebServiceException;
import org.jboss.logging.Logger;
+import org.jboss.metadata.serviceref.ServiceRefHandler;
+import org.jboss.metadata.serviceref.ServiceRefHandlerFactory;
import org.jboss.metadata.serviceref.ServiceRefMetaData;
-import org.jboss.mx.util.MBeanProxy;
-import org.jboss.mx.util.MBeanServerLocator;
-import org.jboss.mx.util.ObjectNameFactory;
import org.jboss.virtual.VirtualFile;
/**
@@ -53,13 +49,6 @@
private ServiceRefMetaData sref;
- // The ServiceRefHandlerMBean interface is duplicated here to avoid a binary dependency on JBossWS
- public interface ServiceRefHandlerMBean
- {
- ObjectName OBJECT_NAME = ObjectNameFactory.create("jboss.ws:service=ServiceRefHandler");
- void setupServiceRef(Context encCtx, String encName, AnnotatedElement anElement, VirtualFile vfsRoot, ServiceRefMetaData sref) throws NamingException;
- }
-
public ServiceRefInjector(String name, AnnotatedElement anElement, ServiceRefMetaData sref)
{
this.name = name;
@@ -74,12 +63,9 @@
Context encCtx = container.getEnc();
VirtualFile vfsRoot = container.getRootFile();
- // Decoupled invocation to JBossWS
- MBeanServer server = MBeanServerLocator.locateJBoss();
- ObjectName oname = ServiceRefHandlerMBean.OBJECT_NAME;
- ServiceRefHandlerMBean handler = (ServiceRefHandlerMBean)MBeanProxy.get(ServiceRefHandlerMBean.class, oname, server);
- handler.setupServiceRef(encCtx, name, anElement, vfsRoot, sref);
-
+ ServiceRefHandler factory = ServiceRefHandlerFactory.newInstance();
+ factory.setupServiceRef(encCtx, name, anElement, vfsRoot, sref.toXMLFragmet());
+
log.debug("ServiceRef bound [env=" + name + "]");
}
catch (Exception e)
Modified: branches/tdiesler/trunk/server/.classpath
===================================================================
--- branches/tdiesler/trunk/server/.classpath 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/.classpath 2007-03-05 23:02:57 UTC (rev 61109)
@@ -35,5 +35,6 @@
<classpathentry kind="lib" path="/thirdparty/jboss/jbossws/lib/jboss-jaxrpc.jar"/>
<classpathentry kind="lib" path="/thirdparty/jboss/jbossws/lib/jboss-saaj.jar"/>
<classpathentry kind="lib" path="/thirdparty/jboss/jboss-vfs/lib/jboss-vfs.jar" sourcepath="/thirdparty/jboss/jboss-vfs/lib/jboss-vfs-sources.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/dom4j/lib/dom4j.jar"/>
<classpathentry kind="output" path="output/eclipse-classes"/>
</classpath>
Modified: branches/tdiesler/trunk/server/build.xml
===================================================================
--- branches/tdiesler/trunk/server/build.xml 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/build.xml 2007-03-05 23:02:57 UTC (rev 61109)
@@ -78,6 +78,7 @@
<path refid="apache.commons.classpath"/>
<path refid="apache.log4j.classpath"/>
<path refid="apache.xerces.classpath"/>
+ <path refid="dom4j.dom4j.classpath"/>
<path refid="gjt.jpl-util.classpath"/>
<path refid="gnu.getopt.classpath"/>
<path refid="ibm.wsdl4j.classpath"/>
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerChainMetaData.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerChainMetaData.java 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerChainMetaData.java 2007-03-05 23:02:57 UTC (rev 61109)
@@ -27,6 +27,9 @@
import java.util.ArrayList;
import java.util.List;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
/** The unified metdata data for a handler chain element
*
* @author Thomas.Diesler at jboss.org
@@ -72,4 +75,18 @@
{
handlers.add(handler);
}
+
+ Element toXMLFragment()
+ {
+ Element root = DocumentHelper.createElement("handler-chain");
+ if (serviceNamePattern != null)
+ root.addElement("service-name-pattern").addText(serviceNamePattern);
+ if (portNamePattern != null)
+ root.addElement("port-name-pattern").addText(portNamePattern);
+ if (protocolBindings != null)
+ root.addElement("protocol-bindings").addText(protocolBindings);
+ for (HandlerMetaData handler : getHandlers())
+ root.add(handler.toXMLFragment());
+ return root;
+ }
}
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerChainsMetaData.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerChainsMetaData.java 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerChainsMetaData.java 2007-03-05 23:02:57 UTC (rev 61109)
@@ -27,6 +27,11 @@
import java.util.ArrayList;
import java.util.List;
+import javax.xml.namespace.QName;
+
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
/** The unified metdata data for a handler chains element
*
* @author Thomas.Diesler at jboss.org
@@ -44,4 +49,12 @@
{
handlerChains.add(handlerChain);
}
+
+ Element toXMLFragment()
+ {
+ Element root = DocumentHelper.createElement("handler-chains");
+ for (HandlerChainMetaData handlerChain : getHandlerChains())
+ root.add(handlerChain.toXMLFragment());
+ return root;
+ }
}
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerMetaData.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerMetaData.java 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/HandlerMetaData.java 2007-03-05 23:02:57 UTC (rev 61109)
@@ -23,15 +23,15 @@
// $Id$
-import org.jboss.metadata.MetaData;
-import org.jboss.xb.QNameBuilder;
-import org.w3c.dom.Element;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.io.Serializable;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
/** The unified metdata data for a handler element
*
* @author Thomas.Diesler at jboss.org
@@ -39,20 +39,18 @@
*/
public class HandlerMetaData implements Serializable
{
- static final long serialVersionUID = 8749727542255024909L;
-
// The required <handler-name> element
private String handlerName;
// The required <handler-class> element
private String handlerClass;
// The optional <init-param> elements
- private ArrayList initParams = new ArrayList();
+ private List<InitParamMetaData> initParams = new ArrayList<InitParamMetaData>();
// The optional <soap-header> elements
- private ArrayList soapHeaders = new ArrayList();
+ private List<QName> soapHeaders = new ArrayList<QName>();
// The optional <soap-role> elements
- private ArrayList soapRoles = new ArrayList();
+ private List<String> soapRoles = new ArrayList<String>();
// The optional <port-name> elements, these only apply to webserve clients
- private ArrayList portNames = new ArrayList();
+ private List<String> portNames = new ArrayList<String>();
public void setHandlerName(String value)
{
@@ -79,11 +77,9 @@
initParams.add(param);
}
- public InitParamMetaData[] getInitParams()
+ public List<InitParamMetaData> getInitParams()
{
- InitParamMetaData[] array = new InitParamMetaData[initParams.size()];
- initParams.toArray(array);
- return array;
+ return initParams;
}
public void addSoapHeader(QName qName)
@@ -91,11 +87,9 @@
soapHeaders.add(qName);
}
- public QName[] getSoapHeaders()
+ public List<QName> getSoapHeaders()
{
- QName[] array = new QName[soapHeaders.size()];
- soapHeaders.toArray(array);
- return array;
+ return soapHeaders;
}
public void addSoapRole(String value)
@@ -103,18 +97,14 @@
soapRoles.add(value);
}
- public String[] getSoapRoles()
+ public List<String> getSoapRoles()
{
- String[] array = new String[soapRoles.size()];
- soapRoles.toArray(array);
- return array;
+ return soapRoles;
}
- public String[] getPortNames()
+ public List<String> getPortNames()
{
- String[] array = new String[portNames.size()];
- portNames.toArray(array);
- return array;
+ return portNames;
}
public void addPortName(String value)
@@ -122,61 +112,23 @@
portNames.add(value);
}
- public void importStandardXml(Element element)
+ Element toXMLFragment()
{
- handlerName = MetaData.getUniqueChildContent(element, "handler-name");
-
- handlerClass = MetaData.getUniqueChildContent(element, "handler-class");
-
- // Parse the init-param elements
- Iterator iterator = MetaData.getChildrenByTagName(element, "init-param");
- while (iterator.hasNext())
+ Element root = DocumentHelper.createElement("handler");
+ root.addElement("handler-name").addText(handlerName);
+ root.addElement("handler-class").addText(handlerClass);
+ for (InitParamMetaData param : getInitParams())
{
- Element paramElement = (Element)iterator.next();
- InitParamMetaData param = new InitParamMetaData();
- param.setParamName(MetaData.getUniqueChildContent(paramElement, "param-name"));
- param.setParamValue(MetaData.getUniqueChildContent(paramElement, "param-value"));
- initParams.add(param);
+ Element paramEl = root.addElement("init-param");
+ paramEl.addElement("param-name").addText(param.getParamName());
+ paramEl.addElement("param-value").addText(param.getParamValue());
}
-
- // Parse the soap-header elements
- iterator = MetaData.getChildrenByTagName(element, "soap-header");
- while (iterator.hasNext())
- {
- Element headerElement = (Element)iterator.next();
- String content = MetaData.getElementContent(headerElement);
- QName qname = QNameBuilder.buildQName(headerElement, content);
- soapHeaders.add(qname);
- }
-
- // Parse the soap-role elements
- iterator = MetaData.getChildrenByTagName(element, "soap-role");
- while (iterator.hasNext())
- {
- Element roleElement = (Element)iterator.next();
- String content = MetaData.getElementContent(roleElement);
- soapRoles.add(content);
- }
-
- // Parse the port-name elements
- iterator = MetaData.getChildrenByTagName(element, "port-name");
- while (iterator.hasNext())
- {
- Element portElement = (Element)iterator.next();
- String content = MetaData.getElementContent(portElement);
- portNames.add(content);
- }
+ for (QName soapHeader : getSoapHeaders())
+ root.addElement("soap-header").addText(soapHeader.toString());
+ for (String soapRole : getSoapRoles())
+ root.addElement("soap-role").addText(soapRole);
+ for (String portName : getPortNames())
+ root.addElement("port-name").addText(portName);
+ return root;
}
-
- public String toString()
- {
- StringBuffer buffer = new StringBuffer("\nHandlerMetaData:");
- buffer.append("\n name=" + handlerName);
- buffer.append("\n class=" + handlerClass);
- buffer.append("\n params=" + initParams);
- buffer.append("\n headers=" + soapHeaders);
- buffer.append("\n roles=" + soapRoles);
- buffer.append("\n ports=" + portNames);
- return buffer.toString();
- }
}
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/InitParamMetaData.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/InitParamMetaData.java 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/InitParamMetaData.java 2007-03-05 23:02:57 UTC (rev 61109)
@@ -26,19 +26,14 @@
import java.io.Serializable;
/**
- * XML Binding and ws4ee meta-data element for
- * <code>webservices/webservice-description/port-component/handler/init-param</code>
- *
* @author Thomas.Diesler at jboss.org
* @since 06-May-2004
*/
public class InitParamMetaData implements Serializable
{
- static final long serialVersionUID = 849652901282654531L;
-
- // The required <handler-name> element
+ // The required <param-name> element
private String paramName;
- // The required <handler-class> element
+ // The required <param-value> element
private String paramValue;
public String getParamName()
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/PortComponentRefMetaData.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/PortComponentRefMetaData.java 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/PortComponentRefMetaData.java 2007-03-05 23:02:57 UTC (rev 61109)
@@ -24,20 +24,17 @@
// $Id$
import java.io.Serializable;
-import java.util.Iterator;
import java.util.Properties;
-import org.jboss.metadata.MetaData;
-import org.w3c.dom.Element;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
/** The metdata data from service-ref/port-component-ref element in web.xml, ejb-jar.xml, and application-client.xml.
*
* @author Thomas.Diesler at jboss.org
- * @version $Revision$
*/
public class PortComponentRefMetaData implements Serializable
{
- static final long serialVersionUID = 3856598615591044263L;
// The parent service-ref
private ServiceRefMetaData serviceRefMetaData;
@@ -95,7 +92,7 @@
{
return serviceEndpointInterface;
}
-
+
public void setServiceEndpointInterface(String serviceEndpointInterface)
{
this.serviceEndpointInterface = serviceEndpointInterface;
@@ -105,7 +102,7 @@
{
return callProperties;
}
-
+
public void setCallProperties(Properties props)
{
callProperties = props;
@@ -116,23 +113,14 @@
callProperties.setProperty(name, value);
}
- public void importStandardXml(Element element)
+ Element toXMLFragment()
{
- serviceEndpointInterface = MetaData.getUniqueChildContent(element, "service-endpoint-interface");
- portComponentLink = MetaData.getOptionalChildContent(element, "port-component-link");
+ Element root = DocumentHelper.createElement("port-component-ref");
+ root.addElement("service-endpoint-interface").addText(serviceEndpointInterface);
+ if (enableMTOM != null)
+ root.addElement("enable-mtom").addText(enableMTOM.toString());
+ if (portComponentLink != null)
+ root.addElement("port-component-link").addText(portComponentLink);
+ return root;
}
-
- public void importJBossXml(Element element)
- {
- // Look for call-property elements
- Iterator iterator = MetaData.getChildrenByTagName(element, "call-property");
- while (iterator.hasNext())
- {
- Element propElement = (Element)iterator.next();
- String name = MetaData.getUniqueChildContent(propElement, "prop-name");
- String value = MetaData.getUniqueChildContent(propElement, "prop-value");
- callProperties.setProperty(name, value);
- }
-
- }
}
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandler.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandler.java 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandler.java 2007-03-05 23:02:57 UTC (rev 61109)
@@ -23,15 +23,15 @@
// $Id$
-import java.util.Iterator;
+import java.lang.reflect.AnnotatedElement;
import javax.naming.Context;
+import javax.naming.NamingException;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.DeploymentUnit;
+import org.jboss.virtual.VirtualFile;
/**
- * Implemtent to bind JAXRPC ServiceRefs
+ * Implemtent to bind web service ref
*
* @author Thomas.Diesler at jboss.org
* @since 05-May-2004
@@ -39,12 +39,7 @@
public interface ServiceRefHandler
{
/**
- * Binds a JAXRPC Service into the callers ENC for every service-ref element
- *
- * @param envCtx ENC to bind the javax.rpc.xml.Service object to
- * @param serviceRefs An iterator of the service-ref elements in the client deployment descriptor
- * @param unit The client's deployment unit
- * @throws DeploymentException if it goes wrong
+ * Binds a Service into the callers ENC for every service-ref element
*/
- void bindServiceRefs(Context envCtx, Iterator serviceRefs, DeploymentUnit unit);
+ void setupServiceRef(Context encCtx, String encName, AnnotatedElement anElement, VirtualFile vfsRoot, String xmlFragment) throws NamingException;
}
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java 2007-03-05 22:09:31 UTC (rev 61108)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java 2007-03-05 23:02:57 UTC (rev 61109)
@@ -27,7 +27,6 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -35,74 +34,78 @@
import javax.xml.namespace.QName;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
import org.jboss.logging.Logger;
-import org.jboss.metadata.MetaData;
import org.jboss.metadata.Ref;
-import org.jboss.xb.QNameBuilder;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-/** The metdata data from service-ref element in web.xml, ejb-jar.xml, and
+/**
+ * The metdata data from service-ref element in web.xml, ejb-jar.xml, and
* application-client.xml.
- *
+ *
* @author Thomas.Diesler at jboss.org
* @version $Revision$
*/
public class ServiceRefMetaData extends Ref implements Serializable
{
- private static final long serialVersionUID = -3723577995017108437L;
-
// provide logging
private static Logger log = Logger.getLogger(ServiceRefMetaData.class);
// The required <service-ref-name> element
private String serviceRefName;
+
// The required <service-interface> element
private String serviceInterface;
+
// service-res-type
private String serviceRefType;
+
// The optional <wsdl-file> element
private String wsdlFile;
+
// The optional <jaxrpc-mapping-file> element
private String mappingFile;
+
// The optional <service-qname> element
private QName serviceQName;
- // The LinkedHashMap<String, PortComponentRefMetaData> for <port-component-ref> elements
+
+ // The LinkedHashMap<String, PortComponentRefMetaData> for
+ // <port-component-ref> elements
private Map<String, PortComponentRefMetaData> portComponentRefs = new LinkedHashMap<String, PortComponentRefMetaData>();
+
// The optional <handler> elements
private List<HandlerMetaData> handlers = new ArrayList<HandlerMetaData>();
+
// The optional <handler-chains> elements
private HandlerChainsMetaData handlerChains;
// The optional JBossWS config-name
private String configName;
+
// The optional JBossWS config-file
private String configFile;
+
/** The URL of the actual WSDL to use, <wsdl-override> */
private URL wsdlOverride;
+
/** Arbitrary proxy properties given by <call-property> */
private Properties callProperties;
- /** Default constructor, used when unmarshalling on the client side
+ /**
+ * Default constructor, used when unmarshalling on the client side
*/
public ServiceRefMetaData()
{
}
- /** Constructor with a given service ref name
- */
- public ServiceRefMetaData(String serviceRefName)
- {
- this.serviceRefName = serviceRefName;
- }
-
public void merge(ServiceRefMetaData sourceRef)
{
configName = sourceRef.configName;
configFile = sourceRef.configFile;
wsdlOverride = sourceRef.wsdlOverride;
callProperties = sourceRef.getCallProperties();
-
+
for (PortComponentRefMetaData pcSourceRef : sourceRef.getPortComponentRefs())
{
String seiName = pcSourceRef.getServiceEndpointInterface();
@@ -111,7 +114,7 @@
log.warn("Illegal service endpoint interface: " + seiName);
continue;
}
-
+
PortComponentRefMetaData pcTargetRef = portComponentRefs.get(seiName);
if (pcTargetRef == null)
{
@@ -119,11 +122,11 @@
addPortComponentRef(pcSourceRef);
pcTargetRef = pcSourceRef;
}
-
+
pcTargetRef.setCallProperties(pcSourceRef.getCallProperties());
}
}
-
+
public String getMappingFile()
{
return mappingFile;
@@ -140,30 +143,28 @@
portComponentRefs.values().toArray(array);
return array;
}
-
+
public PortComponentRefMetaData getPortComponentRef(String seiName)
{
PortComponentRefMetaData ref = portComponentRefs.get(seiName);
return ref;
}
-
+
public void addPortComponentRef(PortComponentRefMetaData pcRef)
{
portComponentRefs.put(pcRef.getServiceEndpointInterface(), pcRef);
}
- public HandlerMetaData[] getHandlers()
+ public List<HandlerMetaData> getHandlers()
{
- HandlerMetaData[] array = new HandlerMetaData[handlers.size()];
- handlers.toArray(array);
- return array;
+ return handlers;
}
public void addHandler(HandlerMetaData handler)
{
handlers.add(handler);
}
-
+
public String getServiceInterface()
{
return serviceInterface;
@@ -238,7 +239,7 @@
{
return wsdlOverride;
}
-
+
public void setWsdlOverride(String wsdlOverride)
{
try
@@ -266,114 +267,26 @@
this.handlerChains = handlerChains;
}
- public static boolean isValidDoctype(Element element)
+ public String toXMLFragmet()
{
- // Verify J2EE-1.4
- String nsURI = element.getOwnerDocument().getDocumentElement().getNamespaceURI();
- boolean isValid = "http://java.sun.com/xml/ns/j2ee".equals(nsURI);
-
- // Verify JBoss-4.0
- DocumentType doctype = element.getOwnerDocument().getDoctype();
- if (isValid == false && doctype != null)
- {
- String publicId = doctype.getPublicId();
- isValid |= "-//JBoss//DTD JBOSS 4.0//EN".equals(publicId);
- isValid |= "-//JBoss//DTD Web Application 2.4//EN".equals(publicId);
- isValid |= "-//JBoss//DTD Application Client 4.0//EN".equals(publicId);
- }
-
- if (isValid == false)
- {
- String dtstr = (doctype != null ? "[public=" + doctype.getPublicId() + ",system=" + doctype.getSystemId() + "]" : null);
- log.debug("Skip <service-ref> for: nsURI=" + nsURI + ",doctype=" + dtstr);
- }
- return isValid;
+ Document document = DocumentHelper.createDocument();
+ Element root = document.addElement("service-ref");
+ root.addElement("service-ref-name").addText(serviceRefName);
+ root.addElement("service-interface").addText(serviceInterface);
+ if (serviceRefType != null)
+ root.addElement("service-ref-type").addText(serviceRefType);
+ if (wsdlFile != null)
+ root.addElement("wsdl-file").addText(wsdlFile);
+ if (mappingFile != null)
+ root.addElement("jaxrpc-mapping-file").addText(mappingFile);
+ if (serviceQName != null)
+ root.addElement("service-qname").addText(serviceQName.toString());
+ for (PortComponentRefMetaData pcref : getPortComponentRefs())
+ root.add(pcref.toXMLFragment());
+ for (HandlerMetaData handler : getHandlers())
+ root.add(handler.toXMLFragment());
+ if (handlerChains != null)
+ root.add(handlerChains.toXMLFragment());
+ return root.asXML();
}
-
- public void importStandardXml(Element element)
- {
- serviceRefName = MetaData.getUniqueChildContent(element, "service-ref-name");
-
- serviceInterface = MetaData.getUniqueChildContent(element, "service-interface");
-
- wsdlFile = MetaData.getOptionalChildContent(element, "wsdl-file");
-
- mappingFile = MetaData.getOptionalChildContent(element, "jaxrpc-mapping-file");
-
- Element qnameElement = MetaData.getOptionalChild(element, "service-qname");
- if (qnameElement != null)
- serviceQName = QNameBuilder.buildQName(qnameElement, MetaData.getElementContent(qnameElement));
-
- // Parse the port-component-ref elements
- Iterator iterator = MetaData.getChildrenByTagName(element, "port-component-ref");
- while (iterator.hasNext())
- {
- Element pcrefElement = (Element)iterator.next();
- PortComponentRefMetaData pcrefMetaData = new PortComponentRefMetaData(this);
- pcrefMetaData.importStandardXml(pcrefElement);
- portComponentRefs.put(pcrefMetaData.getServiceEndpointInterface(), pcrefMetaData);
- }
-
- // Parse the handler elements
- iterator = MetaData.getChildrenByTagName(element, "handler");
- while (iterator.hasNext())
- {
- Element handlerElement = (Element)iterator.next();
- HandlerMetaData handlerMetaData = new HandlerMetaData();
- handlerMetaData.importStandardXml(handlerElement);
- handlers.add(handlerMetaData);
- }
- }
-
- /** Parse jboss specific service-ref child elements
- */
- public void importJBossXml(Element element)
- {
- configName = MetaData.getOptionalChildContent(element, "config-name");
-
- configFile = MetaData.getOptionalChildContent(element, "config-file");
- String wsdlOverrideOption = MetaData.getOptionalChildContent(element, "wsdl-override");
- try
- {
- if (wsdlOverrideOption != null)
- wsdlOverride = new URL(wsdlOverrideOption);
- }
- catch (MalformedURLException e)
- {
- throw new IllegalStateException("Invalid WSDL override: " + wsdlOverrideOption);
- }
-
- // Parse the port-component-ref elements
- Iterator iterator = MetaData.getChildrenByTagName(element, "port-component-ref");
- while (iterator.hasNext())
- {
- Element pcrefElement = (Element)iterator.next();
- String name = MetaData.getOptionalChildContent(pcrefElement, "service-endpoint-interface");
- if (name != null)
- {
- PortComponentRefMetaData pcrefMetaData = (PortComponentRefMetaData)portComponentRefs.get(name);
- if (pcrefMetaData == null)
- {
- // Its ok to only have the <port-component-ref> in jboss.xml and not in ejb-jar.xml
- pcrefMetaData = new PortComponentRefMetaData(this);
- pcrefMetaData.importStandardXml(pcrefElement);
- portComponentRefs.put(pcrefMetaData.getServiceEndpointInterface(), pcrefMetaData);
- }
-
- pcrefMetaData.importJBossXml(pcrefElement);
- }
- }
-
- // Parse the call-property elements
- iterator = MetaData.getChildrenByTagName(element, "call-property");
- while (iterator.hasNext())
- {
- Element propElement = (Element)iterator.next();
- String name = MetaData.getUniqueChildContent(propElement, "prop-name");
- String value = MetaData.getUniqueChildContent(propElement, "prop-value");
- if (callProperties == null)
- callProperties = new Properties();
- callProperties.setProperty(name, value);
- }
- }
}
More information about the jboss-cvs-commits
mailing list