Gerenciador de ambiente groovy (GVM)
Recentemente lançaram um gerenciador de ambiente groovy que permite que possamos ter várias versões de alguns softwares que utilizamos no dia a dia. Ele foi baseado no
RVM
Show archive.org snapshot
.
Entre os softwares que podemos gerenciar estão:
- Groovy
- Grails
- Gradle
Related cards:
Trabalhando com arquivos temporários em ambiente de produção com o tomcat
Muitas vezes precisamos trabalhar com arquivos temporários em ambiente de produção e é muito complicado definir onde estes arquivos deverão ser armazenados, visto que dependendo da pasta escolhida você terá que entrar no servidor e dar permissão d...
Mock do construtor de Date ou da classe Environment do Grails causa falha na execução de testes via grails test-app
Passei pela seguinte experiência. Mockei (usando Gmock) o construtor default de Date, e então começou a dar um erro no final da execução do test-app. O erro é:
Error executing script TestApp: null
O mesmo erro ocorreu quando a chamada para obte...
Erro na combinação GMock(0.8.1) + Testes de Controlador(Grails 2.2.0)
Ao escrever os testes de unidade para o Serviço Banco de Arquivos, me deparei com a seguinte exceção nos testes que utilizam o GMock:
groovy.lang.MissingMethodException: No signature of method: org.gmock.internal.metaclass.MockProxyMetaClass$2.d...
Mudanças de comportamento do Groovy
Ao migrarmos dos groovy 1.7.8 (do grails 1.3.7) e 1.8.4 (projetos auxiliares) para o groovy 2.0.8 algumas mudanças de comportamentos foram detectadas:
-
Nome de variável
Antes era permitido nomes de variáveis começando com letra maiúscula, ti...
Groovy - Formas de acessar índices de uma lista e obter ou "null" ou uma exceção
List listaVazia = []
// ------ QUALQUER ÍNDICE
def x = listaVazia[2]
println x // null
def y = listaVazia.getAt(2)
println y // null
//listaVazia.get(2) // java.lang.IndexOutOfBoundsException: Index: 2, Size: 0
// ------ APENAS ÍNDICE 0...
Configuração de memória do java no tomcat7 para rodar aplicações grails
Segue um exemplo de configuração para uma máquina com disponibilidade de 4gb de ram:
- HeapSize
defina o maior valor possivel, de acordo com a disponibilidade de memória da máquina. O max e o InitialHeapSize devem ter o mesmo valor para minimiz...
[Groovy] Diferença de desempenho entre unique() e toSet().toList()
Teste prático da diferença de desempenho
int qtdTeste = 20_000
Date inicio
Date fim
List<String> x = []
for (int i = 0; i < qtdTeste; i++) { x.add(i) }
inicio = new Date()
x.toSet().toList() // 9 ms!
fim = new Date()
println "${fim.time ...
Groovy - Obter uma página de uma lista sem lançar exceção caso a lista seja menor que o tamanho da página
List listaPequena = [1, 2, 3, 4, 5, 6]
int tamanhoDePaginaDesejada = 10
def x = listaPequena.take(tamanhoDePaginaDesejada)
println x // [1, 2, 3, 4, 5, 6]
//listaPequena.subList(0, tamanhoDePaginaDesejada) //java.lang.IndexOutOfBoundsExcept...
Obter resource de um plugin grails
def doWithSpring = {
String pathResource = 'pathResource'
String pluginPath = manager.getPluginPath('plugin-name')
String pluginPath = plugin.pluginPath
def servletContext = application.parentContext.servletContext
mappingRelativeP...