View Source

The source code tree reflects the Petals ESB architecture, and is organized as following:
* the directory '{{root-parent}}' contains the root parent POM file used by all Petals projects, including product projects and integration test projects.
* the directory '{{parent}}' contains the parent POM file used by all Petals product projects. All projects included in the following directories depends on this parent POM.
* the directory '{{client-tools}}' contains Petals ESB clients stacks and is composed of following sub-projects:
** {{parent}}: The parent POM of all client tools,
** {{petals-admin}}: The Petals ESB administration API,
** {{petals-ant}}: The Petals ESB Ant's tasks,
** {{petals-cli}}: The Petals CLI (Command Line Interface),
** {{petals-jmx}}: The Petals ESB JMX API,
*** {{parent}}: The parent POM of the Petals ESB JMX API,
*** {{petals-jmx-api-api}}: The API of the Petals ESB JMX API
*** {{petals-jmx-api-impl}}: The JMX implementation of the Petals ESB JMX API
*** {{petals-jmx-api-mock}}: A mock implementation of the Petals ESB JMX API to be used in unit tests
** {{petals-cacti}}: Petals ESB client part for Cacti,
** {{petals-nagios}}: Petals ESB client part for Nagios
* the directory '{{components-sls}}' contains all stuff about Petals ESB JBI components: CDK, shared libraries and components:
** {{cdk}}: The Petals Component Development Kit,
** {{components}}: Petals ESB components,
*** {{petals-components-parent}}: Contains, among other things, the list of dependencies provided by the JBI classloader to the components.
** {{sls}}: Petals ESB shared libraries.
* the '{{container}}' is composed of following sub-projects:
** {{implementations}} : Projects associated to the implementation of mutable internal components:
*** {{registry}}: Contains different implementation of the registry:
**** {{petals-hazelcast-registry}}: A implementation of the registry based on a Petals/Hazelcast overlay.
*** {{transporter}}: Contains different implementation of the transporters:
*** {{petals-transporter-local-default}} : Futur project. The current implementation of the local transporter (perhaps new implementations could occur, they will name '{{petals-local-transporter-xxx}}')
*** {{petals-transporter-remote-nio}} : Futur project. The current implementation of the remote transporter using NIO
*** {{petals-transporter-remote-ws}} : A potential future implementation of the remote transporter using SOAP over HTTP(S) (ie: web-service)
** {{extensions}} : Contains all internal components that can be added to a Petals ESB node to add features:
*** {{petals-extensions-parent}}: Contains, among other things, the list of dependencies provided by the microkernel to the extensions.
*** {{petals-artifact-repository}}: The [Petals Artifact Repository|Petals ESB "Artifact repository"],
*** {{petals-autoloader}}: The [Petals Autoloader|Petals ESB "Autoloader"],
*** {{petals-ws-api}}: The [Petals WS API|Petals ESB "WS API"],
** {{petals-boostrap-launcher}}: There is defined what is available in the system classloader aka JBI classloader. Also contains the code first started by the JVM.
** {{petals-microkernel-api}}: The API of {{petals-microkernel}} to implement internal components and to implement Petals extensions
** {{petals-microkernel}}: The Petals microkernel containing the internal components that can't be implemented differently and the mechanisms to load implementation of other components and extensions
** {{petals-container-junit}}: Futur project. An assembly of the {{petals-microkernel}} and selected internal component implementations to run a Petals container into a JUnit test, *_without Petals µKernel extension, but with default logging extensions_*
** {{petals-container-studio}}: Futur project. An assembly of the {{petals-microkernel}} and selected internal component implementations to run a Petals container into the Petals Studio, *_without Petals µKernel extension, but with default logging extensions_*
** {{petals-container-default}}: An assembly of the {{petals-microkernel}} and selected internal component implementations to run a Petals as usual, *_without Petals µKernel extension, but with default logging extensions_*
** {{petals-launcher-api}}: The API to create Petals launcher, to start/stop a container
** {{petals-launcher-junit}}: Futur project. The JUnit API able to launch (start and stop) a container into a JUnit test
** {{petals-launcher-default}}: The existing launcher to start Petals on command line
** {{petals-esb-default-zip}}: The current assembly of Petals ESB, as ZIP file, to install to run Petals on command line, based on {{petals-container-default}} and *_including also all existing Petals µKernel extensions_*
** {{petals-esb-default-deb}}: The current assembly of Petals ESB, as Debian package, to install to run Petals on command line, based on {{petals-container-default}} and *_without extension that are provided by their own package_*.
** {{petals-esb-junit}}: Futur project. The JUnit API overriding {{petals-launcher-junit}} to launch a pre-configured Petals ESB (only one container running with the default value on local host), based on {{petals-container-junit}} *_without extension_*.