camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CAMEL-118) Camel CXF Invoker component support
Date Tue, 28 Aug 2007 15:14:22 GMT

    [ 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

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message