diff options
author | Joakim Erdfelt | 2015-07-23 19:16:50 +0000 |
---|---|---|
committer | Joakim Erdfelt | 2015-07-23 19:16:50 +0000 |
commit | b954a2dad565db086883efb2680791ffb45ee523 (patch) | |
tree | 1dc3660f3173fbb332ddd2913232580f26beec77 | |
parent | c9c2ebc5325e3c11fa9f6ca2193fad5a7095f3cc (diff) | |
download | org.eclipse.jetty.project-b954a2dad565db086883efb2680791ffb45ee523.tar.gz org.eclipse.jetty.project-b954a2dad565db086883efb2680791ffb45ee523.tar.xz org.eclipse.jetty.project-b954a2dad565db086883efb2680791ffb45ee523.zip |
Unit testing upgrades
+ Using jetty-test-helper 3.0
+ Adding jetty-perf-helper (replacement for BenchmarkHelper)
+ Adding JmxServiceConnection to jetty-deploy (formerly part of
jetty-test-helper)
5 files changed, 172 insertions, 7 deletions
diff --git a/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/DeploymentManagerLifeCyclePathTest.java b/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/DeploymentManagerLifeCyclePathTest.java index 3907186a44..49dd8d08a8 100644 --- a/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/DeploymentManagerLifeCyclePathTest.java +++ b/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/DeploymentManagerLifeCyclePathTest.java @@ -27,7 +27,6 @@ import javax.management.ObjectName; import org.eclipse.jetty.jmx.MBeanContainer; import org.eclipse.jetty.server.handler.ContextHandlerCollection; -import org.eclipse.jetty.toolchain.jmx.JmxServiceConnection; import org.junit.Test; public class DeploymentManagerLifeCyclePathTest diff --git a/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/JmxServiceConnection.java b/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/JmxServiceConnection.java new file mode 100644 index 0000000000..c59c87585b --- /dev/null +++ b/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/JmxServiceConnection.java @@ -0,0 +1,154 @@ +// +// ======================================================================== +// Copyright (c) 1995-2012 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.deploy; + +import java.io.IOException; +import java.lang.management.ManagementFactory; + +import javax.management.MBeanServer; +import javax.management.MBeanServerConnection; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +import org.eclipse.jetty.toolchain.test.IO; + +/** + * JmxServiceConnection + * + * Provides ability to create a connection to either an external + * JMX server, or a loopback connection to the internal one. + */ +public class JmxServiceConnection +{ + private String serviceUrl; + private MBeanServer server; + private JMXConnectorServer connectorServer; + private JMXConnector serverConnector; + private MBeanServerConnection serviceConnection; + + /** + * Construct a loopback connection to an internal server + */ + public JmxServiceConnection() + { + this(null); + } + + /** + * Construct a connection to specified server + * + * @param url + * URL of JMX server + */ + public JmxServiceConnection(String url) + { + serviceUrl = url; + } + + /** + * Retrieve an external URL for the JMX server + * + * @return service URL + */ + public String getServiceUrl() + { + return serviceUrl; + } + + /* ------------------------------------------------------------ */ + /** + * Retrieve a connection to MBean server + * + * @return connection to MBean server + */ + public MBeanServerConnection getConnection() + { + return serviceConnection; + } + + public void connect() throws IOException + { + if (serviceConnection == null) + { + if (serviceUrl == null) + { + openLoopbackConnection(); + } + else + { + openServerConnection(serviceUrl); + } + } + } + + /** + * Open a loopback connection to local JMX server + * + * @throws IOException + */ + private void openLoopbackConnection() throws IOException + { + server = ManagementFactory.getPlatformMBeanServer(); + + JMXServiceURL serviceUrl = new JMXServiceURL("service:jmx:rmi://"); + connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(serviceUrl,null,server); + connectorServer.start(); + + this.serviceUrl = connectorServer.getAddress().toString(); + + serverConnector = JMXConnectorFactory.connect(connectorServer.getAddress()); + serviceConnection = serverConnector.getMBeanServerConnection(); + } + + /** + * Open a connection to remote JMX server + * + * @param url + * @throws IOException + */ + private void openServerConnection(String url) throws IOException + { + serviceUrl = url; + serverConnector = JMXConnectorFactory.connect(new JMXServiceURL(serviceUrl)); + serviceConnection = serverConnector.getMBeanServerConnection(); + } + + /** + * Close the connections + */ + public void disconnect() + { + IO.close(serverConnector); + + if (connectorServer != null) + { + try + { + connectorServer.stop(); + } + catch (Exception ignore) + { + /* ignore */ + } + } + } +} diff --git a/jetty-util/pom.xml b/jetty-util/pom.xml index fd944c1c36..59d87cf6db 100644 --- a/jetty-util/pom.xml +++ b/jetty-util/pom.xml @@ -77,6 +77,11 @@ </dependency> <dependency> <groupId>org.eclipse.jetty.toolchain</groupId> + <artifactId>jetty-perf-helper</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty.toolchain</groupId> <artifactId>jetty-test-helper</artifactId> <scope>test</scope> </dependency> diff --git a/jetty-util/src/test/java/org/eclipse/jetty/util/thread/SchedulerTest.java b/jetty-util/src/test/java/org/eclipse/jetty/util/thread/SchedulerTest.java index f1b2af7163..6813c64b78 100644 --- a/jetty-util/src/test/java/org/eclipse/jetty/util/thread/SchedulerTest.java +++ b/jetty-util/src/test/java/org/eclipse/jetty/util/thread/SchedulerTest.java @@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; -import org.eclipse.jetty.toolchain.test.BenchmarkHelper; +import org.eclipse.jetty.toolchain.perf.PlatformMonitor; import org.eclipse.jetty.toolchain.test.annotation.Slow; import org.eclipse.jetty.util.statistic.SampleStatistic; import org.hamcrest.Matchers; @@ -218,11 +218,13 @@ public class SchedulerTest public void testBenchmark() throws Exception { schedule(2000,10000,2000,50); - BenchmarkHelper benchmark = new BenchmarkHelper(); - benchmark.startStatistics(); + PlatformMonitor benchmark = new PlatformMonitor(); + PlatformMonitor.Start start = benchmark.start(); + System.err.println(start); System.err.println(_scheduler); schedule(2000,30000,2000,50); - benchmark.stopStatistics(); + PlatformMonitor.Stop stop = benchmark.stop(); + System.err.println(stop); } private void schedule(int threads,final int duration, final int delay, final int interval) throws Exception @@ -649,7 +649,12 @@ <dependency> <groupId>org.eclipse.jetty.toolchain</groupId> <artifactId>jetty-test-helper</artifactId> - <version>2.7</version> + <version>3.0</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty.toolchain</groupId> + <artifactId>jetty-perf-helper</artifactId> + <version>1.0.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> @@ -669,7 +674,7 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>4.11</version> + <version>4.12</version> </dependency> <dependency> <groupId>org.hamcrest</groupId> |