[EMAIL PROTECTED] wrote:

Let me clarify that httpclient is just an example.
Making it and my other 3rd party artifacts to be OSGi bundles is the easy
part.
I've planned to deploy them then to my group repository.

However, for my internally developed artifacts it's a different story.
All of them are Eclipse plugins.
I want to build them through a CI framework (probably Continuum) and
deploy them also to the group repository.
Then, members of my team can work on individual plugins and the plugins'
OSGi dependencies
(as expressed in MANIFEST.MF) are resolved from the group repository.

That's my plan in a nutshell.  Having a target platform in this picture
where a base set of plugins are resolved from is fine, too.

Actually, this is the primary use case for "target platform management" feature we're adding to tycho and I would be very interested to know how well (or not so well) it works for your projects. There is no user documentation yet, but here is relatively detailed description of how this works.

In the just announced tycho 0.3.0-DEV-1756, build target platform can be specified using dependencyManagement pom.xml section. It is possible to specify path to local eclipse installation using dependency with system scope, but more interestingly, it is also possible to specify eclipse-feature and eclipse-plugin artifacts using maven groupId/artifactId/version coordinates.

At build time, tycho will resolve all eclipse-feature artifacts (transitively) and eclipse-plugin artifacts (non-transitively) from maven repositories and target platform used during the build will include features/bundles both from local eclipse-installation and from maven repositories. Build results can be installed/deployed into maven local/remote repositories by invoking regular "install" or "deploy" build phases.

So in your scenario, CI framework can run "tycho/bin/mvn deploy" for set of related projects and everything is expected to work "the maven way" assuming dependencyManagement is configured properly. We are using Hudson, btw, but I guess Continuum should work too.

You can see this in action in integration test [1]. The test first runs build01 to install a feature and couple of bundles into local maven repository. Then it runs build02 which uses the feature and bundles from the first build. You can see specification of build02 target platform in pom.xml [2].

Please note that -Dtycho.targetPlatform OVERRIDES target platform in pom.xml. In other words, target platform specified in dependencyManagement sections will be ignored if -Dtycho.targetPlatform is specified on command line or via settings.xml/pom.xml. (I should have added a warning, I guess)

Also note that there is no PDE integration yet. We can talk about using tycho build target platform in PDE if you're happy with how it works on command line.

[1] http://svn.sonatype.org/m2eclipse/tycho/trunk/tycho-its/projects/tycho164/ [2] http://svn.sonatype.org/m2eclipse/tycho/trunk/tycho-its/projects/tycho164/build02/pom.xml


but I am open for suggestions
about how to make consumption of plain JARs in tycho builds easier.

I wouldn't cater to consuming plain Jars in general with Tycho.
I would target OSGi bundles only instead.
If there was a way to map an OSGi dependency into a Maven coordinate,
and Maven/Tycho was able to resolve the OSGi dependency from a Maven
repository,
that might make the consumption of OSGi bundles easier.


I think I know what you mean and I might have some ideas how to implement it, although not necessary exactly as you describe it here. I can't be more specific at the moment, but stay tuned ;-).

--
Regards,
Igor


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to