Ampliación de las operaciones de gestión de aplicaciones a través de programación

Puede utilizar la infraestructura de despliegue común para añadir lógica adicional a las operaciones de gestión de aplicaciones. La lógica adicional puede realizar tareas como la generación de código, la configuración de operaciones, la validación adicional, etc. En este tema se muestra cómo conectarse a la infraestructura de despliegue común, a través de programación, para ampliar las operaciones de gestión de aplicaciones.

Antes de empezar

En esta tarea se da por supuesto que tiene unos conocimientos básicos de las interfaces de programación de aplicaciones (API) de Java™. Consulte la documentación sobre las interfaces de programación de aplicaciones para obtener información acerca de las API de Java.

Para poder ampliar las operaciones de gestión de aplicaciones, primero debe instalar WebSphere Application Server.

Acerca de esta tarea

Utilice este ejemplo para ampliar la gestión de aplicaciones a través de programación. Las tareas que las extensiones proporcionan están disponibles a través de los clientes administrativos, como la herramienta wsadmin, la consola de administración o a través de las API de programación que proporciona el MBean de AppManagement.

Procedimiento

  1. Defina la ampliación como un plug-in de Eclipse y añada un archivo plugin.xml para registrar el proveedor de extensiones con la infraestructura de despliegue.
    1. En el archivo plugin.xml, proporcione una implementación de proveedor de extensiones para el punto de extensión common-deployment-framework-extensionprovider.
    2. Ponga el archivo JAR (Java Archive) del plug-in en el directorio plugins de la instalación de WebSphere Application Server.
    <?xml version="1.0" encoding="UTF-8"?>
    <plugin
       id=“com.ibm.myproduct.MyExtensionProvider”
       name=“My Extension"
       version="1.0.0">
    
       <extension point=“common-deployment-framework-extensionprovider”>
          <action class=“com.acme.MyExtendProviderImpl“/>
       </extension>
    </plugin>
  2. Proporcione un proveedor de extensiones.

    Una clase de proveedor de extensiones proporciona los pasos para una operación determinada en un archivo EAR (Enterprise Archive) de aplicación. Antes de ejecutar una operación, la infraestructura de despliegue busca si hay pasos adicionales en todos los proveedores de extensiones registrados. A cada proveedor se pasa una sola lista de pasos. Cada proveedor puede añadir pasos a la lista. Primero se llama al proveedor predeterminado que la infraestructura de despliegue proporciona para rellenar la lista con pasos por omisión. A continuación se llama a otros proveedores de extensiones.

    Diversas operaciones que puede extender a través de la infraestructura de despliegue común como constantes en la clase DeploymentConstants. Estas operaciones se describen en la tabla siguiente. Algunas operaciones se han partido en varias líneas con fines de impresión.
    Tabla 1. Operaciones DeploymentConstants extensibles. Seleccione una operación para ampliar.
    Operación Descripción
    DeploymentConstants.CDF_OP_INSTALLJ2EE Instala un archivo EAR de Java EE (Java Platform, Enterprise Edition)
    DeploymentConstants.CDF_OP_EDITJ2EE Edita la configuración de una aplicación de despliegue
    DeploymentConstants.CDF_OP_UPDATEJ2EE Aplica a una aplicación una actualización precisa como una adición, supresión o actualización de un archivo o un módulo; o una actualización parcial de una aplicación
    DeploymentConstants.CDF_OP_UNINSTALLJ2EE Desinstala una aplicación Java EE
    DeploymentConstants.
    CDF_OP_CREATE_EAR_WRAPPERJ2EE
    Empaqueta en un archivo EAR la entrada de contenido para la instalación de la aplicación

    El MBean de AppManagement, que es responsable para desplegar y gestionar aplicaciones Java EE en WebSphere Application Server, ejecuta todas las operaciones a excepción de la operación CDF_OP_CREATE_EAR_WRAPPERJ2EE. Despliegue las extensiones que amplían estas operaciones en el directorio plugins del gestor de despliegue.

    El programa de utilidad wsadmin o la consola de administración ejecuta la operación CDF_OP_CREATE_EAR_WRAPPERJ2EE cuando el contenido de entrada que se proporciona a la operación CDF_OP_INSTALLJ2EE no está empaquetado en forma de archivo EAR. Despliegue una extensión que amplía la operación CDF_OP_CREATE_EAR_WRAPPERJ2EE en el directorio plugins de la instalación wsadmin.

    En el siguiente ejemplo se proporciona un proveedor de extensiones que lleva a cabo las siguientes tareas:
    1. Añade dos pasos adicionales para la operación de instalación de aplicación
    2. Añade un paso para incluir el contenido de entrada en un archivo EAR
    package com.acme;
    
    import com.ibm.websphere.management.deployment.registry.ExtensionProvider;
    import com.ibm.websphere.management.deployment.core.DeploymentConstants;
    
    public class MyExtensionProviderImpl extends ExtensionProvider {
    				public void addSteps (String type, String op, String phase, 
    						List steps)
    		{
    						if (op.equals (DeploymentConstants.CDF_OP_INSTALLJ2EE))
    			{
    								// Añadir un paso de generación de código.
    								steps.add (0, new com.acme.CodeGenStep());
    								// Añadir un paso de configuración.
    								steps.add (new com.acme.ConfigStep());
    			}
    						else if (op.equals (DeploymentConstants.CDF_OP_CREATE_EAR_WRAPPERJ2EE))
    			{
    								// Añadir un paso de envoltorio EAR.
    								steps.add (new com.acme.EarWrapperStep());
    			}
    		}
    }
  3. Proporcione la implementación de paso de despliegue.

    Un proveedor de extensiones añade un paso de despliegue. El paso contiene lógica que lleva a cabo proceso adicional en una operación de gestión de aplicaciones. La lógica proporciona el paso para acceder al contexto de despliegue y al objeto desplegable. El contexto de despliegue proporciona información, como el nombre de la operación, el ID de sesión de la configuración, una ubicación temporal para crear archivos temporales, los parámetros de operación, etc. El objeto desplegable empaqueta la entrada de contenido de despliegue en la operación. Por ejemplo, el objeto desplegable empaqueta el archivo EAR Java EE para la operación de instalación o un archivo, un módulo o una aplicación parcial para la operación de actualización.

    • En el siguiente ejemplo se muestra cómo, durante la instalación, una extensión cambia totalmente un archivo EAR que entra en la operación de instalación. El ejemplo proporciona un paso de desarrollo durante la operación de instalación que realiza las siguientes tareas:
      1. Ejecuta la generación de código para generar un nuevo archivo EAR.
      2. Llama al método setContentPath en la clase DeployableObject para establecer la nueva vía de acceso del archivo EAR. La lógica de instalación predeterminada, como los pasos que añade la lógica de la instalación predeterminada, utilice este nuevo archivo EAR para la instalación en el repositorio de configuración.
      package com.acme;
      
      import com.ibm.websphere.management.deployment.core.DeploymentStep;
      import com.ibm.websphere.management.deployment.core.DeployableObject;
      
      public class CodeGenStep extends DeploymentStep
      {
      				public void execute (DeployableObject dObject)
      		{
      						EARFile earFile = (EARFile) dObject.getHandle();
      						String newEARPath = null;
      						// Utilizar lógica del paso específico para crear otro archivo EAR después de la generación de código.
      			…
      						newEARPath = _context.getTempDir() + "new.ear";
      
      						dObject.setContentPath (newEARPath);
      		}		
      }
    • En el siguiente ejemplo se proporciona un paso de despliegue que:
      1. Lee el contenido del archivo EAR de entrada.
      2. Manipula la sesión de configuración a la que se accede a través de la instancia del contexto, _context.
      package com.acme;
      
      public class ConfigStep extends DeploymentStep
      {
      				public void execute (DeployableObject dObject)
      		{
      						EARFile earFile = (EARFile) dObject.getHandle();
      
      						// Usar el código de ejemplo siguiente para realizar la configuración.
      						String sessionID = _context.getSessionID();
      						com.ibm.websphere.management.Session session = new
      								com.ibm.websphere.management.Session (sessionID, true);
      						// Usar el servicio de configuración para realizar los pasos de configuración.
      			…
      
      						// Leer la configuración de aplicación.
      						Application appDD = earFile.getDeploymentDescriptor();
      			…
      
      						String newEARPath = null;
      		}		
      }
    • En el siguiente ejemplo se proporciona un paso de despliegue para incluir contenido arbitrario alrededor de un archivo EAR. La lógica de gestión de aplicaciones sólo acepta el archivo EAR para despliegue. Si desea entrar algo distinto a un archivo EAR para el proceso de despliegue es necesaria una extensión.

      package com.acme;
      
      import com.ibm.websphere.management.deployment.core.DeploymentStep;
      import com.ibm.websphere.management.deployment.core.DeployableObject;
      
      public class EarWrapperStep extends DeploymentStep
      {
      				public void execute (DeployableObject dObject)
      		{
      						Archive archive = (Archive) dObject.getHandle();
      						String newEARPath = null;
      						// proporcionar la lógica para incluir el jar con el ear
      			…
      						newEARPath = //;
      						// Establecer la nueva vía de acceso ear en DeploymentContext
      						this.getContext().getContextData()
           .put(DeploymentContext.RETURN_Object_key, newEARPath);
      		}		
      }

Resultados

A través de programación, se ha conectado a la infraestructura de despliegue común para ampliar las operaciones de gestión de aplicaciones.

Qué hacer a continuación

Puede ampliar otras operaciones de gestión de aplicaciones o realizar las operaciones administrativas que desee.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_cdf
File name: tjmx_cdf.html