Search in sources :

Example 1 with ReporterLogService

use of aQute.bnd.deployer.repository.ReporterLogService 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

ReporterLogService (aQute.bnd.deployer.repository.ReporterLogService)1 BndResolver (biz.aQute.resolve.BndResolver)1 ResolveProcess (biz.aQute.resolve.ResolveProcess)1 ResolverLogger (biz.aQute.resolve.ResolverLogger)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 IStatus (org.eclipse.core.runtime.IStatus)1 MultiStatus (org.eclipse.core.runtime.MultiStatus)1 Status (org.eclipse.core.runtime.Status)1 BundleContext (org.osgi.framework.BundleContext)1 Resource (org.osgi.resource.Resource)1 Wire (org.osgi.resource.Wire)1 Coordination (org.osgi.service.coordinator.Coordination)1 Coordinator (org.osgi.service.coordinator.Coordinator)1 ResolutionException (org.osgi.service.resolver.ResolutionException)1