Community

CXF jms integration

reply from Richard Opalka in JBoss Web Services Development - View the full discussion

Abbreviations:

* CXF - CXF integration layer

* ASIL - JBossWS Application Server Integration Layer

* SPI - JBossWS SPI - the only dependency reused cross different JBossWS abstractions

* DA - JBossWS Deployment Aspect

* UMDM - JBossWS Universal Meta Data Model

* JMS MD - AS JMS Meta Data

* AS API - compilation dependency on AS API classes

* IAC - in any case

 

Hi Jim,

 

   first approach is fundamentally wrong because:

* it would violate our abstractions

* it wouldn't reuse existing code/architecture

 

We cannot introduce JBossWSCXF*Deployers because we would introduce CXF -> AS API dependency. Only allowed dependency

is CXF -> SPI. This is because AS architecture can/will change over time and we want to be AS agnostic IAC.

 

Yes, the solution 2 is little bit more complex one but we should always follow the golden programmers rule:

Either do it properly or don't do it at all (otherwise our code would become unmaintanable in the future).


Here are my suggestions how we should proceed with approach 2

(ensures proper abstractions, dependencies and code/architecture reuse):

* extend our UMDM (located in SPI) to provide JMS endpoint abstractions

* extend our DA framework to distinguish DA aspects intended to create web based endpoints and jms based endpoints

* update our ASIL (concretely WSDeploymentAspectDeployer) to distinguish between Web DAs and JMS DAs

* implement CXF DA that will map jboss-cxf.xml MD to our UMDM (ensures CXF -> SPI dependency)

* implement ASIL DA that will create JMS MD from our UMDM (ensures ASIL -> SPI dependency)

* implement CXF DA that will register plain JMS endpoints with CXF (ensures CXF -> SPI dependency)

Reply to this message by going to Community

Start a new discussion in JBoss Web Services Development at Community