Extension d'opérations de gestion des applications par programmation

Vous pouvez utiliser la structure de déploiement commune pour ajouter une logique supplémentaire aux opérations de gestion des applications. La logique supplémentaire peut effectuer des tâches telles que la génération de code, les opérations de configuration, la validation complémentaire, etc. Cette rubrique illustre, par la programmation, comment se connecter à la structure de déploiement commune pour étendre les opérations de gestion des applications.

Avant de commencer

Cette tâche suppose une connaissance de base des interfaces de programmation d'applications (API) Java™. Voir la documentation sur les interfaces de programmation d'applications (API) Java.

Avant de pouvoir étendre les opérations de gestion des applications, vous devez d'abord installer WebSphere Application Server.

Pourquoi et quand exécuter cette tâche

Cet exemple permet d'étendre la gestion des applications par programmation. Les tâches fournies par les extensions sont disponibles via tous les clients d'administration, tels que l'outil wsadmin, la console d'administration ou par le biais des API de programmation fournies par le MBean AppManagement.

Procédure

  1. Définissez votre extension comme un plug-in Eclipse et ajoutez un fichier plugin.xml pour enregistrer votre fournisseur d'extension avec la structure de déploiement.
    1. Dans le fichier plugin.xml, fournissez une classe d'implémentation de fournisseur d'extension pour le point d'extension common-deployment-framework-extensionprovider.
    2. Mettez le fichier d'archive Java (JAR) de plug-in dans le répertoire plugins de votre installation 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. Fournissez un fournisseur d'extension.

    Une classe de fournisseur d'extension fournit les étapes pour une opération donnée sur un fichier d'archive Enterprise d'application (EAR). Avant d'exécuter une opération, la structure de déploiement interroge tous les fournisseurs d'extension enregistrés concernant des étapes supplémentaires. Une simple liste d'étape est transmise à chaque fournisseur. Chaque fournisseur peut ajouter des étapes à la liste. Le fournisseur par défaut fourni par la structure de déploiement est appelé en premier afin de remplir la liste avec les étapes par défaut. Les autres fournisseurs d'extension sont ensuite appelés.

    Diverses opérations que vous pouvez étendre via la structure de déploiement commune sont définies comme constantes dans la classe DeploymentConstants. Ces opérations sont décrites dans le tableau suivant. Certaines opérations sont présentées sur plusieurs lignes à des fins d'affichage.
    Tableau 1. Opérations de la classe DeploymentConstants extensibles. Sélectionnez une opération à développer.
    Opération Description
    DeploymentConstants.CDF_OP_INSTALLJ2EE Installe un fichier EAR de Java Platform, Enterprise Edition (Java EE)
    DeploymentConstants.CDF_OP_EDITJ2EE Edite la configuration d'application de déploiement
    DeploymentConstants.CDF_OP_UPDATEJ2EE Applique une mise à jour précise à une application telle que l'ajout, la suppression ou la mise à jour d'un fichier ou d'un module ou une mise à jour partielle d'une application
    DeploymentConstants.CDF_OP_UNINSTALLJ2EE Désinstalle une application Java EE
    DeploymentConstants.
    CDF_OP_CREATE_EAR_WRAPPERJ2EE
    Encapsule l'entrée de contenu à une installation d'application dans un fichier EAR

    Le MBean AppManagement responsable du déploiement et de la gestion des applications Java EE sur WebSphere Application Server exécute toutes les opérations, sauf l'opération CDF_OP_CREATE_EAR_WRAPPERJ2EE. Déployez les extensions qui étendent ces opérations dans le répertoire plugins du gestionnaire de déploiement.

    L'utilitaire wsadmin ou la console d'administration exécute l'opération CDF_OP_CREATE_EAR_WRAPPERJ2EE lorsque les contenus d'entrée fournis à l'opération CDF_OP_INSTALLJ2EE ne sont pas incorporés en tant que fichier EAR. Déployez une extension qui étend l'opération CDF_OP_CREATE_EAR_WRAPPERJ2EE dans le répertoire plugins de l'installation wsadmin.

    L'exemple suivant fournit un fournisseur d'extension qui réalise les tâches suivantes :
    1. Ajoute deux étapes supplémentaires pour l'opération d'installation d'application
    2. Ajoute un étape d'encapsulage des contenus d'entrée dans un fichier 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))
    			{
    				// Add a code generation step.
    				steps.add (0, new com.acme.CodeGenStep());
    				// Add a configuration step.
    				steps.add (new com.acme.ConfigStep());
    			}
    			else if (op.equals (DeploymentConstants.CDF_OP_CREATE_EAR_WRAPPERJ2EE))
    			{
    				// Add an ear-wrapper step.
    				steps.add (new com.acme.EarWrapperStep());
    			}
    		}
    }
  3. Fournissez une implémentation d'étape de déploiement.

    Un fournisseur d'extension ajoute une étape de déploiement. L'étape contient la logique qui effectue le traitement complémentaire dans une opération de gestion des applications. La logique fournit l'accès de l'étape au contexte de déploiement et à l'objet de déploiement. Le contexte de déploiement fournit des informations, telles que le nom de l'opération, l'ID de session de configuration, un emplacement temporaire pour la création des fichiers temporaires, des paramètres d'opération, etc. L'objet déployable encapsule l'entrée de contenu de déploiement à l'opération. Par exemple, l'objet déployable encapsule le fichier EAR Java EE pour l'opération d'installation ou un fichier, un module ou une application partielle pour l'opération de mise à jour.

    • L'exemple suivant illustre comment, lors de l'installation, une extension modifie entièrement un fichier EAR qui est une entrée de l'opération d'installation. L'exemple fournit une étape de déploiement lors de l'opération d'installation effectuant les tâches suivantes :
      1. Exécute la génération de code pour générer un nouveau fichier EAR.
      2. Appelle la méthode setContentPath dans la classe DeployableObject pour configurer le chemin d'accès du nouveau fichier EAR. La logique d'installation par défaut, telle que les étapes ajoutées par la logique d'installation par défaut, utilise ce nouveau fichier EAR pour l'installation dans le référentiel de configuration.
      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;
      			// Use step specific logic to create another EAR file after code generation.
      			…
      			newEARPath = _context.getTempDir() + "new.ear";
      
      			dObject.setContentPath (newEARPath);
      		}		
      }
    • L'exemple suivant fournit une étape de déploiement qui :
      1. Lit les contenus du fichier EAR d'entrée.
      2. Manipule la session de configuration accessible via l'instance de contexte, _context.
      package com.acme;
      
      public class ConfigStep extends DeploymentStep
      {
      		public void execute (DeployableObject dObject)
      		{
      			EARFile earFile = (EARFile) dObject.getHandle();
      
      			// Use the following example code to perform the configuration.
      			String sessionID = _context.getSessionID();
      			com.ibm.websphere.management.Session session = new
      				com.ibm.websphere.management.Session (sessionID, true);
      			// Use the configuration service to perform the configuration steps.
      			…
      
      			// Read the application configuration.
      			Application appDD = earFile.getDeploymentDescriptor();
      			…
      
      			String newEARPath = null;
      		}		
      }
    • L'exemple suivant fournit une étape de déploiement pour encapsuler le contenu arbitraire autour d'un fichier EAR. La logique de gestion des applications accepte uniquement le fichier EAR de déploiement. Une extension est requise si vous voulez entrer autre chose qu'un fichier EAR dans le processus de déploiement.

      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;
      			// provide your logic to wrap the jar with the ear
      			…
      			newEARPath = //;
      			// Set the new ear path back into DeploymentContext
      			this.getContext().getContextData()
           .put(DeploymentContext.RETURN_Object_key, newEARPath);
      		}		
      }

Résultats

Par la programmation, vous vous êtes connectés à la structure de déploiement commune pour étendre les opérations de gestion des applications.

Que faire ensuite

Vous pouvez étendre d'autres opérations de gestion des applications ou effectuer d'autres opérations d'administration de votre choix.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_cdf
Nom du fichier : tjmx_cdf.html