domingo, 5 de maio de 2013

Ativando gzip em aplicação java no heroku

Para quem estiver usando heroku rodando um war com webapp-runner e quer habilitar gzip, altere a versão do webapp-runner para que seja maior que 7.0.34.3 (atualmente essa é a última versão do webapp-runner, quando clonei o projeto no heroku veio com 7.0.34.0, não testei com 7.0.34.2 ou anterior).

pom.xml:

...

  com.github.jsimone
  webapp-runner
  7.0.34.3
  provided

...

  
    
      com.github.jsimone
      webapp-runner
      7.0.34.3
      webapp-runner.jar
    
  

...

Isso irá atualizar a versão do webapp-runner para suportar um novo parâmetro chamado '--enable-compression'.

Depois disso altere o procfile adicionando o parâmetro e teste:
web: java $JAVA_OPTS -Dspring.profiles.active=prod -jar target/dependency/webapp-runner.jar --enable-compression --port $PORT target/*.war

Se quiser otimizar mais um pouco, use html compressor que você pode reduzir mais uns 10% o tamanho da resposta.