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
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 155
AUTOMATISER L’ACTIVATION D’UN PROCESSUS, PG 156
AUTOMATISER LA DÉSACTIVATION D’UN PROCESSUS, PG 157
FICHIER BUILD.XML D’EXEMPLE POUR AUTOMATISATION ANT, PG 158
155
of 168
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
156
of 168
attributeDefinitionCreationOption
Pour préciser l’option de création des définitions d’attributs (*).
* 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.
definitionsId
L’identifiant de la définition.
157
of 168
definitionsVersion
La version de la définition.
body
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
la
4
classe
Voir les targets tearDown et tearDownCollaboration de l’exemple d’utilisation.
Les paramètres à configurer (attributs de la balise tearDownProcess dans l’exemple) sont
identiques à ceux de l’activation d’un processus.
of 168
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
158
159
of 168
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 (code sample)
160
FINAL
Administration avec W4 BPMN+ Admin
of 168
161
of 168
body