Christian,
Thanks. I'll look into that. Right now all my services are defined in
separate bundles and exported to the registry and have interfaces with
REST/SOAP annotations that I expose via an API gateway. That works fairly
well but it obviously couples the deployment.
Part of the problem is with blueprint being a bundle internal only is that
one can't do easy runtime modifications. Whereas if the specification has
external/internal deployed sections it could make this much better. In the
same way that we do cfg files we could also have an external/internal
blueprint for a bundle. In fact, with properties exposed that way cfgs
wouldn't even be necessary or would be duplicated.
As an example, if I have a webservices API gateway with the following I have
to replicate a lot of endpoint set up and if I decide I don't want to deploy
that service there but have it on another machine I can't do that without
recompiling. Putting a raw blueprint file in the etc directory feels like
cheating but maybe that's the answer to some of this.
<reference id="myInoviceService" interface="com.foo.InvoiceService"/>
<reference id="myInventoryService" interface="com.foo.InventoryService"/>
<cxf:rsServer id="invoiceCxfRs" address="${CXFServer}/invoice/resources"
serviceClass="com.foo.InvoiceService" loggingFeatureEnabled="true"
loggingSizeLimit="20">
<cxf:providers>
<bean
class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
<property name="dropRootElement" value="true" />
<property name="supportUnwrapped" value="true"
/>
</bean>
</cxf:providers>
</cxf:rsServer>
<cxf:cxfEndpoint id="invoiceSoapCxf"
address="${CXFServer}/invoice/services"
serviceClass="com.foo.invoice.services.api.InvoiceDocumentService"
loggingFeatureEnabled="true" loggingSizeLimit="20">
<cxf:binding> <soap:soapBinding version="1.2" /> </cxf:binding>
</cxf:cxfEndpoint>
...set up other endpoints...
<bean id="serviceInvoker"
class="com.svm.esb.financial.webservice.ServiceInvoker"/>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="cxfrs:bean:invoiceCxfRs" />
<log message="Received request: ${body}" />
<log message="Received headers request: ${headers}" />
<bean ref="serviceInvoker"
method="invokeServiceFromREST" />
</route>
--
View this message in context:
http://camel.465427.n5.nabble.com/CXF-cross-cutting-concerns-tp5778798p5778886.html
Sent from the Camel - Users mailing list archive at Nabble.com.