up to all Development Components for VIVO 1.5
Component description
Work to evaluate and prepare for a modularity framework for Vitro.
This framework should facilitate the creation and use of optional features in Vitro (extensions),
and the easy configuration of Vitro to use alternate implementation of core functionality (modules)
at configuration time. The framework will be based on OSGi.
Scope of the component for v1.5
In scope:
- Modules and extensions that are:
- part of the VIVO (Vitro) webapp under Tomcat,
- running in the JVM,
- written in any language that executes as Java bytecode (JRuby, Scala, Groovy, etc.)
Out of scope:
- Connecting to external applications/processes (Drupal, Facebook, etc.)
Design work needed for the component
This framework needs to be designed from the ground up. How will we introduce OSGi into Vitro, and Vitro into OSGi? How should Vitro be segmented into bundles and services?
In order to prevent this change from being debilitating to developers, we also will need to research and document the processes they will use for developing, testing, and debugging in this new way of working.
Can this component be addressed in stages?
This needs to progress along three parallel tracks: learning, implementing, and documenting.
Learning
|
Task |
Depends On |
Time |
---|---|---|---|
L1 |
Learning about OSGi
|
|
10 days (1 person spending 4 days, 2 people spending 3 days each) |
Implementing
|
Task |
Depends On |
Time |
---|---|---|---|
I1 |
Install and demonstrate a minimal implementation of Sling Launchpad |
|
3 days |
I2 |
Modify Vitro to include 1 OSGi-based module (not a servlet)
|
L1, I1 |
5 days |
I3 |
Modify Vitro to include 1 OSGi-based extension (servlet and accessories)
|
L1, I1 |
5 days |
I4 |
Create a list of candidates for modularity
|
L1 |
2 days |
I5 |
Adapt the build process to accommodate modules and extensions. |
L1, I2, I3 |
5 days |
I6 |
Re-assess
|
L1, I1, I2, I3, I4 |
6 days |
Documenting
|
Task |
Depends On |
Time |
---|---|---|---|
D1 |
Overview documents
|
L1, I6 |
3 days |
D2 |
Recipes for developers to use
|
L1, I6 |
4 days |
D3 |
Recipes for implementers
|
L1, I6 |
4 days |
Dependency on any other component
None.
A suggested incremental plan
The work listed above should be completed by the time that version 1.5 is released, even though none of it will be incorporated into that release.
We should be ready to incorporate the framework into the beginning of the version 1.6 development cycle.