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.

Reply via email to