private ProvisioningConfig buildNewConfig(PmSession pmSession) throws ProvisioningException, IOException { ProvisioningConfig tmp = builder.build(); if (runtime != null) { runtime.close(); } runtime = ProvisioningRuntimeBuilder.newInstance(pmSession.getMessageWriter(false)) .initLayout(pmSession.getLayoutFactory(), tmp) .setEncoding(ProvisioningManager.Builder.ENCODING) .build(); Set<FeaturePackLocation.FPID> dependencies = new HashSet<>(); for (FeaturePackRuntime rt : runtime.getFeaturePacks()) { dependencies.add(rt.getFPID()); } FeatureContainer tmpContainer = FeatureContainers.fromProvisioningRuntime(pmSession, runtime); // Need to have in sync the current with the full. // If fullConainer creation is a failure, the container will be not updated. Map<String, FeatureContainer> tmpDeps = new HashMap<>(); if (container != null) { tmpDeps.putAll(container.getFullDependencies()); } buildDependencies(pmSession, dependencies, tmpDeps); container = tmpContainer; container.setEdit(true); container.setFullDependencies(tmpDeps); return tmp; }
.setInstallationHome(installDir.toPath()).build(); pm.provision(state.build(), pluginOptions);
rebuild(configBuilder.build(), true); initPluginOptions(pluginOptions, plan.hasUninstall());
manager.provision(builder.build(), options);
private ProvisionedConfig getDefaultProvisionedConfig(ProvisioningLayout<?> layout, final ConfigModel definedConfig) throws ProvisioningException { final ProvisioningConfig originalConfig = layout.getConfig(); final ProvisioningConfig.Builder baseBuilder = ProvisioningConfig.builder().initUniverses(originalConfig) .addOptions(originalConfig.getOptions()); if (originalConfig.hasTransitiveDeps()) { for (FeaturePackConfig fp : originalConfig.getTransitiveDeps()) { baseBuilder.addFeaturePackDep(originalConfig.originOf(fp.getLocation().getProducer()), fp); } } for (FeaturePackConfig fp : originalConfig.getFeaturePackDeps()) { baseBuilder.addFeaturePackDep(originalConfig.originOf(fp.getLocation().getProducer()), fp); } baseBuilder.setInheritConfigs(false); baseBuilder.includeDefaultConfig(model, name); baseBuilder.addConfig(getBaseConfig(definedConfig)); ProvisioningConfig baseC = baseBuilder.build(); try(ProvisioningRuntime baseRt = ProvisioningRuntimeBuilder.newInstance(log).initLayout(layout.getFactory(), baseC).build()) { return getRequiredProvisionedConfig(baseRt.getConfigs(), model, name); } } }
/** * Removes universe spec associated with the name from the provisioning configuration * @param name name of the universe spec or null for the default universe spec * @throws ProvisioningException in case of an error */ public void removeUniverse(String name) throws ProvisioningException { ProvisioningConfig config = getProvisioningConfig(); if(config == null || !config.hasUniverse(name)) { return; } config = ProvisioningConfig.builder(config).removeUniverse(name).build(); try { ProvisioningXmlWriter.getInstance().write(config, PathsUtils.getProvisioningXml(home)); } catch (Exception e) { throw new ProvisioningException(Errors.writeFile(PathsUtils.getProvisioningXml(home)), e); } this.provisioningConfig = config; }
/** * Apply provisioning plan to the currently provisioned installation * * @param plan provisioning plan * @param options provisioning plugin options * @throws ProvisioningException in case of a failure */ public void apply(ProvisioningPlan plan, 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)) { layout.apply(plan, options); doProvision(layout, getFsDiff(), false); } }
/** * Add named universe spec to the provisioning configuration * * @param name universe name * @param universeSpec universe spec * @throws ProvisioningException in case of an error */ public void addUniverse(String name, UniverseSpec universeSpec) throws ProvisioningException { final ProvisioningConfig config = ProvisioningConfig.builder(getProvisioningConfig()).addUniverse(name, universeSpec).build(); try { ProvisioningXmlWriter.getInstance().write(config, PathsUtils.getProvisioningXml(home)); } catch (Exception e) { throw new ProvisioningException(Errors.writeFile(PathsUtils.getProvisioningXml(home)), e); } this.provisioningConfig = config; }
public static PluginResolver newResolver(PmSession session, FeaturePackLocation loc) throws ProvisioningDescriptionException { ProvisioningConfig config = ProvisioningConfig.builder().addFeaturePackDep(loc).build(); return new PluginResolver(session, config); }
public void uninstall(FPID fpid, Map<String, String> pluginOptions) throws ProvisioningException { rebuild(uninstall(fpid, ProvisioningConfig.builder(config)).build(), true); initPluginOptions(pluginOptions, true); }
public void install(FeaturePackConfig fpConfig, Map<String, String> pluginOptions) throws ProvisioningException { rebuild(install(fpConfig, ProvisioningConfig.builder(config)).build(), false); initPluginOptions(pluginOptions, false); }
private static ProvisioningRuntime buildFullRuntime(FPID fpid, PmSession pmSession) throws ProvisioningException { FeaturePackConfig config = FeaturePackConfig.forLocation(fpid.getLocation()); ProvisioningConfig provisioning = ProvisioningConfig.builder().addFeaturePackDep(config).build(); ProvisioningRuntime runtime = ProvisioningRuntimeBuilder.newInstance(pmSession.getMessageWriter(false)) .initLayout(pmSession.getLayoutFactory(), provisioning) .setEncoding(ProvisioningManager.Builder.ENCODING) .build(); return runtime; } }
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(); } }
/** * Builds a layout for the configuration including the feature-pack contained in the local archive. * Optionally, installs the feature-pack archive to the universe repository. * * @param featurePack feature-pack archive * @param installInUniverse whether to install the feature-pack into the universe repository * @return layout * @throws ProvisioningException in case of a failure */ public ProvisioningLayout<FeaturePackLayout> newConfigLayout(Path featurePack, boolean installInUniverse) throws ProvisioningException { return newConfigLayout(ProvisioningConfig.builder().addFeaturePackDep(addLocal(featurePack, installInUniverse)).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); } }
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); } }
private void init(PmSession pmSession) throws ProvisioningException, IOException { builder = ProvisioningConfig.builder(); config = builder.build(); runtime = ProvisioningRuntimeBuilder.newInstance(pmSession.getMessageWriter(false)) .initLayout(pmSession.getLayoutFactory(), config) .setEncoding(ProvisioningManager.Builder.ENCODING) .build(); container = FeatureContainers.fromProvisioningRuntime(pmSession, runtime); container.setEdit(true); path = "" + PathParser.PATH_SEPARATOR; }
@Override public ProvisioningConfig parse(final Reader input) throws XMLStreamException, ProvisioningDescriptionException { final ProvisioningConfig.Builder builder = ProvisioningConfig.builder(); XmlParsers.parse(input, builder); return builder.build(); } }