1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.submit.filters;
14
15 import com.eviware.soapui.impl.support.AbstractHttpRequest;
16 import com.eviware.soapui.impl.wsdl.submit.transports.http.BaseHttpRequestTransport;
17 import com.eviware.soapui.impl.wsdl.support.CompressionSupport;
18 import com.eviware.soapui.model.iface.SubmitContext;
19 import com.eviware.soapui.model.settings.Settings;
20 import com.eviware.soapui.settings.HttpSettings;
21 import org.apache.log4j.Logger;
22
23 public class HttpCompressionRequestFilter extends AbstractRequestFilter
24 {
25 private final static Logger log = Logger.getLogger( HttpCompressionRequestFilter.class );
26
27 @Override
28 public void filterAbstractHttpRequest( SubmitContext context, AbstractHttpRequest<?> httpRequest )
29 {
30 String requestContent = ( String ) context.getProperty( BaseHttpRequestTransport.REQUEST_CONTENT );
31 if( requestContent == null )
32 {
33 log.warn( "Missing request content in context, skipping property expansion" );
34 }
35 else
36 {
37 Settings settings = httpRequest.getSettings();
38 String compressionAlg = settings.getString( HttpSettings.REQUEST_COMPRESSION, "None" );
39 if( !"None".equals( compressionAlg ) )
40 {
41 try
42 {
43 requestContent = new String( CompressionSupport.compress( compressionAlg, requestContent.getBytes() ) );
44 }
45 catch( Exception e )
46 {
47 e.printStackTrace();
48 }
49 }
50
51 if( requestContent != null )
52 {
53 context.setProperty( BaseHttpRequestTransport.REQUEST_CONTENT, requestContent );
54 }
55 }
56
57 }
58 }