Coverage Report - org.mule.transport.servlet.HttpRequestToParameter
 
Classes in this File Line Coverage Branch Coverage Complexity
HttpRequestToParameter
0%
0/27
0%
0/12
4
 
 1  
 /*
 2  
  * $Id: HttpRequestToParameter.java 12362 2008-07-16 16:22:55Z dirk.olmes $
 3  
  * --------------------------------------------------------------------------------------
 4  
  * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
 5  
  *
 6  
  * The software in this package is published under the terms of the CPAL v1.0
 7  
  * license, a copy of which has been included with this distribution in the
 8  
  * LICENSE.txt file.
 9  
  */
 10  
 
 11  
 package org.mule.transport.servlet;
 12  
 
 13  
 import org.mule.api.MuleMessage;
 14  
 import org.mule.api.transformer.TransformerException;
 15  
 import org.mule.transformer.AbstractMessageAwareTransformer;
 16  
 import org.mule.util.SystemUtils;
 17  
 
 18  
 import java.io.BufferedReader;
 19  
 import java.io.IOException;
 20  
 import java.io.InputStream;
 21  
 import java.io.InputStreamReader;
 22  
 
 23  
 import javax.servlet.http.HttpServletRequest;
 24  
 
 25  
 public class HttpRequestToParameter extends AbstractMessageAwareTransformer
 26  
 {
 27  
 
 28  
     public HttpRequestToParameter()
 29  0
     {
 30  0
         registerSourceType(Object.class);
 31  0
         setReturnClass(String.class);
 32  0
     }
 33  
 
 34  
     public Object transform(MuleMessage message, String outputEncoding) throws TransformerException
 35  
     {
 36  0
         HttpServletRequest request = ((HttpRequestMessageAdapter) message.getAdapter()).getRequest();
 37  
 
 38  0
         String payloadParam = (String)request.getAttribute(AbstractReceiverServlet.PAYLOAD_PARAMETER_NAME);
 39  0
         if (null == payloadParam)
 40  
         {
 41  0
             payloadParam = AbstractReceiverServlet.DEFAULT_PAYLOAD_PARAMETER_NAME;
 42  
         }
 43  
 
 44  0
         String payload = request.getParameter(payloadParam);
 45  0
         if (null == payload)
 46  
         {
 47  0
             if (isText(request.getContentType()))
 48  
             {
 49  
                 try
 50  
                 {
 51  0
                     InputStream is = (InputStream) message.getPayload();
 52  0
                     BufferedReader reader = new BufferedReader(new InputStreamReader(is, request.getCharacterEncoding()));
 53  0
                     StringBuffer buffer = new StringBuffer(8192);
 54  0
                     String line = reader.readLine();
 55  0
                     while (line != null)
 56  
                     {
 57  0
                         buffer.append(line);
 58  0
                         line = reader.readLine();
 59  0
                         if (line != null) buffer.append(SystemUtils.LINE_SEPARATOR);
 60  
                     }
 61  0
                     payload = buffer.toString();
 62  
                 }
 63  0
                 catch (IOException e)
 64  
                 {
 65  0
                     throw new TransformerException(this, e);
 66  0
                 }
 67  
             }
 68  
         }
 69  
 
 70  0
         return payload;
 71  
     }
 72  
 
 73  
     protected boolean isText(String contentType)
 74  
     {
 75  0
         if (contentType == null)
 76  
         {
 77  0
             return true;
 78  
         }
 79  0
         return (contentType.startsWith("text/"));
 80  
     }
 81  
 
 82  
 }