@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 void removeRepository(String uri, boolean uninstall) throws Exception { List<URI> uris = new ArrayList<>(); Pattern pattern = Pattern.compile(uri); for (Repository repository : featuresService.listRepositories()) { if (repository.getName() != null && !repository.getName().isEmpty()) { // first regex on the repository name Matcher nameMatcher = pattern.matcher(repository.getName()); if (nameMatcher.matches()) { uris.add(repository.getURI()); } else { // fallback to repository URI regex Matcher uriMatcher = pattern.matcher(repository.getURI().toString()); if (uriMatcher.matches()) { uris.add(repository.getURI()); } } } else { // repository name is not defined, fallback to repository URI regex Matcher uriMatcher = pattern.matcher(repository.getURI().toString()); if (uriMatcher.matches()) { uris.add(repository.getURI()); } } } for (URI u : uris) { featuresService.removeRepository(u, uninstall); } }
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 addRepository(Repository repository) { String repoUriSt = repository.getURI().toString(); repositoryCache.put(repoUriSt, repository); }
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); }
private Set<String> getRequiredFeatureIds(Repository repo) throws Exception { synchronized (lock) { return Stream.of(repo.getFeatures()) .filter(this::isRequired) .map(Feature::getId) .collect(toSet()); } }
protected void doExecute(FeaturesService featuresService) throws Exception { if (reload) { reloadAllRepos(featuresService); } ShellTable table = new ShellTable(); table.column("Repository"); table.column("URL"); if (showBlacklisted) { table.column("Blacklisted"); } table.emptyTableText("No repositories available"); Repository[] repos = featuresService.listRepositories(); for (Repository repo : repos) { if (repo != null) { if (showBlacklisted || !repo.isBlacklisted()) { Row row = table.addRow(); row.addContent(repo.getName(), repo.getURI().toString()); if (showBlacklisted) { row.addContent(repo.isBlacklisted() ? "yes" : "no"); } } } } table.print(System.out, !noFormat); }
private List<ExtendedFeature> getFeatures(List<Repository> repositories) { List<ExtendedFeature> features = new ArrayList<>(); if (featuresService == null) { this.log.error("Features service is not available"); return features; } try { for (Repository r : repositories) { for (Feature f : r.getFeatures()) { ExtendedFeature.State state = featuresService.isInstalled(f) ? ExtendedFeature.State.INSTALLED : ExtendedFeature.State.UNINSTALLED; features.add(new ExtendedFeature(state, r.getName(), f)); } } } catch (Exception e) { this.log.error(e.getMessage()); } Collections.sort(features, new ExtendedFeatureComparator()); return features; }
for (URI u : repo.getRepositories()) { toLoad.add(u.toString()); for (Feature f : repo.getFeatures()) { Map<String, Feature> versionMap = map.computeIfAbsent(f.getName(), key -> new HashMap<>()); versionMap.put(f.getVersion(), f);
@Override public Repository getRepositoryByName(String name) { for (Repository repo : this.repositoryCache.values()) { if (name.equals(repo.getName())) { return repo; } } return null; }
@Override public void removeRepository(URI repositoryUri) { List<String> toRemove = new ArrayList<>(); toRemove.add(repositoryUri.toString()); while (!toRemove.isEmpty()) { Repository rep = repositoryCache.remove(toRemove.remove(0)); if (rep != null) { for (URI u : rep.getRepositories()) { toRemove.add(u.toString()); } } } }
@Override public Repository[] listMatchingRepositories(Set<String> uris) { return repositoryCache.values().stream() .filter(r -> uris.contains(r.getURI().toString())) .toArray(Repository[]::new); }
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); }
repsToAdd.add(uri); Repository rep = featuresService.createRepository(uri); Stream.of(rep.getFeatures()) .filter(f -> f.getInstall() == null || Feature.DEFAULT_INSTALL_MODE.equals(f.getInstall())) .map(f -> "feature:" + f.getName() + "/" + new VersionRange(f.getVersion(), true))
protected void doExecute(FeaturesService featuresService) throws Exception { if (reload) { reloadAllRepos(featuresService); } ShellTable table = new ShellTable(); table.column("Repository"); table.column("URL"); if (showBlacklisted) { table.column("Blacklisted"); } table.emptyTableText("No repositories available"); Repository[] repos = featuresService.listRepositories(); for (Repository repo : repos) { if (repo != null) { if (showBlacklisted || !repo.isBlacklisted()) { Row row = table.addRow(); row.addContent(repo.getName(), repo.getURI().toString()); if (showBlacklisted) { row.addContent(repo.isBlacklisted() ? "yes" : "no"); } } } } table.print(System.out, !noFormat); }
List<Feature> features = Arrays.asList(r.getFeatures()); if (ordered) { Collections.sort(features, new FeatureComparator()); featuresService.isRequired(f) ? "x" : "", featuresService.getState(f.getId()), r.getName(), f.getDescription()); if (showBlacklisted) { row.addContent(f.isBlacklisted() ? "yes" : "no"); if (isInstalledViaDeployDir(r.getName())) { needsLegend = true;
@Override public String getRepositoryName(URI uri) throws Exception { Repository repo = getRepository(uri); return (repo != null) ? repo.getName() : null; }
private void populateRepositories (String uri, Set<Repository> repos) throws Exception { Repository repository = repositories.get(uri); if (repository != null && !repos.contains(repository)) { repos.add(repository); for (URI u : repository.getRepositories()) { populateRepositories(u.toString(), repos); } } }
@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()]); }
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; }