You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by tj...@apache.org on 2021/05/18 16:00:01 UTC

[felix-dev] 03/05: Hide LoggerFactory from Equinox for unit test.

This is an automated email from the ASF dual-hosted git repository.

tjwatson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git

commit 4dc2ed1865f5a2d0c6a1918b33a358b4edb753b2
Author: Thomas Watson <tj...@us.ibm.com>
AuthorDate: Tue May 11 12:20:17 2021 -0500

    Hide LoggerFactory from Equinox for unit test.
---
 .../org/apache/felix/scr/impl/logger/LoggerTest.java   | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/scr/src/test/java/org/apache/felix/scr/impl/logger/LoggerTest.java b/scr/src/test/java/org/apache/felix/scr/impl/logger/LoggerTest.java
index faa534e..22f8e85 100644
--- a/scr/src/test/java/org/apache/felix/scr/impl/logger/LoggerTest.java
+++ b/scr/src/test/java/org/apache/felix/scr/impl/logger/LoggerTest.java
@@ -31,6 +31,7 @@ import java.io.FilterOutputStream;
 import java.io.IOException;
 import java.io.PrintStream;
 import java.io.StringWriter;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.ServiceLoader;
@@ -42,8 +43,11 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.hooks.service.FindHook;
 import org.osgi.framework.launch.Framework;
 import org.osgi.service.log.LogLevel;
 import org.osgi.service.log.Logger;
@@ -70,6 +74,20 @@ public class LoggerTest {
 				.newFramework(configuration);
 		framework.init();
 		framework.start();
+        // hide LoggerFactory from equinox
+        framework.getBundleContext().registerService(FindHook.class, new FindHook()
+        {
+
+            @Override
+            public void find(BundleContext context, String name, String filter,
+                boolean allServices, Collection<ServiceReference<?>> references)
+            {
+                if (name != null && "org.osgi.service.log.LoggerFactory".equals(name))
+                {
+                    references.removeIf((r) -> r.getBundle().getBundleId() == 0);
+                }
+            }
+        }, null);
 
 		scr = framework.getBundleContext().installBundle("scr", makeBundle("scr").openInputStream());
 		component = framework.getBundleContext().installBundle("component",