[jboss-cvs] JBossAS SVN: r59913 - in trunk: server/src/main/org/jboss/metamodel/descriptor and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jan 22 05:24:32 EST 2007
Author: thomas.diesler at jboss.com
Date: 2007-01-22 05:24:32 -0500 (Mon, 22 Jan 2007)
New Revision: 59913
Modified:
trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java
trunk/ejb3/src/main/org/jboss/injection/WebServiceRefInjector.java
trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java
trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java
trunk/server/src/resources/dtd/service-ref_5_0.dtd
Log:
Support service-ref/handler-chain
Modified: trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java 2007-01-22 09:20:53 UTC (rev 59912)
+++ trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java 2007-01-22 10:24:32 UTC (rev 59913)
@@ -83,15 +83,13 @@
{
String name = wsref.name();
if (name.equals(""))
- {
name = InjectionUtil.getEncName(type).substring(4);
- }
if (!container.getEncInjectors().containsKey(name))
{
String encName = "env/" + name;
ServiceRef sref = getServiceRef(name);
- container.getEncInjectors().put(name, new WebServiceRefInjector(encName, null, wsref, sref));
+ container.getEncInjectors().put(name, new WebServiceRefInjector(encName, type, sref));
}
}
@@ -105,17 +103,14 @@
String name = wsref.name();
if (name.equals(""))
- {
name = InjectionUtil.getEncName(method).substring(4);
- }
String encName = "env/" + name;
Context encCtx = container.getEnc();
if (!container.getEncInjectors().containsKey(name))
{
- Class refType = method.getParameterTypes()[0];
ServiceRef sref = getServiceRef(name);
- container.getEncInjectors().put(name, new WebServiceRefInjector(encName, refType, wsref, sref));
+ container.getEncInjectors().put(name, new WebServiceRefInjector(encName, method, sref));
}
injectors.put(method, new JndiMethodInjector(method, encName, encCtx));
@@ -128,17 +123,14 @@
String name = wsref.name();
if (name.equals(""))
- {
name = InjectionUtil.getEncName(field).substring(4);
- }
String encName = "env/" + name;
Context encCtx = container.getEnc();
if (!container.getEncInjectors().containsKey(name))
{
- Class refType = field.getType();
ServiceRef sref = getServiceRef(name);
- container.getEncInjectors().put(name, new WebServiceRefInjector(encName, refType, wsref, sref));
+ container.getEncInjectors().put(name, new WebServiceRefInjector(encName, field, sref));
}
injectors.put(field, new JndiFieldInjector(field, encName, encCtx));
Modified: trunk/ejb3/src/main/org/jboss/injection/WebServiceRefInjector.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/injection/WebServiceRefInjector.java 2007-01-22 09:20:53 UTC (rev 59912)
+++ trunk/ejb3/src/main/org/jboss/injection/WebServiceRefInjector.java 2007-01-22 10:24:32 UTC (rev 59913)
@@ -24,6 +24,7 @@
// $Id$
import java.io.IOException;
+import java.lang.reflect.AnnotatedElement;
import javax.management.MBeanServer;
import javax.management.ObjectName;
@@ -32,7 +33,6 @@
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import javax.xml.ws.WebServiceException;
-import javax.xml.ws.WebServiceRef;
import org.jboss.logging.Logger;
import org.jboss.metamodel.descriptor.ServiceRef;
@@ -54,13 +54,8 @@
private static final Logger log = Logger.getLogger(WebServiceRefInjector.class);
private String name;
+ private AnnotatedElement anElement;
- private Class refType;
-
- private String refTypeName;
-
- private WebServiceRef wsref;
-
private ServiceRef sref;
// The @WebServiceRef handler MBean interface
@@ -68,16 +63,14 @@
public interface WebServiceRefHandlerMBean
{
ObjectName OBJECT_NAME = ObjectNameFactory.create("jboss.ws:service=WebServiceRefHandler");
- void setupWebServiceRef(Context encCtx, String encName, Class refType, WebServiceRef wsref, VirtualFile vfsRoot, Source metadata) throws NamingException;
+ void setupWebServiceRef(Context encCtx, String encName, AnnotatedElement anElement, VirtualFile vfsRoot, Source metadata) throws NamingException;
}
- public WebServiceRefInjector(String name, Class refType, WebServiceRef wsref, ServiceRef sref)
+ public WebServiceRefInjector(String name, AnnotatedElement anElement, ServiceRef sref)
{
this.name = name;
- this.refType = refType;
- this.wsref = wsref;
+ this.anElement = anElement;
this.sref = sref;
- this.refTypeName = (refType != null ? refType.getName() : null);
}
public void inject(InjectionContainer container)
@@ -91,13 +84,13 @@
MBeanServer server = MBeanServerLocator.locateJBoss();
ObjectName oname = WebServiceRefHandlerMBean.OBJECT_NAME;
WebServiceRefHandlerMBean handler = (WebServiceRefHandlerMBean)MBeanProxy.get(WebServiceRefHandlerMBean.class, oname, server);
- handler.setupWebServiceRef(encCtx, name, refType, wsref, vfsRoot, getMetaData());
+ handler.setupWebServiceRef(encCtx, name, anElement, vfsRoot, getMetaData());
- log.debug("@WebServiceRef bound [env=" + name + ",ref=" + refTypeName + "]");
+ log.debug("@WebServiceRef bound [env=" + name + "]");
}
catch (Exception e)
{
- throw new WebServiceException("Unable to bind @WebServiceRef [enc=" + name + ",type=" + refTypeName + "]", e);
+ throw new WebServiceException("Unable to bind @WebServiceRef [enc=" + name + "]", e);
}
}
@@ -110,6 +103,6 @@
public String toString()
{
- return super.toString() + "{enc=" + name + ",type=" + refTypeName + "}";
+ return super.toString() + "{enc=" + name + "}";
}
}
Modified: trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java 2007-01-22 09:20:53 UTC (rev 59912)
+++ trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java 2007-01-22 10:24:32 UTC (rev 59913)
@@ -24,19 +24,17 @@
import javax.persistence.PersistenceContextType;
import javax.xml.namespace.QName;
-import org.jboss.logging.Logger;
import org.jboss.xb.binding.ObjectModelFactory;
import org.jboss.xb.binding.UnmarshallingContext;
import org.xml.sax.Attributes;
/**
* @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
+ * @author Thomas.Diesler at jboss.com
* @version <tt>$Revision$</tt>
*/
public abstract class DDObjectFactory implements ObjectModelFactory
{
- private static final Logger log = Logger.getLogger(DDObjectFactory.class);
-
public Object newChild(PersistenceUnitRef ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
return newRefChild(ref, localName);
@@ -347,6 +345,10 @@
{
ref.setConfigFile(value);
}
+ else if (localName.equals("handler-chain"))
+ {
+ ref.setHandlerChain(value);
+ }
else if (localName.equals("wsdl-override"))
{
ref.setWsdlOverride(value);
Modified: trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java
===================================================================
--- trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java 2007-01-22 09:20:53 UTC (rev 59912)
+++ trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java 2007-01-22 10:24:32 UTC (rev 59913)
@@ -26,8 +26,6 @@
import javax.xml.namespace.QName;
-import org.jboss.xb.QNameBuilder;
-
// $Id$
/**
@@ -44,6 +42,7 @@
private QName serviceQName;
private String configName;
private String configFile;
+ private String handlerChain;
private List<PortInfo> portInfos = new ArrayList<PortInfo>();
private String wsdlOverride;
@@ -77,41 +76,51 @@
this.serviceQName = serviceQName;
}
- public List<PortInfo> getPortInfos()
+ public String getConfigFile()
{
- return portInfos;
+ return configFile;
}
- public String getWsdlOverride()
+ public void setConfigFile(String configFile)
{
- return wsdlOverride;
+ this.configFile = configFile;
}
- public void setWsdlOverride(String wsdlLocation)
+ public String getConfigName()
{
- this.wsdlOverride = wsdlLocation;
+ return configName;
}
- public String getConfigFile()
+ public void setConfigName(String configName)
{
- return configFile;
+ this.configName = configName;
}
- public void setConfigFile(String configFile)
+ public String getHandlerChain()
{
- this.configFile = configFile;
+ return handlerChain;
}
- public String getConfigName()
+ public void setHandlerChain(String handlerChain)
{
- return configName;
+ this.handlerChain = handlerChain;
}
- public void setConfigName(String configName)
+ public List<PortInfo> getPortInfos()
{
- this.configName = configName;
+ return portInfos;
}
+ public String getWsdlOverride()
+ {
+ return wsdlOverride;
+ }
+
+ public void setWsdlOverride(String wsdlLocation)
+ {
+ this.wsdlOverride = wsdlLocation;
+ }
+
public String toXMLFragment()
{
StringBuilder xml = new StringBuilder("<service-ref>");
@@ -129,6 +138,9 @@
if (configFile != null)
xml.append("<config-file>" + configFile + "</config-file>");
+ if (handlerChain != null)
+ xml.append("<handler-chain>" + handlerChain + "</handler-chain>");
+
for (PortInfo portInfo : portInfos)
xml.append(portInfo.toXMLFragment());
Modified: trunk/server/src/resources/dtd/service-ref_5_0.dtd
===================================================================
--- trunk/server/src/resources/dtd/service-ref_5_0.dtd 2007-01-22 09:20:53 UTC (rev 59912)
+++ trunk/server/src/resources/dtd/service-ref_5_0.dtd 2007-01-22 10:24:32 UTC (rev 59913)
@@ -20,35 +20,36 @@
Example:
<service-ref>
- <service-ref-name>OrganizationService</service-ref-name>
- <wsdl-override>file:/wsdlRepository/organization-service.wsdl</wsdl-override>
+ <service-ref-name>OrganizationService</service-ref-name>
+ <wsdl-override>file:/wsdlRepository/organization-service.wsdl</wsdl-override>
</service-ref>
<service-ref>
- <service-ref-name>OrganizationService</service-ref-name>
- <config-name>Secure Client Config</config-name>
- <config-file>META-INF/jbossws-client-config.xml</config-file>
+ <service-ref-name>OrganizationService</service-ref-name>
+ <config-name>Secure Client Config</config-name>
+ <config-file>META-INF/jbossws-client-config.xml</config-file>
+ <handler-chain>META-INF/jbossws-client-handlers.xml</handler-chain>
</service-ref>
<service-ref>
- <service-ref-name>SecureService</service-ref-name>
- <service-class-name>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService</service-class-name>
- <service-qname>{http://org.jboss.ws/wsref}SecureEndpointService</service-qname>
- <port-info>
- <service-endpoint-interface>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpoint</service-endpoint-interface>
- <port-qname>{http://org.jboss.ws/wsref}SecureEndpointPort</port-qname>
- <stub-property>
- <name>javax.xml.ws.security.auth.username</name>
- <value>kermit</value>
- </stub-property>
- <stub-property>
- <name>javax.xml.ws.security.auth.password</name>
- <value>thefrog</value>
- </stub-property>
- </port-info>
+ <service-ref-name>SecureService</service-ref-name>
+ <service-class-name>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService</service-class-name>
+ <service-qname>{http://org.jboss.ws/wsref}SecureEndpointService</service-qname>
+ <port-info>
+ <service-endpoint-interface>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpoint</service-endpoint-interface>
+ <port-qname>{http://org.jboss.ws/wsref}SecureEndpointPort</port-qname>
+ <stub-property>
+ <name>javax.xml.ws.security.auth.username</name>
+ <value>kermit</value>
+ </stub-property>
+ <stub-property>
+ <name>javax.xml.ws.security.auth.password</name>
+ <value>thefrog</value>
+ </stub-property>
+ </port-info>
</service-ref>
-->
-<!ELEMENT service-ref (service-ref-name, service-class-name?, service-qname?, config-name?, config-file?, port-info*, wsdl-override?)>
+<!ELEMENT service-ref (service-ref-name, service-class-name?, service-qname?, config-name?, config-file?, handler-chain?, port-info*, wsdl-override?)>
<!--
The service-ref-name element gives the ENC relative name.
@@ -72,23 +73,12 @@
<!ELEMENT service-qname (#PCDATA)>
<!--
- The optional config-name element gives the client configuration name that must be present in
- the configuration given by element config-file. All newly created ports will be configured with
- this config name.
-
- The default is: Standard Client
+ The optional handler-chain element is a URL or resource name to a handler chain configuration.
+ See: @HandlerChain.file
-->
-<!ELEMENT config-name (#PCDATA)>
+<!ELEMENT handler-chain (#PCDATA)>
<!--
- The optional config-file element gives the to a URL or resource name for the client configuration.
- All newly created ports will be configured with this config file.
-
- The default is: META-INF/standard-jbossws-client-config.xml
--->
-<!ELEMENT config-file (#PCDATA)>
-
-<!--
Information for a port within a service-reference.
Either service-endpoint-interface or wsdl-port or both
@@ -121,6 +111,23 @@
<!ELEMENT port-qname (#PCDATA)>
<!--
+ The optional config-name element gives the client configuration name that must be present in
+ the configuration given by element config-file. Ports that match this port info will be
+ configured with this config name.
+
+ The default is: Standard Client
+-->
+<!ELEMENT config-name (#PCDATA)>
+
+<!--
+ The optional config-file element is a URL or resource name for the client configuration.
+ Ports that match this port info will be configured with this config file.
+
+ The default is: META-INF/standard-jbossws-client-config.xml
+-->
+<!ELEMENT config-file (#PCDATA)>
+
+<!--
Property values that should be set on a stub before it's returned to
to the web service client. The property names can be any properties supported
by the StubExt or Stub implementation.
More information about the jboss-cvs-commits
mailing list