[jboss-svn-commits] JBossWS SVN: r1013 - in trunk/src: main/java/org/jboss/ws/deployment main/java/org/jboss/ws/jaxrpc test/ant test/java/org/jboss/test/ws/jaxws/jsr181/handlerchain test/resources/jaxws/jsr181/handlerchain test/resources/jaxws/jsr181/handlerchain/WEB-INF
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Sep 20 04:02:50 EDT 2006
Author: thomas.diesler at jboss.com
Date: 2006-09-20 04:02:37 -0400 (Wed, 20 Sep 2006)
New Revision: 1013
Added:
trunk/src/test/resources/jaxws/jsr181/handlerchain/jaxws-handlers.xml
Removed:
trunk/src/test/resources/jaxws/jsr181/handlerchain/WEB-INF/jaxws-handlers.xml
Modified:
trunk/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java
trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java
trunk/src/main/java/org/jboss/ws/jaxrpc/CallImpl.java
trunk/src/test/ant/build-jars-jaxws.xml
trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/handlerchain/EndpointImpl.java
Log:
Support handler chain configuration relative to class
Modified: trunk/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java 2006-09-19 15:05:15 UTC (rev 1012)
+++ trunk/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java 2006-09-20 08:02:37 UTC (rev 1013)
@@ -63,7 +63,7 @@
/**
* A server side meta data builder that is based on webservices.xml.
- *
+ *
* @author Thomas.Diesler at jboss.org
* @since 19-May-2005
*/
@@ -72,7 +72,8 @@
// provide logging
final Logger log = Logger.getLogger(JSR109ServerMetaDataBuilder.class);
- /** Build from webservices.xml
+ /**
+ * Build from webservices.xml
*/
public UnifiedMetaData buildMetaData(JSR109Deployment udi)
{
@@ -98,11 +99,9 @@
// Unmarshall the jaxrpc-mapping.xml
serviceMetaData.setJaxrpcMappingFile(wsdMetaData.getJaxrpcMappingFile());
JavaWsdlMapping javaWsdlMapping = serviceMetaData.getJavaWsdlMapping();
+ if (javaWsdlMapping == null)
+ throw new WSException("jaxrpc-mapping-file not configured from webservices.xml");
- // JBWS-1114: Check for missing javaWsdlMapping
- if (javaWsdlMapping==null)
- throw new WSException("jaxrpc-mapping-file not configured from webservices.xml");
-
// Build type mapping meta data
setupTypesMetaData(serviceMetaData);
@@ -116,7 +115,7 @@
{
QName portName = pcMetaData.getWsdlPort();
- // JBWS-722
+ // JBWS-722
// <wsdl-port> in webservices.xml should be qualified
if (portName.getNamespaceURI().length() == 0)
{
@@ -192,7 +191,7 @@
String targetBean = webMetaData.getServletClassMap().get(servletLink);
sepMetaData.setServiceEndpointImplName(targetBean);
-
+
// Copy the wsdl publish location from jboss-web.xml
String wsdName = serviceMetaData.getWebserviceDescriptionName();
String wsdlPublishLocation = webMetaData.getWsdlPublishLocationByName(wsdName);
@@ -213,7 +212,7 @@
// init service endpoint id
ObjectName sepID = getServiceEndpointID(udi, sepMetaData);
sepMetaData.setServiceEndpointID(sepID);
-
+
replaceAddressLocation(sepMetaData);
String seiName = pcMetaData.getServiceEndpointInterface();
@@ -232,7 +231,7 @@
// Add pre handlers
WSEndpointConfigJAXRPC jaxrpcConfig = (WSEndpointConfigJAXRPC)sepMetaData.getEndpointConfig();
sepMetaData.addHandlers(jaxrpcConfig.getHandlers(sepMetaData, HandlerType.PRE));
-
+
// Setup the endpoint handlers
for (UnifiedHandlerMetaData uhmd : pcMetaData.getHandlers())
{
@@ -242,7 +241,7 @@
sepMetaData.addHandler(uhmd.getHandlerMetaDataJAXRPC(sepMetaData, HandlerType.ENDPOINT));
}
}
-
+
// Add post handlers
sepMetaData.addHandlers(jaxrpcConfig.getHandlers(sepMetaData, HandlerType.POST));
}
@@ -334,7 +333,8 @@
epMetaData.setURLPattern(urlPattern);
}
- /** Read the transport guarantee from web.xml
+ /**
+ * Read the transport guarantee from web.xml
*/
protected void initTransportGuaranteeJSE(UnifiedDeploymentInfo udi, EndpointMetaData epMetaData, String servletLink) throws IOException
{
Modified: trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java 2006-09-19 15:05:15 UTC (rev 1012)
+++ trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java 2006-09-20 08:02:37 UTC (rev 1013)
@@ -511,7 +511,17 @@
return variable;
}
- // Process an optional @HandlerChain annotation
+ /**
+ * Process an optional @HandlerChain annotation
+ *
+ * Location of the handler chain file. The location supports 2 formats.
+ *
+ * 1. An absolute java.net.URL in externalForm.
+ * (ex: http://myhandlers.foo.com/handlerfile1.xml)
+ *
+ * 2. A relative path from the source file or class file.
+ * (ex: bar/handlerfile1.xml)
+ */
protected void processHandlerChain(EndpointMetaData epMetaData, Class wsClass)
{
if (wsClass.isAnnotationPresent(SOAPMessageHandlers.class))
@@ -553,9 +563,16 @@
fileURL = epMetaData.getResourceLoader().getResource(filename);
}
+ // Try the filename relative to class
if (fileURL == null)
- throw new WSException("Cannot resolve URL to handler file: " + filename);
+ {
+ String packagePath = wsClass.getPackage().getName().replace('.', '/');
+ fileURL = epMetaData.getClassLoader().getResource(packagePath + "/" + filename);
+ }
+ if (fileURL == null)
+ throw new WSException("Cannot resolve handler file '" + filename + "' on " + wsClass.getName());
+
try
{
HandlerChainsMetaData handlerChainsMetaData = null;
Modified: trunk/src/main/java/org/jboss/ws/jaxrpc/CallImpl.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/jaxrpc/CallImpl.java 2006-09-19 15:05:15 UTC (rev 1012)
+++ trunk/src/main/java/org/jboss/ws/jaxrpc/CallImpl.java 2006-09-20 08:02:37 UTC (rev 1013)
@@ -46,7 +46,6 @@
import org.jboss.logging.Logger;
import org.jboss.ws.Constants;
import org.jboss.ws.binding.UnboundHeader;
-import org.jboss.ws.common.CommonBindingProvider;
import org.jboss.ws.common.CommonClient;
import org.jboss.ws.jaxrpc.handler.HandlerChainBaseImpl;
import org.jboss.ws.jaxrpc.handler.SOAPMessageContextJAXRPC;
Modified: trunk/src/test/ant/build-jars-jaxws.xml
===================================================================
--- trunk/src/test/ant/build-jars-jaxws.xml 2006-09-19 15:05:15 UTC (rev 1012)
+++ trunk/src/test/ant/build-jars-jaxws.xml 2006-09-20 08:02:37 UTC (rev 1013)
@@ -131,15 +131,14 @@
</war>
<!-- jaxws-jsr181-handlerchain -->
+ <copy todir="${build.test.dir}/classes/org/jboss/test/ws/jaxws/jsr181/handlerchain" file="${build.test.dir}/resources/jaxws/jsr181/handlerchain/jaxws-handlers.xml"/>
<war warfile="${build.test.dir}/libs/jaxws-jsr181-handlerchain.war" webxml="${build.test.dir}/resources/jaxws/jsr181/handlerchain/WEB-INF/web.xml">
<classes dir="${build.test.dir}/classes">
<include name="org/jboss/test/ws/jaxws/jsr181/handlerchain/EndpointImpl.class"/>
<include name="org/jboss/test/ws/jaxws/jsr181/handlerchain/Endpoint.class"/>
<include name="org/jboss/test/ws/jaxws/jsr181/handlerchain/*Handler.class"/>
+ <include name="org/jboss/test/ws/jaxws/jsr181/handlerchain/jaxws-handlers.xml"/>
</classes>
- <webinf dir="${build.test.dir}/resources/jaxws/jsr181/handlerchain/WEB-INF">
- <include name="jaxws-handlers.xml"/>
- </webinf>
</war>
<!-- jaxws-jsr181-oneway -->
Modified: trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/handlerchain/EndpointImpl.java
===================================================================
--- trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/handlerchain/EndpointImpl.java 2006-09-19 15:05:15 UTC (rev 1012)
+++ trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/handlerchain/EndpointImpl.java 2006-09-20 08:02:37 UTC (rev 1013)
@@ -36,7 +36,7 @@
*/
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
- at HandlerChain(file = "WEB-INF/jaxws-handlers.xml")
+ at HandlerChain(file = "jaxws-handlers.xml") // relative path from the class file
public class EndpointImpl implements Endpoint
{
// Provide logging
Deleted: trunk/src/test/resources/jaxws/jsr181/handlerchain/WEB-INF/jaxws-handlers.xml
===================================================================
--- trunk/src/test/resources/jaxws/jsr181/handlerchain/WEB-INF/jaxws-handlers.xml 2006-09-19 15:05:15 UTC (rev 1012)
+++ trunk/src/test/resources/jaxws/jsr181/handlerchain/WEB-INF/jaxws-handlers.xml 2006-09-20 08:02:37 UTC (rev 1013)
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<handler-chains xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee handler-chain.xsd">
-
- <handler-chain>
- <protocol-bindings>##SOAP11_HTTP</protocol-bindings>
- <handler>
- <handler-name> LogHandler </handler-name>
- <handler-class> org.jboss.test.ws.jaxws.jsr181.handlerchain.LogHandler </handler-class>
- <init-param>
- <param-name>logCategory</param-name>
- <param-value>MyService</param-value>
- </init-param>
- </handler>
- <handler>
- <handler-name> AuthorizationHandler </handler-name>
- <handler-class> org.jboss.test.ws.jaxws.jsr181.handlerchain.AuthorizationHandler </handler-class>
- <soap-role>SecurityProvider</soap-role>
- </handler>
- <handler>
- <handler-name> RoutingHandler </handler-name>
- <handler-class> org.jboss.test.ws.jaxws.jsr181.handlerchain.RoutingHandler </handler-class>
- </handler>
- </handler-chain>
-</handler-chains>
\ No newline at end of file
Added: trunk/src/test/resources/jaxws/jsr181/handlerchain/jaxws-handlers.xml
===================================================================
--- trunk/src/test/resources/jaxws/jsr181/handlerchain/jaxws-handlers.xml 2006-09-19 15:05:15 UTC (rev 1012)
+++ trunk/src/test/resources/jaxws/jsr181/handlerchain/jaxws-handlers.xml 2006-09-20 08:02:37 UTC (rev 1013)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<handler-chains xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee handler-chain.xsd">
+
+ <handler-chain>
+ <protocol-bindings>##SOAP11_HTTP</protocol-bindings>
+ <handler>
+ <handler-name> LogHandler </handler-name>
+ <handler-class> org.jboss.test.ws.jaxws.jsr181.handlerchain.LogHandler </handler-class>
+ <init-param>
+ <param-name>logCategory</param-name>
+ <param-value>MyService</param-value>
+ </init-param>
+ </handler>
+ <handler>
+ <handler-name> AuthorizationHandler </handler-name>
+ <handler-class> org.jboss.test.ws.jaxws.jsr181.handlerchain.AuthorizationHandler </handler-class>
+ <soap-role>SecurityProvider</soap-role>
+ </handler>
+ <handler>
+ <handler-name> RoutingHandler </handler-name>
+ <handler-class> org.jboss.test.ws.jaxws.jsr181.handlerchain.RoutingHandler </handler-class>
+ </handler>
+ </handler-chain>
+</handler-chains>
\ No newline at end of file
Property changes on: trunk/src/test/resources/jaxws/jsr181/handlerchain/jaxws-handlers.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
More information about the jboss-svn-commits
mailing list