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
- 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.
- Dans le fichier plugin.xml, fournissez une classe d'implémentation de fournisseur d'extension
pour le point d'extension common-deployment-framework-extensionprovider.
- 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>
- 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 :
- Ajoute deux étapes supplémentaires pour l'opération d'installation d'application
- 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());
}
}
}
- 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 :
- Exécute la génération de code pour générer un nouveau fichier EAR.
- 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 :
- Lit les contenus du fichier EAR d'entrée.
- 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.