If you don't want to stop the process engine you need to have two different versions of the process into two different version of the project (with different Versions in their maven GAV). That should answer all your questions about that.
If i didn't changed project version but just changed bpmn's version and deployed it; so this new bpmn will be used automatically (from next time) by engine?
I deployed my project and bpmn using kie workbench.
But if i want only some change in bpmn, and that i achieved by changing bpmn's xml. So how can i deploy this new bpmn only?
i have read of possible ways like
1) using git, push changes to repository and use kie workbench to deploy new project/bpmn
2) maven in eclipse will build kjar. But How to deploy this to jBPM?
3) is it necessary to build kjar again for any change in bpmn?
3) is there any other way to deploy single bpmn easily?
You need to change the project version as well, if not the new version of the process will not be displayed in the process definition list.
If you change both, the project version and the process version it will work fine. You will see two process definitions in the process definition list, with two different versions.
I would recommend using KIE Workbench to deploy new versions of the projects. And yes it is necessary to build the kjar to do a deployment. Remember that this are maven artifacts and the runtime manager uses that to resolve the versions. Based on that all the maven behaviors are the ones that you should expect.
Thanks for reply.
In our case, we cant deploy KIE-WB.
So is there any way to deploy new bpmn/kjar through code? DeploymentService?
So you can do it via the APIs, yes that possible as well.
But again you need to compile and install the kjar in the maven repository with maven only.. And then create a new runtime environment with the runtime manager.