Puede gestionar ciclos de vida de plug-ins con métodos especializados para cada plug-in, que están disponibles para su invocación en puntos funcionales designados. Tanto el método initialize como el método destroy definen el ciclo de vida de los plug-ins, que controlan sus objetos owner. Un objeto propietario es el objeto que utiliza realmente el plug-in determinado. Un propietario puede ser un cliente de cuadrícula, un servidor o una correlación de respaldo.
De forma similar, todos los plug-ins pueden implementar las interfaces mixin opcionales adecuadas para su objeto de propietario. Cualquier plug-in ObjectGrid puede implementar la interfaz mixin opcional ObjectGridPlugin. Cualquier plug-in BackingMap puede implementar la interfaz mixin opcional BackingMapPlugin. Las interfaces mixin opcionales requieren implementación de varios métodos aparte de los métodos initialize() y destroy() para los plug-ins básicos. Para obtener más información sobre estas interfaces, consulte la documentación de la API.
Cuando están inicializando objetos de propietario, estos objetos establecen atributos en el plug-in y a continuación invocan el método initialize de los plug-ins de los que son propietarios. Durante el ciclo de destrucción de objetos de propietario, en consecuencia se invoca también el método destroy de los plug-ins. Si desea información detallada sobre los métodos initialize y destroy, junto con otros métodos con capacidad para cada uno de los plug-ins, consulte los temas correspondientes para cada plug-in.
Como ejemplo, considere un entorno distribuido. Tanto los ObjectGrids del lado del cliente, como los ObjectGrids del lado del servidor pueden tener sus propios plug-ins. El ciclo de vida de un ObjectGrid del lado del cliente y, por lo tanto, sus instancias de plug-in, son independientes de todas las instancias de plug-in y del ObjectGrid del lado del servidor.
En una topología distribuida de este tipo, suponga que tiene un ObjectGrid denominado myGrid definido en el archivo objectGrid.xml y configurado con un ObjectGridEventListener personalizado denominado myObjectGridEventListener. El archivo objectGridDeployment.xml define la política de despliegue del ObjectGrid myGrid. Los archivos objectGrid.xml y objectGridDeployment.xml se utilizan para iniciar los servidores de contenedor. Durante el inicio del servidor de contenedor, la instancia del ObjectGrid myGrid del lado del servidor se inicializa. Entretanto, se invoca el método initialize de la instancia de myObjectGridEventListener de la que es propietaria la instancia de myObjectGrid. Una vez que se ha iniciado el servidor de contenedor, las aplicaciones se pueden conectar a la instancia del ObjectGrid myGrid del lado del servidor y obtener una instancia del lado del cliente.
Al obtener la instancia del ObjectGrid myGrid del lado del cliente, la instancia de myGrid del lado del cliente pasa por su propio ciclo de inicialización e invoca el método initialize de su instancia de myObjectGridEventListener del lado del cliente. Esta instancia de myObjectGridEventListener del lado del cliente es independiente de la instancia de myObjectGridEventListener del lado del servidor. Su ciclo de vida lo controla su propietario, que es la instancia del ObjectGrid myGrid del lado del cliente.
Si la aplicación desconecta o destruye la instancia del ObjectGrid myGrid del lado del cliente, el método destroy que pertenece a la instancia de myObjectGridEventListener del lado del cliente se invoca automáticamente. Sin embargo, este proceso no tiene ningún impacto en la instancia de myObjectGridEventListener del lado del servidor. El método destroy de la instancia de myObjectGridEventListener del lado del servidor solo se puede invocar durante el ciclo de vida de destrucción de la instancia de ObjectGrid myGrid del lado del servidor, al detener un servidor de contenedor. Específicamente, al detener un servidor de contenedor, las instancias de ObjectGrid contenidas se destruyen y se invoca el método destroy de todos los plug-ins de los que se es propietario.
Aunque el ejemplo anterior se aplica específicamente al caso de una instancia de cliente y servidor de un ObjectGrid, el propietario de un plug-in también puede ser una interfaz BackingMap. Además, determine cuidadosamente las configuraciones de los plug-ins que podría escribir, en función de estas consideraciones de ciclo de vida. Utilice los temas siguientes para escribir plug-ins para proporcionar sucesos de gestión de ciclo de vida ampliados que puede utilizar para configurar o eliminar recursos del entorno: