Incorporer Camunda dans une application Java existante
J'ai tiré la dernière image de Camunda et j'ai exécuté Camunda dans son propre conteneur de docker. J'ai un dmn téléchargé sur Camunda Cockpit et je peux passer des appels de repos pour obtenir des données de la table de décision que j'ai téléchargée sur le cockpit de Camunda. Cependant, je ne veux pas dépendre du fonctionnement indépendant de Camunda. J'ai une énorme application existante (un micro-service fonctionnant dans son propre conteneur docker) et je souhaite intégrer Camunda dans mon micro-service (qui utilise Osgi, Java, Docker, Maven, etc.). Quelqu'un peut-il me guider s'il vous plaît?
Réponses
Pour un micro-service Spring Boot, vous pouvez ajouter les fichiers de démarrage et de configuration requis à votre déploiement et cela devrait être prêt. Voir par exemplehttps://start.camunda.com/pour obtenir tout ce dont vous avez besoin. Vous pouvez ensuite accéder à Camunda via l'API Java ou REST (si starter était inclus).
Si vous n'exécutez pas dans un environnement Spring Boot, la manière de démarrer Camunda peut différer. En Java simple, sans aucune utilisation de conteneur, ce serait le long de ces lignes:
ProcessEngine processEngine = ProcessEngineConfiguration
.createStandaloneProcessEngineConfiguration()
.setJdbcUrl("jdbc:h2:./camunda-db/process-engine;DB_CLOSE_DELAY=1000")
.setDatabaseSchemaUpdate("true")
.setJobExecutorActivate(true)
.buildProcessEngine();
processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("myProcess.bpmn")
.deploy();
ProcessInstance pi = processEngine.getRuntimeService()
.startProcessInstanceByKey("myProcess");
Dans un environnement Spring standard, vous amorceriez le moteur en chargeant le contexte:
ClassPathXmlApplicationContext applicationContext =
new ClassPathXmlApplicationContext("/spring-context.xml");
ProcessEngine processEngine = (ProcessEngine) applicationContext.getBean("processEngine");
processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("myProcess.bpmn")
.deploy();
Regarde aussi: https://docs.camunda.org/manual/latest/user-guide/process-engine/process-engine-bootstrapping/
https://docs.camunda.org/get-started/quick-start/install/
Mise à jour basée sur un commentaire:
Le support Camunda OSGI est décrit ici: https://github.com/camunda/camunda-bpm-platform-osgi
Vous devrez mettre à niveau le projet vers une version plus récente, ce qui n'est probablement pas un effort énorme car la version est restée compatible.
(Je vous encourage également à envisager de migrer le micro service vers Spring Boot à la place. Complexité, connaissances disponibles sur le marché, durée de vie du support, ..)