### Eclipse Workspace Patch 1.0
#P org.eclipse.equinox.p2.director.app
Index: src/org/eclipse/equinox/internal/p2/director/app/Application.java
===================================================================
RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Application.java,v
retrieving revision 1.43
diff -u -r1.43 Application.java
--- src/org/eclipse/equinox/internal/p2/director/app/Application.java 21 Jan 2009 19:51:47 -0000 1.43
+++ src/org/eclipse/equinox/internal/p2/director/app/Application.java 13 Feb 2009 00:06:52 -0000
@@ -38,10 +38,11 @@
public class Application implements IApplication {
private static final Integer EXIT_ERROR = new Integer(13);
- static private String FLAVOR_DEFAULT = "tooling"; //$NON-NLS-1$
- static private String EXEMPLARY_SETUP = "org.eclipse.equinox.p2.exemplarysetup"; //$NON-NLS-1$
- static private String FRAMEWORKADMIN_EQUINOX = "org.eclipse.equinox.frameworkadmin.equinox"; //$NON-NLS-1$
- static private String SIMPLE_CONFIGURATOR_MANIPULATOR = "org.eclipse.equinox.simpleconfigurator.manipulator"; //$NON-NLS-1$
+ static private final String ANT_PROPERTY_PREFIX = "${"; //$NON-NLS-1$
+ static private final String FLAVOR_DEFAULT = "tooling"; //$NON-NLS-1$
+ static private final String EXEMPLARY_SETUP = "org.eclipse.equinox.p2.exemplarysetup"; //$NON-NLS-1$
+ static private final String FRAMEWORKADMIN_EQUINOX = "org.eclipse.equinox.frameworkadmin.equinox"; //$NON-NLS-1$
+ static private final String SIMPLE_CONFIGURATOR_MANIPULATOR = "org.eclipse.equinox.simpleconfigurator.manipulator"; //$NON-NLS-1$
public static final int COMMAND_INSTALL = 0;
public static final int COMMAND_UNINSTALL = 1;
@@ -331,7 +332,8 @@
}
if (opt.equalsIgnoreCase("-version")) { //$NON-NLS-1$
- version = new Version(arg);
+ if (arg != null && !arg.startsWith(ANT_PROPERTY_PREFIX))
+ version = new Version(arg);
}
if (opt.equalsIgnoreCase(COMMAND_NAMES[COMMAND_UNINSTALL])) {
#P org.eclipse.pde.build
Index: src/org/eclipse/pde/internal/build/IXMLConstants.java
===================================================================
RCS file: /cvsroot/eclipse/pde/build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/IXMLConstants.java,v
retrieving revision 1.83
diff -u -r1.83 IXMLConstants.java
--- src/org/eclipse/pde/internal/build/IXMLConstants.java 6 Feb 2009 22:11:37 -0000 1.83
+++ src/org/eclipse/pde/internal/build/IXMLConstants.java 13 Feb 2009 00:06:54 -0000
@@ -65,6 +65,8 @@
public static final String TARGET_ROOT_TARGET = "rootTarget"; //$NON-NLS-1$
public static final String TARGET_CUSTOM_ASSEMBLY = "customAssembly"; //$NON-NLS-1$
public static final String TARGET_P2_METADATA = "generate.p2.metadata"; //$NON-NLS-1$
+ public static final String TARGET_RUN_DIRECTOR = "runDirector"; //$NON-NLS-1$
+
// properties
public static final String PROPERTY_ARCH = "arch"; //$NON-NLS-1$
public static final String PROPERTY_BASE_ARCH = "basearch"; //$NON-NLS-1$
@@ -153,6 +155,7 @@
public static final String PROPERTY_OMIT_ROOTFILES = "updateJar.omitRootfiles"; //$NON-NLS-1$
public static final String PROPERTY_GENERATE_API_DESCRIPTION = "generateAPIDescription"; //$NON-NLS-1$
public static final String PROPERTY_BINARY_FOLDERS = "binary.folders"; //$NON-NLS-1$
+ public static final String PROPERTY_LAUNCHER_JAR = "equinoxLauncherJar"; //$NON-NLS-1$
//Jar processor properties
public static final String PROPERTY_SIGN_ALIAS = "sign.alias"; //$NON-NLS-1$
Index: src/org/eclipse/pde/internal/build/IBuildPropertiesConstants.java
===================================================================
RCS file: /cvsroot/eclipse/pde/build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/IBuildPropertiesConstants.java,v
retrieving revision 1.36
diff -u -r1.36 IBuildPropertiesConstants.java
--- src/org/eclipse/pde/internal/build/IBuildPropertiesConstants.java 6 Feb 2009 22:11:37 -0000 1.36
+++ src/org/eclipse/pde/internal/build/IBuildPropertiesConstants.java 13 Feb 2009 00:06:54 -0000
@@ -96,9 +96,15 @@
public static final String PROPERTY_P2_COMPRESS = "p2.compress"; //$NON-NLS-1$
public static final String PROPERTY_P2_METADATA_REPO_NAME = "p2.metadata.repo.name"; //$NON-NLS-1$
public static final String PROPERTY_P2_ARTIFACT_REPO_NAME = "p2.artifact.repo.name"; //$NON-NLS-1$
- public static final String PROPERTY_P2_BUILD_REPO = "p2.build.repo"; //$NON-NLS-1$
+
//Internal usage only
+ public static final String PROPERTY_P2_BUILD_REPO = "p2.build.repo"; //$NON-NLS-1$
public static final String PROPERTY_P2_GENERATION_MODE = "p2.generation.mode"; //$NON-NLS-1$
+ public static final String PROPERTY_P2_REPO = "p2.repo"; //$NON-NLS-1$
+ public static final String PROPERTY_P2_DIRECTOR_IU = "p2.director.iu"; //$NON-NLS-1$
+ public static final String PROPERTY_P2_DIRECTOR_VERSION = "p2.director.version"; //$NON-NLS-1$
+ public static final String PROPERTY_P2_DIRECTOR_INSTALLPATH = "p2.director.installPath"; //$NON-NLS-1$
+
public static final String SOURCE_PLUGIN = "sourcePlugin"; //$NON-NLS-1$
public static final String PROPERTY_PACKAGER_MODE = "packagerMode"; //$NON-NLS-1$
Index: src/org/eclipse/pde/internal/build/P2ConfigScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/pde/build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/P2ConfigScriptGenerator.java,v
retrieving revision 1.2
diff -u -r1.2 P2ConfigScriptGenerator.java
--- src/org/eclipse/pde/internal/build/P2ConfigScriptGenerator.java 12 Feb 2009 21:41:32 -0000 1.2
+++ src/org/eclipse/pde/internal/build/P2ConfigScriptGenerator.java 13 Feb 2009 00:06:54 -0000
@@ -9,10 +9,15 @@
package org.eclipse.pde.internal.build;
+import java.io.File;
import java.util.*;
-import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.*;
import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.pde.internal.build.ant.AntScript;
+import org.eclipse.pde.internal.build.ant.FileSet;
import org.eclipse.pde.internal.build.site.BuildTimeFeature;
+import org.eclipse.pde.internal.build.site.BuildTimeSite;
+import org.eclipse.pde.internal.build.site.compatibility.FeatureEntry;
public class P2ConfigScriptGenerator extends AssembleConfigScriptGenerator {
private AssemblyInformation assemblyInformation = null;
@@ -32,14 +37,14 @@
initializeCollections();
try {
- openScript(directory, "assemble." + featureId + ".p2.xml"); //$NON-NLS-1$ //$NON-NLS-2$
+ String prefix = assembling ? "assemble." : "package."; //$NON-NLS-1$ //$NON-NLS-2$
+ openScript(directory, prefix + featureId + ".p2.xml"); //$NON-NLS-1$
} catch (CoreException e) {
return;
}
generatePrologue();
generateMainBegin();
generateGatherCalls();
- generateBrandingCalls();
generateMetadataCalls();
generateMainEnd();
@@ -110,24 +115,94 @@
}
}
script.printDeleteTask(Utils.getPropertyFormat(PROPERTY_ASSEMBLY_TMP) + "/p2.branding", null, null); //$NON-NLS-1$
+ script.println();
}
protected void generateMetadataTarget() {
- script.printTargetDeclaration(TARGET_P2_METADATA, null, null, null, null);
+ script.printTargetDeclaration(TARGET_P2_METADATA, null, null, assembling ? PROPERTY_RUN_PACKAGER : null, null);
+
+ generateBrandingCalls();
ProductFile product = getProductFile();
if (product != null) {
+
+ String productPath = product.getLocation();
+ String productDir = getWorkingDirectory() + '/' + DEFAULT_FEATURE_LOCATION + '/' + CONTAINER_FEATURE + "/product"; //$NON-NLS-1$
+ File productFile = new File(productPath);
+ String newProduct = new File(productDir, productFile.getName()).getAbsolutePath();
+ script.printCopyFileTask(productPath, newProduct, true);
+
+ File parent = new File(productPath).getParentFile();
+ File p2Inf = new File(parent, "p2.inf"); //$NON-NLS-1$
+ if (p2Inf.exists())
+ script.printCopyTask(p2Inf.getAbsolutePath(), productDir, null, false, true);
+ generateProductReplaceTask(product, newProduct);
+ productPath = newProduct;
+
script.printTab();
script.print(""); //$NON-NLS-1$
}
script.printTargetEnd();
}
+ //TODO this is duplicated from AssembleScriptGenerator
+ protected void generateProductReplaceTask(ProductFile product, String productDirectory) {
+ if (product == null)
+ return;
+
+ BuildTimeSite site = null;
+ try {
+ site = getSite(false);
+ } catch (CoreException e1) {
+ return;
+ }
+
+ List productEntries = product.getProductEntries();
+ String mappings = Utils.getEntryVersionMappings((FeatureEntry[]) productEntries.toArray(new FeatureEntry[productEntries.size()]), site);
+ script.println(""); //$NON-NLS-1$ //$NON-NLS-2$
+ else
+ script.println(" pluginIds=\"" + mappings + "\"/>"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ return;
+ }
+
protected void generateEpilogue() {
script.printProjectEnd();
}
+
+ protected void generateGatherBinPartsTarget() {
+ if (assembling) {
+ super.generateGatherBinPartsTarget();
+ return;
+ }
+
+ script.printTargetDeclaration(TARGET_GATHER_BIN_PARTS, null, null, null, null);
+
+ ArrayList p2Features = new ArrayList();
+ ArrayList p2Bundles = new ArrayList();
+ for (int i = 0; i < plugins.length; i++) {
+ Path pluginLocation = new Path(plugins[i].getLocation());
+ p2Bundles.add(new FileSet(pluginLocation.removeLastSegments(1).toOSString(), null, pluginLocation.lastSegment(), null, null, null, null));
+
+ }
+
+ for (int i = 0; i < features.length; i++) {
+ IPath featureLocation = new Path(features[i].getURL().getPath());
+ featureLocation = featureLocation.removeLastSegments(1);
+ p2Features.add(new FileSet(featureLocation.removeLastSegments(1).toOSString(), null, featureLocation.lastSegment(), null, null, null, null));
+ }
+
+ String repo = Utils.getPropertyFormat(PROPERTY_P2_BUILD_REPO);
+ script.printP2PublishFeaturesAndBundles(repo, repo, (FileSet[]) p2Bundles.toArray(new FileSet[p2Bundles.size()]), (FileSet[]) p2Features.toArray(new FileSet[p2Features.size()]), Utils.getPropertyFormat(PROPERTY_P2_CATEGORY_SITE));
+
+ script.printTargetEnd();
+ script.println();
+ }
}
Index: src/org/eclipse/pde/internal/build/IPDEBuildConstants.java
===================================================================
RCS file: /cvsroot/eclipse/pde/build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/IPDEBuildConstants.java,v
retrieving revision 1.48
diff -u -r1.48 IPDEBuildConstants.java
--- src/org/eclipse/pde/internal/build/IPDEBuildConstants.java 6 Feb 2009 22:11:37 -0000 1.48
+++ src/org/eclipse/pde/internal/build/IPDEBuildConstants.java 13 Feb 2009 00:06:54 -0000
@@ -39,6 +39,7 @@
public final static String MANIFEST = "MANIFEST.MF"; //$NON-NLS-1$
// default values
+ public final static String PROPERTY_GENERIC_TARGETS = "genericTargets"; //$NON-NLS-1$
public final static String DEFAULT_BUILD_SCRIPT_FILENAME = "build.xml"; //$NON-NLS-1$
public final static String DEFAULT_FEATURE_LOCATION = "features"; //$NON-NLS-1$
public final static String DEFAULT_FETCH_SCRIPT_FILENAME = "fetch.xml"; //$NON-NLS-1$
Index: src/org/eclipse/pde/internal/build/AssembleScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/pde/build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/AssembleScriptGenerator.java,v
retrieving revision 1.37
diff -u -r1.37 AssembleScriptGenerator.java
--- src/org/eclipse/pde/internal/build/AssembleScriptGenerator.java 6 Feb 2009 22:11:37 -0000 1.37
+++ src/org/eclipse/pde/internal/build/AssembleScriptGenerator.java 13 Feb 2009 00:06:54 -0000
@@ -110,7 +110,7 @@
basicGenerateAssembleConfigFileTargetCall(current, configInfo[0], configInfo[1], configInfo[2], configInfo[3]);
}
}
- if (configScriptGenerator.haveP2Bundles())
+ if (configScriptGenerator.haveP2Bundles() && !BuildDirector.p2Gathering)
script.printAntCallTask(TARGET_P2_METADATA, true, null);
script.printTargetEnd();
}
@@ -125,6 +125,7 @@
p2ConfigGenerator.initialize(directory, featureId);
p2ConfigGenerator.generate();
+ script.printTab();
script.print(""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
}
@@ -492,13 +528,14 @@
if (embeddedSource)
generateGatherSourceTarget();
generatePostProcessingTarget();
- generateArchivingTarget();
+ generateArchivingTarget(true);
if (FORMAT_TAR.equalsIgnoreCase(archiveFormat))
generateGZipTarget(true);
generateCustomAssemblyTarget();
generateMetadataTarget();
+ generateDirectorTarget(true);
script.printProjectEnd();
script.close();
Index: src/org/eclipse/pde/internal/build/ant/AntScript.java
===================================================================
RCS file: /cvsroot/eclipse/pde/build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/ant/AntScript.java,v
retrieving revision 1.60
diff -u -r1.60 AntScript.java
--- src/org/eclipse/pde/internal/build/ant/AntScript.java 11 Feb 2009 22:59:03 -0000 1.60
+++ src/org/eclipse/pde/internal/build/ant/AntScript.java 13 Feb 2009 00:06:54 -0000
@@ -102,6 +102,7 @@
bundles[i].printAs("bundles", this); //$NON-NLS-1$
}
indent--;
+ printTab();
output.println(""); //$NON-NLS-1$
}
Index: src/org/eclipse/pde/internal/build/packager/PackageScriptGenerator.java
===================================================================
RCS file: /cvsroot/eclipse/pde/build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/packager/PackageScriptGenerator.java,v
retrieving revision 1.26
diff -u -r1.26 PackageScriptGenerator.java
--- src/org/eclipse/pde/internal/build/packager/PackageScriptGenerator.java 6 Feb 2009 22:11:37 -0000 1.26
+++ src/org/eclipse/pde/internal/build/packager/PackageScriptGenerator.java 13 Feb 2009 00:06:54 -0000
@@ -47,7 +47,18 @@
}
protected void generateP2ConfigFileTargetCall() {
- //empty
+ P2ConfigScriptGenerator p2ConfigGenerator = new P2ConfigScriptGenerator(assemblageInformation, false);
+ p2ConfigGenerator.setProduct(productLocation);
+ p2ConfigGenerator.initialize(directory, featureId);
+ p2ConfigGenerator.generate();
+
+ script.printTab();
+ script.print(""); //$NON-NLS-1$
}
protected void basicGenerateAssembleConfigFileTargetCall(Config aConfig, Collection binaryPlugins, Collection binaryFeatures, Collection allFeatures, Collection rootFiles) throws CoreException {
@@ -59,6 +70,7 @@
configScriptGenerator.setBuildSiteFactory(siteFactory);
configScriptGenerator.generate();
+ script.printTab();
script.print("
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+