Framework para automação de validações sejam de regras de negócio ou simplesmente de campos

Aê pessoal apenas a título de divulgação estou passando pra vocês o site de um framework de automação de validações sejam de regras de negócio ou simplesmente de campos. Vale a pena conferir.

O framework dá suporte utilizar e automatizar as validações via annotations e fornece também uma série de validações já pre-definidas que podem ser reutilizadas e e
estendidas como Cpf, Cnpj, campo requerido, not null, validações de datas, String, etc…

O framework fornece um engine para o tratamento, processamento e execução das validações sejam elas definidas usando as annotations do próprio framework ou as classes diretamente.

Antes que falem do HibernateValidator, esse framework é muito mais completo e poderoso além de fornecer uma gama de possibilidade de customizações de acordo com a sua necessidade. Sem falar que a curva de aprendizado é muito menor e este é de fácil uso e integração ao projeto, esteja ele no início ou já em desenvolvimento.

Vale a pena conferir. No site tem um menu ‘framework’ lá tem um tutorial de uso do framework. No menu ‘downloads’ tem os links para baixar o projeto, dependencias, fontes, e um projeto com vários exemplos de uso do framework.

O nome do projeto é lindbergframework e o site oficial é

Site: http://www.lindbergframework.org

Parabéns pelo trabalho! Se me permite uma sugestão, eu acho que ficaria legal você utilizar uma abordagem semelhante a do HibernateValidator para as validações com annotations, que é a utilização de uma anotação para definir a classe do validador, por exemplo:

@Target(ElementType.ANNOTATION_TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface ValidatorClass { Class<? extends Validator> value(); } @Retention(RetentionPolicy.RUNTIME) @ValidatorClass(NotNullValidator.class) public @interface NotNull { // mensagens, configuração, etc... } public class NotNullValidator implements Validator { //implementação do validador }

Obrigado cara! Mas pensei nisso também, fiz até alguns rascunhos e testes mas vi ficariam muitas annotations, por exemplo o lindbergframework já fornece 18 validações pre-definidas já prontas. Só aí já iriam 18 annotations diferentes. Eu quiz fugir disso, então foi uma opção centralizar tudo em uma annotation só. Da mesma forma como não dá pra fazer herança entre annotations então eu teria que repetir os atributos que o cara pode definir pra cada validação como por exemplo msg, configurações, etc… em todas as annotations. Então fugi disso e criei uma que recebe ou o ID do bean da validação (spring) ou o o caminho completo da classe o engine se encarrefa de verificar isso.

Mas muito obrigado pela sugestão, já anotei aqui para uma revisão.

Agradeço!

É verdade, ficaria muita coisa. Eu até dei essa sugestão porque eu também fiz um framework de validação e ele seguia a linha do seu, mas depois eu achei melhor ter as annotations (mesmo que muitas). Eu, pessoalmente, achei mais legal com as annotations.

Outra coisa, muito boa a ideia de usar o spring para os validadores. Eu usei um binding simples no meu.

Valeu mais uma vez cara! É bom discutir e ouvir sugestões. Com relação a usar o spring, uso de uma forma que não obriga o seu projeto a usar o spring, tipo o spring fica encapsulado dentro do meu projeto e vc pode usar o que quiser. E ainda dou suporte (tem no tutorial como fazer) para estender o contexto (spring) de validações do meu framework adicionando os seus próprios beans e configurações. Não sei se chegou a ver esse tópico lá no tutorial.

Mas de qualquer forma agradeço o interesse e as opniões. Se quiser trocar mais uma ideia, tiver sugestões e críticas são todas bem vindas! O framework tem meu nome mas é código aberto e está passivo a quem queira contribuir, então estamos aí.

Qualquer coisa manda as ordens!

Participe do Grupo oficial do framework - http://br.groups.yahoo.com/group/lindbergframework/