Installer Cocoon 2.1.x et FOP 0.9x sur Debian 4.0 Etch
Les version 2.1.x de Cocoon sont fournies avec FOP 0.20.5, une version obsolète de ce processeur FO (cad. For Output, un langage de description de contenu imprimable). Ce guide vous explique comment utiliser FOP 0.92 et supérieur avec Cocoon 2.1.x, et ainsi disposer des dernières améliorations de FOP.
Installation de Java
Cocoon et FOP sont écris en Java. Nous installons donc la machine virtuelle Java de Sun :/usr/bin/apt-get install sun-java5-jdk sun-java5-fonts
Et nous la déclarons comme machine virtuelle java par défaut :
/usr/sbin/update-java-alternatives --set java-1.5.0-sun
Nous devons aussi installer Java Advanced Imaging (JAI), suite à un problème avec la version de FOP fournie par Cocoon, comme décrit dans ce lien :
Pour ce faire, nous téléchargeons les binaires i586 de JAI :
/usr/bin/wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-i586-jdk.bin \
--output-document=/tmp/jai-1_1_3-lib-linux-i586-jdk.bin
Nous rendons exécutable le fichier ainsi obtenu :
/bin/chmod +x /tmp/jai-1_1_3-lib-linux-i586-jdk.bin
Nous nous plaçons dans le dossier contenant le JDK de Sun :
cd /usr/lib/jvm/java-1.5.0-sun/
Et nous le lançons :
/tmp/jai-1_1_3-lib-linux-i586-jdk.bin
Une fois l'installation terminée, vous pouvez effacer le fichier téléchargé :
/bin/rm /tmp/jai-1_1_3-lib-linux-i586-jdk.bin
Préparation de FOP 0.9x
En premier lieu, nous installons le Ant de la distribution Debian :
/usr/bin/apt-get install ant ant-optional
Choisissez ensuite la version de FOP à installer :
FOP_VERSION=0.94
Téléchargez les sources :
/usr/bin/wget http://apache.miroir-francais.fr/xmlgraphics/fop/source/fop-$FOP_VERSION-src.tar.gz \
--output-document=/tmp/fop-$FOP_VERSION-src.tar.gz
Décompressez les sources:
/bin/tar --directory /tmp -xzf /tmp/fop-$FOP_VERSION-src.tar.gz
Placez vous dans le dossier ainsi obtenu :
cd /tmp/fop-$FOP_VERSION
Lancez la compilation :
/usr/bin/ant package
Préparation de XML Graphics Commons
XML Graphics Commons est une dépendance de FOP 0.9x non présente dans Cocoon 2.1.x. Nous devons l'intégrer manuellement.
En premier lieu, choisissez la version de XML Graphics Commons à installer :
XGC_VERSION=1.2
Téléchargez les sources :
/usr/bin/wget http://mirror.ovh.net/ftp.apache.org/dist/xmlgraphics/commons/source/xmlgraphics-commons-$XGC_VERSION-src.tar.gz \
--output-document=/tmp/xmlgraphics-commons-$XGC_VERSION-src.tar.gz
Décompressez les :
/bin/tar --directory /tmp -xzf /tmp/xmlgraphics-commons-$XGC_VERSION-src.tar.gz
Placez vous dans le dossier ainsi obtenu :
cd /tmp/xmlgraphics-commons-$XGC_VERSION
Lancez la compilation :
/usr/bin/ant package
Préparation de Cocoon 2.1.x
Ensuite, nous modifions les sources de Cocoon pour intégrer les deux Jar que nous venons de préparer. Commencez par renseigner la version de Cocoon à préparer :
VERSION=2.1.11
Ensuite, téléchargez les sources :
/usr/bin/wget http://apache.multidist.com/cocoon/cocoon-$VERSION-src.tar.gz \
--output-document=/tmp/cocoon-$VERSION-src.tar.gz
Décompressez le fichier ainsi obtenu :
/bin/tar --directory /tmp/ -xzf /tmp/cocoon-$VERSION-src.tar.gz
Nous remplaçons le Jar de FOP 0.20.5 car celui de FOP 0.9x :
/bin/rm /tmp/cocoon-$VERSION/lib/optional/fop-0.20.5.jar
/bin/cp /tmp/fop-$FOP_VERSION/build/fop.jar /tmp/cocoon-$VERSION/lib/optional/fop-$FOP_VERSION.jar
Nous ajoutons le Jar de Xml Graphics Commons :
/bin/cp /tmp/xmlgraphics-commons-$XGC_VERSION/build/xmlgraphics-commons-$XGC_VERSION.jar /tmp/cocoon-$VERSION/lib/optional/
Nous modifions le fichier jars.xml listant les Jar disponibles pour Cocoon :
/bin/sed -i \
-e "s/fop-0.20.5/fop-$FOP_VERSION/g" \
-e "/<\/jars>/i\
<file>\\
<title>XML Graphics Commons</title>\\
<description>\\
XML Graphics Commons jar, needed by FOP 0.94\\
</description>\\
<used-by>FOP serializer (fop block)</used-by>\\
<lib>optional/xmlgraphics-commons-$XGC_VERSION.jar</lib>\\
<homepage>http://xmlgraphics.apache.org/</homepage>\\
</file>\\
" /tmp/cocoon-$VERSION/lib/jars.xml
Nous modifions le fichier gump.xml pour intégrer le Jar XML Graphics Commons dans le WAR final :
/bin/sed -i -e '/<library name="fop"\/>/a\
<library name="xmlgraphics-commons"/>' /tmp/cocoon-$VERSION/gump.xml
Nous téléchargeons la version du FOPSerializer adaptée à FOP 0.9x (c'est une adaptation du FOPNGSerializer de Cocoon 2.2.x) :
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-cocoon-2-1-x-et-fop-0-9x-sur-debian-4-0-etch/fopserializer.java \
--output-document=/tmp/cocoon-$VERSION/src/blocks/fop/java/org/apache/cocoon/serialization/FOPSerializer.java
Placez-vous dans le dossier ainsi obtenu :
cd /tmp/cocoon-$VERSION
Et construisez le fichier WAR de Cocoon :
/bin/sh build.sh war
Installation avec Tomcat 5
Nous installons Cocoon dans un environnement Tomcat 5. En premier lieu, installez Tomcat :
/usr/bin/apt-get install tomcat5
Copiez maintenant le fichier WAR de Cocoon dans le dossier adéquat de votre installation de Tomcat :
/bin/cp /tmp/cocoon-$VERSION/build/cocoon/cocoon.war /var/lib/tomcat5/webapps/
Téléchargez le fichier de configuration des polices de sécurité de Tomcat pour Cocoon :
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-cocoon-2-1-x-et-fop-0-9x-sur-debian-4-0-etch/05cocoon-policy \
--output-document=/etc/tomcat5/policy.d/05cocoon.policy
Redémarrez Tomcat 5 pour prendre en compte la nouvelle configuration :
/etc/init.d/tomcat5 restart
Cocoon est alors disponible via l'URL : http://localhost:8180/cocoon/
Nettoyage
Vous pouvez maintenant supprimer les fichiers téléchargés et les sources :
/bin/rm /tmp/fop-$FOP_VERSION-src.tar.gz
/bin/rm -r /tmp/fop-$FOP_VERSION
/bin/rm /tmp/xmlgraphics-commons-$XGC_VERSION-src.tar.gz
/bin/rm -r /tmp/xmlgraphics-commons-$XGC_VERSION
/bin/rm /tmp/cocoon-$VERSION-src.tar.gz
/bin/rm -r /tmp/cocoon-$VERSION
Remerciements
- Merci aux développeurs de Tomcat.
- Merci aux développeurs de Cocoon.
- Merci aux développeurs de XML Graphics Commons.
- Merci aux développeurs de FOP.