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:
Joakim Erdfelt 2015-07-23 12:16:50 -07:00
parent c9c2ebc532
commit b954a2dad5
5 changed files with 172 additions and 7 deletions

View File

@ -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

View File

@ -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 */
}
}
}
}

View File

@ -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>

View File

@ -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

View File

@ -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>