camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ranx <brad.john...@mediadriver.com>
Subject Re: CXF cross cutting concerns
Date Thu, 10 Mar 2016 18:53:22 GMT
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.

Mime
View raw message