BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Facilidade na transferência de Entidades de Persistência

Facilidade na transferência de Entidades de Persistência

Favoritos

Gilead é uma biblioteca que permite:

Enviar entidades de persistência para fora da JVM sem dor.

Gilead, que significa Generic Light Entity Adapter, foi anteriormente chamada de Hibernate4GWT. A mudança de nome veio após os desenvolvedores começarem a suportar outros frameworks:

Desde que o Gilead passou a tratar mais do que o front-end GWT  e suportar outras implementações do JPA além do planejado pelo Hibernate, nós buscamos um nome mais genérico.

A primeira razão para a criação do Gilead foi para facilitar o martírio que estamos fadados quando tentamos enviar entidades para outros sistemas ou tecnologias front-end. Geralmente, o problema ocorre porque os frameworks de persistência alterarão as classes durante a compilação ou runtime, para incluir informações que eles necessitam, aliviando o trabalho de persistir entidades. Assim, quando estes objetos modificados são transmitidos, coisas estranhas podem acontecer e erros como "NoClassDefFoundError" e "ClassCastException" são lançadas pelos receptores.

Gilead resolve isto através das estratégias de cloning e merging. Quando objetos estão sendo lançados para fora do servidor onde foram clonados:

A clonagem pega uma entidade persistente e cria uma instância neutra, sem proxies ou coleções de persistência.

Quando os objetos estão sendo retornados ao servidor é feito o merge. O Gilead realiza esta ação em um dos três "modos":

  1. stateless: As classes devem extender LightEntity ou implementar ILightEntity, que permitem que a informação de persistência seja armazenada em um objeto clonado (nenhuma informação é deixada no servidor).
  2. stateful: A informação de persistência é armazenada na sessão HTTP.
  3. dynamic proxy: Um modo experimental stateless, útil em situações em que o c´ódigo existente não pode ser modificado para preencher o conjunto de requisitos existentes para o modo stateless;

O Gilead está a atualmente na versão 1.2.2 e provê operações estáveis de clonagem/merge para aplicações que utilizam Hibernate como framework JPA. Os adaptadores estáveis providos pelo Gilead para envio de entidades a uma tecnologia front-end incluem GWT e Flex (utilizando BlazeDS).

A próxima versão, 1.3, espera criar: um adaptador XML/Web Services, suporte para OpenJPA (com o EclipseLink mais ao final) e outras melhorias.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT