CDV ❯ Research OSGi vs. Maven2/plexus for config module dependency management
-
New Feature
-
Status: Closed
-
2 Major
-
Resolution: Fixed
-
X-Common Code
-
-
hhuynh
-
Reporter: nharward
-
July 16, 2007
-
0
-
Watchers: 0
-
March 27, 2008
-
November 26, 2007
Description
Part of the original requirement/vision for config modules was to make it effectively work exactly like maven2 dependencies work. That is, you can specify in the tc-config.xml file a list of modules that you want to have (which you can do now), and any dependencies (directly or indirectly) would be downloaded from a repository if necessary and automatically used (does not happen today).
Currently we kind of do this with our OSGi runtime, but in a very limited way. Transitive dependencies are handled “by hand” in our code, and only work for repositories on local disk – this code is not network aware. Because of this, if a user were to use a config module with a lot of [transitive] dependencies, he or she may go through many iterations of manually downloading dependencies and/or adding repositories before things finally work. Our system should automatically do all of this work (like maven2 does).
This task is to research and compare the pros/cons/LOE of a) continuing using OSGi and building this ourselves, or b) using the maven engine to do this for us. On a related note, work is being done to integrate better with Maven2 and Geronimo, which will make use of the maven/plexus engine.
Comments
jvoegele 2007-08-28
Fiona OShea 2007-11-02
Isn’t this complete with the tc maven plugin? If so can you mark it resolved/fixed?
Eugene Kuleshov 2007-11-26
I don’t think it is actually related to tc maven plugin, but it seems like original issue been resolved in some way.
Eugene Kuleshov 2007-11-26
Juris and Gary implemented custom resolver on top of OSGi which handles transitive dependencies and provide some mapping between maven and OSGi versions. Maven plugin hooks into that resolver and uses maven components to download resolved bundles.
Eugene, assigning this one to you since I think you are already working on the config module dependency management stuff.