public FeaturePackBuilder addConfig(ConfigModel config, boolean asDefault) throws ProvisioningDescriptionException { final ConfigId id = config.getId(); if(id.isAnonymous()) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": attempt to add an anonymous config"); } if(asDefault && id.isModelOnly()) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": model-only config can not be added as the default one"); } if (configs.isEmpty()) { configs = new HashMap<>(); } if (configs.put(id, config) != null) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": duplicate config " + id); } if(asDefault) { fpBuilder.addConfig(ConfigModel.builder(id.getModel(), id.getName()).build()); } return this; }
void build() throws ProvisioningException { final FeaturePackLocation fps = fpBuilder.getFPID().getLocation(); if(fps == null) { throw new ProvisioningDescriptionException("Feature-pack location has not been set"); final PackageSpec pkgDescr = pkg.build(fpWorkDir); if(pkg.isDefault()) { fpBuilder.addDefaultPackage(pkgDescr.getName()); fpSpec = fpBuilder.build(); final FeaturePackXmlWriter writer = FeaturePackXmlWriter.getInstance(); writer.write(fpSpec, fpWorkDir.resolve(Constants.FEATURE_PACK_XML));
throw ParsingUtils.missingAttributes(reader.getLocation(), required); fpBuilder.setFPID(LegacyGalleon1Universe.toFpl(groupId, artifactId, version).getFPID()); while (reader.hasNext()) { switch (reader.nextTag()) { ConfigXml.readConfig(reader, config); try { fpBuilder.addConfig(config.build()); } catch (ProvisioningDescriptionException e) { throw new XMLStreamException("Failed to parse config element", reader.getLocation(), e);
@Override public void readElement(XMLExtendedStreamReader reader, Builder fpBuilder) throws XMLStreamException { fpBuilder.setFPID(readSource(reader).getFPID()); while (reader.hasNext()) { switch (reader.nextTag()) { ConfigXml.readConfig(reader, config); try { fpBuilder.addConfig(config.build()); } catch (ProvisioningDescriptionException e) { throw new XMLStreamException("Failed to parse config element", reader.getLocation(), e);
private FeaturePackDescription(Builder builder) throws ProvisioningDescriptionException { fpid = builder.fpid; spec = builder.spec.build(); this.packages = CollectionUtils.unmodifiable(builder.packages); for(String name : spec.getDefaultPackageNames()) {
private void readDefaultPackages(XMLExtendedStreamReader reader, Builder fpBuilder) throws XMLStreamException { ParsingUtils.parseNoAttributes(reader); boolean hasChildren = false; while (reader.hasNext()) { switch (reader.nextTag()) { case XMLStreamConstants.END_ELEMENT: { if (!hasChildren) { throw ParsingUtils.expectedAtLeastOneChild(reader, Element.DEFAULT_PACKAGES, Element.PACKAGE); } return; } case XMLStreamConstants.START_ELEMENT: { final Element element = Element.of(reader.getName().getLocalPart()); switch (element) { case PACKAGE: fpBuilder.addDefaultPackage(parseName(reader)); hasChildren = true; break; default: throw ParsingUtils.unexpectedContent(reader); } break; } default: { throw ParsingUtils.unexpectedContent(reader); } } } throw ParsingUtils.endOfDocument(reader.getLocation()); }
private void readDefaultPackages(XMLExtendedStreamReader reader, Builder fpBuilder) throws XMLStreamException { ParsingUtils.parseNoAttributes(reader); boolean hasChildren = false; while (reader.hasNext()) { switch (reader.nextTag()) { case XMLStreamConstants.END_ELEMENT: { if (!hasChildren) { throw ParsingUtils.expectedAtLeastOneChild(reader, Element.DEFAULT_PACKAGES, Element.PACKAGE); } return; } case XMLStreamConstants.START_ELEMENT: { final Element element = Element.of(reader.getName().getLocalPart()); switch (element) { case PACKAGE: fpBuilder.addDefaultPackage(parseName(reader)); hasChildren = true; break; default: throw ParsingUtils.unexpectedContent(reader); } break; } default: { throw ParsingUtils.unexpectedContent(reader); } } } throw ParsingUtils.endOfDocument(reader.getLocation()); }
public static Builder builder() { return new Builder(); }
public static Builder builder(FeaturePackSpec.Builder spec) { return new Builder(spec.getFPID(), spec); }
public FeaturePackBuilder addTransitiveDependency(FeaturePackLocation fpl) throws ProvisioningDescriptionException { fpBuilder.addTransitiveDep(fpl); return this; }
public FeaturePackBuilder addDependency(String origin, FeaturePackConfig dep) throws ProvisioningDescriptionException { fpBuilder.addFeaturePackDep(origin, dep); return this; }
public FeaturePackBuilder setDefaultUniverse(String factory, String location) throws ProvisioningDescriptionException { fpBuilder.setDefaultUniverse(factory, location); return this; }
public FeaturePackBuilder addUniverse(String name, String factory, String location) throws ProvisioningDescriptionException { fpBuilder.addUniverse(name, factory, location); return this; }
@Override public FeaturePackSpec parse(Reader input) throws XMLStreamException, ProvisioningDescriptionException { final FeaturePackSpec.Builder fpBuilder = FeaturePackSpec.builder(); parse(input, fpBuilder); return fpBuilder.build(); } }
public FeaturePackBuilder addFeatureSpec(FeatureSpec spec) throws ProvisioningDescriptionException { if (specs.isEmpty()) { specs = new HashMap<>(); } if (specs.put(spec.getName(), spec) != null) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": duplicate spec name " + spec.getName()); } return this; }
public FeaturePackBuilder addFeatureGroup(FeatureGroup featureGroup) throws ProvisioningDescriptionException { if (featureGroups.isEmpty()) { featureGroups = new HashMap<>(); } if (featureGroups.put(featureGroup.getName(), featureGroup) != null) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": duplicate feature-group name " + featureGroup.getName()); } return this; }
public FeaturePackBuilder setFPID(FeaturePackLocation.FPID fpid) { fpBuilder.setFPID(fpid); return this; }
public FeaturePackBuilder addConfigLayer(ConfigLayerSpec layer) throws ProvisioningDescriptionException { if(layers.isEmpty()) { layers = new HashMap<>(); } if(layers.put(layer.getId(), layer) != null) { throw new ProvisioningDescriptionException("Feature-pack " + fpBuilder.getFPID() + ": duplicate layer " + layer.getId()); } return this; }
public FeaturePackBuilder addDependency(FeaturePackConfig dep) throws ProvisioningDescriptionException { if(dep.isTransitive()) { fpBuilder.addFeaturePackDep(dep); return this; } return addDependency(null, dep); }