Improved Target Platform Management, Eclipse Galileo Feature #3

Software development can be characterized by the management of two separate, yet equally important groups of artifacts. The source code you write and the libraries you depend on. Much of our education, tooling, and software engineering literature focuses on the first part – this post focuses on the second.

The Eclipse Galileo release is almost here, and for the past week I have been counting down the top 10 features I’m most excited about. The features come from a variety of different Eclipse projects including the Platform, Modeling, Runtime, Tools and Technology. Some of the features I’m excited about help teams of developers write better code, or exciting new plug-ins, in a more productive manner. Other cool new Galileo features provide developers with a more streamlined, feature rich, API. Number 3 on my Top 10 list — Improved Target Platform Management — bridges the gap between these two groups.

Targets platforms define what your workspace will be built and launched against. By defining your target you can easily use one version of Eclipse for development, while targeting a different version for your product. Many developers simply download Eclipse, create a new plug-in project and start hacking away. This approach can lead to a number of problems:

  1. What if you want to update your tooling (to use a new version of Ecore tools), do you want your product built against this the new tooling?
  2. What if you don’t need GEF based tools but you wish to make use of GEF in your product. Do you want GEF “installed” in development environment?
  3. What if you work in a team. Do you require that your entire team uses the same version of Eclipse for their development?
  4. How do you change the libraries you depend on?

By managing your targets, you are free separate your development environment from the software you are building. You can even share your target definitions with team members.The Galileo release brings a number of improvements to the management of target definitions, including:

Target editor enhancements:

editor improvements Improved Target Platform Management, Eclipse Galileo Feature #3

A new target platform preference page:

preference Improved Target Platform Management, Eclipse Galileo Feature #3

A target platform state view:

state view Improved Target Platform Management, Eclipse Galileo Feature #3

Software site target provisioner:

target prov Improved Target Platform Management, Eclipse Galileo Feature #3

Let’s step through a very simple example.  Let’s say you have Galileo installed and you want to build a product based on EMF.  Instead of installing EMF, you create a new target definition, add a “Software Site”, and choose EMF from the Galileo repository.  EMF (and its requirements) will fetched and added to your target platform, but it is not installed.  This means you can upgrade your tooling (or even install a different version of EMF tooling) without affecting the software you’re building.

installemf Improved Target Platform Management, Eclipse Galileo Feature #3

You can even have multiple targets with different versions of EMF and using the Target Platform preference page, you can switch between them.

Kudos for this feature goes out to the PDE Team. In particular, Darin Wright, Curtis Windatt and Chris Aniszczyk!

Awesome work guys!

3 Responses to “Improved Target Platform Management, Eclipse Galileo Feature #3”

  1. Matthias Treitler says:

    The enhancements sound really good. I am curious to see how these improvements will enhance the development of Eclipse RCP applications.

  2. I fully agree that this is a top 3 feature but it is not complete yet! Managing libraries can be a hard and error prone process to enforce in large development teams. When you take this new target provisioning as the abstract frontend to your SCM and CI server, you can set your target to include a specific BUILT and TESTED branch and release or HEAD of some component some one else is working on, then you don’t check out into your workspace, you checkout into your target. The only thing in your workspace is the code you are working on yourself, and none of the dependencies!
    Certainly raises the level of abstraction again!
    So where is the p2 target like frontend to a Bundle Integration Server so we can reduce the number of files in workspace to the ones we must work on.

  3. Ian Bull says:

    Maarte,

    Very good points. This feature was released right at the end of the 3.5 cycle so I would look for more exciting things around target management in Eclipse 3.6. We can’t make Eclipse perfect or we would all be out of a job ;).

3 responses so far

Written by . Published in Categories: EclipseSource News, Planet Eclipse