Uploaded image for project: 'Spring Roo'
  1. Spring Roo
  2. ROO-728

Rebuild Roo and its add-ons using OSGi infrastructure

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    XMLWordPrintable

Details

    • New Feature
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 1.1.0.M1
    • @ CORE
    • None

    Description

      Roo 1.0.x was implemented as a single classloader. This required restarting the JVM to accommodate new add-on installation.

      As more and more people have started building Roo add-ons, more complex add-on requirements have emerged. These include external JAR dependencies such as JDBC drivers (eg ROO-435). Further, users have a need to install add-ons from remote repositories without needing to provide a full URL to every add-on.

      In addition, many people would like to improve existing functionality in Roo by using strategy or event patterns with existing add-ons. There was no feasible mechanism in Roo 1.0.x to discover collaborators that may be available, particularly if multiple collaborators were available and these changed at runtime.

      OSGi provides a comprehensive solution to the above requirements and others emerging for Roo. This task is therefore to do the bare minimum required to shift Roo to an OSGi-based foundation. Substantial refactoring and further optimisations of the Roo code base remain possible beyond the scope of this task, however this task will allow Roo to load and existing base add-ons execute successfully in a fully OSGi-based model.

      At an implementation level we will be using Apache Felix with its SCR and OBR support as much as possible. This provides a simple extensibility mechanism for remote add-on repositories to develop.

      Attachments

        Issue Links

          Activity

            People

              balex Ben Alex
              balex Ben Alex
              Archiver:
              tmarshall Trevor Marshall

              Dates

                Created:
                Updated:
                Resolved:
                Archived: