It seems there is no way to build bpmn files using DroolsCompilerAntTask and also the binary packages that are built in guvnor can't be used for deployment in another server.
I don't understand , how can a product be developed without even considering these basic facts of bundling and distribution of artifacts.
Am I asking too much ?
Forum, can you please pour in your views?
I think that recommended approach is to use Guvnor (for process draft and storage) and to download your process definitions into your application using KnowledgeAgent. KnowledgeAgent is able to update your process definitions on the fly - so it gives you flexibility. Other ways how to download processes from Guvnor include WebDAV and REST API.
So unfortunately I cannot help you with your one-time package deployment use case, but I would use the KnowledgeAgent for distribution of process definitions.
Hope that helps.
Thanks for your response.
This is not a one-time package deployment use case. Any BPM engine should have the ability to bundle thier contents (needless to say incrementally) so that it can be moved from dev - test - production just like the way we bundle a war /ear.
Consider the scenario where I develop a new process in my standalone area, unit test it, put on guvnor, export my repository from Guvnor.
- Should I give the repository xml export to modify the test / production environment?
- Is it a developer's responsibility to ensure that they have all the packages / assets as in a production environment, before doing any new process so that they can do a repository export which will contain all the files?
Even though we talk of collaborative development by BA creating the first draft of process in Guvnor, then developer picking it up, it never happen in a LIVE production environment?
I have described the possibilites how to get assets from Guvnor. Unfortunately I cannot help you with migration from one Guvnor repository to another. What I am saying are only my thoughts, so perhaps someone more experienced can correct me.
Regarding to your current situation:
- you can use single Guvnor repository and adapt your requirements to use single repository. For example you can load only verified processes to your production, you can use one Guvnor for both drafts and production processes (KnowledgeAgent can connect to Guvnor both from testing app and from production app)
- you can use .PKG package files for your deployments, but I have not tried that, so cannot say (I don't know if it's possible to upload PKG in Guvnor, but it should be possible to use it for deployment). KnowledgeAgent uses .PKG when downloading/updating definitions from Guvnor. If you want to try to deploy .PKG take a look here for inspiration: https://github.com/droolsjbpm/drools/commit/6b24680265bb565e80bf7efa3d4c6bb7c5b793db
- this functionality will be improved in jBPM 6 (for example there will be git backend for repository)
Sorry if this information won't help you.
Thanks again for your response.
As far as I have searched .PKG files cannot be uploaded to Guvnor, I would be more than happy if I could just do that. I really don't want to migrate my entire repository from dev to test environment for testing a single process that got modified.
Also I don't instantiate my knowledge agents inside my application, I let the BPM engine run as a seperate server which handles all these and I call the engine as and when required.
We used to have a nice jar file kind of packaging in jbpm 3; Lombardi and oracle has similar packaging concepts. I understand products can differ, and i'm not doing a comparison , but these are basic functionalities.