StephenOTT / camunda-deployment-maven-plugin

A maven plugin that allows REST API based deployments to a Camunda BPM instance
https://forum.camunda.org/t/camunda-deployment-maven-plugin-rest-api/8391?u=stephenott
4 stars 3 forks source link

How is target/camunda-deployment-files-from-source generated #8

Open berndgoetz opened 5 years ago

berndgoetz commented 5 years ago

Hi Stephen, thanks for the Maven plugin. We're currently test driving it. But we don't get very far. We actually don't know how the target/camunda-deployment-files-from-source directory is being generated. Probably a very basic Camunda newbie question... any pointers are highly appreciated.

StephenOTT commented 5 years ago

Hi

So that folder you would populate with your files as needed. Typically you would do something like execute some tests and if the tests pass it will save your Bpmn and related files into the deployment files folder in the target folder. You can configure the specific directory, so if you wanted it to be outside of target, you could do that as well.

Can you explain a bit of your use case on how you want to use the plugin?

berndgoetz commented 5 years ago

Hi Stephen, thanks for the quick answer. I understand. We actually wanted to use your plugin to deploy process definition AND Java code into a Camunda instance. But we today realized that this is not the intention of your plugin, and that it's also not the intention of Camunda. So we're thinking about another deployment model - mainly separating out a dedicated process into its own deplyoment, including process model and Java code, then using the async activity model. Abhishek presents the approach here. I'm still a bit surprised that it's not possible to deploy a process including Java code into a remote Camunda instance, but I also understand in the meantime, that this would be quite hard to achieve, as it would need some kind of OSGI runtime to separate the different process deployment packages.

StephenOTT commented 5 years ago

@berndgoetz well it depends on "Java Code"... So you could use this type of plugin to deploy Groovy/Scripts. But its nots the Jar/java classes.

Another variation I think would be better if you really wanted some dynamic deployment capabilities is to use Vertx.io, and use the ability yo deploy "verticles". With this setup you can deploy verticles and tear them down on demand. You can even load your verticles from remote repositories as .zip files.

https://github.com/StephenOTT/camunda-vertx-plugin

https://github.com/StephenOTT/camunda-vertx-springboot

https://github.com/StephenOTT/vertx-yaml-config-verticle-deployment

Take a look at:

http://vertx.io/docs/vertx-service-factory/java/

With this you can deploy your verticles in a classpath isolation, and then use the Event Bus in a Generic delegate to do whatever you want.

TLDR: Vertx will give you java code deployment capabilities