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);
+        }
+    }
+
 }

Reply via email to