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)
This commit is contained in:
parent
c9c2ebc532
commit
b954a2dad5
|
@ -27,7 +27,6 @@ import javax.management.ObjectName;
|
||||||
|
|
||||||
import org.eclipse.jetty.jmx.MBeanContainer;
|
import org.eclipse.jetty.jmx.MBeanContainer;
|
||||||
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
|
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
|
||||||
import org.eclipse.jetty.toolchain.jmx.JmxServiceConnection;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class DeploymentManagerLifeCyclePathTest
|
public class DeploymentManagerLifeCyclePathTest
|
||||||
|
|
|
@ -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 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -75,6 +75,11 @@
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>javax.servlet-api</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty.toolchain</groupId>
|
||||||
|
<artifactId>jetty-perf-helper</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.eclipse.jetty.toolchain</groupId>
|
<groupId>org.eclipse.jetty.toolchain</groupId>
|
||||||
<artifactId>jetty-test-helper</artifactId>
|
<artifactId>jetty-test-helper</artifactId>
|
||||||
|
|
|
@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
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.toolchain.test.annotation.Slow;
|
||||||
import org.eclipse.jetty.util.statistic.SampleStatistic;
|
import org.eclipse.jetty.util.statistic.SampleStatistic;
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
|
@ -218,11 +218,13 @@ public class SchedulerTest
|
||||||
public void testBenchmark() throws Exception
|
public void testBenchmark() throws Exception
|
||||||
{
|
{
|
||||||
schedule(2000,10000,2000,50);
|
schedule(2000,10000,2000,50);
|
||||||
BenchmarkHelper benchmark = new BenchmarkHelper();
|
PlatformMonitor benchmark = new PlatformMonitor();
|
||||||
benchmark.startStatistics();
|
PlatformMonitor.Start start = benchmark.start();
|
||||||
|
System.err.println(start);
|
||||||
System.err.println(_scheduler);
|
System.err.println(_scheduler);
|
||||||
schedule(2000,30000,2000,50);
|
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
|
private void schedule(int threads,final int duration, final int delay, final int interval) throws Exception
|
||||||
|
|
9
pom.xml
9
pom.xml
|
@ -649,7 +649,12 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.eclipse.jetty.toolchain</groupId>
|
<groupId>org.eclipse.jetty.toolchain</groupId>
|
||||||
<artifactId>jetty-test-helper</artifactId>
|
<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>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
|
@ -669,7 +674,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<version>4.11</version>
|
<version>4.12</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hamcrest</groupId>
|
<groupId>org.hamcrest</groupId>
|
||||||
|
|
Loading…
Reference in New Issue