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
- is depended on by
-
ROO-788 Project Addon Template out of date
-
- Closed
-
- is related to
-
ROO-841 Remove Subversion-related version information from shell messages
-
- Closed
-
-
ROO-750 Roo Addon Project template does not work anymore after migration to Felix
-
- Closed
-
-
ROO-1052 Develop OSGi Projects Applications with Spring Roo
-
- Open
-
-
ROO-1598 Add "osgi start" command to install and start a bundle easily
-
- Resolved
-
-
ROO-1600 Rename "felix shell" command to "osgi framework command" so all low-level OSGi commands share the same command name prefix
-
- Resolved
-
-
ROO-840 Update launch scripts and release build assembly procedure
-
- Closed
-
-
ROO-849 roo-dev should allow access from jvisualvm for profiling
-
- Closed
-
- supersedes
-
ROO-264 Automatically detect old Roo annotation JAR versions and upgrade them
-
- Closed
-