Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/LogReaderServiceTest.java')
-rw-r--r--bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/LogReaderServiceTest.java43
1 files changed, 39 insertions, 4 deletions
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/LogReaderServiceTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/LogReaderServiceTest.java
index 26249d3b0..2cf330135 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/LogReaderServiceTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/LogReaderServiceTest.java
@@ -9,16 +9,33 @@
package org.eclipse.equinox.log.test;
import java.io.File;
-import java.util.*;
-import java.util.concurrent.*;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+import org.eclipse.equinox.log.SynchronousLogListener;
import org.eclipse.osgi.container.Module;
import org.eclipse.osgi.container.ModuleContainerAdaptor.ContainerEvent;
import org.eclipse.osgi.internal.framework.EquinoxConfiguration;
import org.eclipse.osgi.launch.Equinox;
import org.eclipse.osgi.tests.OSGiTestsActivator;
import org.eclipse.osgi.tests.bundles.AbstractBundleTests;
-import org.osgi.framework.*;
-import org.osgi.service.log.*;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.log.LogEntry;
+import org.osgi.service.log.LogLevel;
+import org.osgi.service.log.LogListener;
+import org.osgi.service.log.LogReaderService;
+import org.osgi.service.log.LogService;
+import org.osgi.service.log.Logger;
import org.osgi.service.log.admin.LoggerAdmin;
import org.osgi.service.log.admin.LoggerContext;
@@ -137,6 +154,24 @@ public class LogReaderServiceTest extends AbstractBundleTests {
assertTrue(listener.getEntryX().getLevel() == LogService.LOG_INFO);
}
+ public void testLogBundleEventSynchronous() throws Exception {
+ // this is just a bundle that is harmless to start/stop
+ final Bundle testBundle = installer.installBundle("test.logging.a"); //$NON-NLS-1$
+ final AtomicReference<Thread> logThread = new AtomicReference<>();
+ LogListener listener = new SynchronousLogListener() {
+ @Override
+ public void logged(LogEntry entry) {
+ if (entry.getBundle() == testBundle) {
+ logThread.compareAndSet(null, Thread.currentThread());
+ }
+ }
+ };
+ reader.addLogListener(listener);
+ testBundle.start();
+
+ assertEquals("Wrong thread for synchronous bundle event logs.", Thread.currentThread(), logThread.get());
+ }
+
public void testLogServiceEventInfo() throws Exception {
TestListener listener = new TestListener();
reader.addLogListener(listener);

Back to the top