/** * NOTE: this method will change the current origin to the origin of the group! */ private FeatureGroup getFeatureGroupSpec(String name) throws ProvisioningException { final FeatureGroup fg = getFeatureGroupSpec(currentOrigin, name); clearVisitedFPs(); if(fg == null) { throw new ProvisioningDescriptionException("Failed to locate feature group '" + name + "' in " + (currentOrigin == null ? "the provisioning configuration" : currentOrigin.producer + " and its dependencies")); } return fg; }
private void processFeatureGroup(FeatureGroupSupport includedFg) throws ProvisioningException { final boolean pushed = configStack.pushGroup(includedFg); final FeaturePackRuntimeBuilder originalOrigin = currentOrigin; try { final FeatureGroupSupport originalFg = getFeatureGroupSpec(includedFg.getName()); if (originalFg.hasPackageDeps()) { processPackageDeps(originalFg, null); } if (!pushed) { return; } processConfigItemContainer(originalFg); } finally { currentOrigin = originalOrigin; } configStack.popGroup(); if(includedFg.hasItems()) { processConfigItemContainer(includedFg); } }
private FeatureGroup getFeatureGroupSpec(FeaturePackRuntimeBuilder origin, String name) throws ProvisioningException { final FeaturePackDepsConfig fpDeps; if(origin != null) { if(origin.isVisited()) { return null; } final FeatureGroup fg = origin.getFeatureGroupSpec(name); if(fg != null) { currentOrigin = origin; return fg; } fpDeps = origin.getSpec(); setVisited(origin); } else { fpDeps = config; } if (!fpDeps.hasFeaturePackDeps()) { return null; } for (FeaturePackConfig fpDep : fpDeps.getFeaturePackDeps()) { final FeatureGroup fg = getFeatureGroupSpec(layout.getFeaturePack(fpDep.getLocation().getProducer()), name); if (fg != null) { return fg; } } return null; }
if(!(fg.isConfig() || fg.isLayer())) { final FeaturePackRuntimeBuilder originalOrigin = currentOrigin; getFeatureGroupSpec(fg.getName()); fgOrigin = currentOrigin.producer; currentOrigin = originalOrigin;