*** empty log message ***
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ClasspathComputer2_1.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ClasspathComputer2_1.java
index 86dce73..d2a4534 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ClasspathComputer2_1.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ClasspathComputer2_1.java
@@ -175,7 +175,9 @@
// If model is a fragment, we need to add in the classpath the plugin to which it is related
HostSpecification host = model.getHost();
if (host != null) {
- addPluginAndPrerequisites(host.getSupplier(), classpath, location, pluginChain);
+ BundleDescription[] hosts = host.getHosts();
+ for(int i=0; i<hosts.length; i++)
+ addPluginAndPrerequisites(hosts[i], classpath, location, pluginChain);
}
// Add the libraries
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ClasspathComputer3_0.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ClasspathComputer3_0.java
index 04b9c2f..a8db336 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ClasspathComputer3_0.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ClasspathComputer3_0.java
@@ -172,7 +172,9 @@
// If model is a fragment, we need to add in the classpath the plugin to which it is related
HostSpecification host = model.getHost();
if (host != null) {
- addPluginAndPrerequisites(host.getSupplier(), classpath, location, pluginChain, addedPlugins);
+ BundleDescription[] hosts = host.getHosts();
+ for(int i=0; i<hosts.length; i++)
+ addPluginAndPrerequisites(hosts[i], classpath, location, pluginChain, addedPlugins);
}
// Add the libraries
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/BuildTimeSite.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/BuildTimeSite.java
index 21a386e..9d82527 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/BuildTimeSite.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/BuildTimeSite.java
@@ -18,6 +18,7 @@
import org.eclipse.osgi.service.resolver.*;
import org.eclipse.pde.internal.build.*;
import org.eclipse.update.core.*;
+import org.osgi.framework.Version;
/**
* This site represent a site at build time. A build time site is made of code
@@ -87,7 +88,7 @@
public String getResolutionFailureMessage(VersionConstraint unsatisfied) {
if (unsatisfied.isResolved())
throw new IllegalArgumentException();
- if (unsatisfied instanceof PackageSpecification)
+ if (unsatisfied instanceof ImportPackageSpecification)
return Policy.bind("unsatisfied.import", displayVersionConstraint(unsatisfied));//$NON-NLS-1$
if (unsatisfied instanceof BundleSpecification) {
if (((BundleSpecification) unsatisfied).isOptional())
@@ -115,9 +116,14 @@
}
int qualifierIdx = -1;
if (versionId != null && (qualifierIdx = versionId.indexOf('.' + IBuildPropertiesConstants.PROPERTY_QUALIFIER))!= -1) {
- Version versionToMatch = new Version(versionId.substring(0, qualifierIdx));
+ Version versionToMatch = Version.parseVersion(versionId.substring(0, qualifierIdx));
for (int i = 0; i < features.length; i++) {
- if (features[i].getVersionedIdentifier().getIdentifier().equals(featureId) && new Version(features[i].getVersionedIdentifier().getVersion().toString()).matchMinor(versionToMatch))
+ Version featureVersion = Version.parseVersion(features[i].getVersionedIdentifier().getVersion().toString());
+ if (features[i].getVersionedIdentifier().getIdentifier().equals(featureId) &&
+ featureVersion.getMajor() == versionToMatch.getMajor() &&
+ featureVersion.getMinor() == versionToMatch.getMinor() &&
+ featureVersion.getMicro() >= versionToMatch.getMicro() &&
+ featureVersion.getQualifier().compareTo(versionToMatch.getQualifier()) >= 0)
return features[i].getFeature(null);
}
}
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/PDEState.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/PDEState.java
index c72b883..407608b 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/PDEState.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/PDEState.java
@@ -20,6 +20,7 @@
import org.eclipse.osgi.service.resolver.*;
import org.eclipse.osgi.util.ManifestElement;
import org.eclipse.pde.internal.build.*;
+import org.osgi.framework.*;
import org.osgi.framework.BundleException;
import org.osgi.framework.Constants;
@@ -289,15 +290,13 @@
public static BundleDescription[] getImportedBundles(BundleDescription root) {
if (root == null)
return new BundleDescription[0];
- PackageSpecification[] packages = root.getPackages();
- ArrayList resolvedImported = new ArrayList(packages.length);
- for (int i = 0; i < packages.length; i++) {
- if (!packages[i].isExported() && packages[i].isResolved() && !resolvedImported.contains(packages[i].getSupplier()))
- resolvedImported.add(packages[i].getSupplier());
+ ExportPackageDescription[] packages = root.getResolvedImports();
+ ArrayList resolvedImports = new ArrayList(packages.length);
+ for (int i = 0; i < packages.length; i++)
+ if (!root.getLocation().equals(packages[i].getExporter().getLocation()) && !resolvedImports.contains(packages[i].getExporter()))
+ resolvedImports.add(packages[i].getExporter());
+ return (BundleDescription[]) resolvedImports.toArray(new BundleDescription[resolvedImports.size()]);
}
- BundleDescription[] result = new BundleDescription[resolvedImported.size()];
- return (BundleDescription[]) resolvedImported.toArray(result);
- }
/**
* This methods return the bundleDescriptions to which required bundles
@@ -308,30 +307,27 @@
public static BundleDescription[] getRequiredBundles(BundleDescription root) {
if (root == null)
return new BundleDescription[0];
- BundleSpecification[] required = root.getRequiredBundles();
- ArrayList resolvedRequired = new ArrayList(required.length);
- for (int i = 0; i < required.length; i++) {
- if (required[i].isResolved() && !resolvedRequired.contains(required[i].getSupplier()))
- resolvedRequired.add(required[i].getSupplier());
+ return root.getResolvedRequires();
}
- BundleDescription[] result = new BundleDescription[resolvedRequired.size()];
- return (BundleDescription[]) resolvedRequired.toArray(result);
- }
public BundleDescription getResolvedBundle(String bundleId, String version) {
if (IPDEBuildConstants.GENERIC_VERSION_NUMBER.equals(version) || version == null) {
return getResolvedBundle(bundleId);
}
- BundleDescription description = getState().getBundle(bundleId, new Version(version));
+ BundleDescription description = getState().getBundle(bundleId, Version.parseVersion(version));
if (description != null && description.isResolved())
return description;
int qualifierIdx = -1;
if ((qualifierIdx = version.indexOf('.' + IBuildPropertiesConstants.PROPERTY_QUALIFIER)) != -1) {
BundleDescription[] bundles = getState().getBundles(bundleId);
- Version versionToMatch = new Version(version.substring(0, qualifierIdx));
+ Version versionToMatch = Version.parseVersion(version.substring(0, qualifierIdx));
for (int i = 0; i < bundles.length; i++) {
- if (bundles[i].getVersion().matchMinor(versionToMatch))
+ Version bundleVersion = bundles[i].getVersion();
+ if (bundleVersion.getMajor() == versionToMatch.getMajor() &&
+ bundleVersion.getMinor() == versionToMatch.getMinor() &&
+ bundleVersion.getMicro() >= versionToMatch.getMicro() &&
+ bundleVersion.getQualifier().compareTo(versionToMatch.getQualifier()) >= 0)
return bundles[i];
}
}
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/PluginRegistryConverter.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/PluginRegistryConverter.java
index 8d0cc50..4a8aa00 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/PluginRegistryConverter.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/site/PluginRegistryConverter.java
@@ -18,6 +18,7 @@
import org.eclipse.osgi.service.resolver.*;
import org.eclipse.pde.internal.build.*;
import org.osgi.framework.Constants;
+import org.osgi.framework.Version;
/**
* @deprecated
@@ -59,7 +60,7 @@
PluginFragmentModel[] fragments = registry.getFragments();
for (int i = 0; i < plugins.length; i++) {
- BundleDescription bd = state.getFactory().createBundleDescription(getNextId(), plugins[i].getPluginId(), new Version(plugins[i].getVersion()), plugins[i].getLocation(), createBundleSpecification(plugins[i].getRequires()), (HostSpecification[]) null, null, null, true);
+ BundleDescription bd = state.getFactory().createBundleDescription(getNextId(), plugins[i].getPluginId(), Version.parseVersion(plugins[i].getVersion()), plugins[i].getLocation(), createBundleSpecification(plugins[i].getRequires()), (HostSpecification) null, null, null, null, true);
String libs = createClasspath(plugins[i].getRuntime());
Properties manifest = new Properties();
if (libs != null)
@@ -70,8 +71,8 @@
}
for (int i = 0; i < fragments.length; i++) {
- HostSpecification host = state.getFactory().createHostSpecification(fragments[i].getPluginId(), new Version(fragments[i].getPluginVersion()), fragments[i].getMatch(), false);
- BundleDescription bd = state.getFactory().createBundleDescription(getNextId(), fragments[i].getId(), new Version(fragments[i].getVersion()), fragments[i].getLocation(), createBundleSpecification(fragments[i].getRequires()), new HostSpecification[] {host}, null, null, true);
+ HostSpecification host = state.getFactory().createHostSpecification(fragments[i].getPluginId(), new VersionRange(fragments[i].getPluginVersion()));
+ BundleDescription bd = state.getFactory().createBundleDescription(getNextId(), fragments[i].getId(), Version.parseVersion(fragments[i].getVersion()), fragments[i].getLocation(), createBundleSpecification(fragments[i].getRequires()), host, null, null, null, true);
String libs = createClasspath(fragments[i].getRuntime());
Properties manifest = new Properties();
if (libs != null)
@@ -87,7 +88,7 @@
return new BundleSpecification[0];
BundleSpecification[] specs = new BundleSpecification[prereqs.length];
for (int i = 0; i < prereqs.length; i++) {
- specs[i] = state.getFactory().createBundleSpecification(prereqs[i].getPlugin(), new Version(prereqs[i].getVersion()), prereqs[i].getMatchByte(), prereqs[i].getExport(), prereqs[i].getOptional());
+ specs[i] = state.getFactory().createBundleSpecification(prereqs[i].getPlugin(), new VersionRange(prereqs[i].getVersion()), prereqs[i].getExport(), prereqs[i].getOptional());
}
return specs;
}