private void addFeatures(String feature, Set<Feature> features, boolean mandatory) { Set<Feature> set = getMatching(feature); if (mandatory && set.isEmpty()) { throw new IllegalStateException("Could not find matching feature for " + feature); } for (Feature f : set) { if (features.add(f)) { for (Dependency dep : f.getFeature()) { if (!dep.isBlacklisted()) { addFeatures(dep.toString(), features, isMandatory(dep)); } } } } }
/** * Features matching the given feature selectors including dependent features * * @param features feature selector name, name/version, name/version-range * * @return matching features */ public Set<Feature> getMatching(List<String> features) { Set<Feature> selected = new HashSet<>(); for (String feature : features) { for (String featureId : getMatchingFeatures(new FeaturePattern(feature), allFeatures)) { addFeatures(featureId, selected, true); } } return selected; }
for (String dependency : FeatureSelector.getMatchingFeatures(nameOrPattern, bootRepositories.values())) { Dependency dep = generatedDep.get(dependency); if (dep == null) { FeatureSelector selector = new FeatureSelector(allBootFeatures); Set<Feature> bootFeatures = selector.getMatching(singletonList(generated.getName())); for (Feature feature : bootFeatures) { if (feature.isBlacklisted()) {
installFeatures.addAll(installedEffective.getFeatures()); FeatureSelector selector = new FeatureSelector(allInstalledFeatures); Set<Feature> effectiveInstalledFeatures = selector.getMatching(installFeatures);
for (String featureName : FeatureSelector.getMatchingFeatures(feature, repositories)) { MapUtils.addToMapSet(request.requirements, FeaturesService.ROOT_REGION, featureName);
for (String dependency : FeatureSelector.getMatchingFeatures(nameOrPattern, bootRepositories.values())) { Dependency dep = generatedDep.get(dependency); if (dep == null) { FeatureSelector selector = new FeatureSelector(allBootFeatures); Set<Feature> bootFeatures = selector.getMatching(singletonList(generated.getName())); for (Feature feature : bootFeatures) { if (feature.isBlacklisted()) {
FeatureSelector selector = new FeatureSelector(allInstalledFeatures); Set<Feature> installedFeatures = selector.getMatching(installedEffective.getFeatures()); ArtifactInstaller installer = new ArtifactInstaller(systemDirectory, downloader, blacklist); for (Feature feature : installedFeatures) {
for (String featureName : FeatureSelector.getMatchingFeatures(feature, repositories)) { MapUtils.addToMapSet(request.requirements, FeaturesService.ROOT_REGION, featureName);
private void addFeatures(String feature, Set<Feature> features, boolean mandatory) { Set<Feature> set = getMatching(feature); if (mandatory && set.isEmpty()) { throw new IllegalStateException("Could not find matching feature for " + feature); } for (Feature f : set) { if (features.add(f)) { for (Dependency dep : f.getFeature()) { if (!dep.isBlacklisted()) { addFeatures(dep.toString(), features, isMandatory(dep)); } } } } }
FeatureSelector selector = new FeatureSelector(allInstalledFeatures); Set<Feature> installedFeatures = selector.getMatching(installedEffective.getFeatures()); ArtifactInstaller installer = new ArtifactInstaller(systemDirectory, downloader, blacklist); for (Feature feature : installedFeatures) {
/** * Features matching the given feature selectors including dependent features * * @param features feature selector name, name/version, name/version-range * * @return matching features */ public Set<Feature> getMatching(List<String> features) { Set<Feature> selected = new HashSet<>(); for (String feature : features) { for (String featureId : getMatchingFeatures(new FeaturePattern(feature), allFeatures)) { addFeatures(featureId, selected, true); } } return selected; }