private ProvisioningLayout<FeaturePackRuntimeBuilder> newConfigLayout(ProvisioningConfig provisioningConfig, Map<String, String> pluginOptions) throws ProvisioningException { return getLayoutFactory().newConfigLayout(provisioningConfig, ProvisioningRuntimeBuilder.FP_RT_FACTORY, pluginOptions); }
/** * Installs a feature-pack provided as a local archive. * * @param featurePack path to feature-pack archive * @param installInUniverse whether to install the feature-pack artifact into the universe repository * @throws ProvisioningException in case installation fails */ public void install(Path featurePack, boolean installInUniverse) throws ProvisioningException { install(getLayoutFactory().addLocal(featurePack, installInUniverse)); }
/** * Query for available updates and patches for feature-packs in this layout. * * @param includeTransitive whether to include transitive dependencies into the result * @return available updates * @throws ProvisioningException in case of a failure */ public ProvisioningPlan getUpdates(boolean includeTransitive) throws ProvisioningException { final ProvisioningConfig config = getProvisioningConfig(); ProvisioningPlan plan; if (config == null) { plan = ProvisioningPlan.builder(); } else { try (ProvisioningLayout<?> layout = getLayoutFactory().newConfigLayout(config)) { plan = layout.getUpdates(includeTransitive); } } return plan; }
/** * Query for available updates and patches for specific producers. * If no producer is passed as an argument, the method will return * the update plan for only the feature-packs installed directly by the user. * * @param producers producers to include into the update plan * @return update plan * @throws ProvisioningException in case of a failure */ public ProvisioningPlan getUpdates(ProducerSpec... producers) throws ProvisioningException { final ProvisioningConfig config = getProvisioningConfig(); ProvisioningPlan plan; if (config == null) { plan = ProvisioningPlan.builder(); } else { try (ProvisioningLayout<?> layout = getLayoutFactory().newConfigLayout(config)) { plan = layout.getUpdates(producers); } } return plan; }
/** * 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); } }
public static List<FeaturePackLocation> getInstallationLocations(Path installation, PmSession session, boolean transitive, boolean patches) { List<FeaturePackLocation> items = new ArrayList<>(); try { PathsUtils.assertInstallationDir(installation); ProvisioningManager mgr = session. newProvisioningManager(installation, false); try (ProvisioningLayout<FeaturePackLayout> layout = mgr.getLayoutFactory().newConfigLayout(mgr.getProvisioningConfig())) { for (FeaturePackLayout fp : layout.getOrderedFeaturePacks()) { if (fp.isDirectDep() || (fp.isTransitiveDep() && transitive)) { items.add(fp.getFPID().getLocation()); } if (patches) { List<FeaturePackLayout> appliedPatches = layout.getPatches(fp.getFPID()); for (FeaturePackLayout patch : appliedPatches) { items.add(patch.getFPID().getLocation()); } } } } } catch (Exception ex) { CliLogging.completionException(ex); } return items; }
fpl = manager.getLayoutFactory().addLocal(localPath, false);
/** * Merge user changes recognized by the provisioning plug-ins (such as * changes to the configuration files) into the provisioning configuration * file describing the state of the installation). * * @return true if some changes have been persisted, false otherwise. * @throws ProvisioningException in case the merge fails */ public boolean persistChanges() throws ProvisioningException { final ProvisioningDiffProvider diffProvider = getDiffMergedConfig(); if(diffProvider == null) { return false; } final ProvisioningConfig mergedConfig = diffProvider.getMergedConfig(); if(mergedConfig.equals(getProvisioningConfig())) { return false; } try (ProvisioningLayout<FeaturePackRuntimeBuilder> layout = getLayoutFactory().newConfigLayout(mergedConfig, ProvisioningRuntimeBuilder.FP_RT_FACTORY, false)) { doProvision(layout, diffProvider.getFsDiff(), false); } return true; }
private static void addCustomUpdates(ProvisioningPlan plan, List<FeaturePackLocation> custom, ProvisioningManager mgr) throws ProvisioningException { try (ProvisioningLayout<?> layout = mgr.getLayoutFactory().newConfigLayout(mgr.getProvisioningConfig())) { for (FeaturePackLocation loc : custom) { FeaturePackLayout fpl = layout.getFeaturePack(loc.getProducer()); FeaturePackLocation current = fpl.getFPID().getLocation(); FeaturePackUpdatePlan fpPlan = FeaturePackUpdatePlan.request(current, fpl.isTransitiveDep()).setNewLocation(loc).buildPlan(); if (fpPlan.hasNewLocation()) { plan.update(fpPlan); } } } }
/** * Uninstalls the specified feature-pack. * * @param fpid feature-pack ID * @param pluginOptions provisioning plugin options * @throws ProvisioningException in case of a failure */ public void uninstall(FeaturePackLocation.FPID fpid, Map<String, String> pluginOptions) throws ProvisioningException { ProvisioningConfig config = getProvisioningConfig(); if(config == null || !config.hasFeaturePackDeps()) { throw new ProvisioningException(Errors.unknownFeaturePack(fpid)); } try(ProvisioningLayout<FeaturePackRuntimeBuilder> layout = getLayoutFactory().newConfigLayout(config, ProvisioningRuntimeBuilder.FP_RT_FACTORY, false)) { layout.uninstall(resolveUniverseSpec(fpid.getLocation()).getFPID(), pluginOptions); doProvision(layout, getFsDiff(), false); } }
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); } }
fpl = pm.getLayoutFactory().addLocal(fp.getNormalizedPath(), false); } else if (fp.getGroupId() != null && fp.getArtifactId() != null) { Path path = resolveMaven(fp, (MavenRepoManager) artifactResolver); fpl = pm.getLayoutFactory().addLocal(path, false); } else { fpl = FeaturePackLocation.fromString(fp.getLocation()); pm.getLayoutFactory().addLocal(localResolverItem.getNormalizedPath(), localResolverItem.getInstallInUniverse()); } else if (localResolverItem.hasArtifactCoords()) { Path path = resolveMaven(localResolverItem, (MavenRepoManager) artifactResolver); pm.getLayoutFactory().addLocal(path, false); } else { throw new MojoExecutionException("resolve-local element appears to be neither path not maven artifact");