Search in sources :

Example 26 with Wire

use of org.osgi.resource.Wire in project bndtools by bndtools.

the class ResolutionTreeContentProvider method processWires.

private static void processWires(Collection<Wire> wires, Map<Capability, ResolutionTreeItem> items) {
    if (wires != null) {
        for (Wire wire : wires) {
            ResolutionTreeItem item = items.get(wire.getCapability());
            if (item == null) {
                item = new ResolutionTreeItem(wire.getCapability());
                items.put(wire.getCapability(), item);
            }
            item.addWire(wire);
        }
    }
}
Also used : Wire(org.osgi.resource.Wire)

Example 27 with Wire

use of org.osgi.resource.Wire in project bndtools by bndtools.

the class ResolveOperation method run.

@Override
public void run(IProgressMonitor monitor) {
    MultiStatus status = new MultiStatus(Plugin.PLUGIN_ID, 0, Messages.ResolveOperation_errorOverview, null);
    // Start a coordination
    BundleContext bc = Plugin.getDefault().getBundleContext();
    ServiceReference<Coordinator> coordSvcRef = bc.getServiceReference(Coordinator.class);
    Coordinator coordinator = coordSvcRef != null ? (Coordinator) bc.getService(coordSvcRef) : null;
    Coordination coordination = coordinator != null ? coordinator.begin(ResolveOperation.class.getName(), 0) : null;
    // Begin resolve
    ResolveProcess resolve = new ResolveProcess();
    ResolverLogger logger = new ResolverLogger();
    try {
        BndResolver bndResolver = new BndResolver(logger);
        ReporterLogService log = new ReporterLogService(model.getWorkspace());
        Map<Resource, List<Wire>> wirings = resolve.resolveRequired(model, model.getWorkspace(), bndResolver, callbacks, log);
        Map<Resource, List<Wire>> optionalResources = new HashMap<Resource, List<Wire>>(resolve.getOptionalResources().size());
        for (Resource optional : resolve.getOptionalResources()) {
            optionalResources.put(optional, new ArrayList<Wire>(resolve.getOptionalReasons(optional)));
        }
        result = new ResolutionResult(Outcome.Resolved, wirings, optionalResources, null, status, logger.getLog());
        if (coordination != null)
            coordination.end();
    } catch (ResolveCancelledException e) {
        result = new ResolutionResult(Outcome.Cancelled, null, null, null, status, logger.getLog());
        if (coordination != null)
            coordination.fail(e);
    } catch (ResolutionException e) {
        status.add(new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
        result = new ResolutionResult(Outcome.Unresolved, null, null, e, status, logger.getLog());
        if (coordination != null)
            coordination.fail(e);
    } catch (Exception e) {
        status.add(new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, "Exception during resolution.", e));
        result = new ResolutionResult(Outcome.Error, null, null, null, status, logger.getLog());
        if (coordination != null)
            coordination.fail(e);
    } finally {
        if (coordinator != null)
            bc.ungetService(coordSvcRef);
    }
}
Also used : ReporterLogService(aQute.bnd.deployer.repository.ReporterLogService) MultiStatus(org.eclipse.core.runtime.MultiStatus) IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) Coordination(org.osgi.service.coordinator.Coordination) ResolverLogger(biz.aQute.resolve.ResolverLogger) HashMap(java.util.HashMap) Resource(org.osgi.resource.Resource) MultiStatus(org.eclipse.core.runtime.MultiStatus) Coordinator(org.osgi.service.coordinator.Coordinator) Wire(org.osgi.resource.Wire) ResolutionException(org.osgi.service.resolver.ResolutionException) ResolutionException(org.osgi.service.resolver.ResolutionException) ResolveProcess(biz.aQute.resolve.ResolveProcess) ArrayList(java.util.ArrayList) List(java.util.List) BndResolver(biz.aQute.resolve.BndResolver) BundleContext(org.osgi.framework.BundleContext)

Aggregations

Wire (org.osgi.resource.Wire)27 Resource (org.osgi.resource.Resource)22 ArrayList (java.util.ArrayList)12 List (java.util.List)12 HashMap (java.util.HashMap)11 Requirement (org.osgi.resource.Requirement)11 Map (java.util.Map)7 Capability (org.osgi.resource.Capability)7 BundleWiring (org.osgi.framework.wiring.BundleWiring)6 HashSet (java.util.HashSet)5 Set (java.util.Set)4 Region (org.eclipse.equinox.region.Region)4 Bundle (org.osgi.framework.Bundle)4 BundleException (org.osgi.framework.BundleException)4 BundleRevision (org.osgi.framework.wiring.BundleRevision)4 FileInputStream (java.io.FileInputStream)3 IOException (java.io.IOException)3 InputStream (java.io.InputStream)3 Collection (java.util.Collection)3 EnumSet (java.util.EnumSet)3