All Projects → camunda-community-hub → camunda-bpm-platform-osgi

camunda-community-hub / camunda-bpm-platform-osgi

Licence: Apache-2.0 license
OSGi integration for Camunda Platform 7

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to camunda-bpm-platform-osgi

Django Lb Workflow
Reusable workflow library for Django
Stars: ✭ 153 (+665%)
Mutual labels:  bpmn
Workflow
基于Activiti5 定制化中国式工作流系统,定制化的流程设计器,添加自定义属性。
Stars: ✭ 226 (+1030%)
Mutual labels:  bpmn
plg
A Business Processes and Logs Generator
Stars: ✭ 30 (+50%)
Mutual labels:  bpmn
Viewflow
Reusable workflow library for Django
Stars: ✭ 2,136 (+10580%)
Mutual labels:  bpmn
Imixs Workflow
The open source technology for business process management
Stars: ✭ 218 (+990%)
Mutual labels:  bpmn
awesome-camunda
a curated list of awesome Camunda BPM projects, libraries, tools, documentations, forum posts, etc.
Stars: ✭ 93 (+365%)
Mutual labels:  bpmn
Orienteer
Business Application Platform
Stars: ✭ 128 (+540%)
Mutual labels:  bpmn
bpmn
BPMN diagrams in R
Stars: ✭ 16 (-20%)
Mutual labels:  bpmn
Bpmn Moddle
Read and write BPMN 2.0 XML from JavaScript.
Stars: ✭ 221 (+1005%)
Mutual labels:  bpmn
camunda-kafka-polling-client
Stream your process history to Kafka
Stars: ✭ 28 (+40%)
Mutual labels:  bpmn
Bpe
💠 BPE: Business Process Engine
Stars: ✭ 178 (+790%)
Mutual labels:  bpmn
Zeebe Modeler
Desktop Application for modeling Zeebe Workflows with BPMN
Stars: ✭ 198 (+890%)
Mutual labels:  bpmn
activiti-examples
Alfresco Process Services powered by Activiti Examples.
Stars: ✭ 58 (+190%)
Mutual labels:  bpmn
Camunda Bpm Platform
Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Spring, Spring Boot, CDI.
Stars: ✭ 2,390 (+11850%)
Mutual labels:  bpmn
camunda-bpm-migration
Fluent Java API for Camunda Platform 7 process instance migration
Stars: ✭ 18 (-10%)
Mutual labels:  bpmn
Zeebe
Distributed Workflow Engine for Microservices Orchestration
Stars: ✭ 2,165 (+10725%)
Mutual labels:  bpmn
bpmn-spec
A tool to run tests for BPMN processes on Zeebe
Stars: ✭ 28 (+40%)
Mutual labels:  bpmn
flow
企业级流程中心(基于flowable和bpmn.js封装的流程引擎,采用Springboot,Mybatis-plus, Ehcache, Shiro 等框架技术,前端采用Vue3&Antd,Vben)
Stars: ✭ 486 (+2330%)
Mutual labels:  bpmn
atomos
Atomos - A Java Module Framework using OSGi Connect
Stars: ✭ 12 (-40%)
Mutual labels:  osgi
camunda-helm
Camunda public Kubernetes Helm repo and charts
Stars: ✭ 33 (+65%)
Mutual labels:  camunda-platform-7

OSGi integration for Camunda Platform 7

Build Status Community Extension Badge Lifecycle: Abandoned Badge Lifecycle: Needs Maintainer Compatible with: Camunda Platform 7

Camunda Platform community extension providing support for Camunda Platform inside OSGi containers

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: camunda BPM Platform OSGi
Bundle-SymbolicName: org.camunda.bpm.extension.osgi
Bundle-Version: 
Export-Package: [...]
Import-Package: [...]

Project structure

Every module is supposed to fullfil a single purpose and to be used independently of the others. Three modules are an exception from this rule, namely

  • camunda-bpm-karaf-assembly, which is used to provide a Karaf distribution that you can download here
  • camunda-bpm-osgi-itest, which contains all the integration tests
  • camunda-bpm-osgi, which contains some core components and is the only one required by all the modules

Compatability Matrix

This matrix shows the compatibilities of the different camunda OSGi version and camunda BPM platform versions. The information is based on the MANIFEST files and not directly based on binary compatibility.

camunda OSGi // camunda BPM 7.1.x 7.2.x 7.3.x 7.4.x 7.5.x 7.6.x 7.7.x 7.8.x 7.9.x 7.10.x
1.0.0 X
1.1.0 X
1.2.0 X
1.3.0 X
2.0.0 X
3.0.0 X
4.x.0 X
5.0.0 X
5.1.0 X X X X X

Starting with version 5.1.0 the versioning scheme changed slightly. Like the 1.x.0 version, an update of the camunda BPM platform is back to being a minor version increase. Additionally, as long as there are no binary incompatibilities camunda OSGi is kept backwards compatible as much as possible.

For more detailed descriptions please check the release notes of the individual releases.

Get started

Part 1 starting the camunda BPM OSGi bundle

Before you start you have to install all the required bundles into your OSGi runtime. To see a list of the required bundles you can take a look at the Apache Karaf feature.xml. It contains a list of the required dependencies and a list containing all the optional dependencies, too.

After you've done that you can drop the camunda-bpm-osgi bundle into the runtime. It should then move to the resolved state and you could start it.

If you prefer to use Apache Karaf as your runtime you can use the feature.xml directly. The guide can be found here.

Part 2 creating a process engine

After you successfully deployed the camunda BPM OSGi bundle your next step is to create a ProcessEngine.

Using the ProcessEngineFactory

To help a little bit with the creating of a process engine you can use the ProcessEngineFactory class. You'll have to pass a ProcessEngineConfiguration object and the current bundle to it by calling the setBundle() and setProcessEngineConfiguration() methods. Finally you'll have to call init(). After that you may call getObject() to get a reference to the process engine. Please be aware that the order is mandatory or else getObject() will return null.

Please note also, that the process engine won't be exported automatically. If you want to share it, you can do that by yourself.

If you want to use a special ELResolver (see part 4) you'll have to use the ProcessEngineFactoryWithELResolver.

Using Blueprint

See camunda BPM OSGi - Blueprint Wrapper

Old school

If you wanna stay old school and use core OSGi you can do that, too. Import the package org.camunda.bpm.engine and org.camunda.bpm.engine.impl.cfg and instantiate your own StandaloneProcessEngineConfiguration.

Using the ProcessApplication API

See camunda BPMN OSGi - Process Application Integration

Using the ConfigurationAdmin service

See camunda BPM OSGi ConfigAdmin.

Part 3 Deploying process definitions

After you created a ProcessEngine you can start to deploy process definitions. The following steps only work when you exported a ProcessEngine as OSGi service.

Inside a bundle

When you deploy a bundle containing a process definition the process can be automatically added to the ProcessEngine. For the process definition to be found, you'll have to do one of the following things:

  • place it in the OSGI-INF/processes/ directory
  • set the "Process-Definitions" header in the MANIFEST.MF and let it point to a file or directory

If you reference any JavaDelegates or ActivityBehaviors from within your process defniition please take a look at Part 4

ProcessApplication API

See camunda BPMN OSGi - Process Application Integration

Part 4 Referencing inside processes

With the BlueprintELResolver

See camunda BPM OSGi - Blueprint Wrapper

With the OSGiELResolver

The OSGiELResolver uses a three step resolution to match expressions with classes

Step 1

The first step uses the LDAP filter property. You have to export a service with the filter property "processExpression=". The OSGiELResolver then matches the expression with the filter.

Step 2

If the LDAP search doesn't suceed the ELResolver will search the Service Registry for JavaDelegates. Then the class name will be compared to the expression. The comparison is similiar to the default CDI bean names. That means the expression has to match the class name starting with a lowercase character, e.g. org.foo.bar.MyClass would match "${myClass}".

Step 3

The third steps works likes the second one, only that it searches for exported ActivityBehaviours.

ProcessApplication API

See camunda BPMN OSGi - Process Application Integration

OSGi Event Bridge

See camunda BPM OSGi - Eventing API.

Resources

Roadmap

a short list of things that yet need to be done (until we organize it elsewhere ;) )

todo

  • camunda webapp WAB (cockpit, tasklist, admin)
  • create example for configuring engine using PAX-CDI

done

  • QA, integration tests (resolve engine-bundle)
  • example for configuring engine using Blueprint

Maintainers:

License

Apache License, Version 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].