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.

Avalie esse artigo

Relevância
Estilo/Redação

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 mensagens dessa discussão
Comentários da comunidade

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

Receber mensagens dessa discussão

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

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.