BT

Facilidade na transferência de Entidades de Persistência

por Craig Wickesser , traduzido por Victor Hugo Germano em 28 Abr 2009 |

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.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT