private static ConfigModel getBaseConfig(final ConfigModel definedConfig) throws ProvisioningDescriptionException { final ConfigModel.Builder baseConfig = ConfigModel.builder(definedConfig.getModel(), definedConfig.getName()); //baseConfig.setInheritFeatures(definedConfig.isInheritFeatures()); baseConfig.setInheritLayers(definedConfig.isInheritLayers()); if(definedConfig.hasIncludedLayers()) { for(String layer : definedConfig.getIncludedLayers()) { baseConfig.includeLayer(layer); } } if(definedConfig.hasExcludedLayers()) { for(String layer : definedConfig.getExcludedLayers()) { baseConfig.excludeLayer(layer); } } /* excluding things may break the config if(definedConfig.hasExcludedSpecs()) { for(SpecId specId : definedConfig.getExcludedSpecs()) { baseConfig.excludeSpec(specId.getName()); } } if(definedConfig.hasIncludedSpecs()) { for(SpecId specId : definedConfig.getIncludedSpecs()) { baseConfig.includeSpec(specId.getName()); } } */ return baseConfig.build(); }
public FeaturePackBuilder addConfig(ConfigModel config) throws ProvisioningDescriptionException { return addConfig(config, !config.getId().isModelOnly()); }
public ConfigModel build() throws ProvisioningDescriptionException { return new ConfigModel(this); } }
private void processConfig(ConfigModelStack configStack, ConfigModel config) throws ProvisioningException { this.configStack = configStack; configStack.overwriteProps(config.getProperties()); configStack.overwriteConfigDeps(config.getConfigDeps()); try { if(config.hasPackageDeps()) { processPackageDeps(config, null); } processConfigItemContainer(config); this.configStack = null; } catch (ProvisioningException e) { throw new ProvisioningException(Errors.failedToResolveConfigSpec(config.getModel(), config.getName()), e); } }
private ConfigModel popConfig(ConfigModelStack configStack) throws ProvisioningException { final ConfigModel config = configStack.peekAtConfig(); if(config.hasIncludedLayers()) { for(String dep : config.getIncludedLayers()) { if(configStack.isLayerFilteredOut(dep)) { continue; } includeLayer(configStack, new ConfigId(config.getModel(), dep)); } } return configStack.popConfig(); }
final ConfigModel.Builder configBuilder = ConfigModel.builder(model, name); if(definedConfig != null) { final ProvisionedFeatureDiffCallback originalCallback = featureCallback; init(getDefaultProvisionedConfig(layout, definedConfig)); diff(originalCallback, originalProvisioned); configBuilder.setInheritFeatures(definedConfig.isInheritFeatures()); configBuilder.setInheritLayers(definedConfig.isInheritLayers()); if(definedConfig.hasIncludedLayers()) { for(String layer : definedConfig.getIncludedLayers()) { configBuilder.includeLayer(layer); if(definedConfig.hasExcludedLayers()) { for(String layer : definedConfig.getExcludedLayers()) { configBuilder.excludeLayer(layer); if(definedConfig.hasIncludedSpecs()) { for(SpecId specId : definedConfig.getIncludedSpecs()) { configBuilder.includeSpec(specId.getName()); if(definedConfig.hasExcludedSpecs()) { for(SpecId specId : definedConfig.getExcludedSpecs()) { configBuilder.excludeSpec(specId.getName()); if(definedConfig.hasExternalFeatureGroups()) { for(Map.Entry<String, FeatureGroup> entry : definedConfig.getExternalFeatureGroups().entrySet()) { final FeatureGroup fg = entry.getValue(); if(fg.hasIncludedSpecs()) {
protected ElementNode toElement(ConfigModel config, String ns) { final ElementNode configE = addElement(null, Element.CONFIG.getLocalName(), ns); if(config.getModel() != null) { addAttribute(configE, Attribute.MODEL, config.getModel()); if(config.hasProperties()) { final ElementNode propsE = addElement(configE, Element.PROPS.getLocalName(), ns); for(Map.Entry<String, String> prop : config.getProperties().entrySet()) { final ElementNode propE = addElement(propsE, Element.PROP.getLocalName(), ns); addAttribute(propE, Attribute.NAME, prop.getKey()); if(config.hasConfigDeps()) { final ElementNode configDeps = addElement(configE, Element.CONFIG_DEPS.getLocalName(), ns); for(Map.Entry<String, ConfigId> dep : config.getConfigDeps().entrySet()) { final ElementNode configDep = addElement(configDeps, Element.CONFIG_DEP.getLocalName(), ns); addAttribute(configDep, Attribute.ID.getLocalName(), dep.getKey()); if(!config.isInheritLayers()) { layers = addElement(configE, Element.LAYERS.getLocalName(), ns); addAttribute(layers, Attribute.INHERIT, "false"); if(config.hasIncludedLayers()) { if(layers == null) { layers = addElement(configE, Element.LAYERS.getLocalName(), ns); for(String layerDep : config.getIncludedLayers()) { final ElementNode layer = addElement(layers, Element.INCLUDE.getLocalName(), ns); addAttribute(layer, Attribute.NAME, layerDep); if(config.hasExcludedLayers()) {
if (cm.getName().equals(id.getName()) && cm.getModel().equals(id.getModel())) { targetConfig = cm.getBuilder(); existingFeature = getExistingFeature(cm, featId); if (existingFeature != null) { targetConfig.removeFeature(featId); isExcluded = cm.getExcludedFeatures().containsKey(featId); break; targetConfig = ConfigModel.builder(id.getModel(), id.getName()); newConfig = true;
@Override public ConfigModel parse(final Reader input) throws XMLStreamException, ProvisioningDescriptionException { final ConfigModel.Builder builder = ConfigModel.builder(); XmlParsers.parse(input, builder); return builder.build(); } }
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; }
if(m.hasExcludedLayers()) { for (String ex : m.getExcludedLayers()) { hasLayers = true; nameNode.addNext(new Table.Node(ex+"(excluded)"));
protected Builder(ConfigModel config) { super(config); this.model = config.getModel(); this.props = CollectionUtils.clone(config.props); this.configDeps = CollectionUtils.clone(config.configDeps); this.inheritLayers = config.inheritLayers; this.includedLayers = CollectionUtils.clone(config.includedLayers); this.excludedLayers = CollectionUtils.clone(config.excludedLayers); }
if (cm.getName().equals(id.getName()) && cm.getModel().equals(id.getModel())) { targetConfig = cm.getBuilder(); exclude = getExistingFeature(cm, feature.getFeatureId()) == null; break; targetConfig = ConfigModel.builder(id.getModel(), id.getName()); newConfig = true; targetConfig.excludeFeature(feature.getFeatureId());
ProvisioningConfig build() throws ProvisioningException, IOException { final ProvisioningConfig.Builder builder = ProvisioningConfig.builder(); ConfigModel.Builder configBuilder = ConfigModel.builder(model, config); for (String layer : layers) { configBuilder.includeLayer(layer); } builder.addConfig(configBuilder.build()); builder.addFeaturePackDep(FeaturePackConfig.builder(loc).setInheritConfigs(false). setInheritPackages(false).build()); return builder.build(); } }
break; case CONFIG: final ConfigModel.Builder config = ConfigModel.builder(); ConfigXml.readConfig(reader, config); try {
@SuppressWarnings("unchecked") public B addConfig(ConfigModel config) throws ProvisioningDescriptionException { final ConfigId id = config.getId(); if(id.isAnonymous()) { throw new ProvisioningDescriptionException("Anonymous configs are not supported in " + getClass().getName()); } definedConfigs = CollectionUtils.putLinked(definedConfigs, id, config); this.hasModelOnlyConfigs |= config.id.isModelOnly(); return (B) this; }
break; case CONFIG: final ConfigModel.Builder config = ConfigModel.builder(); ConfigXml.readConfig(reader, config); try {
ConfigModel getConfig(ConfigId configId) throws ProvisioningException { if(configs != null) { final ConfigModel config = configs.get(configId); if(config != null) { return config; } } final Path p = LayoutUtils.getConfigXml(dir, configId, false); if (!Files.exists(p)) { return null; } try (BufferedReader reader = Files.newBufferedReader(p)) { final ConfigModel config = ConfigXmlParser.getInstance().parse(reader); if (configs == null) { configs = new HashMap<>(); } configs.put(config.getId(), config); return config; } catch (Exception e) { throw new ProvisioningException(Errors.parseXml(p), e); } }
break; case CONFIG: final ConfigModel.Builder config = ConfigModel.builder(); ConfigXml.readConfig(reader, config); try {
@Override public void doAction(ProvisioningConfig current, ProvisioningConfig.Builder builder) throws ProvisioningException { for (ConfigModel m : current.getDefinedConfigs()) { if (m.getId().equals(id)) { config = m; break; } } if (config == null) { throw new ProvisioningException("Config " + id + " doesn't exist"); } originalList = new ArrayList<>(builder.getDefinedConfigs()); builder.removeConfig(id); }