Caelum Stella – o cinto de utilidades para o desenvolvedor brasileiro
Por Fabio Kung em 21/05/08
Durante o Falando em Java 2008 do último fim de semana (18/05/2008), anunciamos o lançamento do novo Caelum Stella.
O projeto vem para auxiliar os desenvolvedores brasileiros, suprindo algumas das necessidades comumente encontradas em aplicações desenvolvidas aqui no Brasil. Atualmente, o Caelum Stella fornece uma biblioteca de validadores, formatadores e conversores para documentos brasileiros, tais como CPF, CNPJ e PIS/PASEP.
String cpf = "867.554.707-24";
CPFValidator vld = new CPFValidator();
for(ValidationMessage error : vld.invalidMessagesFor(cpf)) {
System.out.println(error.getMessage());
}
Há uma alternativa que lança uma exceção caso ocorra algum problema de validação:
new CPFValidator().assertValid("867.554.707-24");
O Stella também inclui módulos extras, como o de geração de boletos bancários, adaptadores para JSF, VRaptor, JBoss Seam e Hibernate Validator. Veja um exemplo de validação para CPFs usando o Caelum Stella junto ao Hibernate Validator:
@Entity
public class Modelo {
@CPF
private String cpf;
public String getCpf() {
return cpf;
}
}
O módulo Stella Faces conta com alguns validadores compatíveis com a especificação JSF, que você pode adicionar aos seus componentes:
<h:inputText id="cpf" value="#{usuarioBean.cpf}">
<stella:validateCPF/>
</h:inputText>
O Stella Boleto procura fornecer um idioma mais fluente para a geração de boletos, através do encadeamento de métodos, gerando PDFs, PNGs e em breve TXT, RTF e HTML:
Boleto boleto = Boleto.newBoleto()
.withBanco(banco).withDatas(datas)
.withDescricoes("descricao 1", "descricao 2", "descricao 3")
.withEmissor(emissor).withSacado(sacado)
.withValorBoleto("200.00").withNoDocumento("1234")
.withInstrucoes("instrucao 1", "instrucao 2", "instrucao 3")
.withLocaisDePagamento("local 1", "local 2");
new BoletoGenerator(boleto).toPNG("teste.png");
Estão ainda previstas no roadmap do projeto funcionalidades como JSP taglibs, rotinas JavaScript para máscaras, validação e suporte a formulários, seleção de cidades dependente da seleção de estados, suporte a mais documentos, geração da nota fiscal eletrônica, webservices para busca de endereços através de CEP, entre muitas outras. A lista vem sendo constantemente atualizada e você pode conferi-la através deste link.
Todas estas funcionalidades estão divididas em diversos módulos dentro do Stella. Atualmente são quatro: Stella Core, Stella Hibernate, Stella Faces e Stella Boleto. Cada um com um propósito diferente, mas todos relacionados aos problemas do dia a dia recorrentes no mercado brasileiro.
Além de facilitar a vida dos desenvolvedores brasileiros, o projeto prima pela alta qualidade (extensa quantidade de testes unitários, cobertura e documentação) e facilidade de uso. Você pode conferir diversas características técnicas do projeto e dos vários módulos na página técnica, gerada pelo maven. Lá você encontra a lista de responsáveis (e respectivos emails), a ótima cobertura dos testes para cada um dos módulos e o código fonte navegável para cada um dos módulos.
Como de costume em qualquer projeto open-source, o código fonte está disponível em um repositório SVN (subversion) no sourceforge.net. Para baixar os fontes basta usar seu cliente preferido:
svn checkout http://caelum-stella.svn.sourceforge.net/svnroot/caelum-stella/trunk
Você também pode navegar pelo repositório neste link.
Para tirar as suas dúvidas, sugerir funcionalidades, apontar bugs e discutir sobre o projeto, não deixe de assinar as listas de discussão, que podem ser encontradas aqui. Se preferir, pode postar também no GUJ.
Visite, use, comente e participe do desenvolvimento do projeto!
Muito bom!!!
Comment by Tiago Albineli Motta — May 21, 2008 @ 6:10 pm
Excelente iniciativa, os desenvolvedores brasileiros precisam de algo assim!
Comment by Rafael Carneiro — May 21, 2008 @ 10:43 pm
Massa. Já foi para os favoritos.
Fabio, em qual repositorio Maven o Stella está? Não encontrei nos que uso (http://repo1.maven.org/maven2/, http://www.ibiblio.org/maven/)?
valeuz…
Comment by Marcos Silva Pereira — May 22, 2008 @ 6:02 am
Marcos, o pessoal do Maven demora um pouco para sincronizar o repositório deles.
Se quiser por enquanto, pode usar nosso repositório próprio do maven:
http://caelum-stella.sourceforge.net/maven
ou
http://caelum-stella.sourceforge.net/snapshots para o snapshot-repository.
Comment by Fabio Kung — May 22, 2008 @ 1:44 pm
[...] por Cauê Guerra (caueguerraΘgmail·com) – referência [...]
Pingback by Caelum Stella: boletos, validação, formatação e conversão de CPF, CNJ, PIS e mais — May 23, 2008 @ 1:12 pm
Pode parecer uma observação estúpida mas….. não é estranho a API ser em inglês, considerando-se que o domínio do sistema é em português?
Já passei por esse “problema” e apesar de parecer uma coisa ridiculamente simples foi bastante complicado decidir fazer em inglês ou em portugês.
Tenho certeza que vcs passaram por isso tb e com certeza discutiram um bocado. Por isso queria saber: quais foram os motivos que fizeram com que vcs decidissem por fazer desta forma “meio a meio”?
[ ]s, gc
Comment by Guilherme Chapiewski — May 24, 2008 @ 4:23 pm
Guilherme, conversamos mesmo bastante sobre isso. A conclusão foi que justamente os termos do domínio seriam em pt-BR. TODO o resto em inglês.
Documentação e javadoc em português também.
Comment by Fabio Kung — May 24, 2008 @ 8:16 pm
Oi Guilherme!
Realmente essa foi uma grande briga… nao daria pra evitar o ingles totalmente, como ficaria os getters?
Mas de qualquer maneira, uma ou outra opcao iria deixar algumas pessoas descontentes…
Comment by Paulo Silveira — May 24, 2008 @ 8:53 pm
Eu sei que com certeza não dá pra agradar todo mundo
Na época que passei por isso também foi um problema, cada um tinha uma opinião.
Mas “just for the record”, no fim das contas decidimos da mesma forma que vocês: domínio e documentação em português e o resto em inglês.
[ ]s, gc
Comment by Guilherme Chapiewski — May 24, 2008 @ 9:10 pm
Esse componentes são muito utéis na maioria das aplicações, e já te-los prontos e desenvolvidos por vocês já é de absoluta ajuda! Principalmente os componentes para JSF!
Parabéns!
Comment by Rafael Ponte — May 27, 2008 @ 5:31 pm
Estou Iniciando em programação, comecei por Java , porém , ao compilar meu primeiro programa, aquele mesmo que tem na apostila, porém na hora de compilar da a seguinte mensagem, ” javac não é reconhecido como um comando interno…”
Alguém pode me Ajudar???
No netbens 6.0 também da erro !!!
Comment by Tulio — June 8, 2008 @ 12:43 am
Aqui não é um bom local para procurar ajuda, mas enfim, só uma orientaçãozinha. Provavelmente será por vc não ter adicionado o Java ao PATH.
Te dei a direção, faça bom proveito do Google agora!
E parabéns ao pessoal da Caelum pela biblioteca!
É de realmente grande utilidade pra todo mundo que trabalha com Java em área comercial!
Continuem melhorando ela!
Comment by Taciano — August 20, 2008 @ 10:22 am