[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] public API now internal?

On Tue, Mar 9, 2010 at 1:45 PM, Thomas M Houser <tmhouser@xxxxxxxxxx> wrote:

Ok, now I just switched to "eclipse-SDK-I20100305-1011-win32.zip" as my target.  The following APIs that were formerly provisional API (in 3.5) and were later public API (in 3.6M5, and as recent as "eclipse-SDK-I20100217-1031-win32.zip") have been made internal:

import org.eclipse.equinox.p2.engine.InstallableUnitOperand;
import org.eclipse.equinox.p2.engine.Operand;

The operands are no longer part of the p2 engine API. Instead of constructing instances of Operand and passing them to IEngine#perform, you now construct a plan and pass that to the engine instead. The main goal here was to avoid leaking internal implementation details of the engine. For example, the replacement for InstallableUnitOperand looks something like this (install a single IU into a profile):

IEngine engine = ...;
IProvisioningPlan plan = engine.createPlan(profile, context);
engine.perform(plan, phases, monitor);

This one seems to have disappeared altogether (though it was public API in earlier 3.6 builds ):

import org.eclipse.equinox.p2.metadata.query.InstallableUnitQuery;

There are now factory methods for this rather than concrete classes. See QueryUtil#createIUQuery.