Search in sources :

Example 6 with RepositoryTracker

use of org.eclipse.equinox.p2.operations.RepositoryTracker in project knime-core by knime.

the class NewReleaseMessageInjector method checkNewMinorVersion.

private List<UpdateInfo> 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();
    }
    List<UpdateInfo> updateList = new ArrayList<>();
    for (URI uri : tracker.getKnownRepositories(provUI.getSession())) {
        if (("http".equals(uri.getScheme()) || "https".equals(uri.getScheme())) && (uri.getHost().endsWith(".knime.org") || uri.getHost().endsWith(".knime.com"))) {
            UpdateInfo newRelease = UpdateChecker.checkForNewRelease(uri);
            if (newRelease != null) {
                updateList.add(newRelease);
            }
        }
    }
    return updateList;
}
Also used : ProvisioningUI(org.eclipse.equinox.p2.ui.ProvisioningUI) ArrayList(java.util.ArrayList) URI(java.net.URI) UpdateInfo(org.knime.core.eclipseUtil.UpdateChecker.UpdateInfo) RepositoryTracker(org.eclipse.equinox.p2.operations.RepositoryTracker)

Example 7 with RepositoryTracker

use of org.eclipse.equinox.p2.operations.RepositoryTracker in project yamcs-studio by yamcs.

the class UpdateHandler 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();
}
Also used : RepositoryTracker(org.eclipse.equinox.p2.operations.RepositoryTracker)

Example 8 with RepositoryTracker

use of org.eclipse.equinox.p2.operations.RepositoryTracker in project epp.mpc by eclipse.

the class AbstractProvisioningOperation method addRepositories.

protected List<IMetadataRepository> addRepositories(SubMonitor monitor) throws URISyntaxException, ProvisionException {
    // tell p2 that it's okay to use these repositories
    ProvisioningSession session = ProvisioningUI.getDefaultUI().getSession();
    RepositoryTracker repositoryTracker = ProvisioningUI.getDefaultUI().getRepositoryTracker();
    repositoryLocations = new HashSet<URI>();
    if (addedRepositoryLocations == null) {
        addedRepositoryLocations = new HashSet<URI>();
    }
    Set<URI> knownRepositories = new HashSet<URI>(Arrays.asList(repositoryTracker.getKnownRepositories(session)));
    monitor.setWorkRemaining(items.size() * 5);
    for (CatalogItem descriptor : items) {
        String siteUrl = descriptor.getSiteUrl();
        if (siteUrl != null) {
            URI uri = URLUtil.toURI(siteUrl);
            if (repositoryLocations.add(uri) && !knownRepositories.contains(uri)) {
                checkCancelled(monitor);
                repositoryTracker.addRepository(uri, null, session);
                addedRepositoryLocations.add(uri);
            }
        }
        monitor.worked(1);
    }
    // fetch meta-data for these repositories
    ArrayList<IMetadataRepository> repositories = new ArrayList<IMetadataRepository>();
    monitor.setWorkRemaining(repositories.size());
    IMetadataRepositoryManager manager = (IMetadataRepositoryManager) session.getProvisioningAgent().getService(IMetadataRepositoryManager.SERVICE_NAME);
    for (URI uri : repositoryLocations) {
        checkCancelled(monitor);
        IMetadataRepository repository = manager.loadRepository(uri, monitor.newChild(1));
        repositories.add(repository);
    }
    return repositories;
}
Also used : CatalogItem(org.eclipse.equinox.internal.p2.discovery.model.CatalogItem) ProvisioningSession(org.eclipse.equinox.p2.operations.ProvisioningSession) IMetadataRepositoryManager(org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager) ArrayList(java.util.ArrayList) IMetadataRepository(org.eclipse.equinox.p2.repository.metadata.IMetadataRepository) URI(java.net.URI) RepositoryTracker(org.eclipse.equinox.p2.operations.RepositoryTracker) HashSet(java.util.HashSet)

Example 9 with RepositoryTracker

use of org.eclipse.equinox.p2.operations.RepositoryTracker in project epp.mpc by eclipse.

the class AbstractProvisioningOperation method removeRepositoryLocations.

/**
 * remove the given repository locations from the repository tracker.
 *
 * @param repositoryLocations
 */
public static void removeRepositoryLocations(Set<URI> repositoryLocations) {
    if (repositoryLocations == null || repositoryLocations.isEmpty()) {
        return;
    }
    ProvisioningSession session = ProvisioningUI.getDefaultUI().getSession();
    RepositoryTracker repositoryTracker = ProvisioningUI.getDefaultUI().getRepositoryTracker();
    repositoryTracker.removeRepositories(repositoryLocations.toArray(new URI[repositoryLocations.size()]), session);
}
Also used : ProvisioningSession(org.eclipse.equinox.p2.operations.ProvisioningSession) URI(java.net.URI) RepositoryTracker(org.eclipse.equinox.p2.operations.RepositoryTracker)

Example 10 with RepositoryTracker

use of org.eclipse.equinox.p2.operations.RepositoryTracker in project liferay-ide by liferay.

the class LiferayUIPlugin method _addRepository.

private void _addRepository() throws URISyntaxException {
    ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
    ProvisioningSession provisioningSession = provisioningUI.getSession();
    RepositoryTracker repositoryTracker = provisioningUI.getRepositoryTracker();
    URI[] knownRepositories = repositoryTracker.getKnownRepositories(provisioningSession);
    URI liferayUri = new URI("https://releases.liferay.com/tools/ide/latest/stable/");
    boolean containLifreayUri = Stream.of(knownRepositories).anyMatch(uri -> Objects.equals(uri, liferayUri));
    if (!containLifreayUri) {
        repositoryTracker.addRepository(liferayUri, "Liferay IDE Stable releases", provisioningSession);
    }
}
Also used : ProvisioningSession(org.eclipse.equinox.p2.operations.ProvisioningSession) ProvisioningUI(org.eclipse.equinox.p2.ui.ProvisioningUI) URI(java.net.URI) RepositoryTracker(org.eclipse.equinox.p2.operations.RepositoryTracker)

Aggregations

RepositoryTracker (org.eclipse.equinox.p2.operations.RepositoryTracker)12 URI (java.net.URI)7 ProvisioningSession (org.eclipse.equinox.p2.operations.ProvisioningSession)5 ArrayList (java.util.ArrayList)4 ProvisioningUI (org.eclipse.equinox.p2.ui.ProvisioningUI)4 IOException (java.io.IOException)2 HashSet (java.util.HashSet)2 SubMonitor (org.eclipse.core.runtime.SubMonitor)2 IMetadataRepository (org.eclipse.equinox.p2.repository.metadata.IMetadataRepository)2 IMetadataRepositoryManager (org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager)2 File (java.io.File)1 URISyntaxException (java.net.URISyntaxException)1 Collections (java.util.Collections)1 List (java.util.List)1 ReentrantLock (java.util.concurrent.locks.ReentrantLock)1 Collectors (java.util.stream.Collectors)1 Stream (java.util.stream.Stream)1 DocumentBuilderFactory (javax.xml.parsers.DocumentBuilderFactory)1 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)1 TransformerException (javax.xml.transform.TransformerException)1