use of org.eclipse.equinox.p2.operations.RepositoryTracker in project cubrid-manager by CUBRID.
the class UpdateHandler method preloadRepositories.
/**
* Return whether to preload repositories
*
* @return boolean
*/
protected boolean preloadRepositories() {
isNoRepos = false;
RepositoryTracker repoTracker = getProvisioningUI().getRepositoryTracker();
if (repoTracker.getKnownRepositories(getProvisioningUI().getSession()).length == 0) {
isNoRepos = true;
return false;
}
return true;
}
use of org.eclipse.equinox.p2.operations.RepositoryTracker in project knime-core by knime.
the class BugfixMessageInjector method checkNewMinorVersion.
private List<String> checkNewMinorVersion() throws IOException, URISyntaxException {
final ProvisioningUI provUI = ProvisioningUI.getDefaultUI();
RepositoryTracker tracker = provUI.getRepositoryTracker();
if (tracker == null) {
// if run from the IDE there will be no tracker
return Collections.emptyList();
}
UpdateOperation op = new UpdateOperation(provUI.getSession());
op.resolveModal(new NullProgressMonitor());
return Stream.of(op.getPossibleUpdates()).map(u -> u.toUpdate.getProperty("org.eclipse.equinox.p2.name")).sorted().distinct().collect(Collectors.toList());
}
use of org.eclipse.equinox.p2.operations.RepositoryTracker in project epp.mpc by eclipse.
the class ProfileChangeOperationComputer method resolve.
private ProfileChangeOperation resolve(IProgressMonitor monitor, ProfileChangeOperationFactory operationFactory, IInstallableUnit[] ius, URI[] repositories) throws CoreException {
List<IInstallableUnit> installableUnits = Arrays.asList(ius);
List<ResolutionStrategy> strategies = new ArrayList<ProfileChangeOperationComputer.ResolutionStrategy>(2);
switch(resolutionStrategy) {
case FALLBACK_STRATEGY:
strategies.add(ResolutionStrategy.SELECTED_REPOSITORIES);
strategies.add(ResolutionStrategy.ALL_REPOSITORIES);
break;
default:
strategies.add(resolutionStrategy);
}
ProvisioningSession session = ProvisioningUI.getDefaultUI().getSession();
RepositoryTracker repositoryTracker = ProvisioningUI.getDefaultUI().getRepositoryTracker();
URI[] knownRepositories = repositoryTracker.getKnownRepositories(session);
ProfileChangeOperation operation = null;
final int workPerStrategy = 1000;
SubMonitor subMonitor = SubMonitor.convert(monitor, strategies.size() * workPerStrategy + workPerStrategy);
Set<URI> previousRepositoryLocations = null;
for (ResolutionStrategy strategy : strategies) {
Set<URI> repositoryLocations = new HashSet<URI>(Arrays.asList(repositories));
if (strategy == ResolutionStrategy.SELECTED_REPOSITORIES) {
repositoryLocations.addAll(Arrays.asList(repositories));
}
if (dependenciesRepository != null) {
repositoryLocations.add(dependenciesRepository);
}
if (strategy == ResolutionStrategy.ALL_REPOSITORIES && !repositoryLocations.isEmpty()) {
repositoryLocations.addAll(Arrays.asList(knownRepositories));
}
if (repositoryLocations.equals(previousRepositoryLocations)) {
continue;
}
operation = operationFactory.create(installableUnits);
if (!repositoryLocations.isEmpty()) {
URI[] locations = repositoryLocations.toArray(new URI[repositoryLocations.size()]);
operation.getProvisioningContext().setMetadataRepositories(locations);
operation.getProvisioningContext().setArtifactRepositories(locations);
}
resolveModal(subMonitor.newChild(workPerStrategy), operation);
if (operation.getResolutionResult() != null && operation.getResolutionResult().getSeverity() != IStatus.ERROR) {
break;
}
previousRepositoryLocations = repositoryLocations;
}
return operation;
}
use of org.eclipse.equinox.p2.operations.RepositoryTracker in project translationstudio8 by heartsome.
the class AutomaticUpdate method checkForUpdates.
public void checkForUpdates() throws OperationCanceledException {
// 检查 propfile
String profileId = getProvisioningUI().getProfileId();
IProvisioningAgent agent = getProvisioningUI().getSession().getProvisioningAgent();
IProfile profile = null;
if (agent != null) {
IProfileRegistry registry = (IProfileRegistry) agent.getService(IProfileRegistry.SERVICE_NAME);
if (registry != null) {
profile = registry.getProfile(profileId);
}
}
if (profile == null) {
// Inform the user nicely
P2UpdateUtil.openConnectErrorInfoDialog(getShell(), P2UpdateUtil.INFO_TYPE_AUTO_CHECK);
return;
}
// 开始检查前先确定是否有repository
RepositoryTracker repoMan = getProvisioningUI().getRepositoryTracker();
if (repoMan.getKnownRepositories(getProvisioningUI().getSession()).length == 0) {
P2UpdateUtil.openConnectErrorInfoDialog(getShell(), P2UpdateUtil.INFO_TYPE_AUTO_CHECK);
return;
}
final IStatus[] checkStatus = new IStatus[1];
Job.getJobManager().cancel(LoadMetadataRepositoryJob.LOAD_FAMILY);
final LoadMetadataRepositoryJob loadJob = new LoadMetadataRepositoryJob(getProvisioningUI()) {
public IStatus runModal(IProgressMonitor monitor) {
SubMonitor sub = SubMonitor.convert(monitor, P2UpdateUtil.CHECK_UPDATE_TASK_NAME, 1000);
// load repository
IStatus status = super.runModal(sub.newChild(500));
if (status.getSeverity() == IStatus.CANCEL) {
return status;
}
if (status.getSeverity() != Status.OK) {
// load repository error
checkStatus[0] = status;
}
operation = getProvisioningUI().getUpdateOperation(null, null);
// check for updates
IStatus resolveStatus = operation.resolveModal(sub.newChild(500));
if (resolveStatus.getSeverity() == IStatus.CANCEL) {
return Status.CANCEL_STATUS;
}
return Status.OK_STATUS;
}
};
loadJob.setName(P2UpdateUtil.ATUO_CHECK_UPDATE_JOB_NAME);
loadJob.setProperty(LoadMetadataRepositoryJob.ACCUMULATE_LOAD_ERRORS, Boolean.toString(true));
loadJob.addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
if (PlatformUI.isWorkbenchRunning())
if (event.getResult().isOK()) {
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
public void run() {
if (checkStatus[0] != null) {
// 提示连接异常
P2UpdateUtil.openConnectErrorInfoDialog(getShell(), P2UpdateUtil.INFO_TYPE_AUTO_CHECK);
return;
}
doUpdate();
}
});
}
}
});
loadJob.setUser(true);
loadJob.schedule();
}
use of org.eclipse.equinox.p2.operations.RepositoryTracker in project translationstudio8 by heartsome.
the class CheckUpdateHandler method preloadRepositories.
@Override
protected boolean preloadRepositories() {
hasNoRepos = false;
RepositoryTracker repoMan = getProvisioningUI().getRepositoryTracker();
if (repoMan.getKnownRepositories(getProvisioningUI().getSession()).length == 0) {
hasNoRepos = true;
return false;
}
return super.preloadRepositories();
}
Aggregations