Most of the switch over from using XML route builders to Java route
builders is fairly painless and straightforward and the new CDI is a
pleasure to work with.  But there are certain aspects that I'm not quite
familiar with like how to do the same thing as this in the Java DSL,

<!-- Defined the client endpoint to create the cxf-rs consumer -->
  <cxf:rsClient id="rsClient" address="http://localhost: <http://localhost/>
${CXFTestSupport.port2}/CxfRsRouterTest/rest"

serviceClass="org.apache.camel.component.cxf.jaxrs.testbean.CustomerService"
    loggingFeatureEnabled="true" skipFaultLogging="true">
    <cxf:providers>
       <ref bean="jsonProvider"/>
    </cxf:providers>
  </cxf:rsClient>

  <!-- The camel route context -->
  <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
    <route>
       <!-- Just need to ignoreDeleteMethodMessageBody -->
       <from uri="cxfrs://bean://rsServer"/>
       <to uri="log:body?level=INFO"/>
       <to uri="cxfrs://bean://rsClient?ignoreDeleteMethodMessageBody=true
"/>
    </route>
  </camelContext>


If I have an interface like this:

@Path("/api")
public interface InventoryClient {

  @GET
  @Path("/inventory_transactions/{id}")
  @Consumes(MediaType.TEXT_XML)
  InventoryTransaction getInventory(@PathParam("id") Integer id);


I can easily create a Java bean and use JAXRSClientFactory to create the
client and use it or even use a CDI Producer to create it for injection.
The only issue then is the multi-threading and how that might be handled
and then doing things like calling reset on the client after an invocation.
While I can do it it seems like I should be able to simply set up a route:

from("direct:inventory").to("cxrs://bean//inventoryClient")

in a route builder but obviously that's predicated on setting up the
client. How does that setup translate?

  <cxf:rsClient id="inventoryClient" address="https:// <http://localhost/>
remoteURI"
    serviceClass="foo.InventoryClient"


I'd rather let Camel handle the underlying issues of resource management
than do all that myself.

Reply via email to