Gerenciando Ciclos de Vida de Plug-in

É possível gerenciar ciclos de vida de plug-in com métodos especializados de cada plug-in, que estão disponíveis para serem chamados em pontos funcionais designados. Ambos os métodos initialize e destroy definem o ciclo de vida de plug-ins, que são controlados pelos seus objetos proprietário. Um objeto proprietário é o objeto que realmente usa o plug-in fornecido. Um proprietário pode ser um cliente de grade, um servidor ou um mapa de apoio.

Sobre Esta Tarefa

Da mesma forma, todos os plug-ins podem implementar interfaces combinadas opcionais adequadas para seu objeto proprietário. Qualquer plug-in ObjectGrid pode implementar o ObjectGridPlugin de interface combinada opcional. Qualquer plug-in BackingMap pode implementar o BackingMapPlugin de interface combinada opcional. As interfaces combinadas opcionais requerem a implementação de vários métodos adicionais além dos métodos initialize() e destroy() para os plug-ins básicos. Para obter mais informações sobre essas interfaces, consulte a documentação da API.

Quando os objetos proprietários estão inicializando, esses objetos configuram atributos no plug-in e, em seguida, chamam o método initialize dos plug-ins proprietários. Durante o ciclo de destruição dos objetos proprietários, o método destroy dos plug-ins também será chamado consequentemente. Para obter detalhes sobre os métodos initialize e destroy específicos, junto com outros métodos aptos para cada plug-in, consulte os tópicos relevantes para cada plug-in.

Como exemplo, considere um ambiente distribuído. Ambos os ObjectGrids do lado do cliente e do lado do servidor podem ter seus próprios plug-ins. O ciclo de vida de um ObjectGrid do lado do cliente e, portanto, suas instâncias de plug-in são independentes de todas as instâncias ObjectGrids e de plug-in do lado do servidor.

Nessa topologia distribuída, suponha que você tenha um ObjectGrid denominado myGrid definida no arquivo objectGrid.xml e configurado com um ObjectGridEventListener customizado chamado myObjectGridEventListener. O arquivo objectGridDeployment.xml define a política de implementação para o ObjectGrid myGrid. Ambos os arquivos objectGrid.xml e objectGridDeployment.xml são usados para iniciar servidores de contêiner. Durante a inicialização do servidor de contêiner, a instância do ObjectGrid myGrid do lado do servidor é inicializada. Enquanto isso, o método initialize da instância myObjectGridEventListener de propriedade da instância myObjectGrid é chamada. Depois que o servidor de contêiner for iniciado, o aplicativo poderá se conectar à instância ObjectGrid myGrid do lado do servidor e obter uma instância do lado do cliente.

Ao obter a instância myGrid do ObjectGrid do lado do cliente, a instância myGrid do lado do cliente passa pelo seu próprio ciclo de inicialização e chama o método initialize da sua própria instância myObjectGridEventListener do lado do cliente. Essa instância myObjectGridEventListener do lado do cliente é independente da instância myObjectGridEventListener do lado do servidor. O ciclo de vida é controlado pelo proprietário, que é a instância myGrid do ObjectGrid do lado do cliente.

Se o aplicativo desconectar ou destruir a instância myGrid do ObjectGrip do lado do cliente, o método destroy que pertence à instância myObjectGridEventListener do lado do cliente será chamado automaticamente. No entanto, esse processo não afeta a instância myObjectGridEventListener no lado do servidor. O método destroy da instância myObjectGridEventListener do lado do servidor pode ser chamado apenas durante o ciclo de vida de destruição da instância myGrid do ObjectGrid do lado do servidor ao parar um servidor de contêiner. Especificamente, ao parar um servidor de contêiner, as instâncias ObjectGrid contidas são destruídas e o método destroy de todos os plug-ins proprietários é chamado.

Embora o exemplo anterior seja aplicado especificamente para o caso de uma instância do cliente e do servidor de um ObjectGrid, o proprietário de um plug-in também pode ser uma interface BackingMap. Além disso, tenha cuidado ao determinar suas configurações para os plug-ins que você pode gravar, com base nessas considerações do ciclo de vida. Use os tópicos a seguir para gravar os plug-ins que fornecem eventos de gerenciamento de ciclo de vida estendido que podem ser usados para configurar ou remover recursos em seu ambiente: