cancel
Showing results for 
Search instead for 
Did you mean: 

Integrating Activiti into OSGi Environment

timo_rohrberg
Champ in-the-making
Champ in-the-making
Hello everybody,

we are using Activiti 5.19.0.1 within an Eclipse Equinox OSGi environment. We do so by consuming the activiti-engine bundle downloaded from Maven Central within one of our bundles. In that bundle, we then create a ProcessEngineConfiguration like this in the bundle's Activator:

final ProcessEngineConfiguration configuration = ProcessEngineConfiguration
    .createProcessEngineConfigurationFromInputStream( new FileInputStream( "activiti.cfg.xml" ), "WorkflowEngineConfiguration" );

However, this does not work since the activiti framework uses Spring Beans to load the configuration from the provided activiti.cfg.xml configuration file. We managed to get the file loaded by the Spring Beans framework, but when it tries to resolve the org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration class, it fails with a classloading problem as it delegates the classloading to the org.eclipse.osgi.internal.framework.ContextFinder implementation of a classloader. That further delegates the actual classloading to the classloader instance of the Spring Beans bundle which of course does not see the stated StandaloneProcessEngineConfiguration class of the activiti-engine bundle. We would have to declare a dependency from the Spring Beans bundle to the activit-engine bundle which is of course not desired.

To me the problem seems to be the general problem of integrating spring beans into OSGi which is almost impossible since the Spring framework dropped OSGi-support. I think Activiti could provide an additional way of loading its configuration from a file without relying on Spring Beans. That would make it much simpler to integrate Activiti into an OSGi context.

Do you guys have any hints how to integrate Activiti into an OSGi-based application?

We appreciate any comment, hint, suggestion, …

Best regards
Timo Rohrberg
1 REPLY 1

trademak
Star Contributor
Star Contributor
Hi Timo,

Did you have a look at the activiti-osgi module? That should make it easier to use Activiti in an OSGi environment.

Best regards,