8Automatisation des déploiements avec Apache Ant
Transcription
8Automatisation des déploiements avec Apache Ant
ADMINISTRATION AVEC W4 BPMN+ ADMIN CHAPITRE 8 Automatisation des déploiements avec Apache Ant 8 [ADMIN. .] 1 L’utilisation de tâches Apache Ant permet d’automatiser le déploiement des définitions BPMN sur W4 BPMN+ Engine, offrant ainsi une alternative à l’envoi des définitions sur W4 BPMN+ Engine à partir de W4 BPMN+ Composer ou à l’import des définitions à partir de W4 BPMN+ Admin. / NOTE Une version 1.7 ou ultérieure du programme Apache Ant est requise. / Les tâches Ant suivantes sont disponibles : BPMNImportTask - Pour déployer une définition sur un serveur W4 BPMN+ Engine. SetUpProcessTask - Pour activer un processus sur un serveur W4 BPMN+ Engine. TearDownProcessTask - Pour désactiver un processus sur un serveur W4 BPMN+ Engine. La bibliothèque référençant ces tâches est [...]/lib/client/bpmnEngine_util.jar dans le répertoire d’installation de W4 BPMN+ Engine. Voir également la javadoc engineUtil Les rubriques ci-après décrivent les paramètres d’appel des targets Ant de déploiement d’une définition, d’activation et de désactivation d’un processus, et fournissent un exemple d’utilisation sous la forme d’un contenu de fichier build.xml. COMING UP TOPICS AUTOMATISER LE DÉPLOIEMENT D’UNE DÉFINITION, PG 163 AUTOMATISER L’ACTIVATION D’UN PROCESSUS, PG 164 AUTOMATISER LA DÉSACTIVATION D’UN PROCESSUS, PG 165 FICHIER BUILD.XML D’EXEMPLE POUR AUTOMATISATION ANT, PG 166 163 of 176 body [ADMIN. .] 8.1 Automatiser le déploiement d’une définition La target Ant de déploiement eu.w4.engine.util.ant.BpmnImportTask. d’une définition utilise la 2 classe Voir la target deploy de l’exemple d’utilisation. Les paramètres à configurer (attributs de la balise bpmnImport dans l’exemple) sont les suivants : server Le serveur W4 BPMN+ Engine. port Le port du serveur W4 BPMN+ Engine. username L’identifiant de l’utilisateur admin. bpmnFile Le chemin complet du fichier BPMN, par exemple : C:\workspaces\test\testDefinition_1.0\testDefinition.bpmn workingDirectory Le chemin relatif vers le dossier bpmn, permettant de récupérer les imports. importAlternative Pour définir l’option d'import. Les valeurs possibles sont les suivantes : CREATE - Crée la définition. MODIFY - Remplace la définition déjà présente sur le serveur. REVISE - Crée une nouvelle version de la définition (le numéro de version est positionné automatiquement). AUTOMATIC - Utilise la meilleure option possible. validateDiagram Booléen permettant de préciser si la définition doit être validée avant l'envoi au serveur. failOnError Booléen permettant de préciser si la tâche doit échouer en cas d'erreur. processAutomaticSetUp Booléen permettant de préciser si le processus sera activé. groupCreationOption Pour préciser l’option de création des groupes *. userCreationOption Pour préciser l’option de création des utilisateurs *. typeDefinitionCreationOption Pour préciser l’option de création des définitions de types *. importedDefinitionsCreationOption Pour préciser l’option d’import des définitions importées par la définition à déployer *. Administration avec W4 BPMN+ Admin 164 of 176 attributeDefinitionCreationOption Pour préciser l’option de création des définitions d’attributs *. staffCreationOption Pour préciser l’option de création des divisions *. * Les options de création possibles sont les suivantes : TO_BE_CREATED - Crée l'élément (option par défaut). TO_BE_CREATED_IF_NOT_ALREADY_EXISTS - Crée l'élément s'il n'existe pas. NOT_TO_BE_CREATED - Ne crée pas l’élément. L’option par défaut (TO_BE_CREATED) générera des erreurs si les éléments existent déjà, en particulier si la définition référence une donnée métier (car la définition de type n’est pas supprimée lors de la suppression de la définition), raison pour laquelle d’utilisation l’option positionnée est dans l’exemple TO_BE_CREATED_IF_NOT_ALREADY_EXISTS. / / NOTE 8.2 [ADMIN. .] Automatiser l’activation d’un processus La target Ant d’activation eu.w4.engine.util.ant.SetUpProcessTask. d’un processus utilise la 3 classe On distingue deux cas : Activation d’un processus simple Activation d’un processus faisant partie d’une collaboration Automatiser l’activation d’un processus simple Voir la target setupProcess de l’exemple d’utilisation. Les paramètres à configurer (attributs de la balise setupProcess dans l’exemple) sont les suivants : server Le serveur W4 BPMN+ Engine. port Le port du serveur W4 BPMN+ Engine. username L’identifiant de l’utilisateur admin. password Le mot de passe de l’utilisateur admin. 165 of 176 definitionsId L’identifiant de la définition. body definitionsVersion La version de la définition. processId L’identifiant du processus. Automatiser l’activation d’un processus dans une collaboration Voir la target setupProcessCollaboration de l’exemple d’utilisation. Les paramètres à configurer (attributs de la balise setupProcess dans l’exemple) sont les suivants : server Le serveur W4 BPMN+ Engine. port Le port du serveur W4 BPMN+ Engine. username L’identifiant de l’utilisateur admin. password Le mot de passe de l’utilisateur admin. collaborationId L’identifiant de la collaboration. definitionsId L’identifiant de la définition. definitionsVersion La version de la définition. processId L’identifiant du processus. 8.3 [ADMIN. .] Automatiser la désactivation d’un processus La target Ant de désactivation eu.w4.engine.util.ant.TearDownProcessTask. d’un processus utilise Voir les targets tearDown et tearDownCollaboration de l’exemple d’utilisation. la 4 classe of 176 Les paramètres à configurer (attributs de la balise tearDownProcess dans l’exemple) sont identiques à ceux de l’activation d’un processus. 8.4 [ADMIN. .] Fichier build.xml d’exemple pour automatisation Ant 5 L’exemple de fichier build.xml ci-dessous comporte des targets pour le déploiement de définitions ainsi que pour l’activation et la désactivation de processus. Administration avec W4 BPMN+ Admin 166 167 of 176 body <?xml version="1.0" encoding="UTF-8" ?> <project name="myproject" default="help"> <property environment="env" /> <property name="w4.home" value="C:/Program Files (x86)/W4/W4BPMNplus" /> <property name="bpmnImport.defined" value="done" /> <property name="hostname" value="localhost" /> <property name="rmi.registryPort" value="7707" /> <property name="admin.login" value="admin" /> <property name="admin.password" value="admin" /> <path id="l.bpmnImport.classpath"> <fileset dir="${w4.home}/lib/client"> <include name="bpmnEngine_util.jar" /> <include name="bpmnEngine_client.jar" /> <include name="w4Common_client.jar" /> </fileset> </path> <taskdef name="bpmnImport" classpathref="l.bpmnImport.classpath" classname="eu.w4.engine.util.ant.BpmnImportTask" /> <taskdef name="setupProcess" classpathref="l.bpmnImport.classpath" classname="eu.w4.engine.util.ant.SetUpProcessTask" /> <taskdef name="tearDownProcess" classpathref="l.bpmnImport.classpath" classname="eu.w4.engine.util.ant.TearDownProcessTask" /> <target name="deploy"> <bpmnImport server="${hostname}" port="${rmi.registryPort}" username="admin" password="admin" bpmnFile="C:\workspaces\test\bpmn\testDefinition_1.0\testDefinition.bpmn" workingDirectory="bpmn/testDefinition_1.0" importAlternative="create" validateDiagram="true" failOnError="true" processAutomaticSetUp="true" groupCreationOption="TO_BE_CREATED_IF_NOT_ALREADY_EXISTS" userCreationOption="TO_BE_CREATED_IF_NOT_ALREADY_EXISTS" typeDefinitionCreationOption="TO_BE_CREATED_IF_NOT_ALREADY_EXISTS" /> </target> <target name="setupProcess"> <setupProcess server="${hostname}" port="${rmi.registryPort}" username="admin" password="admin" definitionsId="testDefinition" definitionsVersion="1.0" processId="Bpmn_Process_ewnokIt8EeSKdopf1VXBQQ" /> </target> <target name="setupProcessCollaboration"> <setupProcess server="${hostname}" port="${rmi.registryPort}" username="admin" password="admin" collaborationId="Bpmn_Collaboration_FU1WQYtyEeSKdopf1VXBQQ" definitionsId="testDefinition" definitionsVersion="1.0" processId="Bpmn_Process_P6o3UotyEeSKdopf1VXBQQ" /> </target> <target name="teardown"> <tearDownProcess server="${hostname}" port="${rmi.registryPort}" username="admin" password="admin" definitionsId="testDefinition" definitionsVersion="1.0" processId="Bpmn_Process_ewnokIt8EeSKdopf1VXBQQ" /> </target> <target name="teardownCollaboration"> <tearDownProcess server="${hostname}" port="${rmi.registryPort}" username="admin" password="admin" collaborationDefinitionsId="testDefinitionn" collaborationDefinitionsVersion="1.0" collaborationId="testCollaboration" definitionsId="testDefinition" definitionsVersion="1.0" processId="testCollaboration" /> </target> <target name="help"> <echo>Import definition on a server</echo> <!-- bpmnImport task : --> <echo> <!-- bpmnFile : The BPMN file to import (alternative option with the embedded fileSets). --> <!-- workingDirectory : The folder from which the imported BPMN files will be relatively searched. If none is given, the folder containing the main BPMN file will be used. --> <!-- importAlternative : Sets the import alternative that should be applyed when the import is performed. The possible values are: create, modify, revise and automatic. the default value is: automatic --> <!-- logFile : A file to which the BPMN errors will be writtten if any. If no log file is given, stdout will be used --> <bpmnImport taskname=" |-->" server="hostname or ip address of the bpmnplus server" port="rmi port of the bpmnplus server " username="admin login or user who has import definition privileges" password="user password" bpmnFile="bpmn file name" workingDirectory="directory used to searched import file with relative path" importAlternative="how file is imported : create, modify, revise, automatic" validateDiagram="true to validate the bpmn file content" failOnError="true"/> </echo> </target> </project> Fig 8.1 Exemple d’automatisation Ant 168 FINAL Administration avec W4 BPMN+ Admin of 176 169 of 176 body