Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Niefer2009-05-07 22:47:42 +0000
committerAndrew Niefer2009-05-07 22:47:42 +0000
commit57713caf095eb010a3fa977e6e409e695f160647 (patch)
tree3a267bf619c03cdfb1bb4d9491498801de88dfa2 /bundles/org.eclipse.equinox.p2.publisher
parent202af9c95a0db8f602819a57dd088dbab7008423 (diff)
downloadrt.equinox.p2-57713caf095eb010a3fa977e6e409e695f160647.tar.gz
rt.equinox.p2-57713caf095eb010a3fa977e6e409e695f160647.tar.xz
rt.equinox.p2-57713caf095eb010a3fa977e6e409e695f160647.zip
bug 274467 - multiple entries in eclipse.ini
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.publisher')
-rw-r--r--bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java16
-rw-r--r--bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductAction.java7
-rw-r--r--bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductFileAdvice.java35
3 files changed, 48 insertions, 10 deletions
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java
index 208318eed..a6ee6db83 100644
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java
+++ b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java
@@ -10,15 +10,14 @@
******************************************************************************/
package org.eclipse.equinox.p2.publisher;
-import org.eclipse.equinox.internal.provisional.p2.core.VersionedName;
-
import java.io.*;
import java.util.*;
import org.eclipse.core.runtime.*;
import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
import org.eclipse.equinox.internal.p2.core.helpers.FileUtils.IPathComputer;
-import org.eclipse.equinox.internal.p2.publisher.*;
+import org.eclipse.equinox.internal.p2.publisher.Activator;
+import org.eclipse.equinox.internal.p2.publisher.SingleElementCollector;
import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
import org.eclipse.equinox.internal.provisional.p2.core.*;
@@ -71,7 +70,7 @@ public abstract class AbstractPublisherAction implements IPublisherAction {
}
- private static final String CONFIG_ANY = "ANY"; //$NON-NLS-1$
+ public static final String CONFIG_ANY = "ANY"; //$NON-NLS-1$
public static final String CONFIG_SEGMENT_SEPARATOR = "."; //$NON-NLS-1$
protected IPublisherInfo info;
@@ -102,6 +101,15 @@ public abstract class AbstractPublisherAction implements IPublisherAction {
for (int i = 0; i < result.length; i++)
if (result[i].equals("*")) //$NON-NLS-1$
result[i] = CONFIG_ANY;
+
+ if (result.length < 3) {
+ String[] temp = new String[3];
+ System.arraycopy(result, 0, temp, 0, result.length);
+ for (int i = result.length; i < temp.length; i++) {
+ temp[i] = CONFIG_ANY;
+ }
+ result = temp;
+ }
return result;
}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductAction.java
index 91adec467..28a0f0bd9 100644
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductAction.java
+++ b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductAction.java
@@ -9,13 +9,12 @@
******************************************************************************/
package org.eclipse.equinox.p2.publisher.eclipse;
-import org.eclipse.equinox.internal.provisional.p2.core.VersionedName;
-
import java.io.File;
import java.util.*;
import org.eclipse.core.runtime.*;
import org.eclipse.equinox.internal.p2.publisher.eclipse.IProductDescriptor;
import org.eclipse.equinox.internal.provisional.p2.core.Version;
+import org.eclipse.equinox.internal.provisional.p2.core.VersionedName;
import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.p2.publisher.*;
import org.eclipse.equinox.p2.publisher.actions.*;
@@ -113,7 +112,7 @@ public class ProductAction extends AbstractPublisherAction {
if (productFileLocation == null)
return;
- AdviceFileAdvice advice = new AdviceFileAdvice(product.getId(), new Version(product.getVersion()), new Path(productFileLocation.getParent()), new Path("p2.inf")); //$NON-NLS-1$
+ AdviceFileAdvice advice = new AdviceFileAdvice(product.getId(), Version.parseVersion(product.getVersion()), new Path(productFileLocation.getParent()), new Path("p2.inf")); //$NON-NLS-1$
if (advice.containsAdvice())
info.addAdvice(advice);
}
@@ -131,7 +130,7 @@ public class ProductAction extends AbstractPublisherAction {
private void createProductAdvice() {
id = product.getId();
- version = new Version(product.getVersion());
+ version = Version.parseVersion(product.getVersion());
name = product.getProductName();
if (name == null || name.length() == 0) // If the name is not defined, use the ID
name = product.getId();
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductFileAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductFileAdvice.java
index d52ba379b..812f18a34 100644
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductFileAdvice.java
+++ b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/eclipse/ProductFileAdvice.java
@@ -32,7 +32,9 @@ public class ProductFileAdvice extends AbstractAdvice implements ILicenseAdvice,
private final static String SPLASH_PREFIX = "platform:/base/plugins/"; //$NON-NLS-1$
private IProductDescriptor product;
private String configSpec;
+ private String ws;
private String os;
+ private String arch;
private ConfigData configData = null;
protected String getId() {
@@ -54,7 +56,18 @@ public class ProductFileAdvice extends AbstractAdvice implements ILicenseAdvice,
public ProductFileAdvice(IProductDescriptor product, String configSpec) {
this.product = product;
this.configSpec = configSpec;
- os = AbstractPublisherAction.parseConfigSpec(configSpec)[1];
+
+ String[] config = AbstractPublisherAction.parseConfigSpec(configSpec);
+ ws = config[0];
+ if (ws == null)
+ ws = AbstractPublisherAction.CONFIG_ANY;
+ os = config[1];
+ if (os == null)
+ os = AbstractPublisherAction.CONFIG_ANY;
+ arch = config[2];
+ if (arch == null)
+ arch = AbstractPublisherAction.CONFIG_ANY;
+
configData = getConfigData();
}
@@ -259,8 +272,26 @@ public class ProductFileAdvice extends AbstractAdvice implements ILicenseAdvice,
protected boolean matchConfig(String spec, boolean includeDefault) {
if (spec != null) {
+ String targetWS = AbstractPublisherAction.parseConfigSpec(spec)[0];
+ if (targetWS == null)
+ targetWS = AbstractPublisherAction.CONFIG_ANY;
+ if (!ws.equals(targetWS) && !ws.equals(AbstractPublisherAction.CONFIG_ANY) && !targetWS.equals(AbstractPublisherAction.CONFIG_ANY)) {
+ return false;
+ }
+
String targetOS = AbstractPublisherAction.parseConfigSpec(spec)[1];
- return os.equals(targetOS);
+ if (targetOS == null)
+ targetOS = AbstractPublisherAction.CONFIG_ANY;
+ if (!os.equals(targetOS) && !os.equals(AbstractPublisherAction.CONFIG_ANY) && !targetOS.equals(AbstractPublisherAction.CONFIG_ANY)) {
+ return false;
+ }
+
+ String targetArch = AbstractPublisherAction.parseConfigSpec(spec)[2];
+ if (targetArch == null)
+ targetArch = AbstractPublisherAction.CONFIG_ANY;
+ if (!arch.equals(targetArch) && !arch.equals(AbstractPublisherAction.CONFIG_ANY) && !targetArch.equals(AbstractPublisherAction.CONFIG_ANY)) {
+ return false;
+ }
}
return true;
}

Back to the top