The Future of Maven & OSGi: Join the Tycho Users Mailing List!


March 9, 2009 By Jason van Zyl

tycho-logo1From the very beginning we positioned [Tycho][1] as the tool for doing Eclipse/OSGi development with Maven. Even though Tycho originally focused on build automation, we think it is time to extend its functionality, as well as integrating it with other projects, to support the full Eclipse/OSGi application development lifecycle.

Below is a preliminary list of key features we want to implement. We want to know if it looks useful, or if we’re totally off base. What other features and improvements are needed to make Tycho a turnkey solution for Eclipse/OSGi development?

### Target platform management

* In addition to Maven, support Eclipse/P2 repositories.
* Seamless roundtrip between local and remote artifact repositories. We need to easily consume and publish artifacts to remote Eclipse/P2 repositories. For us this would be building with Tycho, deploying to a Nexus/P2 repository, and then consuming from that Nexus/P2 repository using Tycho, the Eclipse Update Manager or any P2 client
* Allow implicit and partially defined target platform specifications.
* Reusable target platform specification.
* Run tests against multiple target platforms, possibly in different runtime environments.

There a couple more things to mention about target platforms. First, we believe it is important to allow a fully reproducible target platform construction, i.e. the specification should have enough detail to recreate the exact same target platform regardless of the content of artifact repositories or state of the local environment. Second, we believe it is also very important to be able to reuse a target platform specification either to define custom Eclipse distributions or RCP applications. When we develop m2eclipse extensions, we want to use the same target platform as m2eclipse and then layer new features on top of that target platform.

### IDE support for Tycho projects

* Import Tycho projects as PDE projects in Eclipse.
* PDE target platform management.

### Publish build results

* Publish Eclipse/P2 repositories and/or Eclipse Update Sites.
* Combine build results with pre-existing artifacts to create custom Eclipse distributions or RCP applications.

The idea is to make build results immediately usable by QA team or for production use.

### P2 repository management

* Proxy, group, filter and control access to P2 repositories.
* Staging, procurement and other advanced repository manager features.

These are as useful for P2 as they are for Maven repositories. We’ve been using Nexus and local P2 proxy for m2eclipse development and testing this for a few months now. It saves lots of time and bandwidth for us and works more reliably as well.

We have setup a dedicated [tycho-users mailing list][2] which you can subscribe to in order to participate in the discussions.

Sonatype will be having a Maven Meetup on March 19th and 20th in our offices in Mountain View where we will be talking about our Eclipse/OSGi tooling. Sonatype will also be talking about this Eclipse/OSGi toolchain at the [Philly Emerging Tech Conference][3] and finally Sonatype will be participating in the OSGi Tooling Summit being hosted by Peter Kriens of the OSGi alliance. We hope to present solutions for a lot of the current impedance mismatch between Maven and OSGi. I strongly encourage anyone interested in the future of Maven & OSGi to join the [Tycho users mailing list][2] and get involved!

[1]: http://docs.codehaus.org/display/M2ECLIPSE/Tycho+project+overview
[2]: mailto:tycho-users-subscribe@lists.sonatype.com
[3]: http://www.phillyemergingtech.com

PHOTO CREDIT: NASA, Solar Eclipse from Moon