I’ve been doing bundle development for a very long time so I have a lot of fantasies of how we can improve development workflows. One of my fantasies while working with my target platform has been to have it automatically provisioned to me based on some requirements. Well, I’m happy to report that PDE now supports provisioning your target platform from a repository (as of Eclipse 3.5 M7) which makes my fantasty come true!
What does this mean? Well, let me walk you through a short demo:
The first thing to do is to create a new target definition in PDE (File->New->Target Definition):
For the purposes of this demo, let’s create a empty target to work with the Eclipse Communications Framework (ECF):
Next, let’s add some content to our target definition and choose the ‘Software Site’ source:
Let’s point to the Galileo repository as that’s where the ECF SDK lives:
Once that happens and we set our target platform, PDE will resolve the target definition and download everything that is needed:
Tada! After waiting for the target to resolve and download, we have everything we need to develop against ECF!
What exactly is going under the covers here? Well, PDE now allows you to craft a target definition using p2 IUs from a software site (repository). Just as we selected ECF, we could be building another product that needs Riena and ECF so we simply select the Riena and ECF IUs. All software-site based target definitions now are managed by a p2 profile and share a local bundle pool in the PDE metadata area. These target definitions are now easily shareable with your colleagues. You simply have to craft a target definition with the right information and put it somewhere your colleagues can access it. One of the coolest things about this feature is that since we use p2, you can plug in any repository and things would work transparently. For example, if someone wrote a p2 connector to talk to Maven or OBR repositories, things would work transparently since everything is an IU!
Note that if you aren’t comfortable with people provisioning a target from a software site, you can choose the other sources for content (directory, features, installation) and ship a target locally or in a SCM (this was how things worked before).
In the future, you’ll continue to see closer PDE and p2 integration.
Hope this helps! If you have any bugs or suggestions, please file a bug.