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 :
- Le projet sous forme d'archive ;
 - 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).
 
<?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.
<?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.
<mbean code="org.jboss.varia.property.SystemPropertiesService" name="jboss:type=Service,name=SystemProperties">et ajoutez un nouvel attribut correspondant à votre fichier « birt.properties ».
<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. 
<?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. 
<?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 :
@echo off
ant -buildfile build.xml report

