org.eclipse.osgi.service.resolver.Resolver Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aspectjtools Show documentation
Show all versions of aspectjtools Show documentation
Tools from the AspectJ project
/*******************************************************************************
* Copyright (c) 2003, 2012 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.osgi.service.resolver;
import java.util.Comparator;
import java.util.Dictionary;
/**
* An implementation of a resolver which resolves the constraints of the bundles
* in a system.
*
* Clients may implement this interface.
*
* @since 3.1
*/
public interface Resolver {
/**
* Resolves the state associated with this resolver and returns an array of
* bundle deltas describing the changes.. The state and version bindings
* for the various bundles and packages in this state are updated and a
* array containing bundle deltas describing the changes returned.
*
* This method is intended to be called only by State objects in response
* to a user invocation of State.resolve(). States will typically refuse to
* update their constituents (see State.resolveBundle() and
* State.resolveConstraint()) if their resolve method is not currently
* being invoked.
*
*
* Note the given state is destructively modified to reflect the results of
* resolution.
*
* @param discard the list of bundles to discard the resolve status and
* reresolve. A null
value indicates that all currently unresolved
* bundles in the state should be resolved.
* @param platformProperties the platform properties used to match platform filters
* against. A null
value indicates that the system properties should
* be used to match against
*/
public void resolve(BundleDescription[] discard, Dictionary