[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