summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2020-07-16 22:36:13 +0200
committergjoranv <gv@verizonmedia.com>2020-07-16 22:57:43 +0200
commit60bf570feffd5921c41f028696ce4d9b000b780c (patch)
treea90d1e84a48e83baade1bd101145c808bb5d6c8d
parentd9af1cf77bd1f283b930385c1e7af1cc4a11d807 (diff)
Don't rely on FelixFramework - it's not in an exported package
-rw-r--r--container-core/src/main/java/com/yahoo/osgi/OsgiImpl.java3
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java7
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/core/FelixFramework.java5
3 files changed, 13 insertions, 2 deletions
diff --git a/container-core/src/main/java/com/yahoo/osgi/OsgiImpl.java b/container-core/src/main/java/com/yahoo/osgi/OsgiImpl.java
index 998273acfc7..b34442d50a9 100644
--- a/container-core/src/main/java/com/yahoo/osgi/OsgiImpl.java
+++ b/container-core/src/main/java/com/yahoo/osgi/OsgiImpl.java
@@ -5,7 +5,6 @@ import com.yahoo.component.ComponentSpecification;
import com.yahoo.component.Version;
import com.yahoo.container.bundle.BundleInstantiationSpecification;
import com.yahoo.jdisc.application.OsgiFramework;
-import com.yahoo.jdisc.core.FelixFramework;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleException;
import org.osgi.framework.launch.Framework;
@@ -154,7 +153,7 @@ public class OsgiImpl implements Osgi {
@Override
public boolean hasFelixFramework() {
- return jdiscOsgi instanceof FelixFramework;
+ return jdiscOsgi.isFelixFramework();
}
private static Bundle firstNonFrameworkBundle(List<Bundle> bundles) {
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java b/jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java
index b1aceb81bc6..12168663205 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java
@@ -113,4 +113,11 @@ public interface OsgiFramework {
*/
void stop() throws BundleException;
+ /**
+ * Returns true if this is a Felix based framework and not e.g. a test framework.
+ */
+ default boolean isFelixFramework() {
+ return false;
+ }
+
}
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/FelixFramework.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/FelixFramework.java
index c14e513fb98..bd189f8b898 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/FelixFramework.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/FelixFramework.java
@@ -169,6 +169,11 @@ public class FelixFramework implements OsgiFramework {
collisionHook.allowDuplicateBundles(bundles);
}
+ @Override
+ public boolean isFelixFramework() {
+ return true;
+ }
+
private void installBundle(String bundleLocation, Set<String> mask, List<Bundle> out) throws BundleException {
bundleLocation = BundleLocationResolver.resolve(bundleLocation);
if (mask.contains(bundleLocation)) {