+++ /dev/null
-
-# Exclusion des fichiers IntelliJ
-.idea
-**.iml
-
-# Exclusion des plugin grails
-**plugins/
-
-# Exclusion des fichiers compilés
-**target/
-
-
-**.tld
-**jquery/
-
-# Exclusion de tous les logs
-**.log
-
-src/services-commons/eliot-commons/eliot-app-plugin/descripteur
-src/services-commons/eliot-commons/eliot-app-plugin/plugin.xml
-
-# Exclusion des rapports générés par les tests d'intégration d'eliot-aaf-import
-src/services-commons/eliot-commons/eliot-aaf-import/rapports/
-
-# Exclusion des pattern **plugins & **jquery sur les dossiers suivants :
-!src/services-commons/eliot-commons/eliot-app-plugin/web-app/css/blueprint/plugins
-!src/services-commons/eliot-commons/eliot-app-plugin/web-app/js/commons/lib/extjs-3.0.0/adapter/jquery
-!src/services-commons/eliot-commons/eliot-app-plugin/web-app/js/commons/lib/jquery
-
-
--- /dev/null
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.sonatype.mavenbook</groupId>
+ <artifactId>documentations</artifactId>
+ <version>2.9.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>guide-exploitation</artifactId>
+ <packaging>jar</packaging>
+ <name>Guide d'exploitation eliot</name>
+
+ <build>
+ <finalName>book</finalName>
+ <resources>
+
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>docbook/*.xml</include>
+ <include>xsl/html_chunk.xsl</include>
+ <include>xsl/fopdf.xsl</include>
+ </includes>
+ </resource>
+
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>docbook/*.xml</exclude>
+ <exclude>xsl/html_chunk.xsl</exclude>
+ <exclude>xsl/fopdf.xsl</exclude>
+ </excludes>
+ </resource>
+
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <escapeString>\</escapeString>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.agilejava.docbkx</groupId>
+ <artifactId>docbkx-maven-plugin</artifactId>
+ <version>2.0.9</version>
+ <dependencies>
+ <dependency>
+ <groupId>docbook</groupId>
+ <artifactId>docbook-xml</artifactId>
+ <version>4.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.fop</groupId>
+ <artifactId>fop-pdf-images</artifactId>
+ <version>1.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.fop</groupId>
+ <artifactId>fop-pdf-images-res</artifactId>
+ <version>1.3</version>
+ <classifier>res</classifier>
+ </dependency>
+ <dependency>
+ <groupId>pdfbox</groupId>
+ <artifactId>pdfbox</artifactId>
+ <version>0.7.4-dev</version>
+ <classifier>dev</classifier>
+ </dependency>
+ </dependencies>
+ <executions>
+
+ <execution>
+ <id>generate-pdf</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>generate-pdf</goal>
+ </goals>
+ <configuration>
+ <imgSrcPath>${basedir}/target/classes/docbook/
+ </imgSrcPath>
+ <highlightSource>1</highlightSource>
+ <foCustomization>
+ ${basedir}/target/classes/xsl/fopdf.xsl
+ </foCustomization>
+ <useExtensions>1</useExtensions>
+ <bodyFontFamily>TimesNewRoman</bodyFontFamily>
+ <monospaceFontFamily>CourierNew
+ </monospaceFontFamily>
+ <titleFontFamily>ArialBold</titleFontFamily>
+ <fonts>
+ <font>
+ <name>ArialBold</name>
+ <style>normal</style>
+ <weight>normal</weight>
+ <embedFile>
+ ${basedir}/src/fonts/ArialBold.ttf
+ </embedFile>
+ <metricsFile>
+ ${basedir}/target/fonts/ArialBold-metrics.xml
+ </metricsFile>
+
+ </font>
+ <font>
+ <name>CourierNew</name>
+ <style>normal</style>
+ <weight>normal</weight>
+ <embedFile>
+ ${basedir}/src/fonts/Courier.ttf
+ </embedFile>
+ <metricsFile>
+ ${basedir}/target/fonts/Courier-metrics.xml
+ </metricsFile>
+
+ </font>
+ <font>
+ <name>CourierNew</name>
+ <style>normal</style>
+ <weight>bold</weight>
+ <embedFile>
+ ${basedir}/src/fonts/Courier-Bold.ttf
+ </embedFile>
+ <metricsFile>
+ ${basedir}/target/fonts/Courier-Bold-metrics.xml
+ </metricsFile>
+
+ </font>
+ <font>
+ <name>CourierNew</name>
+ <style>italic</style>
+ <weight>normal</weight>
+ <embedFile>
+ ${basedir}/src/fonts/Courier-Oblique.ttf
+ </embedFile>
+ <metricsFile>
+ ${basedir}/target/fonts/Courier-Oblique-metrics.xml
+ </metricsFile>
+
+ </font>
+ <font>
+ <name>TimesNewRoman</name>
+ <style>normal</style>
+ <weight>normal</weight>
+ <embedFile>
+ ${basedir}/src/fonts/TimesNewRoman.ttf
+ </embedFile>
+ <metricsFile>
+ ${basedir}/target/fonts/TimesNewRoman-metrics.xml
+ </metricsFile>
+
+ </font>
+ </fonts>
+ </configuration>
+ </execution>
+
+ </executions>
+ <configuration>
+ <sourceDirectory>${basedir}/target/classes/docbook
+ </sourceDirectory>
+ <includes>public-book.xml</includes>
+ <xincludeSupported>true</xincludeSupported>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.agilejava.docbkx</groupId>
+ <artifactId>docbkx-fop-support</artifactId>
+ <version>2.0.9</version>
+ <executions>
+ <execution>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <ansi>true</ansi>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.sonatype.book</groupId>
+ <artifactId>book-sitemesh-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>mesh-velocity</id>
+ <phase>site</phase>
+ <goals>
+ <goal>mesh-velocity</goal>
+ </goals>
+ <configuration>
+ <velocityTemplate>src/main/resources/vm/site.vm
+ </velocityTemplate>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.cjcook</groupId>
+ <artifactId>pdf-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>concat-pdfs</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>concatenate</goal>
+ </goals>
+ <configuration>
+ <outputDir>${basedir}/target</outputDir>
+ <outputFilename>guide-exploitation.pdf</outputFilename>
+ <pdfs>
+ <pdf>${basedir}/src/main/resources/pdf/couverture.pdf</pdf>
+ <pdf>${project.build.directory}/docbkx/pdf/public-book.pdf</pdf>
+ </pdfs>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-pdf</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <copy tofile="${project.build.directory}/site/pdf/guide-exploitation.pdf">
+ <fileset
+ file="${project.build.directory}/docbkx/pdf/public-book.pdf"/>
+ </copy>
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.0.1</version>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>project-team</report>
+ <report>license</report>
+ <report>mailing-list</report>
+ <report>summary</report>
+ <report>cim</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
+ <profiles>
+ <profile>
+ <id>publish-external</id>
+ <distributionManagement>
+ <site>
+ <id>sonatype-site</id>
+ <name>Sonatype Book Examples</name>
+ <url>
+ scp://deployer@svn.sonatype.com/var/www/domains/sonatype.com/books/htdocs/maven-book/
+ </url>
+ </site>
+ </distributionManagement>
+ <properties>
+ <sonatype.site>
+ scp://deployer@svn.sonatype.com/var/www/domains/sonatype.com/books/htdocs/
+ </sonatype.site>
+ <nexus.book.baseurl>http://books.sonatype.com/nexus-book/
+ </nexus.book.baseurl>
+ <m2eclipse.book.baseurl>
+ http://books.sonatype.com/m2eclipse-book/
+ </m2eclipse.book.baseurl>
+ <scribd.doc.id>17574056</scribd.doc.id>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cjcook</groupId>
+ <artifactId>scribd-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>publish-to-scribd</id>
+ <phase>install</phase>
+ <goals>
+ <goal>publish</goal>
+ </goals>
+ <configuration>
+ <apiKey>${scribd.api.key}</apiKey>
+ <docId>${scribd.doc.id}</docId>
+ <pdf>
+ ${basedir}/target/guide-exploitation.pdf
+ </pdf>
+ <access>public</access>
+ <downloadAndDrm>view-only</downloadAndDrm>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>stage-external</id>
+ <distributionManagement>
+ <site>
+ <id>sonatype-site</id>
+ <name>Sonatype Book Examples</name>
+ <url>
+ scp://deployer@svn.sonatype.com/var/www/domains/sonatype.com/books/htdocs/maven-book-stage/
+ </url>
+ </site>
+ </distributionManagement>
+ <properties>
+ <sonatype.site>
+ scp://deployer@svn.sonatype.com/var/www/domains/sonatype.com/books/htdocs/
+ </sonatype.site>
+ <scribd.doc.id>18083560</scribd.doc.id>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cjcook</groupId>
+ <artifactId>scribd-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>publish-to-scribd</id>
+ <phase>install</phase>
+ <goals>
+ <goal>publish</goal>
+ </goals>
+ <configuration>
+ <apiKey>${scribd.api.key}</apiKey>
+ <docId>${scribd.doc.id}</docId>
+ <pdf>
+ ${basedir}/target/guide-exploitation.pdf
+ </pdf>
+ <access>private</access>
+ <downloadAndDrm>download-pdf
+ </downloadAndDrm>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>Annexes</title>
+ <section>
+
+ <title>Fichiers de configuration pour Tomcat</title>
+
+ <section>
+ <title>server.xml</title>
+ <para>Ce fichier devra contenir les informations suivantes :</para>
+ <xi:include href="annexes/server.xml"/>
+ </section>
+
+ <section>
+ <title>context.xml</title>
+ <para>Ce fichier devra contenir les informations suivantes :</para>
+ <xi:include href="annexes/context.xml"/>
+ </section>
+
+ </section>
+
+ <section>
+
+ <title>Fichiers de configuration pour JackRabbit</title>
+
+ <section>
+ <title>bootstrap.properties</title>
+ <para>Le contenu de ce fichier devra être le suivant :</para>
+ <xi:include href="annexes/bootstrap.properties.xml"/>
+ </section>
+
+ <section>
+ <title>repository.xml</title>
+ <para>Le contenu de ce fichier doit être le suivant :</para>
+ <xi:include href="annexes/repository.xml"/>
+ </section>
+
+ <section>
+ <title>ns_idx.properties</title>
+ <para>Ce fichier contiendra tous les éléments suivants :</para>
+ <xi:include href="annexes/ns_idx.properties.xml"/>
+ </section>
+
+ <section>
+ <title>nd_reg.properties</title>
+ <para>Ce fichier contiendra tous les éléments suivants :</para>
+ <xi:include href="annexes/nd_reg.properties.xml"/>
+ </section>
+
+ <section>
+ <title>custom_nodetypes.xml</title>
+ <para>Ce fichier contiendra les éléments suivants :</para>
+ <xi:include href="annexes/custom_nodetypes.xml"/>
+ </section>
+
+ <section>
+ <title>workspace.xml</title>
+ <para>Le contenu de ce fichier doit être le suivant :</para>
+ <xi:include href="annexes/workspace.xml"/>
+ </section>
+
+ </section>
+
+
+ <section>
+ <title>Fichier de configuration pour eliot-aaf-import</title>
+ <para>Un fichier de configuration est nécessaire pour l'application externe dont l'objectif est de charger
+ l'annuaire eliot.
+ </para>
+
+ <xi:include href="annexes/eliot-aaf-import.xml"/>
+
+ </section>
+
+ <section>
+ <title>Configuration des fournisseurs et services de SMS</title>
+ <para>La définition des fournisseurs de SMS, de leurs services et l'affectation d'un fournisseur à un
+ établissement se fait à l'aide de Webservices mis en place sur l'application eliot-scolarite.
+ </para>
+ <para>Un compte unique permet l'accès aux webservices REST des modules eliot. Le login et le mot de passe sont
+ définis dans le fichier de configuration commun des applications (voir point 14.2), à l'aide des variables
+ eliot.api.login et eliot.api.password.
+ </para>
+ <section>
+ <title>Créer ou modifier un ou plusieurs fournisseurs de SMS</title>
+ <section>
+ <title>Requête</title>
+ <para>Url</para>
+ <para>Le webservice est accessible à l'adresse suivante :</para>
+ <filename>/eliot-scolarite/echanges/v2/wssmsprovider/smsproviders</filename>
+ <para>L'url doit être interrogée avec la méthode « POST».</para>
+
+ <para>Paramètres</para>
+ <para>Les paramètres sont à transmettre dans le « Body » de la requête sous la forme d'un  attribut
+ infos qui contient un objet au format JSON appelé « fournisseurs ».
+ </para>
+ <para>Celui-ci est un tableau correspondant à des enregistrements de fournisseurs.</para>
+ <para>Chaque enregistrement fournisseur est un objet avec les couples « nom:valeur » suivants :</para>
+ <orderedlist>
+ <listitem>
+ <para>nom : ' nom_du_fournisseur '</para>
+ </listitem>
+ <listitem>
+ <para>urlEnvoiHttp : 'url_envoi_http'</para>
+ </listitem>
+ <listitem>
+ <para>urlEnvoiHttps : 'url_envoi_https'</para>
+ </listitem>
+ <listitem>
+ <para>urlSuiviHttp : 'url_suivi_http'</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Exemple de paramètres :</para>
+
+ <xi:include href="annexes/fournisseurs.xml"/>
+
+ </section>
+
+ <section>
+ <title>Réponse</title>
+ <para>Si la requête a pu être correctement traitée, le webservice retourne une réponse HTTP 200 OK. Le
+ corps contient un message <success/> confirmant le bon déroulement des opérations. les
+ fournisseurs ont été créés ou modifiés dans la base eliot_scolarite.
+ </para>
+ <para>Si la requête contenait des informations inexactes, ou s'il manquait certaines informations
+ obligatoires, le fournisseur en cause n'est pas enregistré, les autres fournisseurs ne comportant
+ pas d'erreur sont enregistrés.
+ </para>
+ <para>Le WebService retourne alors une réponse 200 OK. Le corps du message contient la balise <errors></errors>,
+ contenant elle-même la balise du fournisseur posant problème <fournisseurNom></fournisseurNom>
+ dans laquelle se trouve les message d'erreurs.
+ </para>
+ <para>Si le paramètre « infos »  ne contient pas un JSON valide ou est manquant, une réponse 400 BAD
+ REQUEST est retournée.
+ </para>
+ <para>En cas d'erreur imprévue, le webservice retourne une réponse 500 INTERNAL SERVER ERROR. Le corps
+ de la requête contient la stacktrace.
+ </para>
+ </section>
+ </section>
+ <section>
+ <title>Rattacher un ou plusieurs fournisseur(s) de SMS à un établissement</title>
+ <section>
+ <title>Requête</title>
+ <para>Url</para>
+ <para>Le webservice est accessible à l'adresse suivante :</para>
+ <para>/eliot-scolarite/echanges/v2/wssmsprovider/smsforetab</para>
+ <para>L'url doit être interrogée avec la méthode « POST ».</para>
+
+ <para>Paramètres</para>
+ <para>Les paramètres sont à transmettre dans le « Body » de la requête sous la forme d'un  attribut
+ infos qui contient un objet au format JSON appelé « etabFournisseurs ».
+ </para>
+ <para>Celui-ci est un tableau d'objets correspondant à un triplet : Etablissement / SmsFournisseur /
+ SmsFournisseurEtablissement
+ </para>
+ <para>Chaque triplet est un objet avec les couples « nom:valeur » suivants :</para>
+ <orderedlist>
+ <listitem>
+ <para>rne : ' uai_de_l'Etablissement '</para>
+ </listitem>
+ <listitem>
+ <para>fournisseurNom : 'nom_du_fournisseur'</para>
+ </listitem>
+ <listitem>
+ <para>idsms : 'login'</para>
+ </listitem>
+ <listitem>
+ <para>pwdsms : 'mot_de_passe'</para>
+ </listitem>
+ <listitem>
+ <para>smsIdentifiantsCodes : '?'</para>
+ </listitem>
+ <listitem>
+ <para>smsHttpsEnvoi : 'is_url_envoi_https'</para>
+
+ </listitem>
+ </orderedlist>
+ <para>Exemple de paramètres :</para>
+
+ <xi:include href="annexes/etabfournisseurs.xml"/>
+
+ </section>
+ <section>
+ <title>Réponse</title>
+ <para>Si la requête a pu être correctement traitée, le webservice retourne une réponse HTTP 200 OK. Le
+ corps contient un message <success/>. Le fournisseur a été rattaché à l'établissement.
+ </para>
+ <para>Si la requête contenait des informations inexactes,ou qu'il manque certaines informations
+ obligatoires, le rattachement en cause n'est pas enregistré, les autres rattachements ne comportant
+ pas d'erreur sont enregistrés.
+ </para>
+ <para>Le WebService retourne alors une réponse 200 OK. Le corps du message contient la balise <errors></errors>,
+ contenant elle-même la balise de l'établissement posant problème <etablissementRne></etablissementRne>
+ dans laquelle se trouve les message d'erreurs.
+ </para>
+
+ <para>Si le paramètre « infos »  ne contient pas un JSON valide ou est manquant, une réponse 400 BAD
+ REQUEST est retournée.
+ </para>
+ <para>En cas d'erreur imprévue, le webservice retourne une réponse 500 INTERNAL SERVER ERROR. Le corps
+ de la requête contient la stacktrace.
+ </para>
+ </section>
+ </section>
+ <section>
+ <title>
+ Supprimer le rattachement d'un ou plusieurs fournisseur(s) à son établissement
+ </title>
+ <section>
+ <title>Requête</title>
+ <para>Url</para>
+ <para>Le webservice est accessible à l'adresse suivante :</para>
+ <para>/eliot-scolarite/echanges/v2/wssmsprovider/smssuppforetab</para>
+ <para>L'url doit être interrogée avec la méthode « POST ».</para>
+
+ <para>Paramètres</para>
+ <para>Les paramètres sont à transmettre dans le « Body » de la requête sous la forme d'un  attribut
+ infos qui contient un objet au format JSON appelé « etabFournisseurs ».
+ </para>
+ <para>Celui-ci est un tableau correspondant à des enregistrements d'établissements pour lesquels il faut
+ supprimer le rattachement à un fournisseur
+ </para>
+ <para>Chaque enregistrement d'établissement est un objet avec le couple « nom:valeur » suivant :</para>
+ <orderedlist>
+ <listitem>
+ <para>rne : ' uai_de_l'Etablissement '</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Exemple de paramètre JSON :</para>
+
+ <xi:include href="annexes/etabfournisseurs2.xml"/>
+
+ </section>
+ <section>
+ <title>Réponse</title>
+ <para>Si la requête a pu être correctement traitée, le webservice retourne une réponse HTTP 200 OK. Le
+ corps contient un message <success/>. Le rattachement du fournisseur à l'établissement est
+ supprimé (l'historique du rattachement est conservé).
+ </para>
+ <para>Si la requête contenait des informations inexactes,ou qu'il manque certaines informations
+ obligatoires, le rattachement en cause n'est pas enregistré, les autres rattachements ne comportant
+ pas d'erreur sont enregistrés.
+ </para>
+ <para>Le WebService retourne alors une réponse 200 OK. Le corps du message contient la balise <errors></errors>,
+ contenant elle-même la balise de l'établissement posant problème <etablissementRne></etablissementRne>
+ dans laquelle se trouve les message d'erreurs.
+ </para>
+ <para>Si le paramètre « infos »  ne contient pas un JSON valide ou est manquant, une réponse 400 BAD
+ REQUEST est retournée.
+ </para>
+ <para>En cas d'erreur imprévue, le webservice retourne une réponse 500 INTERNAL SERVER ERROR. Le corps
+ de la requête contient la stacktrace.
+ </para>
+ </section>
+ </section>
+ <section>
+ <title>
+ Récupérer les paramètres d'un fournisseur de SMS pour un établissement
+ </title>
+ <section>
+ <title>Requête</title>
+ <para>URL</para>
+ <para>Le webservice est accessible à l'adresse suivante :</para>
+ <filename>/eliot-scolarite/echanges/v2/wssmsprovider/parametresetab/<uai></filename>
+ <para>L'url doit être interrogée avec la méthode « GET».</para>
+ <para><uai> (obligatoire) : uai de l'établissement pour lequel on recherche les paramètres</para>
+ </section>
+ <section>
+ <title>Réponse</title>
+ <para>La réponse au format JSON :</para>
+
+ <xi:include href="annexes/reponse.xml"/>
+
+ <para>Si la requête a pu être correctement traitée, le webservice retourne une réponse HTTP 200 OK. Le
+ corps contient les informations désirées au format JSON, sur les paramètres  du Fournisseur SMS
+ demandé.
+ </para>
+ <para>En cas d'erreur imprévue, le webservice retourne une réponse 500 INTERNAL SERVER ERROR. Le corps
+ de la requête contient la stacktrace.
+ </para>
+ </section>
+ </section>
+ </section>
+</chapter>
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/bootstrap.properties" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting language="xml" xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/context.xml" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting language="xml" xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/custom_nodetypes.xml" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting language="java" xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/eliot-aaf-import.groovy" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/etabfournisseurs.post" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/etabfournisseurs2.post" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+#bootstrap properties for the repository startup servlet.
+#Mon Sep 20 11:31:33 CEST 2010
+
+java.naming.factory.initial=org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory
+repository.home=<dossier_jackrabbit>
+rmi.enabled=false
+repository.config=<dossier_jackrabbit>
+repository.xmlrepository.name=jackrabbit.repository
+rmi.host=localhost
+java.naming.provider.url=http://www.apache.org/jackrabbit
+jndi.enabled=true
+rmi.port=0
\ No newline at end of file
--- /dev/null
+<context>
+ <!-- ... -->
+ <ResourceLink name="jdbc/ELIOT_DOCS"
+ global="jdbc/ELIOT_DOCS"
+ type="javax.sql.DataSource"/>
+
+ <ResourceLink name="jdbc/ELIOT_SCOLARITE"
+ global="jdbc/ELIOT_SCOLARITE"
+ type="javax.sql.DataSource"/>
+
+ <ResourceLink name="jdbc/JCR"
+ global="jdbc/JCR"
+ type="javax.sql.DataSource"/>
+
+ <!-- Bases utilisées par le portail Lilie -->
+ <ResourceLink name="jdbc/ANNUAIRE"
+ global="jdbc/ANNUAIRE"
+ type="javax.sql.DataSource"/>
+
+ <ResourceLink name="jdbc/ADMINISTRATION"
+ global="jdbc/ADMINISTRATION"
+ type="javax.sql.DataSource"/>
+ <!-- ... -->
+</context>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<nodeTypes
+ xmlns:eliot="http://www.fylab.com/eliot"
+ xmlns:fn="http://www.w3.org/2005/xpath-functions"
+ xmlns:fn_old="http://www.w3.org/2004/10/xpath-functions"
+ xmlns:jcr="http://www.jcp.org/jcr/1.0"
+ xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
+ xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
+ xmlns:rep="internal"
+ xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:item" primaryItemName="">
+ <propertyDefinition
+ autoCreated="false" isFullTextSearchable="true" isQueryOrderable="true" mandatory="true"
+ multiple="false"
+ name="eliot:date_modification"
+ onParentVersion="COPY"
+ protected="false"
+ requiredType="Date"/>
+ <propertyDefinition autoCreated="false" isFullTextSearchable="true" isQueryOrderable="true" mandatory="true"
+ multiple="false" name="eliot:proprietaire_id" onParentVersion="COPY" protected="false"
+ requiredType="String"/>
+ <propertyDefinition autoCreated="false" isFullTextSearchable="true"
+ isQueryOrderable="true" mandatory="true" multiple="true" name="eliot:auteurs_ids"
+ onParentVersion="COPY"
+ protected="false" requiredType="String"/>
+
+ <propertyDefinition autoCreated="false" isFullTextSearchable="true" isQueryOrderable="true"
+ mandatory="false" multiple="false" name="eliot:item_description" onParentVersion="COPY"
+ protected="false"
+ requiredType="String"/>
+ </nodeType>
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:racine_corbeille" primaryItemName=""/>
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:racine_boite_depot" primaryItemName=""/>
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:racine_espace_partage" primaryItemName=""/>
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:racine_utilisateurs" primaryItemName=""/>
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:item_partage" primaryItemName="">
+ <supertypes>
+ <supertype>eliot:item</supertype>
+ </supertypes>
+ <propertyDefinition autoCreated="false" isFullTextSearchable="true" isQueryOrderable="true"
+ mandatory="true"
+ multiple="true"
+ name="eliot:consultation_autorites_ids"
+ onParentVersion="COPY"
+ protected="false" requiredType="String"/>
+ <propertyDefinition autoCreated="false" isFullTextSearchable="true" isQueryOrderable="true"
+ mandatory="true"
+ multiple="true"
+ name="eliot:modification_autorites_ids"
+ onParentVersion="COPY"
+ protected="false" requiredType="String"/>
+ </nodeType>
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:racine_organisation" primaryItemName=""/>
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:racine_espace_perso" primaryItemName=""/>
+ <nodeType hasOrderableChildNodes="false" isAbstract="false" isMixin="true" isQueryable="true"
+ name="eliot:fichier_joint" primaryItemName="">
+ <propertyDefinition autoCreated="false" isFullTextSearchable="true" isQueryOrderable="true"
+ mandatory="false" multiple="false" name="eliot:nom_fichier_joint" onParentVersion="COPY"
+ protected="false"
+ requiredType="String"/>
+ </nodeType>
+</nodeTypes>
--- /dev/null
+eliot {
+
+// Mise en place de la restriction dans une requête de suppression :
+// si "actif", les acteurs en accès restreint sinon ils sont désactivés
+ accessRestreint {
+ actif = true
+ duree = 60
+ }
+ aaf {
+ anneescolaire {
+// Indique l'annee scolaire en cours au moment de l'import
+ code = "2010-2011"
+// Indique si il faut cree l'annee scolaire si elle n'existe pas dans l'annuaire de l'ENT
+ creesimanquante = true
+ }
+ files {
+ traitedejatraites = true
+ pattern {
+// Pattern apparaissant dans le nom du fichier correspondant a un Complet
+ complet = "_Complet"
+// Pattern apparaissant dans le nom du fichier correspondant a un Complet
+ delta = "_Delta"
+// Pattern apparaissant dans le nom du fichier contenant les structures a importer de
+// type PorteurENT. Ce pattern doit permettre d'itendifier de maniere unique le fichier Ã
+// importer
+ porteurent = "_PorteurENT"
+// Pattern apparaissant dans le nom du fichier contenant les structures a importer
+// de type EtabEducNat. Ce pattern doit permettre d'itendifier de maniere unique
+// le fichier a importer
+ etabeducnat = "_EtabEducNat"
+// Pattern apparaissant dans le nom du fichier contenant les personnes a importer
+// de type PersRelEleve. Ce pattern doit permettre d'itendifier de maniere unique
+// le fichier a importer
+ persreleleve = "_PersRelEleve"
+
+// Pattern apparaissant dans le nom du fichier contenant les personnes a importer
+// de type Eleve. Ce pattern doit permettre d'itendifier de maniere unique
+// le fichier a importer
+ eleve = "_Eleve"
+// Pattern apparaissant dans le nom du fichier contenant les personnes a importer
+// de type PersEducNat. Ce pattern doit permettre d'itendifier de maniere unique
+// le fichier a importer
+ perseducnat = "_PersEducNat"
+// Pattern apparaissant dans le nom du fichier contenant les personnes importer
+// de type PersHorsAAF. Ce pattern doit permettre d'itendifier de maniere unique
+// le fichier a importer
+ horsaaf = "_PersHorsAAF"
+// Pattern apparaissant dans le nom du fichier contenant les personnes a importer
+// de type PersAL. Ce pattern doit permettre d'itendifier de maniere unique
+// le fichier a importer
+ adminlocaux = "_PersAL"
+ }
+// Flag indiquant si les porteurs ent sont importes uniquement avec des complets
+ porteurent.completsuniquement = true
+// Flag indiquant si les etablissements sont importes uniquement avec des complets
+ etabeducnat.completsuniquement = false
+// Flag indiquant si les responsables eleves sont importes uniquement avec des complets
+ persreleleve.completsuniquement = false
+// Flag indiquant si les eleves sont importes uniquement avec des complets
+ eleve.completsuniquement = false
+// Flag indiquant si les personnels educ nat sont importes uniquement avec des complets
+ perseducnat.completsuniquement = false
+// Flag indiquant si les pers hors AAF sont importes uniquement avec des complets
+ horsaaf.completsuniquement = true
+// Flag indiquant si les admins locaux sont importes uniquement avec des complets
+ adminlocaux.completsuniquement = true
+// Le format de date par defaut correspondant a celui specifie dans le cahier des charges de l'AAF
+
+ date.format = "dd/MM/yyyy"
+ }
+ personne {
+// Flag indiquant si une requete d'ajout d'une personne doit etre rejetee si le
+// (eliot.login) login de la personne n'est pas fourni
+//
+ login.rejetsiabsent = false
+// Flag indiquant si un login doit etre genere quand il n'est pas present pour
+// une personne dans les fichiers imports
+// Si le flag est positionne a true, le login fourni par l'implemantation par
+// defaut est l'identifiant de jointure si il exsite, l'identifiant de jointure
+// eliot sinon.
+// Ce flag positionne a true n'est actif que si le flag
+// "eliot.aaf.login.rejetsiabsent" est positinne a false
+//
+ login.generationsiabsent = false
+ }
+ rapport {
+// Permet d'indiquer la classe a utiliser pour le formatage du rapport
+ formatter = "org.lilie.services.eliot.aaf.utils.CustomHTMLFormatter"
+// flag indiquant si le rapport ne doit faire apparaitre que les informations
+// sur les echecs durant la phase d'extraction
+ extraction.echecsuniquement = true
+// flag indiquant si le rapport doit faire apparaitre les transformations
+// avec alertes durant la phase d'extraction
+ transformation.alertes = true
+// flag indiquant si le rapport doit faire apparaitre toutes les transformations
+// (succes, echecs, alertes)
+ transformation.toutes = false
+// flag indiquant si le rapport doit faire apparaitre tous les chargement
+// (succes, echecs, alertes) ou uniquement echecs et alertes
+ chargement.tous = false
+
+ }
+// Informations de connexion a la base
+//
+ datasource {
+ servername = '' < serveur_postgres > ''
+ port = "5432"
+ username = "utilisateur"
+ password = "mot_de_passe"
+ }
+ }
+}
+environments {
+ 'tests-unitaires' {
+ eliot {
+ aaf {
+ files {
+// Chemin vers le dossier contenant les fichiers
+ rootpath = "<dossier_import_aaf_fichiers_tests>"
+// prefixes des fichiers avec lien vers code porteur
+ prefixes = [
+ PortTest: "PortTest"
+ ]
+ }
+ personne {
+// Flag indiquant si il faut deduire les responsables eleves a partir de l'attribut
+// ENTEleveParents quand l'attribut ENTEleveAutoriteParentale n'est pas renseigne.
+// Attention, l'activiation de ce flag implique le non respect des attentes du MEN
+// en terme de determination des responsables eleves
+ autoriteparentale.responsablesdeduitsiabsent = true
+ }
+ rapport {
+// Chemin vers le dossier destinataires des rapports
+
+ rootpath = "<dossier_import_aaf_rapports_tests>"
+// flag indiquant si le rapport ne doit faire apparaitre que les informations
+// sur les echecs durant la phase d'extraction
+ extraction.echecsuniquement = true
+// flag indiquant si le rapport doit faire apparaitre les transformations
+// avec alertes durant la phase d'extraction
+ transformation.alertes = true
+// flag indiquant si le rapport doit faire apparaitre toutes les transformations
+// (succes, echecs, alertes)
+ transformation.toutes = false
+// flag indiquant si le rapport doit faire apparaitre tous les chargement
+// (succes, echecs, alertes) ou uniquement echecs et alertes
+//
+ chargement.tous = false
+ }
+// Informations de connexion a la base
+ datasource {
+ databasename = "eliot-scolarite-aaf-tests-unitaires"
+ }
+ }
+ }
+ }
+ integration {
+ eliot {
+ aaf {
+ files {
+// Chemin vers le dossier contenant les fichiers
+ rootpath = "<dossier_import_aaf_fichiers>"
+// prefixes des fichiers avec lien vers code porteur
+ prefixes = [
+ Lilie: "CRIF",
+ CRIF: "CRIF",
+ Celia: "CG93",
+ CG93: "CG93",
+ ]
+ }
+ personne {
+// Flag indiquant si il faut deduire les responsables eleves a partir de l'attribut
+// ENTEleveParents quand l'attribut ENTEleveAutoriteParentale n'est pas renseigne.
+// Attention, l'activiation de ce flag implique le non respect des attentes du MEN
+// en terme de determination des responsables eleves
+ autoriteparentale.responsablesdeduitsiabsent = false
+ }
+ rapport {
+// Chemin vers le dossier destinataires des rapports
+ rootpath = "<dossier_import_aaf_rapports>"
+// flag indiquant si le rapport ne doit faire apparaitre que les informations
+// sur les echecs durant la phase d'extraction
+ extraction.echecsuniquement = true
+// flag indiquant si le rapport doit faire apparaitre les transformations
+// avec alertes durant la phase d'extraction
+ transformation.alertes = true
+// flag indiquant si le rapport doit faire apparaitre toutes les transformations
+// (succes, echecs, alertes)
+ transformation.toutes = false
+// flag indiquant si le rapport doit faire apparaitre tous les chargement
+// (succes, echecs, alertes) ou uniquement echecs et alertes
+ chargement.tous = false
+ }
+// Informations de connexion a la base
+ datasource {
+ databasename = "eliot-scolarite"
+ }
+ }
+ }
+ }
+}
--- /dev/null
+infos=
+Â Â Â Â {'etabFournisseurs':
+Â Â Â Â Â Â Â Â [
+Â Â Â Â Â Â Â Â Â Â Â Â {'rne' : '0000000C','fournisseurNom' : 'TEST1','idsms' :
+ 'loginTest1','pwdsms' : 'passTest1','smsIdentifiantsCodes' : 'false','smsHttpsEnvoi' : 'false'},
+
+Â Â Â Â Â Â Â Â Â Â Â Â {'rne' : '0000000L','fournisseurNom' : 'TEST2','idsms' :
+ 'loginTest2','pwdsms' : 'passTest2','smsIdentifiantsCodes' : 'true','smsHttpsEnvoi' : 'false'}
+
+Â Â Â Â Â Â Â Â ]
+Â Â Â Â }
+}
--- /dev/null
+infos=
+Â Â Â Â {'etabFournisseurs':
+Â Â Â Â Â Â Â Â [
+Â Â Â Â Â Â Â Â Â Â Â Â {'rne' : '0000000C'},
+Â Â Â Â Â Â Â Â Â Â Â Â {'rne' : '0000000L'}
+Â Â Â Â Â Â Â Â ]
+Â Â Â Â }
--- /dev/null
+infos =
+Â Â Â Â {'fournisseurs':
+Â Â Â Â Â Â Â Â [
+Â Â Â Â Â Â Â Â {nom : 'TEST1',urlEnvoiHttp : 'http://www.test1.com/send',urlEnvoiHttps :
+ 'https://www.test1.com/send',urlSuiviHttp : 'http://www.test1.com/sendSuivi'},
+
+Â Â Â Â Â Â Â Â {nom : 'TEST2',urlEnvoiHttp : 'http://www.test2.com/send',urlEnvoiHttps :
+ 'https://www.test2.com/send',urlSuiviHttp : 'http://www.test2.com/sendSuivi'},
+
+Â Â Â Â Â Â Â Â {nom : 'TEST3',urlEnvoiHttp : 'http://www.test3.com/send',urlEnvoiHttps :
+ 'https://www.test3.com/send',urlSuiviHttp : 'http://www.test3.com/sendSuivi'}
+
+Â Â Â Â Â Â Â Â ]
+Â Â Â Â }
--- /dev/null
+#Mon Aug 09 15:32:27 CEST 2010
+fn_old=http\://www.w3.org/2004/10/xpath-functions
+eliot=http\://www.fylab.com/eliot
+xs=http\://www.w3.org/2001/XMLSchema
+xml=http\://www.w3.org/XML/1998/namespace
+jcr=http\://www.jcp.org/jcr/1.0
+nt=http\://www.jcp.org/jcr/nt/1.0
+fn=http\://www.w3.org/2005/xpath-functions
+rep=internal
+sv=http\://www.jcp.org/jcr/sv/1.0
+mix=http\://www.jcp.org/jcr/mix/1.0
+=
--- /dev/null
+#Mon Aug 09 15:32:27 CEST 2010
+http\://www.jcp.org/jcr/1.0=3
+http\://www.jcp.org/jcr/mix/1.0=5
+internal=2
+http\://www.jcp.org/jcr/nt/1.0=4
+http\://www.fylab.com/eliot=11
+http\://www.w3.org/XML/1998/namespace=7
+http\://www.w3.org/2005/xpath-functions=10
+http\://www.w3.org/2001/XMLSchema=8
+http\://www.w3.org/2004/10/xpath-functions=9
+http\://www.jcp.org/jcr/sv/1.0=6
\ No newline at end of file
--- /dev/null
+{
+Â Â Â Â "nomEtablissement":nometablissement,
+Â Â Â Â "uai":uai,
+Â Â Â Â "urlSuiviHttp":urlSuiviHttp,
+Â Â Â Â "nomFournisseur":nomFournisseur,
+Â Â Â Â "urlEnvoiHttps":urlEnvoiHttps,
+Â Â Â Â "motDePasse":motDePasse,
+Â Â Â Â "login":login,
+Â Â Â Â "urlEnvoiHttp":urlenvoiHttp
+}
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
+ "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
+<Repository >
+
+ <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem" >
+ <param name="path" value="${rep.home}/repository" />
+ </FileSystem >
+
+ <Security appName="Jackrabbit" >
+ <!-- <SecurityManager
+ class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="security">
+ </SecurityManager> -->
+ <AccessManager class="org.lilie.services.eliot.docs.jcr.securite.jackrabbit.DefaultAccessManager" >
+ <!-- <param name="config" value="${rep.home}/access.xml"/> -->
+ </AccessManager >
+
+ <LoginModule class="org.lilie.services.eliot.docs.jcr.securite.jackrabbit.DefaultLoginModule" >
+ <param name="anonymousId" value="anonymous" />
+ <param name="adminId" value="admin" />
+ </LoginModule >
+ </Security >
+ <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
+ <Workspace name="${wsp.name}" >
+ <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem" >
+ <param name="path" value="${wsp.home}" />
+ </FileSystem >
+ <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager" >
+ <param name="driver" value="javax.naming.InitialContext" />
+ <param name="url" value="java:comp/env/jdbc/JCR" />
+ <param name="schemaObjectPrefix" value="J_PM_${wsp.name}_" />
+ <param name="schema" value="postgresql" />
+ </PersistenceManager >
+ </Workspace >
+ <Versioning rootPath="${rep.home}/version" >
+ <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem" >
+ <param name="driver" value="javax.naming.InitialContext" />
+ <param name="url" value="java:comp/env/jdbc/JCR" />
+ <param name="schema" value="postgresql" />
+ <param name="schemaObjectPrefix" value="J_V_FS_node1_" />
+ </FileSystem >
+ <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager" >
+ <param name="driver" value="javax.naming.InitialContext" />
+ <param name="url" value="java:comp/env/jdbc/JCR" />
+ <param name="schemaObjectPrefix" value="J_V_PM_node1_" />
+ <param name="schema" value="postgresql" />
+ </PersistenceManager >
+ </Versioning >
+ <Cluster id="node1" syncDelay="5000" >
+ <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal" >
+ <param name="revision" value="${rep.home}/revision.log" />
+ <param name="driver" value="javax.naming.InitialContext" />
+ <param name="url" value="java:comp/env/jdbc/JCR" />
+ <param name="schemaObjectPrefix" value="J_C_" />
+ <param name="schema" value="postgresql" />
+ </Journal >
+ </Cluster >
+ <DataStore class="org.apache.jackrabbit.core.data.FileDataStore" >
+ <param name="path" value="<dossier_jackrabbit>/upload" />
+ <param name="minRecordLength" value="100" />
+ </DataStore >
+</Repository >
--- /dev/null
+<Server>
+<!-- ... -->
+ <GlobalNamingResources>
+<!-- ... -->
+ <Resource name="jdbc/ELIOT_DOCS" auth="Container"
+ type="javax.sql.DataSource"
+ driverClassName="org.postgresql.Driver"
+ url="jdbc:postgresql://<serveur_postgres>/eliot-docs"
+ username="eliot"
+ password="eliot"
+ maxActive="20"
+ maxIdle="5"
+ maxWait="5000"
+ validationQuery="select 1"
+ testOnBorrow="true"
+ testWhileIdle="true"
+ timeBetweenEvictionRunsMillis="3600000"
+ numTestsPerEvictionRun="3"
+ minEvictableIdleTimeMillis="3600000"/>
+
+ <Resource name="jdbc/ELIOT_SCOLARITE" auth="Container"
+ type="javax.sql.DataSource"
+ driverClassName="org.postgresql.Driver"
+ url="jdbc:postgresql://<serveur_postgres>/eliot-scolarite"
+ username="eliot"
+ password="eliot"
+ maxActive="20"
+ maxIdle="5"
+ maxWait="5000"
+ validationQuery="select 1"
+ testOnBorrow="true"
+ testWhileIdle="true"
+ timeBetweenEvictionRunsMillis="3600000"
+ numTestsPerEvictionRun="3"
+ minEvictableIdleTimeMillis="3600000"/>
+ <Resource name="jdbc/JCR" auth="container"
+ type="javax.sql.DataSource"
+ driverClassName="org.postgresql.Driver"
+ maxActive="20"
+ maxIdle="10"
+ maxWait="-1"
+ url="jdbc:postgresql://<serveur_postgres>/jackrabbit"
+ username="jackrabbit"
+ password="jackrabbit"
+ validationQuery="select 1"/>
+ <!-- Bases utilisées par le portail Lilie -->
+ <Resource name="jdbc/ADMINISTRATION" auth="Container"
+ type="javax.sql.DataSource"
+ driverClassName="org.postgresql.Driver"
+ url="jdbc:postgresql://<serveur_postgres>administration"
+ username="liferay" password="liferay"
+ maxActive="10" maxIdle="2" maxWait="-1"/>
+ <Resource name="jdbc/ANNUAIRE" auth="Container"
+ type="javax.sql.DataSource"
+ driverClassName="org.postgresql.Driver"
+ url="jdbc:postgresql://<serveur_postgres>/annuaire"
+ username="annuaire" password="annuaire"
+ maxActive="10" maxIdle="2" maxWait="-1"/>
+ <!-- ... -->
+ </GlobalNamingResources>
+ <!-- ... -->
+</Server>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace name="default">
+ <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+ <param name="path" value="${wsp.home}"/>
+ </FileSystem>
+
+ <PersistenceManager
+ class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
+ <param name="driver" value="javax.naming.InitialContext"/>
+ <param name="url" value="java:comp/env/jdbc/JCR"/>
+ <param name="schemaObjectPrefix" value="J_PM_${wsp.name}_"/>
+ <param name="schema" value="postgresql"/>
+ </PersistenceManager>
+</Workspace>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/fournisseurs.post" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/nd_reg.properties" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/ns_idx.properties" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/reponse.post" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting language="xml" xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/repository.xml" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting language="xml" xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/server.xml" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting language="xml" xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/annexes/fichiers/workspace.xml" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>Bascule d'année</title>
+
+ <para>L'opération de bascule permet de préparer les bases de données d'eliot
+ (eliot-docs et eliot-scolarite) à la nouvelle année scolaire. L'intégralité
+ de la base est concernée.
+ </para>
+ <para>La majeure partie des applications dispose d'une page de maintenance
+ permettant de lancer les opérations spécifiques de bascule d'année. Seules
+ les applications eliot-absences et eliot-notes sont « basculées » hors leur
+ page de maintenance.
+ </para>
+ <para>Cette page de maintenance n'est accessible qu'Ã un Correspondant de
+ déploiement.
+ </para>
+ <section>
+ <title>
+ Pré-requis
+ </title>
+ <para>Avant le lancement de la bascule d'année, certaines opérations doivent
+ IMPERATIVEMENT être effectuées pour que les opérations prévues s'exécutent
+ normalement.
+ </para>
+ <section>
+ <title>
+ Arrêter et isoler les applications
+ </title>
+ <para>Les applications eliot doivent être isolées de tout accès extérieur
+ de telle manière à ce qu'aucun accès non autorisé ne soit permis  lors
+ de la bascule, hormis à la personne responsable de la bascule d'année.
+ </para>
+
+ <para>Toutes les applications Eliot doivent être arrêtées :
+ <orderedlist>
+ <listitem>
+ <para>Les applications « demon » (demon-docs, demon-scolarite).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Les instances isolées de notes et d'absences.</para>
+ </listitem>
+ <listitem>
+ <para>les autres (absences, agenda, docs, messagerie, notes, textes,
+ scolarite).
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+
+ </section>
+
+ <section>
+ <title>Configurer l'année scolaire</title>
+ <para>Dans le fichier de configuration commun à toutes les applications
+ (eliot-commons-config.groovy), la variable
+ <parameter>eliot.scolarite.anneeencours</parameter>
+  doit être initialisée à la valeur de la
+ prochaine année scolaire.
+ </para>
+
+ <para>Ainsi, si l'année scolaire courante est 2011-2012, on devra trouver
+ l'information suivante dans le fichier de configuration :
+ <xi:include href="bascule/annee.config.programlisting"/>
+ </para>
+
+ <para>Si la valeur est égale à l'année courante, la bascule ne se fera pas
+ car l'application considérera que la bascule a été faite. Si cette
+ valeur est fantaisiste (ne correspond pas à l'année scolaire suivant
+ l'année scolaire courante), la bascule ne pourra pas se faire également.
+ </para>
+
+ <para>Chaque année, on devra donc modifier cette valeur afin de lancer la
+ bascule d'année.
+ </para>
+
+ </section>
+
+ <section>
+ <title>Activer le mode maintenance</title>
+ <para>Dans le fichier de configuration commun à toutes les applications
+ (<filename>eliot-commons-config.groovy</filename>),
+ il faut activer le mode maintenance :
+ <programlisting>eliot.mode.maintenance = true</programlisting>
+ </para>
+
+ <para>Après redémarrage IMPERATIF des applications, cela a pour effet de
+ limiter l'accès aux applications uniquement à la page maintenance et ce
+ uniquement pour les correspondants de déploiement.
+ </para>
+
+ <para>Si le mode maintenance n'est pas activé, la bascule ne pourra être
+ lancée (on aura accès à la page de la bascule sans pour autant pouvoir
+ la lancer).
+ </para>
+ </section>
+
+ <section>
+ <title>Redémarrage des applications</title>
+ <para>Les applications suivantes doivent être démarrées de telle manière Ã
+ ce qu'elles prennent en compte les changements de la configuration :
+ <orderedlist>
+ <listitem>
+ <para>eliot-docs</para>
+ </listitem>
+ <listitem>
+ <para>eliot-messagerie</para>
+ </listitem>
+ <listitem>
+ <para>eliot-agenda</para>
+ </listitem>
+ <listitem>
+ <para>eliot-textes</para>
+ </listitem>
+ <listitem>
+ <para>eliot-scolarite</para>
+ </listitem>
+ </orderedlist>
+ </para>
+
+ </section>
+ </section>
+
+ <section>
+ <title>Lancement de la bascule</title>
+
+ <para>La bascule d'année se déroule application par application et ce dans
+ l'ordre des étapes suivantes  :
+ <orderedlist>
+ <listitem>
+ <para>eliot-docs</para>
+ </listitem>
+ <listitem>
+ <para>eliot-messagerie</para>
+ </listitem>
+ </orderedlist>
+ </para>
+
+ <para>puis
+ <orderedlist>
+ <listitem>
+ <para>script SQL (pour absences et notes notamment)</para>
+ </listitem>
+ <listitem>
+ <para>eliot-agenda</para>
+ </listitem>
+ <listitem>
+ <para>eliot-textes</para>
+ </listitem>
+ <listitem>
+ <para>eliot-scolarite</para>
+ </listitem>
+ </orderedlist>
+ </para>
+
+ <para>Cet ordre est indiqué dans la page de maintenance de chaque
+ application (eliot-docs et eliot-messagerie d'un côté, le script SQL,
+ eliot-agenda, eliot-textes et eliot-scolarite de l'autre : cela est lié Ã
+ l'attachement des applications aux base de données).
+ </para>
+
+ <para>A chaque bascule d'application effectuée, on dispose d'un rapport html
+ stocké dans le dossier prévu à cet effet (voir 14.2 – Fichier de
+ configuration commun).
+ </para>
+
+ <para>Un click sur le lien vers le rapport indique quelles sont les données
+ traitées et le résultat.
+ </para>
+
+ <warning>
+ <para>il est fortement déconseillé d'interrompre la bascule d'année et
+ d'accéder aux applications alors que la bascule n'a pas été passée
+ complètement.
+ </para>
+ </warning>
+
+ <section>
+ <title>eliot-docs et eliot-messagerie (base eliot-docs)</title>
+
+ <orderedlist>
+ <listitem>Le correspondant de déploiement lance l'application "docs",
+ puis
+ dans l'option "Bascule d'année", clique sur le bouton d'envoi.
+ </listitem>
+ <listitem>Dès que le traitement est terminé, un rapport est disponible
+ pour
+ indiquer ce qui s'est passé.
+ </listitem>
+ <listitem>En cas d'erreur, une croix rouge apparait, sinon un "V" vert
+ est
+ affiché.
+ </listitem>
+ <listitem>Si la bascule de docs s'est terminé correctement (sans
+ erreur), le
+ correspondant de déploiement peut lancer l'application "messagerie".
+ </listitem>
+ <listitem>Dans l'option "Bascule d'année", il clique sur le bouton
+ d'envoi
+ correspondant à messagerie (docs est indiqué comme étant terminé).
+ </listitem>
+ <listitem>Dès que le traitement est terminé, un rapport est disponible
+ pour
+ indiquer ce qui s'est passé.
+ </listitem>
+ <listitem>En cas d'erreur, une croix rouge apparait, sinon un "V" vert
+ est
+ affiché.
+ </listitem>
+ <listitem>Un message doit indiquer, si tout s'est achevé correctement,
+ que la
+ bascule pour la base eliot-docs est terminée.
+ </listitem>
+ </orderedlist>
+
+ </section>
+
+ <section>
+ <title>script SQL (eliot-scolarite)</title>
+ <para>La base eliot_scolarite qui contient les données des autres
+ applications nécessite le passage d'un script manuel. Ce script manuel
+ est lancé dans une console.
+ </para>
+ <para>Dans le dossier "bascule_2012", on trouvera les éléments nécessaires
+ à la première étape de la bascule d'eliot scolarite.
+ </para>
+ <para>Il est impératif de modifier les valeurs présentes dans le fichier
+ "bascule_scolarite.properties" afin de configurer correctement :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>le driver postgresql au besoin (vérifier sa présence au côté du
+ jar liquibase)
+ </para>
+ </listitem>
+ <listitem>
+ <para>l'adresse du serveur de BDD</para>
+ </listitem>
+ <listitem>
+ <para>le user</para>
+ </listitem>
+ <listitem>
+ <para>le mot de passe.</para>
+
+ </listitem>
+ </orderedlist>
+
+ <para>Puis, il suffit de lancer la commande suivante :
+ <xi:include href="bascule/liquibase.run.programlisting"/>
+ </para>
+
+ <para>Liquibase va se mettre en route et procéder à des opérations sur la
+ base de données (archivage de certaines données et suppression
+ d'autres).
+ </para>
+ <para>Si Liquibase ne signale pas d'erreur "GRAVE", la 1ère étape de la
+ bascule s'est passée avec succès.
+ </para>
+ </section>
+
+ <section>
+ <title>
+ eliot-agenda, eliot-textes et eliot-scolarite (eliot-scolarite)
+ </title>
+
+ <orderedlist>
+ <listitem>Le correspondant de déploiement lance l'application
+ "eliot-agenda",
+ puis dans l'option "Bascule d'année", clique sur le bouton d'envoi.
+ </listitem>
+ <listitem>Dès que le traitement est terminé, un rapport est disponible
+ pour
+ indiquer ce qui s'est passé.
+ </listitem>
+ <listitem>En cas d'erreur, une croix rouge apparait, sinon un "V" vert
+ est
+ affiché.
+ </listitem>
+ <listitem>Le correspondant de déploiement lance ensuite l'application
+ "eliot-textes", puis dans l'option "Bascule d'année", clique sur le
+ bouton d'envoi.
+ </listitem>
+ <listitem>Dès que le traitement est terminé, un rapport est disponible
+ pour
+ indiquer ce qui s'est passé.
+ </listitem>
+ <listitem>En cas d'erreur, une croix rouge apparait, sinon un "V" vert
+ est
+ affiché.
+ </listitem>
+ <listitem>Le correspondant de déploiement lance enfin l'application
+ "eliot-scolarite", puis dans l'option "Bascule d'année", clique sur le
+ bouton d'envoi.
+ </listitem>
+ <listitem>Dès que le traitement est terminé, un rapport est disponible
+ pour
+ indiquer ce qui s'est passé.
+ </listitem>
+ <listitem>En cas d'erreur, une croix rouge apparait, sinon un "V" vert
+ est
+ affiché.
+ </listitem>
+ <listitem>Si aucune erreur n'est survenue lors de la bascule de ces
+ trois
+ applications, on considère que la bascule est terminée :
+ </listitem>
+ <listitem>un message indique que la bascule pour la base eliot-scolarite
+ est
+ terminée.
+ </listitem>
+ </orderedlist>
+
+ </section>
+ </section>
+ <section>
+ <title>Après la bascule</title>
+
+ <para>Après la bascule, les bases de données sont passées sur l'année
+ suivante. Il faut prévoir de :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>remettre les fichiers de configuration en ordre et relancer les
+ applications,
+ </para>
+ </listitem>
+ <listitem>
+ <para>lancer l'import AAF avec les nouveaux fichiers : sans cela, aucune
+ connexion n'est possible.
+ </para>
+ </listitem>
+ </orderedlist>
+ <section>
+ <title>Fichiers de configuration et applications</title>
+
+ <para>Dans le fichier de configuration commun à toutes les applications
+ (<filename>eliot-commons-config.groovy</filename>),
+ on doit désactiver le modev « maintenance » :
+ <programlisting>eliot.mode.maintenance = false</programlisting>
+ </para>
+
+ <para>Toutes les applications doivent être redémarrées (pour tenir compte
+ de la modification du paramètre).
+ </para>
+ </section>
+
+ <section>
+ <title>Import AAF</title>
+ <para>Dans le fichier de configuration de l'application
+ <filename>eliot-aaf-import-VERSION.war</filename>,
+ il faut modifier l'année scolaire :
+ <xi:include href="bascule/import-aaf.config.programlisting"/>
+ </para>
+
+ </section>
+ <section>
+ <title>Divers</title>
+ <para>Comme chaque début d'année, les établissements devront configurer
+ leur calendrier annuel (les calendriers hebdomadaires ont été
+ conservés).
+ </para>
+
+
+ </section>
+ </section>
+</chapter>
+
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[eliot.scolarite.anneeencours = "2012-2013"]]></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[eliot {
+ aaf {
+ anneescolaire {
+ // Indique l'annee scolaire en cours au moment de l'import
+ code = "2011-2012" (→ "2012-2013" par exemple)
+ }
+ }
+}]]></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[java -jar liquibase.jar --defaultsFile=bascule_scolarite.properties update -Downer.name=<user>]]></programlisting>
\ No newline at end of file
--- /dev/null
+<!--
+ ~ Copyright © FYLAB and the Conseil Régional d'Île-de-France, 2009
+ ~ This file is part of L'Interface Libre et Interactive de l'Enseignement (Lilie).
+ ~
+ ~ Lilie is free software. You can redistribute it and/or modify since
+ ~ you respect the terms of either (at least one of the both license) :
+ ~ - under the terms of the GNU Affero General Public License as
+ ~ published by the Free Software Foundation, either version 3 of the
+ ~ License, or (at your option) any later version.
+ ~ - the CeCILL-C as published by CeCILL-C; either version 1 of the
+ ~ License, or any later version
+ ~
+ ~ There are special exceptions to the terms and conditions of the
+ ~ licenses as they are applied to this software. View the full text of
+ ~ the exception in file LICENSE.txt in the directory of this software
+ ~ distribution.
+ ~
+ ~ Lilie is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ~ Licenses for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ and the CeCILL-C along with Lilie. If not, see :
+ ~ <http://www.gnu.org/licenses/> and
+ ~ <http://www.cecill.info/licences.fr.html>.
+ -->
+
+<bookinfo xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>Eliot v2 - Guide d'exploitation</title>
+ <subtitle>Version 2.9.0.</subtitle>
+
+ <copyright>
+ <holder>O.M.T.</holder>
+ <holder>Fylab</holder>
+ </copyright>
+
+ <legalnotice>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center"
+ format="PNG"
+ fileref="images/licence.png"/>
+ </imageobject>
+ </mediaobject>
+ </entry>
+ <entry>
+ <para>Ce texte est disponible sous contrat Creative
+ Commons Paternité - Pas d'Utilisation
+ Commerciale - Partage des Conditions Initiales Ã
+ l'Identique 2.0 France :
+ <ulink
+ url="http://creativecommons.org/licenses/by-nc-sa/2.0/fr/">
+ http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
+ </ulink>
+ </para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </legalnotice>
+</bookinfo>
--- /dev/null
+<formalpara xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <bridgehead>Paramétrage de la base de données</bridgehead>
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ Connexion à la base de données
+ <database>DOCS</database>
+ et adresse URL de
+ l'application
+ </term>
+ <listitem>
+ <programlisting language="java"><textobject><textdata fileref="../../src/main/resources/docbook/common/fichiers/config-docs.groovy"/></textobject></programlisting>
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+</formalpara>
\ No newline at end of file
--- /dev/null
+<para xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <bridgehead>Paramétrage de la base de données</bridgehead>
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ Connexion à la base de données
+ <database>SCOLARITE</database>
+ et adresse URL de
+ l'application
+ </term>
+ <listitem>
+ <programlisting language="java"><textobject><textdata fileref="../../src/main/resources/docbook/common/fichiers/config-scolarite.groovy"/></textobject></programlisting>
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+</para>
\ No newline at end of file
--- /dev/null
+environments {
+Â Â production {
+Â Â Â Â grails.serverURL = "http://<serveur>/<application>;"
+Â Â Â Â Â dataSource {
+Â Â Â Â Â Â Â jndiName = "java:comp/env/jdbc/ELIOT_DOCS"
+Â Â Â Â Â Â Â Â }
+Â Â Â Â }
+}
\ No newline at end of file
--- /dev/null
+environments {
+Â Â production {
+Â Â Â Â grails.serverURL = "http://<serveur>/<application>;"
+Â Â Â Â Â dataSource {
+Â Â Â Â Â Â Â jndiName = "java:comp/env/jdbc/ELIOT_SCOLARITE"
+Â Â Â Â Â Â Â Â }
+Â Â Â Â }
+}
\ No newline at end of file
--- /dev/null
+<para xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+ <bridgehead>Paramétrage de Log4j</bridgehead>
+ <xref linkend="log4j"/>
+</para>
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>Configuration commune à toutes les applications</title>
+ <section id="log4j">
+ <title>Log4j</title>
+ <para>Dans chacun des fichiers de configuration des applications eliot, on
+ retrouve un paramétrage de Log4j. Ce paramétrage est le suivant :
+ </para>
+ <programlisting>
+ log4j = {
+ appenders {
+ <![CDATA[file name: 'file', file: '<dossier_log>/<nom_appli>.log']]>
+ }
+ root {
+ info 'file'
+ additivity = true
+ }
+ info 'grails'
+ error stdout:"StackTrace"
+ }
+
+ </programlisting>
+
+ </section>
+ <section>
+ <title>Fichier de configuration commun</title>
+ <para>Toutes les applications eliot chargent en premier un fichier de
+ configuration dont l'accès et le nom sont renseignés par la variable
+ eliot-commons.config.location (voir configuration de Tomcat).
+ </para>
+
+ <para>Elles chargent ensuite leur fichier de configuration propre. Cela
+ implique que des variables déclarées dans le fichier commun et dans le
+ fichier de l'application garde comme valeur valeur celle déclarée dans le
+ fichier de l'application.
+ </para>
+ <para>Le contenu du fichier de configuration est le suivant :</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ Identifiant et mot de passe pour l'accès aux APIs REST
+ </term>
+ <listitem>
+ <programlisting><![CDATA[eliot.api.login = 'api'
+eliot.api.password = 'api']]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Liaison SSO vers Magister</term>
+ <listitem>
+ <para>Ce paramètre permet la configuration de l'accès dans
+ eliot-scolariteau service Magister et l'apparition des menus dans
+ eliot-textes et eliot-agenda.
+ </para>
+ <programlisting><![CDATA[eliot.accesMagister.active = false]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Liaison SSO vers LVS</term>
+ <listitem>
+ <para>Ce paramètre permet la configuration de l'accès dans
+ eliot-scolarite
+ au service LVS et l'apparition des menus dans eliot-textes et
+ eliot-agenda.
+ </para>
+ <programlisting><![CDATA[eliot.accesLvs.active = false]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Dossier de stockage des rapports de la bascule d'année</term>
+ <listitem>
+ <para>Ce paramètre est utilisé par les applications eliot-textes,
+ eliot-docs et eliot-messagerie pour stocker, en fin d'année (scolaire), un
+ rapport d'exécution du passage à la nouvelle année.
+ </para>
+ <programlisting><![CDATA[eliot.racineDossiersBasculeAnnee = <dossier_appli>/basculeannee']]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Dossier de stockage des fichiers et rapports pour l'imports STS</term>
+ <listitem>
+ <para>Ce paramètre est utilisé par les applications eliot-scolarite et
+ eliot-demon-scolarite.</para>
+ <programlisting><![CDATA[eliot.scolarite.import.sts.racineDossiers = '<dossier_appli>/importsts']]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Url d'accès au webservice du catalogue (adresse interne)</term>
+ <listitem>
+ <para>Ce paramètre est utilisé par les applications eliot-textes et
+ eliot-agenda.</para>
+ <programlisting><![CDATA[eliot.externe.catalogue.url = "<serveurInterne>/catalogue/wsUserTitles.json"]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Activation de la liaison textes / catalogue</term>
+ <listitem>
+ <para>Ce paramètre est utilisé par les applications eliot-textes et
+ eliot-agenda.</para>
+ <programlisting><![CDATA[eliot.textes.liaison.catalogue.actif = true]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Configuration du module de publipostage</term>
+ <listitem>
+ <programlisting><![CDATA[// Propriétés du service d'impression
+eliot {
+ impression {
+ // la valeur de seuil à partir de laquelle une impression
+ // publipostage passe en différé
+ seuil = 1
+ logo {
+ // taille max du logo
+ tailleMaxEnKo = 100
+ }
+ cachet {
+ // taille max du cachet
+ tailleMaxEnKo = 100
+ }
+ }
+}]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Activation du mode de stockage des pièces jointes sur le disque pour
+ le cahier de textes</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.textes.datastore.filedatastore.actif = true]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Création automatique du dossier de stockage des pièces jointes</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.textes.datastore.filedatastore.autocreate = false]]>
+<lineannotation>NE PAS MODIFIER cette valeur !</lineannotation></programlisting>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Dossier de stockage des pièces jointes</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.textes.datastore.filedatastore.racine = '<dossier_appli>/cdt']]></programlisting>
+ <para>Ce dossier doit être accessible en lecture/ écriture par Tomcat.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Emplacement de l'aide en ligne</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.aideEnLigne.baseUrl = 'aide/documents/']]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Aide en ligne - Document par fonction</term>
+ <listitem>
+ <programlisting><![CDATA[
+eliot {
+ absences {
+ aideEnLigne {
+ url {
+ CHEF_TRAVAUX = 'Manuel_Utilisateur_Absences_Direction.pdf'
+ ENSEIGNANT = 'Manuel_Utilisateur_Absences_Enseignant.pdf'
+ ELEVE = 'Manuel_Utilisateur_Absences_Eleve.pdf'
+ PERS_REL_ELEVE = 'Manuel_Utilisateur_Absences_Parent.pdf'
+ DIRECTION = 'Manuel_Utilisateur_Absences_Direction.pdf'
+ EDUCATION = 'Manuel_Utilisateur_Absences_Education.pdf'
+ }
+ }
+ }
+ agenda {
+ aideEnLigne {
+ url {
+ ENSEIGNANT = 'Manuel_Utilisateur_Agenda_Enseignant.pdf'
+ ELEVE = 'Manuel_Utilisateur_Agenda_Eleve.pdf'
+ PERS_REL_ELEVE = 'Manuel_Utilisateur_Agenda_Parent.pdf'
+ }
+ }
+ }
+ docs {
+ aideEnLigne {
+ Â url {
+ Â ENSEIGNANT = 'Manuel_Utilisateur_Docs.pdf'
+ ELEVE = 'Manuel_Utilisateur_Docs.pdf'
+ PERS_REL_ELEVE = 'Manuel_Utilisateur_Docs.pdf'
+ }
+ }
+ }
+ notes {
+ aideEnLigne {
+ url {
+ ENSEIGNANT = 'Manuel_Utilisateur_Notes_Enseignant.pdf'
+ ELEVE = 'Manuel_Utilisateur_Notes_Eleve.pdf'
+ PERS_REL_ELEVE = 'Manuel_Utilisateur_Notes_Parent.pdf'
+ DIRECTION = 'Manuel_Utilisateur_Notes_Direction.pdf'
+ }
+ }
+ }
+ scolarite {
+ aideEnLigne {
+ url {
+ DIRECTION = 'Manuel_Utilisateur_Scolarite.pdf'
+ }
+ }
+ }
+ textes {
+ aideEnLigne {
+ url {
+ ENSEIGNANT = 'Manuel_Utilisateur_Textes_Enseignant.pdf'
+ ELEVE = 'Manuel_Utilisateur_Textes_Eleve.pdf'
+ PERS_REL_ELEVE = 'Manuel_Utilisateur_Textes_Parent.pdf'
+ DIRECTION = 'Manuel_Utilisateur_Textes_Direction.pdf'
+ }
+ }
+ }
+}]]></programlisting>
+ <para>Pour supprimer un accès à un document, il suffit de supprimer la
+ ligne correspondante .  Pour ajouter un accès à un document, il suffit
+ d'ajouter la ligne correspondante . Les noms des manuels sont indicatifs.</para>
+ <para>Voici le détail des codes fonctions utilisables :
+ <itemizedlist>
+ <listitem>ADMIN_CENTRAL</listitem>
+ <listitem>ADMIN_LOCAL</listitem>
+ <listitem>CORRESPONDANT_DEPLOIEMENT</listitem>
+ <listitem>ELEVE</listitem>
+ <listitem>PERS_REL_ELEVE (parent)</listitem>
+ <listitem>ENSEIGNANT</listitem>
+ <listitem>DIRECTION</listitem>
+ <listitem>DOCUMENTALISTE</listitem>
+ <listitem>EDUCATION</listitem>
+ <listitem>CHEF_TRAVAUX</listitem>
+ <listitem>INVITE</listitem>
+ <listitem>CONSEILLER_FORMATION_CONTINUE</listitem>
+ <listitem>PERSONNEL_ADMINISTRATIF</listitem>
+ <listitem>LABORATOIRE</listitem>
+ <listitem>PERSONNEL_LABORATOIRE</listitem>
+ <listitem>ASSISTANT_ETRANGER</listitem>
+ <listitem>PERSONNEL_MEDICO_SOCIAL</listitem>
+ <listitem>PERSONNEL_OUVRIER</listitem>
+ <listitem>SURVEILLANCE</listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Mode maintenance</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.mode.maintenance = false]]></programlisting>
+ <para>Valeur par défaut - si ce paramètre est égal à true, le mode
+ « maintenance » permet de limiter l'accès aux correspondants de
+ déploiement à la page maintenance de chaque application, les applications
+ « demon » sont stoppées.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Dossier contenant les rapports d'import UDT</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.scolarite.import.udt.racineDossiers="<dossier_appli>/importudt"]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Accès restreint (suppression logique)</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.accesRestreint.actif = true
+eliot.accesRestreint.duree = 30]]> <lineannotation>// en jours</lineannotation></programlisting>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+</chapter>
+
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-aaf-import</title>
+ <section>
+ <title>Description générale</title>
+ <para>L'application eliot-aaf-import est fournie sous la forme d'un jar
+ exécutable.
+ </para>
+ <para>Cette application permet d'alimenter la base eliot-scolarite afin que
+ celle-ci dispose de son propre annuaire.
+ </para>
+ <para>Elle accepte en entrée les fichiers XML (au format AAF) générés par
+ Logica à partir des fichiers AAF fournis par les académies.
+ </para>
+ <para>Les fichiers fournis par une académie ont les patterns suivant :
+ </para>
+ <orderedlist>
+ <listitem>
+ <filename>
+ <![CDATA[<CodePorteur>_<Académie>_<Type>_<AAAAMMJJ>_Eleve_<XXXX>.xml]]></filename>
+ </listitem>
+ <listitem>
+ <filename>
+ <![CDATA[<CodePorteur>_<Académie>_<Type>_<AAAAMMJJ>_EtabEducNat_<XXXX>.xml]]></filename>
+ </listitem>
+ <listitem>
+ <filename>
+ <![CDATA[<CodePorteur>_<Académie>_<Type>_<AAAAMMJJ>_PersEducNat_<XXXX>.xml]]></filename>
+ </listitem>
+ <listitem>
+ <filename>
+ <![CDATA[<CodePorteur>_<Académie>_<Type>_<AAAAMMJJ>_PersRelEleve_<XXXX>.xml]]></filename>
+ </listitem>
+ </orderedlist>
+
+ <variablelist>
+ <varlistentry>
+ <term><filename><![CDATA[<CodePorteur>]]></filename></term>
+ <listitem>Le code porteur de l'académie</listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename><![CDATA[<Académie>]]></filename></term>
+ <listitem>L'académie d'origine</listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename><![CDATA[<Type>]]></filename></term>
+ <listitem>Delta ou Complet</listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename><![CDATA[<AAAAMMJJ>]]></filename></term>
+ <listitem>La date de génération, dans ce format</listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename><![CDATA[<XXXX>]]></filename></term>
+ <listitem>Numéro du fichier</listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Il est possible dans le fichier de configuration de faire une
+ association entre le code porteur de la base et celui du fichier
+ </para>
+ <para>D'autres fichiers sont fournis en plus, qui contiennent les données
+ gérées par le portail et qui ne sont pas fournis par l'académie.
+ </para>
+ <orderedlist>
+ <listitem>
+ <filename><![CDATA[<Type>_<AAAAMMJJ>_PersAL.xml]]>
+ </filename>
+ (administrateurs locaux)
+ </listitem>
+ <listitem>
+ <filename><![CDATA[<Type>_<AAAAMMJJ>_PersHorsAAF.xml]]>
+ </filename>
+ (invités, correspondant
+ de déploiements)
+ </listitem>
+ <listitem>
+ <filename><![CDATA[<Type>_<AAAAMMJJ>_PorteurENT.xml]]>
+ </filename>
+ (porteurs ENT)
+ </listitem>
+ </orderedlist>
+ </section>
+ <section>
+ <title>Configuration</title>
+ <para>L'application eliot-aaf-import charge son fichier de configuration
+ (
+ <filename>eliot-aaf-import-config.groovy</filename>
+ par défaut) dont l'accès et le nom sont
+ renseignés dans la ligne de commande du lancement de l'application.
+ </para>
+ <para>Les fichiers à importer sont stockés dans un dossier que nous
+ appellerons<filename><![CDATA[<dossier_import_aaf_fichiers>]]></filename>.
+ </para>
+ <para>Les rapports générés par l'application sont générés dans un dossier
+ que nous appellerons<filename>
+ <![CDATA[<dossier_import_aaf_rapports]]></filename>.
+ </para>
+
+ <para>Dans le fichier de configuration (présenté au paragraphe 17.3), il
+ faudra modifier les paramètres suivants :
+ </para>
+
+ <orderedlist>
+ <listitem>
+ <para>Dans la partie <code>eliot/aaf/files</code>, l'option permettant de
+ rejouer des
+ fichiers déjà importés (ou non) :
+ <code>traitedejatraites = true</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Dans la partie <code>eliot/aaf</code>, l'accès à la base de données
+ :
+ <programlisting><![CDATA[
+datasource { Â Â Â Â
+ servername = "localhost" Â Â Â Â
+ port = "5432" Â
+ username = "eliot" Â Â Â Â
+ password = "eliot"
+}
+ ]]></programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Dans la
+ <code>partie environnements/integration</code>
+ :
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>L'accès au dossier dans lequel se trouve les fichiers à importer :
+ </para>
+ <programlisting><![CDATA[
+files {
+ rootpath = "/tmp/test/importaaf/fichiers"
+}
+ ]]></programlisting>
+
+ <programlisting>
+rapport {
+
+ <lineannotation>// L'accès au dossier
+ // (qui doit exister - accessible en lecture/écriture)
+ // dans lequel seront stockés les rapports d'importation</lineannotation>
+ rootpath = "/tmp/test/importaaf/rapports"
+}
+ </programlisting>
+
+
+ <para>Le nom de la base de données :</para>
+ <programlisting>
+datasource {
+ databasename = "eliot_scolarite"
+}
+ </programlisting>
+
+ <para>Les paramètres qui portent le pattern
+ « <code>.completsuniquement</code> » sont Ã
+ passer à <code>False</code> si l'on souhaite que les fichiers Complets puissent être
+ utilisés pour la mise à jour (à la place des fichiers Delta).
+ </para>
+ <para>Exception :</para>
+ <para>les paramètres « adminlocaux », « porteursEnt » et « horsaaf » sont
+ toujours à <code>True</code>.
+ </para>
+ </section>
+ <section>
+ <title>
+ Lancement
+ </title>
+ <para>L'import s'effectue de la manière suivante :</para>
+ <programlisting><![CDATA[
+java \
+ -Druntime.environment=integration \
+ -Deliot-aaf-import.config.location= \
+ <dossier_du_fichier_de_config>/eliot-aaf-import-config.groovy \
+ -jar eliot-aaf-import-<version>-jar-with-dependencies.jar
+ ]]></programlisting>
+
+ <para>Pour le paramètre <parameter>runtime.environment</parameter>, on retrouve ici :
+ <code>integration</code>
+ </para>
+ <para>(l'application contient également des tests unitaires, avec un
+ paramétrage particulier).
+ </para>
+ <para>Pour le paramètre <parameter>eliot-aaf-import.config.location</parameter>, on retrouve le
+ nom du fichier de configuration et son dossier.
+ </para>
+ <para>Enfin, <code><![CDATA[<version>]]></code> correspond à la version de l'application.
+ </para>
+ </section>
+</chapter>
+
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-absences</title>
+ <section>
+ <title>Description générale</title>
+ <para>
+ L'application eliot-absences permet de gérer les absences et
+ retards
+ des élèves d'un établissement.
+ </para>
+ </section>
+
+ <section>
+ <title>Configuration</title>
+ <para>
+ L'application eliot-absences charge son fichier de configuration
+ dont
+ l'accès et le nom sont renseignés par la variable
+ <parameter>eliot-absences.config.location</parameter>
+ (voir configuration de Tomcat).
+ </para>
+
+ <para>
+ La définition des fournisseurs de SMS et leur association avec les
+ établissements se trouvent en annexe (voir le point<link linkend="">
+ 17.4</link>)
+ </para>
+
+ <para>
+ Le contenu du fichier de configuration est le suivant :
+ </para>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <xi:include href="common/config-base-scolarite.xml"/>
+
+ <xi:include href="eliotabsences/parametres.variablelist"/>
+
+ </section>
+
+ <section>
+ <title>Installation d'une instance particulière d'absences</title>
+ <para>
+ L'application eliot-absences est composée de l'application de gestion
+ des absences mais également d'un job qui peut se déclencher à intervalles
+ réguliers (selon la configuration ci-dessus) : le job de traitement
+ asynchrone des publipostages.
+ </para>
+
+ <para>
+ Afin que ce job ne charge l'application de gestion « pure », il est
+ vivement conseillé de déployer :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ plusieurs instances d'absences dans lesquels le job a été
+ désactivé (les paramètres indiqués sont 0). Ces instances seront
+ bien
+ entendu accessibles par le load-balancer.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ un instance d'absences pour laquelle le job est activé. Cette
+ instance ne sera pas accessible par le load-balancer.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>
+ Cela sous-entend que l'instance isolée aura sa propre
+ configuration,
+ les autres pourront avoir une configuration commune.
+ </para>
+ </section>
+ <section>
+ <title>Page de maintenance</title>
+ <para>
+ L'application eliot-absences dispose d'une page de maintenance
+ accessible uniquement à un correspondant de déploiement.
+ </para>
+ <para>
+ Cette page est accessible sur l'adresse :
+ <code><![CDATA[<url_eliot_absences>/maintenance]]></code>
+ et permet de réaliser l'opération suivante :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Bascule d'année : hors maintenance, cette page permet de
+ vérifier
+ que la bascule d'année s'est bien passée. La bascule d'année de
+ l'application absences s'effectue effectivement via un SCRIPT_SQL.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Maintenance technique : cette page permet d'accéder à des
+ informations techniques sur l'environnement d'exécution de
+ l'application.
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+</chapter>
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-agenda</title>
+ <section>
+ <title>Description générale</title>
+ <para>L'application eliot-agenda permet de gérer son ou ses agendas
+ personnels, de les partager et d'accéder aux agendas scolaires et
+ d'établissement.
+ </para>
+ </section>
+ <section>
+ <title>Configuration</title>
+ <para>L'application eliot-agenda charge son fichier de configuration
+ dont l'accès et le nom sont renseignés par la variable
+ <filename>eliot-agenda.config.location</filename>
+ (voir configuration de Tomcat).
+ </para>
+ <para>Le contenu du fichier de configuration est le suivant :</para>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <xi:include href="common/config-base-scolarite.xml"/>
+
+ <xi:include href="eliotagenda/parametres.variablelist"/>
+
+ </section>
+ <section>
+ <title>Page de maintenance</title>
+
+ <para>L'application eliot-agenda dispose d'une page de maintenance
+ accessible uniquement à un correspondant de déploiement.
+ </para>
+ <para>Cette page est accessible sur l'adresse : <url_eliot_agenda>/maintenance
+ et permet de réaliser l'opération suivante :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>Bascule d'année : cette page permet de procéder à la
+ bascule d'année
+ et de visualiser les rapports d'exécution. Lors de cette
+ bascule, les
+ agendas de services et d'établissement sont archivés puis
+ supprimés, les
+ droits (liés à des structures d'enseignement) sur les
+ agendas personnels
+ supprimés.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Statistiques :cette page donne de nombreuses informations
+ quantitatives sur le module agenda. On trouvera :    -
+ le nombre
+ d'agenda privé, de structure, d'enseignement,    - le
+ nombre
+ d'évènements,    - ...
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+</chapter>
+
+
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-demon-docs</title>
+ <section>
+ <title>Description générale</title>
+ <para>L'application eliot-demon-docs est chargée d'effectuer des
+ traitements déclenchés périodiquement et dont les données sont liées
+ à la base de données eliot-docs.
+ </para>
+ <para>Pour l'instant, l'application est chargée de gérer l'envoi de
+ message dans la messagerie interne et de rediriger vers leur
+ messagerie externe les messages qu'ont reçus les utilisateurs (pour
+ ceux qui en ont fait la demande).
+ </para>
+ </section>
+ <section>
+ <title>Configuration</title>
+ <para>L'application eliot-demon-docs charge son fichier de configuration
+ dont l'accès et le nom sont renseignés par la variable
+ eliot-demon-docs.config.location (voir configuration de Tomcat).
+ </para>
+ <para>Le contenu du fichier de configuration est le suivant :</para>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <xi:include href="common/config-base-docs.xml"/>
+
+ <variablelist>
+ <bridgehead>Paramètres</bridgehead>
+
+ <varlistentry>
+
+ <term>Redirection des messages et activation de JobQuartz</term>
+ <listitem>
+ <xi:include href="eliotdemondocs/quartz.xml"/>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Délai initial du lancement du job de distribution des
+ messages
+ (en ms)
+ </term>
+ <listitem>
+ <programlisting>eliot.messagerie.jobs.distributionMessages.startDelay = 10000</programlisting>
+ <para>Démarrage au bout de 10 s</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Intervalle de répétition du job de distribution des messages (en ms)</term>
+ <listitem>
+ <programlisting>eliot.messagerie.jobs.distributionMessages.repeatInterval = 5000</programlisting>
+ <para>Lancement du job toutes les 5s – 0 pour inactiver.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Délai initial du démarrage du job de redirection desmessage (en ms)</term>
+ <listitem>
+ <programlisting>eliot.messagerie.jobs.redirectionMessages.startDelay = 1000</programlisting>
+ <para>Démarrage au bout de 10 s.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Intervalle de répétition du job de redirection des message (en ms)</term>
+ <listitem>
+ <programlisting>eliot.messagerie.jobs.redirectionMessages.repeatInterval = 5000</programlisting>
+ <para>Lancement du job toutes les 5s – 0 pour inactiver</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+</chapter>
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+<title>eliot-demon-scolarite</title>
+
+<section><title>Description générale</title>
+ <para>L'application eliot-demon-scolarite est chargée d'effectuer des traitements déclenchés périodiquement et dont les données sont liées à la base de données eliot-scolarite.</para>
+ <para>Pour l'instant, cette application est chargée d'importer dans la base scolarité les fichiers STS_EMP et EMP_STS déposés par les chefs d'établissement au moyen de l'application eliot-scolarite.</para></section><section><title>Configuration</title>
+ <para>L'application eliot-demon-scolarite charge son fichier de configuration dont l'accès et le nom sont renseignés par la variable eliot-demon-scolarite.config.location (voir configuration de Tomcat).</para>
+ <para>Le contenu du fichier de configuration est le suivant :</para>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <xi:include href="common/config-base-scolarite.xml"/>
+
+ <variablelist>
+
+ <bridgehead>Paramètres</bridgehead>
+
+ <varlistentry>
+ <term>Activation de JobQuartz</term>
+ <listitem>
+ <xi:include href="eliotdemonscolarite/quartz.xml"/>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>Expression cron définissant la fréquence de lancement de l'import STS</term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.sts.heuredebut.cronexpression = '0 0 3 * * ?' </programlisting>
+ <para>exemple : tous les jours à 3 heures du matin – pour connaître les valeurs possibles, voir le site http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Durée de la plage horaire laissée au démon pour importer les données (en s)</term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.sts.dureeplage = 10800 </programlisting>
+ <para>exemple : 3 heures – tout traitement (d'un fichier d'import) commencé est poursuivi jusqu'à la fin.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Indique si l'import UDT doit être lancé </term>
+ <listitem>
+ <para>eliot.scolarite.import.udt.actif = false </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+
+ <term>Expression cron définissant la fréquence de lancement de l'import udt </term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.udt.heuredebut.cronexpression = '0 0 3-5 * * ?' </programlisting>
+ <para>Exemple : de 3 à 5 heures, toutes les heures.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Expression cron définissant la fréquence de lancement du prétraitement de  l'import udt </term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.udtPretraitement.heuredebut.cronexpression = '0 0 3 * * ?' </programlisting>
+ <para>Exemple : à 3 heures tous jours.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Délai au-délà duquel les événements et les enseignement UDT temporaires sont supprimés </term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.udt.dureePeremption = 30 </programlisting>
+ <para>Valeur exprimée en jours.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Chemin vers le script de lancement de l'import Talend </term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.udt.cheminscript = "<dossier_appli>/udt-import-pretraitement-job/importUdtTalend/importUdtTalend_run.sh" </programlisting>
+ <para>Le script doit être en mode exécutable par tomcat.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Fichier de configuration de log4j pour l'import talend </term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.udt.configLog4J = "<dossier_appli>/udt-import-pretraitement-job/importUdtTalend/log4j.xml" </programlisting>
+ <para>Le fichier doit être accessible en écriture par tomcat.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Durée laissée au process d'import udt pour traiter les imports (en sec) </term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.udt.dureeplage = 3600</programlisting>
+ <para>Dossier contenant les fichiers UDT Ã traiter avec Talend </para>
+ <para>eliot.scolarite.import.udtPretraitement.racineDossiers="<dossier_appli>/importudt" </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Durée laissée au process d'import udt talend pour traiter les imports (en sec) </term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.udtPretraitement.dureeplage = 3600 </programlisting>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Taille de lot de suppression nécessaire pour parer les limites de Hibernate</term>
+ <listitem>
+ <programlisting>eliot.scolarite.import.udt.suppression.lot = 4000</programlisting>
+ </listitem>
+ </varlistentry>
+
+
+ </variablelist>
+
+ </section></chapter>
+
+
+
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+ <title>eliot-docs</title>
+ <section>
+ <title>Description générale</title>
+ <para>Eliot-docs permet le stockage des dossiers et documents des
+ utilisateurs.
+ Cette application s'appuie sur JackRabbit pour le référentiel des
+ documents.
+ </para>
+ </section>
+
+ <section>
+ <title>Configuration</title>
+ <para>L'application eliot-docs charge son fichier de configuration dont
+ l'accès et le nom sont renseignés par la variable
+ <parameter>eliot-docs.config.location</parameter> (voir configuration de Tomcat).
+ </para>
+
+ <formalpara>
+ <title>Mode d'utilisation de JackRabbit par eliot-docs : </title>
+ <para>Le mode WEBDAV n'est pas utilisé en raison des problèmes de performances.
+ On utilise donc JackRabbit uniquement en mode embarqué.</para>
+ </formalpara>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <xi:include href="common/config-base-docs.xml"/>
+
+ <variablelist>
+ <bridgehead>Paramètres</bridgehead>
+ <varlistentry>
+ <term>Paramétrage du chemin d'accès au repository</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.docs.jcr.home='<dossier_jackrabbit>']]></programlisting>
+ </listitem>
+ </varlistentry>
+
+
+
+ <varlistentry>
+ <term>Dossier de dépôt des fichiers d'import (récupération de données externes)</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.docs.racineDossiersImport = '<dossier_appli>/importdocs/']]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Dossier pour les rapports de vérification et réparation du repository</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.docs.racineDossiersIntegrite = '<dossier_appli>/integritedocs/']]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Activation de l'API de docs</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.docs.enabled = true]]></programlisting>
+ <para>si <code>true</code>, les services de gestion du repository d'eliot-docs seront
+ chargés, et donc utilisables.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Taille maxi (en méga-octets) d'un fichier</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.docs.fichier.tailleMax.megaOctets = 5]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Fréquence de sauvegarde de l'état du front office</term>
+ <listitem>
+ <para>Intervalle de sauvegarde du FrontOffice en session – en ms.</para>
+ <programlisting><![CDATA[eliot.frequenceSauvegardeFrontOffice = 750]]></programlisting>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+ <section>
+ <title>Page de maintenance</title>
+ <para>L'application eliot-docs dispose d'une page de maintenance accessible
+ uniquement à un correspondant de déploiement.
+ </para>
+ <para>Cette page est accessible sur l'adresse : <parameter><![CDATA[<url_eliot_docs>/maintenance]]></parameter>
+ et permet de réaliser les opérations suivantes :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>Etat de l'application : cette page informe de l'état de
+ l'application (opérationnelle ou non)
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bascule d'année : cette page permet de procéder à la bascule
+ d'année et de visualiser les rapports d'exécution. Lors de cette
+ bascule, pour les documents et dossiers présents dans les espaces
+ partagés, seules les permissions liées à des groupes d'enseignement
+ (hors groupe ENT ou de personnel) sont supprimées.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Import eliot-docs : cette page permet d'importer les documents des
+ espaces de travail issus des établissements d'expérimentation et de
+ visualiser les rapports d'import.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Réparation du repository JackRabbit : cette page permet de lancer
+ un outil de vérification ou de vérification/réparation d'un repository
+ JackRabbit (voir l'utilisation de cette fonction au point 14.1).Un
+ rapport d'exécution est généré après l'une ou l'autre des opérations.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>Â </para>
+ </section>
+</chapter>
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-messagerie</title>
+ <section>
+ <title>Description générale</title>
+ <para>Eliot-messagerie est une messagerie interne qui permet aux
+ utilisateurs d'envoyer des messages aux utilisateurs et groupes
+ d'utilisateurs auxquels il leur est permis d'accéder.
+ </para>
+ <para>Chaque utilisateur a la possibilité de rediriger les messages
+ reçus vers une messagerie externe.
+ </para>
+ </section>
+
+ <section>
+ <title>Configuration</title>
+ <para>L'application eliot-messagerie charge son fichier de configuration
+ dont l'accès et le nom sont renseignés par la variable
+ <filename>eliot-messagerie.config.location</filename> (voir configuration de Tomcat).
+ </para>
+ <para>Le contenu du fichier de configuration est le suivant :</para>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <xi:include href="common/config-base-docs.xml"/>
+
+ <variablelist>
+ <bridgehead>Paramètres</bridgehead>
+
+ <varlistentry>
+
+ <term>Indexation des messages (si un système d'indexation, type
+ <application>SOLR</application>, est en place)
+ </term>
+ <listitem>
+ <programlisting>eliot.messagerie.indexation = true
+ </programlisting>
+ <para>Si ce paramètre est à true, eliot envoie au système
+ indexation les éléments du message à indexer.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <warning>Les anciens paramètres du job de redirection (présents jusqu'Ã
+ la version 2.6.0.X) sont dépréciés et ne sont plus utilisés.
+ </warning>
+ </section>
+ <section>
+ <title>Page de maintenance</title>
+
+ <para>L'application eliot-messagerie dispose d'une page de maintenance
+ accessible uniquement à un correspondant de déploiement.
+ </para>
+ <para>Cette page est accessible sur l'adresse : <filename><url_eliot_messagerie>/maintenance</filename>
+ et permet de réaliser les opérations suivantes :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>Statistiques : cette page donne un certain nombre
+ d'informations sur la volumétrie des principales tables
+ utilisées par l'application.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bascule d'année : cette page permet de procéder à la
+ bascule d'année et de visualiser les rapports d'exécution.
+ Lors de cette bascule, tous les destinataires de type
+ « classe » ou « groupe » (d'enseignement uniquement) sont
+ supprimés. L'information sur la classe ou le groupe originel
+ est conservée.
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+</chapter>
+
+
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-notes</title>
+ <section>
+ <title>Description générale</title>
+ <para>L'application eliot-notes permet de gérer les notes des élèves
+ dans un établissement. Les devoirs définis, les notes peuvent être saisies. Un calcul des
+ moyennes est effectué par matière, élève, classe et il est possible
+ de consulter et éditer un bulletin par période.
+ </para>
+ </section>
+
+ <section>
+
+ <title>Configuration</title>
+ <para>L'application eliot-notes charge son fichier de configuration dont
+ l'accès et le nom sont renseignés par la variable
+ <filename>eliot-notes.config.location</filename>
+ (voir configuration de Tomcat).
+ </para>
+ <para>Le contenu du fichier de configuration est le suivant :</para>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <xi:include href="common/config-base-scolarite.xml"/>
+
+ <variablelist>
+ <bridgehead>Paramètres</bridgehead>
+
+ <varlistentry>
+ <term>Délai initial de lancement du job de calcul des moyennes (en ms)
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.triggerCalculMoyennes.startDelay = 1000</programlisting>
+ <para>au bout d'1 s par ex</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Intervalle entre deux vérification s'il y a des moyennes à recalculer (en ms)
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.triggerCalculMoyennes.repeatInterval = 10000</programlisting>
+ <para>Toutes les 10 secondes.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Intervalle entre deux vérification s'il y a des moyennes Ã
+ recalculer (en ms)
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.triggerCalculMoyennes.repeatInterval = 10000 //(toutes les 10 secondes)</programlisting>
+
+ <para>Afin de limiter une attente dans l'affichage de certains écrans qui contiennent des moyennes, des jobs sont lancés périodiquement pour s'assurer que les moyennes sont à jour. On peut régler ce paramètre à 120000 par exemple – toutes les 2 mn)
+ </para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Validité d'un verrou</term>
+ <listitem>
+ <programlisting>eliot.notes.calculMoyennes.verrou.expiration.periode = 3600000
+ // 1 heure.</programlisting>
+
+ <para>Si on trouve un verrou plus vieux que cette période, on l'enlève présumant que le serveur a été arrêté brutalement et que le verrou n'est plus valide.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Dossier de stockage des documents générés par publipostage
+ </term>
+ <listitem>
+ <programlisting>eliot.publipostage.stockageFichier.chemin = 'dossier_appli/publipostage'</programlisting>
+ <para>Ce dossier doit être accessible en lecture/écriture
+ par
+ tomcat
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Délai initial de lancement du job de publipostage (en ms)
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.triggerNotesPublipostage.startDelay = 10000</programlisting>
+ <para>Si cette valeur est à 0, le job est arrêté.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Intervalle de répétition du job de publipostage (en ms)
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.triggerNotesPublipostage.repeatInterval = 30000</programlisting>
+ <para>Si cette valeur est à 0, le job est arrêté.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Nombre de lignes par pages dans le suivi des demandes de
+ traitements du publipostage
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.publipostage.suivi.nombreLignesParPage = 50</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Nombre de lignes par pages dans l'historique du publipostage pour les élèves</term>
+ <listitem>
+ <programlisting>eliot.notes.publipostage.historique.nombreLignesParPage = 50</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Nombre de lignes par pages dans la sélection de l'export postbac
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.exportPostbac.selection.nombreLignesParPage = 25</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Délai initial de lancement du job d'export PostBac après
+ déploiement en ms
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.triggerNotesAdmissionPostBac.startDelay = 10000</programlisting>
+ <para>Si cette valeur est à 0, le job est arrêté.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Intervalle de répétition du job d'export PostBac en ms
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.triggerNotesAdmissionPostBac.repeatInterval=60000</programlisting>
+ <para>Si cette valeur est à 0, le job est arrêté.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Chemin de stockage des fichiers pour l'export postbac
+ </term>
+ <listitem>
+ <programlisting>eliot.admissionpostbac.stockageFichier.chemin ='dossier_appli/adminpostbac'</programlisting>
+ <para>Ce dossier doit être accessible en lecture/écriture par tomcat.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Nombre de lignes par pages dans la sélection de l'export Notanet</term>
+ <listitem>
+ <programlisting>eliot.notes.notanet.selection.nombreLignesParPage = 25 </programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Démarrage du job d'export Notanet après déploiement en ms
+ </term>
+ <listitem>
+ <programlisting>eliot.notes.triggerNotesExportNotanet.startDelay=10000</programlisting>
+ <para>Si cette valeur est à 0, le job est arrêté.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Délais de répétition du job d'export Notanet en ms</term>
+ <listitem>
+ <programlisting>eliot.notes.triggerNotesExportNotanet.repeatInterval = 60000</programlisting>
+ <para>Si cette valeur est à 0, le job est arrêté.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Chemin de stockage des fichiers pour l'export Notanet
+ </term>
+ <listitem>
+ <programlisting>eliot.export.notanet.stockageFichier.chemin = dossier_appli/notanet</programlisting>
+ <para>Ce dossier doit être accessible en lecture/écriture par tomcat.
+ </para>
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+
+ <term>Activation ou non du module de maintenance</term>
+ <listitem>
+ <programlisting>eliot.notes.maintenance.donnees = false</programlisting>
+ <para>A mettre à False après un premier traitement. Ce module est chargé de remplacer, dans les évaluations, les caractères HTML par des caractères accentués corrects.
+ </para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term>Désactivation du module de gestion Notanet</term>
+ <listitem>
+ <programlisting>eliot.notes.notanet.actif = false</programlisting>
+ <para>L'activation de ce service est réservé à certains intégrateurs.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </section>
+ <section>
+ <title>Installation d'une instance particulière de Notes</title>
+ <para>L'application eliot-Notes est composée de l'application de gestion
+ des notes mais également de 3 jobs qui peuvent se déclencher Ã
+ intervalles réguliers (selon la configuration ci-dessus) :
+ </para>
+
+ <orderedlist>
+ <listitem>
+ <para>job de recalcul des moyennes</para>
+ </listitem>
+ <listitem>
+ <para>job de traitement asynchrone des publipostages</para>
+ </listitem>
+ <listitem>
+ <para>job de traitement asynchrone des exports vers
+ AdminPostbac
+ </para>
+ </listitem>
+ <listitem>
+ <para>job de traitement asynchrone des exports vers Notanet
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <para>Afin que les jobs ne chargent l'application de gestion, il est
+ vivement conseillé de déployer :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>plusieurs instances de notes dans lesquels tous les jobs
+ ont été désactivés. Ces instances seront bien entendu
+ accessibles par le load-balancer.
+ </para>
+ </listitem>
+ <listitem>
+ <para>un instance de notes pour laquelle les jobs sont activés.
+ Cette instance ne sera pas accessible par le load-balancer.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>Cela sous-entend que l'instance isolée aura sa propre
+ configuration, les autres pourront avoir une configuration commune.
+ </para>
+ </section>
+ <section>
+ <title>Page de maintenance</title>
+ <para>L'application eliot-notes dispose d'une page de maintenance
+ accessible uniquement à un correspondant de déploiement.
+ </para>
+ <para>Cette page est accessible sur l'adresse : <filename><url_eliot_notes>/maintenance</filename>
+ et permet de réaliser l'opération suivante :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>Bascule d'année : hors maintenance, cette page permet de
+ vérifier que la bascule d'année s'est bien passée. La
+ bascule d'année de l'application Notes s'effectue
+ effectivement via un SCRIPT_SQL
+ </para>
+ </listitem>
+ <listitem>
+ <para>Maintenance technique :cette page permet d'accéder à des
+ informations techniques sur l'environnement d'exécution de
+ l'application.
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+</chapter>
+
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-scolarite</title>
+ <section>
+ <title>Description générale</title>
+ <para>L'application eliot-scolarite permet de déposer les fichiers STS
+ générés par les logiciels d'emploi du temps. Ces fichiers seront
+ importés dans la base d'eliot par l'application
+ eliot-demon-scolarite.
+ </para>
+ </section>
+ <section>
+ <title>Configuration</title>
+ <para>L'application eliot-scolarite charge son fichier de configuration
+ dont l'accès et le nom sont renseignés par la variable
+ <filename>eliot-scolarite.config.location</filename> (voir configuration de Tomcat).
+ </para>
+ <para>Le contenu du fichier de configuration est le suivant :</para>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <xi:include href="common/config-base-docs.xml"/>
+
+ <xi:include href="eliotscolarite/parametres.variablelist"/>
+
+ </section>
+ <section>
+ <title>Page de maintenance</title>
+
+ <para>L'application eliot-scolarite dispose d'une page de maintenance
+ accessible uniquement à un correspondant de déploiement.
+ </para>
+ <para>Cette page est accessible sur l'adresse : <code><![CDATA[<url_eliot_scolarite>/maintenance]]></code>
+ et permet de réaliser l'opération suivante :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>Bascule d'année : cette page permet de procéder à la
+ bascule d'année (dernière étape) et de visualiser les
+ rapports d'exécution. Lors de cette bascule, tous les
+ services et structures d'enseignement de l'année sont
+ supprimés, les rapports et autres fichiers STS sont
+ supprimés également et  l'année scolaire est basculée sur
+ l'année suivante.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Statistiques Scolarite : cette page donne des informations
+ quantitatives sur la base eliot-scolarite :
+ <itemizedlist>
+ <listitem>le nombre d'établissements (actifs / au total)</listitem>
+ <listitem>le nombre matières</listitem>
+ <listitem>le nombre d'enseignement  (actifs / au total)</listitem>
+ <listitem>le nombre de structures d'enseignement (actifs / au total) avec possibilité de filtrer sur un établissement</listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Statistiques Annuaire : cette page donne des informations
+ quantitatives sur le contenu de l'annuaire eliot. On y
+ retrouve :
+ <itemizedlist>
+ <listitem>le nombre d'établissements (actifs / au total)</listitem>
+ <listitem>le nombre de structures d'enseignement (actifs / au total)</listitem>
+ <listitem>le nombre d'utilisateurs(actifs / au total)</listitem>
+ <listitem>le nombre de classes (actives / au total)</listitem>
+ <listitem>le nombre de groupes (actifs / au total) avec possibilité de filtrer sur un établissement</listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Consultation de l'annuaire : cette page permet de faire des
+ recherches diverses sur les utilisateurs dans l'annuaire
+ eliot. Elle dispose d'un ensemble de critères pour filtrer
+ les informations des utilisateurs.
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+</chapter>
+
+
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-tdbase</title>
+ <section>
+ <title>Description générale</title>
+ <para>L'application eliot-tdbase permet aux enseignants de gérer des sujets
+ de devoir, avec des questions de différents types.
+ </para>
+ <para>Des séances de devoirs sont alors mis en ligne, accessibles aux élèves
+ pour les effectuer et aux parents pour les contrôler. L'application permet
+ aux enseignants de partager leurs sujets.
+ </para>
+ <para>Enfin, l'application peut générer des devoirs dans l'application Notes
+ et y associer les notes obtenues, et créer des activités, correspondant
+ aux séances, dans les cahiers de textes
+ </para>
+ </section>
+ <section>
+ <title>Configuration</title>
+ <para>L'application eliot-tdbase charge son fichier de configuration dont
+ l'accès et le nom sont renseignés par la variable
+ <parameter>eliot-tdbase.config.location</parameter>
+ (voir configuration de Tomcat).
+ </para>
+
+ <xi:include href="common/log4j.xml"/>
+
+ <variablelist>
+ <bridgehead>Paramètres</bridgehead>
+ <varlistentry>
+ <term>L'URL d'accès à l'application</term>
+ <listitem>
+ <programlisting><![CDATA[grails.serverURL = "http://<serveur_tomcat>/eliot-tdbase"]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Mode d'accès à l'url du serveur</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.urlResolution.mode = "ANNUAIRE_PORTEUR"]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Paramétrage de CAS (utilisation d'un CAS standard)</term>
+ <listitem>
+ <programlisting><![CDATA[grails.plugins.springsecurity.cas.active = true
+grails.plugins.springsecurity.cas.loginUri = '/login'
+grails.plugins.springsecurity.cas.serviceUrl
+ = "http://<serveur_tomcat>/eliot-tdbase/j_spring_cas_security_check"
+grails.plugins.springsecurity.cas.serverUrlPrefix = 'http://<serveur_CAS>'
+grails.plugins.springsecurity.cas.proxyCallbackUrl =
+ "http://<serveur_tomcat>/eliot-tdbase/secure/receptor"
+grails.plugins.springsecurity.cas.proxyReceptorUrl = '/secure/receptor'
+]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Paramétrage de CAS (utilisation d'un CAS non standard)</term>
+ <listitem>
+ <programlisting><![CDATA[grails.plugins.springsecurity.cas.active = false
+eliot.portail.lilieCasActive = true
+eliot.portail.continueAfterUnsuccessfullCasLilieAuthentication = false
+]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Paramétrage d'accès aux WS d'eliot-textes</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.webservices.rest.client.textes = {
+ user = "api"
+ password = "api"
+ urlServer = "<serveur_interne_textes>"
+ uriPrefix = "/eliot-textes-<version>/echanges/v2"
+ uriPrefix = "/eliot-textes-<version>/echanges/v2"
+ connexionTimeout = 5000 // ms
+}]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Paramétrage d'accès aux WS d'eliot-notes</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.webservices.rest.client.notes = {
+ user = "api"
+ password = "api"
+ urlServer = "<serveur_interne_notes>"
+ uriPrefix = "/eliot-notes-<version>/echanges/v2"
+ connexionTimeout = 5000 // ms
+}]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Paramètres à utiliser tels quels - ne pas modifier</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.interfacage.strongCheck = true
+eliot.portail.lilie = true
+eliot.bootstrap.migration = false
+eliot.bootstrap.jeudetest = false
+eliot.portail.menu.affichage = false
+eliot.portail.menu.liens = []
+eliot.portail.news = []
+]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Racine de l'espace du serveur pour stockage des documents</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.fichiers.racine = '<dossier_appli>/tdbase']]></programlisting>
+ <para>Ce dossier doit être accessible en lecture/écriture pour
+ tomcat.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Taille maximum des documents - en Mo</term>
+ <listitem>
+ <programlisting><![CDATA[eliot.fichiers.maxsize.mega = 10]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Connexion à la base de donnée</term>
+ <listitem>
+ <programlisting><![CDATA[dataSource {
+ jndiName = 'java:comp/env/jdbc/ELIOT_SCOLARITE'
+}
+]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>url des manuels utilisateurs par profil (fonction utilisateur)
+ </term>
+ <listitem>
+ <programlisting><![CDATA[eliot.manuels.documents.urlMap = [
+ ENS: "/aide/documents/Manuel_Utilisateur_TDBase_Enseignant.pdf",
+ ELEVE: "/aide/documents/Manuel_Utilisateur_TDBase_Eleve.pdf",
+ PERS_REL_ELEVE: "/aide/documents/Manuel_Utilisateur_TDBase_Parent.pdf"
+]]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Les dimensions du div « container » de l'application à prendre en
+ compte si nécessaire
+ </term>
+ <listitem>
+ <programlisting><![CDATA[eliot.pages.container.forceDimensions = true]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Hauteur en pixel laissée à l'application</term>
+ <listitem>
+ <para>Ne s'applique que si forceDimensions est à true</para>
+ <programlisting><![CDATA[eliot.pages.container.height = 600]]></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Largeur en pixel laissée à l'application</term>
+ <listitem>
+ <para>Ne s'applique que si forceDimensions est à true</para>
+ <programlisting><![CDATA[eliot.pages.container.width = 931]]></programlisting>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+</chapter>
+
--- /dev/null
+<!--
+ ~ Copyright © FYLAB and the Conseil Régional d'Île-de-France, 2009
+ ~ This file is part of L'Interface Libre et Interactive de l'Enseignement (Lilie).
+ ~
+ ~ Lilie is free software. You can redistribute it and/or modify since
+ ~ you respect the terms of either (at least one of the both license) :
+ ~ - under the terms of the GNU Affero General Public License as
+ ~ published by the Free Software Foundation, either version 3 of the
+ ~ License, or (at your option) any later version.
+ ~ - the CeCILL-C as published by CeCILL-C; either version 1 of the
+ ~ License, or any later version
+ ~
+ ~ There are special exceptions to the terms and conditions of the
+ ~ licenses as they are applied to this software. View the full text of
+ ~ the exception in file LICENSE.txt in the directory of this software
+ ~ distribution.
+ ~
+ ~ Lilie is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ~ Licenses for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ and the CeCILL-C along with Lilie. If not, see :
+ ~ <http://www.gnu.org/licenses/> and
+ ~ <http://www.cecill.info/licences.fr.html>.
+ -->
+
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>eliot-textes</title>
+ <section>
+ <title>Description générale</title>
+ <para>L'application eliot-textes permet aux enseignants de gérer des
+ cahiers de textes en ligne et de les partager. Les activités en
+ classe et à la maison peuvent être enrichies de support et faire
+ l'objet de discussions.
+ </para>
+ </section>
+ <section>
+ <title>Configuration</title>
+ <para>L'application eliot-textes charge son fichier de configuration
+ dont l'accès et le nom sont renseignés par la variable
+ eliot-textes.config.location (voir configuration de Tomcat).
+ </para>
+ <para>Le contenu du fichier de configuration est le suivant :</para>
+
+ <xi:include href="common/log4j.xml"/>
+ <xi:include href="common/config-base-scolarite.xml"/>
+
+ <variablelist>
+ <bridgehead>Paramètres</bridgehead>
+
+ <varlistentry>
+
+ <term>
+ Indexation des cahiers et activités
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.indexation = true</programlisting>
+
+ <para>
+ <para>Dans le cas où un sytème
+ d'indexation, type <application>SOLR</application>, est en place, si ce
+ paramètre
+ est Ã
+ true, eliot envoie au système
+ indexation
+ les éléments du cahier à indexer.
+ </para>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>
+ Dossier de dépôt des fichiers d'import (récupération de
+ données externes)
+ </term>
+ <listitem>
+ <programlisting><![CDATA[eliot.textes.racineDossiersImport= '<dossier_appli>/importcdt/]]></programlisting>
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>
+ Taille maxi (en méga-octets) d'un fichier (fichier de
+ progression
+ ou support)
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.fichier.tailleMax.megaOctets = 5</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Dossier de stockage des visas de cdt</term>
+ <listitem>
+ <programlisting>eliot.textes.racineRessourcesApplication = dossier_appli</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Nombre de lignes par page de résultat sur la recherche
+ d'activités.
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.activites.recherche.nombreLignesParPage=100</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Autorise ou non l'accès à agenda depuis textes</term>
+ <listitem>
+ <programlisting>eliot.textes.liaison.agenda.actif = true</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Dans la fenêtre de présentation des titres du catalogue,
+ nombre de
+ résultats par page
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.liaison.catalogue.nombreLignesParPage = 20</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Mode de stockage par défaut des nouvelles pièces jointes
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.datastore.defaut ='FILE'</programlisting>
+ <para>Les valeurs possibles sont : DB ou FILE</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Nombre de fichiers à vérifier dans l'ordre décroissant des
+ id
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.datastore.verification.fichiers.derniers.nb=100</programlisting>
+ <para>La valeur -1 lance le test sur tous les fichiers.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Tolérance en nombre de tests sur les derniers fichiers
+ créés
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.datastore.verification.fichiers.derniers.tolerance=10</programlisting>
+ <para>C'est le nombre en-dessous duquel on considère que le
+ datastore
+ est viable malgré les fichiers absents. La valeur 0
+ indique
+ aucune
+ tolérance
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Nombre de fichiers choisis aléatoirement à vérifier</term>
+ <listitem>
+ <programlisting>eliot.textes.datastore.verification.fichiers.aleatoire.nb=100</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Tolérance en nombre de tests sur des fichiers choisis
+ aléatoirement
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.datastore.verification.fichiers.aleatoire.tolerance = 10</programlisting>
+
+
+ <para>C'est le nombre en-dessous duquel on considère que le
+ datastore
+ est viable malgré les fichiers absents. La valeur 0
+ indique
+ aucune
+ tolérance
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Lance un test intégral de vérification des fichiers au
+ lancement
+ de l'application
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.datastore.verification.fichiers.lecture=false</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+
+ <term>Mode de gestion du dépassement des seuils de vérification
+ </term>
+ <listitem>
+ <programlisting>eliot.textes.datastore.verification.surErreur = 'APPLICATION_INACCESSIBLE'</programlisting>
+ <para>Les valeur possibles sont :
+ <itemizedlist>
+ <listitem><code>APPLICATION_ACCESSIBLE</code></listitem>
+ <listitem><code>DATASTORE_INACCESSIBLE</code></listitem>
+ <listitem><code>LOG_UNIQUEMENT</code></listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+
+
+ <term>Fréquence de sauvegarde du frontOffice</term>
+ <listitem>
+ <programlisting>eliot.frequenceSauvegardeFrontOffice = 750</programlisting>
+ <para>Intervalle de sauvegarde du FrontOffice en session – en ms.
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ </variablelist>
+
+ </section>
+
+
+ <section>
+ <title>Page de maintenance</title>
+ <para>L'application eliot-textes dispose d'une page de maintenance
+ accessible uniquement à un correspondant de déploiement.
+ </para>
+ <para>Cette page est accessible sur l'adresse : <filename><url_eliot_textes>/maintenance</filename>
+ et permet de réaliser les opérations suivantes :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>Statistiques : cette page donne un certain nombre
+ d'informations sur la volumétrie des principales tables
+ utilisées par l'application.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bascule d'année : cette page permet de procéder à la
+ bascule d'année et de visualiser les rapports d'exécution.
+ Lors de cette bascule, les cahiers de textes de services
+ sont archivés dans un dossier nommé « Cahiers archivés
+ 20XX-20XX » pour chaque utilisateur concerné, et les
+ permissions liées à des groupes d'enseignement (hors groupe
+ ENT ou de personnel) des cahiers privés sont supprimées.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Import cahiers de textes :cette page permet d'importer les
+ cahiers de textes issus des établissements d'expérimentation
+ et de visualiser les rapports d'import. Ces cahiers de
+ textes sont stockés dans un dossier « Cahiers importés »
+ pour chaque utilisateur concerné.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Gestion des pièces jointes : cette page permet de gérer
+ les pièces jointes (documents liés aux activités et aux
+ cahiers de textes) stockés dans la base eliot_scolarite.On
+ peut ainsi connaître la répartition des documents dans la
+ base et sur le disque, demander le transfert des fichiers de
+ la base de données vers le disque, et enfin, procéder au
+ nettoyage de l'espace disque (suppression physique des
+ documents qui ne sont plus utilisés).En ce qui concerne le
+ transfert, il est possible de lancer le traitement de
+ transfert sur l'ensemble ou non des documents de la base en
+ limitant la durée du transfert.
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+ <section>
+ <title>Traitement de vérification des pièces jointes</title>
+ <para>Au lancement de l'application eliot-textes, et selon ce qui a été
+ paramétré (voir point 12.2), l'application s'assure que les
+ documents référencés dans la base de données, transférés sur disque
+ (via la page de maintenance) ou créés directement sur disque (par
+ défaut si on a : <parameter>eliot.textes.datastore.defaut = 'FILE'</parameter> ), sont bien
+ accessibles.
+ </para>
+ <para>Le test est effectué en 2 traitements distincts :</para>
+ <orderedlist>
+ <listitem>
+ <para>tests des derniers fichiers créés,</para>
+ </listitem>
+ <listitem>
+ <para>tests aléatoire des fichiers choisis sur l'ensemble de la
+ base.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>Ces tests ont été mis en place pour prévenir d'un problème d'accès
+ Ã l'espace de stockage des documents et permettre au service de
+ maintenance d'intervenir.
+ </para>
+ <para>Les seuils de tolérance mis en place et le mode gestion de
+ l'erreur permet à l'administrateur du NAS de gérer la criticité de
+ la situation (démarrage ou non de l'application).
+ </para>
+ </section>
+
+ <section>
+ <title>Impression du cahier de textes en pdf</title>
+
+ <section>
+ <title>Installation</title>
+ <para>Pour imprimer le cahier de textes en pdf, on doit au préalable
+ installer un serveur de webservices spécifique pour cette tâche.
+ Ce serveur de webservices se présente sous la forme d'un fichier war (
+ <filename>eliot-webservices-XXXX.war</filename>) Ã installer
+ dans une machine tomcat. Ce web service ne nécessite pas de
+ paramétrage, ni de base de données. Par contre en ce qui
+ concerne eliot-textes on doit déclarer l'adresse du webservice
+ dans le fichier
+ <filename>config.groovy</filename>
+ :
+ </para>
+
+
+ <programlisting format="java">// adresse du serveur de convertion docbook vers pdf
+ eliot.url.webservices="http://serveur/eliot-webservices"<co id="url-co" linkends="url" />
+ eliot.textes.impression.stockageFichier.chemin = ''<co id="path-co" linkends="path" />
+</programlisting>
+
+ <calloutlist>
+ <callout arearefs="url-co" id="url" >
+ <para>Adresse du webservice vu depuis eliot-textes</para>
+ </callout>
+ <callout arearefs="path-co" id="path">
+ <para>Zone disque de stockage temporaire pour les fichiers PDF.</para>
+ </callout>
+ </calloutlist>
+
+ <warning>
+ Il faut bien entendu que l'application textes puissent avoir les accès réseaux à l'application eliot-webservices.
+ </warning>
+
+ <para>
+ Une partie de la gestion de l'impression des cahiers de textes est différée et est gérée par un job. Celui-ci doit-être paramétré dans le fichier de configuration d'eliot-textes.
+<programlisting>// Démarrage du job d'impression après déploiement en ms (0 = arrêt du job)
+eliot.textes.triggerImpression.startDelay = 60 * 1000
+
+// Délais de répétition du job d'impression en ms (0 = arrêt du job)
+eliot.textes.triggerImpression.repeatInterval = 60 * 1000</programlisting>
+
+Le service fonctionne mieux, en particulier pour l'impression directe du cahier de textes, si la valeur de <parameter>repeatInterval</parameter> ne dépasse pas quelques secondes. (5 maximum)
+
+ </para>
+
+ <note>
+ Ce serveur de webservices assure aussi la transformation des équations mathématiques en bitmap. Ce service sert à l'affichage des équations et à leur impression. il n'y a aucun paramétrage en ce qui concerne cette partie, y compris du coté d'eliot-textes.
+ </note>
+
+ </section>
+
+ <section>
+ <title>Résolution de problèmes</title>
+ <qandaset defaultlabel='qanda'>
+
+ <qandaentry>
+ <question>
+ <para>
+ Que faire si l'on a une erreur technique dans la
+ fenêtre d'impression au moment de l'impression ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Il faut consulter le log pour avoir plus
+ d'information. En cas d'erreur HTTP 404 voir la
+ question suivante.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>
+ Que faire si l'on a une erreur 404 dans le log au
+ moment de l'impression ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Vérifier si le serveur de webservice est lancé. Pour
+ cela, on doit lancer l'adresse du webservices (Celle
+ qui est paramétrée dans<filename>
+ config.groovy</filename>) dans un navigateur. Le
+ serveur de webservice doit répondre.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Que se passe t-il avec les équations lorsque le webservice n'est pas disponible ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ A l'affichage les équations apparaitrons sous forme de chaines de caractères. Elles ne seront pas imprimées, car dans ce cas le service d'impression des cahiers de textes n'est pas disponible.
+ </para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+
+ </section>
+
+ </section>
+
+
+</chapter>
+
--- /dev/null
+<variablelist xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <bridgehead>Paramètres</bridgehead>
+
+ <varlistentry>
+ <term>
+ <parameter>eliot.absences.incident.consultation.nombreLignesParPage
+ </parameter>
+ </term>
+ <listitem>
+ <para>Nombre de lignes par page dans la grille de consultation des
+ incidents
+ </para>
+ <programlisting>eliot.absences.incident.consultation.nombreLignesParPage = 30</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>eliot.absences.punition.consultation.nombreLignesParPage
+ </parameter>
+ </term>
+ <listitem>
+ <para>Nombre de lignes par page dans la grille de consultation des
+ punitions
+ </para>
+ <programlisting>eliot.absences.punition.consultation.nombreLignesParPage = 30</programlisting>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>
+ <parameter>eliot.absences.sanction.consultation.nombreLignesParPage
+ </parameter>
+ </term>
+ <listitem>
+ <para>Nombre de lignes par page dans la grille de consultation des
+ sanctions
+ </para>
+ <programlisting>eliot.absences.sanction.consultation.nombreLignesParPage = 30</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.statistique.tableauDeBord.nombreLignesParPage
+ </parameter>
+ </term>
+ <listitem>
+ <para>Nombre de lignes par page dans la grille du tableau de bord
+ </para>
+ <programlisting>eliot.absences.statistique.tableauDeBord.nombreLignesParPage = 50</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.bilan.nombreLignesParPage
+ </parameter>
+ </term>
+ <listitem>
+ <para>Nombre de lignes par page dans la liste multicritères
+ </para>
+ <programlisting>eliot.absences.bilan.nombreLignesParPage = 50</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.publipostage.suivi.nombreLignesParPage
+ </parameter>
+ </term>
+ <listitem>
+ <para>Nombre de lignes par page dans le suivi des demandes de
+ traitements du publipostage
+ </para>
+ <programlisting>eliot.absences.publipostage.suivi.nombreLignesParPage = 50</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.publipostage.historique.nombreLignesParPage
+ </parameter>
+ </term>
+ <listitem>
+ <para>Nombre de lignes par page dans l'historique des élèves
+ </para>
+ <programlisting>eliot.absences.publipostage.historique.nombreLignesParPage = 50</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.triggerAbsencesPublipostage.startDelay
+ </parameter>
+ </term>
+ <listitem>
+ <para> Délai initial de lancement du job de publipostage (en ms) -
+ Si cette valeur est à 0, le job est arrêté</para>
+ <programlisting>eliot.absences.triggerAbsencesPublipostage.startDelay = 10000</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.triggerAbsencesPublipostage.repeatInterval
+ </parameter>
+ </term>
+ <listitem>
+ <para> Intervalle de répétition du job de publipostage (en ms) - Si cette valeur est à 0, le job est arrêté</para>
+ <programlisting>eliot.absences.triggerAbsencesPublipostage.repeatInterval = 30000</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.publipostage.sms.delai
+ </parameter>
+ </term>
+ <listitem>
+ <para> Temps de pause après un envoi d'un sms en ms</para>
+ <programlisting>eliot.absences.publipostage.sms.delai = 0</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.publipostage.sms.trigger.startDelay
+ </parameter>
+ </term>
+ <listitem>
+ <para> Démarrage du job de publipostage des sms après déploiement en ms - Si cette valeur est à 0, le job est arrêté</para>
+ <programlisting>eliot.absences.publipostage.sms.trigger.startDelay = 10000</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.absences.publipostage.sms.trigger.repeatInterval
+ </parameter>
+ </term>
+ <listitem>
+ <para> Délais de répétition du job de publipostage des sms -
+ Si cette valeur est à 0, le job est arrêté</para>
+ <programlisting>eliot.absences.publipostage.sms.trigger.repeatInterval = 30000</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>
+ eliot.publipostage.stockageFichier.chemin
+ </parameter>
+ </term>
+ <listitem>
+ <para> Dossier de stockage des documents générés par publipostage - Important : ce dossier doit être accessible en lecture / écriture par Tomcat</para>
+ <programlisting><![CDATA[eliot.publipostage.stockageFichier.chemin = '<dossier_appli>/publipostage']]></programlisting>
+ </listitem>
+ </varlistentry>
+
+
+ </variablelist>
\ No newline at end of file
--- /dev/null
+<variablelist xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <bridgehead>Paramètres</bridgehead>
+
+ <varlistentry>
+ <term><parameter>eliot.agenda.liaison.textes.actif</parameter></term>
+ <listitem>
+ <para>Activation de la liaison agenda / textes</para>
+ <programlisting>eliot.agenda.liaison.textes.actif = true</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>eliot.textes.nomApplication</parameter></term>
+ <listitem>
+ <para>Nom de l'application eliot-textes (nécessaire pour liaison agenda / textes)</para>
+ <programlisting>eliot.textes.nomApplication = 'eliot-textes-app'</programlisting>
+ <para>L'application « eliot-agenda » reconstitue l'url complète
+ d'accès à « eliot-textes » en utilisant les informations disponibles
+ dans la table des codes porteurs.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
\ No newline at end of file
--- /dev/null
+grails {
+Â Â Â Â mail {
+Â Â Â Â Â Â Â Â host = "smtp.serveur.com"
+Â Â Â Â Â Â Â Â port = 25
+Â Â Â Â Â Â Â Â grails.mail.default.from="no-replay@serveur.com"
+Â Â Â Â Â Â Â Â props = [Â Â Â Â
+ "mail.smtp.auth":"false",
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "mail.smtp.socketFactory.port":"25",
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "mail.smtp.host" : Â "smtp.serveur.com",
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "mail.smtp.submitter" : "no-replay@serveur.com"
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â ]
+Â Â Â Â Â }
+Â Â Â Â quartz {
+Â Â Â Â Â Â Â Â autoStartup = true
+Â Â Â Â Â Â Â Â jdbcStore = false
+Â Â Â Â }
+}
\ No newline at end of file
--- /dev/null
+<programlisting language="java" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/eliotdemondocs/fichiers/config.groovy" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+grails {
+Â Â Â Â quartz {
+Â Â Â Â Â Â Â Â autoStartup = true
+Â Â Â Â Â Â Â Â jdbcStore = false
+Â Â Â Â }
+}
\ No newline at end of file
--- /dev/null
+<programlisting language="java" xmlns="http://docbook.org/ns/docbook"
+ version="5.0" xml:lang="fr"><textobject><textdata fileref="../../src/main/resources/docbook/eliotdemonscolarite/fichiers/config.groovy" /></textobject></programlisting>
\ No newline at end of file
--- /dev/null
+<variablelist xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="fr">
+
+ <bridgehead>Paramètres</bridgehead>
+
+ <varlistentry>
+ <term>Dépôt automatique des fichiers STS pour l'imports STS
+ </term>
+ <listitem>
+ <programlisting>eliot.scolarite.synchronisationUDTv16Activee = false</programlisting>
+ <para>Si true, UnDeuxTEMPS version 18 ou supérieure est
+ installé et on peut faire du dépôt manuel en décochant
+ la case. Si false, le dépôt manuel est obligatoire.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Activation du bouton Synchoniser (pour lancer l'import STS)
+ </term>
+ <listitem>
+ <programlisting>eliot.scolarite.sts.btnSynchroniser = false</programlisting>
+ <para>Valeur par défaut – mettre à true uniquement pour
+ maintenance
+ </para>
+ </listitem>
+ </varlistentry>
+</variablelist>
\ No newline at end of file
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>Environnement</title>
+ <section>
+ <title>Dossiers de travail</title>
+ <para>Les applications ont besoin de pouvoir accéder, par Tomcat, Ã
+ différents dossiers :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>dossier des configurations : dans ce dossier, seront stockés les
+ différents fichiers de configuration des applications (exemple :
+ <filename>/applis/eliot/config</filename>). Un accès en lecture pour
+ Tomcat est
+ suffisant. Il sera appelé
+ <parameter><![CDATA[<dossier_config>]]></parameter>
+ dans ce document.
+ </para>
+ </listitem>
+ <listitem>
+ <para>dossier de travail de JackRabbit : (voir point 2.5.2)</para>
+ </listitem>
+ <listitem>
+ <para>dossier de travail des applications : dans ce dossier, les
+ applications pourront stocker des fichiers transmis, écrire des
+ rapports d'exécution (exemple :
+ <filename>/applis/eliot/temp</filename>
+ ). Un accès en
+ lecture/écriture  est nécessaire pour Tomcat.Il sera appelé
+ <parameter><![CDATA[<dossier_appli>]]></parameter>
+ dans ce document.
+ </para>
+ </listitem>
+ <listitem>
+ <para>dossier de log des applications : dans ce dossier, les applications
+ pourront écrire les différents évènements suivant la configuration de
+ log4j (exemple :<filename>/applis/eliot/logs</filename>). Un accès en
+ lecture/écriture
+  est nécessaire pour Tomcat.Il sera appelé
+ <parameter><![CDATA[<dossier_log>]]></parameter>
+ dans ce
+ document.
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+ <section>
+ <title>
+ Tomcat
+ </title>
+ <para>Le serveur applicatif choisi est tomcat 5.5.</para>
+ <section>
+ <title>
+ Variables systèmes
+ </title>
+ <para>Dans le<filename>catalina.sh</filename>, on doit retrouver des
+ variables systèmes
+ indiquant aux applications Eliot où trouver leur fichier de
+ configuration.
+ </para>
+ <para>Ces variables systèmes sont définies dans la variable
+ d'environnement <parameter>JAVA_OPTIONS</parameter>.
+ </para>
+
+ <formalpara>
+ <title>Exemple :</title>
+ <xi:include href="environnement/java_opts.programlisting"/>
+ </formalpara>
+
+ <variablelist>
+ <title>API du socle Lilie :</title>
+ <varlistentry>
+ <term>
+ API Annuaire
+ </term>
+ <listitem>
+ <filename>
+ annuaire.config
+ </filename>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ API Administration
+ </term>
+ <listitem>
+ <filename>
+ admin.config
+ </filename>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ API de recherche
+ </term>
+ <listitem>
+ <filename>
+ apirecherche.config
+ </filename>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ API portail
+ </term>
+ <listitem>
+ <filename>
+ portail.config
+ </filename>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <title>Modules Eliot :</title>
+ <varlistentry>
+ <term>
+ Configuration commune à tous les modules
+ </term>
+ <listitem>
+ <filename>
+ eliot-demon-scolarite.config.location
+ </filename>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Configuration d'un module Eliot spécifique
+ </term>
+ <listitem>
+ <filename>
+ <![CDATA[<module>]]>.config.location
+ </filename>
+ <para>où <filename><![CDATA[<module>]]></filename> est un module parmi la liste suivante :
+ <itemizedlist>
+ <listitem>eliot-messagerie</listitem>
+ <listitem>eliot-docs</listitem>
+ <listitem>eliot-agenda</listitem>
+ <listitem>eliot-scolarite</listitem>
+ <listitem>eliot-demon-docs</listitem>
+ <listitem>eliot-demon-scolarite</listitem>
+ <listitem>eliot-notes</listitem>
+ <listitem>eliot-absences</listitem>
+ <listitem>eliot-tdbase</listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </section>
+
+
+ <section>
+ <title>Librairies supplémentaires</title>
+ <para>La librairie «<filename>postgresql-9.1-901.jdbc4.jar</filename> »
+ doit être téléchargée
+ et copiée dans le dossier<filename>
+ <![CDATA[<serveur_tomcat>/common/lib]]></filename>.
+ </para>
+ </section>
+ <section>
+ <title>
+ Ressources JNDI
+ </title>
+ <para>Les applications Eliot peuvent se connecter aux bases nécessaires
+ par des liens JNDI qu'il est nécessaire de déclarer dans Tomcat en tant
+ que ressources.
+ </para>
+ <para>Il faut donc :</para>
+ <orderedlist>
+ <listitem>
+ <para>déclarer ces ressources dans le fichier
+ <filename><![CDATA[<serveur_tomcat>/conf/server.xml]]></filename>
+ (voir en annexe le point 17.1.1),
+ </para>
+ </listitem>
+ <listitem>
+ <para>les lier au contexte du serveur dans
+ <filename><![CDATA[<serveur_tomcat>/conf/context.xml]]></filename>
+ (voir en annexe le point 17.1.2)
+ </para>
+ </listitem>
+ </orderedlist>
+ <para/>
+ <para>Dans ces 2 fichiers, l'accès au serveur postgres est nommé
+ <filename><![CDATA[<serveur_postgres>]]></filename>
+ (voir point 2.4).
+ </para>
+ <para/>
+ </section>
+ </section>
+ <section>
+ <title>
+ Java
+ </title>
+ <para>La version de Java est la version 1.6 update 11.</para>
+ <para>La configuration de Tomcat doit surcharger la valeur de
+ <parameter>JAVA_HOME</parameter>
+ en
+ indiquant le chemin d'accès à la machine virtuelle java.
+ </para>
+ </section>
+ <section>
+ <title>
+ Postgres
+ </title>
+ <para>Les applications eliot utilisent le moteur de base de données
+ Postgresql dans sa version 9.1.3 (jusqu'Ã la version 2.7.2, la version
+ était la 8.3).
+ </para>
+ <section>
+ <title>
+ Roles
+ </title>
+ <para>Il est nécessaire de créer les rôles suivants :</para>
+ <orderedlist>
+ <listitem>
+ <para>annuaire (mot de passe : annuaire),</para>
+ </listitem>
+ <listitem>
+ <para>liferay (mot de passe : liferay),</para>
+ </listitem>
+ <listitem>
+ <para>eliot_docs (mot de passe : eliot_docs),</para>
+ </listitem>
+ <listitem>
+ <para>eliot_scolarite (mot de passe : eliot_scolarite),</para>
+ </listitem>
+ <listitem>
+ <para>jackrabbit (mot de passe : jackrabbit).</para>
+ </listitem>
+ </orderedlist>
+ <para/>
+ <para>Ces 5 rôles doivent avoir le profil SUPERUSER. Ils seront utilisés
+ par les différentes applications pour se connecter à la base de données.
+ </para>
+ <para>Ces informations (rôle/mot de passe) seront repris dans les
+ configurations JNDI (voir point 2.2.3).
+ </para>
+ </section>
+ <section>
+ <title>Bases de données</title>
+ <para>4 bases de données sont utilisées par les applications :</para>
+ <orderedlist>
+ <listitem>
+ <para>administration : contient les données des administrateurs du
+ portail (rôle : liferay),
+ </para>
+ </listitem>
+ <listitem>
+ <para>annuaire : contient les données de l'annuaire fédérateur (rôle :
+ annuaire),
+ </para>
+ </listitem>
+ <listitem>
+ <para>eliot_docs : contient l'ensemble des données des applications
+ eliot-docs, eliot-demon-docs et d'eliot-messagerie (rôle :
+ eliot_docs),
+ </para>
+ </listitem>
+ <listitem>
+ <para>eliot_scolarite : contient les données des applications
+ d'eliot-textes, eliot-notes, eliot-absences, eliot-agenda,
+ eliot-scolarite et eliot-demon-scolarite (rôle : eliot_scolarite),
+ </para>
+ </listitem>
+ <listitem>
+ <para>jackrabbit : contient la description du repository (les noeuds)
+ de jackrabbit - mais pas les fichiers  (rôle : jackrabbit) -  voir
+ point 2.5.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>Le serveur postgres sera appelé
+ <filename><![CDATA[<serveur_postgres>]]></filename>
+ dans ce
+ document et représentera le nom de la machine sur lequel tourne le
+ serveur postgres et le port d'écoute (exemple : localhost:5321)
+ </para>
+ <para/>
+ </section>
+ </section>
+ <section>
+ <title>JackRabbit</title>
+ <para/>
+ <warning>Depuis la version 2.5.0, l'application serveur Jackrabbit n'est
+ plus
+ utilisée. On utilise désormais une version de JackRabbit embarquée.
+ Néanmoins, la configuration et le repository sont compatibles. On
+ décrit ici donc la configuration du repository.
+ </warning>
+ <section>
+ <title>Configuration</title>
+ <para>Le repository de JackRabbit est situé dans un répertoire : ce
+ dossier contient à la fois les paramètres de configuration et le
+ repository (exemple :<filename>/serveur/applis/jackrabbit</filename>).
+ Dans la suite de ce
+ document, nous l'appellerons «<filename>dossier_jackrabbit</filename> ».
+ </para>
+ <para/>
+
+ <para>Dans le dossier<filename>dossier_jackrabbit</filename>, qui doit
+ avoir
+ l'arborescence suivante :
+ <xi:include href="environnement/dossier_jackrabbit.screen"/>
+ </para>
+
+
+
+ <para>Des modifications sont à effectuer sur les fichiers de configuration
+ :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>le fichier
+ <filename>bootstrap.properties</filename>
+ doit être modifié tel qu'il
+ est présenté en annexe (voir point 17.2.1).
+ </para>
+ </listitem>
+ <listitem>
+ <para>le fichier
+ <filename>ns_idx.properties</filename>
+ doit être modifié tel qu'il est
+ présenté en annexe (voir point 17.2.2)
+ </para>
+ </listitem>
+ <listitem>
+ <para>le fichier
+ <filename>ns_reg.properties</filename>
+ doit être modifié tel qu'il est
+ présenté en annexe (voir point 17.2.3)
+ </para>
+ </listitem>
+ <listitem>
+ <para>le fichier
+ <filename>custom_nodetypes.xml</filename>
+ (à créer s'il n'existe pas)
+ doit contenir les informations présentées en annexe (voir point
+ 17.2.4).
+ </para>
+ </listitem>
+ <listitem>
+ <para>le fichier
+ <filename>repository.xml</filename>
+ doit être modifié tel qu'il est
+ présenté en annexe (voir point 17.2.5).
+ </para>
+ </listitem>
+ <listitem>
+ <para>le fichier
+ <filename>workspace.xml</filename>
+ doit contenir les informations
+ présentées en annexe (voir point 17.2.6).
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+ <section>
+ <title>Utilisation de JackRabbit en mode cluster</title>
+ <para>L'utilisation de JackRabbit en mode cluster devient obligatoire
+ lorsque le nombre d'utilisateurs est important.
+ </para>
+ <para>On trouvera ci-après les paramètres du mode cluster et des  divers
+ opérations à effectuer.
+ </para>
+ <para>Paramétrage</para>
+ <orderedlist>
+ <listitem>
+ <para>la documentation est disponible sur
+ <ulink url="http://wiki.apache.org/jackrabbit/Clustering">
+ http://wiki.apache.org/jackrabbit/Clustering
+ </ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Paramétrage des différents composants de Jackrabbit : </para>
+ </listitem>
+ </orderedlist>
+ <para/>
+ <para>Procédure à suivre pour basculer en mode cluster</para>
+ <para/>
+ <orderedlist>
+ <listitem>
+ <para>Éteindre l'instance actuelle de Jackrabbit</para>
+ </listitem>
+ <listitem>
+ <para>Passer le délai de synchronisation à 2s dans le fichier
+ repository.xml.
+ </para>
+ </listitem>
+ <listitem>
+ <para>déplacer le dossier <RepositoryHome>∕<repository> sur
+ un NAS accessible.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Modifier dans le fichier repository.xml la configuration du
+ FileSystem global pour qu'il référence la nouvelle adresse du
+ dossier repository qui vient d'être déplacé.
+ </para>
+ </listitem>
+ <listitem>
+ <para>A ce stade, l'instance initiale de Jackrabbit peut
+ être redémarré (en démarrant son eliot-docs)
+ </para>
+ </listitem>
+ <listitem>
+ <para>Créer un dossier RepositoryHome sur chaque nouveau noeud
+ Jackrabbit (i.e. sur le serveur faisant tourner l'instance
+ correspondant d'eliot-docs).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Copier le fichier repository.xml du noeud Jackrabbit initial.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Mettre à jour l'ID du noeud dans le fichier repository.xml.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Mettre à jour la config d'eliot-docs pour référencer le bon
+ RepositoryHome.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Lancer la nouvelle instance d'eliot-docs.</para>
+ </listitem>
+ <listitem>
+ <para>Attendre que le nouveau noeud Jackrabbit soit synchronisé avant
+ de l'utiliser (voir les remarques ci-dessous pour ce point).
+ </para>
+ </listitem>
+ </orderedlist>
+ <para/>
+ <para>Informations sur les tables de gestion du cluster (dans la base de
+ données de Jackrabbit)
+ </para>
+ <para/>
+ <orderedlist>
+ <listitem>
+ <para>cluster_global_revision : stocke le nombre d'opérations
+ effectuées sur le repository
+ </para>
+ </listitem>
+ <listitem>
+ <para>cluster_journal : stocke chaque opération effectuée, ainsi que
+ le noeud qui a effectué l'opération
+ </para>
+ </listitem>
+ <listitem>
+ <para>cluster_local_revisions : stocke pour chaque noeud le numéro de
+ révision courant (pour déterminer quelles révisions doivent être
+ prises en compte à la prochaine synchronisation)
+ </para>
+ </listitem>
+ </orderedlist>
+ <para/>
+ <para>Remarques importantes</para>
+ <para/>
+ <para>1. Démarrage d'un nouveau noeud Jackrabbit</para>
+ <para>Au démarrage d'un nouveau noeud Jackrabbit, celui-ci va devoir se
+ synchroniser toutes les modifications effectuées depuis la mise en prod
+ initiale.
+ </para>
+ <para>Il faut s'attendre à ce que cette opération prenne un peu de temps
+ (notamment pour la reconstruction intégrale des index lucene) suivant le
+ volume des données ; il est relativement difficile d'estimer ce temps.
+ </para>
+ <para/>
+ <para>Il est recommandé d'activer les log au niveau INFO de Jackrabbit,
+ pour vérifier dans les logs ce qui se passe (on y voit les opérations de
+ synchro), et d'attendre que l'instance soit à jour avant de l'utiliser.
+ </para>
+ <para/>
+ <para>2. Suppression du journal des anciennes révisions</para>
+ <para>Il existe un job dans Jackrabbit qui fait le ménage dans le journal
+ en enlevant les anciennes révisions.
+ </para>
+ <para>Ce job n'est pas actif par défaut.</para>
+ <para>Il ne faut surtout pas activer ce job ! Avec un historique partiel,
+ l'opération d'ajout d'un nouveau noeud est beaucoup plus complexe, et
+ non maitrisée à ce jour.
+ </para>
+ <para/>
+ <para>3. Brancher une webapp Jackrabbit sur le cluster</para>
+ <para>Il peut être intéressant de déployer une webapp Jackrabbit (celle
+ qui était jusqu'à présent utilisée pour le mode WebDAV) sur le cluster.
+ </para>
+ <para>Cette webapp offre la possibilité de browser le contenu du
+ repository.
+ </para>
+ <para>De plus, cette Webapp permettra par la suite d'offrir un accès
+ WebDAV au repository.
+ </para>
+ <para/>
+ <para/>
+ </section>
+ </section>
+ <section>
+ <title>SOLR</title>
+ <para>Certaines applications eliot (eliot-textes, eliot-messagerie) peuvent
+ appeler le moteur d'indexation SOLR pour indexer leurs données.
+ </para>
+ <para>Dans ce cas, on définit au niveau de Tomcat, dans le<filename>
+ catalina.sh</filename>, pour
+ l'application SOLR, l'accès à ses données :
+ </para>
+ <para>
+ <programlisting>JAVA_OPTS = "$JAVA_OPTS -Dsolr.solr.home=/serveur/solr/data"</programlisting>
+ </para>
+ <para/>
+ </section>
+</chapter>
+
--- /dev/null
+<screen xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+>bootstrap.properties
+repository
+ meta
+ rootUUID
+ namespaces
+ ns_idx.properties
+ ns_reg.properties
+ nodetypes
+ custom_nodetypes.xml
+ repository.xml
+ workspaces
+ workspace.xml</screen>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[JAVA_OPTS="$JAVA_OPTS \
+ -Dannuaire.config=<dossier_config>/config_api-annuaire.properties"]]></programlisting>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M10.428,10.411h0.56c3.78,0,4.788-1.96,4.872-3.444h3.22v19.88h-3.92V13.154h-4.732V10.411z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.815,10.758h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.11H3.815V10.758z"/>
+ <path style="fill:#FFFFFF;" d="M22.175,7.806c4.009,0,5.904,2.76,5.904,8.736c0,5.975-1.896,8.76-5.904,8.76
+ c-4.008,0-5.904-2.785-5.904-8.76C16.271,10.566,18.167,7.806,22.175,7.806z M22.175,22.613c1.921,0,2.448-1.68,2.448-6.071
+ c0-4.393-0.527-6.049-2.448-6.049c-1.92,0-2.448,1.656-2.448,6.049C19.727,20.934,20.255,22.613,22.175,22.613z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M5.209,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H5.209V10.412z"/>
+ <path style="fill:#FFFFFF;" d="M18.553,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.359V12.764h-4.056V10.412z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M4.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.813V10.412z"/>
+ <path style="fill:#FFFFFF;" d="M17.316,13.484c0-5.545,4.056-6.024,5.568-6.024c3.265,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.553,5.544c-2.256,1.584-3.432,2.353-3.815,3.145h7.392V24.5h-11.64c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.353-2.424c-2.352,0-2.423,1.944-2.447,3.192H17.316z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H3.813V10.412z"/>
+ <path style="fill:#FFFFFF;" d="M20.611,14.636h0.529c1.008,0,2.855-0.096,2.855-2.304c0-0.624-0.288-2.185-2.137-2.185
+ c-2.303,0-2.303,2.185-2.303,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.279,0,5.279,1.152,5.279,4.752
+ c0,1.728-1.08,2.808-2.039,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.377,5.496-5.809,5.496
+ c-1.607,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.52-0.911,2.52-2.808
+ c0-2.328-2.256-2.424-3.816-2.424V14.636z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M4.146,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.146V10.412z"/>
+ <path style="fill:#FFFFFF;" d="M28.457,20.732h-1.896V24.5h-3.36v-3.768h-6.72v-2.904L22.746,7.46h3.815v10.656h1.896V20.732z
+ M23.201,18.116c0-4.128,0.072-6.792,0.072-7.32h-0.048l-4.272,7.32H23.201z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.479,11.079h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.43H3.479V11.079z"/>
+ <path style="fill:#FFFFFF;" d="M19.342,14.943c0.625-0.433,1.392-0.937,3.048-0.937c2.279,0,5.16,1.584,5.16,5.496
+ c0,2.328-1.176,6.121-6.192,6.121c-2.664,0-5.376-1.584-5.544-5.016h3.36c0.144,1.391,0.888,2.326,2.376,2.326
+ c1.607,0,2.544-1.367,2.544-3.191c0-1.512-0.72-3.047-2.496-3.047c-0.456,0-1.608,0.023-2.256,1.223l-3-0.143l1.176-9.361h9.36
+ v2.832h-6.937L19.342,14.943z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H3.813V10.412z"/>
+ <path style="fill:#FFFFFF;" d="M24.309,11.78c-0.097-0.96-0.721-1.633-1.969-1.633c-2.184,0-2.688,2.496-2.808,4.704L19.58,14.9
+ c0.456-0.624,1.296-1.416,3.191-1.416c3.529,0,5.209,2.712,5.209,5.256c0,3.72-2.28,6.216-5.568,6.216
+ c-5.16,0-6.168-4.32-6.168-8.568c0-3.24,0.432-8.928,6.336-8.928c0.695,0,2.641,0.264,3.48,1.104
+ c0.936,0.912,1.271,1.416,1.584,3.217H24.309z M22.172,16.172c-1.271,0-2.568,0.792-2.568,2.928c0,1.849,1.056,3.168,2.664,3.168
+ c1.225,0,2.353-0.936,2.353-3.239C24.62,16.868,23.229,16.172,22.172,16.172z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.479,11.079h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.43H3.479V11.079z"/>
+ <path style="fill:#FFFFFF;" d="M27.838,11.006c-1.631,1.776-5.807,6.816-6.215,14.16h-3.457c0.36-6.816,4.632-12.24,6.072-13.776
+ h-8.472l0.072-2.976h12V11.006z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M4.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.813V10.412z"/>
+ <path style="fill:#FFFFFF;" d="M23.172,24.956c-4.392,0-5.904-2.856-5.904-5.185c0-0.863,0-3.119,2.592-4.319
+ c-1.344-0.672-2.064-1.752-2.064-3.336c0-2.904,2.328-4.656,5.304-4.656c3.528,0,5.4,2.088,5.4,4.44
+ c0,1.464-0.6,2.712-1.968,3.432c1.632,0.815,2.544,1.896,2.544,4.104C29.076,21.596,27.684,24.956,23.172,24.956z M23.124,16.916
+ c-1.224,0-2.4,0.792-2.4,2.64c0,1.632,0.936,2.712,2.472,2.712c1.752,0,2.424-1.512,2.424-2.688
+ C25.62,18.38,24.996,16.916,23.124,16.916z M25.284,12.26c0-1.296-0.888-2.112-1.968-2.112c-1.512,0-2.305,0.864-2.305,2.112
+ c0,1.008,0.744,2.112,2.185,2.112C24.516,14.372,25.284,13.484,25.284,12.26z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M4.146,10.746h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.041h-3.36V13.097H4.146V10.746z"/>
+ <path style="fill:#FFFFFF;" d="M20.225,20.898v0.023c0.192,1.176,0.936,1.68,1.968,1.68c1.392,0,2.783-1.176,2.808-4.752
+ l-0.048-0.049c-0.768,1.152-2.088,1.441-3.24,1.441c-3.264,0-5.16-2.473-5.16-5.329c0-4.176,2.472-6.12,5.808-6.12
+ c5.904,0,6,6.36,6,8.76c0,6.601-3.12,8.736-6.192,8.736c-2.904,0-4.992-1.68-5.28-4.391H20.225z M22.434,16.553
+ c1.176,0,2.472-0.84,2.472-2.855c0-1.944-0.841-3.145-2.568-3.145c-0.864,0-2.424,0.433-2.424,2.88
+ C19.913,16.001,21.161,16.553,22.434,16.553z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M9.668,12.328c0-6.469,4.732-7.028,6.496-7.028c3.808,0,6.833,2.24,6.833,6.271
+ c0,3.416-2.213,5.152-4.145,6.469c-2.632,1.848-4.004,2.744-4.452,3.668h8.624v3.472H9.444c0.14-2.324,0.308-4.76,4.62-7.896
+ c3.584-2.604,5.012-3.612,5.012-5.853c0-1.315-0.84-2.828-2.744-2.828c-2.744,0-2.828,2.269-2.856,3.725H9.668z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+ <path style="fill:#FFFFFF;" d="M23.172,7.46c4.008,0,5.904,2.76,5.904,8.736c0,5.976-1.896,8.76-5.904,8.76
+ s-5.904-2.784-5.904-8.76C17.268,10.22,19.164,7.46,23.172,7.46z M23.172,22.268c1.92,0,2.448-1.68,2.448-6.071
+ c0-4.393-0.528-6.049-2.448-6.049s-2.448,1.656-2.448,6.049C20.724,20.588,21.252,22.268,23.172,22.268z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M5.306,13.151c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392v2.976H5.114c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H5.306z"/>
+ <path style="fill:#FFFFFF;" d="M19.49,10.079h0.48c3.239,0,4.104-1.681,4.176-2.952h2.761v17.04h-3.361V12.431H19.49V10.079z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+ <path style="fill:#FFFFFF;" d="M17.316,13.484c0-5.545,4.056-6.024,5.568-6.024c3.265,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.553,5.544c-2.256,1.584-3.432,2.353-3.815,3.145h7.392V24.5h-11.64c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.353-2.424c-2.352,0-2.423,1.944-2.447,3.192H17.316z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+ <path style="fill:#FFFFFF;" d="M21.612,14.636h0.528c1.008,0,2.855-0.096,2.855-2.304c0-0.624-0.287-2.185-2.136-2.185
+ c-2.304,0-2.304,2.185-2.304,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.28,0,5.28,1.152,5.28,4.752
+ c0,1.728-1.08,2.808-2.04,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.377,5.496-5.809,5.496
+ c-1.607,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.521-0.911,2.521-2.808
+ c0-2.328-2.257-2.424-3.816-2.424V14.636z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M4.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H4.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H4.972z"/>
+ <path style="fill:#FFFFFF;" d="M30.124,20.732h-1.896V24.5h-3.36v-3.768h-6.72v-2.904L24.412,7.46h3.816v10.656h1.896V20.732z
+ M24.868,18.116c0-4.128,0.071-6.792,0.071-7.32h-0.047l-4.272,7.32H24.868z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+ <path style="fill:#FFFFFF;" d="M20.676,14.276c0.624-0.433,1.393-0.937,3.049-0.937c2.279,0,5.16,1.584,5.16,5.496
+ c0,2.328-1.177,6.12-6.193,6.12c-2.664,0-5.375-1.584-5.543-5.016h3.36c0.144,1.392,0.889,2.327,2.376,2.327
+ c1.608,0,2.544-1.367,2.544-3.191c0-1.513-0.72-3.048-2.496-3.048c-0.455,0-1.607,0.023-2.256,1.224l-3-0.144l1.176-9.36h9.36
+ v2.832h-6.937L20.676,14.276z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+ <path style="fill:#FFFFFF;" d="M25.309,11.78c-0.097-0.96-0.721-1.633-1.969-1.633c-2.184,0-2.688,2.496-2.808,4.704L20.58,14.9
+ c0.456-0.624,1.296-1.416,3.191-1.416c3.529,0,5.209,2.712,5.209,5.256c0,3.72-2.28,6.216-5.568,6.216
+ c-5.16,0-6.168-4.32-6.168-8.568c0-3.24,0.432-8.928,6.336-8.928c0.695,0,2.641,0.264,3.48,1.104
+ c0.936,0.912,1.271,1.416,1.584,3.217H25.309z M23.172,16.172c-1.271,0-2.568,0.792-2.568,2.928c0,1.849,1.056,3.168,2.664,3.168
+ c1.225,0,2.353-0.936,2.353-3.239C25.62,16.868,24.229,16.172,23.172,16.172z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+ <path style="fill:#FFFFFF;" d="M29.172,10.34c-1.632,1.776-5.808,6.816-6.216,14.16H19.5c0.36-6.816,4.632-12.24,6.072-13.776
+ H17.1l0.072-2.976h12V10.34z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+ <path style="fill:#FFFFFF;" d="M23.172,24.956c-4.392,0-5.904-2.856-5.904-5.185c0-0.863,0-3.119,2.592-4.319
+ c-1.344-0.672-2.064-1.752-2.064-3.336c0-2.904,2.328-4.656,5.304-4.656c3.528,0,5.4,2.088,5.4,4.44
+ c0,1.464-0.6,2.712-1.968,3.432c1.632,0.815,2.544,1.896,2.544,4.104C29.076,21.596,27.684,24.956,23.172,24.956z M23.124,16.916
+ c-1.224,0-2.4,0.792-2.4,2.64c0,1.632,0.936,2.712,2.472,2.712c1.752,0,2.424-1.512,2.424-2.688
+ C25.62,18.38,24.996,16.916,23.124,16.916z M25.284,12.26c0-1.296-0.888-2.112-1.968-2.112c-1.512,0-2.305,0.864-2.305,2.112
+ c0,1.008,0.744,2.112,2.185,2.112C24.516,14.372,25.284,13.484,25.284,12.26z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+ c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+ c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+ <path style="fill:#FFFFFF;" d="M20.893,20.564v0.023c0.191,1.176,0.936,1.68,1.967,1.68c1.393,0,2.785-1.176,2.809-4.752
+ l-0.048-0.048c-0.769,1.152-2.088,1.44-3.24,1.44c-3.264,0-5.16-2.473-5.16-5.328c0-4.176,2.472-6.12,5.807-6.12
+ c5.904,0,6.001,6.36,6.001,8.76c0,6.601-3.12,8.736-6.192,8.736c-2.904,0-4.992-1.68-5.28-4.392H20.893z M23.1,16.22
+ c1.176,0,2.473-0.84,2.473-2.855c0-1.944-0.84-3.145-2.568-3.145c-0.863,0-2.424,0.433-2.424,2.88
+ C20.58,15.668,21.828,16.22,23.1,16.22z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M15.127,14.005h0.616c1.176,0,3.332-0.112,3.332-2.688c0-0.728-0.336-2.548-2.492-2.548
+ c-2.688,0-2.688,2.548-2.688,3.248h-3.64c0-3.724,2.1-6.384,6.58-6.384c2.66,0,6.16,1.344,6.16,5.544
+ c0,2.016-1.261,3.276-2.38,3.78v0.056c0.699,0.196,2.996,1.232,2.996,4.62c0,3.752-2.772,6.412-6.776,6.412
+ c-1.876,0-6.916-0.42-6.916-6.636h3.836l-0.028,0.027c0,1.064,0.28,3.473,2.912,3.473c1.568,0,2.94-1.064,2.94-3.276
+ c0-2.716-2.632-2.828-4.452-2.828V14.005z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M8.268,14.636h0.528c1.008,0,2.856-0.096,2.856-2.304c0-0.624-0.288-2.185-2.136-2.185
+ c-2.304,0-2.304,2.185-2.304,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.28,0,5.28,1.152,5.28,4.752
+ c0,1.728-1.08,2.808-2.04,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.376,5.496-5.808,5.496
+ c-1.608,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.52-0.911,2.52-2.808
+ c0-2.328-2.256-2.424-3.816-2.424V14.636z"/>
+ <path style="fill:#FFFFFF;" d="M23.172,7.46c4.008,0,5.904,2.76,5.904,8.736c0,5.976-1.896,8.76-5.904,8.76
+ s-5.904-2.784-5.904-8.76C17.268,10.22,19.164,7.46,23.172,7.46z M23.172,22.268c1.92,0,2.448-1.68,2.448-6.071
+ c0-4.393-0.528-6.049-2.448-6.049s-2.448,1.656-2.448,6.049C20.724,20.588,21.252,22.268,23.172,22.268z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M21.891,20.784h-2.212v4.396h-3.92v-4.396h-7.84v-3.389L15.227,5.3h4.452v12.432h2.212V20.784z
+ M15.759,17.731c0-4.815,0.084-7.924,0.084-8.54h-0.056l-4.984,8.54H15.759z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M14.035,14.252c0.728-0.504,1.624-1.092,3.556-1.092c2.66,0,6.02,1.848,6.02,6.411
+ c0,2.717-1.372,7.141-7.224,7.141c-3.108,0-6.272-1.849-6.468-5.853h3.92c0.168,1.624,1.036,2.717,2.772,2.717
+ c1.876,0,2.968-1.597,2.968-3.725c0-1.764-0.839-3.556-2.912-3.556c-0.532,0-1.876,0.028-2.632,1.428l-3.5-0.168l1.372-10.92
+ h10.919v3.304h-8.092L14.035,14.252z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M19.106,10.673c-0.112-1.12-0.84-1.904-2.296-1.904c-2.548,0-3.136,2.912-3.276,5.488l0.056,0.056
+ c0.532-0.728,1.512-1.651,3.724-1.651c4.116,0,6.077,3.164,6.077,6.131c0,4.34-2.66,7.252-6.497,7.252
+ c-6.02,0-7.196-5.039-7.196-9.996c0-3.78,0.504-10.416,7.392-10.416c0.812,0,3.08,0.308,4.061,1.288
+ c1.092,1.063,1.483,1.652,1.848,3.752H19.106z M16.614,15.797c-1.484,0-2.996,0.924-2.996,3.416c0,2.156,1.232,3.697,3.108,3.697
+ c1.428,0,2.745-1.094,2.745-3.781C19.471,16.609,17.846,15.797,16.614,15.797z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M24.28,9.66c-1.904,2.071-6.776,7.951-7.252,16.52h-4.032c0.42-7.952,5.404-14.28,7.084-16.072
+ h-9.884l0.084-3.472h14V9.66z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M16.28,26.712c-5.124,0-6.888-3.332-6.888-6.048c0-1.009,0-3.641,3.024-5.04
+ c-1.568-0.784-2.408-2.044-2.408-3.893c0-3.388,2.716-5.432,6.188-5.432c4.116,0,6.3,2.436,6.3,5.18
+ c0,1.708-0.7,3.164-2.296,4.004c1.903,0.952,2.968,2.212,2.968,4.788C23.168,22.792,21.544,26.712,16.28,26.712z M16.224,17.332
+ c-1.428,0-2.8,0.924-2.8,3.08c0,1.903,1.092,3.164,2.884,3.164c2.043,0,2.829-1.765,2.829-3.137
+ C19.137,19.04,18.408,17.332,16.224,17.332z M18.744,11.899c0-1.512-1.036-2.464-2.296-2.464c-1.764,0-2.688,1.008-2.688,2.464
+ c0,1.177,0.868,2.464,2.548,2.464C17.848,14.363,18.744,13.328,18.744,11.899z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+<!DOCTYPE svg [
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+ style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+ <g style="enable-background:new ;">
+ <path style="fill:#FFFFFF;" d="M13.953,21.921v0.027c0.224,1.372,1.092,1.961,2.296,1.961c1.624,0,3.248-1.372,3.276-5.545
+ l-0.057-0.056c-0.896,1.344-2.436,1.68-3.78,1.68c-3.808,0-6.02-2.884-6.02-6.216c0-4.872,2.884-7.14,6.776-7.14
+ c6.888,0,7,7.42,7,10.22c0,7.7-3.641,10.192-7.224,10.192c-3.388,0-5.824-1.96-6.16-5.124H13.953z M16.529,16.853
+ c1.372,0,2.884-0.979,2.884-3.332c0-2.268-0.98-3.668-2.996-3.668c-1.008,0-2.828,0.504-2.828,3.36
+ C13.589,16.209,15.045,16.853,16.529,16.853z"/>
+ </g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill:#FFFFFF;stroke:none;">
+ <!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;">
+ <!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;">
+ <!ENTITY st3 "fill:none;stroke:none;">
+ <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st5 "stroke:none;">
+]>
+<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+ <g id="Layer_x0020_3" style="&st4;">
+ <g>
+ <path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/>
+ <path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/>
+ <path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/>
+ <g>
+ <path style="&st5;" d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/>
+ </g>
+ </g>
+ </g>
+ <g id="crop_x0020_marks" style="&st4;">
+ <path style="&st3;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st1 "fill:none;stroke:none;">
+ <!ENTITY st2 "fill:#000000;">
+ <!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:6.3469;stroke-linejoin:round;">
+ <!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;">
+ <!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+]>
+<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+ <g id="Layer_x0020_3" style="&st0;">
+ <g style="&st4;">
+ <path style="&st3;" d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2
+ c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/>
+ <path style="&st2;" d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2
+ c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/>
+ <path style="&st2;" d="M41.8,22.8l-5.1-4.2v-0.1L31,13.7v0l-6.5-5.5C24.2,8,24,8,23.8,8.2L6.2,22.9c-0.1,0.1-0.1,0.3,0.1,0.3h1.6H10h28.1h1.2h2.3c0.2,0,0.4-0.2,0.2-0.4z"/>
+ <path d="M35.8,16.8l0-5.1c0-0.2-0.1-0.4-0.3-0.4h-3.2c-0.2,0-0.3,0.1-0.3,0.3v2.2l3.9,2.9z"/>
+ <path d="M11.9,24.7V37c0,0.3,0.1,0.4,0.3,0.4h23.6c0.3,0,0.4-0.2,0.4-0.4V24.7H11.9z"/>
+ </g>
+ </g>
+ <g id="crop_x0020_marks" style="&st5;">
+ <path style="&st1;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill:#FFFFFF;stroke:none;">
+ <!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;">
+ <!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;">
+ <!ENTITY st3 "fill:none;stroke:none;">
+ <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st5 "stroke:none;">
+]>
+<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+ <g id="Layer_x0020_3" style="&st4;">
+ <g>
+ <path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/>
+ <path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/>
+ <path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/>
+ <g>
+ <path style="&st5;" d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/>
+ </g>
+ </g>
+ </g>
+ <g id="crop_x0020_marks" style="&st4;">
+ <path style="&st3;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill:none;stroke:none;">
+ <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
+ <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st3 "stroke:none;">
+]>
+<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+ <g id="Layer_x0020_3" style="&st2;">
+ <g>
+ <path style="&st1;" d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/>
+ <path style="&st3;" d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/>
+ </g>
+ </g>
+ <g id="crop_x0020_marks" style="&st2;">
+ <path style="&st0;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill:none;stroke:#FFFFFF;stroke-width:12.1438;stroke-linejoin:round;">
+ <!ENTITY st1 "fill:none;stroke-width:1.2429;">
+ <!ENTITY st2 "fill:#FFFFFF;stroke:none;">
+ <!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;">
+ <!ENTITY st4 "fill:#FFFFFF;stroke-width:6.3824;stroke-linejoin:round;">
+ <!ENTITY st5 "fill:none;stroke:none;">
+ <!ENTITY st6 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st7 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;">
+ <!ENTITY st8 "stroke:none;">
+ <!ENTITY st9 "fill:none;stroke-width:4.9715;stroke-linejoin:round;">
+]>
+<svg xmlns="http://www.w3.org/2000/svg" width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve">
+ <g id="Layer_x0020_1" style="&st6;">
+ <path style="&st0;" d="M35.7,19.8v18.9H11V8.8h13.9l10.8,11z"/>
+ <path style="&st3;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+ <path style="&st7;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+ <path style="&st4;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+ <path style="&st2;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+ </g>
+ <g id="Layer_x0020_4" style="&st6;">
+ <path style="&st9;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+ <path style="&st8;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+ <path style="&st8;" d="M20.6,14.7l-2.5,2.5L17,13.4l3.6,1.3z"/>
+ <path style="&st1;" d="M19.6,22.2l3-0.3l2.4-2.4l0.4-2.8"/>
+ <path style="&st2;" d="M20.4,14.9L18.3,17l1.6,5.2l2.7-0.3l2.4-2.4l0.3-2.4l-5-2.2z"/>
+ </g>
+ <g id="crop" style="&st6;">
+ <path style="&st5;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill:none;stroke:none;">
+ <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
+ <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st3 "stroke:none;">
+]>
+<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+ <g id="Layer_x0020_3" style="&st2;">
+ <g>
+ <path style="&st1;" d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/>
+ <path style="&st3;" d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/>
+ </g>
+ </g>
+ <g id="crop_x0020_marks" style="&st2;">
+ <path style="&st0;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill:none;stroke:#000000;stroke-width:1.0944;">
+ <!ENTITY st1 "fill:#FFFFFF;stroke:none;">
+ <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#FFFFFF;stroke-width:5.6139;stroke-miterlimit:4;">
+ <!ENTITY st3 "fill:none;stroke:none;">
+ <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st5 "stroke:none;">
+]>
+<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+ <g id="Layer_x0020_3" style="&st2;">
+ <g>
+ <path d="M9.5,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.4-6.5,14.4-14.4c0-8-6.5-14.4-14.4-14.4c-8,0-14.4,6.5-14.4,14.4z M12.8,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2c0,6.2-5,11.2-11.2,11.2c-6.2,0-11.2-5-11.2-11.2z"/>
+ <path d="M28.1,37.9l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+ <path d="M28.1,34.8l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+ <path d="M28.1,31.6l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8s0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8s-0.9-1.5-1.8-1.4z"/>
+ <path d="M23.1,41.3v0.9c0,0.9,0.7,1.6,1.6,1.6c0.9,0,1.6-0.7,1.6-1.6v-0.9h-3.3z"/>
+ <path style="&st1;" d="M35.9,18.7c0,6.6-5.4,12-12,12c-6.6,0-12-5.4-12-12s5.4-12,12-12c6.6,0,12,5.4,12,12z"/>
+ <path style="&st5;" d="M9.6,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.4-6.5,14.4-14.4c0-8-6.5-14.4-14.4-14.4c-8,0-14.4,6.5-14.4,14.4z M12.9,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2c0,6.2-5,11.2-11.2,11.2c-6.2,0-11.2-5-11.2-11.2z"/>
+ <path style="&st5;" d="M28.2,37.9l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+ <path style="&st5;" d="M28.2,34.7l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+ <path style="&st5;" d="M28.2,31.6l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+ <path style="&st5;" d="M23.1,41.3v0.9c0,0.9,0.7,1.6,1.6,1.6s1.6-0.7,1.6-1.6v-0.9h-3.3z"/>
+ <path style="&st0;" d="M22.3,28.3l-3.5-10.7c0,0,6.6,3.9,10.5,0"/>
+ </g>
+ </g>
+ <g id="crop_x0020_marks" style="&st4;">
+ <path style="&st3;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill:none;stroke:none;">
+ <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
+ <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st3 "stroke:none;">
+]>
+<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+ <g id="Layer_x0020_3" style="&st2;">
+ <g>
+ <path style="&st1;" d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0.1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/>
+ <path style="&st3;" d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0.1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/>
+ </g>
+ </g>
+ <g id="crop_x0020_marks" style="&st2;">
+ <path style="&st0;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg [
+ <!ENTITY st0 "fill:#000000;stroke:#FFFFFF;stroke-width:7.9139;stroke-linejoin:round;">
+ <!ENTITY st1 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st2 "fill:none;stroke:none;">
+ <!ENTITY st3 "fill:#000000;">
+ <!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;">
+ <!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+]>
+<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+ <g id="Layer_x0020_4" style="&st1;">
+ <g style="&st4;">
+ <path style="&st0;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/>
+ <path style="&st3;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/>
+ <path d="M11.7,17.7l18.7,18.7l5.9-5.9L17.6,11.7l-5.9,5.9z"/>
+ <path d="M11.7,30.5l5.9,5.9l18.7-18.7l-5.9-5.9L11.7,30.5z"/>
+ </g>
+ </g>
+ <g id="crop_x0020_marks" style="&st5;">
+ <path style="&st2;" d="M48,48H0V0h48v48z"/>
+ </g>
+</svg>
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>Introduction</title>
+
+ <para>Ce document vous présente la configuration des applications Eliot dans
+ leur environnement.
+ </para>
+ <para>Eliot constitue une suite d'applications utilisables par le corps
+ enseignant, les élèves, leurs parents et les personnels d'établissements.
+ </para>
+
+ <section>
+ <title>Les applications web</title>
+
+ <itemizedlist>
+ <listitem>eliot-absences :
+ gestion des absences.
+ </listitem>
+
+ <listitem>eliot-agenda :
+ gestion des agendas personnels et des agendas scolaires.
+ </listitem>
+
+ <listitem>eliot-docs :
+ gestion électronique des documents.
+ </listitem>
+
+ <listitem>eliot-docs :
+ gestion électronique des documents.
+ </listitem>
+
+ <listitem>eliot-messagerie :
+ messagerie interne.
+ </listitem>
+
+
+ <listitem>eliot-tdbase :
+ gestion de travaux dirigés en ligne.
+ </listitem>
+
+ <listitem>eliot-textes :
+ gestion de cahier de textes électroniques.
+ </listitem>
+
+ <listitem>eliot-scolarite :
+ gestion du référentiel de scolarité (réservé au personnel).
+ </listitem>
+ </itemizedlist>
+
+ </section>
+
+ <section>
+ <title>Les démons</title>
+ <itemizedlist>
+ <listitem>
+ eliot-demon-docs :
+ distribution et redirection des messages de la messagerie interne.
+ </listitem>
+
+ <listitem>
+ eliot-demon-scolarite :
+ traitements des import d'emplois du temps.
+ </listitem>
+
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Les modules d'import</title>
+
+ <itemizedlist>
+ <listitem>
+ eliot-aaf-import :
+ import des fichiers AAF.
+ </listitem>
+
+ <listitem>
+ eliot-udt-import-pretraitement :
+ chargement des données d'emploi du temps UDT.
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+</chapter>
+
--- /dev/null
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <title>Maintenance</title>
+ <section>
+ <title>Repository JackRabbit</title>
+ <section>
+ <title>Description</title>
+ <para>Un outil de maintenance du repository de JackRabbit a été développé
+ afin de pouvoir :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>visualiser l'arborescence du repository,</para>
+ </listitem>
+ <listitem>
+ <para>visualiser les propriétés de chaque nœud,</para>
+ </listitem>
+ <listitem>
+ <para>localiser précisément un nœud par son UUID,</para>
+ </listitem>
+ <listitem>
+ <para>exporter une branche du repository au format XML,</para>
+ </listitem>
+ <listitem>
+ <para>importer une branche du repository au format XML</para>
+ </listitem>
+ </orderedlist>
+ </section>
+ <section>
+ <title>Lancement</title>
+ <para>
+ <code>eliot-jcr-maintenance-commons</code>
+ se lance de la manière suivante :
+ <xi:include
+ href="maintenance/eliot-jcr-maintenance-commons.run.programlisting"/>
+ </para>
+ <para>Suivant l'action à effectuer,
+ <parameter><![CDATA[paramètres]]></parameter>
+ peut prendre les valeurs suivantes :
+ <xi:include
+ href="maintenance/eliot-jcr-maintenance-commons.parameters.itemizedlist"/>
+ </para>
+
+ </section>
+ <section>
+ <title>Description des arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>
+ <parameter>action</parameter>
+ </term>
+ <listitem>L'action à effectuer (voir ci-dessous).</listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>url</parameter>
+ </term>
+ <listitem>L'url du serveur jackrabbit (ex :
+ <code>http://localhost:8080/jackrabbit-webapp-2.1.0/server</code>).
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>nodeUUID</parameter>
+ </term>
+ <listitem>L'UUID d'un noeud (ex :<code>
+ 993b636d-597e-4ec6-98db-3ce83a9f5515</code>).
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>nodePath</parameter>
+ </term>
+ <listitem>Le chemin d'un noeud (ex :
+ <code>"/3536/eliot:racine_utilisateurs/jean.dupond/ Dossier"</code>
+ ).
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+ <section>
+ <title>Description des actions</title>
+ <variablelist>
+ <varlistentry>
+ <term>
+ <parameter>findNode</parameter>
+ </term>
+ <listitem>Retourne le chemin d'un noeud à partir de son
+ UUID.
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>deleteNode</parameter>
+ </term>
+ <listitem>Supprime un noeud (le noeud doit être vide).</listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>infoNode</parameter>
+ </term>
+ <listitem>Retourne un ensemble d'informations sur un noeud.</listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>treeNode</parameter>
+ </term>
+ <listitem>Retourne l'arborescence à partir d'un noeud (inclus
+ les propriétés des noeuds, ainsi que les fichiers binaires
+ attachés).
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>exportNode</parameter>
+ </term>
+ <listitem>Exporte dans le flux de sortie la représentation
+ XML de l'arborescence du noeud passé par l'argument
+ <parameter>nodePath</parameter>.
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>importNode</parameter>
+ </term>
+ <listitem>Importe dans le repository, sous le noeud passé par
+ l'argument
+ <parameter>nodePath</parameter>, l'arborescence dont la
+ représentation XML est
+ transmise dans le flux d'entrée.
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+
+ <section>
+ <title>Exemples</title>
+
+ <xi:include
+ href="maintenance/eliot-jcr-maintenance-commons.examples.variablelist"/>
+ </section>
+
+ <section>
+ <title>Notes</title>
+ <section>
+ <title>L'url du serveur Jackrabbit</title>
+ <para>L'url du serveur Jackrabbit doit se terminer par '/server' ; l'url
+ se terminant par '/repository/default' désigne le point d'entrée
+ WebDAV.
+ </para>
+ </section>
+ <section>
+ <title>Fonctionnalité d'import / export XML</title>
+ <para>L'export envoie dans le flux de sortie les données XML
+ correspondant au sous-arbre désigné par l'argument 'nodePath'
+ </para>
+ <para>Les données XML exportées n'incluent pas de retour chariot
+ (utiliser un outil tel que xmllint pour formater le fichier xml si
+ nécessaire)
+ </para>
+ <para>L'import dans un repository des noeuds décrits en XML dans le flux
+ d'entrée s'effectue sous le noeud désigné par l'argument 'nodePath'
+ </para>
+ </section>
+ <section>
+ <title>Import/export à l'identique</title>
+
+ <para>Pour faire un export / import à l'identique, l'argument nodePath
+ utilisé pour les opérations d'export et d'import doit être différent
+ (dans le cas de l'export, il désigne la racine de l'export, alors que
+ dans le cas de l'import il désigne le noeud dans lequel les données
+ seront importées).
+ </para>
+ </section>
+ <section>
+ <title>L'UUID</title>
+
+ <para>L'UUID est l'identifiant unique d'un noeud qui persiste durant
+ toute la vie d'un noeud. L'UUID d'un noeud est préservé en cas de
+ renommage ou déplacement du noeud.
+ </para>
+ <para>Si l'import échoue à cause d'une collision d'UUID, c'est
+ probablement qu'un fichier considéré comme perdu ne l'est pas, mais a
+ simplement été renommé ou déplacé.
+ </para>
+ <para>En cas de collision d'UUID, l'action findNode de l'outil permet de
+ localiser un noeud à partir de son UUID.
+ </para>
+ </section>
+ <section>
+ <title>Dans quel cas l'import ne fonctionne pas</title>
+
+ <para>L'import ne fonctionnera pas dans les 2 cas suivants :</para>
+ <orderedlist>
+ <listitem>
+ <para>Si un noeud existant possède un chemin identique à un nÅ“ud Ã
+ importer
+ </para>
+ </listitem>
+ <listitem>
+ <para>Si un noeud existant possède le même UUID qu'un nÅ“ud Ã
+ importer
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+ </section>
+ </section>
+ <section>
+ <title>Mode debug</title>
+ <para>Les applications eliot disposent d'un mode « debug » permettant de
+ tracer l'activité de toutes les méthodes utilisées.
+ </para>
+ <para>Ce mode « debug » est activable pour toutes les applications en
+ activant ce mode dans le fichier de configuration commun (voir point 12.2)
+ ou dans le fichier de configuration de l'application (ou des applications)
+ Ã tester.
+ </para>
+
+ <variablelist>
+ <title>Les paramètres à ajouter dans le fichier de configuration sont
+ les suivants :
+ </title>
+
+ <varlistentry>
+ <term>Activation du mode debug</term>
+ <listitem>
+ <programlisting>eliot.debug.enabled = true</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Expression qui détermine les méthodes à monitorer</term>
+ <listitem>
+ <programlisting>eliot.debug.pointcutExpression = "execution(*
+ org.lilie.services.eliot..*.*(..))"
+ </programlisting>
+ <para>Sur cet exemple, il s'agit de toutes les méthodes des beans
+ Eliot.
+ Pour monitorer d'autres méthodes et indiquer la bonne expression, se
+ référer à documentation Sprint sur les pointcutExpression.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+
+ <warning>
+ <para>En aucun cas, ce mode « debug » ne doit être activé en production :
+ les logs générés sont très verbeux et leur alimentation peut ralentir
+ considérablement l'application (et réduire l'espace disque !).
+ </para>
+ </warning>
+ </section>
+
+ <section>
+ <title>Liquibase (mise à jour de la bdd)</title>
+ <para>Liquibase est un outil utilisé pour mettre à jour les bases de données
+ eliot_scolarite et eliot_docs.
+ </para>
+ <para>Il s'appuie sur des fichiers XML qui contiennent, pour certains, les
+ modifications à apporter à la base de données et, pour les autres,
+ l'ordonnancement d'exécution des fichiers de modification.
+ </para>
+ <para>Dans les packages de livraison, sont fournis les éléments suivants :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>le jar Liquibase</para>
+ </listitem>
+ <listitem>
+ <para>le driver jdbc du gestionnaire de bdd cible,</para>
+ </listitem>
+ <listitem>
+ <para>un fichier de configuration pour eliot_docs</para>
+ </listitem>
+ <listitem>
+ <para>un fichier de configuration pour eliot_scolarite</para>
+ </listitem>
+ <listitem>
+ <para>un explicatif des commandes à passer,</para>
+ </listitem>
+ <listitem>
+ <para>un ou plusieurs dossiers de fichiers XML (actuellement,
+ « changelogs » et « migrations »)
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <para>Les opérations effectuées par Liquibase sont enregistrées dans la base
+ de données, dans le schéma public. On trouve ainsi une table
+ « databasechangelog » qui contient toutes les opérations effectuées, avec
+ pour chaque fichier traité un « cheksum ».
+ </para>
+ <para>L'avantage de ce produit est que l'on peut reconstituer une base
+ complète (schéma uniquement !) à partir d'une base vide (juste créée par
+ un create database).
+ </para>
+ <section>
+ <title>Les fichiers de configurations</title>
+
+ <para>Le fichier de configuration pour eliot_scolarite
+ (<filename>scolarite.properties</filename>) a le modèle suivant :
+ <xi:include href="maintenance/scolarite.properties.programlisting"/>
+ </para>
+
+ <para>Le fichier de configuration pour eliot_docs
+ (<filename>docs.properties</filename>) a le modèle suivant :
+ <xi:include href="maintenance/docs.properties.programlisting"/>
+ </para>
+
+ <para>Dans les 2 cas, le fichier doit être adapté à la configuration
+ courante.
+ </para>
+
+ </section>
+
+ <section>
+ <title>Lancement de la commande de mise à jour</title>
+
+ <para>Une fois les fichiers de configuration modifiés, on peut procéder Ã
+ la mise à jour.
+ </para>
+ <para>La mise à jour de la base eliot_scolarite s'effectue de la manière
+ suivante, en ligne de commande dans le dossier Liquibase fourni :
+ <xi:include href="maintenance/scolarite.java_command.programlisting"/>
+ </para>
+
+ <para>Pour eliot_docs :
+ <xi:include href="maintenance/docs.java_command.programlisting"/>
+ </para>
+
+ <para>Le
+ <code><![CDATA[<owner_name>]]></code>
+ correspond au propriétaire de la base.
+ </para>
+ <para>Un message indique si tout s'est bien passé … ou non. On peut avoir
+ un problème de cheksum (voir point suivant).
+ </para>
+ </section>
+ <section>
+ <title>Erreur fréquente : le problème de checksum</title>
+
+ <para>Quand Liquibase traite un nouveau fichier, il génère une clé MD5
+ qu'il stocke dans la base. Si le fichier existe dans la base, Liquibase
+ génère une clé à partir de ce fichier et compare cette clé avec celle
+ qu'il a déjà en base.
+ </para>
+ <para>Si la clé en base est différente de celle générée, Liquibase
+ déclenche une exception.
+ </para>
+ <para>Ce mécanisme est normal car il permet de s'assurer l'intégrité des
+ fichiers de mises à jour avec ceux qui ont déjà été traités (et qui sont
+ donc une assurance d'avoir une base correcte).
+ </para>
+ <para>Après s'être assuré que les fichiers n'ont pas changé d'une
+ livraison sur l'autre, on peut débloquer la situation par une requête
+ SQL puis par un redémarrage de Liquibase.
+ </para>
+ <para>Exemple d'un message Liquibase :
+ <xi:include href="maintenance/liquibase.checksum_error.programlisting"/>
+ </para>
+
+
+ <para>Pour régler le problème, on passe la requête suivante :
+ <xi:include
+ href="maintenance/liquibase.query.checksum_clear.programlisting"/>
+ </para>
+
+
+ <para>Il faut noter que le filename contient le nom du fichier avec son
+ chemin relatif par rapport au jar Liquibase.
+ </para>
+ </section>
+ </section>
+</chapter>
+
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[java -jar liquibase.jar --defaultsFile=docs.properties update \
+ -Downer.name = <owner_name>]]></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[#liquibase.properties
+driver: org.postgresql.Driver
+classpath: postgresql-8.3-603.jdbc4.jar
+url: jdbc:postgresql://<serveur_postgres>/eliot_docs
+username: <user_name>
+password: <password>
+changeLogFile: changelogs/docs_all/release-changes.xml]]></programlisting>
\ No newline at end of file
--- /dev/null
+<variablelist xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+>
+ <title>Voici quelques exemples d'utilisation :</title>
+ <varlistentry>
+ <term>Recherche d'un noeud dans le repository</term>
+ <listitem><programlisting>java -jar eliot-jcr-maintenance-commons-2.4.3-SNAPSHOT-jar-with-dependencies.jar
+ -action=findNode
+ -url=http://localhost:8080/jackrabbit-webapp-2.1.0/server
+ -nodeUUID=993b636d-597e-4ec6-98db-3ce83a9f5515</programlisting></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Suppression d'un dossier</term>
+ <listitem><programlisting>java -jar eliot-jcr-maintenance-commons-2.4.3-SNAPSHOT-jar-with-dependencies.jar
+ -action=deleteNode
+ -url=http://localhost:8080/jackrabbit-webapp-2.1.0/server
+ -nodePath="/3536/eliot:racine_utilisateurs/jean.dupond/Mon Dossier"</programlisting></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Affichage des propriétés d'un noeud</term>
+ <listitem><programlisting>java -jar eliot-jcr-maintenance-commons-2.4.3-SNAPSHOT-jar-with-dependencies.jar
+ -action=infoNode
+ -url=http://localhost:8080/jackrabbit-webapp-2.1.0/server
+ -nodePath=/3536</programlisting></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Affichage des propriétés d'un noeud et de tous ses éléments</term>
+ <listitem><programlisting>java -jar eliot-jcr-maintenance-commons-2.4.3-SNAPSHOT-jar-with-dependencies.jar
+ -action=treeNode
+ -url=http://localhost:8080/jackrabbit-webapp-2.1.0/server
+ -nodePath=/3536</programlisting></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Export d'un noeud et de ses élèments au format XML</term>
+ <listitem><programlisting><![CDATA[java -jar eliot-jcr-maintenance-commons-2.4.3-SNAPSHOT-jar-with-dependencies.jar
+ -action=exportNode
+ -url=http://localhost:8080/jackrabbit-webapp-2.1.0/server
+ -nodePath="/3536/eliot:racine_utilisateurs/jean.dupond/Mon Dossier" < export.xml]]></programlisting></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Importation d'un noeud et de ses élèments (dans un parent) Ã
+ partir d'un fichier XML</term>
+ <listitem><programlisting><![CDATA[java -jar eliot-jcr-maintenance-commons-2.4.3-SNAPSHOT-jar-with-dependencies.jar
+ -action=importNode
+ -url=http://localhost:8080/jackrabbit-webapp-2.1.0/server
+ -nodePath="/3536/eliot:racine_utilisateurs/jean.dupond" < export.xml]]></programlisting></listitem>
+ </varlistentry>
+</variablelist>
\ No newline at end of file
--- /dev/null
+<itemizedlist xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+ <listitem>
+ <programlisting><![CDATA[-action=findNode -url=<url_serveur_repository> -nodeUUID=<UUID>]]></programlisting>
+ </listitem>
+
+ <listitem>
+ <programlisting><![CDATA[-action=<deleteNode | infoNode | treeNode | exportNode | importNode> \
+ -url=<url_serveur_repository> -nodePath=<node_path>]]></programlisting>
+ </listitem>
+</itemizedlist>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[java -jar eliot-jcr-maintenance-commons-<version>--jar-with-dependencies.jar <paramètres>]]></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[INFO 20/02/12 11:30:liquibase: Successfully released change log lock
+Liquibase Update Failed: Validation Failed:
+1 change sets check sum
+changelogs/scolarite/initialisation/2011-09-13-0014523.xml::0:: fsil is now: 3:0c310e15a8ee17e9a52b9cb1d3c1e20a]]></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[update databasechangelog set md5sum = null
+where filename = 'changelogs/scolarite/initialisation/2011-09-13-0014523.xml']]></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[java -jar liquibase.jar --defaultsFile=scolarite.properties update \
+ -Downer.name = <owner_name>]]></programlisting>
\ No newline at end of file
--- /dev/null
+<programlisting xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr"
+><![CDATA[#liquibase.properties
+driver: org.postgresql.Driver
+classpath: postgresql-8.3-603.jdbc4.jar
+url: jdbc:postgresql://<serveur_postgres>/eliot_scolarite
+username: <user_name>
+password: <password>
+changeLogFile: changelogs/scolarite_all/release-changes.xml]]></programlisting>
\ No newline at end of file
--- /dev/null
+<preface xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="5.0" xml:lang="fr">
+
+ <para>
+ <revhistory>
+
+ <revision>
+ <revnumber>2.9.0</revnumber>
+ <date>19/12/2012</date>
+ <author>
+ <email>john.tranier@axess.fr</email>
+ </author>
+ <author>
+ <email>olivier.thebault@axess.fr</email>
+ </author>
+
+ <revdescription>
+ <para>
+ Conversion docbook ; ajout nouveaux paramétrages eliot-textes
+ (formules
+ mathématiques et impression)
+ </para>
+ </revdescription>
+ </revision>
+
+ </revhistory>
+ </para>
+
+</preface>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<book xmlns="http://docbook.org/ns/docbook"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ version="5.0" xml:lang="fr">
+
+
+<xi:include href="bookinfo.xml" />
+<xi:include href="preface.xml" />
+<xi:include href="introduction.xml" />
+<xi:include href="environnement.xml" />
+<xi:include href="eliot-aaf-import.xml" />
+<xi:include href="eliot-absences.xml" />
+<xi:include href="eliot-agenda.xml" />
+<xi:include href="eliot-demon-docs.xml" />
+<xi:include href="eliot-demon-scolarite.xml" />
+<xi:include href="eliot-docs.xml" />
+<xi:include href="eliot-messagerie.xml" />
+<xi:include href="eliot-notes.xml" />
+<xi:include href="eliot-scolarite.xml" />
+<xi:include href="eliot-textes.xml" />
+<xi:include href="eliot-tdbase.xml" />
+<xi:include href="configuration.xml" />
+<xi:include href="maintenance.xml" />
+<xi:include href="bascule.xml" />
+<xi:include href="annexes.xml" />
+
+
+
+</book>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:d="http://docbook.org/ns/docbook"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+ <xsl:import href="urn:docbkx:stylesheet"/>
+
+ <!--###################################################
+ Extensions
+ ################################################### -->
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">1</xsl:param>
+ <xsl:param name="callout.extensions">1</xsl:param>
+
+ <xsl:param name="header.rule">0</xsl:param>
+
+ <!-- FOP provide only PDF Bookmarks at the moment -->
+
+ <xsl:param name="fop1.extensions">1</xsl:param>
+
+ <xsl:param name="use.role.for.mediaobject">1</xsl:param>
+ <xsl:param name="preferred.mediaobject.role" select="'print'"/>
+ <!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">2</xsl:param>
+
+ <!-- Dot and Whitespace as separator in TOC between Label and Title-->
+ <xsl:param name="autotoc.label.separator" select="'. '"/>
+
+ <xsl:param name="highlight.source">1</xsl:param>
+
+
+ <!--###################################################
+ Paper & Page Size
+ ################################################### -->
+
+ <!-- Paper type, no headers on blank pages, no double sided printing -->
+ <xsl:param name="paper.type" select="'A4'"/>
+
+ <xsl:param name="headers.on.blank.pages">0</xsl:param>
+ <xsl:param name="footers.on.blank.pages">0</xsl:param>
+
+ <!-- Space between paper border and content (chaotic stuff, don't touch) -->
+ <xsl:param name="region.before.extent">0.0in</xsl:param>
+ <xsl:param name="body.margin.top">0.0in</xsl:param>
+
+ <xsl:param name="body.margin.bottom">0.4in</xsl:param>
+ <xsl:param name="region.after.extent">0.3in</xsl:param>
+
+ <xsl:param name="page.margin.bottom" select="'0.75in'"/>
+ <xsl:param name="page.margin.top" select="'0.75in'"/>
+ <xsl:param name="page.margin.inner" select="'0.875in'"/>
+ <xsl:param name="page.margin.outer" select="'0.875in'"/>
+
+ <xsl:param name="body.start.indent" select="'0pt'"/>
+
+ <!-- No intendation of Titles -->
+ <xsl:param name="title.margin.left">0pc</xsl:param>
+
+ <!--###################################################
+ Fonts & Styles
+ ################################################### -->
+
+ <!-- Left aligned text and no hyphenation -->
+ <xsl:param name="alignment">justify</xsl:param>
+ <xsl:param name="hyphenate">true</xsl:param>
+
+ <!-- Line height in body text -->
+ <xsl:param name="line-height">1.3</xsl:param>
+
+ <!-- <xsl:param name="body.font.family" select="'serif'" /> -->
+ <xsl:param name="body.font.master" select="'10'"/>
+ <xsl:param name="body.font.small" select="'8'"/>
+ <xsl:param name="dingbat.font.family" select="''"/>
+ <xsl:param name="symbol.font.family" select="''"/>
+ <!-- <xsl:param name="title.font.family" select="'sans-serif'" /> -->
+ <!-- <xsl:param name="monospace.font.family" select="'monospace'" /> -->
+ <xsl:param name="double.sided" select="'0'"/>
+
+ <xsl:attribute-set name="normal.para.spacing">
+ <xsl:attribute name="space-after.optimum">6pt</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">3pt</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="component.title.properties">
+ <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">
+ <xsl:value-of
+ select="concat($body.font.master, 'pt')"></xsl:value-of>
+ </xsl:attribute>
+ <xsl:attribute name="space-before.minimum">
+ <xsl:value-of
+ select="concat($body.font.master, 'pt * 0.8')"></xsl:value-of>
+ </xsl:attribute>
+ <xsl:attribute name="space-before.maximum">
+ <xsl:value-of
+ select="concat($body.font.master, 'pt * 1.2')"></xsl:value-of>
+ </xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+ <xsl:attribute name="text-align">left</xsl:attribute>
+ <xsl:attribute name="word-spacing">-0.1em</xsl:attribute>
+ <xsl:attribute name="letter-spacing">-0.05em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="toc.margin.properties">
+ <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="chap.label.properties">
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="chap.title.properties">
+ </xsl:attribute-set>
+
+ <!--
+ ################################################### Custom Title Page
+ ###################################################
+ -->
+
+ <xsl:template name="book.titlepage.recto">
+ </xsl:template>
+
+
+ <!-- Prevent blank pages in output -->
+
+ <xsl:template name="book.titlepage.before.verso">
+ </xsl:template>
+ <!--<xsl:template name="book.titlepage.verso">-->
+ <!--</xsl:template>-->
+ <xsl:template name="book.titlepage.separator">
+ </xsl:template>
+
+
+ <!--###################################################
+ Header
+ ################################################### -->
+
+ <!-- More space in the center header for long text -->
+ <xsl:attribute-set name="header.content.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$body.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="margin-left">-5em</xsl:attribute>
+ <xsl:attribute name="margin-right">-5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:param name="ulink.footnotes">1</xsl:param>
+
+ <!--###################################################
+ Custom Footer
+ ################################################### -->
+ <xsl:template name="header.content">
+ </xsl:template>
+
+ <xsl:template name="footer.content">
+ <xsl:param name="pageclass" select="''"/>
+ <xsl:param name="sequence" select="''"/>
+ <xsl:param name="position" select="''"/>
+ <xsl:param name="gentext-key" select="''"/>
+ <xsl:variable name="Version">
+ <xsl:if test="//releaseinfo">
+ <xsl:text>Maven: The Definitive Guide (</xsl:text>
+ <xsl:value-of select="//releaseinfo"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$sequence='blank'">
+ <xsl:if test="$position = 'center'">
+ <xsl:value-of select="$Version"/>
+ </xsl:if>
+ </xsl:when>
+ <!-- for double sided printing, print page numbers on alternating sides (of the page) -->
+ <xsl:when test="$double.sided != 0">
+ <xsl:choose>
+ <xsl:when test="$sequence = 'even' and $position='left'">
+ <fo:page-number/>
+ </xsl:when>
+ <xsl:when test="$sequence = 'odd' and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+ <xsl:when test="$position='center'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <!-- for single sided printing, print all page numbers on the right (of the page) -->
+ <xsl:when test="$double.sided = 0">
+ <xsl:choose>
+ <xsl:when test="$position='center'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+ <xsl:when test="$position='right'">
+ <fo:page-number/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Monospaced fonts are smaller than regular text -->
+ <xsl:attribute-set name="monospace.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$monospace.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Tables
+ ################################################### -->
+
+ <!-- The table width should be adapted to the paper size -->
+ <xsl:param name="default.table.width">5.25in</xsl:param>
+
+ <!-- Some padding inside tables -->
+ <xsl:attribute-set name="table.cell.padding">
+ <xsl:attribute name="padding-left">2pt</xsl:attribute>
+ <xsl:attribute name="padding-right">2pt</xsl:attribute>
+ <xsl:attribute name="padding-top">2pt</xsl:attribute>
+ <xsl:attribute name="padding-bottom">2pt</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Only hairlines as frame and cell borders in tables -->
+ <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param>
+ <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param>
+
+ <!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+ <!--###################################################
+ Titles
+ ################################################### -->
+
+ <!-- Chapter title size -->
+ <xsl:attribute-set name="chapter.titlepage.recto.style">
+ <xsl:attribute name="text-align">left</xsl:attribute>
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.25"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Why is the font-size for chapters hardcoded in the XSL FO templates?
+ Let's remove it, so this sucker can use our attribute-set only... -->
+ <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xsl:use-attribute-sets="chapter.titlepage.recto.style">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
+ </xsl:call-template>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Sections 1, 2 and 3 titles have a small bump factor and padding -->
+ <xsl:attribute-set name="section.title.level1.properties">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.5"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="section.title.level2.properties">
+ <xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.25"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="section.title.level3.properties">
+ <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.4em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.0"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Titles of formal objects (tables, examples, ...) -->
+ <xsl:attribute-set name="formal.object.properties">
+ <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing">
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Programlistings
+ ################################################### -->
+
+ <!-- Verbatim text formatting (programlistings) -->
+ <xsl:attribute-set name="monospace.verbatim.properties">
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:text>7.8pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="verbatim.properties">
+ <xsl:attribute name="space-before.minimum">0em</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">0em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0em</xsl:attribute>
+ <xsl:attribute name="border-color">#151B54</xsl:attribute>
+ <xsl:attribute name="border-style">solid</xsl:attribute>
+ <xsl:attribute name="border-width">0.2pt</xsl:attribute>
+ <xsl:attribute name="padding-top">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-left">0.3em</xsl:attribute>
+ <xsl:attribute name="padding-right">0.3em</xsl:attribute>
+ <xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
+ <xsl:attribute name="margin-left">0em</xsl:attribute>
+ <xsl:attribute name="margin-right">0em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Shade (background) programlistings -->
+ <xsl:param name="shade.verbatim">1</xsl:param>
+ <xsl:attribute-set name="shade.verbatim.style">
+ <xsl:attribute name="background-color">#E3E4FA</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- Use images for callouts instead of (1) (2) (3) -->
+ <xsl:param name="callout.graphics">1</xsl:param>
+ <xsl:param name="callout.unicode">0</xsl:param>
+
+ <!-- Place callout marks at this column in annotated areas -->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+ <!--###################################################
+ Admonitions
+ ################################################### -->
+
+ <!-- Use nice graphics for admonitions -->
+ <xsl:param name="admon.graphics">'1'</xsl:param>
+ <xsl:param name="admon.graphics.extension">.svg</xsl:param>
+ <!-- <xsl:param name="admon.graphics.path">&admon_gfx_path;</xsl:param> -->
+
+ <xsl:attribute-set name="admonition.title.properties">
+ <xsl:attribute name="font-size">14pt</xsl:attribute>
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+ <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Placement of titles -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+ <!-- Format Variable Lists as Blocks (prevents horizontal overflow) -->
+ <xsl:param name="variablelist.as.blocks">1</xsl:param>
+
+ <!-- The horrible list spacing problems -->
+ <xsl:attribute-set name="list.block.spacing">
+ <xsl:attribute name="space-before.optimum">0em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0em</xsl:attribute>
+ <xsl:attribute name="margin-left">1.0em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:param name="list.item.spacing">0.5em</xsl:param>
+ <xsl:param name="compact.list.item.spacing">0.5em</xsl:param>
+
+ <!--###################################################
+ colored and hyphenated links
+ ################################################### -->
+ <xsl:template match="ulink">
+ <fo:basic-link external-destination="{@url}"
+ xsl:use-attribute-sets="xref.properties"
+ text-decoration="underline"
+ color="blue">
+ <xsl:choose>
+ <xsl:when test="count(child::node())=0">
+ <xsl:value-of select="@url"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </fo:basic-link>
+ </xsl:template>
+
+ <xsl:template match="link">
+ <fo:basic-link internal-destination="{@linkend}"
+ xsl:use-attribute-sets="xref.properties"
+ text-decoration="underline"
+ color="blue">
+ <xsl:choose>
+ <xsl:when test="count(child::node())=0">
+ <xsl:value-of select="@linkend"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </fo:basic-link>
+ </xsl:template>
+
+ <xsl:template match="d:command">
+ <xsl:call-template name="inline.boldmonoseq"/>
+ </xsl:template>
+
+ <xsl:attribute-set name="revhistory.title.properties">
+ <xsl:attribute name="font-size">17.28pt</xsl:attribute>
+ <xsl:attribute name="font-family">Helvetica</xsl:attribute>
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="revhistory.table.properties">
+ <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
+ <xsl:attribute name="background-color">#F2F2F2</xsl:attribute>
+ <xsl:attribute name="width">100%</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="revhistory.table.cell.properties">
+ <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
+ <xsl:attribute name="padding">4pt</xsl:attribute>
+ </xsl:attribute-set>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0"?>\r
+<!-- \r
+ This is the XSL HTML configuration file for the Spring\r
+ Reference Documentation.\r
+-->\r
+<!DOCTYPE xsl:stylesheet [\r
+ <!ENTITY db_xsl_path "../lib/docbook-xsl/">\r
+ <!ENTITY callout_gfx_path "../images/callouts/">\r
+ <!ENTITY admon_gfx_path "../images/admons/">\r
+]>\r
+\r
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+ version="1.0"\r
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"\r
+ exclude-result-prefixes="#default">\r
+ \r
+<xsl:import href="&db_xsl_path;/html/docbook.xsl"/>\r
+\r
+<!--###################################################\r
+ HTML Settings\r
+ ################################################### --> \r
+\r
+ <xsl:param name="html.stylesheet">html.css</xsl:param>\r
+\r
+ <!-- These extensions are required for table printing and other stuff -->\r
+ <xsl:param name="use.extensions">1</xsl:param>\r
+ <xsl:param name="tablecolumns.extension">0</xsl:param>\r
+ <xsl:param name="callout.extensions">1</xsl:param>\r
+ <xsl:param name="graphicsize.extension">0</xsl:param>\r
+\r
+<!--###################################################\r
+ Table Of Contents\r
+ ################################################### --> \r
+\r
+ <!-- Generate the TOCs for named components only -->\r
+ <xsl:param name="generate.toc">\r
+ book toc\r
+ </xsl:param>\r
+ \r
+ <!-- Show only Sections up to level 3 in the TOCs -->\r
+ <xsl:param name="toc.section.depth">3</xsl:param>\r
+ \r
+<!--###################################################\r
+ Labels\r
+ ################################################### --> \r
+\r
+ <!-- Label Chapters and Sections (numbering) -->\r
+ <xsl:param name="chapter.autolabel">1</xsl:param>\r
+ <xsl:param name="section.autolabel" select="1"/>\r
+ <xsl:param name="section.label.includes.component.label" select="1"/>\r
+ \r
+<!--###################################################\r
+ Callouts\r
+ ################################################### --> \r
+\r
+ <!-- Use images for callouts instead of (1) (2) (3) -->\r
+ <xsl:param name="callout.graphics">1</xsl:param>\r
+ <xsl:param name="callout.graphics.path">&callout_gfx_path;</xsl:param>\r
+ \r
+ <!-- Place callout marks at this column in annotated areas -->\r
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>\r
+\r
+<!--###################################################\r
+ Admonitions\r
+ ################################################### --> \r
+\r
+ <!-- Use nice graphics for admonitions -->\r
+ <xsl:param name="admon.graphics">'1'</xsl:param>\r
+ <xsl:param name="admon.graphics.path">&admon_gfx_path;</xsl:param>\r
+\r
+ <!--###################################################\r
+ Misc\r
+ ################################################### -->\r
+ <!-- Placement of titles -->\r
+ <xsl:param name="formal.title.placement">\r
+ figure after\r
+ example before\r
+ equation before\r
+ table before\r
+ procedure before\r
+ </xsl:param>\r
+ <xsl:template match="author" mode="titlepage.mode">\r
+ <xsl:if test="name(preceding-sibling::*[1]) = 'author'">\r
+ <xsl:text></xsl:text>\r
+ </xsl:if>\r
+ <span class="{name(.)}">\r
+ <xsl:call-template name="person.name" />\r
+ <xsl:apply-templates mode="titlepage.mode" select="./contrib" />\r
+ <xsl:text>(</xsl:text>\r
+ <xsl:apply-templates mode="titlepage.mode" select="./affiliation" />\r
+ <xsl:text>)</xsl:text>\r
+ </span>\r
+ </xsl:template>\r
+ <xsl:template match="authorgroup" mode="titlepage.mode">\r
+ <div class="{name(.)}">\r
+ <h2>Authors</h2>\r
+ <p/>\r
+ <xsl:apply-templates mode="titlepage.mode" />\r
+ </div>\r
+ </xsl:template>\r
+ \r
+</xsl:stylesheet>\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This is the XSL HTML configuration file for the Spring Reference Documentation.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+ <xsl:import href="urn:docbkx:stylesheet"/>
+ <!--###################################################
+ HTML Settings
+ ################################################### -->
+ <xsl:param name="chunk.section.depth">'2'</xsl:param>
+ <xsl:param name="chunker.output.indent">yes</xsl:param>
+ <xsl:param name="use.id.as.filename">'1'</xsl:param>
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="fop1.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <xsl:param name="callout.extensions">1</xsl:param>
+ <xsl:param name="callout.graphics.path">../images/callouts/</xsl:param>
+ <xsl:param name="admon.graphics.path">../images/</xsl:param>
+ <xsl:param name="graphicsize.extension">0</xsl:param>
+ <xsl:param name="ignore.image.scaling">1</xsl:param>
+ <xsl:param name="highlight.source">1</xsl:param>
+ <!--###################################################
+ Table Of Contents
+ ################################################### -->
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc,figure,example
+ chapter toc
+ part toc
+ preface toc
+ qandaset toc
+ </xsl:param>
+ <!-- Show only Sections up to level 2 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+ <!--###################################################
+ Labels
+ ################################################### -->
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+ <!--###################################################
+ Callouts
+ ################################################### -->
+ <!-- Place callout marks at this column in annotated areas -->
+ <xsl:param name="callout.graphics">1</xsl:param>
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+ <!--###################################################
+ Misc
+ ################################################### -->
+ <!-- Placement of titles -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>\r
+ <xsl:template match="author" mode="titlepage.mode">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'author'">
+ <xsl:text>, </xsl:text>\r
+ </xsl:if>\r
+ <span class="{name(.)}">
+ <xsl:call-template name="person.name"/> \r
+ (<xsl:value-of select="affiliation"/>)\r
+ <xsl:apply-templates mode="titlepage.mode" select="./contrib"/>
+ </span>
+ </xsl:template>
+ <xsl:template match="authorgroup" mode="titlepage.mode">
+ <div class="{name(.)}">
+ <h2>Authors</h2>
+ <p/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+ </xsl:template>
+ <!--###################################################
+ Headers and Footers
+ ################################################### -->
+ <xsl:template name="user.head.content">
+
+ </xsl:template>
+ <xsl:template name="user.header.navigation">
+ </xsl:template>
+ <!-- no other header navigation (prev, next, etc.) -->
+ <xsl:template name="header.navigation">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:param name="nav.context"/>
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+ <xsl:variable name="row1" select="count($prev) > 0
+ or count($up) > 0
+ or count($next) > 0"/>
+ <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)
+ or (generate-id($home) != generate-id(.)
+ or $nav.context = 'toc')
+ or ($chunk.tocs.and.lots != 0
+ and $nav.context != 'toc')
+ or ($next and $navig.showtitles != 0)"/>
+ <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
+ <div class="navheader">
+ <xsl:if test="$row1 or $row2">
+ <table width="100%" summary="Navigation header">
+ <xsl:if test="$row1">
+ <tr>
+ <td width="40%" align="left">
+ <xsl:if test="count($prev)>0">
+ <a accesskey="p">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+ </a>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </td>
+
+ <td width="20%" align="center">
+ <xsl:choose>
+ <xsl:when test="$home != . or $nav.context = 'toc'">
+ <a accesskey="h">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$home"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ TOC
+ </a>
+ <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+ <xsl:text> | </xsl:text>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+ <a accesskey="t">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="/*[1]" mode="recursive-chunk-filename">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:attribute>
+ TOC
+ </a>
+ </xsl:if>
+ </td>
+ <td width="40%" align="right">
+ <xsl:text> </xsl:text>
+ <xsl:if test="count($next)>0">
+ <a accesskey="n">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$next" mode="object.title.markup"/>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ </xsl:if>
+ </div>
+ </xsl:if>
+ </xsl:template>
+ <xsl:param name="navig.showtitles">1</xsl:param>
+ <xsl:template name="footer.navigation">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:param name="nav.context"/>
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+ <xsl:variable name="row1" select="count($prev) > 0
+ or count($up) > 0
+ or count($next) > 0"/>
+ <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)
+ or (generate-id($home) != generate-id(.)
+ or $nav.context = 'toc')
+ or ($chunk.tocs.and.lots != 0
+ and $nav.context != 'toc')
+ or ($next and $navig.showtitles != 0)"/>
+ <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
+ <div class="navfooter">
+ <xsl:if test="$footer.rule != 0">
+ <hr/>
+ </xsl:if>
+ <xsl:if test="$row1 or $row2">
+ <table width="100%" summary="Navigation footer">
+ <xsl:if test="$row1">
+ <tr>
+ <td width="40%" align="left">
+ <xsl:if test="count($prev)>0">
+ <a accesskey="p">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'prev'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </td>
+
+ <td width="20%" align="center">
+ <xsl:choose>
+ <xsl:when test="$home != . or $nav.context = 'toc'">
+ <a accesskey="h">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$home"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'home'"/>
+ </xsl:call-template>
+ </a>
+ <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+ <xsl:text> | </xsl:text>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+ <a accesskey="t">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="/*[1]" mode="recursive-chunk-filename">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'nav-toc'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </td>
+ <td width="40%" align="right">
+ <xsl:text> </xsl:text>
+ <xsl:if test="count($next)>0">
+ <a accesskey="n">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'next'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="$row2">
+ <tr>
+ <td width="40%" align="left" valign="top">
+ <xsl:if test="$navig.showtitles != 0">
+ <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </td>
+ <td width="20%" align="center">
+ <span style="color:white;font-size:90%;">
+ <a href="http://www.sonatype.com/"
+ title="Sonatype: Build Success for your Enterprise">Sponsored by Sonatype
+ </a>
+ </span>
+ </td>
+ <td width="40%" align="right" valign="top">
+ <xsl:text> </xsl:text>
+ <xsl:if test="$navig.showtitles != 0">
+ <xsl:apply-templates select="$next" mode="object.title.markup"/>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ </xsl:if>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+
+ <!-- Getting Rid of the Body Attributes - TOB -->
+ <xsl:template name="body.attributes">
+ </xsl:template>
+
+
+ <!-- Customizing Overall Chunk Output -->
+ <xsl:template name="chunk-element-content">
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="nav.context"/>
+ <xsl:param name="content">
+ <xsl:apply-imports/>
+ </xsl:param>
+
+ <xsl:call-template name="user.preroot"/>
+
+ <html>
+ <xsl:call-template name="html.head">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <xsl:call-template name="user.header.navigation"/>
+
+ <xsl:call-template name="header.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="user.header.content"/>
+
+ <xsl:copy-of select="$content"/>
+
+ <xsl:call-template name="user.footer.content"/>
+
+ <xsl:call-template name="footer.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="user.footer.navigation"/>
+ </body>
+ </html>
+ <xsl:value-of select="$chunk.append"/>
+</xsl:template>
+
+<xsl:template name="section.heading">
+ <xsl:param name="section" select="."/>
+ <xsl:param name="level" select="1"/>
+ <xsl:param name="allow-anchors" select="1"/>
+ <xsl:param name="title"/>
+ <xsl:param name="class" select="'title'"/>
+
+ <xsl:variable name="id">
+ <xsl:choose>
+ <!-- if title is in an *info wrapper, get the grandparent -->
+ <xsl:when test="contains(local-name(..), 'info')">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="../.."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- HTML H level is one higher than section level -->
+ <xsl:variable name="hlevel">
+ <xsl:choose>
+ <!-- highest valid HTML H level is H6; so anything nested deeper
+ than 5 levels down just becomes H6 -->
+ <xsl:when test="$level > 5">6</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$level + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="h{$hlevel}">
+ <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
+ <xsl:if test="$css.decoration != '0'">
+ <xsl:if test="$hlevel<3">
+ <xsl:attribute name="style">clear: both</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="$allow-anchors != 0">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="$section"/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:copy-of select="$title"/>
+ </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.sonatype.mavenbook</groupId>
+ <artifactId>documentations</artifactId>
+ <version>2.9.1-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Compilation documentations eliot</name>
+
+ <url>http://sonatype.com/book</url>
+
+ <modules>
+ <module>guide-exploitation</module>
+ </modules>
+
+ <repositories>
+ <repository>
+ <id>sonatype-public</id>
+ <name>Sonatype Public</name>
+ <url>http://repository.sonatype.org/content/groups/public</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>sonatype-forge</id>
+ <name>Sonatype Forge</name>
+ <url>http://repository.sonatype.org/content/groups/forge</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>Codehaus Snapshots</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>Central</id>
+ <url>http://repo1.maven.org/maven2</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>sonatype-public</id>
+ <name>Sonatype Public</name>
+ <url>http://repository.sonatype.org/content/groups/public</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ <pluginRepository>
+ <id>sonatype-forge</id>
+ <name>Sonatype Forge</name>
+ <url>http://repository.sonatype.org/content/groups/forge</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ <pluginRepository>
+ <id>Codehaus Snapshots</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </pluginRepository>
+ <pluginRepository>
+ <id>Central</id>
+ <url>http://repo1.maven.org/maven2</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>2.0-beta-9</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-gitexe
+ </artifactId>
+ <version>1.2</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-plugin</artifactId>
+ <version>1.2</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-gitexe
+ </artifactId>
+ <version>1.2</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <scm>
+ <connection>scm:git:git://github.com/sonatype/maven-guide-en.git</connection>
+ <url>scm:git:git://github.com/sonatype/maven-guide-en.git</url>
+ <developerConnection>scm:git:git://github.com/sonatype/maven-guide-en.git</developerConnection>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>forge-releases</id>
+ <name>Sonatype Forge Releases</name>
+ <url>http://repository.sonatype.org/content/repositories/releases</url>
+ </repository>
+ <snapshotRepository>
+ <id>forge-snapshots</id>
+ <name>Sonatype Forge Snapshot</name>
+ <url>http://repository.sonatype.org/content/repositories/snapshots</url>
+ </snapshotRepository>
+ </distributionManagement>
+</project>