PDE's newest target platform work involves
using a p2 profile to collect and provision targets. This was somewhat
possible in 3.5 with remote repositories, but it had severe limitations.
I currently have code that gets metadata (or generated it) for different
target locations (remote repos, local installations, directories of plug-ins).
The target then 'resolves' (uses the slicer to determine the complete
set of IUs in the target. Then the target 'provisions' which uses
the engine to collect, download and install the IUs into a profile. We
then use the artifacts to create a State.
The problem I'm having is that when
the engine runs the download phase, it always grabs every bundle and puts
it in the bundle pool, even if the artifacts are available in a local repository.
For example, when my target contains the metadata from a local profile
(another Eclipse installation), the engine copied the entire SDK into the
profile's bundle cache. Hopefully there is some way to workaround
this as I don't think people will appreciate getting that much data copied
on their system. I also can't skip the download phase because some
of the target may be from a remote repository.
Also, is there some code out there that
can take a profile and a set of artifact repositories and get the uris
of the artifacts in the profile? Our current code works with a single
artifact repository and looks in that repo for each IArtifactKey.
On another note, I would like to say
how satisfied I am working with the multiple agent API. It's simple,
straightforward, documented well and very powerful for the PDE use cases.