Index: src/org/eclipse/pde/internal/build/IPDEBuildConstants.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/IPDEBuildConstants.java,v
retrieving revision 1.38
diff -u -r1.38 IPDEBuildConstants.java
--- src/org/eclipse/pde/internal/build/IPDEBuildConstants.java 8 May 2006 15:18:35 -0000 1.38
+++ src/org/eclipse/pde/internal/build/IPDEBuildConstants.java 22 Mar 2007 04:03:23 -0000
@@ -41,6 +41,7 @@
public final static String GENERIC_VERSION_NUMBER = "0.0.0"; //$NON-NLS-1$
public final static String ANY_STRING = "ANY"; //$NON-NLS-1$
public final static String DEFAULT_ASSEMBLE_NAME = "assemble"; //$NON-NLS-1$
+ public final static String DEFAULT_PACKAGE_NAME = "package"; //$NON-NLS-1$
public final static String DEFAULT_ASSEMBLE_ALL = "all.xml"; //$NON-NLS-1$
public final static String DEFAULT_CUSTOM_TARGETS = "customTargets"; //$NON-NLS-1$
public final static String DEFAULT_RETRIEVE_FILENAME_DESCRIPTOR = "retrieve.xml"; //$NON-NLS-1$
Index: src/org/eclipse/pde/internal/build/AssembleScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/AssembleScriptGenerator.java,v
retrieving revision 1.21
diff -u -r1.21 AssembleScriptGenerator.java
--- src/org/eclipse/pde/internal/build/AssembleScriptGenerator.java 8 May 2006 15:18:35 -0000 1.21
+++ src/org/eclipse/pde/internal/build/AssembleScriptGenerator.java 22 Mar 2007 04:03:22 -0000
@@ -68,7 +68,7 @@
features.addAll(configInfo[2]);
rootFiles.addAll(configInfo[3]);
}
- basicGenerateAssembleConfigFileTargetCall(new Config("group","group","group") , allPlugins, allFeatures, features, rootFiles);
+ basicGenerateAssembleConfigFileTargetCall(new Config("group","group","group") , allPlugins, allFeatures, features, rootFiles); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
} else {
for (Iterator allConfigs = getConfigInfos().iterator(); allConfigs.hasNext();) {
Config current = (Config) allConfigs.next();
@@ -83,6 +83,23 @@
return new Collection[] { assemblageInformation.getCompiledPlugins(aConfig), assemblageInformation.getCompiledFeatures(aConfig), assemblageInformation.getFeatures(aConfig), assemblageInformation.getRootFileProviders(aConfig) };
}
+ /**
+ * TODO: Rename this to something more understandable. Suggest
+ * generateAssembleConfigFileTargetCall.
+ *
+ * @param aConfig
+ * Configurationd details.
+ * @param binaryPlugins
+ * all binary plugins.
+ * @param binaryFeatures
+ * all binary features.
+ * @param allFeatures
+ * all features.
+ * @param rootFiles
+ * all root files
+ * @throws CoreException
+ * failures.
+ */
protected void basicGenerateAssembleConfigFileTargetCall(Config aConfig, Collection binaryPlugins, Collection binaryFeatures, Collection allFeatures, Collection rootFiles) throws CoreException {
// generate the script for a configuration
configScriptGenerator.initialize(directory, featureId, aConfig, binaryPlugins, binaryFeatures, allFeatures, rootFiles);
@@ -91,11 +108,39 @@
configScriptGenerator.setGroupConfigs(groupConfigs);
configScriptGenerator.generate();
- Map params = new HashMap(1);
- params.put("assembleScriptName", configScriptGenerator.getTargetName() + ".xml"); //$NON-NLS-1$ //$NON-NLS-2$
- script.printAntTask(Utils.getPropertyFormat(DEFAULT_CUSTOM_TARGETS), null, configScriptGenerator.getTargetName(), null, null, params);
- }
-
+ Map params = new HashMap(2);
+ String targetName = getTargetScriptName(aConfig);
+ String assembleScriptName = getAssembleScriptName();
+ params.put("assembleScriptName", assembleScriptName + ".xml"); //$NON-NLS-1$ //$NON-NLS-2$
+ script.printAntTask(Utils.getPropertyFormat(DEFAULT_CUSTOM_TARGETS), null, targetName, null, null, params);
+ }
+
+ /**
+ * Returns the name of the Ant target to invoke.
+ *
+ * This is a Template Method (325) from GOF for
+ * {@link #basicGenerateAssembleConfigFileTargetCall(Config, Collection, Collection, Collection, Collection)}.
+ *
+ * @param aConfig
+ * configuration available, if needed to genereate result.
+ * @return the name of the Ant target to invoke
+ */
+ protected String getTargetScriptName(Config aConfig) {
+ return configScriptGenerator.getTargetName();
+ }
+
+ /**
+ * Return the value of the assembleScriptName parameter in the ant task.
+ *
+ * This is a Template Method (325) from GOF for
+ * {@link #basicGenerateAssembleConfigFileTargetCall(Config, Collection, Collection, Collection, Collection)}.
+ *
+ * @return the value of the assembleScriptName parameter in the ant task
+ */
+ protected String getAssembleScriptName() {
+ return configScriptGenerator.getTargetName();
+ }
+
public void setSignJars(boolean value) {
configScriptGenerator.setSignJars(value);
}
Index: src/org/eclipse/pde/internal/build/BuildScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/BuildScriptGenerator.java,v
retrieving revision 1.60
diff -u -r1.60 BuildScriptGenerator.java
--- src/org/eclipse/pde/internal/build/BuildScriptGenerator.java 3 May 2006 21:04:14 -0000 1.60
+++ src/org/eclipse/pde/internal/build/BuildScriptGenerator.java 22 Mar 2007 04:03:23 -0000
@@ -173,30 +173,139 @@
generator.generate();
}
- if (generator != null && generateAssembleScript == true) {
- String[] featureInfo = null;
- if (features.size() == 1)
- featureInfo = getNameAndVersion((String) features.get(0));
- else
- featureInfo = new String[] {"all"}; //$NON-NLS-1$
-
- generateAssembleScripts(assemblageInformation, featureInfo, generator.siteFactory);
-
- if (features.size() == 1)
- featureInfo = getNameAndVersion((String) features.get(0));
- else
- featureInfo = new String[] {""}; //$NON-NLS-1$
-
- generatePackageScripts(assemblageInformation, featureInfo, generator.siteFactory);
- }
- if (generateVersionsList)
- generateVersionsLists(assemblageInformation);
- } finally {
- if (generator != null)
- generator.getSite(false).getRegistry().cleanupOriginalState();
- }
- }
-
+ if (generator != null && generateAssembleScript == true) {
+ String featureIdForAssemble = "all"; //$NON-NLS-1$
+ String featureIdForPackage = ""; //$NON-NLS-1$
+ if (features.size() == 1) {
+ featureIdForAssemble = getNameAndVersion((String) features.get(0))[0];
+ featureIdForPackage = featureIdForAssemble;
+ }
+
+ generateAssembleScripts(assemblageInformation, featureIdForAssemble, generator.siteFactory);
+ generatePackageScripts(assemblageInformation, featureIdForPackage, generator.siteFactory);
+ }
+ if (generateVersionsList)
+ generateVersionsLists(assemblageInformation);
+ } finally {
+ if (generator != null)
+ generator.getSite(false).getRegistry().cleanupOriginalState();
+ }
+ }
+
+ /**
+ * Generate the Assembly Scripts for the specified feature.
+ *
+ * @param assemblageInformation
+ * assemblageInformation .
+ * @param featureInfo
+ * the feature to generate scripts for.
+ * @param factory
+ * BuildTimeSiteFactory.
+ * @throws CoreException
+ * failures.
+ */
+ private void generateAssembleScripts(AssemblyInformation assemblageInformation, String featureInfo, BuildTimeSiteFactory factory) throws CoreException {
+ AssembleScriptGenerator assembler = createAssembleScriptGenerator(workingDirectory, assemblageInformation, featureInfo);
+ initialiseAssembleScriptGenerator(assembler, factory);
+ assembler.generate();
+ }
+
+ /**
+ * Create an AssembleScriptGenerator
for generating an Assemble
+ * Script.
+ *
+ * This is a Template Method (325) from GOF for
+ * {@link #generateAssembleScripts(AssemblyInformation, String, BuildTimeSiteFactory)}.
+ *
+ * @param directory
+ * see AssembleScriptGenerator
+ * @param assemblageInformation
+ * see AssembleScriptGenerator
+ * @param featureId
+ * see AssembleScriptGenerator
+ * @return an AssembleScriptGenerator
+ * @see AssembleScriptGenerator
+ */
+ protected AssembleScriptGenerator createAssembleScriptGenerator(String directory, AssemblyInformation assemblageInformation, String featureId) {
+ return new AssembleScriptGenerator(directory, assemblageInformation, featureId);
+ }
+
+ /**
+ * Initialise the AssembleScriptGenerator
used for generating
+ * an Assemble Script.
+ *
+ * This is a Template Method (325) from GOF for
+ * {@link #generateAssembleScripts(AssemblyInformation, String, BuildTimeSiteFactory)}.
+ *
+ * @param generator
+ * AssembleScriptGenerator to be initialised.
+ * @param factory
+ * BuildTimeSiteFactory used in generating scripts.
+ */
+ protected void initialiseAssembleScriptGenerator(AssembleScriptGenerator generator, BuildTimeSiteFactory factory) {
+ generator.setSignJars(signJars);
+ generator.setGenerateJnlp(generateJnlp);
+ generator.setArchivesFormat(getArchivesFormat());
+ generator.setProduct(product);
+ generator.setGroupConfigs(groupConfigs);
+ generator.setBuildSiteFactory(factory);
+ }
+
+ /**
+ * Generate the Package Scripts for the specified feature.
+ *
+ * @param assemblageInformation
+ * assemblageInformation.
+ * @param featureInfothe
+ * feature to generate scripts for.
+ * @param factory
+ * BuildTimeSiteFactory.
+ * @throws CoreException
+ * failures.
+ */
+ private void generatePackageScripts(AssemblyInformation assemblageInformation, String featureInfo, BuildTimeSiteFactory factory) throws CoreException {
+ PackageScriptGenerator assembler = createPackageScriptGenerator(workingDirectory, assemblageInformation, featureInfo);
+ initialisePackageScriptGenerator(assembler, factory);
+
+ assembler.generate();
+ }
+
+ /**
+ * Create the PackageScriptGenerator
for generating a Package
+ * Script.
+ *
+ * This is a Template Method (325) from GOF for
+ * {@link #generatePackageScripts(AssemblyInformation, String, BuildTimeSiteFactory)}
+ *
+ * @param directory
+ * see PackageScriptGenerator
+ * @param assemblageInformation
+ * see PackageScriptGenerator
+ * @param featureId
+ * see PackageScriptGenerator
+ * @return a PackageScriptGenerator
+ * @see PackageScriptGenerator
+ */
+ protected PackageScriptGenerator createPackageScriptGenerator(String directory, AssemblyInformation assemblageInformation, String featureId) {
+ return new PackageScriptGenerator(directory, assemblageInformation, featureId);
+ }
+
+ /**
+ * Initialise the PackageScriptGenerator
used for generating a
+ * Package Script.
+ *
+ * This ia a Template Method (325) from GOF for
+ * {@link #generatePackageScripts(AssemblyInformation, String, BuildTimeSiteFactory)}.
+ *
+ * @param generator
+ * PackageScriptGenerator to be initialised.
+ * @param factory
+ * BuildTimeSiteFactory used in generating scripts.
+ */
+ protected void initialisePackageScriptGenerator(PackageScriptGenerator generator, BuildTimeSiteFactory factory) {
+ initialiseAssembleScriptGenerator(generator, factory);
+ }
+
protected void generateVersionsLists(AssemblyInformation assemblageInformation) throws CoreException {
if (assemblageInformation == null)
return;
@@ -306,29 +415,6 @@
}
}
- protected void generatePackageScripts(AssemblyInformation assemblageInformation, String[] featureInfo, BuildTimeSiteFactory factory) throws CoreException {
- PackageScriptGenerator assembler = null;
- assembler = new PackageScriptGenerator(workingDirectory, assemblageInformation, featureInfo[0]);
- assembler.setSignJars(signJars);
- assembler.setGenerateJnlp(generateJnlp);
- assembler.setArchivesFormat(getArchivesFormat());
- assembler.setProduct(product);
- assembler.setBuildSiteFactory(factory);
- assembler.setGroupConfigs(groupConfigs);
- assembler.generate();
- }
-
- private void generateAssembleScripts(AssemblyInformation assemblageInformation, String[] featureInfo, BuildTimeSiteFactory factory) throws CoreException {
- AssembleScriptGenerator assembler = new AssembleScriptGenerator(workingDirectory, assemblageInformation, featureInfo[0]);
- assembler.setSignJars(signJars);
- assembler.setGenerateJnlp(generateJnlp);
- assembler.setArchivesFormat(getArchivesFormat());
- assembler.setProduct(product);
- assembler.setBuildSiteFactory(factory);
- assembler.setGroupConfigs(groupConfigs);
- assembler.generate();
- }
-
public void setGenerateArchive(boolean generateArchive) {
this.generateArchive = generateArchive;
}
Index: src/org/eclipse/pde/internal/build/BundleHelper.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/BundleHelper.java,v
retrieving revision 1.10
diff -u -r1.10 BundleHelper.java
--- src/org/eclipse/pde/internal/build/BundleHelper.java 8 May 2006 15:18:35 -0000 1.10
+++ src/org/eclipse/pde/internal/build/BundleHelper.java 22 Mar 2007 04:03:23 -0000
@@ -111,4 +111,13 @@
log = null;
}
}
+
+ public void log(String msg, Throwable t) {
+ Platform.getLog(bundle).log(new Status(IStatus.INFO, bundle.getSymbolicName(), IStatus.OK, msg, t));
+ }
+
+ public void log(String msg) {
+ log(msg, null);
+ }
+
}
Index: src/org/eclipse/pde/internal/build/AssembleConfigScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/AssembleConfigScriptGenerator.java,v
retrieving revision 1.71
diff -u -r1.71 AssembleConfigScriptGenerator.java
--- src/org/eclipse/pde/internal/build/AssembleConfigScriptGenerator.java 8 May 2006 15:18:35 -0000 1.71
+++ src/org/eclipse/pde/internal/build/AssembleConfigScriptGenerator.java 22 Mar 2007 04:03:22 -0000
@@ -37,6 +37,8 @@
protected Properties featuresPostProcessingSteps;
protected ArrayList addedByPermissions = new ArrayList(); //contains the list of files and folders that have been added to an archive by permission management
+ private static final int MAX_ZIP_EXEC_COMMAND_PARAMETERS = 15;
+
private static final String PROPERTY_SOURCE = "source"; //$NON-NLS-1$
private static final String PROPERTY_ELEMENT_NAME = "elementName"; //$NON-NLS-1$
@@ -131,8 +133,8 @@
if (embeddedSource)
generateGatherSourceCalls();
generatePostProcessingSteps();
- generateBrandingCalls();
- generateArchivingSteps();
+ generateBrandingCalls(); // BAE: TODO: PACKAGE ONLY???
+ generateArchivingSteps(); // BAE: TODO: PACKAGE ONLY???
generateEpilogue();
}
@@ -466,56 +468,47 @@
}
private void generateZipTarget() {
- final int parameterSize = 15;
- List parameters = new ArrayList(parameterSize + 1);
- for (int i = 0; i < plugins.length; i++) {
- parameters.add(Utils.getPropertyFormat(PROPERTY_PLUGIN_ARCHIVE_PREFIX) + '/' + (String) getFinalShape(plugins[i])[0]);
- if (i % parameterSize == 0) {
- createZipExecCommand(parameters);
- parameters.clear();
- }
- }
- if (!parameters.isEmpty()) {
- createZipExecCommand(parameters);
- parameters.clear();
- }
-
- if (!parameters.isEmpty()) {
- createZipExecCommand(parameters);
- parameters.clear();
- }
-
- for (int i = 0; i < features.length; i++) {
- parameters.add(Utils.getPropertyFormat(PROPERTY_FEATURE_ARCHIVE_PREFIX) + '/' + (String) getFinalShape(features[i])[0]);
- if (i % parameterSize == 0) {
- createZipExecCommand(parameters);
- parameters.clear();
- }
- }
- if (!parameters.isEmpty()) {
- createZipExecCommand(parameters);
- parameters.clear();
- }
-
- createZipRootFileCommand();
- }
-
- /**
- * Zip the root files
- */
- private void createZipRootFileCommand() {
- if (rootFileProviders.size() == 0)
- return;
-
- List parameters = new ArrayList(1);
- parameters.add("-r -q ${zipargs} '" + Utils.getPropertyFormat(PROPERTY_ARCHIVE_FULLPATH) + "' . "); //$NON-NLS-1$ //$NON-NLS-2$
- script.printExecTask("zip", Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + configInfo.toStringReplacingAny(".", ANY_STRING), parameters, null); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- private void createZipExecCommand(List parameters) {
- parameters.add(0, "-r -q " + Utils.getPropertyFormat(PROPERTY_ZIP_ARGS) + " '" + Utils.getPropertyFormat(PROPERTY_ARCHIVE_FULLPATH) + '\''); //$NON-NLS-1$ //$NON-NLS-2$
- script.printExecTask("zip", Utils.getPropertyFormat(PROPERTY_ASSEMBLY_TMP), parameters, null); //$NON-NLS-1$
- }
+ List parameters = new ArrayList(plugins.length + features.length + 1);
+ for (int i = 0; i < plugins.length; i++) {
+ parameters.add(Utils.getPropertyFormat(PROPERTY_PLUGIN_ARCHIVE_PREFIX) + '/' + (String) getFinalShape(plugins[i])[0]);
+ }
+ for (int i = 0; i < features.length; i++) {
+ parameters.add(Utils.getPropertyFormat(PROPERTY_FEATURE_ARCHIVE_PREFIX) + '/' + (String) getFinalShape(features[i])[0]);
+ }
+ createZipExecCommand(Utils.getPropertyFormat(PROPERTY_ASSEMBLY_TMP), parameters);
+
+ if (!rootFileProviders.isEmpty()) {
+ parameters.clear();
+ parameters.add("."); //$NON-NLS-1$
+ createZipExecCommand(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + configInfo.toStringReplacingAny(".", ANY_STRING), parameters); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Create a zip command for the specified parameters. This will chunk the zip
+ * command into a command of no more that MAX_ZIP_EXEC_COMMAND_PARAMETERS.
+ *
+ * @param dir
+ * the root directory to zip from.
+ * @param lineArgs
+ * the list of parameters to the zip command.
+ */
+ private void createZipExecCommand(String dir, List lineArgs) {
+ String zipArguments = "-r -q " + Utils.getPropertyFormat(PROPERTY_ZIP_ARGS) + " '" + Utils.getPropertyFormat(PROPERTY_ARCHIVE_FULLPATH) + '\''; //$NON-NLS-1$ //$NON-NLS-2$
+ List zipLineArgs = new ArrayList(MAX_ZIP_EXEC_COMMAND_PARAMETERS + 1);
+ for (Iterator iter = lineArgs.iterator(); iter.hasNext();) {
+ zipLineArgs.add(iter.next());
+ if (zipLineArgs.size() == MAX_ZIP_EXEC_COMMAND_PARAMETERS) {
+ zipLineArgs.add(0, zipArguments);
+ script.printExecTask("zip", dir, zipLineArgs, null); //$NON-NLS-1$
+ zipLineArgs.clear();
+ }
+ }
+ if (!zipLineArgs.isEmpty()) {
+ zipLineArgs.add(0, zipArguments);
+ script.printExecTask("zip", dir, zipLineArgs, null); //$NON-NLS-1$
+ }
+ }
protected String computeArchiveName() {
String extension = (FORMAT_TAR.equalsIgnoreCase(archiveFormat) || FORMAT_ANTTAR.equalsIgnoreCase(archiveFormat)) ? ".tar.gz" : ".zip"; //$NON-NLS-1$ //$NON-NLS-2$
@@ -547,46 +540,64 @@
script.printExecTask("rm", null, args, null); //$NON-NLS-1$
}
- //TODO this code andn the generateAntTarTarget() should be refactored using a factory or something like that.
- protected void generateAntZipTarget() {
- FileSet[] filesPlugins = new FileSet[plugins.length];
- for (int i = 0; i < plugins.length; i++) {
- Object[] shape = getFinalShape(plugins[i]);
- filesPlugins[i] = new ZipFileSet(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + DEFAULT_PLUGIN_LOCATION + '/' + (String) shape[0], shape[1] == FILE, null, null, null, null, null, Utils.getPropertyFormat(PROPERTY_PLUGIN_ARCHIVE_PREFIX) + '/' + (String) shape[0], null, null);
- }
- if (plugins.length != 0)
- script.printZipTask(Utils.getPropertyFormat(PROPERTY_ARCHIVE_FULLPATH), null, false, true, filesPlugins);
-
- FileSet[] filesFeatures = new FileSet[features.length];
- for (int i = 0; i < features.length; i++) {
- Object[] shape = getFinalShape(features[i]);
- filesFeatures[i] = new ZipFileSet(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + DEFAULT_FEATURE_LOCATION + '/' + (String) shape[0], shape[1] == FILE, null, null, null, null, null, Utils.getPropertyFormat(PROPERTY_FEATURE_ARCHIVE_PREFIX) + '/' + (String) shape[0], null, null);
- }
- if (features.length != 0)
- script.printZipTask(Utils.getPropertyFormat(PROPERTY_ARCHIVE_FULLPATH), null, false, true, filesFeatures);
-
- if (rootFileProviders.size() == 0)
- return;
-
- if (groupConfigs) {
- List allConfigs = getConfigInfos();
- FileSet[] rootFiles = new FileSet[allConfigs.size()];
- int i = 0;
- for (Iterator iter = allConfigs.iterator(); iter.hasNext();) {
- Config elt = (Config) iter.next();
- rootFiles[i++] = new ZipFileSet(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + elt.toStringReplacingAny(".", ANY_STRING), false, null, "**/**", null, null, null, elt.toStringReplacingAny(".", ANY_STRING), null, null); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
- }
- script.printZipTask(Utils.getPropertyFormat(PROPERTY_ARCHIVE_FULLPATH), null, false, true, rootFiles);
- } else {
- FileSet[] permissionSets = generatePermissions(true);
- FileSet[] rootFiles = new FileSet[permissionSets.length + 1];
- String toExcludeFromArchive = Utils.getStringFromCollection(this.addedByPermissions, ","); //$NON-NLS-1$
- System.arraycopy(permissionSets, 0, rootFiles, 1, permissionSets.length);
- rootFiles[0] = new ZipFileSet(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + configInfo.toStringReplacingAny(".", ANY_STRING) + '/' + Utils.getPropertyFormat(PROPERTY_COLLECTING_FOLDER), false, null, "**/**", null, toExcludeFromArchive, null, Utils.getPropertyFormat(PROPERTY_ARCHIVE_PREFIX), null, null); //$NON-NLS-1$//$NON-NLS-2$
- script.printZipTask(Utils.getPropertyFormat(PROPERTY_ARCHIVE_FULLPATH), null, false, true, rootFiles);
- }
- }
-
+ // TODO this code andn the generateAntTarTarget() should be refactored using a
+ // factory or something like that.
+ protected void generateAntZipTarget() {
+ List fileSets = new ArrayList();
+ FileSet[] pluginsFileSets = getPluginsFileSets();
+ if (pluginsFileSets.length != 0) {
+ fileSets.addAll(Arrays.asList(pluginsFileSets));
+ }
+ FileSet[] featuresFileSets = getFeaturesFileSets();
+ if (featuresFileSets.length != 0) {
+ fileSets.addAll(Arrays.asList(featuresFileSets));
+ }
+ if (!rootFileProviders.isEmpty()) {
+ if (groupConfigs) {
+ List allConfigs = getConfigInfos();
+ for (Iterator iter = allConfigs.iterator(); iter.hasNext();) {
+ Config elt = (Config) iter.next();
+ fileSets.add(new ZipFileSet(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + elt.toStringReplacingAny(".", ANY_STRING), false, null, "**/**", null, null, null, elt.toStringReplacingAny(".", ANY_STRING), null, null)); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+ }
+ } else {
+ FileSet[] permissionSets = generatePermissions(true);
+ String toExcludeFromArchive = Utils.getStringFromCollection(this.addedByPermissions, ","); //$NON-NLS-1$
+ fileSets.add(new ZipFileSet(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + configInfo.toStringReplacingAny(".", ANY_STRING) + '/' + Utils.getPropertyFormat(PROPERTY_COLLECTING_FOLDER), false, null, "**/**", null, toExcludeFromArchive, null, Utils.getPropertyFormat(PROPERTY_ARCHIVE_PREFIX), null, null)); //$NON-NLS-1$//$NON-NLS-2$
+ if (permissionSets.length != 0) {
+ fileSets.addAll(Arrays.asList(permissionSets));
+ }
+ }
+ }
+ if (!fileSets.isEmpty()) {
+ FileSet[] filesSetsToAdd = (FileSet[]) fileSets.toArray(new FileSet[fileSets.size()]);
+ script.printZipTask(Utils.getPropertyFormat(PROPERTY_ARCHIVE_FULLPATH), null, false, true, filesSetsToAdd);
+ }
+ }
+
+ /**
+ * @return the file sets for all defined features.
+ */
+ private FileSet[] getFeaturesFileSets() {
+ FileSet[] filesFeatures = new FileSet[features.length];
+ for (int i = 0; i < features.length; i++) {
+ Object[] shape = getFinalShape(features[i]);
+ filesFeatures[i] = new ZipFileSet(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + DEFAULT_FEATURE_LOCATION + '/' + (String) shape[0], shape[1] == FILE, null, null, null, null, null, Utils.getPropertyFormat(PROPERTY_FEATURE_ARCHIVE_PREFIX) + '/' + (String) shape[0], null, null);
+ }
+ return filesFeatures;
+ }
+
+ /**
+ * @return the file sets for all defined plugins.
+ */
+ private FileSet[] getPluginsFileSets() {
+ FileSet[] filesPlugins = new FileSet[plugins.length];
+ for (int i = 0; i < plugins.length; i++) {
+ Object[] shape = getFinalShape(plugins[i]);
+ filesPlugins[i] = new ZipFileSet(Utils.getPropertyFormat(PROPERTY_ECLIPSE_BASE) + '/' + DEFAULT_PLUGIN_LOCATION + '/' + (String) shape[0], shape[1] == FILE, null, null, null, null, null, Utils.getPropertyFormat(PROPERTY_PLUGIN_ARCHIVE_PREFIX) + '/' + (String) shape[0], null, null);
+ }
+ return filesPlugins;
+ }
+
protected FileSet[] generatePermissions(boolean zip) {
String configInfix = configInfo.toString("."); //$NON-NLS-1$
String prefixPermissions = ROOT_PREFIX + configInfix + '.' + PERMISSIONS + '.';
@@ -631,7 +642,7 @@
return (FileSet[]) fileSets.toArray(new FileSet[fileSets.size()]);
}
- //TODO this code andn the generateAntZipTarget() should be refactored using a factory or something like that.
+ //TODO this code and the generateAntZipTarget() should be refactored using a factory or something like that.
private void generateAntTarTarget() {
FileSet[] filesPlugins = new FileSet[plugins.length];
for (int i = 0; i < plugins.length; i++) {
Index: src/org/eclipse/pde/internal/build/builder/ModelBuildScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ModelBuildScriptGenerator.java,v
retrieving revision 1.87
diff -u -r1.87 ModelBuildScriptGenerator.java
--- src/org/eclipse/pde/internal/build/builder/ModelBuildScriptGenerator.java 8 May 2006 15:18:35 -0000 1.87
+++ src/org/eclipse/pde/internal/build/builder/ModelBuildScriptGenerator.java 22 Mar 2007 04:03:25 -0000
@@ -609,7 +609,7 @@
private void generateRefreshTarget() {
script.println();
script.printTargetDeclaration(TARGET_REFRESH, TARGET_INIT, PROPERTY_ECLIPSE_RUNNING, null, Messages.build_plugin_refresh);
- script.printConvertPathTask(new Path(getLocation(model)).removeLastSegments(0).toOSString().replace('\\', '/'), PROPERTY_RESOURCE_PATH, false);
+ script.printConvertPathTask(Utils.getPropertyFormat(PROPERTY_BASEDIR), PROPERTY_RESOURCE_PATH, false);
script.printRefreshLocalTask(Utils.getPropertyFormat(PROPERTY_RESOURCE_PATH), "infinite"); //$NON-NLS-1$
script.printTargetEnd();
}
Index: src/org/eclipse/pde/internal/build/builder/FeatureBuildScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/FeatureBuildScriptGenerator.java,v
retrieving revision 1.86
diff -u -r1.86 FeatureBuildScriptGenerator.java
--- src/org/eclipse/pde/internal/build/builder/FeatureBuildScriptGenerator.java 8 May 2006 15:18:35 -0000 1.86
+++ src/org/eclipse/pde/internal/build/builder/FeatureBuildScriptGenerator.java 22 Mar 2007 04:03:24 -0000
@@ -1067,7 +1067,7 @@
private void generateRefreshTarget() {
script.println();
script.printTargetDeclaration(TARGET_REFRESH, TARGET_INIT, PROPERTY_ECLIPSE_RUNNING, null, NLS.bind(Messages.build_feature_refresh, featureIdentifier));
- script.printConvertPathTask(new Path(featureRootLocation).removeLastSegments(0).toOSString().replace('\\', '/'), PROPERTY_RESOURCE_PATH, false);
+ script.printConvertPathTask(Utils.getPropertyFormat(PROPERTY_BASEDIR), PROPERTY_RESOURCE_PATH, false);
script.printRefreshLocalTask(Utils.getPropertyFormat(PROPERTY_RESOURCE_PATH), "infinite"); //$NON-NLS-1$
Map params = new HashMap(2);
params.put(PROPERTY_TARGET, TARGET_REFRESH);
Index: src/org/eclipse/pde/internal/build/packager/PackageScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/packager/PackageScriptGenerator.java,v
retrieving revision 1.11
diff -u -r1.11 PackageScriptGenerator.java
--- src/org/eclipse/pde/internal/build/packager/PackageScriptGenerator.java 8 May 2006 15:18:35 -0000 1.11
+++ src/org/eclipse/pde/internal/build/packager/PackageScriptGenerator.java 22 Mar 2007 04:03:25 -0000
@@ -32,8 +32,8 @@
protected String getScriptName() {
if (backwardCompatibleName)
- return "package" + '.' + DEFAULT_ASSEMBLE_ALL;
- return "package" + '.' + (featureId.equals("") ? "" : featureId + '.') + DEFAULT_ASSEMBLE_ALL;
+ return DEFAULT_PACKAGE_NAME + '.' + DEFAULT_ASSEMBLE_ALL;
+ return DEFAULT_PACKAGE_NAME + '.' + (featureId.equals("") ? "" : featureId + '.') + DEFAULT_ASSEMBLE_ALL; //$NON-NLS-1$ //$NON-NLS-2$
}
public void setPropertyFile(String propertyFile) {
@@ -44,20 +44,23 @@
return new Collection[] {assemblageInformation.getBinaryPlugins(aConfig), assemblageInformation.getBinaryFeatures(aConfig), assemblageInformation.getFeatures(aConfig), new HashSet(0) };
}
- protected void basicGenerateAssembleConfigFileTargetCall(Config aConfig, Collection binaryPlugins, Collection binaryFeatures, Collection allFeatures, Collection rootFiles) throws CoreException {
- configScriptGenerator.initialize(directory, featureId, aConfig, binaryPlugins, binaryFeatures, allFeatures, rootFiles);
- ((PackageConfigScriptGenerator) configScriptGenerator).setPackagingPropertiesLocation(packagingPropertiesLocation);
- configScriptGenerator.setArchiveFormat((String) archivesFormat.get(aConfig));
- configScriptGenerator.setGroupConfigs(groupConfigs);
- setForceUpdateJar(forceUpdateJarFormat);
- configScriptGenerator.setBuildSiteFactory(siteFactory);
- configScriptGenerator.generate();
+ /**
+ * {@inheritDoc}
+ */
+ protected void basicGenerateAssembleConfigFileTargetCall(Config aConfig, Collection binaryPlugins, Collection binaryFeatures, Collection allFeatures, Collection rootFiles) throws CoreException {
+ ((PackageConfigScriptGenerator) configScriptGenerator).setPackagingPropertiesLocation(packagingPropertiesLocation);
+ setForceUpdateJar(forceUpdateJarFormat);
- Map params = new HashMap(1);
- params.put("assembleScriptName", configScriptGenerator.getTargetName() + ".xml");
- script.printAntTask(Utils.getPropertyFormat(DEFAULT_CUSTOM_TARGETS), null, computeBackwardCompatibleName(aConfig), null, null, params);
- }
+ super.basicGenerateAssembleConfigFileTargetCall(aConfig, binaryPlugins, binaryFeatures, allFeatures, rootFiles);
+ }
+ /**
+ * {@inheritDoc}
+ */
+ protected String getTargetScriptName(Config aConfig) {
+ return computeBackwardCompatibleName(aConfig);
+ }
+
public void setBackwardCompatibleName(boolean value) {
backwardCompatibleName = value;
}
Index: src/org/eclipse/pde/internal/build/packager/PackagerGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/packager/PackagerGenerator.java,v
retrieving revision 1.5
diff -u -r1.5 PackagerGenerator.java
--- src/org/eclipse/pde/internal/build/packager/PackagerGenerator.java 12 May 2005 15:55:17 -0000 1.5
+++ src/org/eclipse/pde/internal/build/packager/PackagerGenerator.java 22 Mar 2007 04:03:25 -0000
@@ -11,8 +11,8 @@
package org.eclipse.pde.internal.build.packager;
import java.util.List;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.pde.internal.build.*;
+
+import org.eclipse.pde.internal.build.AssemblyInformation;
import org.eclipse.pde.internal.build.BuildScriptGenerator;
import org.eclipse.pde.internal.build.Utils;
import org.eclipse.pde.internal.build.site.BuildTimeSiteFactory;
@@ -39,21 +39,27 @@
}
}
- protected void generatePackageScripts(AssemblyInformation assemblageInformation, String[] featureInfo, BuildTimeSiteFactory factory) throws CoreException {
- PackageScriptGenerator assembler = null;
- if (groupConfigs)
- assembler = new DeltaPackScriptGenerator(workingDirectory, assemblageInformation, featureInfo[0]);
- else
- assembler = new PackageScriptGenerator(workingDirectory, assemblageInformation, featureInfo[0]);
-
- assembler.setSignJars(signJars);
- assembler.setGenerateJnlp(generateJnlp);
- assembler.setArchivesFormat(getArchivesFormat());
- assembler.setPropertyFile(propertyFile);
- assembler.setBackwardCompatibleName(true);
- assembler.setBuildSiteFactory(factory);
- assembler.generate();
- }
+ /**
+ * {@inheritDoc}
+ */
+ protected PackageScriptGenerator createPackageScriptGenerator(String directory, AssemblyInformation assemblageInformation, String featureId) {
+ if (groupConfigs) {
+ return new DeltaPackScriptGenerator(workingDirectory, assemblageInformation, featureId);
+ }
+ return new PackageScriptGenerator(workingDirectory, assemblageInformation, featureId);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void initialisePackageScriptGenerator(PackageScriptGenerator generator, BuildTimeSiteFactory factory) {
+ generator.setSignJars(signJars);
+ generator.setGenerateJnlp(generateJnlp);
+ generator.setArchivesFormat(getArchivesFormat());
+ generator.setPropertyFile(propertyFile);
+ generator.setBackwardCompatibleName(true);
+ generator.setBuildSiteFactory(factory);
+ }
public void setPropertyFile(String propertyFile) {
this.propertyFile = propertyFile;
Index: src/org/eclipse/pde/internal/build/packager/DeltaPackScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/packager/DeltaPackScriptGenerator.java,v
retrieving revision 1.4
diff -u -r1.4 DeltaPackScriptGenerator.java
--- src/org/eclipse/pde/internal/build/packager/DeltaPackScriptGenerator.java 8 May 2006 15:18:35 -0000 1.4
+++ src/org/eclipse/pde/internal/build/packager/DeltaPackScriptGenerator.java 22 Mar 2007 04:03:25 -0000
@@ -18,12 +18,12 @@
import org.eclipse.pde.internal.build.Config;
public class DeltaPackScriptGenerator extends PackageScriptGenerator {
- public DeltaPackScriptGenerator(String directory, AssemblyInformation assemblageInformation, String featureId) throws CoreException {
+ public DeltaPackScriptGenerator(String directory, AssemblyInformation assemblageInformation, String featureId) {
super(directory, assemblageInformation, featureId);
groupConfigs = true;
}
protected void basicGenerateAssembleConfigFileTargetCall(Config aConfig, Collection binaryPlugins, Collection binaryFeatures, Collection allFeatures, Collection rootFiles) throws CoreException {
- super.basicGenerateAssembleConfigFileTargetCall(new Config("delta", "delta", "delta"), binaryPlugins, binaryFeatures, allFeatures, rootFiles);
+ super.basicGenerateAssembleConfigFileTargetCall(new Config("delta", "delta", "delta"), binaryPlugins, binaryFeatures, allFeatures, rootFiles); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
}
Index: META-INF/MANIFEST.MF
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/META-INF/MANIFEST.MF,v
retrieving revision 1.17.2.1
diff -u -r1.17.2.1 MANIFEST.MF
--- META-INF/MANIFEST.MF 7 Jul 2006 19:23:06 -0000 1.17.2.1
+++ META-INF/MANIFEST.MF 22 Mar 2007 04:03:21 -0000
@@ -13,13 +13,13 @@
org.eclipse.core.runtime.compatibility;bundle-version="[3.1.100,4.0.0)";resolution:=optional
Export-Package:
org.eclipse.pde.build,
- org.eclipse.pde.internal.build;x-friends:="org.eclipse.pde.core,org.eclipse.pde.ui",
- org.eclipse.pde.internal.build.ant;x-internal:=true,
- org.eclipse.pde.internal.build.builder;x-internal:=true,
- org.eclipse.pde.internal.build.fetch;x-internal:=true,
- org.eclipse.pde.internal.build.packager;x-internal:=true,
- org.eclipse.pde.internal.build.properties;x-internal:=true,
- org.eclipse.pde.internal.build.site;x-internal:=true
+ org.eclipse.pde.internal.build;x-friends:="org.eclipse.pde.core,org.eclipse.pde.ui,org.eclipse.pde.build.test",
+ org.eclipse.pde.internal.build.ant;x-friends:="org.eclipse.pde.build.test",
+ org.eclipse.pde.internal.build.builder;x-friends:="org.eclipse.pde.build.test",
+ org.eclipse.pde.internal.build.fetch;x-friends:="org.eclipse.pde.build.test",
+ org.eclipse.pde.internal.build.packager;x-friends:="org.eclipse.pde.build.test",
+ org.eclipse.pde.internal.build.properties;x-friends:="org.eclipse.pde.build.test",
+ org.eclipse.pde.internal.build.site;x-friends:="org.eclipse.pde.build.test"
Import-Package: com.ibm.icu.util
Bundle-Localization: plugin
Eclipse-LazyStart: true
Index: scripts/productBuild/productBuild.xml
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.pde.build/scripts/productBuild/productBuild.xml,v
retrieving revision 1.4
diff -u -r1.4 productBuild.xml
--- scripts/productBuild/productBuild.xml 5 May 2006 14:18:27 -0000 1.4
+++ scripts/productBuild/productBuild.xml 22 Mar 2007 04:03:21 -0000
@@ -42,6 +42,8 @@
verify="${verify}"
pluginPath="${pluginPath}"
configInfo="${configs}"
+ pluginList="${pluginList}"
+ featureList="${featureList}"
/>