I think a lot of these issues may be solved by the eba-maven-plugin. I've been
hoping to have a bit of time to copy and update it to deal with subsystems.
I don't know of any way to deal with start order in any reasonable way. Maven
is uncooperative about letting you add plugin specific bits of info to
dependencies. In the karaf-maven-plugin feature generation I made it so you
can specify a single start order for a feature, but I don't think this works
for subsystems since karaf features are just sets of bundles started in with
the other bundles whereas IIUC in a subsystem the start order is for that
subsystem.
On the other hand I think I saw some discussion recently on the maven list
about perhaps allowing non-inheritable extra attrtibutes on dependencies.
Since for subsystems we almost certainly don't want to follow transitive
dependencies (using obr instead) this might work (if I didn't make it up).
Let me know if you start looking at this so we don't duplicate effort.
thanks
david jencks
On Jul 1, 2012, at 1:06 PM, David Bosschaert wrote:
> Hi all,
>
> I've playing with the current subsystems implementation and thanks to
> John Ross fixing some bugs I've been able to get a subsystem with the
> CXF-DOSGi functionality working :)
>
> However, I've been thinking what the best way is to create a subsystem
> in maven... My current impl has a few issues and maybe others have
> some ideas how to improve:
> 1. My SUBSYSTEM.MF [1] needs to have the OSGi variant of the
> ${project.version} so it needs to translate 1.4.0-SNAPSHOT into
> 1.4.0.SNAPSHOT. Anyone know a way to do this?
> 2. The Subsystem-Content lists all the dependencies of the project.
> However, because some of the bundles for this subsystem weren't
> developed with OSGi in mind, the start ordering is significant. I
> don't know of an easy way to generate this so currently it's hardcoded
> and hence duplicated. Also note that fragments obviously don't have a
> start-order.
> 3. In [2] I'm using the maven-assembly plugin to get all the
> dependencies zipped up. However I need to have the .esa extension
> whereas this plugin insists on .zip. I'm currently achieving that by
> copying the .zip file to an .esa and then attaching the .esa to the
> project but that's kinda wasteful as it puts both the .zip and the
> .esa in the maven repo (and they're a couple of megs each).
>
> 2 above might be a bit hard to achieve in the short term, but 1 and 3
> might be possible given the right amount of maven-fu?
> I guess it would really be nice if there was a maven plugin that could
> do all this ;)
>
> Cheers,
>
> David
>
> [1]
> http://svn.apache.org/repos/asf/cxf/dosgi/trunk/distribution/subsystem/src/main/resources/OSGI-INF/SUBSYSTEM.MF
> [2]
> http://svn.apache.org/repos/asf/cxf/dosgi/trunk/distribution/subsystem/pom.xml