[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