Author: david.lloyd(a)jboss.com
Date: 2010-03-02 21:53:41 -0500 (Tue, 02 Mar 2010)
New Revision: 5791
Added:
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/AbstractRemoteTestCase.java
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteSslTestCase.java
Modified:
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteTestCase.java
Log:
Prep testing of SSL separately
Added:
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/AbstractRemoteTestCase.java
===================================================================
---
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/AbstractRemoteTestCase.java
(rev 0)
+++
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/AbstractRemoteTestCase.java 2010-03-03
02:53:41 UTC (rev 5791)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+package org.jboss.remoting3.test;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.URI;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import org.jboss.remoting3.CloseHandler;
+import org.jboss.remoting3.Connection;
+import org.jboss.remoting3.RemotingOptions;
+import org.jboss.remoting3.security.SimpleServerAuthenticationProvider;
+import org.jboss.remoting3.spi.NetworkServerProvider;
+import org.jboss.remoting3.spi.ProtocolServiceType;
+import org.jboss.xnio.AcceptingServer;
+import org.jboss.xnio.ChannelListener;
+import org.jboss.xnio.IoFuture;
+import org.jboss.xnio.IoUtils;
+import org.jboss.xnio.OptionMap;
+import org.jboss.xnio.Options;
+import org.jboss.xnio.Xnio;
+import org.jboss.xnio.channels.BoundChannel;
+import org.jboss.xnio.channels.ConnectedStreamChannel;
+import org.testng.annotations.BeforeTest;
+
+import static org.testng.Assert.assertNotNull;
+
+public abstract class AbstractRemoteTestCase extends InvocationTestBase {
+
+ @BeforeTest
+ public void setUp() throws IOException {
+ enter();
+ try {
+ super.setUp();
+ final SimpleServerAuthenticationProvider authenticationProvider = new
SimpleServerAuthenticationProvider();
+ authenticationProvider.addUser("user", "endpoint",
"password".toCharArray());
+
endpoint.addProtocolService(ProtocolServiceType.SERVER_AUTHENTICATION_PROVIDER,
"test", authenticationProvider);
+ } finally {
+ exit();
+ }
+ }
+
+ protected Connection getConnection() throws IOException {
+ final NetworkServerProvider provider =
endpoint.getConnectionProviderInterface(getScheme(), NetworkServerProvider.class);
+ assertNotNull(provider, "No remote provider interface");
+ final ChannelListener<ConnectedStreamChannel<InetSocketAddress>>
listener =
provider.getServerListener(OptionMap.builder().set(RemotingOptions.AUTHENTICATION_PROVIDER,
"test").setSequence(Options.SASL_MECHANISMS, "DIGEST-MD5").getMap());
+ final Xnio xnio = Xnio.getInstance();
+ try {
+ final AcceptingServer<InetSocketAddress, ?, ?> server =
getServer(listener, xnio);
+ final IoFuture<? extends BoundChannel<InetSocketAddress>> future
= server.bind(new InetSocketAddress(InetAddress.getByName("127.0.0.1"), 0));
+ final InetSocketAddress localAddress = future.get().getLocalAddress();
+ final Connection connection = endpoint.connect(new URI(getScheme(), null,
localAddress.getAddress().getHostAddress(), localAddress.getPort(), null, null, null),
OptionMap.builder().setSequence(Options.SSL_ENABLED_CIPHER_SUITES,
"TLS_RSA_WITH_AES_128_CBC_SHA").getMap(), "user", null,
"password".toCharArray()).get();
+ connection.addCloseHandler(new CloseHandler<Connection>() {
+ public void handleClose(final Connection closed) {
+ IoUtils.safeClose(server);
+ }
+ });
+ return connection;
+ } catch (Exception e) {
+ final IOException ioe = new IOException();
+ ioe.initCause(e);
+ throw ioe;
+ }
+ }
+
+ protected abstract String getScheme();
+
+ protected abstract AcceptingServer<InetSocketAddress, ?, ?>
getServer(ChannelListener<ConnectedStreamChannel<InetSocketAddress>> listener,
Xnio xnio) throws NoSuchProviderException, NoSuchAlgorithmException;
+}
Copied:
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteSslTestCase.java
(from rev 5790,
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteTestCase.java)
===================================================================
---
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteSslTestCase.java
(rev 0)
+++
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteSslTestCase.java 2010-03-03
02:53:41 UTC (rev 5791)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+package org.jboss.remoting3.test;
+
+import java.net.InetSocketAddress;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import org.jboss.xnio.ChannelListener;
+import org.jboss.xnio.OptionMap;
+import org.jboss.xnio.Options;
+import org.jboss.xnio.SslTcpServer;
+import org.jboss.xnio.Xnio;
+import org.jboss.xnio.channels.ConnectedStreamChannel;
+import org.testng.SkipException;
+import org.testng.annotations.Test;
+
+@Test(suiteName = "Remote SSL tests")
+public final class RemoteSslTestCase extends AbstractRemoteTestCase {
+ protected SslTcpServer getServer(final
ChannelListener<ConnectedStreamChannel<InetSocketAddress>> listener, final
Xnio xnio) throws NoSuchProviderException, NoSuchAlgorithmException {
+ return xnio.createSslTcpServer(listener,
OptionMap.builder().setSequence(Options.SSL_ENABLED_CIPHER_SUITES,
"TLS_RSA_WITH_AES_128_CBC_SHA").getMap());
+ }
+
+ protected String getScheme() {
+ if (true) throw new SkipException("SSL");
+ return "remote+ssl";
+ }
+}
\ No newline at end of file
Modified:
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteTestCase.java
===================================================================
---
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteTestCase.java 2010-03-03
02:33:26 UTC (rev 5790)
+++
remoting3/trunk/jboss-remoting/src/test/java/org/jboss/remoting3/test/RemoteTestCase.java 2010-03-03
02:53:41 UTC (rev 5791)
@@ -22,67 +22,21 @@
package org.jboss.remoting3.test;
-import java.io.IOException;
-import java.net.InetAddress;
import java.net.InetSocketAddress;
-import java.net.URI;
-import org.jboss.remoting3.CloseHandler;
-import org.jboss.remoting3.Connection;
-import org.jboss.remoting3.RemotingOptions;
-import org.jboss.remoting3.security.SimpleServerAuthenticationProvider;
-import org.jboss.remoting3.spi.NetworkServerProvider;
-import org.jboss.remoting3.spi.ProtocolServiceType;
-import org.jboss.xnio.AcceptingServer;
import org.jboss.xnio.ChannelListener;
-import org.jboss.xnio.IoFuture;
-import org.jboss.xnio.IoUtils;
import org.jboss.xnio.OptionMap;
-import org.jboss.xnio.Options;
+import org.jboss.xnio.TcpServer;
import org.jboss.xnio.Xnio;
-import org.jboss.xnio.channels.BoundChannel;
import org.jboss.xnio.channels.ConnectedStreamChannel;
-import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
-import static org.testng.Assert.assertNotNull;
-
@Test(suiteName = "Remote tests")
-public final class RemoteTestCase extends InvocationTestBase {
-
- @BeforeTest
- public void setUp() throws IOException {
- enter();
- try {
- super.setUp();
- final SimpleServerAuthenticationProvider authenticationProvider = new
SimpleServerAuthenticationProvider();
- authenticationProvider.addUser("user", "endpoint",
"password".toCharArray());
-
endpoint.addProtocolService(ProtocolServiceType.SERVER_AUTHENTICATION_PROVIDER,
"test", authenticationProvider);
- } finally {
- exit();
- }
+public final class RemoteTestCase extends AbstractRemoteTestCase {
+ protected TcpServer getServer(final
ChannelListener<ConnectedStreamChannel<InetSocketAddress>> listener, final
Xnio xnio) {
+ return xnio.createTcpServer(listener, OptionMap.EMPTY);
}
- protected Connection getConnection() throws IOException {
- final NetworkServerProvider provider =
endpoint.getConnectionProviderInterface("remote", NetworkServerProvider.class);
- assertNotNull(provider, "No remote provider interface");
- final ChannelListener<ConnectedStreamChannel<InetSocketAddress>>
listener =
provider.getServerListener(OptionMap.builder().set(RemotingOptions.AUTHENTICATION_PROVIDER,
"test").setSequence(Options.SASL_MECHANISMS, "DIGEST-MD5").getMap());
- final Xnio xnio = Xnio.getInstance();
- try {
-// final AcceptingServer<InetSocketAddress, ?, ?> server =
xnio.createSslTcpServer(listener,
OptionMap.builder().setSequence(Options.SSL_ENABLED_CIPHER_SUITES,
"TLS_RSA_WITH_AES_128_CBC_SHA").getMap());
- final AcceptingServer<InetSocketAddress, ?, ?> server =
xnio.createTcpServer(listener, OptionMap.EMPTY);
- final IoFuture<? extends BoundChannel<InetSocketAddress>> future
= server.bind(new InetSocketAddress(InetAddress.getByName("127.0.0.1"), 0));
- final InetSocketAddress localAddress = future.get().getLocalAddress();
- final Connection connection = endpoint.connect(new URI("remote",
null, localAddress.getAddress().getHostAddress(), localAddress.getPort(), null, null,
null), OptionMap.builder().setSequence(Options.SSL_ENABLED_CIPHER_SUITES,
"TLS_RSA_WITH_AES_128_CBC_SHA").getMap(), "user", null,
"password".toCharArray()).get();
- connection.addCloseHandler(new CloseHandler<Connection>() {
- public void handleClose(final Connection closed) {
- IoUtils.safeClose(server);
- }
- });
- return connection;
- } catch (Exception e) {
- final IOException ioe = new IOException();
- ioe.initCause(e);
- throw ioe;
- }
+ protected String getScheme() {
+ return "remote";
}
-}
\ No newline at end of file
+}