/**
* Tests loading an array of SSHConnections from JSON and establishing a basic connection
* @throws Exception thrown on any error
*/
@SuppressWarnings("static-method")
@Test
public void testJMXMPTunnel() throws Exception {
System.clearProperty(SSHD_PORT_PROP);
final ApacheSSHDServer sshdServer = ApacheSSHDServer.getInstance();
final int[] ports = setLocalPorts();
System.setProperty(SSHD_PORT_PROP, "" + sshdServer.getPort());
final JMXMPConnectorServer jmxmp = JMXHelper.fireUpJMXMPServer(0);
final int remotePort = jmxmp.getAddress().getPort();
final String agentId = JMXHelper.getAgentId();
log("Actual Agent ID: [" + agentId + "]");
try {
final URL url = SSHConnectionTest.class.getClassLoader().getResource(TEST_JSON);
final SSHConnection[] connections = SSHTunnelManager.parseConnections(url);
log(Arrays.deepToString(connections));
for(int i = 0; i < connections.length; i++) {
connections[i].authenticate();
LocalPortForwarder lpf = (LocalPortForwarder)PrivateAccessor.invoke(connections[i], "createPortForward", new Object[]{0, "localhost", remotePort}, int.class, String.class, int.class);
final int localPort = lpf.getLocalPort();
final JMXConnector jmxConnector = JMXHelper.getJMXConnection("service:jmx:jmxmp://localhost:" + localPort, true, null);
final MBeanServerConnection server = jmxConnector.getMBeanServerConnection();
final String readAgentId = JMXHelper.getAgentId(server);
log("Agent ID: for [" + connections[i] + "] : [" + agentId + "]");
Assert.assertEquals("Mismatch on expected agent ids", agentId, readAgentId);
jmxConnector.close();
}
} finally {
jmxmp.stop();
sshdServer.stop(true);
System.clearProperty(SSHD_PORT_PROP);
}
}
SSHConnectionTest.java 文件源码
java
阅读 21
收藏 0
点赞 0
评论 0
项目:HeliosStreams
作者:
评论列表
文章目录