The DSB Architecture is built on top of OW2 Petals ESB and so it reuses the Fractal component model as dependency injection framework. This implies several things and best practices:
- Create clean APIs (yes this should be always true!)
- Annotate implementation with Fractal annotations
- Add some lifecycle operations in implementations (start, stop)
- Be careful of what is done in lifecycle operations. For example, a call to a component which is not started can raise a NPE
- Be aware of the Fractal ADL, ie the description language which will be used to inject dependencies
In order to ease the development, the final distribution mechanism has been simplified to be able to debug quickly Fracal ADL problems. When Petals ESB embeds the Fractal ADL files in the final server.jar file which is in fact the bootstrap JAR, the DSB does not embed these files at all. These files are available in the distribution folder under the fractal directory. Why? Imagine you did not bind the right service or you forgot to bind some, in a standard Petals Distribution, you will have to unpack the server.jar, modify Fractal files, repack (this is the better case, some recompile all...). Now you just have to modify files under the fractal folder of your distribution and relaunch the DSB startup script.