stream merge
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
index 037c0aa..ba6ded3 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
@@ -29,7 +29,7 @@
*
* @since 2.0
*/
- public static final String DEFAULT_INSTALLED_FEATURE_PATH = "install/features/";
+ public static final String DEFAULT_INSTALLED_FEATURE_PATH = "features/";
//$NON-NLS-1$
/**
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Version.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Version.java
deleted file mode 100644
index 67b486a..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Version.java
+++ /dev/null
@@ -1,282 +0,0 @@
-package org.eclipse.update.core;
-/*
- * (c) Copyright IBM Corp. 2000, 2002.
- * All Rights Reserved.
- */
-
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-/**
- * Version identifier. In its string representation,
- * it consists of up to 4 tokens separated by decimal point.
- * The first 3 tokens are positive integer numbers, the last token
- * is an uninterpreted string.
- * For example, the following are valid version identifiers
- * (as strings):
- * <ul>
- * <li><code>0.0.0</code></li>
- * <li><code>1.0.127564</code></li>
- * <li><code>3.7.2.build-127J</code></li>
- * <li><code>1.9</code> (interpreted as <code>1.9.0</code>)</li>
- * <li><code>3</code> (interpreted as <code>3.0.0</code>)</li>
- * </ul>
- * </p>
- * <p>
- * The version identifier can be decomposed into a major, minor,
- * service and qualifier components. A difference in the major
- * component is interpreted as an incompatible version change.
- * A difference in the minor (and not the major) component is
- * interpreted as a compatible version change. The service
- * level component is interpreted as a cumulative
- * and compatible service update of the minor version component.
- * The qualifier is not interpreted, other than in version
- * comparisons. The qualifiers are compared using lexicographical
- * string comparison.
- * @see java.lang.String#compareTo
- * </p>
- * <p>
- * Clients may instantiate; not intended to be subclassed by clients.
- */
-public final class Version {
-
- private int major = 0;
- private int minor = 0;
- private int service = 0;
- private String qualifier = null;
-
- private static final String SEPARATOR = "."; //$NON-NLS-1$
-
- private Version() {
- }
-
- /**
- * Creates a version identifier from its components.
- *
- * @param major major component of the version identifier
- * @param minor minor component of the version identifier
- * @param service service update component of the version identifier
- * @since 2.0
- */
- public Version(int major, int minor, int service) {
- this(major, minor, service, null);
- }
-
- /**
- * Creates a version identifier from its components.
- *
- * @param major major component of the version identifier
- * @param minor minor component of the version identifier
- * @param service service update component of the version identifier
- * @param qualifier component of the version identifier. Qualifier
- * characters that are not a letter or a digit are replaced.
- * @since 2.0
- */
- public Version(int major, int minor, int service, String qualifier) {
-
- if (major < 0)
- major = 0;
- if (minor < 0)
- minor = 0;
- if (service < 0)
- service = 0;
- if (qualifier == null)
- qualifier = ""; //$NON-NLS-1$
-
- this.major = major;
- this.minor = minor;
- this.service = service;
- this.qualifier = verifyQualifier(qualifier);
- }
-
- /**
- * Creates a version identifier from the given string.
- * The string represenation consists of up to 4 tokens
- * separated by decimal point.
- * For example, the following are valid version identifiers
- * (as strings):
- * <ul>
- * <li><code>0.0.0</code></li>
- * <li><code>1.0.127564</code></li>
- * <li><code>3.7.2.build-127J</code></li>
- * <li><code>1.9</code> (interpreted as <code>1.9.0</code>)</li>
- * <li><code>3</code> (interpreted as <code>3.0.0</code>)</li>
- * </ul>
- * </p>
- *
- * @param versionId string representation of the version identifier.
- * Qualifier characters that are not a letter or a digit are replaced.
- * @since 2.0
- */
- public Version(String versionId) {
-
- // set up default values
- this.major = 0;
- this.minor = 0;
- this.service = 0;
- this.qualifier = ""; //$NON-NLS-1$
-
- // parse string value
- try {
- if (versionId == null)
- versionId = "0.0.0"; //$NON-NLS-1$
-
- String s = versionId.trim();
-
- StringTokenizer st = new StringTokenizer(s, SEPARATOR);
- Vector elements = new Vector(4);
-
- while (st.hasMoreTokens()) {
- elements.addElement(st.nextToken());
- }
-
- if (elements.size() >= 1)
- this.major = (new Integer((String) elements.elementAt(0))).intValue();
- if (elements.size() >= 2)
- this.minor = (new Integer((String) elements.elementAt(1))).intValue();
- if (elements.size() >= 3)
- this.service = (new Integer((String) elements.elementAt(2))).intValue();
- if (elements.size() >= 4)
- this.qualifier = verifyQualifier((String) elements.elementAt(3));
-
- } catch (Exception e) { // use default version 0.0.0
- }
-
- }
-
- /**
- * Compare two version identifiers for equality. Identifiers are
- * equal if all of their components are equal.
- *
- * @param object an object to compare
- * @return <code>true</code> if the objects are equal,
- * <code>false</code> otherwise
- * @since 2.0
- */
- public boolean equals(Object object) {
- if (!(object instanceof Version))
- return false;
- Version v = (Version) object;
- return v.getMajorComponent() == major
- && v.getMinorComponent() == minor
- && v.getServiceComponent() == service
- && v.getQualifierComponent().equals(qualifier);
- }
-
- /**
- * Returns the major (incompatible) component of this
- * version identifier.
- *
- * @return the major version
- * @since 2.0
- */
- public int getMajorComponent() {
- return major;
- }
-
- /**
- * Returns the minor (compatible) component of this
- * version identifier.
- *
- * @return the minor version
- * @since 2.0
- */
- public int getMinorComponent() {
- return minor;
- }
-
- /**
- * Returns the service level component of this
- * version identifier.
- *
- * @return the service level
- * @since 2.0
- */
- public int getServiceComponent() {
- return service;
- }
-
- /**
- * Returns the qualifier component of this
- * version identifier.
- *
- * @return the qualifier
- * @since 2.0
- */
- public String getQualifierComponent() {
- return qualifier;
- }
-
- /**
- * Compares two version identifiers for order using multi-decimal
- * comparison for the first 3 components (major, minor, service)
- * and lexicographic string comparison for the qualifier component
- *
- * @see java.lang.String#compareTo
- * @param versionId the other version identifier
- * @return -1 if this version is smaller than the argument
- * version, 0 if it is equal and 1 if this version is greater than the argument
- * version.
- * @since 2.0
- */
- public int compare(Version id) {
-
- if (id == null)
- return 1;
-
- if (major > id.getMajorComponent())
- return 1;
- if (major < id.getMajorComponent())
- return -1;
- if (minor > id.getMinorComponent())
- return 1;
- if (minor < id.getMinorComponent())
- return -1;
- if (service > id.getServiceComponent())
- return 1;
- if (service < id.getServiceComponent())
- return -1;
- return compareQualifiers(qualifier, id.getQualifierComponent());
- }
-
- /**
- * Returns the string representation of this version identifier.
- * The result satisfies
- * <code>vi.equals(new PluginVersionIdentifier(vi.toString()))</code>.
- *
- * @return the string representation of this version identifier. The
- * individual components of the version are separated by a period
- * (M.m.s.Q). Qualifier characters other than letters and digits
- * are replaced with a substitution character.
- * @since 2.0
- */
- public String toString() {
- String s = major + SEPARATOR + minor + SEPARATOR + service;
- if (!qualifier.equals("")) //$NON-NLS-1$
- s += SEPARATOR + qualifier;
- return s;
- }
-
- private String verifyQualifier(String s) {
- char[] chars = s.trim().toCharArray();
- boolean whitespace = false;
- for (int i = 0; i < chars.length; i++) {
- if (!Character.isLetterOrDigit(chars[i])) {
- chars[i] = '-';
- whitespace = true;
- }
- }
- return whitespace ? new String(chars) : s;
- }
-
- private int compareQualifiers(String q1, String q2) {
- int result = q1.compareTo(q2);
- if (result < 0)
- return -1;
- else if (result > 0)
- return 1;
- else
- return 0;
- }
-
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/VersionedIdentifier.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/VersionedIdentifier.java
index a33630f..4c4f9d1 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/VersionedIdentifier.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/core/VersionedIdentifier.java
@@ -4,6 +4,7 @@
* All Rights Reserved.
*/
+import org.eclipse.core.runtime.PluginVersionIdentifier;
import org.eclipse.update.internal.core.Policy;
/**
@@ -17,7 +18,7 @@
*/
public class VersionedIdentifier {
private String id;
- private Version version;
+ private PluginVersionIdentifier version;
private static final String SEPARATOR = "_"; //$NON-NLS-1$
/**
@@ -32,17 +33,17 @@
if (idWithVersion == null
|| (idWithVersion = idWithVersion.trim()).equals("")) { //$NON-NLS-1$
this.id = ""; //$NON-NLS-1$
- this.version = new Version(0, 0, 0);
+ this.version = new PluginVersionIdentifier(0, 0, 0);
}
int loc = idWithVersion.lastIndexOf(SEPARATOR);
if (loc != -1) {
id = idWithVersion.substring(0, loc);
String versionName = idWithVersion.substring(loc + 1);
- version = new Version(versionName);
+ version = new PluginVersionIdentifier(versionName);
} else {
this.id = ""; //$NON-NLS-1$
- version = new Version(0, 0, 0);
+ version = new PluginVersionIdentifier(0, 0, 0);
}
}
@@ -63,7 +64,7 @@
Policy.bind("VersionedIdentifier.IdOrVersionNull", id, versionName));
//$NON-NLS-1$
this.id = id;
- this.version = new Version(versionName);
+ this.version = new PluginVersionIdentifier(versionName);
}
/**
@@ -82,7 +83,7 @@
* @return version
* @since 2.0
*/
- public Version getVersion() {
+ public PluginVersionIdentifier getVersion() {
return version;
}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java
index 00f018f..767f237 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java
@@ -36,7 +36,7 @@
return null;
}
- public Version getVersion() {
+ public PluginVersionIdentifier getVersion() {
if (id != null)
return id.getVersion();
return null;
@@ -69,12 +69,10 @@
String path = url.getFile();
File siteLocation = new File(path);
if (siteLocation.isDirectory()) {
- // need to add '/' if it is not there
- if (!(path.endsWith("/") || path.endsWith(File.separator))) { //$NON-NLS-1$
- url =
- new URL(url.getProtocol(), url.getHost(), url.getPort(), url.getFile() + "/");
- //$NON-NLS-1$
- }
+ path = siteLocation.getAbsolutePath().replace(File.separatorChar,'/');
+ if (!path.endsWith("/"))
+ path += "/";
+ url = new URL("file:" + path); //$NON-NLS-1$
if (new File(siteLocation, Site.SITE_XML).exists()) {
siteStream = new FileInputStream(new File(siteLocation, Site.SITE_XML));
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
index 49adc2d..1537065 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
@@ -876,9 +876,9 @@
}
/**
- * compare 2 feature references
+ * compare two feature references
* returns 0 if the feature are different
- * returns 1 if the version of feature 1 is > version of feature 2
+ * returns 1 if the version of feature 1 is greater than version of feature 2
* returns 2 if opposite
*/
private int compare(
@@ -904,14 +904,14 @@
if (id1.getIdentifier() != null
&& id1.getIdentifier().equals(id2.getIdentifier())) {
- Version version1 = id1.getVersion();
- Version version2 = id2.getVersion();
+ PluginVersionIdentifier version1 = id1.getVersion();
+ PluginVersionIdentifier version2 = id2.getVersion();
if (version1 != null) {
- int result = (version1.compare(version2));
- if (result == -1) {
- return 2;
- } else {
+ boolean greaterOrEqual = (version1.isGreaterOrEqualTo(version2));
+ if (greaterOrEqual) {
return 1;
+ } else {
+ return 2;
}
} else {
return 2;
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
index a12efa7..dc6303a 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
@@ -188,7 +188,6 @@
JarVerifier.UnableToAccessJar= Unable to access JAR file {0}.
JarVerifier.InvalidFile= The File {0} is not a valid JAR file. It does not contain a Manifest
-
JarVerificationResult.ValidBetween= Valid between {0} and {1}.
JarVerificationResult.ExpiredCertificate= * EXPIRED CERTIFICATE *
JarVerificationResult.CertificateNotYetValid= * CERTIFICATE NOT YET VALID *
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java
index f8528be..6a64c9a 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java
@@ -6,6 +6,7 @@
import java.security.Principal;
import java.security.cert.*;
+import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -246,8 +247,7 @@
*
*/
private String dateString(Date date) {
- SimpleDateFormat formatter = new SimpleDateFormat("EEE, MMM d, yyyyy");
- return formatter.format(date);
+ return DateFormat.getDateInstance().format(date);
}
/*