[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting/transport/web ...
Tom Elrod
tom.elrod at jboss.com
Thu Jan 18 02:37:33 EST 2007
User: telrod
Date: 07/01/18 02:37:33
Modified: src/main/org/jboss/remoting/transport/web Tag: remoting_2_x
WebServerInvoker.java
Log:
JBREM-671 - fixed so leasing will work again when using servlet invoker.
Revision Changes Path
No revision
No revision
1.6.10.1 +53 -2 JBossRemoting/src/main/org/jboss/remoting/transport/web/WebServerInvoker.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: WebServerInvoker.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/transport/web/WebServerInvoker.java,v
retrieving revision 1.6
retrieving revision 1.6.10.1
diff -u -b -r1.6 -r1.6.10.1
--- WebServerInvoker.java 30 Dec 2005 05:26:38 -0000 1.6
+++ WebServerInvoker.java 18 Jan 2007 07:37:33 -0000 1.6.10.1
@@ -30,6 +30,9 @@
import org.jboss.remoting.InvocationRequest;
import org.jboss.remoting.InvokerLocator;
import org.jboss.remoting.ServerInvoker;
+import org.jboss.remoting.transport.coyote.RequestMap;
+import org.jboss.remoting.transport.coyote.ResponseMap;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
import org.jboss.remoting.marshal.MarshalFactory;
import org.jboss.remoting.marshal.Marshaller;
import org.jboss.remoting.marshal.UnMarshaller;
@@ -122,11 +125,59 @@
String sessionId = getSessionId(metadata);
String subSystem = (String) metadata.get(HEADER_SUBSYSTEM);
- InvocationRequest request = new InvocationRequest(sessionId, subSystem, payload, metadata, null, null);
- request.setReturnPayload(new HashMap());
+ InvocationRequest request = null;
+ Map responseMap = new HashMap();
+ boolean isLeasQuery = checkForLeaseQuery(metadata);
+ if(isLeasQuery)
+ {
+ addLeaseInfo(responseMap);
+ request = new InvocationRequest(sessionId, subSystem, "$PING$", null, responseMap, null);
+ }
+ else
+ {
+ request = new InvocationRequest(sessionId, subSystem, payload, metadata, null, null);
+ }
+ request.setReturnPayload(responseMap);
return request;
}
+ private boolean checkForLeaseQuery(Map headers)
+ {
+ boolean isLeaseQuery = false;
+
+ if(headers != null)
+ {
+ Object val = headers.get(HTTPMetadataConstants.REMOTING_LEASE_QUERY);
+ if(val != null && val instanceof String)
+ {
+ isLeaseQuery = Boolean.valueOf((String)val).booleanValue();
+ }
+ else
+ {
+ val = headers.get(HTTPMetadataConstants.REMOTING_LEASE_QUERY_LOWER_CASE);
+ if(val != null && val instanceof String)
+ {
+ isLeaseQuery = Boolean.valueOf((String)val).booleanValue();
+ }
+ }
+ }
+ return isLeaseQuery;
+ }
+
+ private void addLeaseInfo(Map response)
+ {
+ boolean leaseManagement = isLeaseActivated();
+ response.put("LEASING_ENABLED", new Boolean(leaseManagement));
+
+ if(leaseManagement)
+ {
+ long leasePeriod = getLeasePeriod();
+ response.put("LEASE_PERIOD", new Long(leasePeriod));
+ }
+ }
+
+
+
protected String getSessionId(Map metadata)
{
String sessionId = (String) metadata.get(HEADER_SESSION_ID);
More information about the jboss-cvs-commits
mailing list