Currently we manually use spring-dm to read the IntentMap from the dsw bundle as well as from bundles implementing or using OSGi services.
This has some drawbacks:
- As IntentMap is defined in the dsw bundle the user bundles depend on the dsw bundle
- User bundles and dsw bundle depend on spring dm
- It is not possible to use other ways to define intents (e.g. blueprint or by hand)

So I propose to replace this with a different aproach:

First I would like to replace the IntentMap with a simple HashMap so we do not need a depdendency on dsw. To also avoid to directly use spring dm I propose we define the default intents in java code.

For user defined intents we could use a service. So the user bundles would define the intent map themselves and offer it as an OSGi service. The dsw bundle then would check for these services. As the Map is not a unique identifier we could use a property to mark a service as a intent map.

The solution has one drawback though. It is incompatible with the current way of defining intents. Do you think this is a problem? Do you see any other problems with proposed solution?

Btw. I think the current intent map reading has a bug. We use getIntentMap for loading the default intents as well as the use intents. Inside getIntentMap we cache the loaded IntentMap. So only the first call will load something. So I am not sure if user intents work at all at the moment. Is this correct?

See also:
https://issues.apache.org/jira/browse/DOSGI-86
https://issues.apache.org/jira/browse/DOSGI-115

Christian

--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
Talend Application Integration Division http://www.talend.com

Reply via email to