@Override public boolean equals(Object other) { if (!(other instanceof FeatureSpecInfo)) { return false; } FeatureSpecInfo ofs = (FeatureSpecInfo) other; return specId.equals(ofs.specId); }
private String toPath(ResolvedSpecId id) { return FeatureContainerPathConsumer.FEATURES_PATH + Identity.buildOrigin(id.getProducer()) + PathParser.PATH_SEPARATOR + id.getName().replaceAll("\\.", "" + PathParser.PATH_SEPARATOR); }
private Builder(ProducerSpec producer, String spec) { this.specId = new ResolvedSpecId(producer, spec); }
@Override public void handle(ProvisionedConfigHandler handler) throws ProvisioningException { if (!hasFeatures()) { return; } handler.prepare(this); ResolvedSpecId lastHandledSpecId = null; for(ProvisionedFeature feature : features) { if(!feature.getSpecId().equals(lastHandledSpecId)) { if (lastHandledSpecId == null || !feature.getSpecId().getProducer().equals(lastHandledSpecId.getProducer())) { handler.nextFeaturePack(feature.getSpecId().getProducer().getLocation().getFPID()); } // TODO: complete spec isn't available here, but specId is enough for marshalling handler.nextSpec(new ResolvedFeatureSpec(feature.getSpecId(), null, FeatureSpec.builder().build())); lastHandledSpecId = feature.getSpecId(); } handler.nextFeature(feature); } handler.done(); }
public FeatureInfo(ConfigInfo configInfo, ProvisionedFeature feature, List<String> path, FPID currentFP) throws ProvisioningDescriptionException { this.feature = feature; this.path = path; this.currentFP = currentFP; this.configInfo = configInfo; FeatureId.Builder builder = FeatureId.builder(feature.getSpecId().getName()); if (feature.getId() != null) { for (Entry<String, Object> param : feature.getId().getParams().entrySet()) { builder.setParam(param.getKey(), param.getValue().toString()); } featureId = builder.build(); featureConfig = FeatureConfig.newConfig(featureId); } else { featureId = null; featureConfig = null; } StringBuilder b = new StringBuilder(); b.append(FeatureContainerPathConsumer.FINAL_CONFIGS_PATH).append(configInfo.getModel()). append(PathParser.PATH_SEPARATOR).append(configInfo.getName()).append(PathParser.PATH_SEPARATOR); for (int i = 0; i < path.size(); i++) { b.append(path.get(i)); if (i < path.size() - 1) { b.append(PathParser.PATH_SEPARATOR); } } fullPath = b.toString(); }
public String getFeatureSpecOrigin() { return Identity.buildOrigin(specId.getProducer()); }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((resolvedDeps == null) ? 0 : resolvedDeps.hashCode()); result = prime * result + ((resolvedParamSpecs == null) ? 0 : resolvedParamSpecs.hashCode()); result = prime * result + ((resolvedRefTargets == null) ? 0 : resolvedRefTargets.hashCode()); result = prime * result + ((xmlSpec == null) ? 0 : xmlSpec.hashCode()); return result; }
private Map<ResolvedFeatureId, FeatureDependencySpec> resolveFeatureDeps(ConfigModelStack configStack, Collection<FeatureDependencySpec> featureDeps, final ResolvedFeatureSpec spec) throws ProvisioningException { Map<ResolvedFeatureId, FeatureDependencySpec> resolvedDeps = spec.resolveFeatureDeps(this, featureDeps); if(!resolvedDeps.isEmpty()) { for(Map.Entry<ResolvedFeatureId, FeatureDependencySpec> dep : resolvedDeps.entrySet()) { if(!dep.getValue().isInclude()) { continue; } final ResolvedFeatureId depId = dep.getKey(); if(configStack.includes(depId) || configStack.isFilteredOut(depId.specId, depId)) { continue; } final FeatureDependencySpec depSpec = dep.getValue(); final FeaturePackRuntimeBuilder originalFp = setOrigin(depSpec.getOrigin()); try { resolveFeatureDepsAndRefs(configStack, getFeatureSpec(depId.getSpecId().getName()), depId, Collections.emptyMap(), Collections.emptyList()); } finally { setOrigin(originalFp); } } } return resolvedDeps; }
session.println("Type : " + f.getType()); session.println("Path : " + f.getPath()); session.println("Origin : " + f.getSpecId().getProducer()); session.println("Description: " + f.getDescription()); session.println("");
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((configParams == null) ? 0 : configParams.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((specId == null) ? 0 : specId.hashCode()); return result; }
@Override public void nextFeature(ProvisionedFeature feature) throws ProvisioningException { Set<ResolvedSpecId> set = actualSet.get(feature.getSpecId().getProducer()); if (set == null) { set = new HashSet<>(); actualSet.put(feature.getSpecId().getProducer(), set); } set.add(feature.getSpecId()); String fullSpecName = feature.getSpecId().getName(); List<String> path = new ArrayList<>(); Group parent = grpBuilder.buildFeatureGroups(fullSpecName, feature.getId(), path); FeatureInfo featInfo = new FeatureInfo(config, feature, path, fp.getFPID()); List<FeatureInfo> lst = features.get(feature.getSpecId()); if (lst == null) { lst = new ArrayList<>(); features.put(feature.getSpecId(), lst); } lst.add(featInfo); parent.setFeature(featInfo); // Specs have already been computed first place. if (allSpecs) { FeatureSpecInfo spec = specsBuilder.getAllSpecs().get(feature.getSpecId()); featInfo.attachSpecInfo(spec); parent.setFeature(featInfo); } } });
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ResolvedFeatureId other = (ResolvedFeatureId) obj; if (params == null) { if (other.params != null) return false; } else if (!params.equals(other.params)) return false; if (specId == null) { if (other.specId != null) return false; } else if (!specId.equals(other.specId)) return false; return true; }
public static ResolvedFeatureId create(ProducerSpec producer, String spec, String param, String value) { return new ResolvedFeatureId(new ResolvedSpecId(producer, spec), Collections.singletonMap(param, value)); }
ResolvedFeatureId(ResolvedSpecId specId, Map<String, Object> params, Boolean child) { this.specId = specId; Map<String, Object> filtered = Collections.emptyMap(); // TODO for(Map.Entry<String, Object> entry : params.entrySet()) { if(!Constants.GLN_UNDEFINED.equals(entry.getValue())) { filtered = CollectionUtils.put(filtered, entry.getKey(), entry.getValue()); } } if(filtered.isEmpty()) { filtered = params; } this.params = CollectionUtils.unmodifiable(filtered); this.child = child; final int prime = 31; int hash = 1; hash = prime * hash + this.params.hashCode(); hash = prime * hash + this.specId.hashCode(); this.hash = hash; }
FeatureSpec spec = resolvedSpec.getSpec(); specInfo = new FeatureSpecInfo(resolved, id, spec); Identity specId = Identity.fromChannel(resolved.getProducer(), resolved.getName()); boolean featureEnabled = true; for (PackageDependencySpec p : spec.getLocalPackageDeps()) { Identity identity = Identity.fromChannel(resolved.getProducer(), p.getName()); Group grp = allPackages.get(identity); String fullSpecName = resolved.getName(); List<String> path = new ArrayList<>(); Group parent = grpBuilder.buildFeatureSpecGroups(fullSpecName, specInfo, path);
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ProvisionedFeatureBuilder other = (ProvisionedFeatureBuilder) obj; if (configParams == null) { if (other.configParams != null) return false; } else if (!configParams.equals(other.configParams)) return false; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; if (specId == null) { if (other.specId != null) return false; } else if (!specId.equals(other.specId)) return false; return true; }
private static FeatureId getFeatureId(final ProvisionedFeature feature) throws ProvisioningDescriptionException, ProvisioningException { final FeatureId.Builder id = FeatureId.builder(feature.getSpecId().getName()); final ResolvedFeatureId resolvedId = feature.getId(); for(String name : resolvedId.getParams().keySet()) { id.setParam(name, feature.getConfigParam(name)); } return id.build(); } }
public ResolvedFeatureSpec getFeatureSpec(String name) throws ProvisioningException { if(featureSpecs != null) { final ResolvedFeatureSpec resolvedSpec = featureSpecs.get(name); if(resolvedSpec != null) { return resolvedSpec; } } final Path specXml = dir.resolve(Constants.FEATURES).resolve(name).resolve(Constants.SPEC_XML); if (!Files.exists(specXml)) { return null; } try (BufferedReader reader = Files.newBufferedReader(specXml)) { final FeatureSpec xmlSpec = FeatureSpecXmlParser.getInstance().parse(reader); if(!xmlSpec.getName().equals(name)) { throw new ProvisioningDescriptionException("Feature-pack " + getFPID() + " feature spec " + xmlSpec.getName() + " does not match the requested feature spec name " + name); } final ResolvedFeatureSpec resolvedSpec = new ResolvedFeatureSpec(new ResolvedSpecId(producer, xmlSpec.getName()), featureParamTypeProvider, xmlSpec); if (featureSpecs == null) { featureSpecs = new HashMap<>(); } featureSpecs.put(name, resolvedSpec); return resolvedSpec; } catch (Exception e) { throw new ProvisioningDescriptionException(Errors.parseXml(specXml), e); } }
private static void displayFeatureSpec(PmCommandInvocation session, Group grp) throws IOException { FeatureSpecInfo f = grp.getSpec(); session.println(""); session.println("Feature type : " + f.getSpecId().getName()); session.println("Feature origin : " + f.getSpecId().getProducer()); session.println("Feature description: " + f.getDescription()); if (!f.isEnabled()) {