core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/p2/FeatureInstallOperation.java
author dadubrow
Mon, 13 Sep 2010 15:22:01 -0500
changeset 1994 e9be28ae423a
permissions -rw-r--r--
Bug 10645 - add p2 install operation for docs plugins
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1994
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     1
/*
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     3
 * All rights reserved.
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     5
 * under the terms of the License "Eclipse Public License v1.0"
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     8
 *
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
     9
 * Initial Contributors:
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    11
 *
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    12
 * Contributors:
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    13
 *
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    14
 * Description: 
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    15
 *
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    16
 */
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    17
package com.nokia.carbide.internal.discovery.ui.p2;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    18
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    19
import java.lang.reflect.InvocationTargetException;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    20
import java.net.URI;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    21
import java.util.ArrayList;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    22
import java.util.Collection;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    23
import java.util.HashSet;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    24
import java.util.Set;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    25
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    26
import org.eclipse.core.runtime.CoreException;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    27
import org.eclipse.core.runtime.IProgressMonitor;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    28
import org.eclipse.core.runtime.IStatus;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    29
import org.eclipse.core.runtime.NullProgressMonitor;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    30
import org.eclipse.core.runtime.OperationCanceledException;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    31
import org.eclipse.core.runtime.SubMonitor;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    32
import org.eclipse.equinox.p2.core.ProvisionException;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    33
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    34
import org.eclipse.equinox.p2.operations.InstallOperation;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    35
import org.eclipse.equinox.p2.operations.ProvisioningSession;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    36
import org.eclipse.equinox.p2.operations.RepositoryTracker;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    37
import org.eclipse.equinox.p2.query.IQuery;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    38
import org.eclipse.equinox.p2.query.IQueryResult;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    39
import org.eclipse.equinox.p2.query.IQueryable;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    40
import org.eclipse.equinox.p2.query.QueryUtil;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    41
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    42
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    43
import org.eclipse.equinox.p2.ui.ProvisioningUI;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    44
import org.eclipse.jface.operation.IRunnableWithProgress;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    45
import org.eclipse.swt.widgets.Display;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    46
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    47
import com.nokia.carbide.discovery.ui.Messages;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    48
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    49
public class FeatureInstallOperation implements IRunnableWithProgress {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    50
	
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    51
	private Collection<URI> uris;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    52
	private Collection<FeatureInfo> featureInfos;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    53
	private boolean wantVersions;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    54
	private ProvisioningUI provisioningUI;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    55
	private Collection<IMetadataRepository> repositories;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    56
	private Collection<IInstallableUnit> ius;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    57
	private Collection<URI> urisUsed;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    58
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    59
	public FeatureInstallOperation(Collection<URI> uris, Collection<FeatureInfo> featureInfos, boolean wantVersions) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    60
		this.uris = uris;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    61
		this.featureInfos = featureInfos;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    62
		this.wantVersions = wantVersions;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    63
		provisioningUI = ProvisioningUI.getDefaultUI();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    64
	}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    65
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    66
	@Override
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    67
	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    68
		try {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    69
			doInstall(monitor);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    70
		} catch (OperationCanceledException e) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    71
			throw new InterruptedException();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    72
		} catch (CoreException e) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    73
			throw new InvocationTargetException(e);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    74
		}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    75
	}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    76
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    77
	public void doInstall(IProgressMonitor monitor) throws OperationCanceledException, CoreException {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    78
		SubMonitor subMonitor = SubMonitor.convert(monitor, Messages.FeatureInstallOperation_ConfiguringTaskName, 100);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    79
		getRepositories(subMonitor.newChild(30));
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    80
		findInstallableUnits(subMonitor.newChild(40));
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    81
		final InstallOperation operation = resolve(subMonitor.newChild(30));
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    82
		Display.getDefault().asyncExec(new Runnable() {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    83
			@Override
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    84
			public void run() {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    85
				IQueryable<IInstallableUnit> additions = operation.getProvisioningPlan().getAdditions();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    86
				IQueryResult<IInstallableUnit> result = additions.query(QueryUtil.createIUGroupQuery(), new NullProgressMonitor());
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    87
				provisioningUI.openInstallWizard(result.toSet(), operation, null);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    88
			}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    89
		});
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    90
	}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    91
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    92
	private void getRepositories(SubMonitor monitor) throws ProvisionException, OperationCanceledException {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    93
		monitor.setWorkRemaining(uris.size());
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    94
		repositories = new ArrayList<IMetadataRepository>();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    95
		ProvisioningSession session = provisioningUI.getSession();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    96
		RepositoryTracker repositoryTracker = provisioningUI.getRepositoryTracker();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    97
		IMetadataRepositoryManager manager = 
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    98
			(IMetadataRepositoryManager) session.getProvisioningAgent().getService(IMetadataRepositoryManager.SERVICE_NAME);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
    99
		for (URI uri : uris) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   100
			checkIfCanceled(monitor);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   101
			repositoryTracker.addRepository(uri, null, session);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   102
			repositories.add(manager.loadRepository(uri, monitor.newChild(1)));
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   103
		}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   104
	}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   105
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   106
	private void findInstallableUnits(SubMonitor monitor) throws ProvisionException {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   107
		monitor.setWorkRemaining(repositories.size() * featureInfos.size());
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   108
		ius = new ArrayList<IInstallableUnit>();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   109
		urisUsed = new HashSet<URI>();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   110
		Set<FeatureInfo> remainingInfos = new HashSet<FeatureInfo>(featureInfos);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   111
		for (IMetadataRepository repository : repositories) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   112
			checkIfCanceled(monitor);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   113
			IQueryResult<IInstallableUnit> iusInRepository = repository.query(QueryUtil.createIUGroupQuery(), monitor.newChild(1));
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   114
			for (FeatureInfo featureInfo : new HashSet<FeatureInfo>(remainingInfos)) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   115
				String id = featureInfo.getId();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   116
				IQuery<IInstallableUnit> iuQuery = wantVersions ?
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   117
					QueryUtil.createIUQuery(id, featureInfo.getVersion()) :
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   118
					QueryUtil.createLatestQuery(QueryUtil.createIUQuery(id));
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   119
				IQueryResult<IInstallableUnit> result = iusInRepository.query(iuQuery, monitor.newChild(1));
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   120
				if (!result.isEmpty()) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   121
					ius.add(result.iterator().next());
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   122
					urisUsed.add(repository.getLocation());
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   123
					remainingInfos.remove(featureInfo);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   124
					if (remainingInfos.isEmpty())
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   125
						break;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   126
				}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   127
			}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   128
		}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   129
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   130
		if (!remainingInfos.isEmpty()) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   131
			StringBuilder sb = new StringBuilder();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   132
			sb.append(Messages.FeatureInstallOperation_MissingFeaturesError);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   133
			for (FeatureInfo featureInfo : remainingInfos) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   134
				sb.append(Messages.FeatureInstallOperation_IdLabel);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   135
				sb.append(featureInfo.getId());
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   136
				if (wantVersions) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   137
					sb.append(Messages.FeatureInstallOperation_VersionLabel);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   138
					sb.append(featureInfo.getVersion().toString());
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   139
				}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   140
				sb.append("\n"); //$NON-NLS-1$
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   141
			}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   142
			throw new ProvisionException(sb.toString());
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   143
		}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   144
		monitor.done();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   145
	}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   146
	
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   147
	private InstallOperation resolve(SubMonitor monitor) throws CoreException {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   148
		checkIfCanceled(monitor);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   149
		URI[] uris = (URI[]) urisUsed.toArray(new URI[urisUsed.size()]);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   150
		InstallOperation installOperation = provisioningUI.getInstallOperation(ius, uris);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   151
		IStatus operationStatus = installOperation.resolveModal(monitor);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   152
		if (operationStatus.getSeverity() > IStatus.WARNING) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   153
			throw new CoreException(operationStatus);
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   154
		}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   155
		return installOperation;
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   156
	}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   157
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   158
	private void checkIfCanceled(IProgressMonitor monitor) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   159
		if (monitor.isCanceled()) {
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   160
			throw new OperationCanceledException();
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   161
		}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   162
	}
e9be28ae423a Bug 10645 - add p2 install operation for docs plugins
dadubrow
parents:
diff changeset
   163
}