I have been wondering about the possible restructuring of the ServiceMix
code tree and build to enable cleaner separation,  smaller/quicker builds,
and the ability to separate out releases.

The idea has been bounced around a bit on IRC and I wanted to put it out
there for peoples thoughts.

The basic idea is to break the current single build into three discreet
projects,  these would be :

ServiceMix JBI Container
ServiceMix Components
ServiceMix Tooling

The first would be purely the JBI Container with no Service Engines or
Components and no tooling (it would also not require any ServiceMix tooling
to build.  Thus it would consist of the following projects:

servicemix-core
servicemix-jbi
servicemix-services

This would be packaged with the assembly to create a pure JBI server without
any components.

The second would be the JBI Maven 2 Tooling that is available,  this would
also include the archetypes that we are currently putting in place.  These
are all currently Maven2 plugins and have a dependency on the ServiceMix
Core Container and therefore should be built second.  It would consist of
the following projects:

jbi-maven-plugin
servicemix-binding-component
servicemix-http-consumer-service-unit
servicemix-http-provider-service-unit
servicemix-jms-consumer-service-unit
servicemix-jms-provider-service-unit
servicemix-jsr181-wsdl-first-service-unit
servicemix-service-assembly
servicemix-service-engine
servicemix-service-unit
servicemix-shared-library

The final project would be the ServiceMix JBI Components/Shared Libraries
which is dependent on both the Core and the Tooling,  this would contain:

servicemix-beanflow
servicemix-bpe
servicemix-components
servicemix-common
servicemix-eip
servicemix-http
servicemix-jms
servicemix-jsr181
servicemix-lwcontainer
servicemix-sca
servicemix-soap
servicemix-wsn2005

The projects that would be left that need consideration would be :

servicemix-web
servicemix-console

Also I would like to bring up the idea of updating the Tooling versions so
that they are in sync with the Core and Components (ie
3.0-incubating-SNAPSHOT). Currently we have a situation where we often hold
both the ServiceMix version and the tooling version though I would think it
would be easier to make them the same version.

Philip

Reply via email to