SVN revision 339 represents the initial work on this issue. There is still more to do, but this is an initial check-in.
Roo now loads with a roo.home system property (the value of which is hereinafter referred to as $ROO_HOME). The $ROO_HOME contains two new important directories, $ROO_HOME/add-ons and $ROO_HOME/work. Users install an add-on by placing its distribution ZIP in $ROO_HOME/add-ons and then performing a "addon cleanup" command. This will cause the relevant JARs in the ZIP to be extracted into $ROO_HOME/work, also taking care to remove files as needed from $ROO_HOME/work. A user can delete the contents of $ROO_HOME/work at any time and recover them through "addon cleanup". A user should generally not edit the contents of $ROO_HOME/work as the next time "addon cleanup" is run the directory will be amended accordingly. Users are free to add or remove ZIP files from $ROO_HOME/add-ons at their discretion, although changes will have no effect until "addon cleanup" is executed.
The relevant shell commands for end users to use are:
- addon cleanup: Manages $ROO_HOME/work as per the ZIPs in $ROO_HOME/add-ons. Automatically run whenever an add-on is installed or uninstalled via the Roo shell commands. If a change is made to the $ROO_HOME/work directory, Roo will automatically exit and restart. This ensures the new classpath is used.
- addon install --url file:/some/file.zip: The URL can also be HTTP. It will download the ZIP and install the ZIP into $ROO_HOME/add-ons. It will then launch "addon cleanup" to implement the change. Appropriate verification steps are performed to ensure ZIP file integrity and Roo add-on compliance.
- addon uninstall --pattern *.zip: The pattern can be any file specification that matches zero or more files in $ROO_HOME/add-ons. The add-ons will be removed and "addon cleanup" will execute.
- addon list: Shows the *.zip in $ROO_HOME/add-ons.
Those wishing to develop an add-on are encouraged to try this command from a new directory:
The above will create a fresh add-on, complete with a .ZIP ready to install into a user's environment with "addon install --url".
ROO DEVELOPERS PLEASE NOTE: Users running roo-dev.sh please note the bootstrap/roo-mvn shell script has been renamed to bootstrap/roo-dev in the interests of consistency with the symbolic link name. Please review /readme.txt for clarification of the new symbolic link creation instructions.