You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2007/09/20 09:06:37 UTC
svn commit: r577587 - in /geronimo/sandbox/gshell/trunk/gshell-remote: ./
gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/
gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/
gshell-remote-common/src/...
Author: jdillon
Date: Thu Sep 20 00:06:36 2007
New Revision: 577587
URL: http://svn.apache.org/viewvc?rev=577587&view=rev
Log:
Updated to use Mina 1.1.2... which fricken works!!!! Yay... happy birthday to me :-P
Modified:
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RemoteShellProxy.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshClient.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MarshallingUtil.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MessageCodecFactory.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/logging/LoggingFilter.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/ExecuteMessage.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageType.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestResponseFilter.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Requestor.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/security/SecurityFilter.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionStreamFilter.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ProtocolHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportCommon.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransport.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransportServer.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransport.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransportServer.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerMessageVisitor.java
geronimo/sandbox/gshell/trunk/gshell-remote/pom.xml
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RemoteShellProxy.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RemoteShellProxy.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RemoteShellProxy.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RemoteShellProxy.java Thu Sep 20 00:06:36 2007
@@ -71,13 +71,9 @@
client.openShell();
- //
- // HACK: Turn this off for the moment to test more...
- //
-
// Copy the client's input stream to our outputstream so users see command output
- // outputFeeder = new StreamFeeder(client.getInputStream(), io.outputStream);
- // outputFeeder.createThread().start();
+ outputFeeder = new StreamFeeder(client.getInputStream(), io.outputStream);
+ outputFeeder.createThread().start();
opened = true;
}
@@ -105,18 +101,17 @@
}
public void close() {
- // outputFeeder.close();
+ try {
+ outputFeeder.close();
+ }
+ catch (Exception ignore) {}
try {
client.closeShell();
}
- catch (Exception e) {
- log.error("Failure occured while closing remote shell; ignoring", e);
- }
+ catch (Exception ignore) {}
opened = false;
-
- log.info("Closed");
}
//
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshClient.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshClient.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshClient.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshClient.java Thu Sep 20 00:06:36 2007
@@ -170,7 +170,5 @@
public void close() {
transport.close();
-
- log.debug("Closed");
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MarshallingUtil.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MarshallingUtil.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MarshallingUtil.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MarshallingUtil.java Thu Sep 20 00:06:36 2007
@@ -243,4 +243,32 @@
out.putLong(uuid.getLeastSignificantBits());
}
}
+
+ //
+ // Enum Serialization (adapted from Mina 2.x)
+ //
+
+ public static ByteBuffer writeEnum(final ByteBuffer out, Enum<?> e) {
+ if (e.ordinal() > Byte.MAX_VALUE) {
+ throw new IllegalArgumentException(enumConversionErrorMessage(e, "byte"));
+ }
+
+ return out.put((byte) e.ordinal());
+ }
+
+ public static <E extends Enum<E>> E readEnum(final ByteBuffer in, final Class<E> enumClass) {
+ return toEnum(enumClass, in.get());
+ }
+
+ private static <E> E toEnum(Class<E> enumClass, int i) {
+ E[] enumConstants = enumClass.getEnumConstants();
+ if (i > enumConstants.length) {
+ throw new IndexOutOfBoundsException(String.format("%d is too large of an ordinal to convert to the enum %s", i, enumClass.getName()));
+ }
+ return enumConstants[i];
+ }
+
+ private static String enumConversionErrorMessage(Enum<?> e, String type) {
+ return String.format("%s.%s has an ordinal value too large for a %s", e.getClass().getName(), e.name(), type);
+ }
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MessageCodecFactory.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MessageCodecFactory.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MessageCodecFactory.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/codec/MessageCodecFactory.java Thu Sep 20 00:06:36 2007
@@ -23,12 +23,15 @@
import java.nio.channels.Channels;
import java.nio.channels.WritableByteChannel;
import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
import java.util.Set;
import org.apache.geronimo.gshell.remote.crypto.CryptoContext;
import org.apache.geronimo.gshell.remote.crypto.CryptoContextAware;
import org.apache.geronimo.gshell.remote.message.Message;
import org.apache.geronimo.gshell.remote.message.MessageType;
+import org.apache.geronimo.gshell.remote.request.Request;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecException;
@@ -36,7 +39,6 @@
import org.apache.mina.filter.codec.ProtocolEncoderOutput;
import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory;
import org.apache.mina.filter.codec.demux.MessageDecoder;
-import org.apache.mina.filter.codec.demux.MessageDecoderAdapter;
import org.apache.mina.filter.codec.demux.MessageDecoderFactory;
import org.apache.mina.filter.codec.demux.MessageDecoderResult;
import org.apache.mina.filter.codec.demux.MessageEncoder;
@@ -71,9 +73,11 @@
private CryptoContext crypto;
public MessageCodecFactory() {
+ register(new EncoderFactory());
+
register(new DecoderFactory());
- register(new EncoderFactory());
+ register(new RequestEncoderFactory());
}
private void attachCryptoContext(final Message msg) {
@@ -135,7 +139,7 @@
writeVersion(out);
- out.putEnum(msg.getType());
+ MarshallingUtil.writeEnum(out, msg.getType());
// Determine the length of the message body
out.mark();
@@ -182,7 +186,7 @@
public class Encoder
implements MessageEncoder
{
- public Set getMessageTypes() {
+ public Set<Class<?>> getMessageTypes() {
return MessageType.types();
}
@@ -218,7 +222,7 @@
}
public class Decoder
- extends MessageDecoderAdapter
+ implements MessageDecoder
{
public MessageDecoderResult decodable(final IoSession session, final ByteBuffer in) {
assert session != null;
@@ -233,7 +237,7 @@
readVersion(in);
- MessageType type = in.getEnum(MessageType.class);
+ MessageType type = MarshallingUtil.readEnum(in, MessageType.class);
if (type == null) {
return MessageDecoderResult.NOT_OK;
@@ -262,7 +266,7 @@
readVersion(in);
- MessageType type = in.getEnum(MessageType.class);
+ MessageType type = MarshallingUtil.readEnum(in, MessageType.class);
Message msg = MessageType.create(type);
@@ -279,6 +283,40 @@
out.write(msg);
return MessageDecoderResult.OK;
+ }
+
+ public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {}
+ }
+
+ //
+ // RequestEncoder
+ //
+
+ public class RequestEncoderFactory
+ implements MessageEncoderFactory
+ {
+ public MessageEncoder getEncoder() throws Exception {
+ return new RequestEncoder();
+ }
+ }
+
+ public class RequestEncoder
+ extends Encoder
+ {
+ public Set<Class<?>> getMessageTypes() {
+ Set<Class<?>> types = new HashSet<Class<?>>();
+
+ types.add(Request.class);
+
+ return Collections.unmodifiableSet(types);
+ }
+
+ public void encode(final IoSession session, final Object message, final ProtocolEncoderOutput out) throws Exception {
+ Request request = (Request) message;
+
+ Message msg = request.getMessage();
+
+ super.encode(session, msg, out);
}
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/logging/LoggingFilter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/logging/LoggingFilter.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/logging/LoggingFilter.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/logging/LoggingFilter.java Thu Sep 20 00:06:36 2007
@@ -19,16 +19,15 @@
package org.apache.geronimo.gshell.remote.logging;
-import org.apache.mina.common.IoEventType;
-
/**
- * Custom logging filter to setup some better levels.
+ * ???
*
* @version $Rev$ $Date$
*/
public class LoggingFilter
- extends org.apache.mina.filter.logging.LoggingFilter
+ extends org.apache.mina.filter.LoggingFilter
{
+ /*
public LoggingFilter() {
setLogLevel(IoEventType.EXCEPTION_CAUGHT, WARN);
setLogLevel(IoEventType.MESSAGE_RECEIVED, DEBUG);
@@ -40,4 +39,5 @@
setLogLevel(IoEventType.WRITE, DEBUG);
setLogLevel(IoEventType.CLOSE, DEBUG);
}
+ */
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/ExecuteMessage.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/ExecuteMessage.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/ExecuteMessage.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/ExecuteMessage.java Thu Sep 20 00:06:36 2007
@@ -72,7 +72,7 @@
super.readExternal(in);
- this.flavor = in.getEnum(Flavor.class);
+ this.flavor = MarshallingUtil.readEnum(in, Flavor.class);
this.path = MarshallingUtil.readString(in);
@@ -84,7 +84,7 @@
super.writeExternal(out);
- out.putEnum(flavor);
+ MarshallingUtil.writeEnum(out, flavor);
MarshallingUtil.writeString(out, path);
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageType.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageType.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageType.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageType.java Thu Sep 20 00:06:36 2007
@@ -74,8 +74,8 @@
}
}
- public static Set<Class> types() {
- Set<Class> set = new HashSet<Class>();
+ public static Set<Class<?>> types() {
+ Set<Class<?>> set = new HashSet<Class<?>>();
for (MessageType type : values()) {
set.add(type.type);
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestResponseFilter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestResponseFilter.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestResponseFilter.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestResponseFilter.java Thu Sep 20 00:06:36 2007
@@ -25,8 +25,6 @@
import org.apache.geronimo.gshell.remote.message.Message;
import org.apache.mina.common.IoFilterAdapter;
import org.apache.mina.common.IoSession;
-import org.apache.mina.common.WriteRequest;
-import org.apache.mina.common.WriteRequestWrapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -70,6 +68,20 @@
nextFilter.sessionClosed(session);
}
+ public void filterWrite(final NextFilter nextFilter, final IoSession session, final WriteRequest writeRequest) throws Exception {
+ Object message = writeRequest.getMessage();
+
+ if (message instanceof Request) {
+ // Register the request with the manager
+ Request request = (Request) message;
+
+ RequestManager manager = RequestManager.lookup(session);
+ manager.add(request);
+ }
+
+ nextFilter.filterWrite(session, writeRequest);
+ }
+
public void messageReceived(final NextFilter nextFilter, final IoSession session, final Object message) throws Exception {
Message msg = null;
@@ -109,23 +121,7 @@
}
}
- public void filterWrite(final NextFilter nextFilter, final IoSession session, final WriteRequest writeRequest) throws Exception {
- Object message = writeRequest.getMessage();
-
- if (message instanceof Request) {
- // Register the request with the manager
- Request request = (Request) message;
-
- RequestManager manager = RequestManager.lookup(session);
- manager.add(request);
-
- nextFilter.filterWrite(session, new RequestWriteRequest(writeRequest));
- }
- else {
- nextFilter.filterWrite(session, writeRequest);
- }
- }
-
+ /*
public void messageSent(final NextFilter nextFilter, final IoSession session, final WriteRequest writeRequest) throws Exception {
if (writeRequest instanceof RequestWriteRequest) {
// Setup a timeout for the request now that its been sent
@@ -142,20 +138,17 @@
nextFilter.messageSent(session, writeRequest);
}
}
+ */
- private static class RequestWriteRequest
- extends WriteRequestWrapper
- {
- public RequestWriteRequest(final WriteRequest wr) {
- super(wr);
- }
+ public void messageSent(NextFilter nextFilter, IoSession session, Object message) throws Exception {
+ if (message instanceof Request) {
+ Request request = (Request) message;
- public Object getMessage() {
- return ((Request) super.getMessage()).getMessage();
- }
+ RequestManager manager = RequestManager.lookup(session);
- public Request getRequest() {
- return (Request) super.getWriteRequest().getMessage();
+ manager.schedule(request);
}
+
+ nextFilter.messageSent(session, message);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Requestor.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Requestor.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Requestor.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Requestor.java Thu Sep 20 00:06:36 2007
@@ -190,50 +190,24 @@
return delegate.getSession();
}
- public WriteFuture await() throws InterruptedException {
- return delegate.await();
- }
-
- public boolean await(long timeout, TimeUnit unit) throws InterruptedException {
- return delegate.await(timeout, unit);
- }
-
- public boolean await(long timeoutMillis) throws InterruptedException {
- return delegate.await(timeoutMillis);
- }
-
- public WriteFuture awaitUninterruptibly() {
- return delegate.awaitUninterruptibly();
- }
-
- public boolean awaitUninterruptibly(long timeout, TimeUnit unit) {
- return delegate.awaitUninterruptibly(timeout, unit);
- }
-
- public boolean awaitUninterruptibly(long timeoutMillis) {
- return delegate.awaitUninterruptibly(timeoutMillis);
- }
-
- @Deprecated
public void join() {
delegate.join();
}
- @Deprecated
- public boolean join(long timeoutMillis) {
- return delegate.join(timeoutMillis);
+ public boolean join(long timeoutInMillis) {
+ return delegate.join(timeoutInMillis);
}
public boolean isReady() {
return delegate.isReady();
}
- public WriteFuture addListener(IoFutureListener listener) {
- return delegate.addListener(listener);
+ public void addListener(IoFutureListener listener) {
+ delegate.addListener(listener);
}
- public WriteFuture removeListener(IoFutureListener listener) {
- return delegate.removeListener(listener);
+ public void removeListener(IoFutureListener listener) {
+ delegate.removeListener(listener);
}
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/security/SecurityFilter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/security/SecurityFilter.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/security/SecurityFilter.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/security/SecurityFilter.java Thu Sep 20 00:06:36 2007
@@ -76,16 +76,19 @@
securityToken = UUID.randomUUID();
}
-
+
+ @Override
public void init() throws Exception {
// Install the schedule purger to purge any cancelled tasks to prevent memory leaks
scheduler.scheduleWithFixedDelay(new SchedulePurgerTask(), 10, 10, TimeUnit.SECONDS);
}
+ @Override
public void destroy() throws Exception {
scheduler.shutdownNow();
}
+ @Override
public void sessionOpened(final NextFilter nextFilter, final IoSession session) throws Exception {
assert nextFilter != null;
assert session != null;
@@ -96,6 +99,7 @@
nextFilter.sessionOpened(session);
}
+ @Override
public void messageReceived(final NextFilter nextFilter, final IoSession session, final Object obj) throws Exception {
assert nextFilter != null;
assert session != null;
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionOutputStream.java Thu Sep 20 00:06:36 2007
@@ -123,7 +123,7 @@
public void run() {
log.debug("Waiting for full write");
- wf.awaitUninterruptibly();
+ wf.join();
log.debug("Completed; written: {}", wf.isWritten());
}
@@ -145,7 +145,7 @@
WriteFuture wf = lastWriteFuture;
lastWriteFuture = null;
- wf.awaitUninterruptibly();
+ wf.join();
if (!wf.isWritten()) {
throw new IOException("Failed to fully write bytes to the session");
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionStreamFilter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionStreamFilter.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionStreamFilter.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/stream/SessionStreamFilter.java Thu Sep 20 00:06:36 2007
@@ -25,9 +25,6 @@
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.IoFilterAdapter;
import org.apache.mina.common.IoSession;
-import org.apache.mina.common.IoSessionConfig;
-import org.apache.mina.common.IoFilter;
-import org.apache.mina.common.WriteRequest;
import org.codehaus.plexus.util.IOUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -58,6 +55,7 @@
// TODO: See if we need to put the executor into the session context
//
+ @Override
public void sessionCreated(NextFilter nextFilter, IoSession session) throws Exception {
log.debug("Binding session streams");
@@ -68,17 +66,7 @@
nextFilter.sessionCreated(session);
}
- /*
- public void sessionOpened(NextFilter nextFilter, IoSession session) throws Exception {
- IoSessionConfig config = session.getConfig();
-
- config.setWriteTimeout(60);
- config.setIdleTime(IdleStatus.READER_IDLE, 60);
-
- nextFilter.sessionOpened(session);
- }
- */
-
+ @Override
public void sessionClosed(NextFilter nextFilter, IoSession session) throws Exception {
log.debug("Unbinding session streams");
@@ -89,18 +77,21 @@
nextFilter.sessionClosed(session);
}
+ @Override
public void sessionIdle(NextFilter nextFilter, IoSession session, IdleStatus status) throws Exception {
log.debug("Session idle: {}, status: {}", session, status);
nextFilter.sessionIdle(session, status);
}
+ @Override
public void exceptionCaught(NextFilter nextFilter, IoSession session, Throwable cause) throws Exception {
log.debug("Exception caught: " + session + ", cause: " + cause, cause);
nextFilter.exceptionCaught(session, cause);
}
+ @Override
public void messageReceived(final NextFilter nextFilter, final IoSession session, final Object message) throws Exception {
if (message instanceof WriteStreamMessage) {
final WriteStreamMessage msg = (WriteStreamMessage) message;
@@ -117,7 +108,9 @@
}
};
- executor.execute(task);
+ task.run();
+
+ // executor.execute(task);
// There is no need to pass on this message to any other filters, they have no use for it...
}
@@ -126,9 +119,8 @@
}
}
- public void messageSent(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception {
- Object message = writeRequest.getMessage();
-
+ @Override
+ public void messageSent(NextFilter nextFilter, IoSession session, Object message) throws Exception {
if (message instanceof WriteStreamMessage) {
log.debug("Message sent: {}, msg: {}", session, message);
@@ -137,6 +129,6 @@
//
}
- nextFilter.messageSent(session, writeRequest);
+ nextFilter.messageSent(session, message);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ProtocolHandler.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ProtocolHandler.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ProtocolHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ProtocolHandler.java Thu Sep 20 00:06:36 2007
@@ -52,7 +52,7 @@
//
// TODO: Do we need to stuff the visitor into the session context?
//
-
+
public void sessionCreated(IoSession session) throws Exception {
log.debug("Session created: {}", session);
}
@@ -64,7 +64,7 @@
public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
log.debug("Session idle: {}, status: {}", session, status);
}
-
+
public void sessionClosed(final IoSession session) throws Exception {
log.debug("Session closed: {}", session);
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportCommon.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportCommon.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportCommon.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportCommon.java Thu Sep 20 00:06:36 2007
@@ -26,9 +26,11 @@
import org.apache.geronimo.gshell.remote.message.MessageVisitor;
import org.apache.geronimo.gshell.remote.request.RequestResponseFilter;
import org.apache.geronimo.gshell.remote.stream.SessionStreamFilter;
+import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.DefaultIoFilterChainBuilder;
import org.apache.mina.common.IoService;
import org.apache.mina.common.IoSession;
+import org.apache.mina.common.SimpleByteBufferAllocator;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.management.IoSessionStat;
import org.apache.mina.management.StatCollector;
@@ -62,6 +64,9 @@
private MessageCodecFactory codecFactory;
protected TransportCommon() {
+ ByteBuffer.setUseDirectBuffers(false);
+ ByteBuffer.setAllocator(new SimpleByteBufferAllocator());
+
//
// TODO: Add custom thread factory ?
//
@@ -88,7 +93,7 @@
handler.setVisitor(visitor);
- service.setHandler(handler);
+ // service.setHandler(handler);
DefaultIoFilterChainBuilder filterChain = service.getFilterChain();
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransport.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransport.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransport.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransport.java Thu Sep 20 00:06:36 2007
@@ -24,8 +24,8 @@
import org.apache.geronimo.gshell.remote.ssl.SSLContextFactory;
import org.apache.geronimo.gshell.remote.transport.tcp.TcpTransport;
import org.apache.mina.common.DefaultIoFilterChainBuilder;
+import org.apache.mina.filter.SSLFilter;
import org.apache.mina.filter.executor.ExecutorFilter;
-import org.apache.mina.filter.ssl.SslFilter;
/**
* Provides TCP+SSL client-side support.
@@ -46,10 +46,10 @@
DefaultIoFilterChainBuilder filterChain = connector.getFilterChain();
- SslFilter sslFilter = new SslFilter(sslContextFactory.createClientContext());
+ SSLFilter sslFilter = new SSLFilter(sslContextFactory.createClientContext());
sslFilter.setUseClientMode(true);
- filterChain.addAfter(ExecutorFilter.class.getSimpleName(), SslFilter.class.getSimpleName(), sslFilter);
+ filterChain.addAfter(ExecutorFilter.class.getSimpleName(), SSLFilter.class.getSimpleName(), sslFilter);
}
//
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransportServer.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransportServer.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransportServer.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/ssl/SslTransportServer.java Thu Sep 20 00:06:36 2007
@@ -25,7 +25,7 @@
import org.apache.geronimo.gshell.remote.transport.tcp.TcpTransportServer;
import org.apache.mina.common.DefaultIoFilterChainBuilder;
import org.apache.mina.filter.executor.ExecutorFilter;
-import org.apache.mina.filter.ssl.SslFilter;
+import org.apache.mina.filter.SSLFilter;
/**
* Provides TCP+SSL server-side support.
@@ -46,9 +46,9 @@
DefaultIoFilterChainBuilder filterChain = acceptor.getFilterChain();
- SslFilter sslFilter = new SslFilter(sslContextFactory.createServerContext());
+ SSLFilter sslFilter = new SSLFilter(sslContextFactory.createServerContext());
- filterChain.addAfter(ExecutorFilter.class.getSimpleName(), SslFilter.class.getSimpleName(), sslFilter);
+ filterChain.addAfter(ExecutorFilter.class.getSimpleName(), SSLFilter.class.getSimpleName(), sslFilter);
}
//
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransport.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransport.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransport.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransport.java Thu Sep 20 00:06:36 2007
@@ -48,7 +48,8 @@
import org.apache.mina.common.IoSession;
import org.apache.mina.common.IoSessionConfig;
import org.apache.mina.common.WriteFuture;
-import org.apache.mina.transport.socket.SocketSessionConfig;
+import org.apache.mina.common.IoHandler;
+import org.apache.mina.common.IoServiceConfig;
import org.apache.mina.transport.socket.nio.SocketConnector;
/**
@@ -108,7 +109,7 @@
protected IoConnector createConnector() throws Exception {
SocketConnector connector = new SocketConnector(/*Runtime.getRuntime().availableProcessors() + 1*/ 4, /* executor */ Executors.newCachedThreadPool());
- SocketSessionConfig config = connector.getSessionConfig();
+ // SocketSessionConfig config = connector.getSessionConfig();
// config.setTcpNoDelay(true);
// config.setKeepAlive(true);
@@ -120,12 +121,16 @@
connector = createConnector();
connector.addListener(new IoServiceListener() {
- public void serviceActivated(IoService service) {
+ public void serviceActivated(IoService service, SocketAddress serviceAddress, IoHandler handler, IoServiceConfig config) {
log.info("Service activated: {}", service);
+
+ // log.info("Service activated: {}, {}, {}, {}", service, serviceAddress, handler, config);
}
- public void serviceDeactivated(IoService service) {
+ public void serviceDeactivated(IoService service, SocketAddress serviceAddress, IoHandler handler, IoServiceConfig config) {
log.info("Service deactivated: {}", service);
+
+ // log.info("Service deactivated: {}, {}, {}, {}", service, serviceAddress, handler, config);
}
public void sessionCreated(IoSession session) {
@@ -148,7 +153,17 @@
configure(connector);
- DefaultIoFilterChainBuilder filterChain = connector.getFilterChain();
+ DefaultIoFilterChainBuilder filterChain;
+
+ filterChain = connector.getDefaultConfig().getFilterChain();
+
+ log.debug("Default filters:");
+
+ for (IoFilterChain.Entry entry : filterChain.getAll()) {
+ log.debug(" {}", entry);
+ }
+
+ filterChain = connector.getFilterChain();
log.debug("Service filters:");
@@ -156,9 +171,11 @@
log.debug(" {}", entry);
}
+ /*
IoSessionConfig config = connector.getSessionConfig();
log.debug("Session config: {}", ReflectionToStringBuilder.toString(config, ToStringStyle.MULTI_LINE_STYLE));
+ */
}
public synchronized void connect() throws Exception {
@@ -170,13 +187,18 @@
log.info("Connecting to: {}", remoteAddress);
- ConnectFuture cf = connector.connect(remoteAddress, localAddress);
+ ConnectFuture cf = connector.connect(remoteAddress, localAddress, getProtocolHandler());
- if (cf.awaitUninterruptibly(CONNECT_TIMEOUT, TimeUnit.SECONDS)) {
- session = cf.getSession();
- }
- else {
- throw new ConnectionException("Failed to connect in allocated time");
+ cf.join();
+
+ session = cf.getSession();
+
+ IoFilterChain filterChain = session.getFilterChain();
+
+ log.debug("Session filters:");
+
+ for (IoFilterChain.Entry entry : filterChain.getAll()) {
+ log.debug(" {}", entry);
}
connected = true;
@@ -190,7 +212,7 @@
try {
CloseFuture cf = session.close();
- cf.awaitUninterruptibly();
+ cf.join();
}
finally {
super.close();
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransportServer.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransportServer.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransportServer.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/tcp/TcpTransportServer.java Thu Sep 20 00:06:36 2007
@@ -38,7 +38,8 @@
import org.apache.mina.common.IoServiceListener;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.IoSessionConfig;
-import org.apache.mina.transport.socket.SocketSessionConfig;
+import org.apache.mina.common.IoHandler;
+import org.apache.mina.common.IoServiceConfig;
import org.apache.mina.transport.socket.nio.SocketAcceptor;
/**
@@ -95,11 +96,13 @@
protected IoAcceptor createAcceptor() throws Exception {
SocketAcceptor acceptor = new SocketAcceptor(/*Runtime.getRuntime().availableProcessors() + 1*/ 4, /* executor */ Executors.newCachedThreadPool());
+ /*
SocketSessionConfig config = acceptor.getSessionConfig();
// ????
config.setTcpNoDelay(true);
config.setKeepAlive(true);
+ */
return acceptor;
}
@@ -107,15 +110,17 @@
protected synchronized void init() throws Exception {
acceptor = createAcceptor();
- acceptor.setLocalAddress(address);
-
acceptor.addListener(new IoServiceListener() {
- public void serviceActivated(IoService service) {
+ public void serviceActivated(IoService service, SocketAddress serviceAddress, IoHandler handler, IoServiceConfig config) {
log.info("Service activated: {}", service);
+
+ // log.info("Service activated: {}, {}, {}, {}", service, serviceAddress, handler, config);
}
- public void serviceDeactivated(IoService service) {
+ public void serviceDeactivated(IoService service, SocketAddress serviceAddress, IoHandler handler, IoServiceConfig config) {
log.info("Service deactivated: {}", service);
+
+ // log.info("Service deactivated: {}, {}, {}, {}", service, serviceAddress, handler, config);
}
public void sessionCreated(IoSession session) {
@@ -145,9 +150,11 @@
log.debug(" {}", entry);
}
+ /*
IoSessionConfig config = acceptor.getSessionConfig();
log.debug("Session config: {}", ReflectionToStringBuilder.toString(config, ToStringStyle.MULTI_LINE_STYLE));
+ */
}
@@ -158,7 +165,7 @@
init();
- acceptor.bind();
+ acceptor.bind(address, getProtocolHandler());
bound = true;
@@ -168,7 +175,7 @@
public synchronized void close() {
super.close();
- acceptor.unbind();
+ acceptor.unbind(address);
log.info("Closed");
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerMessageVisitor.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerMessageVisitor.java?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerMessageVisitor.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerMessageVisitor.java Thu Sep 20 00:06:36 2007
@@ -257,12 +257,8 @@
}
catch (Notification n) {
msg.reply(new ExecuteMessage.Notification(n));
-
- session.close();
}
catch (Throwable t) {
- log.error("Unhandled failure; sending to client: " + t, t);
-
msg.reply(new ExecuteMessage.Fault(t));
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/pom.xml?rev=577587&r1=577586&r2=577587&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/pom.xml (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/pom.xml Thu Sep 20 00:06:36 2007
@@ -69,7 +69,13 @@
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-core</artifactId>
- <version>2.0.0-M1-SNAPSHOT</version>
+ <version>1.1.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.mina</groupId>
+ <artifactId>mina-filter-ssl</artifactId>
+ <version>1.1.2</version>
</dependency>
<dependency>