Archive for August 30th, 2006

Leiam a dica de como fazer isto aqui [inglês]

Há 2 dias comecei um projeto que o code-nome ainda é GBrails (Greenbox On Rails).

A inspiração/metáfora vem do RubyOnRails, que é uma ferramente bem produtiva, apesar de alguns problemas de deployment.

Vários, eu disse váaaaarios usuários questionam, as razões pelas quais o Greenbox roda tao “plugado” no Netbeans, há vários motivos, mas este questionamento comecou aqui mesmo na empresa, onde há pessoas que usam o InteliJ IDEA e o Eclipse.

Havia um projeto de um desenvolvedor do Greenbox de tornár o que há para o NetBeans, real para o Eclipse, infelizmente o foco dele teve que ser um pouco diferente.

Bom, resolvi então criar algumas coisas para o mundo Eclipse, pelo menos montar uma forma simples de usar o Greenbox, dentro desta IDE.

Greenbox OnRails - Requisitos

1 - Usuário faz o Download de zip ou tar.gz

2 - Decompacata numa pasta por exemplo /opt/java/gbrails

3 - A estrutura desta pasta deve ser:
-build.xml
-build.properties
-web [arquivos app web ]
-src [arquivos fonte ]
-lib [bibliotecas (*.jar)]
-gb.sh ou gb.bat [utiliário shellscript e cmd(win)]
-structure [ pasta contendo a estrutura do projeto com arquitetura JSF+Spring+hibernate]
-projects [pasta com o projeto com build.xml, libs, src, xmls e etc de base para projetos novos, use a como workspace no eclipse]

4 - Criando um projeto:

./gb.sh create-project locadora =>Resultado: Deve criar uma pasta com nome locadora na pasta projects

5 - Na pasta project/locadora/src/app/ crie uma classe chamada TipoPagamento.java, e copie o seguinte código:

@Greenbox(tableName="tipo_conta")
public class TipoConta {


@GreenboxField(primaryKey="yes",columnName="codigo",label="Codigo")
public Integer codigoConta;

@GreenboxField(columnName="nome",label="Nome da Conta") public String nomeConta;

6 - Agora execute ant gb-generate no seu projeto Eclipse

7 - Verifique Sources Gerados.

Basicamente, estes sao os passos do GBRails.

Basicamente o que fiz foi criar uma nova Task Ant que descente de Javac, e processar as anotacoes dentro desta task, executando os parsers dos templates velocity. O resultado está satisfatório. Uma feature que devo implementar, é um controle de comparacao, para have restrições para evitar geração duplicadas, como NAO acontece na task Javac, devido a um método especial da mesma[1].

Registrando mais uma vez, que quem quiser receber o beta para realizar testes, basta enviar um e-mail para edgar (em) summa-tech.com , que disponibilizarei um endereco para baixar esse EARLY-ACCESS, cheio de bugs para que vocês ajudem e colaborem com um projeto que pode BENEFICIAR bastante voces.

[]’s

Edgar


[1] protected void scanDir(File srcDir, File destDir, String[] files)