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/10/05 02:08:21 UTC
svn commit: r582034 [1/2] - in /geronimo/sandbox/gshell/trunk:
gshell-remote/gshell-remote-client/
gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/
gshell-remote/gshell-remote-client/src/main/java/org/apache/ge...
Author: jdillon
Date: Thu Oct 4 17:08:17 2007
New Revision: 582034
URL: http://svn.apache.org/viewvc?rev=582034&view=rev
Log:
Adding Session abstraction to hook up some higher-level features (like req/resp and soon to include the session context muck)
Added:
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/CloseFileMessage.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/FileSegmentMessage.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/GetFileMessage.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/OpenFileMessage.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/PutFileMessage.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileFilter.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLConnection.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLStreamHandler.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Session.java
- copied, changed from r580765, geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/SessionAdapter.java (contents, props changed)
- copied, changed from r580765, geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/TransportAdapter.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/SessionBindingFilter.java (with props)
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/ThreadPoolModel.java (contents, props changed)
- copied, changed from r580765, geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/session/ThreadPoolModel.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/util/
- copied from r580765, geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/session/
geronimo/sandbox/gshell/trunk/gshell-whisper/src/test/java/org/apache/geronimo/gshell/whisper/util/
- copied from r580765, geronimo/sandbox/gshell/trunk/gshell-whisper/src/test/java/org/apache/geronimo/gshell/whisper/session/
Removed:
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/session/
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/TransportAdapter.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/util/ThreadPoolModel.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/util/package-info.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/test/java/org/apache/geronimo/gshell/whisper/session/
Modified:
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/pom.xml
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-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshCommand.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/auth/RemoteLoginModule.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientMessageHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientMessageHandlerSupport.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientSessionContext.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/EchoHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/pom.xml
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/pom.xml
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RemoteIO.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServer.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerCommand.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/CloseShellHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ConnectHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/EchoHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ExecuteHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/LoginHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/OpenShellHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerMessageHandler.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerMessageHandlerSupport.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerSessionContext.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/timeout/DefaultTimeoutManager.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/timeout/TimeoutManager.java
geronimo/sandbox/gshell/trunk/gshell-whisper/pom.xml
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/RequestManager.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/Requestor.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionInputStream.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionOutputStream.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/BaseService.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/BaseTransport.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/BaseTransportServer.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/util/SessionAttributeBinder.java
geronimo/sandbox/gshell/trunk/gshell-whisper/src/test/java/org/apache/geronimo/gshell/whisper/message/PingPongProtocolTester.java
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/pom.xml?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/pom.xml (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/pom.xml Thu Oct 4 17:08:17 2007
@@ -60,7 +60,7 @@
<executions>
<execution>
<goals>
- <goal>commands-descriptor</goal>
+ <goal>descriptor</goal>
</goals>
</execution>
</executions>
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=582034&r1=582033&r2=582034&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 Oct 4 17:08:17 2007
@@ -40,6 +40,7 @@
import org.apache.geronimo.gshell.remote.message.OpenShellMessage;
import org.apache.geronimo.gshell.whisper.message.Message;
import org.apache.geronimo.gshell.whisper.message.MessageHandler;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.apache.geronimo.gshell.whisper.transport.Transport;
import org.apache.geronimo.gshell.whisper.transport.TransportFactory;
import org.apache.geronimo.gshell.whisper.transport.TransportFactoryLocator;
@@ -71,6 +72,8 @@
private Transport transport;
+ private Session session;
+
@Requirement(role=ClientMessageHandler.class)
private List<ClientMessageHandler> handlers;
@@ -82,16 +85,17 @@
TransportFactory factory = locator.locate(remote);
transport = factory.connect(remote, local, new Handler());
+ session = transport.getSession();
log.debug("Connected to: {}", remote);
}
public InputStream getInputStream() {
- return transport.getInputStream();
+ return session.getInputStream();
}
public OutputStream getOutputStream() {
- return transport.getOutputStream();
+ return session.getOutputStream();
}
public Transport getTransport() {
@@ -110,9 +114,9 @@
private void doHandshake() throws Exception {
log.debug("Handshaking");
- ClientSessionContext context = ClientSessionContext.BINDER.lookup(transport.getSession());
+ ClientSessionContext context = ClientSessionContext.BINDER.lookup(session.getSession());
- Message response = transport.request(new ConnectMessage(crypto.getPublicKey()));
+ Message response = session.request(new ConnectMessage(crypto.getPublicKey()));
if (response instanceof ConnectMessage.Result) {
ConnectMessage.Result result = (ConnectMessage.Result)response;
@@ -126,7 +130,7 @@
private void doLogin(final String username, final String password) throws Exception {
log.debug("Logging in: {}", username);
- ClientSessionContext context = ClientSessionContext.BINDER.lookup(transport.getSession());
+ ClientSessionContext context = ClientSessionContext.BINDER.lookup(session.getSession());
CallbackHandler callbackHandler = new UsernamePasswordCallbackHandler(username, password);
LoginContext loginContext = new LoginContext("RshClient", callbackHandler);
@@ -148,13 +152,13 @@
log.debug("Echoing: {}", text);
- transport.send(new EchoMessage(text)).join();
+ session.send(new EchoMessage(text)).join();
}
public void openShell() throws Exception {
log.debug("Opening remote shell");
- Message resp = transport.request(new OpenShellMessage());
+ Message resp = session.request(new OpenShellMessage());
//
// TODO: Need some context from the response
@@ -166,7 +170,7 @@
public void closeShell() throws Exception {
log.debug("Closing remote shell");
- Message resp = transport.request(new CloseShellMessage());
+ Message resp = session.request(new CloseShellMessage());
//
// TODO: Need some context from the response
@@ -178,7 +182,7 @@
private Object doExecute(final ExecuteMessage msg) throws Exception {
assert msg != null;
- ExecuteMessage.Result result = (ExecuteMessage.Result) transport.request(msg);
+ ExecuteMessage.Result result = (ExecuteMessage.Result) session.request(msg);
// Handle result notifications
if (result instanceof ExecuteMessage.Notification) {
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshCommand.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/RshCommand.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshCommand.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshCommand.java Thu Oct 4 17:08:17 2007
@@ -31,8 +31,8 @@
import org.apache.geronimo.gshell.clp.Option;
import org.apache.geronimo.gshell.command.CommandSupport;
import org.apache.geronimo.gshell.command.annotation.CommandComponent;
+import org.apache.geronimo.gshell.command.annotation.Requirement;
import org.apache.geronimo.gshell.remote.client.proxy.RemoteShellProxy;
-import org.codehaus.plexus.component.annotations.Requirement;
/**
* Command to connect to a remote shell server.
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/auth/RemoteLoginModule.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/auth/RemoteLoginModule.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/auth/RemoteLoginModule.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/auth/RemoteLoginModule.java Thu Oct 4 17:08:17 2007
@@ -34,6 +34,7 @@
import org.apache.geronimo.gshell.remote.message.LoginMessage;
import org.apache.geronimo.gshell.whisper.message.Message;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.apache.geronimo.gshell.whisper.transport.Transport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -72,6 +73,7 @@
public boolean login() throws LoginException {
// Get a handle on our transport
Transport transport = getTransport();
+ Session session = transport.getSession();
// Process the username + password callbacks
Callback[] callbacks = {
@@ -95,7 +97,7 @@
// Send the login message
Message response;
try {
- response = transport.request(new LoginMessage(username, password));
+ response = session.request(new LoginMessage(username, password));
}
catch (Exception e) {
throw new LoginException(e.getMessage());
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientMessageHandler.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/handler/ClientMessageHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientMessageHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientMessageHandler.java Thu Oct 4 17:08:17 2007
@@ -21,7 +21,7 @@
import org.apache.geronimo.gshell.whisper.message.Message;
import org.apache.geronimo.gshell.whisper.message.MessageHandler;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
/**
* ???
@@ -31,5 +31,5 @@
public interface ClientMessageHandler<T extends Message>
extends MessageHandler<T>
{
- void handle(final IoSession session, final ClientSessionContext context, final T message) throws Exception;
+ void handle(final Session session, final ClientSessionContext context, final T message) throws Exception;
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientMessageHandlerSupport.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/handler/ClientMessageHandlerSupport.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientMessageHandlerSupport.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientMessageHandlerSupport.java Thu Oct 4 17:08:17 2007
@@ -21,6 +21,7 @@
import org.apache.geronimo.gshell.whisper.message.Message;
import org.apache.geronimo.gshell.whisper.message.MessageHandlerSupport;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.apache.mina.common.IoSession;
/**
@@ -39,6 +40,8 @@
public void messageReceived(final IoSession session, final T message) throws Exception {
ClientSessionContext context = ClientSessionContext.BINDER.lookup(session);
- handle(session, context, message);
+ Session s = Session.BINDER.lookup(session);
+
+ handle(s, context, message);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientSessionContext.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/handler/ClientSessionContext.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientSessionContext.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/ClientSessionContext.java Thu Oct 4 17:08:17 2007
@@ -24,7 +24,7 @@
import javax.security.auth.Subject;
import org.apache.geronimo.gshell.remote.client.auth.ClientPrincipal;
-import org.apache.geronimo.gshell.whisper.session.SessionAttributeBinder;
+import org.apache.geronimo.gshell.whisper.util.SessionAttributeBinder;
/**
* ???
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/EchoHandler.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/handler/EchoHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/EchoHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/handler/EchoHandler.java Thu Oct 4 17:08:17 2007
@@ -20,7 +20,7 @@
package org.apache.geronimo.gshell.remote.client.handler;
import org.apache.geronimo.gshell.remote.message.EchoMessage;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.codehaus.plexus.component.annotations.Component;
/**
@@ -36,7 +36,7 @@
super(EchoMessage.class);
}
- public void handle(final IoSession session, final ClientSessionContext context, final EchoMessage message) throws Exception {
+ public void handle(final Session session, final ClientSessionContext context, final EchoMessage message) throws Exception {
log.info("\n\nECHO: {}\n\n", message.getText());
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/pom.xml?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/pom.xml (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/pom.xml Thu Oct 4 17:08:17 2007
@@ -43,11 +43,13 @@
<artifactId>gshell-whisper</artifactId>
<version>${version}</version>
</dependency>
-
+
+ <!--
<dependency>
<groupId>blissed</groupId>
<artifactId>blissed</artifactId>
</dependency>
+ -->
</dependencies>
</project>
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/pom.xml?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/pom.xml (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/pom.xml Thu Oct 4 17:08:17 2007
@@ -60,7 +60,7 @@
<executions>
<execution>
<goals>
- <goal>commands-descriptor</goal>
+ <goal>descriptor</goal>
</goals>
</execution>
</executions>
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RemoteIO.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/RemoteIO.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RemoteIO.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RemoteIO.java Thu Oct 4 17:08:17 2007
@@ -22,7 +22,7 @@
import org.apache.geronimo.gshell.command.IO;
import org.apache.geronimo.gshell.whisper.stream.SessionInputStream;
import org.apache.geronimo.gshell.whisper.stream.SessionOutputStream;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
/**
* Container for <em>remote</em> input/output handles.
@@ -36,7 +36,7 @@
// TODO: Figure out how to hook up STDERR to all of this muck
//
- public RemoteIO(final IoSession session) {
- super(SessionInputStream.BINDER.lookup(session), SessionOutputStream.BINDER.lookup(session), false);
+ public RemoteIO(final Session session) {
+ super(SessionInputStream.BINDER.lookup(session.getSession()), SessionOutputStream.BINDER.lookup(session.getSession()), false);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServer.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/RshServer.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServer.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServer.java Thu Oct 4 17:08:17 2007
@@ -28,6 +28,7 @@
import org.apache.geronimo.gshell.remote.server.handler.ServerSessionContext;
import org.apache.geronimo.gshell.remote.server.timeout.TimeoutManager;
import org.apache.geronimo.gshell.whisper.message.MessageHandler;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.apache.geronimo.gshell.whisper.transport.TransportFactory;
import org.apache.geronimo.gshell.whisper.transport.TransportFactoryLocator;
import org.apache.geronimo.gshell.whisper.transport.TransportServer;
@@ -118,14 +119,16 @@
public void sessionOpened(final IoSession session) throws Exception {
assert session != null;
+ final Session s = Session.BINDER.lookup(session);
+
// Install the session context
ServerSessionContext context = ServerSessionContext.BINDER.bind(session, new ServerSessionContext());
log.debug("Created session context: {}", context);
// Schedule a task to timeout the handshake process
- timeoutManager.scheduleTimeout(session, AUTH_TIMEOUT, new Runnable() {
+ timeoutManager.scheduleTimeout(s, AUTH_TIMEOUT, new Runnable() {
public void run() {
- log.error("Timeout waiting for handshake from: {}", session.getRemoteAddress());
+ log.error("Timeout waiting for handshake from: {}", s);
session.close();
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerCommand.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/RshServerCommand.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerCommand.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RshServerCommand.java Thu Oct 4 17:08:17 2007
@@ -25,7 +25,7 @@
import org.apache.geronimo.gshell.clp.Option;
import org.apache.geronimo.gshell.command.CommandSupport;
import org.apache.geronimo.gshell.command.annotation.CommandComponent;
-import org.codehaus.plexus.component.annotations.Requirement;
+import org.apache.geronimo.gshell.command.annotation.Requirement;
/**
* Command to start a remote shell server.
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/CloseShellHandler.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/handler/CloseShellHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/CloseShellHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/CloseShellHandler.java Thu Oct 4 17:08:17 2007
@@ -21,7 +21,7 @@
import org.apache.geronimo.gshell.remote.message.CloseShellMessage;
import org.apache.geronimo.gshell.remote.message.EchoMessage;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.codehaus.plexus.component.annotations.Component;
/**
@@ -37,7 +37,7 @@
super(CloseShellMessage.class);
}
- public void handle(final IoSession session, final ServerSessionContext context, final CloseShellMessage message) throws Exception {
+ public void handle(final Session session, final ServerSessionContext context, final CloseShellMessage message) throws Exception {
context.shell.close();
context.shell = null;
@@ -50,6 +50,6 @@
EchoMessage reply = new EchoMessage("CLOSE SHELL SUCCESS");
reply.setCorrelationId(message.getId());
- session.write(reply);
+ session.send(reply);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ConnectHandler.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/handler/ConnectHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ConnectHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ConnectHandler.java Thu Oct 4 17:08:17 2007
@@ -23,7 +23,7 @@
import org.apache.geronimo.gshell.remote.message.ConnectMessage;
import org.apache.geronimo.gshell.remote.server.RshServer;
import org.apache.geronimo.gshell.remote.server.timeout.TimeoutManager;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
@@ -46,7 +46,7 @@
super(ConnectMessage.class);
}
- public void handle(final IoSession session, final ServerSessionContext context, final ConnectMessage message) throws Exception {
+ public void handle(final Session session, final ServerSessionContext context, final ConnectMessage message) throws Exception {
// Try to cancel the timeout task
if (!timeoutManager.cancelTimeout(session)) {
log.warn("Aborting handshake processing; timeout has triggered");
@@ -58,12 +58,13 @@
// Reply to the client with some details about the connection
ConnectMessage.Result reply = new ConnectMessage.Result(crypto.getPublicKey());
reply.setCorrelationId(message.getId());
- session.write(reply);
+ session.send(reply);
// Schedule a task to timeout the login process
timeoutManager.scheduleTimeout(session, RshServer.AUTH_TIMEOUT, new Runnable() {
public void run() {
- log.error("Timeout waiting for login from: {}", session.getRemoteAddress());
+ log.error("Timeout waiting for login from: {}", session);
+
session.close();
}
});
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/EchoHandler.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/handler/EchoHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/EchoHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/EchoHandler.java Thu Oct 4 17:08:17 2007
@@ -20,7 +20,7 @@
package org.apache.geronimo.gshell.remote.server.handler;
import org.apache.geronimo.gshell.remote.message.EchoMessage;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.codehaus.plexus.component.annotations.Component;
/**
@@ -36,9 +36,9 @@
super(EchoMessage.class);
}
- public void handle(final IoSession session, final ServerSessionContext context, final EchoMessage message) throws Exception {
+ public void handle(final Session session, final ServerSessionContext context, final EchoMessage message) throws Exception {
EchoMessage reply = new EchoMessage(message.getText());
reply.setCorrelationId(message.getId());
- session.write(reply);
+ session.send(reply);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ExecuteHandler.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/handler/ExecuteHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ExecuteHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ExecuteHandler.java Thu Oct 4 17:08:17 2007
@@ -23,7 +23,7 @@
import org.apache.geronimo.gshell.lookup.EnvironmentLookup;
import org.apache.geronimo.gshell.lookup.IOLookup;
import org.apache.geronimo.gshell.remote.message.ExecuteMessage;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.codehaus.plexus.component.annotations.Component;
/**
@@ -39,7 +39,7 @@
super(ExecuteMessage.class);
}
- public void handle(final IoSession session, final ServerSessionContext context, final ExecuteMessage message) throws Exception {
+ public void handle(final Session session, final ServerSessionContext context, final ExecuteMessage message) throws Exception {
// Need to make sure that the execuing thread has the right I/O and environment in context
IOLookup.set(context.container, context.io);
EnvironmentLookup.set(context.container, context.env);
@@ -65,6 +65,6 @@
}
reply.setCorrelationId(message.getId());
- session.write(reply);
+ session.send(reply);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/LoginHandler.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/handler/LoginHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/LoginHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/LoginHandler.java Thu Oct 4 17:08:17 2007
@@ -28,7 +28,7 @@
import org.apache.geronimo.gshell.remote.jaas.UsernamePasswordCallbackHandler;
import org.apache.geronimo.gshell.remote.message.LoginMessage;
import org.apache.geronimo.gshell.remote.server.timeout.TimeoutManager;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
@@ -55,7 +55,7 @@
new JaasConfigurationHelper("server.login.conf").initialize();
}
- public void handle(final IoSession session, final ServerSessionContext context, final LoginMessage message) throws Exception {
+ public void handle(final Session session, final ServerSessionContext context, final LoginMessage message) throws Exception {
// Try to cancel the timeout task
if (!timeoutManager.cancelTimeout(session)) {
log.warn("Aborting login processing; timeout has triggered");
@@ -80,7 +80,7 @@
LoginMessage.Success reply = new LoginMessage.Success(context.identity.getToken());
reply.setCorrelationId(message.getId());
- session.write(reply);
+ session.send(reply);
}
catch (LoginException e) {
String reason = e.toString();
@@ -88,7 +88,7 @@
LoginMessage.Failure reply = new LoginMessage.Failure(reason);
reply.setCorrelationId(message.getId());
- session.write(reply);
+ session.send(reply);
}
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/OpenShellHandler.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/handler/OpenShellHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/OpenShellHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/OpenShellHandler.java Thu Oct 4 17:08:17 2007
@@ -27,7 +27,7 @@
import org.apache.geronimo.gshell.remote.message.OpenShellMessage;
import org.apache.geronimo.gshell.remote.server.RemoteIO;
import org.apache.geronimo.gshell.remote.server.RemoteShellContainer;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.ClassWorld;
import org.codehaus.plexus.component.annotations.Component;
@@ -49,7 +49,7 @@
super(OpenShellMessage.class);
}
- public void handle(final IoSession session, final ServerSessionContext context, final OpenShellMessage message) throws Exception {
+ public void handle(final Session session, final ServerSessionContext context, final OpenShellMessage message) throws Exception {
// Create a new container which will be the parent for our remote shells
ClassWorld classWorld = container.getContainerRealm().getWorld();
context.container = RemoteShellContainer.create(classWorld);
@@ -71,6 +71,6 @@
EchoMessage reply = new EchoMessage("OPEN SHELL SUCCESS");
reply.setCorrelationId(message.getId());
- session.write(reply);
+ session.send(reply);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerMessageHandler.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/handler/ServerMessageHandler.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerMessageHandler.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerMessageHandler.java Thu Oct 4 17:08:17 2007
@@ -21,7 +21,7 @@
import org.apache.geronimo.gshell.whisper.message.Message;
import org.apache.geronimo.gshell.whisper.message.MessageHandler;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
/**
* ???
@@ -31,5 +31,5 @@
public interface ServerMessageHandler<T extends Message>
extends MessageHandler<T>
{
- void handle(final IoSession session, final ServerSessionContext context, final T message) throws Exception;
+ void handle(final Session session, final ServerSessionContext context, final T message) throws Exception;
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerMessageHandlerSupport.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/handler/ServerMessageHandlerSupport.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerMessageHandlerSupport.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerMessageHandlerSupport.java Thu Oct 4 17:08:17 2007
@@ -21,6 +21,7 @@
import org.apache.geronimo.gshell.whisper.message.Message;
import org.apache.geronimo.gshell.whisper.message.MessageHandlerSupport;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.apache.mina.common.IoSession;
/**
@@ -39,6 +40,8 @@
public void messageReceived(final IoSession session, final T message) throws Exception {
ServerSessionContext context = ServerSessionContext.BINDER.lookup(session);
- handle(session, context, message);
+ Session s = Session.BINDER.lookup(session);
+
+ handle(s, context, message);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerSessionContext.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/handler/ServerSessionContext.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerSessionContext.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/handler/ServerSessionContext.java Thu Oct 4 17:08:17 2007
@@ -29,7 +29,7 @@
import org.apache.geronimo.gshell.remote.server.RemoteIO;
import org.apache.geronimo.gshell.remote.server.RemoteShellContainer;
import org.apache.geronimo.gshell.shell.Environment;
-import org.apache.geronimo.gshell.whisper.session.SessionAttributeBinder;
+import org.apache.geronimo.gshell.whisper.util.SessionAttributeBinder;
/**
* ???
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/timeout/DefaultTimeoutManager.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/timeout/DefaultTimeoutManager.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/timeout/DefaultTimeoutManager.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/timeout/DefaultTimeoutManager.java Thu Oct 4 17:08:17 2007
@@ -25,8 +25,8 @@
import org.apache.geronimo.gshell.common.Duration;
import org.apache.geronimo.gshell.common.NamedThreadFactory;
-import org.apache.geronimo.gshell.whisper.session.SessionAttributeBinder;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
+import org.apache.geronimo.gshell.whisper.util.SessionAttributeBinder;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
@@ -53,22 +53,22 @@
scheduler = new ScheduledThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), tf);
}
- public ScheduledFuture scheduleTimeout(final IoSession session, final Duration timeout, final Runnable task) {
+ public ScheduledFuture scheduleTimeout(final Session session, final Duration timeout, final Runnable task) {
assert session != null;
assert timeout != null;
assert task != null;
ScheduledFuture tf = scheduler.schedule(task, timeout.value, timeout.unit);
- TIMEOUT.rebind(session, tf);
+ TIMEOUT.rebind(session.getSession(), tf);
return tf;
}
- public boolean cancelTimeout(final IoSession session) {
+ public boolean cancelTimeout(final Session session) {
assert session != null;
- ScheduledFuture tf = TIMEOUT.lookup(session);
+ ScheduledFuture tf = TIMEOUT.lookup(session.getSession());
return tf.cancel(false);
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/timeout/TimeoutManager.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/timeout/TimeoutManager.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/timeout/TimeoutManager.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/timeout/TimeoutManager.java Thu Oct 4 17:08:17 2007
@@ -22,7 +22,7 @@
import java.util.concurrent.ScheduledFuture;
import org.apache.geronimo.gshell.common.Duration;
-import org.apache.mina.common.IoSession;
+import org.apache.geronimo.gshell.whisper.transport.Session;
/**
* ???
@@ -31,7 +31,7 @@
*/
public interface TimeoutManager
{
- ScheduledFuture scheduleTimeout(IoSession session, Duration timeout, Runnable task);
+ ScheduledFuture scheduleTimeout(Session session, Duration timeout, Runnable task);
- boolean cancelTimeout(IoSession session);
+ boolean cancelTimeout(Session session);
}
Modified: geronimo/sandbox/gshell/trunk/gshell-whisper/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/pom.xml?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/pom.xml (original)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/pom.xml Thu Oct 4 17:08:17 2007
@@ -75,6 +75,11 @@
</dependency>
<dependency>
+ <groupId>commons-vfs</groupId>
+ <artifactId>commons-vfs</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
<scope>test</scope>
Modified: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/RequestManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/RequestManager.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/RequestManager.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/RequestManager.java Thu Oct 4 17:08:17 2007
@@ -33,7 +33,7 @@
import org.apache.geronimo.gshell.common.tostring.ToStringBuilder;
import org.apache.geronimo.gshell.common.tostring.ToStringStyle;
import org.apache.geronimo.gshell.whisper.message.Message;
-import org.apache.geronimo.gshell.whisper.session.SessionAttributeBinder;
+import org.apache.geronimo.gshell.whisper.util.SessionAttributeBinder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/Requestor.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/Requestor.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/Requestor.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/request/Requestor.java Thu Oct 4 17:08:17 2007
@@ -23,7 +23,7 @@
import org.apache.geronimo.gshell.common.Duration;
import org.apache.geronimo.gshell.whisper.message.Message;
-import org.apache.geronimo.gshell.whisper.transport.Transport;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.apache.mina.common.IoFutureListener;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.WriteFuture;
@@ -54,8 +54,8 @@
this(session, DEFAULT_TIMEOUT);
}
- public Requestor(final Transport transport) {
- this(transport.getSession(), DEFAULT_TIMEOUT);
+ public Requestor(final Session session) {
+ this(session.getSession(), DEFAULT_TIMEOUT);
}
public Duration getTimeout() {
Added: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/CloseFileMessage.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/CloseFileMessage.java?rev=582034&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/CloseFileMessage.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/CloseFileMessage.java Thu Oct 4 17:08:17 2007
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.whisper.rfile;
+
+import org.apache.geronimo.gshell.whisper.message.BaseMessage;
+
+/**
+ * Message sent after we are all finished with the <tt>rfile</tt> connection.
+ *
+ * @version $Rev$ $Date$
+ */
+public class CloseFileMessage
+ extends BaseMessage
+{
+ //
+ // TODO: ???
+ //
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/CloseFileMessage.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/CloseFileMessage.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/CloseFileMessage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/FileSegmentMessage.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/FileSegmentMessage.java?rev=582034&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/FileSegmentMessage.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/FileSegmentMessage.java Thu Oct 4 17:08:17 2007
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.whisper.rfile;
+
+import org.apache.geronimo.gshell.whisper.message.BaseMessage;
+
+/**
+ * Holds onto a segment of a transfered file.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FileSegmentMessage
+ extends BaseMessage
+{
+ //
+ // TODO: Add EOF and Fault responses ?
+ //
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/FileSegmentMessage.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/FileSegmentMessage.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/FileSegmentMessage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/GetFileMessage.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/GetFileMessage.java?rev=582034&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/GetFileMessage.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/GetFileMessage.java Thu Oct 4 17:08:17 2007
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.whisper.rfile;
+
+import org.apache.geronimo.gshell.whisper.message.BaseMessage;
+
+/**
+ * Message to initate a file transfer from remote to local.
+ *
+ * @version $Rev$ $Date$
+ */
+public class GetFileMessage
+ extends BaseMessage
+{
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/GetFileMessage.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/GetFileMessage.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/GetFileMessage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/OpenFileMessage.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/OpenFileMessage.java?rev=582034&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/OpenFileMessage.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/OpenFileMessage.java Thu Oct 4 17:08:17 2007
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.whisper.rfile;
+
+import org.apache.geronimo.gshell.whisper.message.BaseMessage;
+
+/**
+ * Message sent to initiate an <tt>rfile</tt> connection.
+ *
+ * @version $Rev$ $Date$
+ */
+public class OpenFileMessage
+ extends BaseMessage
+{
+ //
+ // TODO: Response should contain file details or denial
+ //
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/OpenFileMessage.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/OpenFileMessage.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/OpenFileMessage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/PutFileMessage.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/PutFileMessage.java?rev=582034&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/PutFileMessage.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/PutFileMessage.java Thu Oct 4 17:08:17 2007
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.whisper.rfile;
+
+import org.apache.geronimo.gshell.whisper.message.BaseMessage;
+
+/**
+ * Message to initate a file transfer from local to remote.
+ *
+ * @version $Rev$ $Date$
+ */
+public class PutFileMessage
+ extends BaseMessage
+{
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/PutFileMessage.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/PutFileMessage.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/PutFileMessage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileFilter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileFilter.java?rev=582034&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileFilter.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileFilter.java Thu Oct 4 17:08:17 2007
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.whisper.rfile;
+
+import org.apache.mina.common.IoFilterAdapter;
+
+/**
+ * Filter which handles the details of the <tt>rfile</tt> (remote-file) protocol.
+ *
+ * @version $Rev$ $Date$
+ */
+public class RemoteFileFilter
+ extends IoFilterAdapter
+{
+ //
+ // TODO: Probably want to duplicate the StreamWriteHandler and massage it for our needs...
+ //
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileFilter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileFilter.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileFilter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLConnection.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLConnection.java?rev=582034&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLConnection.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLConnection.java Thu Oct 4 17:08:17 2007
@@ -0,0 +1,217 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.whisper.rfile;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.security.Permission;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * URL connection <tt>rfile</tt> (remote-file) protocol.
+ *
+ * @version $Rev$ $Date$
+ */
+public class RemoteFileURLConnection
+ extends URLConnection
+{
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ RemoteFileURLConnection(final URL url /* TODO: We need a session and some details */) {
+ super(url);
+
+ //
+ // TODO: Probably need to have the session passed in? And some initial file state details er something?
+ //
+ }
+
+ @Override
+ public void connect() throws IOException {
+ //
+ // TODO:
+ //
+ }
+
+ //
+ // TODO: May want to lean on the Session<Input|Output>Stream impl here...
+ //
+
+ @Override
+ public InputStream getInputStream() throws IOException {
+ if (!connected) {
+ connect();
+ }
+
+ //
+ // TODO:
+ //
+
+ return null;
+ }
+
+ @Override
+ public OutputStream getOutputStream() throws IOException {
+ if (!connected) {
+ connect();
+ }
+
+ //
+ // TODO:
+ //
+
+ return null;
+ }
+
+ @Override
+ public Permission getPermission() throws IOException {
+ //
+ // TODO:
+ //
+
+ /*
+ // Detect if we have read/write perms
+ String perms = null;
+
+ if (file.canRead()) {
+ perms = "read";
+ }
+
+ if (file.canWrite()) {
+ if (perms != null) {
+ perms += ",write";
+ }
+ else {
+ perms = "write";
+ }
+ }
+
+ // File perms need filename to be in system format
+ String filename = ParseUtil.decode(url.getPath());
+ if (File.separatorChar != '/') {
+ filename.replace('/', File.separatorChar);
+ }
+
+ return new FilePermission(filename, perms);
+ */
+
+ return null;
+ }
+
+ @Override
+ public long getLastModified() {
+ //
+ // TODO:
+ //
+
+ return -1;
+ }
+
+ @Override
+ public long getDate() {
+ //
+ // TODO:
+ //
+
+ return -1;
+ }
+
+ @Override
+ public int getContentLength() {
+ //
+ // TODO:
+ //
+
+ return -1;
+
+ /*
+ final long value = file.length();
+ if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) {
+ throw new IllegalStateException("Can not safly convert to int: " + value);
+ }
+
+ return (int) value;
+ */
+ }
+
+ @Override
+ public String getContentType() {
+ //return getFileNameMap().getContentTypeFor(file.getName());
+
+ //
+ // TODO:
+ //
+
+ return null;
+ }
+
+ @Override
+ public String getHeaderField(final String name) {
+ assert name != null;
+
+ String headerName = name.toLowerCase();
+
+ if (headerName.equals("last-modified")) {
+ return String.valueOf(getLastModified());
+ }
+ else if (headerName.equals("content-length")) {
+ return String.valueOf(getContentLength());
+ }
+ else if (headerName.equals("content-type")) {
+ return getContentType();
+ }
+ else if (headerName.equals("date")) {
+ return String.valueOf(getDate());
+ }
+
+ return super.getHeaderField(name);
+ }
+
+ @Override
+ public Map<String,List<String>> getHeaderFields() {
+ Map<String,List<String>> headers = new HashMap<String,List<String>>();
+
+ String[] headerNames = {
+ "last-modified",
+ "content-length",
+ "content-type",
+ "date"
+ };
+
+ for (String name : headerNames) {
+ List<String> list = new ArrayList<String>(1);
+
+ list.add(getHeaderField(name));
+
+ headers.put(name, Collections.unmodifiableList(list));
+ }
+
+ return Collections.unmodifiableMap(headers);
+ }
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLConnection.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLConnection.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLConnection.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLStreamHandler.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLStreamHandler.java?rev=582034&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLStreamHandler.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLStreamHandler.java Thu Oct 4 17:08:17 2007
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.whisper.rfile;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+import org.codehaus.plexus.component.annotations.Component;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * URL stream handler for the <tt>rfile</tt> (remote-file) protocol.
+ *
+ * @version $Rev$ $Date$
+ */
+@Component(role=URLStreamHandler.class, hint="rfile", instantiationStrategy="singleton")
+public class RemoteFileURLStreamHandler
+ extends URLStreamHandler
+{
+ public static final String PROTOCOL = "rfile";
+
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ //
+ // TODO: We are going to need to get a handle on the current session to communicate with...
+ //
+
+ protected URLConnection openConnection(final URL url) throws IOException {
+ assert url != null;
+
+ String protocol = url.getProtocol();
+
+ if (!PROTOCOL.equals(protocol)) {
+ throw new IllegalArgumentException("Invalid protocol: " + protocol);
+ }
+
+ log.debug("Opening connection: {}", url);
+
+ //
+ // TODO: Need to request the remote file transfer, and get back the basic file details
+ // and then provide the connection below with the info and session to talk over
+ //
+ // OpenFileMessage msg = new OpenFileMessage();
+
+ return new RemoteFileURLConnection(url /* TODO: Pass in state */);
+ }
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLStreamHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLStreamHandler.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/rfile/RemoteFileURLStreamHandler.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionInputStream.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionInputStream.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionInputStream.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionInputStream.java Thu Oct 4 17:08:17 2007
@@ -29,7 +29,7 @@
import org.apache.geronimo.gshell.common.NestedIOException;
import org.apache.geronimo.gshell.common.tostring.ReflectionToStringBuilder;
import org.apache.geronimo.gshell.common.tostring.ToStringStyle;
-import org.apache.geronimo.gshell.whisper.session.SessionAttributeBinder;
+import org.apache.geronimo.gshell.whisper.util.SessionAttributeBinder;
import org.apache.mina.common.ByteBuffer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionOutputStream.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionOutputStream.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionOutputStream.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/stream/SessionOutputStream.java Thu Oct 4 17:08:17 2007
@@ -28,7 +28,7 @@
import org.apache.geronimo.gshell.common.tostring.ReflectionToStringBuilder;
import org.apache.geronimo.gshell.common.tostring.ToStringStyle;
-import org.apache.geronimo.gshell.whisper.session.SessionAttributeBinder;
+import org.apache.geronimo.gshell.whisper.util.SessionAttributeBinder;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.WriteFuture;
Copied: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Session.java (from r580765, geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Session.java?p2=geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Session.java&p1=geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java&r1=580765&r2=582034&rev=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Session.java Thu Oct 4 17:08:17 2007
@@ -22,37 +22,27 @@
import java.io.Closeable;
import java.io.InputStream;
import java.io.OutputStream;
-import java.net.URI;
-import java.util.EventListener;
import org.apache.geronimo.gshell.common.Duration;
import org.apache.geronimo.gshell.whisper.message.Message;
-import org.apache.mina.common.IoConnector;
-import org.apache.mina.common.IoHandler;
+import org.apache.geronimo.gshell.whisper.util.SessionAttributeBinder;
import org.apache.mina.common.IoSession;
-import org.apache.mina.common.ThreadModel;
import org.apache.mina.common.WriteFuture;
/**
- * Provides the client-side protocol interface.
+ * ???
*
* @version $Rev$ $Date$
*/
-public interface Transport<T extends IoConnector>
+public interface Session
extends Closeable
{
- URI getRemote();
-
- URI getLocal();
-
- T getConnector();
+ SessionAttributeBinder<Session> BINDER = new SessionAttributeBinder<Session>(Session.class);
IoSession getSession();
void close();
- // Messages
-
WriteFuture send(Object msg) throws Exception;
Message request(Message msg, Duration timeout) throws Exception;
@@ -60,47 +50,13 @@
Message request(Message msg) throws Exception;
//
- // Streams
+ // NOTE: This could handle setting the correlationId ???
//
+ // WriteFuture reply(Message reply, Message replyTo) throws Exception;
InputStream getInputStream();
OutputStream getOutputStream();
OutputStream getErrorStream();
-
- //
- // Listeners
- //
-
- void addListener(Listener listener);
-
- void removeListener(Listener listener);
-
- interface Listener
- extends EventListener
- {
- //
- // TODO:
- //
- }
-
- //
- // Configuration
- //
-
- void setConfiguration(Configuration config);
-
- Configuration getConfiguration();
-
- interface Configuration
- {
- IoHandler getHandler();
-
- void setHandler(IoHandler handler);
-
- ThreadModel getThreadModel();
-
- void setThreadModel(ThreadModel threadModel);
- }
}
Modified: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/Transport.java Thu Oct 4 17:08:17 2007
@@ -47,27 +47,9 @@
T getConnector();
- IoSession getSession();
+ Session getSession();
void close();
-
- // Messages
-
- WriteFuture send(Object msg) throws Exception;
-
- Message request(Message msg, Duration timeout) throws Exception;
-
- Message request(Message msg) throws Exception;
-
- //
- // Streams
- //
-
- InputStream getInputStream();
-
- OutputStream getOutputStream();
-
- OutputStream getErrorStream();
//
// Listeners
Modified: geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/BaseService.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/BaseService.java?rev=582034&r1=582033&r2=582034&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/BaseService.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-whisper/src/main/java/org/apache/geronimo/gshell/whisper/transport/base/BaseService.java Thu Oct 4 17:08:17 2007
@@ -25,6 +25,7 @@
import org.apache.geronimo.gshell.common.tostring.ToStringStyle;
import org.apache.geronimo.gshell.whisper.request.RequestResponseFilter;
import org.apache.geronimo.gshell.whisper.stream.SessionStreamFilter;
+import org.apache.geronimo.gshell.whisper.transport.Session;
import org.apache.geronimo.gshell.whisper.transport.Transport;
import org.apache.geronimo.gshell.whisper.transport.TransportExceptionMonitor;
import org.apache.geronimo.gshell.whisper.transport.TransportServer;
@@ -137,10 +138,14 @@
for (IoFilterChain.Entry entry : session.getFilterChain().getAll()) {
log.debug(" {}", entry);
}
+
+ // Session.BINDER.bind(session, new SessionAdapter(session));
}
public void sessionDestroyed(final IoSession session) {
log.debug("Session destroyed: {}", session);
+
+ // Session.BINDER.unbind(session);
}
});
@@ -171,6 +176,8 @@
//
// HACK: For right now just add a few hard codded to test with
//
+
+ chain.addLast(SessionBindingFilter.class.getSimpleName(), new SessionBindingFilter());
chain.addLast(ProtocolCodecFilter.class.getSimpleName(), new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));