It sounds like a very good idea and a very nice RHQ use case. Automation for the win
There is no Maven plugin to generate bundles but you're right, you can create an assembly file to create the bundle archive (which is just a zip file).
As for the process of uploading/deploying the bundle, I'd recommend you install the RHQ CLI on your Jenkins server:
- RHQ CLI Installation - RHQ - Project Documentation Editor
- Running the RHQ CLI - RHQ - Project Documentation Editor
Then in a post-build step you could run a CLI script to do whatever you want with your freshly built bundle.
Feel free to ask more questions in this thread if you need more details on the setup or CLI script development.
Thanks Thomas, this is exactly what I did and that works like a charm. One thing that I noticed not directly related with bundle deployment but with purge operation - when bundle is deployed and purge operation is invoked it will actually clean the content on the server (JBoss) but application will be still running. I guess it's related to the JBoss marker files (app.war.deployed) that stays there. Anyway I guess I could include that deployed file into the bundle as well to overcome that issue...
Once again thanks for your thoughts
I'm glad to hear the bundle automation works nice. As for the deployment scanner issue, did you try to change the value of auto-deploy-zipped ? See Deployment Scanner configuration - JBoss AS 7.1 - Project Documentation Editor
Thomas, the issue was with the archive defined in my recipe that by default extraxts the archive so I changed the exploded=false and now it works like a charm. Application is deployed with scripts and in case purge operation is invoked it removes the content from resources and application servers undeploys the application properly.
Now it's time to move forward and make use of archive url in the recipe to integrate with nexus to reduce size of the bundles stored in RHQ
btw is there any way to schedule deploy bundle operation instead of doing it directly?
Unfortunately scheduling bundle deployment is still on the list of to-dos. Via the GUI it is only possibly to schedule deployment for immediate execution. The best option I know of is to perform the work via scripts (Or a remote client app) and run those scripts via some external scheduling mechanism like cron. Another approach sometimes useful is to trigger deployments via alerting, using Notifications that run CLI scripts.