private static void writeOrigin(ElementNode deps, String origin, Collection<PackageDependencySpec> depGroup, String ns) { final ElementNode fpElement = addElement(deps, PackageDepsSpecXmlParser.ORIGIN, ns); addAttribute(fpElement, Attribute.NAME, origin); for(PackageDependencySpec depSpec : depGroup) { writePackageDependency(fpElement, depSpec, ns); } }
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; }
private static void writePackageDependency(ElementNode deps, PackageDependencySpec depSpec, String ns) { final ElementNode depElement = addElement(deps, PackageDepsSpecXmlParser.PACKAGE, ns); addAttribute(depElement, Attribute.NAME, depSpec.getName()); if(depSpec.isOptional()) { if(depSpec.isPassive()) { addAttribute(depElement, PackageDepsSpecXmlParser.Attribute.PASSIVE, TRUE); } else { addAttribute(depElement, PackageDepsSpecXmlParser.Attribute.OPTIONAL, TRUE); } } } }
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; } }
static void writePackageDeps(PackageDepsSpec pkgDeps, ElementNode deps) { if(pkgDeps.hasLocalPackageDeps()) { for(PackageDependencySpec depSpec : pkgDeps.getLocalPackageDeps()) { writePackageDependency(deps, depSpec, deps.getNamespace()); } } if(pkgDeps.hasExternalPackageDeps()) { for(String origin : pkgDeps.getPackageOrigins()) { writeOrigin(deps, origin, pkgDeps.getExternalPackageDeps(origin), deps.getNamespace()); } } }
protected ElementNode toElement(FeatureGroup featureGroup, String ns) { final ElementNode fgE = addElement(null, Element.FEATURE_GROUP_SPEC.getLocalName(), ns); if(featureGroup.getName() != null) { addAttribute(fgE, Attribute.NAME, featureGroup.getName()); } //addFeatureGroupIncludeExclude(featureGroup, ns, fgE); writeFeatureGroupSpecBody(fgE, featureGroup, ns); if(featureGroup.hasPackageDeps()) { PackageXmlWriter.writePackageDeps(featureGroup, addElement(fgE, Element.PACKAGES.getLocalName(), ns)); } return fgE; }
public static void addFeatureGroupDepBody(FeatureGroupSupport dep, final ElementNode depE, String ns) { if(dep.getName() != null) { addAttribute(depE, Attribute.NAME, dep.getName()); } if(!dep.isInheritFeatures()) { addAttribute(depE, Attribute.INHERIT_FEATURES, FALSE); } addFeatureGroupIncludeExclude(dep, ns, depE); writeFeatureGroupSpecBody(depE, dep, ns); if(dep.hasExternalFeatureGroups()) { for(Map.Entry<String, FeatureGroup> entry : dep.getExternalFeatureGroups().entrySet()) { final ElementNode fpE = addElement(depE, Element.ORIGIN.getLocalName(), ns); addAttribute(fpE, Attribute.NAME, entry.getKey()); addFeatureGroupIncludeExclude(entry.getValue(), ns, fpE); } } if(dep.hasPackageDeps()) { PackageXmlWriter.writePackageDeps(dep, addElement(depE, Element.PACKAGES.getLocalName(), ns)); } }
PackageXmlWriter.writePackageDeps(featureSpec, addElement(specE, Element.PACKAGES));