diff options
author | gjoranv <gv@verizonmedia.com> | 2019-11-05 10:54:05 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-11-05 10:54:05 +0100 |
commit | 5161a1d334506225a191514b4e6ba03ac4e038ad (patch) | |
tree | cc6d493b647aa4a5f267724feb56dc6ef1472db0 | |
parent | d75825d503b8566e66d45b0ef726a1d5834970d7 (diff) |
Reapply "Gjoranv/hidden bundles logging"
This reverts commit 962ab3348d8ab538bc3a37d085e9be134779763a.
-rw-r--r-- | jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java index ae1c81195ce..e2167a5cc96 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java @@ -8,6 +8,7 @@ import org.osgi.framework.Version; import org.osgi.framework.hooks.bundle.CollisionHook; import org.osgi.framework.hooks.bundle.EventHook; import org.osgi.framework.hooks.bundle.FindHook; +import org.osgi.framework.launch.Framework; import java.util.Collection; import java.util.HashMap; @@ -18,9 +19,10 @@ import java.util.Set; import java.util.logging.Logger; /** - * A bundle {@link CollisionHook} that contains a set of bundles that are allowed to collide with - * bundles that are about to be installed. In order to clean up when bundles are uninstalled, this - * is also a bundle {@link EventHook}. + * A bundle {@link CollisionHook} that contains a set of bundles that are allowed to collide with bundles + * that are about to be installed. This class also implements a {@link FindHook} to provide a consistent + * view of bundles such that the two sets of duplicate bundles are invisible to each other. + * In order to clean up when bundles are uninstalled, this is also a bundle {@link EventHook}. * * Thread safe * @@ -86,9 +88,6 @@ public class BundleCollisionHook implements CollisionHook, EventHook, FindHook { * If the given context represents one of the allowed duplicates, this method filters out all bundles * that are duplicates of the allowed duplicates. Otherwise this method filters out the allowed duplicates, * so they are not visible to other bundles. - * - * NOTE: This hook method is added for a consistent view of the installed bundles, but is not actively - * used by jdisc. The OSGi framework does not use FindHooks when calculating bundle wiring. */ @Override public synchronized void find(BundleContext context, Collection<Bundle> bundles) { @@ -107,7 +106,7 @@ public class BundleCollisionHook implements CollisionHook, EventHook, FindHook { } } } - log.info("Hiding bundles from bundle '" + context.getBundle() + "': " + bundlesToHide); + logHiddenBundles(context, bundlesToHide); bundles.removeAll(bundlesToHide); } @@ -115,6 +114,18 @@ public class BundleCollisionHook implements CollisionHook, EventHook, FindHook { return ! allowedDuplicates.containsKey(bundle) && allowedDuplicates.containsValue(new BsnVersion(bundle)); } + private void logHiddenBundles(BundleContext requestingContext, Set<Bundle> hiddenBundles) { + if (hiddenBundles.isEmpty()) { + log.fine(() -> "No bundles to hide from bundle " + requestingContext.getBundle()); + } else { + if (requestingContext.getBundle() instanceof Framework) { + log.fine(() -> "Requesting bundle is the Framework, so hidden bundles will be visible: " + hiddenBundles); + } else { + log.info("Hiding bundles from bundle '" + requestingContext.getBundle() + "': " + hiddenBundles); + } + } + } + static class BsnVersion { |