Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2020-05-11 18:20:15 +0000
committerThomas Watson2020-05-11 18:20:15 +0000
commit19ea8b7ed79db5437135cda641dd1908b9b7f939 (patch)
tree23c0c216d6e3da348bcb60dfef48e81fe4c0fae3
parentcb5b0ec095fa9c195b7e1d42eb68ff19f777b0e2 (diff)
parent9b4b66a03b0a82b0d787209860c1b65250da74af (diff)
downloadrt.equinox.framework-19ea8b7ed79db5437135cda641dd1908b9b7f939.tar.gz
rt.equinox.framework-19ea8b7ed79db5437135cda641dd1908b9b7f939.tar.xz
rt.equinox.framework-19ea8b7ed79db5437135cda641dd1908b9b7f939.zip
Merge branch 'master' into osgiR8
-rw-r--r--bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/build.properties2
-rw-r--r--bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/pom.xml2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/META-INF/MANIFEST.MF4
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/build.properties2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/pom.xml2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/build.properties2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/pom.xml2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/build.properties2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/pom.xml2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/build.properties2
-rw-r--r--bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/pom.xml2
-rw-r--r--bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/build.properties2
-rw-r--r--bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/pom.xml2
-rw-r--r--bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java60
-rw-r--r--bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java64
-rw-r--r--bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java53
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java13
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/LogServiceManager.java4
-rw-r--r--features/org.eclipse.equinox.executable.feature/.cvsignore1
-rw-r--r--features/org.eclipse.equinox.executable.feature/build.properties3
-rwxr-xr-xfeatures/org.eclipse.equinox.executable.feature/feature.xml10
-rw-r--r--features/org.eclipse.equinox.executable.feature/library/cocoa/.cvsignore3
-rw-r--r--features/org.eclipse.equinox.executable.feature/library/make_version.mak2
-rw-r--r--features/org.eclipse.equinox.executable.feature/library/win32/.cvsignore8
-rw-r--r--features/org.eclipse.equinox.executable.feature/library/win32/eclipseWin.c23
-rw-r--r--features/org.eclipse.equinox.executable.feature/pom.xml1
-rw-r--r--features/org.eclipse.equinox.executable.feature/resources/build.properties3
-rw-r--r--features/org.eclipse.equinox.executable.feature/resources/build.xml1
-rw-r--r--pom.xml1
34 files changed, 195 insertions, 93 deletions
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF
index efb6e4f88..132012b9f 100644
--- a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-SymbolicName: org.eclipse.equinox.launcher.cocoa.macosx.x86_64;singleton:=true
-Bundle-Version: 1.1.1100.qualifier
+Bundle-Version: 1.1.1200.qualifier
Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.6.0)"
Eclipse-PlatformFilter: (& (osgi.ws=cocoa) (osgi.os=macosx) (osgi.arch=x86_64) )
Bundle-Localization: launcher.cocoa.macosx.x86_64
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/build.properties b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/build.properties
index 1906e1331..ee7308cd2 100644
--- a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/build.properties
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/build.properties
@@ -17,4 +17,4 @@ bin.includes = META-INF/,\
customBuildCallbacks=customBuildCallbacks.xml
generateSourceBundle=false
-binaryTag=v20190907-0026
+binaryTag=v20200508-0906
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/pom.xml b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/pom.xml
index 2feaa9c11..80b43e827 100644
--- a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/pom.xml
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/pom.xml
@@ -19,7 +19,7 @@
</parent>
<groupId>org.eclipse.equinox</groupId>
<artifactId>org.eclipse.equinox.launcher.cocoa.macosx.x86_64</artifactId>
- <version>1.1.1100-SNAPSHOT</version>
+ <version>1.1.1200-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/META-INF/MANIFEST.MF
index faa8d640a..3c37485e6 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/META-INF/MANIFEST.MF
@@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.linux.aarch64;singleton:=true
-Bundle-Version: 1.1.1100.qualifier
-Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.5.0)"
+Bundle-Version: 1.1.1200.qualifier
+Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.6.0)"
Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=aarch64))
Bundle-Localization: launcher.gtk.linux.aarch64
Eclipse-BundleShape: dir
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/build.properties b/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/build.properties
index 5e804f405..0c52f8229 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/build.properties
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/build.properties
@@ -16,4 +16,4 @@ bin.includes = META-INF/,\
about.html
generateSourceBundle=false
-binaryTag=v20190907-0026
+binaryTag=v20200508-0906
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/pom.xml b/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/pom.xml
index e89ac9e80..8cdab6d38 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/pom.xml
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64/pom.xml
@@ -19,7 +19,7 @@
</parent>
<groupId>org.eclipse.equinox</groupId>
<artifactId>org.eclipse.equinox.launcher.gtk.linux.aarch64</artifactId>
- <version>1.1.1100-SNAPSHOT</version>
+ <version>1.1.1200-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/META-INF/MANIFEST.MF
index 0799aee3b..2f6115855 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.linux.ppc64le;singleton:=true
-Bundle-Version: 1.1.1100.qualifier
+Bundle-Version: 1.1.1200.qualifier
Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.6.0)"
Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=ppc64le))
Bundle-Localization: launcher.gtk.linux.ppc64le
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/build.properties b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/build.properties
index ed00983a0..128451776 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/build.properties
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/build.properties
@@ -16,4 +16,4 @@ bin.includes = META-INF/,\
about.html
generateSourceBundle=false
-binaryTag=v20190907-0026
+binaryTag=v20200508-0906
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/pom.xml b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/pom.xml
index f2955a641..ac0f89a43 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/pom.xml
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/pom.xml
@@ -19,7 +19,7 @@
</parent>
<groupId>org.eclipse.equinox</groupId>
<artifactId>org.eclipse.equinox.launcher.gtk.linux.ppc64le</artifactId>
- <version>1.1.1100-SNAPSHOT</version>
+ <version>1.1.1200-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/META-INF/MANIFEST.MF
index eef38cfd7..7c7cdc548 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.linux.s390x;singleton:=true
-Bundle-Version: 1.1.1100.qualifier
+Bundle-Version: 1.1.1200.qualifier
Fragment-Host: org.eclipse.equinox.launcher;bundle-version="1.0.0"
Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=s390x))
Bundle-Localization: launcher.gtk.linux.s390x
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/build.properties b/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/build.properties
index a9d57825a..9fe9ce9aa 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/build.properties
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/build.properties
@@ -17,4 +17,4 @@ bin.includes = META-INF/,\
customBuildCallbacks=customBuildCallbacks.xml
generateSourceBundle=false
-binaryTag=v20190907-0026
+binaryTag=v20200508-0906
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/pom.xml b/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/pom.xml
index cf0ac172a..f1ad5e617 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/pom.xml
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/pom.xml
@@ -19,7 +19,7 @@
</parent>
<groupId>org.eclipse.equinox</groupId>
<artifactId>org.eclipse.equinox.launcher.gtk.linux.s390x</artifactId>
- <version>1.1.1100-SNAPSHOT</version>
+ <version>1.1.1200-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF
index 7a6eb37e3..484f5a782 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.linux.x86_64;singleton:=true
-Bundle-Version: 1.1.1100.qualifier
+Bundle-Version: 1.1.1200.qualifier
Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.6.0)"
Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=x86_64))
Bundle-Localization: launcher.gtk.linux.x86_64
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/build.properties b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/build.properties
index 3a3f7cdef..d7e9bd010 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/build.properties
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/build.properties
@@ -17,4 +17,4 @@ bin.includes = META-INF/,\
customBuildCallbacks=customBuildCallbacks.xml
generateSourceBundle=false
-binaryTag=v20190907-0026
+binaryTag=v20200508-0906
diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/pom.xml b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/pom.xml
index c13943f56..c833eb823 100644
--- a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/pom.xml
+++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/pom.xml
@@ -19,7 +19,7 @@
</parent>
<groupId>org.eclipse.equinox</groupId>
<artifactId>org.eclipse.equinox.launcher.gtk.linux.x86_64</artifactId>
- <version>1.1.1100-SNAPSHOT</version>
+ <version>1.1.1200-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF
index f2e0e7e2e..de8f0e5eb 100644
--- a/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-SymbolicName: org.eclipse.equinox.launcher.win32.win32.x86_64;singleton:=true
-Bundle-Version: 1.1.1100.qualifier
+Bundle-Version: 1.1.1200.qualifier
Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.6.0)"
Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86_64))
Bundle-Localization: launcher.win32.win32.x86_64
diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/build.properties b/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/build.properties
index 47b4ab763..6aa86907d 100644
--- a/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/build.properties
+++ b/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/build.properties
@@ -16,4 +16,4 @@ bin.includes = META-INF/,\
about.html
generateSourceBundle=false
customBuildCallbacks=customBuildCallbacks.xml
-binaryTag=v20190907-0026
+binaryTag=v20200508-0906
diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/pom.xml b/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/pom.xml
index cda97f3aa..2833e37f9 100644
--- a/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/pom.xml
+++ b/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/pom.xml
@@ -19,7 +19,7 @@
</parent>
<groupId>org.eclipse.equinox</groupId>
<artifactId>org.eclipse.equinox.launcher.win32.win32.x86_64</artifactId>
- <version>1.1.1100-SNAPSHOT</version>
+ <version>1.1.1200-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
diff --git a/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java b/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java
index 6b0768bbe..3665e17e0 100644
--- a/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java
+++ b/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java
@@ -17,12 +17,38 @@ package org.eclipse.osgi.internal.resolver;
import java.io.IOException;
import java.net.URL;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import org.eclipse.osgi.framework.util.KeyedElement;
-import org.eclipse.osgi.service.resolver.*;
-import org.osgi.framework.*;
-import org.osgi.framework.wiring.*;
-import org.osgi.resource.*;
+import org.eclipse.osgi.service.resolver.BaseDescription;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.BundleSpecification;
+import org.eclipse.osgi.service.resolver.ExportPackageDescription;
+import org.eclipse.osgi.service.resolver.GenericDescription;
+import org.eclipse.osgi.service.resolver.GenericSpecification;
+import org.eclipse.osgi.service.resolver.HostSpecification;
+import org.eclipse.osgi.service.resolver.ImportPackageSpecification;
+import org.eclipse.osgi.service.resolver.NativeCodeDescription;
+import org.eclipse.osgi.service.resolver.NativeCodeSpecification;
+import org.eclipse.osgi.service.resolver.State;
+import org.eclipse.osgi.service.resolver.StateWire;
+import org.eclipse.osgi.service.resolver.VersionConstraint;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleReference;
+import org.osgi.framework.Constants;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRequirement;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleWire;
+import org.osgi.framework.wiring.BundleWiring;
+import org.osgi.resource.Capability;
+import org.osgi.resource.Requirement;
+import org.osgi.resource.Wire;
public final class BundleDescriptionImpl extends BaseDescriptionImpl implements BundleDescription, KeyedElement {
static final String[] EMPTY_STRING = new String[0];
@@ -299,14 +325,14 @@ public final class BundleDescriptionImpl extends BaseDescriptionImpl implements
protected void setExecutionEnvironments(String[] executionEnvironments) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.executionEnvironments = executionEnvironments;
+ lazyData.executionEnvironments = executionEnvironments == null || executionEnvironments.length > 0 ? executionEnvironments : EMPTY_STRING;
}
}
protected void setExportPackages(ExportPackageDescription[] exportPackages) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.exportPackages = exportPackages;
+ lazyData.exportPackages = exportPackages == null || exportPackages.length > 0 ? exportPackages : EMPTY_EXPORTS;
if (exportPackages != null) {
for (ExportPackageDescription exportPackage : exportPackages) {
((ExportPackageDescriptionImpl) exportPackage).setExporter(this);
@@ -318,7 +344,7 @@ public final class BundleDescriptionImpl extends BaseDescriptionImpl implements
protected void setImportPackages(ImportPackageSpecification[] importPackages) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.importPackages = importPackages;
+ lazyData.importPackages = importPackages == null || importPackages.length > 0 ? importPackages : EMPTY_IMPORTS;
if (importPackages != null) {
for (ImportPackageSpecification importPackage : importPackages) {
((ImportPackageSpecificationImpl) importPackage).setBundle(this);
@@ -333,7 +359,7 @@ public final class BundleDescriptionImpl extends BaseDescriptionImpl implements
protected void setRequiredBundles(BundleSpecification[] requiredBundles) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.requiredBundles = requiredBundles;
+ lazyData.requiredBundles = requiredBundles == null || requiredBundles.length > 0 ? requiredBundles : EMPTY_BUNDLESPECS;
if (requiredBundles != null)
for (BundleSpecification requiredBundle : requiredBundles) {
((VersionConstraintImpl) requiredBundle).setBundle(this);
@@ -344,7 +370,7 @@ public final class BundleDescriptionImpl extends BaseDescriptionImpl implements
protected void setGenericCapabilities(GenericDescription[] genericCapabilities) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.genericCapabilities = genericCapabilities;
+ lazyData.genericCapabilities = genericCapabilities == null || genericCapabilities.length > 0 ? genericCapabilities : EMPTY_GENERICDESCS;
if (genericCapabilities != null)
for (GenericDescription genericCapability : genericCapabilities) {
((GenericDescriptionImpl) genericCapability).setSupplier(this);
@@ -355,7 +381,7 @@ public final class BundleDescriptionImpl extends BaseDescriptionImpl implements
protected void setGenericRequires(GenericSpecification[] genericRequires) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.genericRequires = genericRequires;
+ lazyData.genericRequires = genericRequires == null || genericRequires.length > 0 ? genericRequires : EMPTY_GENERICSPECS;
if (genericRequires != null)
for (GenericSpecification genericRequire : genericRequires) {
((VersionConstraintImpl) genericRequire).setBundle(this);
@@ -433,7 +459,7 @@ public final class BundleDescriptionImpl extends BaseDescriptionImpl implements
protected void setSelectedExports(ExportPackageDescription[] selectedExports) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.selectedExports = selectedExports;
+ lazyData.selectedExports = selectedExports == null || selectedExports.length > 0 ? selectedExports : EMPTY_EXPORTS;
if (selectedExports != null) {
for (ExportPackageDescription selectedExport : selectedExports) {
((ExportPackageDescriptionImpl) selectedExport).setExporter(this);
@@ -445,7 +471,7 @@ public final class BundleDescriptionImpl extends BaseDescriptionImpl implements
protected void setSelectedCapabilities(GenericDescription[] selectedCapabilities) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.selectedCapabilities = selectedCapabilities;
+ lazyData.selectedCapabilities = selectedCapabilities == null || selectedCapabilities.length > 0 ? selectedCapabilities : EMPTY_GENERICDESCS;
if (selectedCapabilities != null) {
for (GenericDescription capability : selectedCapabilities) {
((GenericDescriptionImpl) capability).setSupplier(this);
@@ -457,28 +483,28 @@ public final class BundleDescriptionImpl extends BaseDescriptionImpl implements
protected void setSubstitutedExports(ExportPackageDescription[] substitutedExports) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.substitutedExports = substitutedExports;
+ lazyData.substitutedExports = substitutedExports != null && substitutedExports.length > 0 ? substitutedExports : EMPTY_EXPORTS;
}
}
protected void setResolvedImports(ExportPackageDescription[] resolvedImports) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.resolvedImports = resolvedImports;
+ lazyData.resolvedImports = resolvedImports == null || resolvedImports.length > 0 ? resolvedImports : EMPTY_EXPORTS;
}
}
protected void setResolvedRequires(BundleDescription[] resolvedRequires) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.resolvedRequires = resolvedRequires;
+ lazyData.resolvedRequires = resolvedRequires == null || resolvedRequires.length > 0 ? resolvedRequires : EMPTY_BUNDLEDESCS;
}
}
protected void setResolvedCapabilities(GenericDescription[] resolvedCapabilities) {
synchronized (this.monitor) {
checkLazyData();
- lazyData.resolvedCapabilities = resolvedCapabilities;
+ lazyData.resolvedCapabilities = resolvedCapabilities == null || resolvedCapabilities.length > 0 ? resolvedCapabilities : EMPTY_GENERICDESCS;
}
}
diff --git a/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java b/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java
index 5f04b6683..78da2ae4a 100644
--- a/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java
+++ b/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java
@@ -14,10 +14,31 @@
*******************************************************************************/
package org.eclipse.osgi.internal.resolver;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import org.eclipse.osgi.framework.util.ArrayMap;
import org.eclipse.osgi.internal.container.ComputeNodeOrder;
-import org.eclipse.osgi.service.resolver.*;
+import org.eclipse.osgi.service.resolver.BaseDescription;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.BundleSpecification;
+import org.eclipse.osgi.service.resolver.ExportPackageDescription;
+import org.eclipse.osgi.service.resolver.GenericDescription;
+import org.eclipse.osgi.service.resolver.GenericSpecification;
+import org.eclipse.osgi.service.resolver.HostSpecification;
+import org.eclipse.osgi.service.resolver.ImportPackageSpecification;
+import org.eclipse.osgi.service.resolver.NativeCodeSpecification;
+import org.eclipse.osgi.service.resolver.State;
+import org.eclipse.osgi.service.resolver.StateHelper;
+import org.eclipse.osgi.service.resolver.VersionConstraint;
import org.osgi.framework.Constants;
import org.osgi.framework.hooks.resolver.ResolverHook;
import org.osgi.framework.hooks.resolver.ResolverHookFactory;
@@ -87,10 +108,11 @@ public final class StateHelperImpl implements StateHelper {
for (BundleDescription bundle : bundles) {
ExportPackageDescription[] packages = bundle.getExportPackages();
for (ExportPackageDescription description : packages) {
- List<ExportPackageDescription> exports = result.get(description.getName());
+ String name = description.getName();
+ List<ExportPackageDescription> exports = result.get(name);
if (exports == null) {
exports = new ArrayList<>();
- result.put(description.getName(), exports);
+ result.put(name, exports);
}
exports.add(description);
}
@@ -107,10 +129,11 @@ public final class StateHelperImpl implements StateHelper {
}
GenericDescription[] generics = bundle.getGenericCapabilities();
for (GenericDescription description : generics) {
- List<GenericDescription> genericList = result.get(description.getName());
+ String name = description.getName();
+ List<GenericDescription> genericList = result.get(name);
if (genericList == null) {
genericList = new ArrayList<>(1);
- result.put(description.getName(), genericList);
+ result.put(name, genericList);
}
genericList.add(description);
}
@@ -129,15 +152,16 @@ public final class StateHelperImpl implements StateHelper {
VersionConstraint[] constraints = getUnsatisfiedConstraints(description, hook);
for (VersionConstraint constraint : constraints) {
Collection<BaseDescription> satisfied = null;
+ String name = constraint.getName();
if (constraint instanceof BundleSpecification || constraint instanceof HostSpecification) {
- BundleDescription[] suppliers = state.getBundles(constraint.getName());
+ BundleDescription[] suppliers = state.getBundles(name);
satisfied = getPossibleCandidates(constraint, suppliers, constraint instanceof HostSpecification ? BundleRevision.HOST_NAMESPACE : null, hook, false);
} else if (constraint instanceof ImportPackageSpecification) {
- List<ExportPackageDescription> exports = packages.get(constraint.getName());
+ List<ExportPackageDescription> exports = packages.get(name);
if (exports != null)
satisfied = getPossibleCandidates(constraint, exports.toArray(new BaseDescription[exports.size()]), null, hook, false);
} else if (constraint instanceof GenericSpecification) {
- List<GenericDescription> genericSet = generics.get(constraint.getName());
+ List<GenericDescription> genericSet = generics.get(name);
if (genericSet != null)
satisfied = getPossibleCandidates(constraint, genericSet.toArray(new BaseDescription[genericSet.size()]), null, hook, false);
}
@@ -361,7 +385,7 @@ public final class StateHelperImpl implements StateHelper {
BundleDescription[] hosts = hostSpecification.getHosts();
for (BundleDescription host : hosts) {
if (host != description) {
- references.add(new Object[]{description, host});
+ references.add(new Object[] {description, host});
}
}
}
@@ -391,7 +415,7 @@ public final class StateHelperImpl implements StateHelper {
if (fragment.isResolved()) {
ExportPackageDescription[] exports = fragment.getExportPackages();
if (exports.length > 0) {
- references.add(new Object[]{description, fragment});
+ references.add(new Object[] {description, fragment});
}
}
}
@@ -433,7 +457,6 @@ public final class StateHelperImpl implements StateHelper {
getPackages(bundleSupplier, bundle.getSymbolicName(), importList, orderedPkgList, pkgSet, visited, strict, importNames, options);
}
importList.add(imports.getName(i)); // be sure to add to direct import list
-
}
// now find all the packages that are visible from required bundles
RequiresHolder requires = new RequiresHolder(bundle, options);
@@ -456,15 +479,16 @@ public final class StateHelperImpl implements StateHelper {
ExportPackageDescription[] imports = requiredBundle.getResolvedImports();
Set<String> substituteNames = null; // a temporary set used to scope packages we get from getPackages
for (ExportPackageDescription substitutedExport : substitutedExports) {
- if (pkgNames == null || pkgNames.contains(substitutedExport.getName())) {
+ String exportName = substitutedExport.getName();
+ if (pkgNames == null || pkgNames.contains(exportName)) {
for (ExportPackageDescription resolvedImport : imports) {
- if (substitutedExport.getName().equals(resolvedImport.getName()) && !pkgSet.contains(resolvedImport)) {
+ if (exportName.equals(resolvedImport.getName()) && !pkgSet.contains(resolvedImport)) {
if (substituteNames == null)
substituteNames = new HashSet<>(1);
else
substituteNames.clear();
// substituteNames is a set of one package containing the single substitute we are trying to get the source for
- substituteNames.add(substitutedExport.getName());
+ substituteNames.add(exportName);
getPackages(resolvedImport.getSupplier(), symbolicName, importList, orderedPkgList, pkgSet, new HashSet<BundleDescription>(0), strict, substituteNames, options);
}
}
@@ -479,12 +503,13 @@ public final class StateHelperImpl implements StateHelper {
ExportPackageDescription[] exports = requiredBundle.getSelectedExports();
HashSet<String> exportNames = new HashSet<>(exports.length); // set is used to improve performance of duplicate check.
for (ExportPackageDescription export : exports) {
- if ((pkgNames == null || pkgNames.contains(export.getName())) && !isSystemExport(export, options) && isFriend(symbolicName, export, strict) && !importList.contains(export.getName()) && !pkgSet.contains(export)) {
- if (!exportNames.contains(export.getName())) {
+ String exportName = export.getName();
+ if ((pkgNames == null || pkgNames.contains(exportName)) && !isSystemExport(export, options) && isFriend(symbolicName, export, strict) && !importList.contains(exportName) && !pkgSet.contains(export)) {
+ if (!exportNames.contains(exportName)) {
// only add the first export
orderedPkgList.add(export);
pkgSet.add(export);
- exportNames.add(export.getName());
+ exportNames.add(exportName);
}
}
}
@@ -631,14 +656,13 @@ class RequiresHolder {
* Fragment bundles are also considered.
*/
private void determineRequiresVisibility(BundleDescription bundle) {
- BundleSpecification[] requiredBundles = bundle.getRequiredBundles();
Set<BundleDescription> resolved = new HashSet<>();
for (BundleDescription resolvedRequire : resolvedRequires) {
resolved.add(resolvedRequire);
}
// Get the visibility of all directly required bundles
- for (BundleSpecification required : requiredBundles) {
+ for (BundleSpecification required : bundle.getRequiredBundles()) {
if (required.getSupplier() != null) {
resolvedBundlesExported.put((BundleDescription) required.getSupplier(), Boolean.valueOf(required.isExported()));
resolved.remove(required.getSupplier());
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java
index b6f7cac9a..37da06d9a 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java
@@ -71,6 +71,7 @@ import org.eclipse.osgi.container.ModuleWire;
import org.eclipse.osgi.container.ModuleWiring;
import org.eclipse.osgi.container.builders.OSGiManifestBuilderFactory;
import org.eclipse.osgi.container.namespaces.EclipsePlatformNamespace;
+import org.eclipse.osgi.container.namespaces.EquinoxModuleDataNamespace;
import org.eclipse.osgi.framework.util.ThreadInfoReport;
import org.eclipse.osgi.internal.debug.Debug;
import org.eclipse.osgi.internal.framework.EquinoxConfiguration;
@@ -3349,6 +3350,58 @@ public class TestModuleContainer extends AbstractTest {
assertWires(systemFrag3HostWires, hostWires);
}
+ @Test
+ public void testSystemBundleFragmentsWithNonEffectiveCapsReqs() throws BundleException, IOException {
+ // install the system.bundle
+ Module systemBundle = createContainerWithSystemBundle(true);
+ ModuleContainer container = systemBundle.getContainer();
+
+ ModuleWiring systemWiring = systemBundle.getCurrentRevision().getWiring();
+
+ // install an system.bundle fragment with activator
+ Map<String, String> systemFragManifest = new HashMap<>();
+ systemFragManifest.put(Constants.BUNDLE_MANIFESTVERSION, "2");
+ systemFragManifest.put(Constants.BUNDLE_SYMBOLICNAME, "systemFrag");
+ systemFragManifest.put(Constants.FRAGMENT_HOST, Constants.SYSTEM_BUNDLE_SYMBOLICNAME);
+ systemFragManifest.put(Constants.EXTENSION_BUNDLE_ACTIVATOR, "systemFrag.Activator");
+ systemFragManifest.put(Constants.REQUIRE_CAPABILITY,
+ "does.not.exist; effective:=never; filter:=\"(never=true)\"");
+ systemFragManifest.put(Constants.PROVIDE_CAPABILITY,
+ "non.effective.cap; non.effective.cap=test; effective:=never");
+
+ Module systemFrag = installDummyModule(systemFragManifest, "systemFrag", container);
+
+ ResolutionReport report = container.resolve(Arrays.asList(systemFrag), true);
+ Assert.assertNull("Failed to resolve system.bundle.", report.getResolutionException());
+
+ List<ModuleWire> hostWires = systemWiring.getProvidedModuleWires(HostNamespace.HOST_NAMESPACE);
+ assertEquals("Wrong number of fragments.", 1, hostWires.size());
+ Assert.assertEquals("Unexpected fragment revision: " + hostWires, systemFrag.getCurrentRevision(),
+ hostWires.get(0).getRequirer());
+
+ List<ModuleCapability> dataCaps = systemWiring
+ .getModuleCapabilities(EquinoxModuleDataNamespace.MODULE_DATA_NAMESPACE);
+ assertTrue("Unexpected module data capabilities: " + dataCaps, dataCaps.isEmpty());
+
+ List<ModuleCapability> nonEffectiveCaps = systemBundle.getCurrentRevision().getWiring()
+ .getModuleCapabilities("non.effective.cap");
+ assertTrue("Unexpected non-effective capabilities: " + nonEffectiveCaps, nonEffectiveCaps.isEmpty());
+
+ List<ModuleRequirement> nonEffectiveReqs = systemWiring.getModuleRequirements("does.not.exist");
+ assertTrue("Unexpected non-effective requirements: " + nonEffectiveReqs, nonEffectiveReqs.isEmpty());
+
+ Map<String, String> failResolutionManifest = new HashMap<>();
+ failResolutionManifest.put(Constants.BUNDLE_MANIFESTVERSION, "2");
+ failResolutionManifest.put(Constants.BUNDLE_SYMBOLICNAME, "failResolution");
+ failResolutionManifest.put(Constants.FRAGMENT_HOST, Constants.SYSTEM_BUNDLE_SYMBOLICNAME);
+ failResolutionManifest.put(Constants.REQUIRE_CAPABILITY,
+ "non.effective.cap; filter:=\"(non.effective.cap=test)\"");
+ Module failResolution = installDummyModule(failResolutionManifest, "failResolution", container);
+ report = container.resolve(Arrays.asList(failResolution), false);
+ String resolutionMsg = report.getResolutionReportMessage(failResolution.getCurrentRevision());
+ assertTrue("Wrong resolution message:" + resolutionMsg, resolutionMsg.contains("non.effective.cap"));
+ }
+
private Module createContainerWithSystemBundle(boolean resolveSystemBundle) throws BundleException, IOException {
DummyContainerAdaptor adaptor = createDummyAdaptor();
ModuleContainer container = adaptor.getContainer();
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java
index a9464d429..778a9cee5 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java
@@ -365,6 +365,10 @@ final class ModuleResolver {
if (NON_PAYLOAD_CAPABILITIES.contains(fragmentCapability.getNamespace())) {
continue; // don't include, not a payload capability
}
+ Object effective = fragmentCapability.getDirectives().get(Namespace.CAPABILITY_EFFECTIVE_DIRECTIVE);
+ if (effective != null && !Namespace.EFFECTIVE_RESOLVE.equals(effective)) {
+ continue; // don't include, not effective
+ }
if (!fragmentCapability.getNamespace().equals(currentNamespace)) {
currentNamespace = fragmentCapability.getNamespace();
fastForward(iCapabilities);
@@ -382,7 +386,11 @@ final class ModuleResolver {
List<ModuleRequirement> fragmentRequriements = hostWire.getRequirer().getModuleRequirements(null);
for (ModuleRequirement fragmentRequirement : fragmentRequriements) {
if (NON_PAYLOAD_REQUIREMENTS.contains(fragmentRequirement.getNamespace())) {
- continue; // don't inlcude, not a payload requirement
+ continue; // don't include, not a payload requirement
+ }
+ Object effective = fragmentRequirement.getDirectives().get(Namespace.REQUIREMENT_EFFECTIVE_DIRECTIVE);
+ if (effective != null && !Namespace.EFFECTIVE_RESOLVE.equals(effective)) {
+ continue; // don't include, not effective
}
if (!fragmentRequirement.getNamespace().equals(currentNamespace)) {
currentNamespace = fragmentRequirement.getNamespace();
@@ -1303,6 +1311,9 @@ final class ModuleResolver {
}
private boolean failToWire(ModuleRequirement requirement, ModuleRevision requirer, List<Wire> wires) {
+ if (!isEffective(requirement)) {
+ return false;
+ }
List<ModuleCapability> matching = moduleDatabase.findCapabilities(requirement);
List<Wire> newWires = new ArrayList<>(0);
filterProviders(requirement, matching, false);
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/LogServiceManager.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/LogServiceManager.java
index a56948440..45f16b295 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/LogServiceManager.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/LogServiceManager.java
@@ -25,6 +25,7 @@ import org.eclipse.equinox.log.ExtendedLogService;
import org.eclipse.equinox.log.LogFilter;
import org.eclipse.osgi.internal.framework.BundleContextImpl;
import org.eclipse.osgi.internal.framework.EquinoxContainer;
+import org.osgi.framework.AllServiceListener;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
@@ -32,7 +33,6 @@ import org.osgi.framework.Constants;
import org.osgi.framework.FrameworkEvent;
import org.osgi.framework.FrameworkListener;
import org.osgi.framework.ServiceEvent;
-import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import org.osgi.framework.SynchronousBundleListener;
@@ -44,7 +44,7 @@ import org.osgi.service.log.LogService;
import org.osgi.service.log.LoggerFactory;
import org.osgi.service.log.admin.LoggerAdmin;
-public class LogServiceManager implements SynchronousBundleListener, FrameworkListener, ServiceListener {
+public class LogServiceManager implements SynchronousBundleListener, FrameworkListener, AllServiceListener {
private static final String LOGGER_FRAMEWORK_EVENT = "Events.Framework"; //$NON-NLS-1$
private static final String LOGGER_BUNDLE_EVENT = "Events.Bundle"; //$NON-NLS-1$
private static final String LOGGER_SERVICE_EVENT = "Events.Service"; //$NON-NLS-1$
diff --git a/features/org.eclipse.equinox.executable.feature/.cvsignore b/features/org.eclipse.equinox.executable.feature/.cvsignore
deleted file mode 100644
index 78fb1fcef..000000000
--- a/features/org.eclipse.equinox.executable.feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-.gdb_history
diff --git a/features/org.eclipse.equinox.executable.feature/build.properties b/features/org.eclipse.equinox.executable.feature/build.properties
index 44e0ad77f..2b22bd40b 100644
--- a/features/org.eclipse.equinox.executable.feature/build.properties
+++ b/features/org.eclipse.equinox.executable.feature/build.properties
@@ -24,9 +24,6 @@ bin.includes = bin/,\
root.win32.win32.x86_64=bin/win32/win32/x86_64
root.win32.win32.x86_64.permissions.755=launcher.exe
-root.linux.gtk.ppc64le=bin/gtk/linux/ppc64le,gtk_root
-root.linux.gtk.ppc64le.permissions.755=launcher
-
root.macosx.cocoa.x86_64=bin/cocoa/macosx/x86_64
root.macosx.cocoa.x86_64.permissions.755=Eclipse.app/Contents/MacOS/launcher
diff --git a/features/org.eclipse.equinox.executable.feature/feature.xml b/features/org.eclipse.equinox.executable.feature/feature.xml
index aaa8a63f7..7ff8622c1 100755
--- a/features/org.eclipse.equinox.executable.feature/feature.xml
+++ b/features/org.eclipse.equinox.executable.feature/feature.xml
@@ -33,16 +33,6 @@
fragment="true"/>
<plugin
- id="org.eclipse.equinox.launcher.gtk.linux.ppc64le"
- os="linux"
- ws="gtk"
- arch="ppc64le"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"/>
-
- <plugin
id="org.eclipse.equinox.launcher.gtk.linux.x86_64"
os="linux"
ws="gtk"
diff --git a/features/org.eclipse.equinox.executable.feature/library/cocoa/.cvsignore b/features/org.eclipse.equinox.executable.feature/library/cocoa/.cvsignore
deleted file mode 100644
index f0fdae47c..000000000
--- a/features/org.eclipse.equinox.executable.feature/library/cocoa/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.o
-eclipse
-*.so
diff --git a/features/org.eclipse.equinox.executable.feature/library/make_version.mak b/features/org.eclipse.equinox.executable.feature/library/make_version.mak
index dc90cd259..5af575708 100644
--- a/features/org.eclipse.equinox.executable.feature/library/make_version.mak
+++ b/features/org.eclipse.equinox.executable.feature/library/make_version.mak
@@ -13,5 +13,5 @@
#*******************************************************************************
maj_ver=1
-min_ver=902
+min_ver=1000
LIB_VERSION = $(maj_ver)$(min_ver)
diff --git a/features/org.eclipse.equinox.executable.feature/library/win32/.cvsignore b/features/org.eclipse.equinox.executable.feature/library/win32/.cvsignore
deleted file mode 100644
index 431170f6f..000000000
--- a/features/org.eclipse.equinox.executable.feature/library/win32/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-*.obj
-eclipse.exe
-eclipse.res
-*.pdb
-*.exp
-*.lib
-eclipse_*.dll
-eclipsec.exe
diff --git a/features/org.eclipse.equinox.executable.feature/library/win32/eclipseWin.c b/features/org.eclipse.equinox.executable.feature/library/win32/eclipseWin.c
index 63dcc1307..72d46a06c 100644
--- a/features/org.eclipse.equinox.executable.feature/library/win32/eclipseWin.c
+++ b/features/org.eclipse.equinox.executable.feature/library/win32/eclipseWin.c
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -12,6 +12,7 @@
* IBM Corporation - initial API and implementation
* Kevin Cornell (Rational Software Corporation)
* Holger Voormann - fix for bug 384950 (http://eclip.se/384950)
+ * Gerhard Kreuzer - fix for bug 560428
*******************************************************************************/
#include "eclipseOS.h"
@@ -41,7 +42,7 @@ _TCHAR* vmLibrary = _T("jvm.dll");
_TCHAR* shippedVMDir = _T("jre\\bin\\");
/* Define local variables for communicating with running eclipse instance. */
-static HANDLE mutex;
+static HANDLE mutex = 0;
static UINT findWindowTimeout = 1000;
static UINT_PTR findWindowTimerId = 97;
static UINT timerCount = 0;
@@ -135,6 +136,7 @@ static void CALLBACK findWindowProc(HWND hwnd, UINT message, UINT idTimer, DWORD
sendOpenFileMessage(window);
ReleaseMutex(mutex);
CloseHandle(mutex);
+ mutex = 0;
KillTimer(hwnd, findWindowTimerId);
return;
}
@@ -144,6 +146,7 @@ static void CALLBACK findWindowProc(HWND hwnd, UINT message, UINT idTimer, DWORD
KillTimer(hwnd, findWindowTimerId);
ReleaseMutex(mutex);
CloseHandle(mutex);
+ mutex = 0;
}
}
@@ -170,6 +173,7 @@ int reuseWorkbench(_TCHAR** filePath, int timeout) {
if (lock != WAIT_OBJECT_0) {
/* failed to get the lock before timeout, We won't be reusing an existing eclipse. */
CloseHandle(mutex);
+ mutex = 0;
return 0;
}
@@ -179,6 +183,7 @@ int reuseWorkbench(_TCHAR** filePath, int timeout) {
sendOpenFileMessage(window);
ReleaseMutex(mutex);
CloseHandle(mutex);
+ mutex = 0;
return 1; /* success! */
}
@@ -286,7 +291,21 @@ jlong getSplashHandle() {
}
void takeDownSplash() {
+ HWND window = NULL;
if(topWindow != NULL) {
+ if (mutex != NULL) {
+ KillTimer(topWindow, findWindowTimerId);
+
+ window = findSWTMessageWindow();
+ if (window != NULL) {
+ sendOpenFileMessage(window);
+ }
+
+ ReleaseMutex(mutex);
+ CloseHandle(mutex);
+ mutex = 0;
+ }
+
DestroyWindow(topWindow);
dispatchMessages();
topWindow = 0;
diff --git a/features/org.eclipse.equinox.executable.feature/pom.xml b/features/org.eclipse.equinox.executable.feature/pom.xml
index 569b29f19..0b56c8527 100644
--- a/features/org.eclipse.equinox.executable.feature/pom.xml
+++ b/features/org.eclipse.equinox.executable.feature/pom.xml
@@ -123,7 +123,6 @@
<copy todir="bin" verbose="true" includeEmptyDirs="false" failonerror="true">
<fileset dir="${rt.equinox.binaries.loc}/org.eclipse.equinox.executable/bin/">
<include name="cocoa/macosx/x86_64/**/*"/>
- <include name="gtk/linux/ppc64le/**/*"/>
<include name="gtk/linux/x86_64/**/*"/>
<include name="win32/win32/x86_64/**/*"/>
</fileset>
diff --git a/features/org.eclipse.equinox.executable.feature/resources/build.properties b/features/org.eclipse.equinox.executable.feature/resources/build.properties
index 741e9b30f..606c1b88f 100644
--- a/features/org.eclipse.equinox.executable.feature/resources/build.properties
+++ b/features/org.eclipse.equinox.executable.feature/resources/build.properties
@@ -20,9 +20,6 @@ root.permissions.755=${launcherName}
root.win32.win32.x86_64=file:bin/win32/win32/x86_64/launcher.exe
root.win32.win32.x86_64.permissions.755=launcher.exe
-root.linux.gtk.ppc64le=bin/gtk/linux/ppc64le,gtk_root
-root.linux.gtk.ppc64le.permissions.755=launcher
-
root.macosx.cocoa.x86_64=bin/cocoa/macosx/x86_64
root.macosx.cocoa.x86_64.permissions.755=Contents/MacOS/${launcherName}
diff --git a/features/org.eclipse.equinox.executable.feature/resources/build.xml b/features/org.eclipse.equinox.executable.feature/resources/build.xml
index 297ae849f..5811ae426 100644
--- a/features/org.eclipse.equinox.executable.feature/resources/build.xml
+++ b/features/org.eclipse.equinox.executable.feature/resources/build.xml
@@ -138,7 +138,6 @@
<target name="rootFilesgroup_group_group">
<antcall target="rootFileswin32_win32_x86_64"/>
<antcall target="rootFilesmacosx_cocoa_x86_64"/>
- <antcall target="rootFileslinux_gtk_ppc64le"/>
<antcall target="rootFileslinux_gtk_x86_64"/>
</target>
diff --git a/pom.xml b/pom.xml
index 379802d2f..d4dc4cf51 100644
--- a/pom.xml
+++ b/pom.xml
@@ -88,7 +88,6 @@
<module>bundles/org.eclipse.equinox.launcher</module>
<module>bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64</module>
- <module>bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le</module>
<module>bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64</module>
<module>bundles/org.eclipse.equinox.launcher.win32.win32.x86_64</module>

Back to the top