@Override public String getName() { return spec.getName(); }
public PackageSpec build() { return new PackageSpec(this); } }
private PackageBuilder(FeaturePackBuilder fp, String name) { this.fp = fp; pkg = PackageSpec.builder(name); }
if (pkg.hasLocalPackageDeps()) { for(PackageDependencySpec pkgDep : pkg.getLocalPackageDeps()) { final PackageSpec depSpec = packages.get(pkgDep.getName()); if(depSpec == null) { throw new ProvisioningDescriptionException(Errors.unsatisfiedPackageDependencies(fpid, pkg.getName(), notFound)); if(pkg.hasExternalPackageDeps()) { for(String origin : pkg.getPackageOrigins()) { try { spec.getFeaturePackDep(origin); } catch(ProvisioningDescriptionException e) { throw new ProvisioningDescriptionException(Errors.unknownFeaturePackDependencyName(fpid, pkg.getName(), origin), e);
private void buildGroups(Group grp, PackageInfo pkg, PackageInfoBuilder builder) { Group gp = allPackagesGroups.get(pkg.getIdentity()); if (gp == null) { gp = Group.fromIdentity(pkg.getIdentity()); allPackagesGroups.put(pkg.getIdentity(), gp); gp.setPackage(pkg); for (PackageDependencySpec s : pkg.getSpec().getLocalPackageDeps()) { buildGroups(gp, builder.build(Identity.fromString(s.getName()), pkg), builder); } for (String o : pkg.getSpec().getPackageOrigins()) { for (PackageDependencySpec p : pkg.getSpec().getExternalPackageDeps(o)) { buildGroups(gp, builder.build(Identity.fromString(o, p.getName()), pkg), builder); } } } grp.addGroup(gp); } }
protected ElementNode toElement(PackageSpec pkgSpec) { final ElementNode pkg = addElement(null, Element.PACKAGE_SPEC); addAttribute(pkg, Attribute.NAME, pkgSpec.getName()); if(pkgSpec.hasPackageDeps()) { writePackageDeps(pkgSpec, addElement(pkg, Element.DEPENDENCIES.getLocalName(), Element.DEPENDENCIES.getNamespace())); } return pkg; }
boolean isPassiveWithSatisfiedDeps() { if(type != PackageDependencySpec.PASSIVE) { return false; } final int specRequiredDeps = spec.getRequiredPackageDepsTotal(); if(specRequiredDeps == 0 || !setFlag(VISITED)) { return true; } if(specRequiredDeps != requiredDeps.size()) { return false; } for(PackageRuntime.Builder dep : requiredDeps) { if(!dep.isFlagOn(INCLUDED)) { return false; } } clearFlag(VISITED); return true; }
throw new ProvisioningException(Errors.parseXml(pkgXml), e); if (!pkgBuilder.spec.getName().equals(pkgName)) { throw new ProvisioningDescriptionException("Feature-pack " + getFPID() + " package spec name " + pkgBuilder.spec.getName() + " does not match the requested package name " + pkgName); if(pkgBuilder.spec.hasPackageDeps()) { final FeaturePackRuntimeBuilder currentOrigin = rt.setOrigin(this); try {
void schedule() { if(setFlag(SCHEDULED)) { fp.pkgOrder.add(spec.getName()); } }
@Override public PackageSpec parse(final Reader input) throws XMLStreamException { final Builder pkgBuilder = PackageSpec.builder(); XmlParsers.parse(input, pkgBuilder); return pkgBuilder.build(); } }
public static PackageSpec forName(String name) { return new PackageSpec(name); }
public Builder addPackage(PackageSpec pkg) { packages = CollectionUtils.put(packages, pkg.getName(), pkg); return this; }
public PackageSpec build(Path fpDir) { final PackageSpec pkgSpec = pkg.build(); final Path pkgDir; try { pkgDir = LayoutUtils.getPackageDir(fpDir, pkgSpec.getName(), false); } catch (ProvisioningDescriptionException e) { throw new IllegalStateException(e); } try { Files.createDirectories(pkgDir); if(tasks != null && !tasks.isEmpty()) { tasks.execute(FsTaskContext.builder().setTargetRoot(pkgDir).build()); } PackageXmlWriter.getInstance().write(pkgSpec, pkgDir.resolve(Constants.PACKAGE_XML)); } catch (XMLStreamException | IOException e) { throw new IllegalStateException(e); } return pkgSpec; } }
public static String getPackage(PmSession session, FeaturePackLocation.FPID fpid, String pkg) throws PathParserException, PathConsumerException, ProvisioningException, Exception { String path = FeatureContainerPathConsumer.PACKAGES_PATH + pkg + (pkg.endsWith("" + PathParser.PATH_SEPARATOR) ? "" : PathParser.PATH_SEPARATOR); FeatureContainer full = FeatureContainers.fromFeaturePackId(session, fpid, null); FeatureContainerPathConsumer consumer = new FeatureContainerPathConsumer(full, false); PathParser.parse(path, consumer); Group grp = consumer.getCurrentNode(path); if (grp == null || grp.getPackage() == null) { throw new ProvisioningException("Not a valid package " + pkg); } return grp.getPackage().getSpec().getName(); }
final PackageSpec pkgDescr = pkg.build(fpWorkDir); if(pkg.isDefault()) { fpBuilder.addDefaultPackage(pkgDescr.getName());