Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikas Chandra2017-12-29 15:31:27 +0000
committerVikas Chandra2017-12-29 15:31:27 +0000
commit27bbba6daf302171dbe60074e7fde56c78364c14 (patch)
tree116bc792b87357b35a756f98a6d998215eddcdd3
parent0e89808beac600638e9b492667ed939008fc8cc2 (diff)
downloadeclipse.pde.ui-27bbba6daf302171dbe60074e7fde56c78364c14.tar.gz
eclipse.pde.ui-27bbba6daf302171dbe60074e7fde56c78364c14.tar.xz
eclipse.pde.ui-27bbba6daf302171dbe60074e7fde56c78364c14.zip
Bug 513270 - Problems with bundles that re-export packagesI20171229-2000
(multi-version case) Change-Id: I256876579157dbf9b647690d136dbf05f6c2d7db Signed-off-by: Vikas Chandra <Vikas.Chandra@in.ibm.com>
-rw-r--r--apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java
index 69b5ec0a2e..aac76d12fb 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java
@@ -786,6 +786,10 @@ public class BaseApiAnalyzer implements IApiAnalyzer {
int length2 = requiredComponents2.length;
loop2: for (int j = 0; j < length2; j++) {
IRequiredComponentDescription description2 = requiredComponents2[j];
+ IRequiredComponentDescription bestMatch = getBestMatchFromMultipleReqComponents(requiredComponents2, description);
+ if(bestMatch !=null) {
+ description2 = bestMatch;
+ }
if (description2.getId().equals(id)) {
if (description2.isExported()) {
referenceDescription = description2;
@@ -823,6 +827,23 @@ public class BaseApiAnalyzer implements IApiAnalyzer {
return info;
}
+ private IRequiredComponentDescription getBestMatchFromMultipleReqComponents(IRequiredComponentDescription[] requiredComponents2, IRequiredComponentDescription description) {
+ IVersionRange versionRange = description.getVersionRange();
+ Version currentLowerBound = new Version(versionRange.getMinimumVersion());
+ int major = currentLowerBound.getMajor();
+ for (IRequiredComponentDescription iRequiredComponentDescription : requiredComponents2) {
+ if (!description.getId().equals(iRequiredComponentDescription.getId())) {
+ continue;
+ }
+ IVersionRange versionRange2 = iRequiredComponentDescription.getVersionRange();
+ Version currentLowerBound2 = new Version(versionRange2.getMinimumVersion());
+ if (currentLowerBound2.getMajor() == major) {
+ return iRequiredComponentDescription;
+ }
+ }
+ return null;
+ }
+
/**
* Creates and AST for the given {@link ITypeRoot} at the given offset
*

Back to the top