camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: [jira] Commented: (CAMEL-118) Camel CXF Invoker component support
Date Tue, 28 Aug 2007 15:34:50 GMT
I used svn diff to create the patch, and I am working on windows box.

James Strachan (JIRA) wrote:
>     [ https://issues.apache.org/activemq/browse/CAMEL-118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40033
] 
>
> James Strachan commented on CAMEL-118:
> --------------------------------------
>
> Here are the rejections from TextMate (which seems to give the best rejection messages)
>
> {code}
> ***************
> *** 16,42 ****
>    */
>   package org.apache.camel.component.cxf;
>   
> - import java.net.URI;
>   import java.util.Map;
>   
>   import org.apache.camel.CamelContext;
>   import org.apache.camel.Endpoint;
>   import org.apache.camel.impl.DefaultComponent;
> - import org.apache.cxf.Bus;
> - import org.apache.cxf.BusException;
> - import org.apache.cxf.bus.CXFBusFactory;
> - import org.apache.cxf.service.model.EndpointInfo;
> - import org.apache.cxf.transport.DestinationFactoryManager;
> - import org.apache.cxf.transport.local.LocalTransportFactory;
> - import org.xmlsoap.schemas.wsdl.http.AddressType;
>   
>   /**
>    * Defines the <a href="http://activemq.apache.org/camel/cxf.html">CXF Component</a>
>   
>    * @version $Revision$
>    */
>   public class CxfComponent extends DefaultComponent<CxfExchange> {
> -     private LocalTransportFactory localTransportFactory;
>   
>       public CxfComponent() {
>       }
> --- 16,36 ----
>    */
>   package org.apache.camel.component.cxf;
>   
>   import java.util.Map;
>   
>   import org.apache.camel.CamelContext;
>   import org.apache.camel.Endpoint;
>   import org.apache.camel.impl.DefaultComponent;
> + import org.apache.camel.util.IntrospectionSupport;
>   
> + 
>   /**
>    * Defines the <a href="http://activemq.apache.org/camel/cxf.html">CXF Component</a>
>   
>    * @version $Revision$
>    */
>   public class CxfComponent extends DefaultComponent<CxfExchange> {
> + 	
>   
>       public CxfComponent() {
>       }
> {code}
>
> {code}
> ***************
> *** 18,72 ****
>   
>   import org.apache.camel.Processor;
>   import org.apache.camel.impl.DefaultConsumer;
>   import org.apache.cxf.message.Message;
>   import org.apache.cxf.transport.Destination;
>   import org.apache.cxf.transport.MessageObserver;
> - import org.apache.cxf.transport.local.LocalTransportFactory;
>   
>   /**
>    * A consumer of exchanges for a service in CXF
>    * 
>    * @version $Revision$
>    */
>   public class CxfConsumer extends DefaultConsumer<CxfExchange> {
> -     private CxfEndpoint endpoint;
> -     private final LocalTransportFactory transportFactory;
>       private Destination destination;
>   
> -     public CxfConsumer(CxfEndpoint endpoint, Processor processor, LocalTransportFactory
transportFactory) {
>           super(endpoint, processor);
>           this.endpoint = endpoint;
> -         this.transportFactory = transportFactory;
>       }
>   
>       @Override
>       protected void doStart() throws Exception {
> -         super.doStart();
> - 
> -         destination = transportFactory.getDestination(endpoint.getEndpointInfo());
> -         destination.setMessageObserver(new MessageObserver() {
> -             public void onMessage(Message message) {
> -                 incomingCxfMessage(message);
> -             }
> -         });
>       }
>   
>       @Override
>       protected void doStop() throws Exception {
> -         if (destination != null) {
> -             destination.shutdown();
> -         }
>           super.doStop();
>       }
>   
> -     protected void incomingCxfMessage(Message message) {
> -         try {
> -             CxfExchange exchange = endpoint.createExchange(message);
> -             getProcessor().process(exchange);
> -         } catch (Exception e) {
> -             // TODO: what do do if we are getting processing errors from camel?
> -             // Shutdown?
> -             e.printStackTrace();
> -         }
> -     }
>   }
> --- 18,71 ----
>   
>   import org.apache.camel.Processor;
>   import org.apache.camel.impl.DefaultConsumer;
> + import org.apache.cxf.endpoint.Server;
> + import org.apache.cxf.frontend.ServerFactoryBean;
>   import org.apache.cxf.message.Message;
>   import org.apache.cxf.transport.Destination;
>   import org.apache.cxf.transport.MessageObserver;
>   
> + 
>   /**
>    * A consumer of exchanges for a service in CXF
>    * 
>    * @version $Revision$
>    */
>   public class CxfConsumer extends DefaultConsumer<CxfExchange> {
> +     private CxfEndpoint endpoint;    
> +     private Server server;
>       private Destination destination;
>   
> +     public CxfConsumer(CxfEndpoint endpoint, Processor processor) throws ClassNotFoundException
{
> +        
>           super(endpoint, processor);
> +         System.out.println(processor.toString());
>           this.endpoint = endpoint;
> +         //we setup the interceptors by the endpoint configuration
> +         //create server here, now we just use the simple front-end        
> +         ServerFactoryBean svrBean = new ServerFactoryBean();
> +         Class serviceClass = Class.forName(endpoint.getServiceClass());        
> +         svrBean.setAddress(endpoint.getAddress());
> +         svrBean.setServiceClass(serviceClass);
> +         if (endpoint.isInvoker()) {
> +             System.out.println("setup the invoker ");
> +             svrBean.setInvoker(new CamelInvoker(this));
> +         }    
> +         svrBean.setStart(false);
> +         server = svrBean.create();
>       }
>   
>       @Override
>       protected void doStart() throws Exception {
> +         super.doStart();        
> +         
> +         server.start();
>       }
>   
>       @Override
>       protected void doStop() throws Exception {
> +         server.stop();
>           super.doStop();
>       }
>   
> +     
>   }
> {code}
>
> {code}
> ***************
> *** 16,53 ****
>    */
>   package org.apache.camel.component.cxf;
>   
>   import org.apache.camel.Consumer;
>   import org.apache.camel.Processor;
>   import org.apache.camel.Producer;
>   import org.apache.camel.impl.DefaultEndpoint;
> - import org.apache.cxf.BusException;
>   import org.apache.cxf.message.Message;
> - import org.apache.cxf.service.model.EndpointInfo;
> - import org.apache.cxf.transport.local.LocalTransportFactory;
>   
>   /**
>    * Defines the <a href="http://activemq.apache.org/camel/cxf.html">CXF Endpoint</a>
>    * 
>    * @version $Revision$
>    */
> - public class CxfEndpoint extends DefaultEndpoint<CxfExchange> {
>       private CxfBinding binding;
> -     private final CxfComponent component;
> -     private final EndpointInfo endpointInfo;
>       private boolean inOut = true;
>   
> -     public CxfEndpoint(String uri, CxfComponent component, EndpointInfo endpointInfo)
{
>           super(uri, component);
> -         this.component = component;
> -         this.endpointInfo = endpointInfo;
>       }
> - 
>       public Producer<CxfExchange> createProducer() throws Exception {
> -         return new CxfProducer(this, getLocalTransportFactory());
>       }
>   
>       public Consumer<CxfExchange> createConsumer(Processor processor) throws Exception
{
> -         return new CxfConsumer(this, processor, getLocalTransportFactory());
>       }
>   
>       public CxfExchange createExchange() {
> --- 16,59 ----
>    */
>   package org.apache.camel.component.cxf;
>   
> + import javax.xml.namespace.QName;
> + 
>   import org.apache.camel.Consumer;
>   import org.apache.camel.Processor;
>   import org.apache.camel.Producer;
>   import org.apache.camel.impl.DefaultEndpoint;
> + import org.apache.cxf.endpoint.Endpoint;
>   import org.apache.cxf.message.Message;
>   
> + 
>   /**
>    * Defines the <a href="http://activemq.apache.org/camel/cxf.html">CXF Endpoint</a>
>    * 
>    * @version $Revision$
>    */
> + public class CxfEndpoint extends DefaultEndpoint<CxfExchange> {    
> +     private final CxfComponent component;
> +     private final String address;
> +     private String wsdlURL;
> +     private String serviceClass;
>       private CxfBinding binding;
> +     private QName portName;
> +     private QName serviceName;
>       private boolean inOut = true;
> +     private boolean invoker = true;
>   
> +     public CxfEndpoint(String uri, String address, CxfComponent component) {
>           super(uri, component);
> +         this.component = component;        
> +         this.address = address;
>       }
> +         
>       public Producer<CxfExchange> createProducer() throws Exception {
> +         return new CxfProducer(this);
>       }
>   
>       public Consumer<CxfExchange> createConsumer(Processor processor) throws Exception
{
> +         return new CxfConsumer(this, processor);
>       }
>   
>       public CxfExchange createExchange() {
> {code}
>
>
>
>   
>> Camel CXF Invoker component support
>> -----------------------------------
>>
>>                 Key: CAMEL-118
>>                 URL: https://issues.apache.org/activemq/browse/CAMEL-118
>>             Project: Apache Camel
>>          Issue Type: Sub-task
>>          Components: camel-cxf
>>            Reporter: Willem Jiang
>>             Fix For: 1.2.0
>>
>>         Attachments: cxf.patch, cxf.patch2, filestates, svn-rm.patch
>>
>>
>> CXFProducer  holds the CXF client's reference,CXFConsumer holds the  CXF server's
reference, Now I just wrote a router test which redirect a service request from CXFService
A to CXFService B
>> I attached a patch and a svn state out put which would be helpful to verify the files
statues
>>     
>
>   


Mime
View raw message