STREAMS-201 | Added util to tests to remove registed mbeans before next test runs
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/ea973e00 Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/ea973e00 Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/ea973e00 Branch: refs/heads/master Commit: ea973e005f8d774a924bfc62d056b07ffe152c92 Parents: 6a8ed61 Author: Ryan Ebanks <[email protected]> Authored: Tue Oct 21 15:50:57 2014 -0500 Committer: Ryan Ebanks <[email protected]> Committed: Tue Oct 21 15:50:57 2014 -0500 ---------------------------------------------------------------------- .../local/builders/LocalStreamBuilderTest.java | 12 ++++++++++++ ...nUnhandledThrowableThreadPoolExecutorTest.java | 11 +++++++++++ .../queues/ThroughputQueueMulitThreadTest.java | 10 ++++++++++ .../queues/ThroughputQueueSingleThreadTest.java | 11 +++++++++++ .../streams/local/tasks/BasicTasksTest.java | 10 ++++++++++ .../local/tasks/StreamsProviderTaskTest.java | 10 ++++++++++ .../tests/TestComponentsLocalStream.java | 13 ++++++++++++- .../tests/TestExpectedDatumsPersitWriter.java | 13 ++++++++++++- .../component/tests/TestFileReaderProvider.java | 12 +++++++++++- .../org/apache/streams/util/ComponentUtils.java | 18 ++++++++++++++++++ 10 files changed, 117 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/builders/LocalStreamBuilderTest.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/builders/LocalStreamBuilderTest.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/builders/LocalStreamBuilderTest.java index e602181..6513032 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/builders/LocalStreamBuilderTest.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/builders/LocalStreamBuilderTest.java @@ -50,6 +50,8 @@ import org.apache.streams.local.test.providers.EmptyResultSetProvider; import org.apache.streams.local.test.providers.NumericMessageProvider; import org.apache.streams.local.test.writer.DatumCounterWriter; import org.apache.streams.local.test.writer.SystemOutWriter; +import org.apache.streams.util.ComponentUtils; +import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -73,6 +75,16 @@ import javax.management.*; public class LocalStreamBuilderTest extends RandomizedTest { + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } + + public void removeRegisteredMBeans(String... ids) { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); for(String id : ids) { http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/executors/ShutdownStreamOnUnhandledThrowableThreadPoolExecutorTest.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/executors/ShutdownStreamOnUnhandledThrowableThreadPoolExecutorTest.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/executors/ShutdownStreamOnUnhandledThrowableThreadPoolExecutorTest.java index 17e8dd9..f6dd70d 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/executors/ShutdownStreamOnUnhandledThrowableThreadPoolExecutorTest.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/executors/ShutdownStreamOnUnhandledThrowableThreadPoolExecutorTest.java @@ -1,6 +1,8 @@ package org.apache.streams.local.executors; import org.apache.streams.local.builders.LocalStreamBuilder; +import org.apache.streams.util.ComponentUtils; +import org.junit.After; import org.junit.Test; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -23,6 +25,15 @@ import static org.mockito.Mockito.when; public class ShutdownStreamOnUnhandledThrowableThreadPoolExecutorTest { + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } + @Test public void testShutDownOnException() { LocalStreamBuilder sb = mock(LocalStreamBuilder.class); http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueMulitThreadTest.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueMulitThreadTest.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueMulitThreadTest.java index 96b944f..264a2a0 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueMulitThreadTest.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueMulitThreadTest.java @@ -19,6 +19,7 @@ package org.apache.streams.local.queues; import com.carrotsearch.randomizedtesting.RandomizedTest; import com.carrotsearch.randomizedtesting.annotations.Repeat; +import org.apache.streams.util.ComponentUtils; import org.junit.After; import org.junit.Test; import org.slf4j.Logger; @@ -50,6 +51,15 @@ public class ThroughputQueueMulitThreadTest extends RandomizedTest { } } + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } + /** * Test that queue will block on puts when the queue is full http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueSingleThreadTest.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueSingleThreadTest.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueSingleThreadTest.java index 569ba5c..2492161 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueSingleThreadTest.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/queues/ThroughputQueueSingleThreadTest.java @@ -19,6 +19,8 @@ package org.apache.streams.local.queues; import com.carrotsearch.randomizedtesting.RandomizedTest; import com.carrotsearch.randomizedtesting.annotations.Repeat; +import org.apache.streams.util.ComponentUtils; +import org.junit.After; import org.junit.Test; import javax.management.MBeanServer; @@ -35,6 +37,15 @@ import static org.junit.Assert.assertEquals; public class ThroughputQueueSingleThreadTest extends RandomizedTest { + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } + /** * Test that take and put queue and dequeue data as expected and all * measurements form the queue are returning data. http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/BasicTasksTest.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/BasicTasksTest.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/BasicTasksTest.java index f524db0..2d28602 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/BasicTasksTest.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/BasicTasksTest.java @@ -23,6 +23,8 @@ import org.apache.streams.local.queues.ThroughputQueue; import org.apache.streams.local.test.processors.PassthroughDatumCounterProcessor; import org.apache.streams.local.test.providers.NumericMessageProvider; import org.apache.streams.local.test.writer.DatumCounterWriter; +import org.apache.streams.util.ComponentUtils; +import org.junit.After; import org.junit.Test; import java.util.Queue; @@ -36,6 +38,14 @@ import static org.junit.Assert.*; public class BasicTasksTest { + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } @Test public void testProviderTask() { http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/StreamsProviderTaskTest.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/StreamsProviderTaskTest.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/StreamsProviderTaskTest.java index 856c357..5e18650 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/StreamsProviderTaskTest.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/local/tasks/StreamsProviderTaskTest.java @@ -23,6 +23,7 @@ import org.apache.streams.core.StreamsDatum; import org.apache.streams.core.StreamsProvider; import org.apache.streams.core.StreamsResultSet; import org.apache.streams.util.ComponentUtils; +import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -49,6 +50,15 @@ public class StreamsProviderTaskTest { pool = Executors.newFixedThreadPool(1); } + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } + @Test public void runPerpetual() { StreamsProviderTask task = new StreamsProviderTask(mockProvider, true); http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestComponentsLocalStream.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestComponentsLocalStream.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestComponentsLocalStream.java index 3437767..935c8fe 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestComponentsLocalStream.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestComponentsLocalStream.java @@ -22,13 +22,24 @@ import org.apache.streams.local.builders.LocalStreamBuilder; import org.apache.streams.test.component.ExpectedDatumsPersistWriter; import org.apache.streams.test.component.FileReaderProvider; import org.apache.streams.test.component.StringToDocumentConverter; +import org.apache.streams.util.ComponentUtils; +import org.junit.After; import org.junit.Test; /** - * Created by rebanks on 2/28/14. + * */ public class TestComponentsLocalStream { + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } + @Test public void testLocalStreamWithComponent() { LocalStreamBuilder builder = new LocalStreamBuilder(); http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestExpectedDatumsPersitWriter.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestExpectedDatumsPersitWriter.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestExpectedDatumsPersitWriter.java index 8a9939f..11e891b 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestExpectedDatumsPersitWriter.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestExpectedDatumsPersitWriter.java @@ -21,11 +21,13 @@ package org.apache.streams.test.component.tests; import org.apache.streams.core.StreamsDatum; import org.apache.streams.test.component.ExpectedDatumsPersistWriter; import org.apache.streams.test.component.StringToDocumentConverter; +import org.apache.streams.util.ComponentUtils; +import org.junit.After; import org.junit.Ignore; import org.junit.Test; /** - * Created by rebanks on 2/28/14. + * */ public class TestExpectedDatumsPersitWriter { @@ -38,6 +40,15 @@ public class TestExpectedDatumsPersitWriter { // ,new StreamsDatum("Document5") }; + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } + @Test public void testExpectedDatumsPersistWriterFileName() { testDatums(new ExpectedDatumsPersistWriter(new StringToDocumentConverter(), "/TestFile.txt")); http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestFileReaderProvider.java ---------------------------------------------------------------------- diff --git a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestFileReaderProvider.java b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestFileReaderProvider.java index b8481ce..1ae9a24 100644 --- a/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestFileReaderProvider.java +++ b/streams-runtimes/streams-runtime-local/src/test/java/org/apache/streams/test/component/tests/TestFileReaderProvider.java @@ -22,6 +22,8 @@ import org.apache.streams.core.StreamsDatum; import org.apache.streams.core.StreamsResultSet; import org.apache.streams.test.component.FileReaderProvider; import org.apache.streams.test.component.StringToDocumentConverter; +import org.apache.streams.util.ComponentUtils; +import org.junit.After; import org.junit.Ignore; import org.junit.Test; @@ -30,10 +32,18 @@ import java.io.InputStream; import static org.junit.Assert.*; /** - * Created by rebanks on 2/28/14. + * */ public class TestFileReaderProvider { + @After + public void removeLocalMBeans() { + try { + ComponentUtils.removeAllMBeansOfDomain("org.apache.streams.local"); + } catch (Exception e) { + //No op. proceed to next test + } + } @Test public void testFileReaderProviderFileName() { http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/ea973e00/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java ---------------------------------------------------------------------- diff --git a/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java b/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java index 9f3c480..9f73560 100644 --- a/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java +++ b/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java @@ -22,7 +22,11 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.management.MBeanServer; +import javax.management.ObjectName; +import java.lang.management.ManagementFactory; import java.util.Queue; +import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; @@ -105,4 +109,18 @@ public class ComponentUtils { } } + /** + * Removes all mbeans registered undered a specific domain. Made specificly to clean up at unit tests + * @param domain + */ + public static void removeAllMBeansOfDomain(String domain) throws Exception { + MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); + domain = domain.endsWith(":") ? domain : domain+":"; + ObjectName objectName = new ObjectName(domain+"*"); + Set<ObjectName> mbeanNames = mbs.queryNames(objectName, null); + for(ObjectName name : mbeanNames) { + mbs.unregisterMBean(name); + } + } + }
