private FeaturePackConfig.Builder getFpcBuilder(FPID fpid) { FeaturePackConfig.Builder fpcBuilder = updatedDirectFps.get(fpid); if(fpcBuilder != null) { return fpcBuilder; } fpcBuilder = updatedTransitiveFps.get(fpid); if(fpcBuilder != null) { return fpcBuilder; } fpcBuilder = addedTransitiveFps.get(fpid); if(fpcBuilder != null) { return fpcBuilder; } FeaturePackConfig fpc = provisionedConfig.getFeaturePackDep(fpid.getProducer()); if(fpc != null) { fpcBuilder = FeaturePackConfig.builder(fpc); updatedDirectFps = CollectionUtils.put(updatedDirectFps, fpid, fpcBuilder); return fpcBuilder; } fpc = provisionedConfig.getTransitiveDep(fpid.getProducer()); if(fpc != null) { fpcBuilder = FeaturePackConfig.builder(fpc); updatedTransitiveFps = CollectionUtils.put(updatedTransitiveFps, fpid, fpcBuilder); return fpcBuilder; } fpcBuilder = FeaturePackConfig.transitiveBuilder(fpid.getLocation()); addedTransitiveFps = CollectionUtils.putLinked(addedTransitiveFps, fpid, fpcBuilder); return fpcBuilder; }
private static String buildDependencies(PmCommandInvocation invoc, ProvisioningLayout<FeaturePackLayout> layout) throws ProvisioningException { Map<FPID, FeaturePackConfig> configs = new HashMap<>(); List<FeaturePackLocation> dependencies = new ArrayList<>(); for (FeaturePackLayout fpLayout : layout.getOrderedFeaturePacks()) { boolean isProduct = true; for (FeaturePackLayout fpLayout2 : layout.getOrderedFeaturePacks()) { if (fpLayout2.getSpec().hasTransitiveDep(fpLayout.getFPID().getProducer()) || fpLayout2.getSpec().getFeaturePackDep(fpLayout.getFPID().getProducer()) != null) { isProduct = false; break; } } if (!isProduct) { FeaturePackLocation loc = invoc.getPmSession().getExposedLocation(null, fpLayout.getFPID().getLocation()); dependencies.add(loc); FeaturePackConfig transitiveConfig = layout.getConfig().getTransitiveDep(fpLayout.getFPID().getProducer()); configs.put(loc.getFPID(), transitiveConfig); } } return buildDependencies(dependencies, configs); }
FeaturePackConfig targetConfig = config.getFeaturePackDep(patchTarget); if(targetConfig == null) { targetConfig = config.getTransitiveDep(patchTarget); if(targetConfig == null) { throw new ProvisioningException("Target feature-pack for patch " + fpid + " could not be found");
installedFpConfig = config.getTransitiveDep(fpSpec.getPatchFor().getProducer());