@Override public void undoAction(ProvisioningConfig.Builder builder) throws ProvisioningException { for (Entry<FeaturePackConfig, T> entry : cf.entrySet()) { Integer index = indexes.get(entry.getKey().getLocation().getFPID()); // index could be null if doAction failed or did not execute. if (index != null) { FeaturePackConfig.Builder fpBuilder = entry.getKey().getBuilder(); undoAction(fpBuilder, entry.getValue()); builder.removeFeaturePackDep(entry.getKey().getLocation()); builder.addFeaturePackDep(index, fpBuilder.build()); } } }
@Override public void doAction(ProvisioningConfig current, ProvisioningConfig.Builder builder) throws ProvisioningException { for (Entry<FeaturePackConfig, T> entry : cf.entrySet()) { FeaturePackConfig.Builder fpBuilder = entry.getKey().getBuilder(); boolean doit = doAction(fpBuilder, entry.getValue()); // this complexity is due to the fact that some fp could already have the configuration included/excluded/... if (doit) { int index = builder.getFeaturePackDepIndex(entry.getKey().getLocation()); indexes.put(entry.getKey().getLocation().getFPID(), index); builder.removeFeaturePackDep(entry.getKey().getLocation()); builder.addFeaturePackDep(index, fpBuilder.build()); } } }
@SuppressWarnings("unchecked") public B addFeaturePackDep(int index, FeaturePackConfig dependency) throws ProvisioningDescriptionException { if (index >= fpDeps.size()) { addFeaturePackDep(dependency); return (B) this; } FeaturePackLocation fpl = dependency.getLocation(); final UniverseSpec resolvedUniverse = getConfiguredUniverse(fpl); if(resolvedUniverse != null) { fpl = fpl.replaceUniverse(resolvedUniverse); dependency = FeaturePackConfig.builder(fpl).init(dependency).build(); } if (fpDeps.containsKey(fpl.getProducer())) { throw new ProvisioningDescriptionException(Errors.featurePackAlreadyConfigured(fpl.getProducer())); } // reconstruct the linkedMap. Map<ProducerSpec, FeaturePackConfig> tmp = Collections.emptyMap(); int i = 0; for (Entry<ProducerSpec, FeaturePackConfig> entry : fpDeps.entrySet()) { if (i == index) { tmp = CollectionUtils.putLinked(tmp, fpl.getProducer(), dependency); } tmp = CollectionUtils.putLinked(tmp, entry.getKey(), entry.getValue()); i += 1; } fpDeps = tmp; return (B) this; }
case XMLStreamConstants.END_ELEMENT: { try { builder.addFeaturePackDep(origin, depBuilder.build()); } catch (ProvisioningDescriptionException e) { final StringBuilder buf = new StringBuilder();
state.addFeaturePackDep(fpConfig.build());
manager.install(fpConfigBuilder.build(), pluginOptions); } catch (ProvisioningException ex) { throw new IllegalArgumentException("Couldn't install feature-pack " + fpl, ex);
fpConfig.includeDefaultConfig(c); builder.addFeaturePackDep(fpConfig.build()); manager.provision(builder.build(), options);
manager.install(fpConfigBuilder.build(), pluginOptions); } catch (ProvisioningException ex) { throw new IllegalArgumentException("Couldn't install the feature pack " + fpGav, ex);
configBuilder.addFeaturePackDep(provisionedConfig.originOf(fp.getLocation().getProducer()), fp); } else { configBuilder.addFeaturePackDep(provisionedConfig.originOf(fp.getLocation().getProducer()), fpcBuilder.build()); configBuilder.addFeaturePackDep(provisionedConfig.originOf(fp.getLocation().getProducer()), fp); } else { configBuilder.addFeaturePackDep(provisionedConfig.originOf(fp.getLocation().getProducer()), fpcBuilder.build()); configBuilder.addFeaturePackDep(fpcBuilder.build());
return configBuilder.updateFeaturePackDep(FeaturePackConfig.builder(targetConfig).removePatch(fpid).build());
@Override public void doAction(ProvisioningConfig current, ProvisioningConfig.Builder builder) throws ProvisioningException { builder.addFeaturePackDep(newDepBuilder.build()); }
public B updateFeaturePackDep(String origin, FeaturePackConfig dependency) throws ProvisioningDescriptionException { final UniverseSpec configuredUniverse = getConfiguredUniverse(dependency.getLocation()); return addFeaturePackDepResolved(origin, configuredUniverse == null ? dependency : FeaturePackConfig.builder(dependency.getLocation().replaceUniverse(configuredUniverse)).init(dependency).build(), true); }
public B addFeaturePackDep(String origin, FeaturePackConfig dependency) throws ProvisioningDescriptionException { final UniverseSpec configuredUniverse = getConfiguredUniverse(dependency.getLocation()); return addFeaturePackDepResolved(origin, configuredUniverse == null ? dependency : FeaturePackConfig.builder(dependency.getLocation().replaceUniverse(configuredUniverse)).init(dependency).build(), false); }
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(); } }
/** * Creates the default configuration for a transitive feature-pack dependency * * @param fpl feature-pack location of the transitive dependency * @return feature-pack transitive dependency configuration */ public static FeaturePackConfig forTransitiveDep(FeaturePackLocation fpl) { return new Builder(fpl, true, true).build(); }
private static Map<String, Map<String, Set<String>>> getAllLayers(PmSession session, FeaturePackLocation loc, boolean includeDependencies) throws ProvisioningException, IOException { ProvisioningConfig pConfig = ProvisioningConfig.builder(). addFeaturePackDep(FeaturePackConfig.builder(loc).build()).build(); try (ProvisioningLayout<FeaturePackLayout> layout = session. getLayoutFactory().newConfigLayout(pConfig)) { return getAllLayers(layout, includeDependencies); } }
/** * Creates the default configuration for a feature-pack * * @param fpl feature-pack location * @return feature-pack configuration */ public static FeaturePackConfig forLocation(FeaturePackLocation fpl) { return new Builder(fpl).build(); }
public void install(FeaturePackConfig fpConfig, Map<String, String> options) throws ProvisioningException { ProvisioningConfig config = getProvisioningConfig(); if(config == null) { config = ProvisioningConfig.builder().build(); } try(ProvisioningLayout<FeaturePackRuntimeBuilder> layout = getLayoutFactory().newConfigLayout(config, ProvisioningRuntimeBuilder.FP_RT_FACTORY, false)) { final UniverseSpec configuredUniverse = getConfiguredUniverse(fpConfig.getLocation()); layout.install(configuredUniverse == null ? fpConfig : FeaturePackConfig.builder(fpConfig.getLocation().replaceUniverse(configuredUniverse)).init(fpConfig).build(), options); doProvision(layout, getFsDiff(), false); } }