fineract-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Avik Ganguly (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FINERACT-426) Filter to optionally compress response with gzip
Date Tue, 18 Apr 2017 06:05:41 GMT
Avik Ganguly created FINERACT-426:
-------------------------------------

             Summary: Filter to optionally compress response with gzip
                 Key: FINERACT-426
                 URL: https://issues.apache.org/jira/browse/FINERACT-426
             Project: Apache Fineract
          Issue Type: Bug
            Reporter: Avik Ganguly
            Assignee: Markus Geiss
            Priority: Minor


Accept a query parameter like isCompressionRequired. If this query param is present, compress
the response using gzip. This will ensure less bandwidth usage if field apps are using mobile
data.

Sample Code for response filter :-

Inside filter method :-

if (request.getRequestHeaders().getFirst(HttpHeaders.ACCEPT_ENCODING).contains("gzip")) {
	                response.getHttpHeaders().add(HttpHeaders.CONTENT_ENCODING, "gzip");
	                response.setContainerResponseWriter(
	                        new Adapter(response.getContainerResponseWriter()));
	            }



  private static final class Adapter implements ContainerResponseWriter {
        private final ContainerResponseWriter crw;

        private GZIPOutputStream gos;

        Adapter(ContainerResponseWriter crw) {
            this.crw = crw;
        }
        
        public OutputStream writeStatusAndHeaders(long contentLength, ContainerResponse response)
throws IOException {
           gos = new GZIPOutputStream(crw.writeStatusAndHeaders(-1, response));
           return gos;
        }

        public void finish() throws IOException {
            gos.finish();
            crw.finish();
        }
    }

 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message