I have written a prototype for JCA gateway, only support message inflow at first.
Almost same as SCA JCA binding. Ommitted some parameters right now though.
And I have added two elements for SwitchYard
- binding.jca/inboundInteraction/endpointClass: the name of concrete Endpoint class
- binding.jca/inboundInteraction/transacted: boolean value that indicates the delivery should be transacted or not.
Key classes of JCA component
Related Repository: components
- org.switchyard.component.jca.deploy.InboundHandler: This is the SwitchYard ServiceHandler and also implements JCA MessageEndpointFactory. This performs JCA Endpoint activation and set up the Endpoint proxy to pass to the ResourceAdapter.
- org.switchyard.component.jca.EndpointProxy: JCA Endpoint proxy implementation. This class sets up the common facilities like transaction, concurrency control, and ClassLoader for actual Endpoint implementation.
- org.switchyard.component.jca.endpoint.AbstractInflowEndpoint: Base class for the concrete JCA Endpoint implementation.
- org.switchyard.component.jca.endpoint.JMSEndpoint: A concrete implementation of JCA Endpoint for JMS messaging. We need to set the binding.jca/inboundInteraction/endpointClass configuration parameter as the name of this class to use.
Injecting ResourceAdapterRepository from AS7 service
Related Repository: core, release
I have added the addResourceDependency() method on org.switchyard.deploy.Component and inject ResourceAdapterRepository into JCAComponent via SwitchYardComponentService.
I'd appreciate if you let me know anything you have noticed. I will add testcases and maybe a quickstart until then.