Pages

http://oferta.vc/iUL0

http://oferta.vc/iULO

http://oferta.vc/iUMy

http://oferta.vc/iUMC

http://oferta.vc/iUMI

http://oferta.vc/iUML

http://oferta.vc/iUVZ
Recentemente, após um amigo avisar que a versão final do framework VRaptor4 estava disponível, resolvi atualizar o projeto que acabávamos de começar e que utilizava a versão anterior desse framework. Após alguns dias sofrendo com a migração para a nova versão, finalmente, tudo estava funcionando e continuamos o desenvolvimento.

A nova versão do VRaptor trouxe mudanças significativas, a principal delas foi a utilização do CDI 1.1 como container de DI (Dependency Injection).  Como estávamos utilizando o Tomcat 8 tivemos que habilitar o suporte ao CDI utilizando o Weld. Logo vimos que o tempo de inicialização do servidor estava muito demorado, cerca de 30 segundos, e a cada modificação realizada um restart do servidor acontecia e lá se iam mais 30 segundos. Ao final do dia, o tempo perdido com o redeploy da aplicação era bastante considerável, gastávamos cerca de 1/5 do dia só esperando as modificações realizadas surtirem efeito.

Não conformado, resolvi buscar uma forma de diminuir o tempo perdido, foi então que lembrei de uma conversa que tive a cerca de um ano atrás com outro amigo. Nela ele havia me falado de uma JVM que realizava um hotswapping mais eficiente do que o disponibilizado na versão padrão, tratava-se do JRebel, entretanto, ao verificar o valor da licença, descartei de imediato essa possibilidade. Então, o jeito foi procurar alguma solução open source que realizasse a mesma função.

Não demorou muito até que encontrei o projeto DynamicCode Evolution VM, que segundo a descrição do produto “possibilita um número ilimitado de redefinições de classes em tempo de execução”. Resolvi então fazer o download do binário e testar.

Logo de cara tive problemas de compatibilidade. A versão disponibilizada no site oficial estava desatualizada. Mais algumas buscas no Google até que encontrei um fork do projeto original no Github, fiz o download dos novos binários e dessa vez tudo funcionou corretamente. O processo de instalação é bem simples e não existem configurações a serem realizadas. Os testes realizados mostraram que o hotswapping realmente funciona, possibilitando um enorme ganho de produtividade para toda a equipe.

Para quem tiver interesse em utilizar a DCEVM, segue um passo a passo para um ambiente de desenvolvimento utilizando o Eclipse Luna, JDK 8 e Tomcat 8.

1. Faça o download do binário correspondente ao seu sistema operacional em https://dcevm.github.io/ , no meu caso a versão baixada foi Light Java 8 update 5, build 52. 
2. Abra o terminal e digite:

java -jar installer.jar

Caso esteja usando o Windows com o JDK instalado no diretório padrão você deverá inciar o cmd com privilégios de administrador, pra isso clique com o botão direito no ícone e selecione Executar como Administrador.

3. A seguinte tela irá aparecer:



Nela você poderá visualizar todas as instalações encontradas, podendo ainda adicionar uma nova instalação através do botão Add instalation directory, caso a versão desejada não tenha aparecido na listagem.

Para instalação tudo que você deve fazer é selecionar a instalação desejada e clicar em Replace by DCEVM. No meu caso, realizei a substituição do jdk1.8.0_05. Após a substituição a listagem deverá conter as seguintes informações:


Agora vamos configurar o Eclipse para utilizar a versão da DCEVM.

1. Abra o Eclipse e vá em Windows > Preferences > Java > Installed JREs
2. Caso a versão na qual foi realizada a substituição não esteja nesta listagem clique em Add.., escolha a opção Standard VM e informe a localização da instalação.
3. Marque-a como padrão (Figura abaixo).



4. O próximo passo é configurar o servidor Tomcat, para isso vá em Windows > Server > Runtime Environments.


5. Caso a versão desejada não esteja na lista clique em Add.., selecione a versão desejada (no meu caso foi a Apache Tomcat v8.0) e informe o diretório de instalação do tomcat.
6. Logo abaixo selecione a JRE escolhida no passo 2. Clique em finalizar.


7. Na view Servers, clique com o botão direito e vá em New > Server e adicione o servidor configurado no passo anterior.
8. Logo após, dê um clique duplo no servidor adicionado no passo anterior e na aba Publishing deixe marcada a opção Automatically publish when resourcess change.


9. Na parte inferior, clique em Modules e para cada um dos módulos existentes clique em Edit... e desmarque a opção Auto reloading enabled.


Pronto!