I finally added some wiki pages around maven-cloudiq-plugin. And I will be continually adding to the wiki in the days to come. But I thought I would take a moment to give some background on the plugin and describe some of the goals.
maven-cloudiq-plugin currently started off as a simple way to integrate the creation of CloudIQ artifacts (fabric and far files) while building a Maven project on the Mac OS. As you may know, you create CloudIQ artifacts using fabric_pkg tool.
But, currently, there is no fabric_pkg for the Mac OS X. Therefore to create a fabric or far file you end up having to do the following:
- SCP all your files – fabric/far resources, primary artifact (jar, war, etc.), dependent libraries, scripts, etc. – to a remote host that has Appistry CloudIQ installed
- SSH to the above remote host and run fabric_pkg to create the fabric or far artifact
- Deploy the fabric / far artifact to the cloud
Too time-consuming in my opinion! And you end up repeating these steps over and over again. DRY principle, anyone?
Heck if you are developing (on Windows or Linux) a Java application, installation package or service that get packaged as a Fabric or Far file and are using Maven as a build tool, to create the actual fabric or far file, you have to manually run fabric_pkg. Still a pain.
Since I use Maven a heck lot, I had to eliminate some of the repeated tasks. And thus the maven-cloudiq-plugin came forth. The primary objective of which was to integrate and make easy the building of CloudIQ artifacts while building a Maven project.
Enough with the origins. What can we expect moving forward?
Although I won’t go into every single enhancement or new feature here (I haven’t thought about everything; that’s where you could contribute), I will list out some of the pressing issues that would greatly improve the usability of the plugin.
Some enhancements and features:
- Auto-increment the fabric or far version in the application descriptors by looking up the latest version running in the cloud. Also, allow for manual override by user. Currently, the user has to update the application descriptors manually.
- Auto-creation of Fabric and Far application descriptors. Currently, the user has to create these application descriptors by hand.
- Auto-discover the appropriate CloudIQ artifact (.fabric or .far) that needs to be generated. Currently, the default is fabric. This is configurable though via the appExtension parameter.
- Ability to deploy CloudIQ artifacts (and files) to clouds.
- Ability to specify the list of dependent jars required at fabric package time. Currently, the entire kitchen sink of Maven dependencies get downloaded even though only a handful of jars gets included in the fabric file
- Capture remote fabric_pkg output & error stream and log it out to the standard output during the Maven build.
So, above are some features/enhancements that need working on along with unit tests.
Interested enough to contribute?
If you are interested in contributing to the enhancements, features, and bug-fixes and making the maven-cloudiq-plugin robust and easy to use, feel free to clone the repository, send/attach code snippets, add additional enhancement/feature requests, etc.