IntroductionThe following diagrams aim to describe the composition of the Fractal components of Petals ESB. By naming convention, if not specified, the default name of the interface 'server' is "service".
|
Table of contents
Contributors
No contributors found for: authors on selected page(s)
|
Fractal tips
Composite startup
The sub-components of a Fractal composite are started sequentially, so you MUST declare the sub-component in the right order in the Fractal ADL.
Diagrams
Each Fractal diagram is drawn using the following legend:

Petals Composite

System Composite

Container Composite
A component SharedLibraryLifeCycleImpl is instantiated each time a JBI shared library is installed into the JBI container. It is dynamically created.
A component ComponentLifeCycleImpl and Installer is instantiated each time a JBI component is installed into the JBI container. It is dynamically created.
A component ServiceAssemblyLifeCycleImpl is instantiated each time a JBI service assembly is deployed into the JBI container. It is dynamically created.

JBI Management Composite

JBI Messaging Composite

Communication Composite

Transporter Composite

NioTransportProtocol

ExtensionsManager composite
Each extension is instantiated dynamically when Petals ESB is started according to the content of the Petals ESB classloader.

Extensions
Autoloader composite

Artifact repository composite

WsApi composite

Known problems
Deadlock when starting a composite
Symptoms:
The startup of Petals blocks into the startup of the Fractal composite into the thread "main" with a similar thread dump:
"main" prio=10 tid=0x00007f83d4007800 nid=0x981 in Object.wait() [0x00007f83db58f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000c038a388> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0) at java.lang.Object.wait(Object.java:485) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.incrementFcInvocationCounter(BasicControllerMixin.java:4216) at org.objectweb.fractal.julia.generated.Cec3b28ec_0.startScanner(INTERCEPTOR[DirectoryScanner]) - locked <0x00000000c038a388> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0) at org.objectweb.fractal.julia.generated.Cc2597297_0.startScanner(INTERFACE[DirectoryScanner]) at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.start(AutoLoaderServiceImpl.java:221) at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.startFc(AutoLoaderServiceImpl.java) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcContentState(BasicControllerMixin.java:8128) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcStarted(BasicControllerMixin.java:8068) - locked <0x00000000c038adc8> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0) at org.objectweb.fractal.julia.generated.C18c4c884_0.setFcStarted(INTERFACE[LifeCycleCoordinator]) at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc$$0(BasicControllerMixin.java:4097) at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc(BasicControllerMixin.java:5095) at org.objectweb.fractal.julia.generated.C18c4c884_0.startFc(INTERFACE[LifeCycleCoordinator]) at org.ow2.petals.kernel.server.FractalHelper.startComponent(FractalHelper.java:356) at org.ow2.petals.kernel.server.PetalsServerImpl.startPetalsComposite(PetalsServerImpl.java:412) at org.ow2.petals.kernel.server.PetalsServerImpl.start(PetalsServerImpl.java:186) at org.ow2.petals.launcher.PetalsLauncher.launchPetalsServer(PetalsLauncher.java:154) at org.ow2.petals.launcher.PetalsLauncher.main(PetalsLauncher.java:391)
Solution:
Update the ADL of the Fractal composite to set the sub-components in the right order.