[ROO-3667] Migrate from low-level OSGi API to Declarative Services Created: 04/Sep/15  Updated: 10/Sep/15  Resolved: 10/Sep/15

Status: Closed
Project: Spring Roo
Component/s: @ CORE
Affects Version/s: 2.0.0.M1
Fix Version/s: 2.0.0.M2

Type: Improvement Priority: Major
Reporter: Enrique Ruiz (DiSiD) Assignee: Enrique Ruiz (DiSiD)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
relates to ROO-3665 Update to OSGi R6 Resolved


One of the main changes to improve the project maintainability is to generalize the use of the Declarative Services best practice.

This task consists in migrating the functionality implemented with the OSGi API to be implemented based on Declarative Services spec.

The main benefits would be:

  • Code easier to test: low-level OSGi code is hard to test because it mixes up the business logic with boilerplate code that is necessarily present merely to make the code work.
  • Code easier to understand: the business logic mixed with OSGi API is difficult to understand, except if you carefully read and analyse it.

Comment by Enrique Ruiz (DiSiD) [ 10/Sep/15 ]

The DS didn't work so this issue is closed labeled as "won't fix".

The problem was that the References graph is so harder that we were unable to configure each reference individually.

We tried to configure all references but it caused the problems below:

  • Declaring all references as MANDATORY + DYNAMIC causes the same effect than STATIC references: cycle references error was thrown.
  • Declaring all references as OPTIONAL + DYNAMIC causes some references weren't been resolved and the needed services were null.

By the moment the OSGi low level API will be used in Roo.

Generated at Wed Oct 23 07:36:43 UTC 2019 using Jira 7.13.8#713008-sha1:1606a5c1e7006e1ab135aac81f7a9566b2dbc3a6.