droolsGuvnorLogoGuvnor est un reporitory central pour règles Drools avec des outils pour le management des règles accessibles au moyen d’une interface graphique (web). C’est un outil Open Source maintenu par la fondation Apache.

Nous allons aborder ici l’installation et le paramétrage de celui-ci, avec son intégration avec l’IDE Eclipse.

Pour ce billet, nous choisissons de faire tourner notre serveur de règles dans un Tomcat. La solution JBoss pourrait être préférable si vous avez un environnement complexe.

Il faut se référer au billet Installer TomCat sur Ubuntu pour une installation complète et propre de Tomcat sur Linux.

Installation de Guvnor

Télécharger Guvnor depuis le site JBoss. Pour ce billet, j’ai choisi la version stable 5.5.0 Final:

wget http://download.jboss.org/drools/release/5.5.0.Final/guvnor-distribution-5.5.0.Final.zip  

Décompresser le fichier dans le répertoire de son choix.

tar zxvf guvnor-distribution-5.5.0.Final.zip  

Après décompression, il suffit d’installer le fichier guvnor-5.5.0.Final-tomcat-6.0.war dans Tomcat via le ‘App Manager”. Pour des raisons pratiques, je renomme auparavant ce guvnor-5.5.0.Final-tomcat-6.0.war en guvnor.war.

Si vous tombez sur une erreur du type “…org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size…”, c’est que les limitations de la configuration du manager de Tomcat vous empêche de charger un war aussi gros. Il faut modifier ces limitations dans le fichier …../webapps/manager/WEB- INF/web.xml. Modifier les valeurs du fichier par défaut pour augmenter la limitation:

<multipart-config>  
       <!-- 50MB max -->
       <max-file-size>52428800</max-file-size>
       <max-request-size>52428800</max-request-size>
       <file-size-threshold>0</file-size-threshold>
</multipart-config>  

Recharger ensuite la webapp via la console Tomcat.

Ensuite, si vous tombez sur une erreur du type:

Type: Exception report

Message

Description: The server encountered an internal error that prevented it from fulfilling this request.

Exception

java.lang.NullPointerException org.jboss.seam.transaction.TransactionServletListener.requestInitialized(TransactionServletListener.java:106) org.apache.catalina.valves.ErrorReportValve.invoke

Il faut modifier les lignes ci-dessous entre les balises  <web-app>..</web-app> dans le fichier “…../webapps/manager/WEB- INF/web.xml pour désactiver le listener JBoss seam:

<context-param>  
   <param-name>org.jboss.seam.transaction.disableListener</param-name>
   <param-value>true</param-value>
</context-param>  

Recharger ensuite la webapp via la console Tomcat.

Sur une première visite réussie de Guvnor, celui-ci va vous proposer d’installer un exemple par défaut (appelé mortgages).

Installer le plugin pour Eclipse

Télécharger “Drools and jBPM tools” depuis le site JBoss et le décompresser dans un répertoire que nous appellerons  . Pour ce billet, j’ai choisi la version stable 5.5.0 Final. Ensuite:

  • Ouvrir Eclipse.
  • Choisir le menu “Help”, puis “Install new software…”,
  • Cliquer sur le boutton “Add…” pour ajouter un nouveau site,
  • Remplir un nom, par exemple “Drools local update site”,
  • Cliquer sur le boutton “Local…” et choisir l’endroit  où le téléchargement a été décompressé: “/binaries/org.drools.updatesite/”,
  • Selectionner tous les plugins puis procéder comme pour n’importe quel autre installation de plugin dans Eclipse.

Et voilà. On peut vérifier l’installation en faisant Contrôle+N et en vérifiant que deux nouveaux types (Drools et Guvnor) sont disponibles, puis choisir de créer un “Guvnor Repository Location”. Dans la boite de dialogue qui apparait, choisir l’URL de Guvnor puis cliquer sur Finish.

Dans les packages disponibles, ceux de l’exemple mortgages de Guvnor apparaissent.

L’utilisation de Drools et Guvnor fera l’objet d’un article à part.

Références

http://magazine.redhat.com/2008/08/12/jboss-drools-how-to-tuning-guvnor-part-1/
http://www.jboss.org/drools/drools-guvnor.html