@Override public void addRepository(Repository repository) { String repoUriSt = repository.getURI().toString(); repositoryCache.put(repoUriSt, repository); }
@Override public Repository[] listMatchingRepositories(Set<String> uris) { return repositoryCache.values().stream() .filter(r -> uris.contains(r.getURI().toString())) .toArray(Repository[]::new); }
/** * Returns currently installed feature repositories. If patch is not installed, we should have the same state * before&after. * @return */ private HashMap<String, Repository> getAvailableFeatureRepositories() { HashMap<String, Repository> before = new HashMap<String, Repository>(); if (featuresService != null) { for (Repository repository : featuresService.listRepositories()) { before.put(repository.getURI().toString(), repository); } } return before; }
/** * Check if a features repository is already registered locally. * * @param uri the features repository URI. * @return true if the features repository is already registered locally, false else. */ public Boolean isRepositoryRegisteredLocally(String uri) { try { Repository[] localRepositories = featuresService.listRepositories(); for (Repository localRepository : localRepositories) { if (localRepository.getURI().toString().equals(uri)) { return true; } } } catch (Exception e) { LOGGER.warn("CELLAR FEATURES: can't check if the feature repository {} is registered locally", uri, e); } return false; }
private void checkRepository(final URI repoURI) { Repository repo = null; for(Repository r: featuresService.listRepositories()) { if(r.getURI().equals(repoURI)){ repo = r; break; } } Assert.assertNotNull("Repository not found: " + repoURI,repo); }
private void checkRepository(final URI repoUri) throws Exception { Repository repo = null; for (Repository r : featuresService.listRepositories()) { if (r.getURI().equals(repoUri)) { repo = r; break; } } Assert.assertNotNull("Repository not found: " + repoUri, repo); }
private void reloadAllRepos(FeaturesService featuresService) throws Exception { System.out.println("Reloading all repositories from their urls"); System.out.println(); List<Exception> exceptions = new ArrayList<>(); for (Repository repo : featuresService.listRepositories()) { try { featuresService.addRepository(repo.getURI()); } catch (Exception e) { exceptions.add(e); } } MultiException.throwIf("Unable to reload repositories", exceptions); }
public void refreshRepository(String uri) throws Exception { if (uri == null || uri.isEmpty()) { for (Repository repository : featuresService.listRepositories()) { featuresService.refreshRepository(repository.getURI()); } } else { // regex support Pattern pattern = Pattern.compile(uri); List<URI> uris = new ArrayList<>(); for (Repository repository : featuresService.listRepositories()) { URI u = repository.getURI(); Matcher matcher = pattern.matcher(u.toString()); if (matcher.matches()) { uris.add(u); } } for (URI u :uris) { featuresService.refreshRepository(u); } } }
private void reloadAllRepos(FeaturesService featuresService) throws Exception { System.out.println("Reloading all repositories from their urls"); System.out.println(); List<Exception> exceptions = new ArrayList<>(); for (Repository repo : featuresService.listRepositories()) { try { featuresService.addRepository(repo.getURI()); } catch (Exception e) { exceptions.add(e); } } MultiException.throwIf("Unable to reload repositories", exceptions); }
protected Set<URI> selectRepositories(String nameOrUrl, String version) throws Exception { Set<URI> uris = new LinkedHashSet<>(); String effectiveVersion = (version == null) ? "LATEST" : version; URI uri = featuresService.getRepositoryUriFor(nameOrUrl, effectiveVersion); if (uri == null) { // add regex support on installed repositories Pattern pattern = Pattern.compile(nameOrUrl); for (Repository repository : featuresService.listRepositories()) { URI u = repository.getURI(); String rname = repository.getName(); if (pattern.matcher(u.toString()).matches() || rname != null && pattern.matcher(rname).matches()) { uris.add(u); } } } else { uris.add(uri); } return uris; }
@Override public Feature[] listFeatures() throws Exception { assertValid(); Set<Feature> allfeatures = new HashSet<Feature>(); Repository[] repositories = listRepositories(); for (Repository repository : repositories) { try { for (Feature feature : repository.getFeatures()) { if (!allfeatures.contains(feature)) { allfeatures.add(feature); } } } catch (Exception ex) { LOGGER.debug("Could not load features from %s.", repository.getURI()); } } return allfeatures.toArray(new Feature[allfeatures.size()]); }
@Override public Feature[] listFeatures() throws Exception { assertValid(); Set<Feature> allfeatures = new HashSet<Feature>(); Repository[] repositories = listRepositories(); for (Repository repository : repositories) { try { for (Feature feature : repository.getFeatures()) { if (!allfeatures.contains(feature)) { allfeatures.add(feature); } } } catch (Exception ex) { LOGGER.debug("Could not load features from %s.", repository.getURI()); } } return allfeatures.toArray(new Feature[allfeatures.size()]); }
public JmxRepositoryEvent(RepositoryEvent event) { try { String[] itemNames = FeaturesServiceMBean.REPOSITORY_EVENT; Object[] itemValues = new Object[itemNames.length]; itemValues[0] = event.getRepository().getURI().toString(); switch (event.getType()) { case RepositoryAdded: itemValues[1] = FeaturesServiceMBean.REPOSITORY_EVENT_EVENT_TYPE_ADDED; break; case RepositoryRemoved: itemValues[1] = FeaturesServiceMBean.REPOSITORY_EVENT_EVENT_TYPE_REMOVED; break; default: throw new IllegalStateException("Unsupported event type: " + event.getType()); } data = new CompositeDataSupport(REPOSITORY_EVENT, itemNames, itemValues); } catch (OpenDataException e) { throw new IllegalStateException("Cannot form repository event open data", e); } }
public int complete(Session session, final CommandLine commandLine, final List<String> candidates) { StringsCompleter delegate = new StringsCompleter(); try { for (Repository repository : featuresService.listRepositories()) { delegate.getStrings().add(repository.getURI().toString()); } } catch (Exception e) { // Ignore } return delegate.complete(session, commandLine, candidates); }
public int complete(Session session, final CommandLine commandLine, final List<String> candidates) { StringsCompleter delegate = new StringsCompleter(); try { for (Repository repository : featuresService.listRepositories()) { delegate.getStrings().add(repository.getURI().toString()); } } catch (Exception e) { // Ignore } return delegate.complete(session, commandLine, candidates); }
private Map<String, Map<String, Feature>> getFeatures(Iterable<Repository> repositories) throws Exception { Map<String, Map<String, Feature>> features = new HashMap<String, Map<String, Feature>>(); for (Repository repo : repositories) { try { for (Feature f : repo.getFeatures()) { if (features.get(f.getName()) == null) { Map<String, Feature> versionMap = new TreeMap<String, Feature>(); versionMap.put(f.getVersion(), f); features.put(f.getName(), versionMap); } else { features.get(f.getName()).put(f.getVersion(), f); } } } catch (Exception ex) { LOGGER.debug("Could not load features from %s.", repo.getURI()); } } return features; }
public JmxRepository(Repository repository) { try { String[] itemNames = FeaturesServiceMBean.REPOSITORY; Object[] itemValues = new Object[itemNames.length]; itemValues[0] = repository.getName(); itemValues[1] = repository.getURI().toString(); itemValues[2] = toStringArray(repository.getRepositories()); itemValues[3] = getFeatureIdentifierTable(Arrays.asList(repository.getFeatures())); itemValues[4] = repository.isBlacklisted(); data = new CompositeDataSupport(REPOSITORY, itemNames, itemValues); } catch (Exception e) { throw new IllegalStateException("Cannot form repository open data", e); } }
@Override public void refreshFeatures(EnumSet<Option> options) throws Exception { Set<URI> uris = new LinkedHashSet<>(); for (Repository r : this.repositories.listRepositories()) { uris.add(r.getURI()); } this.refreshRepositories(uris); this.featuresProcessor = new FeaturesProcessorImpl(cfg); this.repositories = new RepositoryCacheImpl(featuresProcessor); State state = copyState(); doProvisionInThread(state.requirements, emptyMap(), state, getFeaturesById(), options); }
protected void doExecute(FeaturesService admin) throws Exception { ShellTable table = new ShellTable(); table.column("Version"); table.column("Repository"); table.column("Repository URL"); table.emptyTableText("No versions available for features '" + feature + "'"); for (Repository r : Arrays.asList(admin.listRepositories())) { for (Feature f : r.getFeatures()) { if (f.getName().equals(feature)) { table.addRow().addContent(f.getVersion(), r.getName(), r.getURI()); } } } table.print(System.out, !noFormat); }
protected void doExecute(FeaturesService admin) throws Exception { ShellTable table = new ShellTable(); table.column("Version"); table.column("Repository"); table.column("Repository URL"); table.emptyTableText("No versions available for features '" + feature + "'"); for (Repository r : Arrays.asList(admin.listRepositories())) { for (Feature f : r.getFeatures()) { if (f.getName().equals(feature)) { table.addRow().addContent(f.getVersion(), r.getName(), r.getURI()); } } } table.print(System.out, !noFormat); }