[jboss-remoting-commits] JBoss Remoting SVN: r5403 - remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Sat Aug 29 20:41:05 EDT 2009


Author: ron.sigal at jboss.com
Date: 2009-08-29 20:41:05 -0400 (Sat, 29 Aug 2009)
New Revision: 5403

Modified:
   remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet/ServletServerInvoker.java
Log:
JBREM-1145: Added useRemotingContentType variable and related processing.

Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet/ServletServerInvoker.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet/ServletServerInvoker.java	2009-08-30 00:40:18 UTC (rev 5402)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet/ServletServerInvoker.java	2009-08-30 00:41:05 UTC (rev 5403)
@@ -67,6 +67,7 @@
    
    private boolean unwrapSingletonArrays;
    private boolean createUniqueObjectName;
+   private boolean useRemotingContentType;
 
    public ServletServerInvoker(InvokerLocator locator)
    {
@@ -118,6 +119,17 @@
                      val + " to a boolean value.");
          }
       }
+
+      val = configuration.get(HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE);
+      if (val instanceof String)
+      {
+         useRemotingContentType = Boolean.valueOf((String) val).booleanValue();
+      }
+      else if (val != null)
+      {
+         log.warn(HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE + " value should be a String: " + val);
+      }
+      log.debug(this + " useRemotingContentType: " + useRemotingContentType);
    }
    
    public String getMBeanObjectName()
@@ -328,6 +340,13 @@
       if (path != null)
          metadata.put(HTTPMetadataConstants.PATH, path);
 
+      metadata.put(HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE, Boolean.toString(useRemotingContentType));
+      String remotingContentType = (String) metadata.get(HTTPMetadataConstants.REMOTING_CONTENT_TYPE);
+      if (remotingContentType == null)
+      {
+         remotingContentType = (String) metadata.get(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_LC);
+      }
+      
       String requestContentType = request.getContentType();
 
 
@@ -369,7 +388,8 @@
             }
             else
             {
-               if(WebUtil.isBinary(requestContentType))
+               if((useRemotingContentType && HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING.equalsIgnoreCase(remotingContentType))
+                  || (!useRemotingContentType && WebUtil.isBinary(requestContentType)))
                {
                   invocationRequest = getInvocationRequest(metadata, obj);
                }
@@ -471,7 +491,15 @@
             retval = outputStream.toByteArray();
             response.setContentLength(retval.length);
          }
-
+         
+         if (responseObject instanceof String)
+         {
+            response.addHeader(HTTPMetadataConstants.REMOTING_CONTENT_TYPE, HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING);
+         }
+         else
+         {
+            response.addHeader(HTTPMetadataConstants.REMOTING_CONTENT_TYPE, HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING);        
+         }
       }
       catch(ClassNotFoundException e)
       {



More information about the jboss-remoting-commits mailing list