package com.thalesgroup.gradle.pde.tasks; import java.io.File; import java.io.IOException; import java.io.InputStream; public class GenerateAllElementsAction { public static final String FEATURE_TEMPLATE = " <ant antfile=\"${genericTargets}\" target=\"${target}\">\n" + " <property name=\"type\" value=\"feature\" />\n" + " <property name=\"id\" value=\"feature.name\" />\n" + " </ant>\n"; public static final String ASSEMBLE_TEMPLATE = " <property name=\"assemble.feature.name\" value=\"true\" />\n" + " <target name=\"assemble.feature.name\">\n" + " <ant antfile=\"${assembleScriptName}\" dir=\"${buildDirectory}\"/>\n" + " </target>\n"; public GenerateAllElementsAction() { } public void generate(String builderDir, String... features) throws IOException { StringBuilder featureNames = new StringBuilder(); StringBuilder featureAssemblies = new StringBuilder(); for (String f : features) { featureNames.append(FEATURE_TEMPLATE.replace("feature.name", f)); featureAssemblies.append(ASSEMBLE_TEMPLATE.replace("feature.name", f)); } InputStream allElementsIs = this.getClass().getResourceAsStream("/allElements.xml"); ReplaceElt[] replacements = new ReplaceElt[] { new ReplaceElt("gradleFeatureNames", featureNames.toString()), new ReplaceElt("gradleFeatureAssemblies", featureAssemblies.toString()) }; AntUtil.processResource(allElementsIs, new File(builderDir), "allElements.xml", replacements); allElementsIs.close(); } }