FeatureGroup getFeatureGroupSpec(String name) throws ProvisioningException { if(fgSpecs != null) { final FeatureGroup fgSpec = fgSpecs.get(name); if(fgSpec != null) { return fgSpec; } } final Path specXml = dir.resolve(Constants.FEATURE_GROUPS).resolve(name + ".xml"); if (!Files.exists(specXml)) { return null; } try (BufferedReader reader = Files.newBufferedReader(specXml)) { final FeatureGroup fgSpec = FeatureGroupXmlParser.getInstance().parse(reader); if(!fgSpec.getName().equals(name)) { throw new ProvisioningDescriptionException("Feature-pack " + getFPID() + " feature group " + fgSpec.getName() + " does not match the requested feature group name " + name); } if (fgSpecs == null) { fgSpecs = new HashMap<>(); } fgSpecs.put(name, fgSpec); return fgSpec; } catch (Exception e) { throw new ProvisioningException(Errors.parseXml(specXml), e); } }
public ResolvedFeatureSpec getFeatureSpec(String name) throws ProvisioningException { if(featureSpecs != null) { final ResolvedFeatureSpec resolvedSpec = featureSpecs.get(name); if(resolvedSpec != null) { return resolvedSpec; } } final Path specXml = dir.resolve(Constants.FEATURES).resolve(name).resolve(Constants.SPEC_XML); if (!Files.exists(specXml)) { return null; } try (BufferedReader reader = Files.newBufferedReader(specXml)) { final FeatureSpec xmlSpec = FeatureSpecXmlParser.getInstance().parse(reader); if(!xmlSpec.getName().equals(name)) { throw new ProvisioningDescriptionException("Feature-pack " + getFPID() + " feature spec " + xmlSpec.getName() + " does not match the requested feature spec name " + name); } final ResolvedFeatureSpec resolvedSpec = new ResolvedFeatureSpec(new ResolvedSpecId(producer, xmlSpec.getName()), featureParamTypeProvider, xmlSpec); if (featureSpecs == null) { featureSpecs = new HashMap<>(); } featureSpecs.put(name, resolvedSpec); return resolvedSpec; } catch (Exception e) { throw new ProvisioningDescriptionException(Errors.parseXml(specXml), e); } }
throw new ProvisioningDescriptionException("Feature-pack " + getFPID() + " package spec name " + pkgBuilder.spec.getName() + " does not match the requested package name " + pkgName); rt.processPackageDeps(pkgBuilder.spec, pkgBuilder); } catch(UnsatisfiedPackageDependencyException e) { throw new UnsatisfiedPackageDependencyException(getFPID(), pkgName, e); } catch(ProvisioningException e) { throw new ProvisioningException(Errors.resolvePackage(getFPID(), pkgName), e); } finally { rt.setOrigin(currentOrigin);
if(fpConfigStack.isPackageExcluded(currentOrigin.producer, dep.getName())) { if(!dep.isOptional()) { throw new UnsatisfiedPackageDependencyException(currentOrigin.getFPID(), dep.getName()); if (fpConfigStack.isPackageExcluded(currentOrigin.producer, dep.getName())) { if (!dep.isOptional()) { throw new UnsatisfiedPackageDependencyException(currentOrigin.getFPID(), dep.getName());