Author: jliu
Date: Thu Jun 14 04:19:22 2007
New Revision: 547220

URL: http://svn.apache.org/viewvc?view=rev&rev=547220
Log:
CXF-722: Using absolute java.net.URL in externalForm for handler chain config 
file is not supported

Modified:
    
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
    
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
    
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/Messages.properties

Modified: 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java?view=diff&rev=547220&r1=547219&r2=547220
==============================================================================
--- 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
 (original)
+++ 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
 Thu Jun 14 04:19:22 2007
@@ -36,6 +36,7 @@
 import javax.xml.ws.handler.Handler;
 
 import org.apache.cxf.Bus;
+import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.jaxws.javaee.HandlerChainType;
@@ -74,6 +75,12 @@
                         
.newInstance(org.apache.cxf.jaxws.javaee.ObjectFactory.class);
                 Unmarshaller u = jc.createUnmarshaller();                
                 URL handlerFileURL  = resolveHandlerChainFile(clz, 
hcAnn.getFileName()); 
+                
+                if (handlerFileURL == null) {
+                    throw new WebServiceException(new 
Message("HANDLER_CFG_FILE_NOT_FOUND_EXC", BUNDLE, hcAnn
+                        .getFileName()).toString());
+                }
+                
                 JAXBElement<?> o = (JAXBElement<?>)u.unmarshal(handlerFileURL);
 
                 HandlerChainsType handlerChainsType = (HandlerChainsType) 
o.getValue();

Modified: 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java?view=diff&rev=547220&r1=547219&r2=547220
==============================================================================
--- 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
 (original)
+++ 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
 Thu Jun 14 04:19:22 2007
@@ -134,7 +134,18 @@
      * @return A URL object or null if no resource with this name is found
      */    
     protected URL resolveHandlerChainFile(Class clz, String filename) {
-        return clz.getResource(filename);
+        URL handlerFile = clz.getResource(filename);
+        if (handlerFile == null) {
+            //the file location might be an absolute java.net.URL in 
externalForm.
+            try {
+                handlerFile = new URL(filename);
+                //test if the URL can be opened
+                handlerFile.openStream();
+            } catch (Exception e) {
+                //do nothing
+            } 
+        }
+        return handlerFile;
     } 
     
     private void configureHandler(Handler handler, PortComponentHandlerType h) 
{

Modified: 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/Messages.properties
URL: 
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/Messages.properties?view=diff&rev=547220&r1=547219&r2=547220
==============================================================================
--- 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/Messages.properties
 (original)
+++ 
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/Messages.properties
 Thu Jun 14 04:19:22 2007
@@ -21,7 +21,7 @@
 NO_INPUT_STREAM_EXC = No input stream available.
 NO_OUTPUT_STREAM_EXC = No output stream available.
 ANNOTATION_WITHOUT_URL_EXC = @HandlerChain annotation does not contain a file 
name or url.
-HANDLER_CFG_FILE_NOT_FOUND_EXC = Unable to load handler configuration {0} 
specified by annotation, file not found."
+HANDLER_CFG_FILE_NOT_FOUND_EXC = Unable to load handler configuration file 
specified by annotation: {0} "
 HANDLER_INSTANTIATION_EXC = Failed to instantiate handler
 CHAIN_NOT_SPECIFIED_EXC = Chain not specified
 SEI_LOAD_FAILURE_EXC = Failed to load service endpoint interface.


Reply via email to