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/22 00:45:32 UTC
svn commit: r578309 -
/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/
Author: jdillon
Date: Fri Sep 21 15:45:29 2007
New Revision: 578309
URL: http://svn.apache.org/viewvc?rev=578309&view=rev
Log:
Tidy up exceptions and logging, added more javadoc
Added:
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/InvalidRequestMappingException.java (with props)
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/MissingRequestTimeoutException.java (with props)
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestException.java
- copied, changed from r578264, geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportException.java
Modified:
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/DuplicateRequestException.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Request.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestManager.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/RequestTimeoutException.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/request/Response.java
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/package-info.java
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/DuplicateRequestException.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/DuplicateRequestException.java?rev=578309&r1=578308&r2=578309&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/DuplicateRequestException.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/DuplicateRequestException.java Fri Sep 21 15:45:29 2007
@@ -20,7 +20,7 @@
package org.apache.geronimo.gshell.remote.request;
/**
- * ???
+ * Thrown to indicate an operation was attempted for a duplicate request.
*
* @version $Rev$ $Date$
*/
@@ -28,6 +28,6 @@
extends RequestException
{
public DuplicateRequestException(final Request req) {
- super("Duplicate request for ID: " + req.getId(), req);
+ super("Duplicate request: " + req.getId());
}
}
Added: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/InvalidRequestMappingException.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/InvalidRequestMappingException.java?rev=578309&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/InvalidRequestMappingException.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/InvalidRequestMappingException.java Fri Sep 21 15:45:29 2007
@@ -0,0 +1,33 @@
+/*
+ * 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.remote.request;
+
+/**
+ * Thrown to indicate that an operation was attempted for an invalid request mapping.
+ *
+ * @version $Rev$ $Date$
+ */
+public class InvalidRequestMappingException
+ extends RequestException
+{
+ public InvalidRequestMappingException(final Object id) {
+ super("Invalid request mapping: " + id);
+ }
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/InvalidRequestMappingException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/InvalidRequestMappingException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/InvalidRequestMappingException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/MissingRequestTimeoutException.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/MissingRequestTimeoutException.java?rev=578309&view=auto
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/MissingRequestTimeoutException.java (added)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/MissingRequestTimeoutException.java Fri Sep 21 15:45:29 2007
@@ -0,0 +1,33 @@
+/*
+ * 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.remote.request;
+
+/**
+ * Thrown to indicate that a timeout operation was attempted for a request with no timeout scheduled.
+ *
+ * @version $Rev$ $Date$
+ */
+public class MissingRequestTimeoutException
+ extends RequestException
+{
+ public MissingRequestTimeoutException(final Object id) {
+ super("Missing request timeout: " + id);
+ }
+}
\ No newline at end of file
Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/MissingRequestTimeoutException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/MissingRequestTimeoutException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/MissingRequestTimeoutException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Request.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/Request.java?rev=578309&r1=578308&r2=578309&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Request.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Request.java Fri Sep 21 15:45:29 2007
@@ -23,7 +23,6 @@
// NOTE: Snatched and massaged from Apache Mina
//
-import java.util.NoSuchElementException;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
@@ -35,7 +34,7 @@
import org.slf4j.LoggerFactory;
/**
- * ???
+ * Represents a request message.
*
* @version $Rev$ $Date$
*/
@@ -55,12 +54,9 @@
private volatile boolean endOfResponses;
- private boolean signaled;
+ private volatile boolean signaled;
public Request(final Message message, long timeout, final TimeUnit timeoutUnit) {
- assert message != null;
- assert timeoutUnit != null;
-
this.message = message;
this.timeout = timeout;
this.timeoutUnit = timeoutUnit;
@@ -113,11 +109,11 @@
public Response awaitResponse() throws RequestTimeoutException, InterruptedException {
chechEndOfResponses();
- log.debug("Waiting for the response...");
+ log.debug("Waiting for response");
Response resp = decodeResponse(responses.take());
- log.debug("Got response: {}", resp);
+ log.trace("Got response: {}", resp);
return resp;
}
@@ -125,15 +121,17 @@
public Response awaitResponse(final long timeout, final TimeUnit unit) throws RequestTimeoutException, InterruptedException {
chechEndOfResponses();
- log.debug("Polling for the response...");
+ log.debug("Polling for response");
Response resp = decodeResponse(responses.poll(timeout, unit));
- if (resp != null) {
- log.debug("Got response: {}", resp);
- }
- else {
- log.debug("Operation timed out before the response was signaled");
+ if (log.isTraceEnabled()) {
+ if (resp != null) {
+ log.trace("Got response: {}", resp);
+ }
+ else {
+ log.trace("Operation timed out before the response was signaled");
+ }
}
return resp;
@@ -165,7 +163,7 @@
private void chechEndOfResponses() {
if (endOfResponses && responses.isEmpty()) {
- throw new NoSuchElementException("All responses has been retrieved already.");
+ throw new IllegalStateException("All responses has been retrieved already");
}
}
@@ -197,7 +195,7 @@
assert e != null;
synchronized (mutex) {
- log.debug("Signal timeout: " + e, e);
+ log.debug("Signal timeout: {}", e);
setResponse(e);
Copied: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestException.java (from r578264, geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportException.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/RequestException.java?p2=geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestException.java&p1=geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportException.java&r1=578264&r2=578309&rev=578309&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/transport/TransportException.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestException.java Fri Sep 21 15:45:29 2007
@@ -17,31 +17,31 @@
* under the License.
*/
-package org.apache.geronimo.gshell.remote.transport;
+package org.apache.geronimo.gshell.remote.request;
/**
- * ???
+ * Thrown to indicate a request operation failed.
*
* @version $Rev$ $Date$
*/
-public class TransportException
+public class RequestException
extends RuntimeException
{
private static final long serialVersionUID = 1;
- public TransportException(final String msg, final Throwable cause) {
+ public RequestException(final String msg, final Throwable cause) {
super(msg, cause);
}
- public TransportException(final String msg) {
+ public RequestException(final String msg) {
super(msg);
}
- public TransportException(final Throwable cause) {
+ public RequestException(final Throwable cause) {
super(cause);
}
- public TransportException() {
+ public RequestException() {
super();
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestManager.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/RequestManager.java?rev=578309&r1=578308&r2=578309&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestManager.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestManager.java Fri Sep 21 15:45:29 2007
@@ -31,7 +31,7 @@
import org.slf4j.LoggerFactory;
/**
- * ???
+ * Manages per-session state and timeouts for requests.
*
* @version $Rev$ $Date$
*/
@@ -49,42 +49,52 @@
// TODO: Lock on Request.getMutex()
//
+ /**
+ * Helper to make sure that when calling methods that take an Object for the request ID that the requst object is not given by accident.
+ */
+ private void ensureValidRequestId(final Object obj) {
+ if (obj instanceof Request) {
+ throw new IllegalArgumentException("Expecting a request ID, not a request");
+ }
+ }
+
public boolean contains(final Object id) {
assert id != null;
- if (id instanceof Request) {
- throw new IllegalArgumentException("Expecting a request ID, not a request");
- }
+ ensureValidRequestId(id);
return requests.containsKey(id);
}
- public boolean contains(final Request req) {
- assert req != null;
+ public boolean contains(final Request request) {
+ assert request != null;
- return contains(req.getId());
+ return contains(request.getId());
}
- public void add(final Request req) {
- assert req != null;
+ public void add(final Request request) {
+ assert request != null;
- if (contains(req)) {
- throw new DuplicateRequestException(req);
+ if (contains(request)) {
+ throw new DuplicateRequestException(request);
}
- Object id = req.getId();
+ Object id = request.getId();
- log.debug("Adding request for ID: {}", id);
+ if (log.isTraceEnabled()) {
+ log.trace("Adding: {}", request);
+ }
+ else {
+ log.debug("Adding: {}", id);
+ }
- requests.put(id, req);
+ requests.put(id, request);
}
public Request get(final Object id) {
assert id != null;
- if (id instanceof Request) {
- throw new IllegalArgumentException("Expecting a request ID, not a request");
- }
+ ensureValidRequestId(id);
return requests.get(id);
}
@@ -92,11 +102,9 @@
public Request remove(final Object id) {
assert id != null;
- if (id instanceof Request) {
- throw new IllegalArgumentException("Expecting a request ID, not a request");
- }
+ ensureValidRequestId(id);
- log.debug("Removing request for ID: {}", id);
+ log.debug("Removing: {}", id);
return requests.remove(id);
}
@@ -107,7 +115,7 @@
l = requests.size();
if (l > 0) {
- log.warn("Clearing requests; purging " + l + " request(s)");
+ log.warn("Purging " + l + " request(s)");
}
requests.clear();
@@ -115,7 +123,7 @@
l = timeouts.size();
if (l > 0) {
- log.warn("Clearing timeouts; purging " + l + " timeouts(s)");
+ log.warn("Purging " + l + " timeouts(s)");
}
timeouts.clear();
@@ -135,10 +143,15 @@
Object id = request.getId();
if (request != get(id)) {
- throw new IllegalStateException("Found invalid request mapping for ID: " + id);
+ throw new InvalidRequestMappingException(id);
}
- log.debug("Scheduling timeout for request ID: {}", id);
+ if (log.isTraceEnabled()) {
+ log.trace("Scheduling: {}", request);
+ }
+ else {
+ log.debug("Scheduling: {}", id);
+ }
TimeoutTask task = new TimeoutTask(request);
@@ -157,14 +170,19 @@
TimeoutTask task = timeouts.remove(request);
if (task == null) {
- throw new IllegalStateException("Request ID has no timeout bound: " + id);
+ throw new MissingRequestTimeoutException(id);
}
if (remove(id) != request) {
- throw new IllegalStateException("Found invalid request mapping for ID: " + id);
+ throw new InvalidRequestMappingException(id);
}
- log.debug("Canceling timeout for request ID: {}", id);
+ if (log.isTraceEnabled()) {
+ log.trace("Canceling: {}", request);
+ }
+ else {
+ log.debug("Canceling: {}", id);
+ }
ScheduledFuture<?> sf = task.getTimeoutFuture();
@@ -178,20 +196,23 @@
Object id = request.getId();
- log.debug("Triggering timeout for request ID: {}", id);
+ if (log.isTraceEnabled()) {
+ log.trace("Triggering: {}", request);
+ }
+ else {
+ log.debug("Triggering: {}", id);
+ }
TimeoutTask task = timeouts.remove(request);
if (task == null) {
- throw new IllegalStateException("Request ID has no timeout bound: " + id);
+ throw new MissingRequestTimeoutException(id);
}
if (remove(id) != request) {
- throw new IllegalStateException("Found invalid request mapping for ID: " + id);
+ throw new InvalidRequestMappingException(id);
}
- log.debug("Canceling timeout for request ID: {}", id);
-
// If the request has not been signaled, then its a timeout :-(
if (!request.isSignaled()) {
// noinspection ThrowableInstanceNeverThrown
@@ -199,9 +220,9 @@
}
}
- public void timeoutAll() {
- log.debug("Timing out all pending tasks");
-
+ private void timeoutAll() {
+ log.debug("Timing out all pending requests");
+
Request[] requests = timeouts.keySet().toArray(new Request[timeouts.size()]);
for (Request request : requests) {
@@ -210,8 +231,6 @@
}
public void close() {
- log.debug("Closing");
-
timeoutAll();
clear();
}
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=578309&r1=578308&r2=578309&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 Fri Sep 21 15:45:29 2007
@@ -29,7 +29,7 @@
import org.slf4j.LoggerFactory;
/**
- * ???
+ * Provides synchronous request/response messaging.
*
* @version $Rev$ $Date$
*/
@@ -50,24 +50,32 @@
this(Executors.newCachedThreadPool());
}
- public void sessionCreated(NextFilter nextFilter, IoSession session) throws Exception {
- log.debug("Creating request manager");
-
+ /**
+ * Set up the request manager instance for the session.
+ */
+ @Override
+ public void sessionCreated(final NextFilter nextFilter, final IoSession session) throws Exception {
RequestManager.bind(session, new RequestManager());
nextFilter.sessionCreated(session);
}
+ /**
+ * Close the request manager instance for the session.
+ */
+ @Override
public void sessionClosed(final NextFilter nextFilter, final IoSession session) throws Exception {
- log.debug("Closing request manager");
-
- final RequestManager manager = RequestManager.unbind(session);
+ RequestManager manager = RequestManager.unbind(session);
manager.close();
nextFilter.sessionClosed(session);
}
+ /**
+ * When a request is sent, register it with the request manager.
+ */
+ @Override
public void filterWrite(final NextFilter nextFilter, final IoSession session, final WriteRequest writeRequest) throws Exception {
Object message = writeRequest.getMessage();
@@ -82,6 +90,10 @@
nextFilter.filterWrite(session, writeRequest);
}
+ /**
+ * When a response message has been received, cancel its timeout and signal the request.
+ */
+ @Override
public void messageReceived(final NextFilter nextFilter, final IoSession session, final Object message) throws Exception {
Message msg = null;
@@ -121,26 +133,11 @@
}
}
- /*
- 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
- RequestWriteRequest wr = (RequestWriteRequest) writeRequest;
- Request request = wr.getRequest();
-
- RequestManager manager = RequestManager.lookup(session);
- manager.schedule(request);
-
- // And forward the original write request
- nextFilter.messageSent(session, wr.getWriteRequest());
- }
- else {
- nextFilter.messageSent(session, writeRequest);
- }
- }
- */
-
- public void messageSent(NextFilter nextFilter, IoSession session, Object message) throws Exception {
+ /**
+ * Once the reqeust message has been sent, schedule a timeout.
+ */
+ @Override
+ public void messageSent(final NextFilter nextFilter, final IoSession session, final Object message) throws Exception {
if (message instanceof Request) {
Request request = (Request) message;
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestTimeoutException.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/RequestTimeoutException.java?rev=578309&r1=578308&r2=578309&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestTimeoutException.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/RequestTimeoutException.java Fri Sep 21 15:45:29 2007
@@ -19,12 +19,8 @@
package org.apache.geronimo.gshell.remote.request;
-//
-// NOTE: Snatched and massaged from Apache Mina
-//
-
/**
- * ???
+ * Thrown to indicate that a request has been timed out.
*
* @version $Rev$ $Date$
*/
@@ -33,7 +29,7 @@
{
private static final long serialVersionUID = 1;
- public RequestTimeoutException(final Request request) {
- super("Request timed out: " + request, request);
+ public RequestTimeoutException(final Request req) {
+ super("Request timed out for ID: " + req.getId());
}
}
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=578309&r1=578308&r2=578309&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 Fri Sep 21 15:45:29 2007
@@ -30,7 +30,7 @@
import org.slf4j.LoggerFactory;
/**
- * ???
+ * Provides support to send a request and receive it's response.
*
* @version $Rev$ $Date$
*/
@@ -49,8 +49,6 @@
private final TimeUnit unit;
private Requestor(final MessageWriter writer, final long timeout, final TimeUnit unit) {
- assert writer != null;
-
this.writer = writer;
this.timeout = timeout;
this.unit = unit;
@@ -93,20 +91,8 @@
Request req = wf.getRequest();
- //
- // HACK:
- //
-
- Response resp = req.awaitResponse(30, TimeUnit.SECONDS);
-
- //
- // HACK:
- //
-
- if (resp == null) {
- throw new IllegalStateException("Failed to read response");
- }
-
+ Response resp = req.awaitResponse();
+
return resp.getMessage();
}
@@ -118,6 +104,9 @@
// MessageWriter
//
+ /**
+ * An abstraction to allow an {@link IoSession} or {@link Transport} instance to be used to send messages.
+ */
private static interface MessageWriter
{
WriteFuture write(Object message) throws Exception;
@@ -128,11 +117,11 @@
{
private final IoSession session;
- public SessionMessageWriter(IoSession session) {
+ public SessionMessageWriter(final IoSession session) {
this.session = session;
}
- public WriteFuture write(Object message) throws Exception {
+ public WriteFuture write(final Object message) throws Exception {
return session.write(message);
}
}
@@ -142,11 +131,11 @@
{
private final Transport transport;
- public TransportMessageWriter(Transport transport) {
+ public TransportMessageWriter(final Transport transport) {
this.transport = transport;
}
- public WriteFuture write(Object message) throws Exception {
+ public WriteFuture write(final Object message) throws Exception {
return transport.send(message);
}
}
@@ -163,9 +152,6 @@
private final Request request;
public RequestWriteFuture(final WriteFuture wf, final Request req) {
- assert wf != null;
- assert req != null;
-
this.delegate = wf;
this.request = req;
}
@@ -174,15 +160,11 @@
return request;
}
- //
- // WriteFuture
- //
-
public boolean isWritten() {
return delegate.isWritten();
}
- public void setWritten(boolean written) {
+ public void setWritten(final boolean written) {
delegate.setWritten(written);
}
@@ -194,19 +176,19 @@
delegate.join();
}
- public boolean join(long timeoutInMillis) {
- return delegate.join(timeoutInMillis);
+ public boolean join(final long timeout) {
+ return delegate.join(timeout);
}
public boolean isReady() {
return delegate.isReady();
}
- public void addListener(IoFutureListener listener) {
+ public void addListener(final IoFutureListener listener) {
delegate.addListener(listener);
}
- public void removeListener(IoFutureListener listener) {
+ public void removeListener(final IoFutureListener listener) {
delegate.removeListener(listener);
}
}
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Response.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/Response.java?rev=578309&r1=578308&r2=578309&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Response.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/Response.java Fri Sep 21 15:45:29 2007
@@ -28,7 +28,7 @@
//
/**
- * ???
+ * Represents a response message.
*
* @version $Rev$ $Date$
*/
@@ -41,27 +41,11 @@
private final Message message;
public Response(final Request request, final Message message, final Type type) {
- assert request != null;
- assert message != null;
- assert type != null;
-
this.request = request;
this.type = type;
this.message = message;
}
- public Request getRequest() {
- return request;
- }
-
- public Type getType() {
- return type;
- }
-
- public Message getMessage() {
- return message;
- }
-
public int hashCode() {
return getRequest().getId().hashCode();
}
@@ -80,11 +64,22 @@
Response resp = (Response) obj;
return getRequest().equals(resp.getRequest()) && getType().equals(resp.getType());
-
}
public String toString() {
return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+ }
+
+ public Request getRequest() {
+ return request;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public Message getMessage() {
+ return message;
}
//
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/package-info.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/package-info.java?rev=578309&r1=578308&r2=578309&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/package-info.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/request/package-info.java Fri Sep 21 15:45:29 2007
@@ -18,7 +18,7 @@
*/
/**
- * Request response support for messages.
+ * Provides support for synchronous request/response messaging.
*
* @version $Rev$ $Date$
*/