IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Intégration de BIRT dans un environnement PHP


précédentsommairesuivant

III. Intégration BIRT

Dans un premier temps, il faut : récupérer l'archive BIRT, personnaliser l'application et enfin la redéployer sur le serveur d'application.

III-A. Extraction de BIRT Runtime

Il faut commencer par extraire l'archive birt-runtime-2_3_0.zip dans un fichier temporaire, celle-ci doit contenir l'archive birt.war.

III-B. Intégration de BIRT à Eclipse

Démarrez Eclipse, et commencez par vous mettre dans la perspective JAVA EE « Window --> Open Perspective --> Other ».
Ensuite fait, « File --> Import » et sélectionner « web --> war Files ».
Dans la fenêtre d'invitation, sélectionnez l'archive birt.war, donnez un nom au projet « birtV2_3_0 » puis faites « finish ».

Normalement, après l'import de l'archive vous devez avoir une erreur sur le fichier webtemplate.xml présent dans le répertoire WebContent/WEB-INF. Pour la supprimer, remplacer la valeur de xsi:schemaLocation par http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd.

III-C. Déploiement de BIRT

Le but ici est de créer un script ANT build.xml qui a le même rôle qu'un makefile pour ceux qui connaissent et permet de déployer :

  1. Le projet sous forme d'archive ;
  2. Les rapports sur la plateforme Jboss.

III-C-1. Déclaration du projet BIRT

Dans notre projet birtV2_3_0, créer un fichier build.xml à la racine. Pour commencer, déclarer trois propriétés comme ci-dessous.

Name

Value

Description

jboss.server

 

Chemin de votre serveur Jboss

name

birtV2_3_0

Nom de l'archive

dist

./dist

Répertoire temporaire à la racine de votre projet sous Eclipse


Ensuite, ajouter les cibles :

  • clean pour effacer l'archive présente sur Jboss ;
  • war pour créer votre archive war ;
  • deploy pour le déploiement de votre archive (cible par défaut).
Fichier : build.xml
Sélectionnez
<?xml version="1.0" encoding="UTF-8"?>
<project name="birtV2_3_0" basedir="." default="deploy">
    <property name="jboss.server" value="D:/jboss-portal-2.6.5.SP1/server/default"/>
    <property name="name" value="birtV2_3_0"/>
    <property name="dist" value="./dist"/>
    <target name="clean" description="clean">
        <!-- DEV -->
        <delete file="${dist}/${name}.war" />
    </target>
    <target name="war" depends="clean">
        <!-- DEV -->
        <jar jarfile="${dist}/${name}.war" basedir="./WebContent/" />
    </target>
    <target name="deploy" description="deployement" depends="war">
        <!-- JBOSS -->
        <delete file="${jboss.server}/deploy/${name}.war"/>
        <copy todir="${jboss.server}/deploy" file="${dist}/${name}.war"/>
    </target>
</project>

Pour finir, pour exécuter le script, il suffit de faire un clic droit sur le fichier build.xml et choisir run as Ant Build.

III-C-2. Utilisation du service Properties

Sous Jboss, il existe un service properties qui permet de charger un ensemble de paires clef/valeur utilisables dans n'importe quel fichier présent sur Jboss.
Créer un fichier birt.properties (voir annexe) avec les six clefs comme ci-dessous.

Avec Java, via la méthode statique getProperty(key,value) de la classe System il possible de récupérer ces clefs.

Name

Value

Description

birt.viewer.2.3.0.working.folder

${jboss.server.home.dir}/data/birt/report

Répertoire où stocker les.rptdesign

birt.viewer.2.3.0.document.folder

${jboss.server.home.dir}/data/birt/documents

Répertoire où stocker les.rptdocument

birt.viewer.2.3.0.image.dir

${jboss.server.home.dir}/data/birt/report/images

Répertoire où stocker les images temporaires des rapports

birt.viewer.2.3.0.log.dir

${jboss.server.home.dir}/log/birt

Répertoire de log de BIRT

birt.viewer.2.3.0.scriptlib.dir

${jboss.server.home.dir}/data/birt/scriplib

Répertoire des scriptlib de BIRT

birt.viewer.2.3.0.resource.path

${jboss.server.home.dir}/data/birt/resource

Répertoire contenant les fichiers.properties et rptlibrary


Nous créerons un répertoire conf dans la racine de notre projet Eclipse dans lequel mettre le fichier « birt.properties ».
Ensuite, nous reporterons ces clefs dans le fichier web.xml présent dans WebContent/WEB-INF au niveau des balises context-param portant le même nom.

Pour faire référence à une clef chargée, il suffit d'utiliser la syntaxe suivante ${myKey} voir exemple ci-dessous.

Fichier : web.xml
Sélectionnez
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/webapp_2_4.xsd">
    <display-name>Eclipse BIRT Report Viewer</display-name>
    ...
    <!-- Report engine log level -->
    <context-param>
    <param-name>BIRT_VIEWER_LOG_LEVEL</param-name>
    <param-value>${birt.viewer.2.3.0.log.level}</param-value>
    </context-param>
    ...
</web-app>
III-C-2-a. Configuration

Il reste à configurer le service properties. Pour cela, il faut éditer le fichier propertiesservice. xml présent dans le répertoire deploy de notre serveur. Cherchez les lignes de code suivantes.

 
Sélectionnez
<mbean code="org.jboss.varia.property.SystemPropertiesService" name="jboss:type=Service,name=SystemProperties">

et ajoutez un nouvel attribut correspondant à votre fichier « birt.properties ».

 
Sélectionnez
<attribute name="URLList">${jboss.server.home.dir}/conf/birt.properties</attribute>

Voilà maintenant votre fichier.properties chargera les paires continues dedans à chaque démarrage de JBoss.
Pour finir, ajoutez une cible dans le fichier build.xml pour déployer votre fichier sur JBoss et ajoutez cette dépendance à la cible deploy.

Fichier : build.xml
Sélectionnez
<?xml version="1.0" encoding="UTF-8"?>
<project name="birtV2_3_0" basedir="." default="deploy">
...
    <target name="conf">
        <!-- DEV -->
        <copy todir="${jboss.server}/conf" file="./conf/birt.properties"/>
    </target>
    <target name="deploy" description="deployement" depends="war,conf">
...
</project>

III-C-3. Automatisation du déploiement des reports

Nous allons passer maintenant à la partie déploiement des rapports. Normalement la première fois que vous démarrez le Designer de BIRT, vous devez spécifier un workspace , nous nous servirons de ce chemin pour accéder à l'ensemble des rapports à déployer. Il est important quand vous développez vos rapports de respecter l'arborescence comme ci-dessous.

Niveau 1

Niveau 2

Niveau 3

Niveau 4

workspace

report

.rptdesign

 
   

images

.jpeg,.png,.bmp

 

resource

.properties

 
   

.rptlibrary

 
   

.css

 


Notez birt.workspace le chemin d'accès au workspace de BIRT et ajoutez-le au script ANT.

Fichier : build.xml
Sélectionnez
<?xml version="1.0" encoding="UTF-8"?>
<project name="birtV2_3_0" basedir="." default="deploy">

    <property name="birt.workspace" value="D:/birt-rcp-2_3_0/workspace"/>
    
    <!-- WOKRSPACE -->
    <target name="report" description="deploy report">
        <copy todir="${jboss.server}/data/birt/report">
        <fileset dir="${birt.workspace}/report" />
        </copy>
        <copy todir="${jboss.server}/data/birt/resource">
        <fileset dir="${birt.workspace}/resource" />
        </copy>
    </target>
    
    <target name="deploy" description="deployement" depends="war,conf,report">
</project>

De ce fait, une fois les reports développés, il suffit d'appeler le script ANT avec la cible « report ».

Sous Windows si vous voulez appeler le script ANT avec la cible report, il vous suffit de créer un fichier report.bat avec le contenu suivant :

 
Sélectionnez
@echo off
ant -buildfile build.xml report

précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 J. Sauvebois. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.