Merge remote-tracking branch 'remotes/origin/trunk' into branch-3.0-perf
diff --git a/ambari-metrics-assembly/pom.xml b/ambari-metrics-assembly/pom.xml
index d9875ce..9925947 100644
--- a/ambari-metrics-assembly/pom.xml
+++ b/ambari-metrics-assembly/pom.xml
@@ -245,6 +245,7 @@
<excludes>
<exclude>*tests.jar</exclude>
<exclude>findbugs*.jar</exclude>
+ <exclude>jdk.tools*.jar</exclude>
</excludes>
</source>
<source>
@@ -265,6 +266,7 @@
<exclude>bin/*</exclude>
<exclude>lib/*tests.jar</exclude>
<exclude>lib/findbugs*.jar</exclude>
+ <exclude>lib/jdk.tools*.jar</exclude>
</excludes>
</source>
</sources>
diff --git a/ambari-metrics-common/pom.xml b/ambari-metrics-common/pom.xml
index cae9734..aa16ba9 100644
--- a/ambari-metrics-common/pom.xml
+++ b/ambari-metrics-common/pom.xml
@@ -155,6 +155,12 @@
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
<version>2.6.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>jdk.tools</groupId>
+ <artifactId>jdk.tools</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
diff --git a/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java b/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java
index bd4ae6a..99da43f 100644
--- a/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java
+++ b/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java
@@ -18,17 +18,21 @@
package org.apache.hadoop.metrics2.sink.flume;
+import static org.easymock.EasyMock.anyObject;
import static org.easymock.EasyMock.anyString;
import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.powermock.api.easymock.PowerMock.mockStatic;
import static org.powermock.api.easymock.PowerMock.replay;
-import static org.powermock.api.easymock.PowerMock.replayAll;
import static org.powermock.api.easymock.PowerMock.resetAll;
import static org.powermock.api.easymock.PowerMock.verifyAll;
import java.net.InetAddress;
import java.util.Collections;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
import org.apache.flume.Context;
import org.apache.flume.instrumentation.util.JMXPollUtil;
@@ -43,7 +47,7 @@
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
-@PrepareForTest(JMXPollUtil.class)
+@PrepareForTest({JMXPollUtil.class, Executors.class, FlumeTimelineMetricsSink.class})
public class FlumeTimelineMetricsSinkTest {
@Test
public void testNonNumericMetricMetricExclusion() throws InterruptedException {
@@ -76,7 +80,7 @@
flumeTimelineMetricsSink.setMetricsCaches(Collections.singletonMap("SINK",timelineMetricsCache));
EasyMock.expect(timelineMetricsCache.getTimelineMetric("key1"))
.andReturn(new TimelineMetric()).once();
- timelineMetricsCache.putTimelineMetric(EasyMock.anyObject(TimelineMetric.class));
+ timelineMetricsCache.putTimelineMetric(anyObject(TimelineMetric.class));
EasyMock.expectLastCall().once();
return timelineMetricsCache;
}
@@ -86,15 +90,18 @@
FlumeTimelineMetricsSink flumeTimelineMetricsSink = new FlumeTimelineMetricsSink();
TimelineMetricsCache timelineMetricsCache = getTimelineMetricsCache(flumeTimelineMetricsSink);
flumeTimelineMetricsSink.setPollFrequency(1);
- mockStatic(JMXPollUtil.class);
- EasyMock.expect(JMXPollUtil.getAllMBeans()).andReturn(
- Collections.singletonMap("component1", Collections.singletonMap("key1", "42"))).once();
+ mockStatic(Executors.class);
+ ScheduledExecutorService executor = createNiceMock(ScheduledExecutorService.class);
+ expect(Executors.newSingleThreadScheduledExecutor()).andReturn(executor);
+ FlumeTimelineMetricsSink.TimelineMetricsCollector collector = anyObject();
+ TimeUnit unit = anyObject();
+ expect(executor.scheduleWithFixedDelay(collector, eq(0), eq(1), unit)).andReturn(null);
+ executor.shutdown();
+ replay(timelineMetricsCache, Executors.class, executor);
+
flumeTimelineMetricsSink.start();
flumeTimelineMetricsSink.stop();
- replay(JMXPollUtil.class, timelineMetricsCache);
- flumeTimelineMetricsSink.start();
- Thread.sleep(5);
- flumeTimelineMetricsSink.stop();
+
verifyAll();
}
diff --git a/ambari-metrics-timelineservice/pom.xml b/ambari-metrics-timelineservice/pom.xml
index a5eb572..ca72bc7 100644
--- a/ambari-metrics-timelineservice/pom.xml
+++ b/ambari-metrics-timelineservice/pom.xml
@@ -326,6 +326,10 @@
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>net.sourceforge.findbugs</groupId>
+ <artifactId>annotations</artifactId>
+ </exclusion>
</exclusions>
</dependency>
@@ -377,6 +381,12 @@
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
<version>${hadoop.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>jdk.tools</groupId>
+ <artifactId>jdk.tools</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.mockito</groupId>