Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Erdfelt2015-07-23 19:16:50 +0000
committerJoakim Erdfelt2015-07-23 19:44:43 +0000
commit3f85fbbbd2f1f0ad32c2c5962dfb3486176bed11 (patch)
tree9c8a059b5b0cca3636525bdefb2a67239826557f /jetty-deploy/src
parent0b7246a0f0e2dd601f0c93dbae89d5fe4854adf1 (diff)
downloadorg.eclipse.jetty.project-3f85fbbbd2f1f0ad32c2c5962dfb3486176bed11.tar.gz
org.eclipse.jetty.project-3f85fbbbd2f1f0ad32c2c5962dfb3486176bed11.tar.xz
org.eclipse.jetty.project-3f85fbbbd2f1f0ad32c2c5962dfb3486176bed11.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)
Diffstat (limited to 'jetty-deploy/src')
-rw-r--r--jetty-deploy/src/test/java/org/eclipse/jetty/deploy/DeploymentManagerLifeCyclePathTest.java1
-rw-r--r--jetty-deploy/src/test/java/org/eclipse/jetty/deploy/JmxServiceConnection.java154
2 files changed, 154 insertions, 1 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 */
+ }
+ }
+ }
+}

Back to the top