diff options
author | Andrew Niefer | 2009-05-07 22:47:42 +0000 |
---|---|---|
committer | Andrew Niefer | 2009-05-07 22:47:42 +0000 |
commit | 57713caf095eb010a3fa977e6e409e695f160647 (patch) | |
tree | 3a267bf619c03cdfb1bb4d9491498801de88dfa2 /bundles/org.eclipse.equinox.p2.publisher | |
parent | 202af9c95a0db8f602819a57dd088dbab7008423 (diff) | |
download | rt.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')
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; } |