sexta-feira, março 21, 2008

Bem Vinda, JSR 303 - Bean Validation

Foi ontem que o Harold, do JCP mandou o email avisando que a Early Draft da JSR 303 está sob júdice do público. Sim, temos a primeira versão candidata da especificação para validação de beans, ou a Bean Validation.

Eu esperava essa JSR há tempos, e não perdi nenhum segundo a mais e fui logo imprimir as 43 páginas para me deliciar nesse fim de semana (sim, sou daqueles que não consegue ler PDF's).

Devido eu estar brincando (quase que literalmente) com clusterização no JBoss, eu não pude avançar mais do que as cinco primeiras páginas do documento. Logo, esse post também é um draft :)

Antecipo, porém, que quem ler a especificação não vai encontrar nada de (muito) novo em relação aos conceitos do Hibernate Validator, já nosso conhecido.

DDD, Anotações e Validadores
Na prática, a ênfase é seguir a Driven Domain Development (DDD), colocando todo o necessário nos beans da aplicação na forma de anotações. Essas anotações são resolvidas pelos validadores e, enfim, a aplicação cliente encarrega-se de mostrar as mensagens de erro produzidas.

Dispenso maiores comentários, pois, como disse, o Hibernate Validator é a base de tudo. Entretanto, registro que gosto de funcionalidades como a busca recursiva no grafo de objetos, a separação de validadores por grupos e o suporte de overriding através de XML (herança do EJB3).

Estilo
O Emmanuel (amigo do Gavin) está fazendo um bom trabalho sim. Mas quem lê o conteúdo desse draft, percebe logo que ela é bem mais baixo nível que uma JSR 220 ou 318 "da vida". Nada contra, mas são estilos de escrita diferentes. E aprovo esse estilo técnico também (embora em excesso ele possa ser tendencioso).

Pontos em Aberto
Alguns pontos estão em aberto na JSR. Ênfase para a escolha das anotações que serão as padrões (built-in) no framework e como será o mecanismo de overriding XML. Também o processo de bootstrapping parece não estar bem definido e o suporte EL não foi mostrado com carinho.

Até o dia 19 de Abril próximo (e claro, eu acredito que nessa data vocês podem colocar mais uns 45 dias) o comitê está aceitando sugestões para avanços nessa especificação. Assim, participem, meninos!

Pra quando e pra quem
A seção 2.3 do modelo 2.6 do JCP solicita a versão target da JSR. Nesse caso, visto que ela é em anotações (JSR 175), essa JSR deve funcionar apenas com JDK 1.5 ou superior. Isso caracteriza uma tendência óbvia - que o pessoal do Merlin (codinome do JDK 1.4, e não do gerador de IU...) está definitivamente indo para escanteio...

Quanto à inserção no Java SE, correm as línguas que o Dolphin (Java 7) deve trazer o pacote javax.validation junto. E isso é uma boa, pois nesse mesmo período deve estar chegando o Java EE 6 (JSR 316), a JPA 2.0 (JSR 317) o EJB 3.1 (JSR 318), o Swing Framework (JSR 296), o Web Beans (JSR 299) e outros releases importantes.

Sim, estamos em um limiar e 2009 promete.

0 comentários: