Spring Roo
  1. Spring Roo
  2. ROO-287

Add third-party add-on creation and management infrastructure

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.0.0.RC3
    • Component/s: @ CORE
    • Labels:
      None

      Description

      Support third-party add-ons, including an add-on creating add-on to assist users creating add-ons.

        Activity

        Hide
        Ben Alex added a comment -

        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:

        • script addon.roo

        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.

        Show
        Ben Alex added a comment - 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: script addon.roo 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.
        Hide
        Ben Alex added a comment -

        SVN rev 342 contains some abstractins so System.exit() need not be called from an STS-hosted shell.

        Show
        Ben Alex added a comment - SVN rev 342 contains some abstractins so System.exit() need not be called from an STS-hosted shell.
        Hide
        Ben Alex added a comment -

        SVN rev 346 adds a "perform assembly" command to make it easier to develop add-ons.

        Show
        Ben Alex added a comment - SVN rev 346 adds a "perform assembly" command to make it easier to develop add-ons.

          People

          • Assignee:
            Ben Alex
            Reporter:
            Ben Alex
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: