cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrea Smyth <andrea.sm...@iona.com>
Subject Re: svn commit: r450934 - in /incubator/cxf/trunk: rt/frontend/jaxws/ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/ rt/frontend/jaxws/src/main/resources/META-INF/cxf/ rt/frontend/jaxws/
Date Fri, 29 Sep 2006 16:22:51 GMT
Andrea Smyth wrote:

>I had seen it in Appendix B of the Proposed Final Draft (Version 0.9.2
>from Dec 8, 2004) - but I just checked it's also in the final release
>(Version 1.0 from June 1, 2005).
>  
>
I am referring to versions of the JSR-181 spec.

>Liu, Jervis wrote:
>
>  
>
>>Hi Andrea, what spec says the schema for @HandlerChain annotations should comply with name space http://www.bea.com/xml/ns/jws? I do not find this info either in jax-ws spec or in JSR 181. 
>>
>>Thanks,
>>Jervis
>>
>>
>>-----Original Message-----
>>From:	Smyth, Andrea
>>Sent:	9/29/2006 (星期五) 10:57 下午
>>To:	cxf-dev@incubator.apache.org
>>Cc:	
>>Subject:	Re: svn commit: r450934 - in /incubator/cxf/trunk: rt/frontend/jaxws/ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/ rt/frontend/jaxws/src/main/resources/META-INF/cxf/ rt/frontend/jaxws/
>>
>>Liu, Jervis wrote:
>>
>> 
>>
>>    
>>
>>>Hi Andrea, thanks for pointing this out. I am actually working on this to replace @HandlerChain file schema with the handler schema specified in JSR181, the code I checked in using spring bean just a temporary short cut to make whole things working first.
>>>
>>>However one thing I am not sure is where you got this javaee_web_services_1_2.xsd. It is very similiar to handler schema in JSR181, but with some minor differences, for example, there is no <xsd:element name="handler-chains"> defined in javaee_web_services_1_2.xsd. Are we supposed to use javaee_web_services_1_2.xsd as the handler schema or we should create a handler.xsd by ourself using content copied from jsr181 spec?
>>>
>>>
>>>   
>>>
>>>      
>>>
>>Hi Jervis,
>>
>>I downloaded all javaee*.xsd from http://java.sun.com/xml/ns/javaee/
>>The schema that should be used to support @HandlerChain annotations  is 
>>the one with namespace http://www.bea.com/xml/ns/jws. Unfortunately I 
>>could not find it online (but I did not look too hard) - c&p it from the 
>>JSR 181 spec would be the next best option (Appendix B).  The root 
>>element of a handler chain config file should be of type 
>>jms:handler-configType xmlns:jws=http://www.bea.com/xml/ns/jws.
>>
>>Andrea.
>>
>> 
>>
>>    
>>
>>>Thanks,
>>>Jervis
>>>
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>-----Original Message-----
>>>>From: Smyth, Andrea 
>>>>Sent: Friday, September 29, 2006 9:55 PM
>>>>To: cxf-dev@incubator.apache.org
>>>>Subject: Re: svn commit: r450934 - in /incubator/cxf/trunk:
>>>>rt/frontend/jaxws/ 
>>>>rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/
>>>>rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/
>>>>rt/frontend/jaxws/src/main/resources/META-INF/cxf/ rt/frontend/jaxws/
>>>>
>>>>
>>>>Some comments on this commit:
>>>>
>>>>The files referenced by the @HandlerChain annotation cannot be Spring 
>>>>bean config files - according to JSR 181 they should comply 
>>>>with schema 
>>>>http://www.bea.com/xml/ns.jws. That does not mean that the 
>>>>types defined 
>>>>there and in the javaee* schemas can't be used for bean 
>>>>properties but 
>>>>that's another issue (i.e. a question of whether the 
>>>>JaxwsEndpointImpl 
>>>>class should have a configurable property of this type, that would be 
>>>>used if no @HandlerChain annotation is present or else would 
>>>>supersede 
>>>>such an annotation annotation).
>>>>
>>>>Introducing direct Spring  dependencies in the jaxws  
>>>>implementation is 
>>>>not a good idea IMO. So far, the use of Spring is entirely 
>>>>encapsulated 
>>>>in the implementations of the bus and/or the Configurer 
>>>>interfaces, and 
>>>>I think it should stay that way.
>>>>
>>>>Also, I think it is good practice to leave third party schemas 
>>>>(javaee_web_services_1_2.xsd)  unchanged. Using external 
>>>>binding files 
>>>>and/or importing them in other schemas should normally be sufficient.
>>>>
>>>>Andrea.
>>>>
>>>>
>>>>jliu@apache.org wrote:
>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>Author: jliu
>>>>>Date: Thu Sep 28 10:33:57 2006
>>>>>New Revision: 450934
>>>>>
>>>>>URL: http://svn.apache.org/viewvc?view=rev&rev=450934
>>>>>Log:
>>>>>[CXF-105] The HandlerChain annotation processing in the 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>JAX-WS frontend. 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>Added:
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java   (with props)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilder.java   (with props)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/META-
>>>>INF/cxf/cxf-property-editors.xml   (with props)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java   
>>>>(with props)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilderTest.java   (with props)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> incubator/cxf/trunk/rt/frontend/jaxws/src/test/resources/
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/resources/handl
>>>>ers.xml   (with props)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>Modified:
>>>>> incubator/cxf/trunk/rt/frontend/jaxws/pom.xml
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/EndpointImpl.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/Messages.properties
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/schem
>>>>as/configuration/javaee_web_services_1_2.xsd
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst
>>>>est/handlers/HandlerTestImpl.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst
>>>>est/handlers/handlers.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>Modified: incubator/cxf/trunk/rt/frontend/jaxws/pom.xml
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j
>>>>axws/pom.xml?view=diff&rev=450934&r1=450933&r2=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- incubator/cxf/trunk/rt/frontend/jaxws/pom.xml (original)
>>>>>+++ incubator/cxf/trunk/rt/frontend/jaxws/pom.xml Thu Sep 28 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -117,6 +117,10 @@
>>>>>				<xsdOption>
>>>>>				    
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><xsd>${basedir}/src/main/resources/schemas/configuration/javae
>>>>e_web_services_1_2.xsd</xsd>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>				    
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><bindingFile>${basedir}/src/main/resources/schemas/configurati
>>>>on/javaee_5.xjb</bindingFile>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                                    <extension>true</extension>
>>>>>+                                    <extensionArgs>
>>>>>+                                        
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><extensionArg>-Xcfg</extensionArg>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                                    </extensionArgs>
>>>>>				</xsdOption>
>>>>>			    </xsdOptions>
>>>>>			</configuration>
>>>>>@@ -125,6 +129,23 @@
>>>>>			</goals>
>>>>>		    </execution>
>>>>>		</executions>
>>>>>+                <dependencies>
>>>>>+                    <dependency>
>>>>>+                        <groupId>org.apache.cxf</groupId>
>>>>>+                        <artifactId>cxf-tools-xjc-cfg</artifactId>
>>>>>+                        <version>${project.version}</version>
>>>>>+                    </dependency>
>>>>>+                    <dependency>
>>>>>+                        <groupId>org.apache.cxf</groupId>
>>>>>+                        <artifactId>cxf-tools-xjc-dv</artifactId>
>>>>>+                        <version>${project.version}</version>
>>>>>+                    </dependency>
>>>>>+                    <dependency>
>>>>>+                        <groupId>org.apache.cxf</groupId>
>>>>>+                        
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><artifactId>cxf-common-utilities</artifactId>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                        <version>${project.version}</version>
>>>>>+                    </dependency>
>>>>>+                </dependencies>
>>>>>	    </plugin>
>>>>>	</plugins>
>>>>>  </build>
>>>>>
>>>>>Modified: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/EndpointImpl.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j
>>>>axws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java?view
>>>>=diff&rev=450934&r1=450933&r2=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/EndpointImpl.java (original)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/EndpointImpl.java Thu Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -32,6 +32,7 @@
>>>>>import javax.xml.ws.Binding;
>>>>>import javax.xml.ws.Provider;
>>>>>import javax.xml.ws.WebServiceException;
>>>>>+import javax.xml.ws.handler.Handler;
>>>>>
>>>>>import org.apache.cxf.Bus;
>>>>>import org.apache.cxf.BusException;
>>>>>@@ -43,6 +44,8 @@
>>>>>import org.apache.cxf.jaxb.JAXBDataReaderFactory;
>>>>>import org.apache.cxf.jaxb.JAXBDataWriterFactory;
>>>>>import org.apache.cxf.jaxws.context.WebContextResourceResolver;
>>>>>+import org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilder;
>>>>>+//import org.apache.cxf.jaxws.javaee.HandlerChainType;
>>>>>import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
>>>>>import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
>>>>>import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>>>>>@@ -56,7 +59,7 @@
>>>>>import org.apache.cxf.wsdl.EndpointReferenceUtils;
>>>>>
>>>>>public class EndpointImpl extends javax.xml.ws.Endpoint {
>>>>>- 
>>>>>+
>>>>>  private static final Logger LOG = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>LogUtils.getL7dLogger(JaxWsServiceFactoryBean.class);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>  private static final ResourceBundle BUNDLE = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>LOG.getResourceBundle();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -69,7 +72,7 @@
>>>>>  private Service service;
>>>>>  private JaxWsEndpointImpl endpoint;
>>>>>  private JaxWsImplementorInfo implInfo;
>>>>>-    
>>>>>+
>>>>>  @SuppressWarnings("unchecked")
>>>>>  public EndpointImpl(Bus b, Object i, String uri) {
>>>>>      bus = b;
>>>>>@@ -77,7 +80,7 @@
>>>>>      // bindingURI = uri;
>>>>>      // build up the Service model
>>>>>      implInfo = new JaxWsImplementorInfo(implementor.getClass());
>>>>>-        
>>>>>+
>>>>>      AbstractServiceFactoryBean serviceFactory;
>>>>>      if (implInfo.isWebServiceProvider()) {
>>>>>          serviceFactory = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>ProviderServiceFactoryBean(implInfo);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -94,26 +97,26 @@
>>>>>      if (ei == null) {
>>>>>          throw new NullPointerException("Could not find 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>endpoint " + endpointName + " in Service.");
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>      }
>>>>>- 
>>>>>+
>>>>>      // revisit: should get enableSchemaValidation from 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>configuration
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>      if (false) {
>>>>>          addSchemaValidation();
>>>>>      }
>>>>>-        
>>>>>+
>>>>>      if (implInfo.isWebServiceProvider()) {
>>>>>          service.setInvoker(new ProviderInvoker((Provider<?>)i));
>>>>>      } else {
>>>>>          service.setInvoker(new JAXWSMethodInvoker(i));
>>>>>      }
>>>>>-        
>>>>>+
>>>>>      //      TODO: use bindigURI     
>>>>>      try {
>>>>>-            endpoint = new JaxWsEndpointImpl(bus, service, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>ei);            
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+            endpoint = new JaxWsEndpointImpl(bus, service, ei);
>>>>>      } catch (EndpointException e) {
>>>>>          throw new WebServiceException(e);
>>>>>      }
>>>>>      configureObject(endpoint);
>>>>>-        
>>>>>+
>>>>>      doInit = true;
>>>>>  }
>>>>>
>>>>>@@ -183,7 +186,6 @@
>>>>>  public ServerImpl getServer() {
>>>>>      return server;
>>>>>  }
>>>>>-    
>>>>>
>>>>>  /**
>>>>>   * inject resources into servant.  The resources are injected
>>>>>@@ -204,11 +206,11 @@
>>>>>
>>>>>  protected void doPublish(String address) {
>>>>>      init();
>>>>>-        
>>>>>+
>>>>>      if (null != address) {
>>>>>          endpoint.getEndpointInfo().setAddress(address);
>>>>>      }
>>>>>-        
>>>>>+
>>>>>      try {
>>>>>          MessageObserver observer;
>>>>>          if (implInfo.isWebServiceProvider()) {
>>>>>@@ -216,7 +218,7 @@
>>>>>          } else {
>>>>>              observer = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>ChainInitiationObserver(endpoint, bus);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>          }
>>>>>-     
>>>>>+
>>>>>          server = new ServerImpl(bus, endpoint, observer);
>>>>>          server.start();
>>>>>      } catch (BusException ex) {
>>>>>@@ -225,25 +227,25 @@
>>>>>          throw new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>WebServiceException(BUNDLE.getString("FAILED_TO_PUBLISH_ENDPOI
>>>>NT_EXC"), ex);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>      }
>>>>>  }
>>>>>-    
>>>>>+
>>>>>  org.apache.cxf.endpoint.Endpoint getEndpoint() {
>>>>>      return endpoint;
>>>>>  }
>>>>>-    
>>>>>+
>>>>>  private void configureObject(Object instance) {
>>>>>      Configurer configurer = bus.getExtension(Configurer.class);
>>>>>      if (null != configurer) {
>>>>>          configurer.configureBean(instance);
>>>>>      }
>>>>>  }
>>>>>-    
>>>>>+
>>>>>  private void addSchemaValidation() {
>>>>>      Schema schema = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>EndpointReferenceUtils.getSchema(service.getServiceInfo());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-        
>>>>>+
>>>>>      if (service.getDataBinding().getDataReaderFactory() 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>instanceof JAXBDataReaderFactory) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>          
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>((JAXBDataReaderFactory)service.getDataBinding().getDataReader
>>>>Factory()).setSchema(schema);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>      }
>>>>>-        
>>>>>+
>>>>>      if (service.getDataBinding().getDataWriterFactory() 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>instanceof JAXBDataWriterFactory) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>          
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>((JAXBDataWriterFactory)service.getDataBinding().getDataWriter
>>>>Factory()).setSchema(schema);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>      }
>>>>>@@ -253,15 +255,36 @@
>>>>>      if (doInit) {
>>>>>          try {
>>>>>              injectResources(implementor);
>>>>>-    
>>>>>+                configureHandlers();
>>>>>+
>>>>>          } catch (Exception ex) {
>>>>>              ex.printStackTrace();
>>>>>-                if (ex instanceof WebServiceException) { 
>>>>>-                    throw (WebServiceException)ex; 
>>>>>+                if (ex instanceof WebServiceException) {
>>>>>+                    throw (WebServiceException)ex;
>>>>>              }
>>>>>              throw new WebServiceException("Creation of 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>Endpoint failed", ex);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>          }
>>>>>      }
>>>>>      doInit = false;
>>>>>+    }
>>>>>+
>>>>>+    /**
>>>>>+     * Obtain handler chain from configuration first. If 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>none is specified,
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+     * default to the chain configured in the code, i.e. in 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>annotations.
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+     *
>>>>>+     */
>>>>>+    private void configureHandlers() {
>>>>>+        LOG.fine("loading handler chain for endpoint");
>>>>>+        AnnotationHandlerChainBuilder builder = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>AnnotationHandlerChainBuilder();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+        //TBD: get configuratoin from config file
>>>>>+        //List<Handler> chain = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>builder.buildHandlerChainFromConfiguration(hc);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>//builder.setHandlerInitEnabled(configuration.getBoolean(ENABL
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>E_HANDLER_INIT));
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>>+        List<Handler> chain = null;
>>>>>+
>>>>>+        if (null == chain || chain.size() == 0) {
>>>>>+            chain = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>builder.buildHandlerChainFromClass(implementor.getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        }
>>>>>+        getBinding().setHandlerChain(chain);
>>>>>  }
>>>>>}
>>>>>
>>>>>Added: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>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/j
>>>>axws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHand
>>>>lerChainBuilder.java?view=auto&rev=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java (added)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java Thu Sep 
>>>>28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -0,0 +1,156 @@
>>>>>+/**
>>>>>+ * Licensed to the Apache Software Foundation (ASF) under one
>>>>>+ * or more contributor license agreements. See the NOTICE file
>>>>>+ * distributed with this work for additional information
>>>>>+ * regarding copyright ownership. The ASF licenses this file
>>>>>+ * to you under the Apache License, Version 2.0 (the
>>>>>+ * "License"); you may not use this file except in compliance
>>>>>+ * with the License. You may obtain a copy of the License at
>>>>>+ *
>>>>>+ * http://www.apache.org/licenses/LICENSE-2.0
>>>>>+ *
>>>>>+ * Unless required by applicable law or agreed to in writing,
>>>>>+ * software distributed under the License is distributed on an
>>>>>+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>>>>+ * KIND, either express or implied. See the License for the
>>>>>+ * specific language governing permissions and limitations
>>>>>+ * under the License.
>>>>>+ */
>>>>>+
>>>>>+package org.apache.cxf.jaxws.handler;
>>>>>+
>>>>>+import java.util.ArrayList;
>>>>>+import java.util.List;
>>>>>+import java.util.ResourceBundle;
>>>>>+import java.util.logging.Level;
>>>>>+import java.util.logging.Logger;
>>>>>+
>>>>>+import javax.jws.HandlerChain;
>>>>>+import javax.xml.ws.WebServiceException;
>>>>>+import javax.xml.ws.handler.Handler;
>>>>>+
>>>>>+import org.apache.cxf.Bus;
>>>>>+import org.apache.cxf.common.logging.LogUtils;
>>>>>+import org.apache.cxf.configuration.Configurer;
>>>>>+import org.apache.cxf.configuration.spring.ConfigurerImpl;
>>>>>+import 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>org.apache.cxf.configuration.spring.JaxbClassPathXmlApplicatio
>>>>nContext;
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+import org.apache.cxf.jaxws.javaee.HandlerChainType;
>>>>>+import org.apache.cxf.jaxws.javaee.HandlerConfigBean;
>>>>>+import org.springframework.context.ApplicationContext;
>>>>>+
>>>>>+public class AnnotationHandlerChainBuilder extends 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>HandlerChainBuilder {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+    private static final Logger LOG = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>LogUtils.getL7dLogger(AnnotationHandlerChainBuilder.class);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+    private static final ResourceBundle BUNDLE = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>LOG.getResourceBundle();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+    public AnnotationHandlerChainBuilder() {
>>>>>+    }
>>>>>+
>>>>>+    public AnnotationHandlerChainBuilder(Bus bus) {
>>>>>+        super(bus);
>>>>>+    }
>>>>>+
>>>>>+    /**
>>>>>+     * @param clz
>>>>>+     * @param existingHandlers
>>>>>+     * @return
>>>>>+     */
>>>>>+    public List<Handler> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>buildHandlerChainFromClass(Class<?> clz, List<Handler> 
>>>>existingHandlers) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+        LOG.fine("building handler chain");
>>>>>+        HandlerChainAnnotation hcAnn = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>findHandlerChainAnnotation(clz);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        List<Handler> chain = null;
>>>>>+        if (hcAnn == null) {
>>>>>+            LOG.fine("no HandlerChain annotation on " + clz);
>>>>>+            chain = new ArrayList<Handler>();
>>>>>+        } else {
>>>>>+            hcAnn.validate();
>>>>>+            String handlerFile = hcAnn.getFileName();
>>>>>+
>>>>>+            // This Configurer needs to be different from 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>system configurer as
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+            // it is only aware of handler configure file.
>>>>>+            ApplicationContext ac = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>JaxbClassPathXmlApplicationContext(new String[] {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                handlerFile,
>>>>>+                "META-INF/cxf/cxf-property-editors.xml"});
>>>>>+            Configurer configurer = new ConfigurerImpl(ac);
>>>>>+
>>>>>+            HandlerConfigBean hcb = new HandlerConfigBean();
>>>>>+            configurer.configureBean(hcb);
>>>>>+            HandlerChainType hc = hcb.getJaxwshandler();
>>>>>+
>>>>>+            if (null == hc) {
>>>>>+                throw new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>WebServiceException(BUNDLE.getString("CHAIN_NOT_SPECIFIED_EXC"));
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+            }
>>>>>+
>>>>>+            chain = buildHandlerChain(hc, clz.getClassLoader());
>>>>>+        }
>>>>>+        assert chain != null;
>>>>>+        if (existingHandlers != null) {
>>>>>+            chain.addAll(existingHandlers);
>>>>>+        }
>>>>>+        return sortHandlers(chain);
>>>>>+    }
>>>>>+
>>>>>+    public List<Handler> buildHandlerChainFromClass(Class<?> clz) {
>>>>>+        return buildHandlerChainFromClass(clz, null);
>>>>>+    }
>>>>>+
>>>>>+    private HandlerChainAnnotation 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>findHandlerChainAnnotation(Class<?> clz) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+        HandlerChain ann = clz.getAnnotation(HandlerChain.class);
>>>>>+        Class<?> declaringClass = clz;
>>>>>+
>>>>>+        if (ann == null) {
>>>>>+            for (Class<?> iface : clz.getInterfaces()) {
>>>>>+                if (LOG.isLoggable(Level.FINE)) {
>>>>>+                    LOG.fine("checking for HandlerChain 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>annotation on " + iface.getName());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                }
>>>>>+                ann = iface.getAnnotation(HandlerChain.class);
>>>>>+                if (ann != null) {
>>>>>+                    declaringClass = iface;
>>>>>+                    break;
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+        if (ann != null) {
>>>>>+            return new HandlerChainAnnotation(ann, declaringClass);
>>>>>+        } else {
>>>>>+            return null;
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    private static class HandlerChainAnnotation {
>>>>>+        private final Class<?> declaringClass;
>>>>>+        private final HandlerChain ann;
>>>>>+
>>>>>+        HandlerChainAnnotation(HandlerChain hc, Class<?> clz) {
>>>>>+            ann = hc;
>>>>>+            declaringClass = clz;
>>>>>+        }
>>>>>+
>>>>>+        public Class<?> getDeclaringClass() {
>>>>>+            return declaringClass;
>>>>>+        }
>>>>>+
>>>>>+        public String getFileName() {
>>>>>+            return ann.file();
>>>>>+        }
>>>>>+
>>>>>+        public String getChainName() {
>>>>>+            return ann.name();
>>>>>+        }
>>>>>+
>>>>>+        public void validate() {
>>>>>+            if (null == ann.file() || "".equals(ann.file())) {
>>>>>+                throw new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>WebServiceException(BUNDLE.getString("ANNOTATION_WITHOUT_URL_EXC"));
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+            }
>>>>>+            if (null == ann.name() || "".equals(ann.name())) {
>>>>>+                LOG.fine("no handler name specified, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>defaulting to first declared");
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+            }
>>>>>+        }
>>>>>+
>>>>>+        public String toString() {
>>>>>+            return "[" + declaringClass + "," + ann + "]";
>>>>>+        }
>>>>>+    }
>>>>>+}
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:eol-style = native
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:keywords = Rev Date
>>>>>
>>>>>Added: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>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/j
>>>>axws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBu
>>>>ilder.java?view=auto&rev=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilder.java (added)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilder.java Thu Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -0,0 +1,184 @@
>>>>>+/**
>>>>>+ * Licensed to the Apache Software Foundation (ASF) under one
>>>>>+ * or more contributor license agreements. See the NOTICE file
>>>>>+ * distributed with this work for additional information
>>>>>+ * regarding copyright ownership. The ASF licenses this file
>>>>>+ * to you under the Apache License, Version 2.0 (the
>>>>>+ * "License"); you may not use this file except in compliance
>>>>>+ * with the License. You may obtain a copy of the License at
>>>>>+ *
>>>>>+ * http://www.apache.org/licenses/LICENSE-2.0
>>>>>+ *
>>>>>+ * Unless required by applicable law or agreed to in writing,
>>>>>+ * software distributed under the License is distributed on an
>>>>>+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>>>>+ * KIND, either express or implied. See the License for the
>>>>>+ * specific language governing permissions and limitations
>>>>>+ * under the License.
>>>>>+ */
>>>>>+
>>>>>+package org.apache.cxf.jaxws.handler;
>>>>>+
>>>>>+import java.lang.reflect.InvocationTargetException;
>>>>>+import java.lang.reflect.Method;
>>>>>+import java.util.ArrayList;
>>>>>+import java.util.HashMap;
>>>>>+import java.util.List;
>>>>>+import java.util.Map;
>>>>>+import java.util.ResourceBundle;
>>>>>+import java.util.logging.Level;
>>>>>+import java.util.logging.Logger;
>>>>>+
>>>>>+import javax.xml.ws.WebServiceException;
>>>>>+import javax.xml.ws.handler.Handler;
>>>>>+import javax.xml.ws.handler.LogicalHandler;
>>>>>+
>>>>>+import org.apache.cxf.Bus;
>>>>>+import org.apache.cxf.common.injection.ResourceInjector;
>>>>>+import org.apache.cxf.common.logging.LogUtils;
>>>>>+import org.apache.cxf.jaxws.javaee.HandlerChainType;
>>>>>+import org.apache.cxf.jaxws.javaee.ParamValueType;
>>>>>+import org.apache.cxf.jaxws.javaee.PortComponentHandlerType;
>>>>>+import org.apache.cxf.resource.ResourceManager;
>>>>>+import org.apache.cxf.resource.ResourceResolver;
>>>>>+
>>>>>+public class HandlerChainBuilder {
>>>>>+    static final Logger LOG = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>LogUtils.getL7dLogger(HandlerChainBuilder.class);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+    private static final ResourceBundle BUNDLE = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>LOG.getResourceBundle();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+    private Bus bus;
>>>>>+
>>>>>+    private boolean handlerInitEnabled;
>>>>>+
>>>>>+    public HandlerChainBuilder(Bus aBus) {
>>>>>+        bus = aBus;
>>>>>+    }
>>>>>+
>>>>>+    public HandlerChainBuilder() {
>>>>>+        this(null);
>>>>>+    }
>>>>>+
>>>>>+    public List<Handler> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>buildHandlerChainFromConfiguration(HandlerChainType hc) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        if (null == hc) {
>>>>>+            return null;
>>>>>+        }
>>>>>+        return sortHandlers(buildHandlerChain(hc, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>getHandlerClassLoader()));
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+    }
>>>>>+
>>>>>+    /**
>>>>>+     * sorts the handlers into correct order. All of the 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>logical handlers first
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+     * followed by the protocol handlers
>>>>>+     * 
>>>>>+     * @param handlers
>>>>>+     * @return sorted list of handlers
>>>>>+     */
>>>>>+    public List<Handler> sortHandlers(List<Handler> handlers) {
>>>>>+
>>>>>+        List<LogicalHandler> logicalHandlers = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>ArrayList<LogicalHandler>();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        List<Handler> protocolHandlers = new ArrayList<Handler>();
>>>>>+
>>>>>+        for (Handler handler : handlers) {
>>>>>+            if (handler instanceof LogicalHandler) {
>>>>>+                logicalHandlers.add((LogicalHandler)handler);
>>>>>+            } else {
>>>>>+                protocolHandlers.add(handler);
>>>>>+            }
>>>>>+        }
>>>>>+
>>>>>+        List<Handler> sortedHandlers = new ArrayList<Handler>();
>>>>>+        sortedHandlers.addAll(logicalHandlers);
>>>>>+        sortedHandlers.addAll(protocolHandlers);
>>>>>+        return sortedHandlers;
>>>>>+    }
>>>>>+
>>>>>+    public void setHandlerInitEnabled(boolean b) {
>>>>>+        handlerInitEnabled = b;
>>>>>+    }
>>>>>+
>>>>>+    public boolean isHandlerInitEnabled() {
>>>>>+        return handlerInitEnabled;
>>>>>+    }
>>>>>+
>>>>>+    protected ClassLoader getHandlerClassLoader() {
>>>>>+        return getClass().getClassLoader();
>>>>>+    }
>>>>>+
>>>>>+    protected List<Handler> 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>buildHandlerChain(HandlerChainType hc, ClassLoader classLoader) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        List<Handler> handlerChain = new ArrayList<Handler>();
>>>>>+        for (PortComponentHandlerType ht : hc.getHandler()) {
>>>>>+            try {
>>>>>+                LOG.log(Level.FINE, "loading handler", 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>trimString(ht.getHandlerName().getValue()));
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+                Class<? extends Handler> handlerClass = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>Class.forName(
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                                                            
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>        trimString(ht.getHandlerClass()
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                                                            
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>            .getValue()), true, classLoader)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                    .asSubclass(Handler.class);
>>>>>+
>>>>>+                Handler handler = handlerClass.newInstance();
>>>>>+                LOG.fine("adding handler to chain: " + handler);
>>>>>+                configureHandler(handler, ht);
>>>>>+                handlerChain.add(handler);
>>>>>+            } catch (Exception e) {
>>>>>+                throw new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>WebServiceException(BUNDLE.getString("HANDLER_INSTANTIATION_EXC"), e);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+            }
>>>>>+        }
>>>>>+        return handlerChain;
>>>>>+    }
>>>>>+
>>>>>+    private void configureHandler(Handler handler, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>PortComponentHandlerType h) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        if (!handlerInitEnabled) {
>>>>>+            return;
>>>>>+        }
>>>>>+
>>>>>+        if (h.getInitParam().size() == 0) {
>>>>>+            return;
>>>>>+        }
>>>>>+
>>>>>+        Map<String, String> params = new HashMap<String, String>();
>>>>>+
>>>>>+        for (ParamValueType param : h.getInitParam()) {
>>>>>+            params.put(trimString(param.getParamName() == 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>null ? null : param.getParamName().getValue()),
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                       trimString(param.getParamValue() == 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>null ? null : param.getParamValue().getValue()));
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        }
>>>>>+
>>>>>+        Method initMethod = getInitMethod(handler);
>>>>>+        if (initMethod != null) {
>>>>>+            initializeViaInitMethod(handler, params, initMethod);
>>>>>+        } else {
>>>>>+            initializeViaInjection(handler, params);
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    private void initializeViaInjection(Handler handler, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>final Map<String, String> params) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        ResourceManager resMgr = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>bus.getExtension(ResourceManager.class);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        List<ResourceResolver> resolvers = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>resMgr.getResourceResolvers();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        resolvers.add(new InitParamResourceResolver(params));
>>>>>+        ResourceInjector resInj = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>ResourceInjector(resMgr, resolvers);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        resInj.inject(handler);
>>>>>+    }
>>>>>+
>>>>>+    private void initializeViaInitMethod(Handler handler, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>Map<String, String> params, Method init) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        try {
>>>>>+            init.invoke(handler, params);
>>>>>+        } catch (InvocationTargetException ex) {
>>>>>+            Throwable t = ex.getCause() != null ? 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>ex.getCause() : ex;
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+            LogUtils.log(LOG, Level.WARNING, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>"INIT_METHOD_THREW_EXCEPTION", t, handler.getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        } catch (IllegalAccessException ex) {
>>>>>+            LOG.log(Level.SEVERE, "CANNOT_ACCESS_INIT", 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>handler.getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    private Method getInitMethod(Handler handler) {
>>>>>+        Method m = null;
>>>>>+        try {
>>>>>+            m = handler.getClass().getMethod("init", Map.class);
>>>>>+        } catch (NoSuchMethodException ex) {
>>>>>+            // emtpy
>>>>>+        }
>>>>>+        return m;
>>>>>+    }
>>>>>+
>>>>>+    private String trimString(String str) {
>>>>>+        return str != null ? str.trim() : null;
>>>>>+    }
>>>>>+}
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilder.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:eol-style = native
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilder.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:keywords = Rev Date
>>>>>
>>>>>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/j
>>>>axws/src/main/java/org/apache/cxf/jaxws/handler/Messages.prope
>>>>rties?view=diff&rev=450934&r1=450933&r2=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>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 Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -1,4 +1,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."
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>\ No newline at end of file
>>>>>+HANDLER_CFG_FILE_NOT_FOUND_EXC = Unable to load handler 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>configuration {0} specified by annotation, file not found."
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+HANDLER_INSTANTIATION_EXC = Failed to instantiate handler
>>>>>+CHAIN_NOT_SPECIFIED_EXC = Chain not specified
>>>>>+
>>>>>
>>>>>Added: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/META-
>>>>INF/cxf/cxf-property-editors.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j
>>>>axws/src/main/resources/META-INF/cxf/cxf-property-editors.xml?
>>>>view=auto&rev=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/META-
>>>>INF/cxf/cxf-property-editors.xml (added)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/META-
>>>>INF/cxf/cxf-property-editors.xml Thu Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -0,0 +1,49 @@
>>>>>+<?xml version="1.0" encoding="UTF-8"?>
>>>>>+<!--
>>>>>+  Licensed to the Apache Software Foundation (ASF) under one
>>>>>+  or more contributor license agreements. See the NOTICE file
>>>>>+  distributed with this work for additional information
>>>>>+  regarding copyright ownership. The ASF licenses this file
>>>>>+  to you under the Apache License, Version 2.0 (the
>>>>>+  "License"); you may not use this file except in compliance
>>>>>+  with the License. You may obtain a copy of the License at
>>>>>+ 
>>>>>+  http://www.apache.org/licenses/LICENSE-2.0
>>>>>+ 
>>>>>+  Unless required by applicable law or agreed to in writing,
>>>>>+  software distributed under the License is distributed on an
>>>>>+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>>>>+  KIND, either express or implied. See the License for the
>>>>>+  specific language governing permissions and limitations
>>>>>+  under the License.
>>>>>+-->
>>>>>+<beans xmlns="http://www.springframework.org/schema/beans"
>>>>>+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>+       xsi:schemaLocation="
>>>>>+http://www.springframework.org/schema/beans 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://www.springframework.org/schema/beans/spring-beans.xsd">
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+   
>>>>>+    <bean 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>id="org.apache.cxf.jaxws.javaee.customEditorConfigurer" 
>>>>class="org.springframework.beans.factory.config.CustomEditorCo
>>>>nfigurer">
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        <property name="propertyEditorRegistrars">
>>>>>+            <list>
>>>>>+                <!--
>>>>>+                <ref 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>bean="org.apache.cxf.management.JaxbPropertyEditorRegistrar"/>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                -->
>>>>>+                <bean 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>class="org.apache.cxf.configuration.spring.JaxbPropertyEditorR
>>>>egistrar">
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                    <property name="packageName" 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>value="org.apache.cxf.jaxws.javaee"/>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                    <property name="propertyClassNames">
>>>>>+                        <list>
>>>>>+                            <value>HandlerChainType</value>
>>>>>+                            <value>PortComponentHandlerType</value>
>>>>>+                            <value>DisplayNameType</value>
>>>>>+                            <value>IconType</value>
>>>>>+                            <value>FullyQualifiedClassType</value>
>>>>>+                            <value>ParamValueType</value>
>>>>>+                            <value>XsdQNameType</value>
>>>>>+                            <value>String</value>
>>>>>+                        </list>
>>>>>+                    </property>
>>>>>+                </bean>
>>>>>+           </list>
>>>>>+        </property>
>>>>>+    </bean>
>>>>>+</beans>
>>>>>\ No newline at end of file
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/META-
>>>>INF/cxf/cxf-property-editors.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:eol-style = native
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/META-
>>>>INF/cxf/cxf-property-editors.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:keywords = Rev Date
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/META-
>>>>INF/cxf/cxf-property-editors.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:mime-type = text/xml
>>>>>
>>>>>Modified: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/schem
>>>>as/configuration/javaee_web_services_1_2.xsd
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j
>>>>axws/src/main/resources/schemas/configuration/javaee_web_servi
>>>>ces_1_2.xsd?view=diff&rev=450934&r1=450933&r2=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/schem
>>>>as/configuration/javaee_web_services_1_2.xsd (original)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/schem
>>>>as/configuration/javaee_web_services_1_2.xsd Thu Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -3,8 +3,12 @@
>>>>>	    targetNamespace="http://java.sun.com/xml/ns/javaee"
>>>>>	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
>>>>>	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>>>+            xmlns:cfg="http://cxf.apache.org/configuration/cfg"
>>>>>+            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
>>>>>	    elementFormDefault="qualified"
>>>>>	    attributeFormDefault="unqualified"
>>>>>+            jaxb:extensionBindingPrefixes="cfg"
>>>>>+            jaxb:version="2.0"
>>>>>	    version="1.2">
>>>>><xsd:annotation>
>>>>>  <xsd:documentation>
>>>>>@@ -743,5 +747,16 @@
>>>>>  <xsd:attribute name="id" type="xsd:ID"/>
>>>>></xsd:complexType>
>>>>>
>>>>>+  <xsd:element name="jaxwshandler" type="javaee:handler-chainType"/>
>>>>>+  <xsd:complexType name="HandlerConfigBean">        
>>>>>+    <xsd:annotation>
>>>>>+      <xsd:appinfo>                
>>>>>+        <cfg:configurable/>
>>>>>+      </xsd:appinfo>
>>>>>+    </xsd:annotation>
>>>>>+    <xsd:sequence>
>>>>>+      <xsd:element ref="javaee:jaxwshandler"/>
>>>>>+    </xsd:sequence>
>>>>>+  </xsd:complexType>
>>>>></xsd:schema>
>>>>>
>>>>>
>>>>>Added: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j
>>>>axws/src/test/java/org/apache/cxf/jaxws/handler/AnnotationHand
>>>>lerChainBuilderTest.java?view=auto&rev=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java (added)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java Thu 
>>>>Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -0,0 +1,76 @@
>>>>>+/**
>>>>>+ * Licensed to the Apache Software Foundation (ASF) under one
>>>>>+ * or more contributor license agreements. See the NOTICE file
>>>>>+ * distributed with this work for additional information
>>>>>+ * regarding copyright ownership. The ASF licenses this file
>>>>>+ * to you under the Apache License, Version 2.0 (the
>>>>>+ * "License"); you may not use this file except in compliance
>>>>>+ * with the License. You may obtain a copy of the License at
>>>>>+ *
>>>>>+ * http://www.apache.org/licenses/LICENSE-2.0
>>>>>+ *
>>>>>+ * Unless required by applicable law or agreed to in writing,
>>>>>+ * software distributed under the License is distributed on an
>>>>>+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>>>>+ * KIND, either express or implied. See the License for the
>>>>>+ * specific language governing permissions and limitations
>>>>>+ * under the License.
>>>>>+ */
>>>>>+
>>>>>+package org.apache.cxf.jaxws.handler;
>>>>>+
>>>>>+import java.util.List;
>>>>>+import java.util.Map;
>>>>>+
>>>>>+import javax.jws.HandlerChain;
>>>>>+import javax.jws.WebService;
>>>>>+import javax.xml.ws.handler.Handler;
>>>>>+import javax.xml.ws.handler.LogicalHandler;
>>>>>+import javax.xml.ws.handler.MessageContext;
>>>>>+
>>>>>+import junit.framework.TestCase;
>>>>>+
>>>>>+public class AnnotationHandlerChainBuilderTest extends TestCase {
>>>>>+
>>>>>+    public void setUp() {
>>>>>+    }
>>>>>+
>>>>>+    public void testFindHandlerChainAnnotation() {
>>>>>+        HandlerTestImpl handlerTestImpl = new HandlerTestImpl();
>>>>>+        System.out.println(TestLogicalHandler.class.getName());
>>>>>+        AnnotationHandlerChainBuilder chainBuilder = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>AnnotationHandlerChainBuilder();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        List<Handler> handlers = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>chainBuilder.buildHandlerChainFromClass(handlerTestImpl.getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        assertNotNull(handlers);
>>>>>+        assertEquals(2, handlers.size());
>>>>>+        assertEquals(TestLogicalHandler.class, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>handlers.get(0).getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        assertEquals(TestLogicalHandler.class, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>handlers.get(1).getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+    }
>>>>>+
>>>>>+    public static class TestLogicalHandler implements 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>LogicalHandler {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        Map config;
>>>>>+        boolean initCalled;
>>>>>+
>>>>>+        public void close(MessageContext arg0) {
>>>>>+        }
>>>>>+
>>>>>+        public boolean handleFault(MessageContext arg0) {
>>>>>+            return false;
>>>>>+        }
>>>>>+
>>>>>+        public boolean handleMessage(MessageContext arg0) {
>>>>>+            return false;
>>>>>+        }
>>>>>+
>>>>>+        public final void init(final Map map) {
>>>>>+            config = map;
>>>>>+            initCalled = true;
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    @WebService()
>>>>>+    @HandlerChain(file = "./handlers.xml", name = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>"TestHandlerChain")
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+    public class HandlerTestImpl {
>>>>>+
>>>>>+    }
>>>>>+
>>>>>+}
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:eol-style = native
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:keywords = Rev Date
>>>>>
>>>>>Added: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilderTest.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j
>>>>axws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainBu
>>>>ilderTest.java?view=auto&rev=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilderTest.java (added)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilderTest.java Thu Sep 28 
>>>>10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -0,0 +1,240 @@
>>>>>+/**
>>>>>+ * Licensed to the Apache Software Foundation (ASF) under one
>>>>>+ * or more contributor license agreements. See the NOTICE file
>>>>>+ * distributed with this work for additional information
>>>>>+ * regarding copyright ownership. The ASF licenses this file
>>>>>+ * to you under the Apache License, Version 2.0 (the
>>>>>+ * "License"); you may not use this file except in compliance
>>>>>+ * with the License. You may obtain a copy of the License at
>>>>>+ *
>>>>>+ * http://www.apache.org/licenses/LICENSE-2.0
>>>>>+ *
>>>>>+ * Unless required by applicable law or agreed to in writing,
>>>>>+ * software distributed under the License is distributed on an
>>>>>+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>>>>+ * KIND, either express or implied. See the License for the
>>>>>+ * specific language governing permissions and limitations
>>>>>+ * under the License.
>>>>>+ */
>>>>>+
>>>>>+package org.apache.cxf.jaxws.handler;
>>>>>+
>>>>>+import java.util.Arrays;
>>>>>+import java.util.List;
>>>>>+import java.util.Map;
>>>>>+
>>>>>+import javax.xml.ws.WebServiceException;
>>>>>+import javax.xml.ws.handler.Handler;
>>>>>+import javax.xml.ws.handler.LogicalHandler;
>>>>>+import javax.xml.ws.handler.MessageContext;
>>>>>+
>>>>>+import junit.framework.TestCase;
>>>>>+
>>>>>+import org.apache.cxf.Bus;
>>>>>+import org.apache.cxf.jaxws.javaee.FullyQualifiedClassType;
>>>>>+import org.apache.cxf.jaxws.javaee.HandlerChainType;
>>>>>+import org.apache.cxf.jaxws.javaee.ParamValueType;
>>>>>+import org.apache.cxf.jaxws.javaee.PortComponentHandlerType;
>>>>>+import org.easymock.classextension.EasyMock;
>>>>>+
>>>>>+public class HandlerChainBuilderTest extends TestCase {
>>>>>+
>>>>>+    Handler[] allHandlers = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>{EasyMock.createMock(LogicalHandler.class), 
>>>>EasyMock.createMock(Handler.class),
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+                             
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>EasyMock.createMock(Handler.class), 
>>>>EasyMock.createMock(LogicalHandler.class)};
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+    Handler[] logicalHandlers = {allHandlers[0], allHandlers[3]};
>>>>>+    Handler[] protocolHandlers = {allHandlers[1], allHandlers[2]};
>>>>>+
>>>>>+    HandlerChainBuilder builder = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>HandlerChainBuilder(EasyMock.createNiceMock(Bus.class));
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+    public void setUp() {
>>>>>+        builder.setHandlerInitEnabled(true);
>>>>>+    }
>>>>>+
>>>>>+    public void testChainSorting() {
>>>>>+        List<Handler> sortedHandlerChain = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>builder.sortHandlers(Arrays.asList(allHandlers));
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        assertSame(logicalHandlers[0], sortedHandlerChain.get(0));
>>>>>+        assertSame(logicalHandlers[1], sortedHandlerChain.get(1));
>>>>>+        assertSame(protocolHandlers[0], sortedHandlerChain.get(2));
>>>>>+        assertSame(protocolHandlers[1], sortedHandlerChain.get(3));
>>>>>+    }
>>>>>+
>>>>>+    public void testBuildHandlerChainFromConfiguration() {
>>>>>+
>>>>>+        HandlerChainType hc = createHandlerChainType();
>>>>>+        List<Handler> chain = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>builder.buildHandlerChainFromConfiguration(hc);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+        assertNotNull(chain);
>>>>>+        assertEquals(4, chain.size());
>>>>>+        assertEquals(TestLogicalHandler.class, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>chain.get(0).getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        assertEquals(TestLogicalHandler.class, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>chain.get(1).getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        assertEquals(TestProtocolHandler.class, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>chain.get(2).getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        assertEquals(TestProtocolHandler.class, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>chain.get(3).getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+        TestLogicalHandler tlh = (TestLogicalHandler)chain.get(0);
>>>>>+        assertTrue(!tlh.initCalled);
>>>>>+        assertNull(tlh.config);
>>>>>+    }
>>>>>+
>>>>>+    public void testBuilderCallsInit() {
>>>>>+        HandlerChainType hc = createHandlerChainType();
>>>>>+        hc.getHandler().remove(3);
>>>>>+        hc.getHandler().remove(2);
>>>>>+        hc.getHandler().remove(1);
>>>>>+
>>>>>+        PortComponentHandlerType h = hc.getHandler().get(0);
>>>>>+        List<ParamValueType> params = h.getInitParam();
>>>>>+
>>>>>+        ParamValueType p = new ParamValueType();
>>>>>+        org.apache.cxf.jaxws.javaee.String pName = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>org.apache.cxf.jaxws.javaee.String();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        pName.setValue("foo");
>>>>>+        p.setParamName(pName);
>>>>>+        org.apache.cxf.jaxws.javaee.XsdStringType pValue = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>new org.apache.cxf.jaxws.javaee.XsdStringType();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        pValue.setValue("1");
>>>>>+        p.setParamValue(pValue);
>>>>>+        params.add(p);
>>>>>+
>>>>>+        p = new ParamValueType();
>>>>>+        pName = new org.apache.cxf.jaxws.javaee.String();
>>>>>+        pName.setValue("bar");
>>>>>+        p.setParamName(pName);
>>>>>+        pValue = new org.apache.cxf.jaxws.javaee.XsdStringType();
>>>>>+        pValue.setValue("2");
>>>>>+        p.setParamValue(pValue);
>>>>>+        params.add(p);
>>>>>+
>>>>>+        List<Handler> chain = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>builder.buildHandlerChainFromConfiguration(hc);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        assertEquals(1, chain.size());
>>>>>+        TestLogicalHandler tlh = (TestLogicalHandler)chain.get(0);
>>>>>+
>>>>>+        assertTrue(tlh.initCalled);
>>>>>+        Map cfg = tlh.config;
>>>>>+        assertNotNull(tlh.config);
>>>>>+
>>>>>+        assertEquals(2, cfg.keySet().size());
>>>>>+        assertEquals("1", cfg.get("foo"));
>>>>>+        assertEquals("2", cfg.get("bar"));
>>>>>+    }
>>>>>+
>>>>>+    public void testBuilderCallsInitWithNoInitParamValues() {
>>>>>+        HandlerChainType hc = createHandlerChainType();
>>>>>+        hc.getHandler().remove(3);
>>>>>+        hc.getHandler().remove(2);
>>>>>+        hc.getHandler().remove(1);
>>>>>+
>>>>>+        PortComponentHandlerType h = hc.getHandler().get(0);
>>>>>+        List<ParamValueType> params = h.getInitParam();
>>>>>+
>>>>>+        ParamValueType p = new ParamValueType();
>>>>>+        org.apache.cxf.jaxws.javaee.String pName = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>org.apache.cxf.jaxws.javaee.String();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        pName.setValue("foo");
>>>>>+        p.setParamName(pName);
>>>>>+        params.add(p);
>>>>>+
>>>>>+        List<Handler> chain = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>builder.buildHandlerChainFromConfiguration(hc);
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        assertEquals(1, chain.size());
>>>>>+        TestLogicalHandler tlh = (TestLogicalHandler)chain.get(0);
>>>>>+
>>>>>+        assertTrue(tlh.initCalled);
>>>>>+        Map cfg = tlh.config;
>>>>>+        assertNotNull(tlh.config);
>>>>>+        assertEquals(1, cfg.keySet().size());
>>>>>+    }
>>>>>+
>>>>>+    public void testBuilderCannotLoadHandlerClass() {
>>>>>+        HandlerChainType hc = createHandlerChainType();
>>>>>+        hc.getHandler().remove(3);
>>>>>+        hc.getHandler().remove(2);
>>>>>+        hc.getHandler().remove(1);
>>>>>+        FullyQualifiedClassType type = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>FullyQualifiedClassType();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        type.setValue("no.such.class");
>>>>>+        hc.getHandler().get(0).setHandlerClass(type);
>>>>>+
>>>>>+        try {
>>>>>+            builder.buildHandlerChainFromConfiguration(hc);
>>>>>+            fail("did not get expected exception");
>>>>>+        } catch (WebServiceException ex) {
>>>>>+            // ex.printStackTrace();
>>>>>+            assertNotNull(ex.getCause());
>>>>>+            assertEquals(ClassNotFoundException.class, 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>ex.getCause().getClass());
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    private HandlerChainType createHandlerChainType() {
>>>>>+        HandlerChainType hc = new HandlerChainType();
>>>>>+        List<PortComponentHandlerType> handlers = hc.getHandler();
>>>>>+
>>>>>+        PortComponentHandlerType h = new PortComponentHandlerType();
>>>>>+        org.apache.cxf.jaxws.javaee.String name = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>org.apache.cxf.jaxws.javaee.String();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        name.setValue("lh1");
>>>>>+        h.setHandlerName(name);
>>>>>+        FullyQualifiedClassType type = new 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>FullyQualifiedClassType();
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        type.setValue(TestLogicalHandler.class.getName());
>>>>>+        h.setHandlerClass(type);
>>>>>+        handlers.add(h);
>>>>>+
>>>>>+        h = new PortComponentHandlerType();
>>>>>+        name = new org.apache.cxf.jaxws.javaee.String();
>>>>>+        name.setValue("ph1");
>>>>>+        h.setHandlerName(name);
>>>>>+        type = new FullyQualifiedClassType();
>>>>>+        type.setValue(TestProtocolHandler.class.getName());
>>>>>+        h.setHandlerClass(type);
>>>>>+        handlers.add(h);
>>>>>+
>>>>>+        h = new PortComponentHandlerType();
>>>>>+        name = new org.apache.cxf.jaxws.javaee.String();
>>>>>+        name.setValue("ph2");
>>>>>+        h.setHandlerName(name);
>>>>>+        type = new FullyQualifiedClassType();
>>>>>+        type.setValue(TestProtocolHandler.class.getName());
>>>>>+        h.setHandlerClass(type);
>>>>>+        handlers.add(h);
>>>>>+
>>>>>+        h = new PortComponentHandlerType();
>>>>>+        name = new org.apache.cxf.jaxws.javaee.String();
>>>>>+        name.setValue("lh2");
>>>>>+        h.setHandlerName(name);
>>>>>+        type = new FullyQualifiedClassType();
>>>>>+        type.setValue(TestLogicalHandler.class.getName());
>>>>>+        h.setHandlerClass(type);
>>>>>+        handlers.add(h);
>>>>>+
>>>>>+        return hc;
>>>>>+    }
>>>>>+
>>>>>+    public static class TestLogicalHandler implements 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>LogicalHandler {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+        Map config;
>>>>>+        boolean initCalled;
>>>>>+
>>>>>+        public void close(MessageContext arg0) {
>>>>>+        }
>>>>>+
>>>>>+        public boolean handleFault(MessageContext arg0) {
>>>>>+            return false;
>>>>>+        }
>>>>>+
>>>>>+        public boolean handleMessage(MessageContext arg0) {
>>>>>+            return false;
>>>>>+        }
>>>>>+
>>>>>+        public final void init(final Map map) {
>>>>>+            config = map;
>>>>>+            initCalled = true;
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    public static class TestProtocolHandler implements Handler {
>>>>>+
>>>>>+        public void close(MessageContext arg0) {
>>>>>+        }
>>>>>+
>>>>>+        public boolean handleFault(MessageContext arg0) {
>>>>>+            return false;
>>>>>+        }
>>>>>+
>>>>>+        public boolean handleMessage(MessageContext arg0) {
>>>>>+            return false;
>>>>>+        }
>>>>>+    }
>>>>>+}
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilderTest.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:eol-style = native
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache
>>>>/cxf/jaxws/handler/HandlerChainBuilderTest.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:keywords = Rev Date
>>>>>
>>>>>Added: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/resources/handlers.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j
>>>>axws/src/test/resources/handlers.xml?view=auto&rev=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/resources/handl
>>>>ers.xml (added)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/resources/handl
>>>>ers.xml Thu Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -0,0 +1,50 @@
>>>>>+<?xml version="1.0" encoding="UTF-8"?>
>>>>>+<!--
>>>>>+  Licensed to the Apache Software Foundation (ASF) under one
>>>>>+  or more contributor license agreements. See the NOTICE file
>>>>>+  distributed with this work for additional information
>>>>>+  regarding copyright ownership. The ASF licenses this file
>>>>>+  to you under the Apache License, Version 2.0 (the
>>>>>+  "License"); you may not use this file except in compliance
>>>>>+  with the License. You may obtain a copy of the License at
>>>>>+ 
>>>>>+  http://www.apache.org/licenses/LICENSE-2.0
>>>>>+ 
>>>>>+  Unless required by applicable law or agreed to in writing,
>>>>>+  software distributed under the License is distributed on an
>>>>>+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>>>>+  KIND, either express or implied. See the License for the
>>>>>+  specific language governing permissions and limitations
>>>>>+  under the License.
>>>>>+-->
>>>>>+<beans xmlns="http://www.springframework.org/schema/beans"
>>>>>+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>+       xmlns:javaee="http://java.sun.com/xml/ns/javaee"
>>>>>+       
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>xsi:schemaLocation="http://www.springframework.org/schema/bean
>>>>s http://www.springframework.org/schema/beans/spring-beans.xsd">
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+    <bean 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>id="org.apache.cxf.jaxws.javaee.HandlerConfigBean" abstract="true">
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        <property name="jaxwshandler">
>>>>>+            <value>
>>>>>+                <javaee:jaxwshandler>
>>>>>+                    <javaee:handler>
>>>>>+				
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:handler-name>lh1</javaee:handler-name>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:handler-class>org.apache.cxf.jaxws.handler.AnnotationH
>>>>andlerChainBuilderTest$TestLogicalHandler</javaee:handler-class>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				<javaee:init-param>
>>>>>+					
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:param-name>token</javaee:param-name>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+					
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:param-value>String</javaee:param-value>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				</javaee:init-param>
>>>>>+                    </javaee:handler>
>>>>>+                    <javaee:handler>
>>>>>+				
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:handler-name>lh2</javaee:handler-name>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:handler-class>org.apache.cxf.jaxws.handler.AnnotationH
>>>>andlerChainBuilderTest$TestLogicalHandler</javaee:handler-class>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				<javaee:init-param>
>>>>>+					
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:param-name>token</javaee:param-name>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+					
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:param-value>String</javaee:param-value>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				</javaee:init-param>
>>>>>+                    </javaee:handler>
>>>>>+                </javaee:jaxwshandler>
>>>>>+            </value>
>>>>>+        </property>
>>>>>+    </bean>
>>>>>+    
>>>>>+</beans>
>>>>>\ No newline at end of file
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/resources/handlers.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:eol-style = native
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/resources/handlers.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:keywords = Rev Date
>>>>>
>>>>>Propchange: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/rt/frontend/jaxws/src/test/resources/handlers.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-------------------------------------------------------------
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>-----------------
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>> svn:mime-type = text/xml
>>>>>
>>>>>Modified: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst
>>>>est/handlers/HandlerTestImpl.java
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/
>>>>test/java/org/apache/cxf/systest/handlers/HandlerTestImpl.java
>>>>?view=diff&rev=450934&r1=450933&r2=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst
>>>>est/handlers/HandlerTestImpl.java (original)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst
>>>>est/handlers/HandlerTestImpl.java Thu Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -22,7 +22,7 @@
>>>>>import java.util.ArrayList;
>>>>>import java.util.List;
>>>>>import javax.annotation.Resource;
>>>>>-import javax.jws.HandlerChain;
>>>>>+//import javax.jws.HandlerChain;
>>>>>import javax.jws.WebService;
>>>>>import javax.xml.ws.WebServiceContext;
>>>>>import javax.xml.ws.handler.MessageContext;
>>>>>@@ -30,15 +30,14 @@
>>>>>import org.apache.handler_test.PingException;
>>>>>import org.apache.handler_test.types.PingFaultDetails;
>>>>>
>>>>>-@WebService(serviceName = "HandlerTestService", 
>>>>>-            portName = "SoapPort", 
>>>>>-            endpointInterface = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>"org.apache.handler_test.HandlerTest", 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+@WebService(serviceName = "HandlerTestService",
>>>>>+            portName = "SoapPort",
>>>>>+            endpointInterface = 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>"org.apache.handler_test.HandlerTest",
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>          targetNamespace = "http://apache.org/handler_test")
>>>>>-@HandlerChain(file = "./handlers.xml", name = "TestHandlerChain")
>>>>>public class HandlerTestImpl implements HandlerTest {
>>>>>
>>>>>-    private WebServiceContext context; 
>>>>>-        
>>>>>+    private WebServiceContext context;
>>>>>+
>>>>>  public final List<String> ping() {
>>>>>
>>>>>      try {
>>>>>@@ -51,40 +50,40 @@
>>>>>      } catch (Exception e) {
>>>>>          e.printStackTrace();
>>>>>
>>>>>-        } 
>>>>>+        }
>>>>>      return null;
>>>>>  }
>>>>>
>>>>>  public final void pingOneWay() {
>>>>>-    } 
>>>>>+    }
>>>>>
>>>>>  public final List<String> pingWithArgs(String 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>handlerCommand) throws PingException {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-        List<String> ret = new ArrayList<String>(); 
>>>>>-        ret.add(handlerCommand); 
>>>>>+        List<String> ret = new ArrayList<String>();
>>>>>+        ret.add(handlerCommand);
>>>>>      //ret.addAll(getHandlersInfo(context.getMessageContext()));
>>>>>
>>>>>      if (handlerCommand.contains("throw exception")) {
>>>>>-            PingFaultDetails details = new PingFaultDetails(); 
>>>>>+            PingFaultDetails details = new PingFaultDetails();
>>>>>          details.setDetail(ret.toString());
>>>>>-            throw new PingException("from servant", details); 
>>>>>+            throw new PingException("from servant", details);
>>>>>      }
>>>>>
>>>>>      return ret;
>>>>>-    } 
>>>>>+    }
>>>>>
>>>>>
>>>>>-    @Resource public void 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>setWebServiceContext(WebServiceContext ctx) { 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+    @Resource public void 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>setWebServiceContext(WebServiceContext ctx) {
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>      context = ctx;
>>>>>  }
>>>>>
>>>>>  @SuppressWarnings("unchecked")
>>>>>-    private List<String> getHandlersInfo(MessageContext ctx) { 
>>>>>-        List<String> ret = (List<String>)ctx.get("handler.info"); 
>>>>>+    private List<String> getHandlersInfo(MessageContext ctx) {
>>>>>+        List<String> ret = (List<String>)ctx.get("handler.info");
>>>>>      if (ret == null) {
>>>>>-            ret = new ArrayList<String>(); 
>>>>>+            ret = new ArrayList<String>();
>>>>>      }
>>>>>      return ret;
>>>>>-    } 
>>>>>+    }
>>>>>
>>>>>}
>>>>>
>>>>>Modified: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst
>>>>est/handlers/handlers.xml
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>URL: 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/
>>>>test/java/org/apache/cxf/systest/handlers/handlers.xml?view=di
>>>>ff&rev=450934&r1=450933&r2=450934
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>=============================================================
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>=================
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>--- 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst
>>>>est/handlers/handlers.xml (original)
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+++ 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst
>>>>est/handlers/handlers.xml Thu Sep 28 10:33:57 2006
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>@@ -1,4 +1,5 @@
>>>>>- <!--
>>>>>+<?xml version="1.0" encoding="UTF-8"?>
>>>>>+<!--
>>>>>Licensed to the Apache Software Foundation (ASF) under one
>>>>>or more contributor license agreements. See the NOTICE file
>>>>>distributed with this work for additional information
>>>>>@@ -16,35 +17,34 @@
>>>>>specific language governing permissions and limitations
>>>>>under the License.
>>>>>-->
>>>>>-<handler-config> 
>>>>>-  <handler-chain> 
>>>>>-    <handler-chain-name>TestHandlerChain</handler-chain-name> 
>>>>>-    <handler> 
>>>>>-      <handler-name>Handler1</handler-name> 
>>>>>-      
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><handler-class>org.apache.cxf.systest.handlers.TestHandler</ha
>>>>ndler-class> 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-    </handler> 
>>>>>-    <handler> 
>>>>>-      <handler-name>Handler2</handler-name> 
>>>>>-      
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><handler-class>org.apache.cxf.systest.handlers.TestHandler</ha
>>>>ndler-class> 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-    </handler> 
>>>>>-    <handler> 
>>>>>-      <handler-name>ProtocolHandler1</handler-name> 
>>>>>-      
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><handler-class>org.apache.cxf.systest.handlers.TestSOAPHandler
>>>></handler-class> 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-    </handler> 
>>>>>-    <handler> 
>>>>>-      <handler-name>ProtocolHandler2</handler-name> 
>>>>>-      
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><handler-class>org.apache.cxf.systest.handlers.TestSOAPHandler
>>>></handler-class> 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-    </handler> 
>>>>>-    <handler> 
>>>>>-      <handler-name>StreamHandler1</handler-name> 
>>>>>-      
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><handler-class>org.apache.cxf.systest.handlers.TestStreamHandl
>>>>er</handler-class> 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-    </handler> 
>>>>>-  </handler-chain> 
>>>>>-  <handler-chain>
>>>>>-     <handler-chain-name>SingleHandlerChain</handler-chain-name> 
>>>>>-     <handler> 
>>>>>-      <handler-name>SingleHandler</handler-name> 
>>>>>-      
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><handler-class>org.apache.cxf.systest.handlers.TestHandler</ha
>>>>ndler-class> 
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>-    </handler> 
>>>>>-  </handler-chain>	  
>>>>>-</handler-config> 
>>>>>+<beans xmlns="http://www.springframework.org/schema/beans"
>>>>>+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>+       xmlns:javaee="http://java.sun.com/xml/ns/javaee"
>>>>>+       
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>xsi:schemaLocation="http://www.springframework.org/schema/bean
>>>>s http://www.springframework.org/schema/beans/spring-beans.xsd">
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+
>>>>>+    <bean 
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>id="org.apache.cxf.jaxws.javaee.HandlerConfigBean" abstract="true">
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+        <property name="jaxwshandler">
>>>>>+            <value>
>>>>>+                <javaee:jaxwshandler>
>>>>>+                    <javaee:handler>
>>>>>+				
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:handler-name>lh1</javaee:handler-name>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:handler-class>org.apache.cxf.systest.handlers.TestSOAP
>>>>Handler</javaee:handler-class>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				<javaee:init-param>
>>>>>+					
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:param-name>token</javaee:param-name>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+					
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:param-value>String</javaee:param-value>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				</javaee:init-param>
>>>>>+                    </javaee:handler>
>>>>>+                    <javaee:handler>
>>>>>+				
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:handler-name>lh2</javaee:handler-name>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:handler-class>org.apache.cxf.systest.handlers.TestSOAP
>>>>Handler</javaee:handler-class>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				<javaee:init-param>
>>>>>+					
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:param-name>token</javaee:param-name>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+					
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>><javaee:param-value>String</javaee:param-value>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>+				</javaee:init-param>
>>>>>+                    </javaee:handler>
>>>>>+                </javaee:jaxwshandler>
>>>>>+            </value>
>>>>>+        </property>
>>>>>+    </bean>
>>>>>+    
>>>>>+</beans>
>>>>>\ No newline at end of file
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>
>>
>>
>> 
>>
>>    
>>
>
>  
>


Mime
View raw message