La Documentation JOnAS

JOnAS Team

Philippe Coq

Philippe Durieux


Preface
1. L'infrastructure de la documentation JOnAS
1.1. Description
1.1.1. Structure du module SVN jonas_doc
1.1.2. Structure des sources de la documentation livrée (guides en anglais)
1.2. Générer la doc JOnAS via ant
1.3. Structure de la doc générée via ant
1.4. Publier la doc sur le site JOnAS
1.5. Personnalisation de la doc JOnAS
1.6. Problèmes connus
2. L'outillage de développement: XMLmind
2.1. Utiliser l'outil XMLmind (xxe)
2.2. Personnaliser son environement XMLmind
2.3. Naviguer d'un document à l'autre
3. Apprendre à maitriser DocBook
3.1. Faire une documentation en Français
3.1.1. Declaration d'un book en français
3.1.2. Saisie des caractères accentués
3.2. Représenter un fragment de code
3.3. Faire des tableaux
3.4. Faire des liens
3.4.1. lien vers une partie du document (xref)
3.4.2. autres types de lien (link)
3.5. Faire un exemple commenté d'un fichier de conf
3.6. insérer des notes de bas de page
3.7. Utiliser des chaines de caracteres variables
3.8. Inclure un document xml dans un autre
3.9. Zone apparaissant avec barre de défilement
3.10. Générer un document pdf avec des bookmarks
4. Conventions et règles diverses
4.1. Bonnes pratiques
A. References documentation externe

Preface

Ce document s'adresse aux contributeurs (nombreux, espérons le..) qui auront à participer à l'amélioration de la documentation JOnAS.

Il est fortement conseillé de le lire avant de contribuer car l'infrastructure de fabrication de la documentation a complètement changé par rapport à l'ancienne documentation JOnAS. Avant il fallait écrire directement la documentation en HTML. Maintenant, la technologie utilisée est XML DocBook qui a l'avantage de bien séparer la partie contenu de la présentation et de permettre de générer cette documentation sous différents formats. Ce document est censé décrire comment écrire, fabriquer, publier la documentation JOnAS. Nous avons profité de ce changement pour intégrer la documentation dans SVN.

Le document est organisé de la manière suivante:

L'infrastructure de la documentation JOnAS

1.1. Description

La documentation JOnAS compose le module SVN jonas_doc du repository jonas .

Dans ce projet va être mis en oeuvre le DocBook Xslt Publishing Model qui est décrit dans ce diagramme

1.1.1. Structure du module SVN jonas_doc

Le module SVN jonas_doc a la structure suivante:

Avec:

olddoc

contient les fichiers html correspondant à l'ancienne doc JOnAS. Devrait etre detruit tres prochainement

src/docbook/doc-en

contient les fichiers xml correspondants aux documents anglais écrits en docBook

src/docbook/doc-fr

contient les fichiers xml correspondants aux documents français écrits en docBook

resources

contients les images, les stylesheets xls ou css

tools

contient le processeur Apache FOP utilisé pour fabriquer les documents pdf.

1.1.2. Structure des sources de la documentation livrée (guides en anglais)

L'ensemble des fichiers xml permettant de générer les guides JOnAS se trouve sous le directory jonas_doc/src/docbook/doc-en . Le directory est structuré en sous-répertoires de façon a retrouver facilement les documents sources. Cette structure est aujourd'hui la suivante:

admin administration de JOnAS  
anttasks toutes les taches ant  
clustering clustering dans JOnAS  
commands toutes les commandes de JOnAS  
deploy deploiement  
howto Les "howto"  
install Installation de JOnAS  
log Logging  
migration Ensemble des documents pour la migration d'une version de JOnAS a une autre  
protocols les protocoles  
ra les "resource adaptor"  
security la securite  
services cmi service cmi
db service db
dbm service dbm
discovery service discovery
ear service ear
ejb2 service ejb2
ejb3 service ejb3
ha service ha
jmx service jmx
jtm service jtm
mail service mail
registry service registry
resource service resource
security service security
web service web
wm service wm
ws service ws

Tous les documents finaux (les guides) sont à la racine (doc-en). Ils utilisent de maniere quasi systématiques des xi:include pour intégrer des morceaux de documents situés n'importe ou dans cet arbre.

1.2. Générer la doc JOnAS via ant

La génération de la doc se fait via ant. Il existe une target par document, ainsi que des target pour enchainer un ensemble de documents :

target description
clean delete all generated files
all rebuild toute la doc
war

fabrique le jonas-doc-en.war qui sera integré dans la distribution JOnAS

local

fabrique les documents non distribues (ce guide, par exemple)

dist

fabrique tous les documents livres

guides enchaine la fabrication de tous les guides
essai fabrique le document essai.xml, utilise pour divers essais
ear J2EE Application Deployer's Guide
client J2EE Client programmer's guide
clustering JOnAS Clustering Guide
connector J2EE Connector programmer's guide
webpg Web Application programmer's guide
ejb2pg ejb2 programmer's guide
j2eepg j2ee programmer's guide
config configuration guide
anttasks anttasks manual
howto fabrique les howto
bamboo fabrique le continuous_integration_guide (bamboo)
migration migration guide
started getting started guide
deployer deployer guide
admin administration guide
command command guide
copydist copy toutes les images et l'index.html livrés
copylocal copy toutes les images pour les docs locales

Les documents livrés sont genérés sous 3 formes :

  • un document html unique via la target html

  • un document partitonné en chunk via la target chunk

  • un document pdf à partir du document XSL-FO via la target pdf

  • un document en format XSL-FO [1] (formatting object) via la target fo

Ces target ne sont pas appelables directement. On doit donc générer les 3 formats à chaque fois pour chaque document.

Les targets html , fo et chunk dépendent de la target xslt qui utilise xsltproc.

Dans le cas d'un environnement Windows, le chemin vers l'exécutable xsltproc devra être présent dans le PATH du système. L'exécutable et ces dll associées sont présents dans le répertoire tools/win32.

Les transformations XML docBook -> HTML se fait via les feuilles de styles html.xsl et chunk.xsl

la transformation XML-> XSL-FO se fait via la feuille de style fo.xls

Ces feuilles de style se trouvent dans la directory resources

[Attention] Attention

Ces feuilles de styles en incluent d'autres qui se trouvent sous tools/docbook-xsl-1.73.2/html/docbook.xsl

1.3. Structure de la doc générée via ant

Toute la doc genérée va sous un directory output, qui est structuré ainsi:

dist Tous les documents livrés
local Tous les documents locaux
tmp fichiers temporaires
war le fichier war à integrer dans la distribution JOnAS

Les 2 repertoires dist et local ont la même structure:

doc-en (documents en anglais) chunk
html
pdf
doc-fr (documents en français) chunk
html
pdf
resources images, feuilles de style, ... images

1.4. Publier la doc sur le site JOnAS

Deux machines rentrent en ligne de compte jonas.forge.objectweb.org et jonas.objectweb.org

La machine jonas.forge.objectweb.org est la machine de développement, jonas.objectweb.org est la machine de publication.

Sur la machine jonas.forge.objectweb.org il y a une zone accessible via webdavs qui contient :

  • Une directory current contenant la documentation de JOnAS 4.8 EE

  • Une directory doc contenant un ensemble de doc et tutoriels plus ou moins vieux

  • Une directory JOnAS_4_7 contenant la documentation de JOnAS 4.7

  • Une directory pour la doc JOnAS5 (ayant le nom du tag correspondant) contenant:

    • une directory doc qui contient l'equivalent du output/dist de la doc jonas 5

    • une directory jdoc qui contient la javadoc correspondante[2]

  • Une directory pour la doc JOnAS4 (ayant le nom du tag correspondant) contenant:

    • une directory doc qui contient l'equivalent du output/dist de la doc jonas 4

    • une directory jdoc qui contient la javadoc correspondante[3]

La publication de la doc se fait en deux phases:

  1. Mise à jour de jonas.forge.objectweb.org

    On utilise Konqueror avec l'URL: webdavs://jonas.forge.objectweb.org:8002/

    Il suffit de copier les repertoires avec la souris (doc-en et resources) depuis le directory output/dist de la doc.

  2. Mise à jour de jonas.objectweb.org

    Se mettre sous l'onglet admin de la forge JOnAS:

    Cliquer sur le bouton de publication " Push Project Web Site from Development to Production Now !"

    Cette opération consiste à copier le contenu de la zone webdavs de jonas.forge.objectweb.org sur jonas.objectweb.org et de faire un merge avec le contenu du sous projet web (ancien site web) du projet JOnAS.

    [Note] Note

    ll est à noter que le contenu de web/html sera copié directement sous jonas.objectweb.org. C'est ainsi que sont publiés les démos sous http://jonas.objectweb.org/demos, les dtd sous http://jonas.objectweb.org/dtds/ et les schémas sous http://jonas.objectweb.org/ns/.

    Une fois la documentation publiée sur le site on peut être amené à mettre à jour le site XWiki de JOnAS pour changer les liens dans le menu documentation . Ceci se fait en modifiant la page http://wiki.jonas.objectweb.org/xwiki/bin/view/XWiki/

1.5. Personnalisation de la doc JOnAS

Il y a trois niveaux de personnalisation possibles

  1. personnalisation des transformations Docbook->autres formats (HTML ou XSL-FO)

    L'idée est de fournir une couche de personnalisation ( Customization layer ) via une feuille de style .xls qui permet de modifier certains paramétres comme la profondeur de la table des matières, la manière de numéroter les chapitres, sections etc...

    • pour une transformation DocBook->HTML les paramètres que l'on peut positionner sont décrits ici.

    • pour une transformation DocBook-> XSL-FO les paramètres positionnables sont décrits ici .

    • les feuilles de styles utilisées pour la doc JOnAS se trouve dans la directory resources et sont:

      html.xls

      utilisée dans la génération d'un document monolitique

      chunk.xls

      utilisée dans la génération d'un document segmenté. (elle aurait besoin d'amélioration).

      fo.xls

      utilisée dans la génération d'un document pdf

    • pour trouver des renseignements sur les Customization layer se reporter au Chapter 8. Customization methods du livre DocBook XSL: The Complete Guide - 3rd Edition

  2. personnalisation de la présentation des documents HTML

    On ne positionne pas de caractéristiques de présentation dans le document DocBook lui même, mais plutôt dans des Cascading Style Sheets ( .css).

    On peut se reporter au chapitre Using CSS to style HTML pour plus de renseignements

    La feuille de style utilisée est resources/common.css

  3. personnalisation de la présentation des documents pdf. Pour cette personnalisation il faut apprendre à connaitre le langage XSL-FO!

    on peut se reporter:

    La feuille de style utilisee est resources/fo.xls Elle permet d'élaborer une page de garde appropriée en fonction des bookinfo. Elle pourrait permettre d'améliorer la présentation des document pdf actuel mais il y a encore du travail à faire.

1.6. Problèmes connus

La génération des chaines variables via la directive xi:include pose un problème quand cette chaine apparait dans un lien

exemple :

<a href="#id2">abcde <span ><a name="appserver"></a>fghijk</span></a>

Le html généré par les feuilles de styles xls n'est pas valide voici le compte rendu du validateur html du W3C:


          Essai2 avec <span>
          
            <a name="appserver"></a>
          

          JOnAS</span></a></span> The element named
          above was found in a context where it is not allowed. This
          could mean that you have incorrectly nested elements -- such
          as a "style" element in the "body" section instead of inside
          "head" -- or two elements that overlap (which is not allowed).
          One common cause for this error is the use of XHTML syntax in
          HTML documents. Due to HTML's rules of implicitly closed
          elements, this error can create cascading effects. For
          instance, using XHTML's "self-closing" tags for "meta" and
          "link" in the "head" section of a HTML document may cause the
          parser to infer the end of the "head" section and the
          beginning of the "body" section (where "link" and "meta" are
          not allowed; hence the reported error).
        

Le workaround utilisé est de processer les fichier html générés et remplacer <a name="appserver"></a> par rien (car par chance seule la string variable JOnAS apparait dans des href)



[1] des renseignements sur ce format peuvent être trouvés ici

[2] Rappel: pour JOnAS 5 la javadoc se génère en faisant mvn javadoc:javadoc

[3] Rappel: pour JOnAS 4 la javadoc se génère en faisant ant javadoc

L'outillage de développement: XMLmind

2.1. Utiliser l'outil XMLmind (xxe)

L'outil XMLmind (xxe) permet de travailler en wysiwyg. C'est une alternative intéressante à un editeur basic de style emacs. Il permet en outre de ne pas avoir à connaitre tous les tags docbook puisqu'il les propose dans ses menus.

Pour l'utiliser, il suffit de lancer la commande: xxe

On peut trouver de la documentation en français dans le Guide de l'utilisateur de l'éditeur XML de XMLmind V3.4

2.2. Personnaliser son environement XMLmind

Pour créer un nouveau document, le plus simple est de copier un document existant et de modifier ensuite son contenu, récupérant ainsi facilement toute sa structure

Pour personnaliser son environement xmlmind il faut:

  • positionner dans les options d'edit (Options>Options>Edit) le toggle XInclude.

  • positionner l'option UTF-8 dans le menu Options - Preferences - Save

2.3. Naviguer d'un document à l'autre

  • pour modifier le document inclu :

    cliquer sur une partie de celui-ci puis Edit > Document Reference> Edit Referenced Document

    ou cliquer sur l'icone de droite que l'on voit ci-dessous

    Figure 2.1. 


  • pour revenir au document référençant :

    cliquer sur l'icone de gauche de la figure ci-dessus (en haut à gauche de l'ecran)

    ou faire Edit > Document Reference> Edit Referencing Document.

Apprendre à maitriser DocBook

On enumere ici quelques recettes pour resoudre des pbs courants. Cette liste n'est absolument pas exhaustive. On peut trouver de la documentation utile dans plusieurs documents listes en Annexe A, References documentation externe . On peut aussi s'inspirer de ce document lui-meme, ecrit bien sur en docbook. Il suffit de comparer le source .xml et le rendu en html. La feuille de style utilisee est la meme que pour les docs JOnAS.

3.1. Faire une documentation en Français

3.1.1. Declaration d'un book en français

Comment faire pour qu'aprés transformation on obtienne dans une documentation française chapitre au lieu de chapter, table des matières au lieu de table of contents etc...?

Il suffit de rajouter l'attribut xml:lang="fr" dans l'élément book ainsi:

<book xml:lang="fr">

3.1.2. Saisie des caractères accentués

Il a été décidé d'utiliser le format UTF-8 pour écrire l'ensemble de la doc, y compris les documents en français. Ceci implique de bien faire attention à positionner dans l'en-tête du fichier xml:

<?xml version="1.0" encoding="UTF-8"?>

De même, lorsqu'on utilisera un éditeur, il faudra être certain qu'il travaille dans le bon format. Il faut aussi s'assurer que le format du fichier est bien UTF-8. On peut pour cela utiliser gedit et sauver le fichier dans le bon format. Avec xxe, il faut positionner l'option save en UTF-8 (menu Options - Preferences - Save) sinon on va se retrouver avec un document converti dans le mauvais format!

Avant de lancer un éditeur (emacs ou xxe par exemple): Il faut positionner

export LC_CTYPE=fr_FR.UTF-8

On pourra alors lire et écrire des accents sans problème: àùûéôâîèêç § ÀÙÛÉÇÔÂÎÈÊ→

3.2. Représenter un fragment de code

On a souvent besoin de présenter des parties de codes, des fichiers de conf, des parties d'affichage d'écran alphanumérique pour lesquels on a besoin de faire du telquel (les coupures de lignes doivent être respectées).

En DocBook nous pouvons utiliser les éléments <screen>,<programlisting>, <literallayout> qui ont à peu prés les mêmes caractéristiques.

Ces éléments seront différentiés à la présentation par la feuille de style .css (pour le html).

Nous reservons :

<programlisting>

pour la présentation d'une portion de code assez long, et qui sera affiché avec un scrollbar en html.

<literallayout>

pour la présentation d'une portion de code plus court, et qui sera affiché sans scrollbar en html.

<screen>

pour la présentation d'une copie d'écran, sans scrollbar.

Par exemple, dans le document présent nous réservons <literallayout> pour montrer du code docBook et <screen> pour le résultat du code précédent cf Section 3.4.1, « lien vers une partie du document (xref) ».

3.3. Faire des tableaux

On utilise en général la balise <informaltable> sous laquelle on trouve une balise tgroup qui précise le nb de colonnes du tableau. Sous <tgroup> on trouve 2 parties: <thead> pour la partie en-tête, et <tbody> pour le corps du tableau. Les <thead> et <tbody> ont la même structure, mais n'auront pas le même rendu html, défini dans la feuille de style.

Avec xxe, on pourra utiliser le menu approprié, dans la barre d'outils : informaltable(head_row)

Exemple de tableau très simple, avec le code xml correspondant :

header 1 header 2
elt 1 description 1
elt 2 description 2


<informaltable>
  <tgroup cols="2">
    <thead>
      <row>
        <entry>header 1</entry>
        <entry>header 2</entry>
      </row>
    </thead>
    <tbody>
      <row>
        <entry>elt 1</entry>
        <entry>description 1</entry>
      </row>
      <row>
        <entry>elt 2</entry>
        <entry>description 2</entry>
      </row>
    </tbody>
  </tgroup>
</informaltable>
      

3.4. Faire des liens

3.4.1. lien vers une partie du document (xref)

il faut positionnner l'attribut linkend avec l' xml:id de la section, chapitre,... ou on veut aller la chaine sensible sera le titre de la section,chapitre,...

exemple d'un lien xref vers une section :


se reporter au 
<xref linkend="conventions" />
...
<chapter xml:id="conventions"/>
  <title>Conventions et règles diverses</title>
        

donnera:

se reporter au Chapitre 4, Conventions et règles diverses

3.4.2. autres types de lien (link)

Cet élément contient une chaine de caracteres qui deviendra sensible et un attribut linkend contenant l' xml:id de l'endoit ou on veut aller

Exemple de lien vers une partie du document :


se reporter à <link linkend="partiesection"> une partie de la section suivante</link>
... 
<para xml:id="partiesection">
        

donnera :

se reporter à une partie de la section suivante

On peut l'utiliser pour faire un lien sur une url ou pour faire un lien sur une autre partie de la doc dont on connait la position relative par rapport au document courant.

Exemple de lien vers un document externe à la doc JOnAS :


exemple de lien vers <link xlink:href="http://www.objectweb.org/">objectweb</link>
        

donnera :

exemple de lien vers objectweb

On peut aussi faire un lien vers un autre document en relatif par rapport à celui-ci. Il suffira de mettre comme valeur de xlink:ref une chaine du style: ../doc_en/toto.html.

Pour faire un lien vers un autre document de la doc JOnAS dont on connait la localisation de l'html généré:


the <link xlink:href="command_guide.html#commands.jonas.jonasadmin">jonas admin command</link> 
        

donnera:

the jonas admin command

3.5. Faire un exemple commenté d'un fichier de conf

Pour obtenir ceci:

carol.protocols=jrmp 1
carol.jrmp.url=rmi://localhost:1099 2
        

1

choice of the protocol or list of protocols

2

connexion url to the RMI registry

Il faut un <screen> (ou <programlisting>) avec des éléments <co> à l'endroit que l'on veut annoter avec un identifiant comme attribut xml:id

suivi d'un <calloutlist> ayant le meme nombre d'éléments <callout> que d'annotations, chacun des callout ayant un attribut arearefs contenant l' xml:id de l'annotation correspondante.

Voici le code xml correspondant:


carol.protocols=jrmp <co xml:id="id1" />
carol.jrmp.url=rmi://localhost:1099 <co xml:id="id2"  />
<calloutlist> 
  <callout arearefs="id1"> 
    <para>choice of the protocol or list of protocols</para>
  </callout> 
  <callout arearefs="id2"> 
    <para>connexion url to the RMI registry</para> 
  </callout> 
</calloutlist>
      

A noter que l'insertion des annotations dans la ligne se fait très simplement avec xxe.

3.6. insérer des notes de bas de page

  • inserer une nouvelle note :

    • insérer un élément footnote

    Voici un exemple de note [4]

    code correspondant:


    Voici un exemple de note <footnote xml:id="firstnote"> 
        <para>première note de bas de page</para>
      </footnote>
                

  • insérer une note pointant sur une note existante:

    • positionner l'attribut xml:id de la note existante

    • insérer un élément footnoteref l'attribut linkend a pour valeur l'attribut xml:id de la note existante

    Voici une note [4] référençant la précédente

    code correspondant:


    Voici une note<footnoteref linkend="firstnote" /> référençant la précédente
                

3.7. Utiliser des chaines de caracteres variables

le fichier variables.xml est un fichier utilisé uniquement pour définir le contenu de chaines de caractères qui risquent de changer (nom de projet, numéro de version, etc...):

Ce fichier est consitué d'une section et d'un ensemble de lignes contenant des déclarations du style :

<phrase xml:id="objectweb">ObjectwebV2</phrase>

objectweb étant l'identifiant utilisé dans les documents sources, et ObjectwebV2 la valeur qui sera finalement remplacée dans le fichier html (ou pdf) généré.

Dans la document xml, il faudra insérer, à la place de ObjectwebV2, un texte qui ressemble à :

<xi:include href="../variables.xml" xpointer="objectweb"/>

Avec xxe, on fera simplement :

  1. cliquer sur la chaine voulue dans variable.xml

  2. faire Edit>Document Reference>Copy as reference

  3. faire paste a l'endroit voulu dans le document referencant

3.8. Inclure un document xml dans un autre

On peut utiliser la mécanique des xi:include décrite ci-dessus pour inclure tout ou partie d'un document xml dans un autre. Il faudra juste supprimer la partie xpointer si tout le document doit etre inclus.

Cette mécanique est largement utilisée dans la documentation JOnAS, la plupart des books étant une liste de chapitres (ou annexes) qui incluent des fichiers xml situés ailleurs

Un exemple :

<xi:include href="ra/JMSRA.xml"/>

Sous xxe, on fera comme précédemment, mais il faudra ensuite manuellement supprimer la partie xpointer.

3.9. Zone apparaissant avec barre de défilement

Pour obtenir ceci une barre de défilement permettant de scroller une zone d'information importante, on utilisera une balise programlisting :

la (ou les) barre de défilement n'apparaitront pas dans le document pdf bien sur.

Exemple de présentation du fichier jonas.properties:

# Enable the Security context propagation (for jrmp)
jonas.security.propagation    true

# Enable the Security manager
# default value is true (if not set)
# Setting this to false implies a colocated registry and setting in carol.properties:
# carol.jvm.rmi.local.registry=true
jonas.security.manager    false

# Enable csiv2
jonas.csiv2.propagation    true

# Enable the Transaction context propagation
jonas.transaction.propagation    true

#  Set the name of log configuration file
jonas.log.configfile    trace

# Set to true if the server is a master
jonas.master    false


#  Set the list of the services launched in the JOnAS Server.
#  Possible services are: registry,jmx,security,jtm,db,mail,wm,wc,dbm,resource,cmi,ha,versioning,ejb2,ejb3,ws,web,ear,depmonitor,discovery
#  (registry and jmx are automatically started even if not present in the list)
#  Order in the list is important (see 'Configuring JOnAS services' in JOnAS documentation)
#
jonas.services    registry,jmx,jtm,db,dbm,security,wm,wc,resource,ejb2,ejb3,ws,web,ear,depmonitor

#
###################### JOnAS Registry service configuration
#
#  Set the name of the implementation class of the Registry service
jonas.service.registry.class org.ow2.jonas.registry.carol.CarolRegistryService

#  Set the Registry launching mode
#  If set to 'automatic', the registry is launched in the same JVM as Application Server,
#                         if it's not already started.
#  If set to 'collocated', the registry is launched in the same JVM as Application Server
#  If set to 'remote', the registry has to be launched before in a separate JVM
jonas.service.registry.mode    collocated

#
###################### JOnAS JMX service configuration
#
#  Set the name of the implementation class of the JMX service
jonas.service.jmx.class                         org.ow2.jonas.jmx.internal.JOnASJMXService

#  Set to true if the JMXRemote interface should require the client to provide
#  authentication information. That information is provided when establishing
#  the JMX connection, using the JMXConnector.CREDENTIALS key.
#
#  Note that if you enable JMX security for a server, all clients (including
#  any administration tool such as the domain master) connecting to this
#  instance via JMX must provide a valid user name and password.
jonas.service.jmx.secured                       false

#  If jonas.service.jmx.secured is set to true, defines the authentication
#  method and the method's parameter. For example, to use file-based
#  authentication using the conf/jmx.passwords file, define:
#      jonas.service.jmx.authentication.method    jmx.remote.x.password.file
#      jonas.service.jmx.authentication.parameter conf/jmx.passwords
#  You are free to use the authentication provider you wish.
jonas.service.jmx.authentication.method         jmx.remote.x.password.file
jonas.service.jmx.authentication.parameter      conf/jmx.passwords
#  You may for example choose to use JAAS LoginModule for authentication.
#  In this case define the used configuration in the JAAS configuration file
#  using the jonas.service.jmx.authentication.parameter:
#      jonas.service.jmx.authentication.method      jmx.remote.x.login.config
#      jonas.service.jmx.authentication.parameter   jaas-jmx

#  If jonas.service.jmx.secured is set to true, defines the authorization
#  method and the method's parameter. For example, to use file-based
#  authorization using the conf/jmx.access file, define:
#      jonas.service.jmx.authorization.method    jmx.remote.x.access.file
#      jonas.service.jmx.authorization.parameter conf/jmx.access
#  You are free to use the authorization provider you wish.
jonas.service.jmx.authorization.method          jmx.remote.x.access.file
jonas.service.jmx.authorization.parameter       conf/jmx.access
#  You may for example choose to use role-based authorization manager
#  configured using conf/jmx.rolebased.access file. In this case, define:
#      jonas.service.jmx.authorization.method          jmx.remote.x.access.rolebased.file
#      jonas.service.jmx.authorization.parameter       conf/jmx.rolebased.access


#
###################### JOnAS WorkCleaner service configuration
#
#  Set the name of the implementation class of the wc service
jonas.service.wc.class    org.ow2.jonas.workcleaner.internal.JOnASWorkCleanerService

#  Set the clean period in seconds
jonas.service.wc.period   300


#
###################### JOnAS WorkManager service configuration
#
#  Set the name of the implementation class of the wm service
jonas.service.wm.class    org.ow2.jonas.workmanager.internal.JOnASWorkManagerService

#  Set the size of the worker thread pool
jonas.service.wm.minworkthreads   3

#  Set the maximun size of the worker thread pool
jonas.service.wm.maxworkthreads   80

#  Set the max # of seconds that a thread will wait for work
#  This is used to shrink the worker thread pool back to minimum
jonas.service.wm.threadwaittimeout 60


#
###################### JOnAS EJB 2 Container service configuration
#
#  Set the name of the implementation class of the ejb2 service
jonas.service.ejb2.class    org.ow2.jonas.ejb2.internal.JOnASEJBService

#  Set the XML deployment descriptors parsing mode (with or without validation)
jonas.service.ejb2.parsingwithvalidation    true

# If enabled, the GenIC tool will be called if :
#  - JOnAS version of the ejb-jar is not the same version than the running JOnAS instance
#  - Stubs/Skels stored in the ejb-jar are not the same than the JOnAS current protocols.
# By default, this is enabled
jonas.service.ejb2.auto-genic    true

# Arguments for the auto GenIC (-invokecmd, -verbose, etc.)
jonas.service.ejb2.auto-genic.args -invokecmd

###################### JOnAS EJB 3 container service configuration
#
#  Set the name of the implementation class of the EJB 3 service.
jonas.service.ejb3.class    org.ow2.jonas.ejb.easybeans.EasyBeansService

###################### JOnAS Versioning service configuration
#
#  Set the name of the implementation class of the versioning service.
jonas.service.versioning.class          org.ow2.jonas.versioning.internal.VersioningServiceImpl

###################### JOnAS Web container service configuration
#
#  Set the name of the implementation class of the web container service.
jonas.service.web.class    org.ow2.jonas.web.tomcat6.Tomcat6Service
#jonas.service.web.class    org.ow2.jonas.web.jetty6.Jetty6Service

#  Set the XML deployment descriptors parsing mode for the WEB container
#  service (with or without validation).
jonas.service.web.parsingwithvalidation    true

###################### JOnAS WebServices service configuration
#
#  Set the name of the implementation class of the WebServices service.
jonas.service.ws.class    org.ow2.jonas.ws.axis.AxisService

# Set the JServiceFactory to use
jonas.service.ws.factory.class org.ow2.jonas.ws.axis.JAxisServiceFactory

#  Set the XML deployment descriptors parsing mode for the WebServices
#  service (with or without validation).
jonas.service.ws.parsingwithvalidation    true

#  Set the WSDL Handler list for WSDL publication
#  A minimum of 1 WSDLHandler is required !
#  This property is set with a coma-separated list of WSDLHandler properties
#  file names (without the '.properties' suffix).
#  Ex: file1,uddi (while the properties file names are
#                  file1.properties and uddi.properties)
jonas.service.ws.wsdlhandlers file1

# Set the Generator to use with wsgen
jonas.service.ws.wsgen.generator.factory     org.ow2.jonas.generators.wsgen.generator.ews.EWSGeneratorFactory

# Set the prefix that will be used to compute URL endpoints for web services
# Example of prefix: http://www.mydomain.com:8888
jonas.service.ws.url-prefix

# Set automatic WsGen mode on/off
# If set to 'true', WsGen will automatically be applied to all deployed archives (EjbJars, Webapps, Applications)
jonas.service.ws.auto-wsgen.engaged true

#
###################### JOnAS EAR service configuration
#
#  Set the name of the implementation class of the ear service.
jonas.service.ear.class    org.ow2.jonas.ear.internal.JOnASEARService

#  Set the XML deployment descriptors parsing mode for the EAR service
#  (with or without validation).
jonas.service.ear.parsingwithvalidation    true

#
###################### JOnAS DBM Database service configuration
#
#  Set the name of the implementation class of the dbm service
jonas.service.dbm.class    org.ow2.jonas.dbm.internal.JOnASDataBaseManagerService

#  Set the jonas DataSources. This enables the JOnAS server to load
#  the data dources, to load related jdbc drivers, and to register the data
#  sources into JNDI.
#  This property is set with a coma-separated list of Datasource properties
#  file names (without the '.properties' suffix).
#  Ex: Oracle1,InstantDB1 (while the Datasources properties file names are
#                          Oracle1.properties and InstantDB1.properties)
jonas.service.dbm.datasources    HSQL1

#
###################### JOnAS Mail service configuration
#
#  Set the name of the implementation class of the mail service
jonas.service.mail.class  org.ow2.jonas.mail.internal.JOnASMailService

#  Set the jonas mail factories.
#  This property is set with a coma-separated list of MailFactory properties
#  file names (without the '.properties' suffix).
#  Ex: MailSession1,MailMimePartDS1 (while the properties file names are
#                  MailSession1.properties and MailMimePartDS1.properties)
jonas.service.mail.factories

#
###################### JOnAS JTM Transaction service configuration
#

#  Set the name of the implementation class of the jtm service
jonas.service.jtm.class    org.ow2.jonas.tm.jotm.JOTMTransactionService

#  Set the Transaction Manager launching mode.
#  If set to 'true', TM is remote: TM must be already launched in an other JVM.
#  If set to 'false', TM is local: TM is going to run into the same JVM
#  than the jonas Server.
jonas.service.jtm.remote    false

#  Set the default transaction timeout, in seconds.
jonas.service.jtm.timeout    60


#
###################### JOnAS SECURITY service configuration
#
#  Set the name of the implementation class of the security service
jonas.service.security.class  org.ow2.jonas.security.internal.JonasSecurityServiceImpl

# Realm used for CsiV2 authentication
jonas.service.security.csiv2.realm    memrlm_1

# Realm used for Web Service authentication
jonas.service.security.ws.realm    memrlm_1

# Registration of realm resources into JNDI
# Disable by default so configuration is not available with clients
jonas.service.security.realm.jndi.registration    false

# Enable security context check on Remote Login Module
jonas.security.context.check    false

# Path to the keystore file
jonas.security.context.check.keystoreFile /tmp/keystore

# Pass used for the keystore file
jonas.security.context.check.keystorePass keystorepass

# Alias (stored in the keystore)
jonas.security.context.check.alias FB

#
###################### JOnAS J2CA resource service configuration
#
#  Set the name of the implementation class of the J2CA resource service
jonas.service.resource.class  org.ow2.jonas.resource.internal.JOnASResourceService

###################### JOnAS DB service configuration
#
#  Set the name of the implementation class of the db service (hsql for example)
jonas.service.db.class    org.ow2.jonas.db.hsqldb.HsqlDBServiceImpl
jonas.service.db.port    9001
jonas.service.db.dbname    db_jonas
jonas.service.db.users    jonas:jonas
# Multiple users
#jonas.service.db.users    jonas:jonas,login:password

###################### JOnAS Discovery service
#
#  Set the name of the implementation class and initialization parameters
jonas.service.discovery.class=org.ow2.jonas.discovery.jgroups.JgroupsDiscoveryServiceImpl
# Uncomment this to set Multicast implementation
#jonas.service.discovery.class=org.ow2.jonas.discovery.internal.MulticastDiscoveryServiceImpl


#####################  Properties for multicast impl.

#  For a master server, configure the client source port with this property
jonas.service.discovery.source.port=9888
jonas.service.discovery.ttl=1
jonas.service.discovery.multicast.address=224.224.224.224
jonas.service.discovery.multicast.port=9080

#  A multicast greeting message is sent out when discovery service is started.
#  The starting server listens at the port jonas.service.discovery.greeting.port
#  (default 9899) for a response for jonas.service.discovery.greeting.timeout miliseconds
#  (default 1000 ms). If a pre-existing server has the same server name as this one,
#  this server's discovery service will be terminated.
#  Uncomment these two lines for multicast discovery
jonas.service.discovery.greeting.port=9899
jonas.service.discovery.greeting.timeout=1000

#####################  properties for JGroups impl.
jonas.service.discovery.jgroups.conf= jgroups-discovery.xml
jonas.service.discovery.group.name = JGroupsDiscovery
#Reconnection timeout for JGroups Channel, if it's closed on request.
jonas.service.discovery.reconnection.timeout = 5000

###################### JOnAS CMI service configuration
#
# Set the name of the implementation class of the CMI service.
jonas.service.cmi.class   org.ow2.jonas.cmi.internal.CmiServiceImpl

###################### JOnAS HA service configuration
#
# Set the name of the implementation class of the HA service.
jonas.service.ha.class    org.ow2.jonas.ha.internal.HaServiceImpl

# Set the JGroups configuration file name
jonas.service.ha.jgroups.conf jgroups-ha.xml

# Set the JGroups group name
jonas.service.ha.jgroups.groupname jonas-rep

# Set the SFSB backup info timeout. The info stored in the backup node is removed when the timer expires.
jonas.service.ha.gc.period 600

# Set the datasource for the tx table
jonas.service.ha.datasource jdbc_1

# Reconnection timeout for JGroups Channel, if it's closed on request.
jonas.service.ha.reconnection.timeout 5000

###################### JOnAS Deployment Monitor
#
# Set the name of the implementation class of the depmonitor service
#
jonas.service.depmonitor.class          org.ow2.jonas.deployablemonitor.DeployableMonitorService
jonas.service.depmonitor.development    true
jonas.service.depmonitor.directories
# List (comma separated) of exclusion patterns (based on names, not directories)
jonas.service.depmonitor.exclusions     README
      

Voici le résultat attendu (dans un document HTML):

3.10. Générer un document pdf avec des bookmarks

Il suffit de rajouter dans la feuille de style fo.xsl:

        <xsl:param name="fop1.extensions" select="1"/>
      


[4] première note de bas de page

Conventions et règles diverses

4.1. Bonnes pratiques

dans ce § un certain nombre de règles sont énumérées afin d'obtenir une documentation homogène:

  • Eviter le style direct du genre

    First of all, we need to define or you have to type the following command.

    (sauf dans un tutorial)

  • limiter les liens, utiliser l'inclusion

  • Conventions typographiques pour les differents éléments textuels:

    d'une manière générale la politique est de caracteriser l'élément textuel via un element DocBook ce qui permettra de s'occupper de la présentation de cet élément de manière fine dans la feuille de style .css .

    Donc, éviter emphasis et utiliser les éléments possibles de DocBook comme filename, classname , property ,etc...

    dans xmlmind pour connaitre les éléments possibles surligner la chaine de caractères puis faire ctrl-T (ou convert) le nom des éléments apparaissent dans la fenêtre à droite. A noter que certains élément peuvent être encore précisé via l'éditeur d'attributs: à l'élément filename on peut préciser l'attribut class avec les valeurs suivantes: directory, devicefile, extension,etc...

    • nom de directory:

      $JONAS_ROOT/conf

      utiliser filename + attribut class= directory

    • nom de fichier

      jonas.properties

      utiliser filename

    • nom de propriete de configuration

      jonas.services

      utiliser property

    • nom de variable d'environnement

      JONAS_ROOT

      utiliser envar

    • valeur de variable d'environnement

      /home/jr48

      dépend du type de la valeur , si c'est un path filename+directory si c'est une valeur prendre literal

    • nom de classe java ou package :

      javax.mail.internet.MimePartDataSource .

      utiliser classname

    • nom d'interface java:

      javax.ejb.SessionSynchronization .

      utiliser interfacename

    Voici un tableau permettant de controler le rendu pour les différents éléments textuels(compte tenu de notre feuille de style utilisée) :

    elements/attributs rendu du texte
    texte texte
    <emphasis>texte</emphasis> texte
    <emphasis role="bold">texte</emphasis> texte
    <filename>texte</filename> texte
    <filename class="directory">texte</filename> texte
    <filename class="extension">texte</filename> texte
    <literal>texte</literal> texte
    <classname>texte</classname> texte
    <interfacename>texte</interfacename> texte
    <command>texte</command> texte
    <envar>texte</envar> texte
    <interfacename>texte</interfacename> texte
    <package>texte</package> texte
    <property>texte</property> texte
    <function>texte</function> texte
    <link xlink:href="http://wiki.jonas.objectweb.org">texte</link> texte

    voici la liste des éléments possibles

  • Identifier les éléments qui risquent d'etre référencés ou inclu (chapitre, section, autres) en positionant l'attribut id de l'élément XML DocBook correspondant :

    <section xml:id="config.cmi">

    L'id choisi doit être unique dans le document entier.

    On prend la convention de nommage suivante: prendre un nom qui reflète la structure arborescente des sources (comme les package java).

References documentation externe

DocBook XSL: The Complete Guide

C'est la bible! un peu mastoc mais il faut y revenir régulièrement il est incontournable...

DocBook: The Definitive Guide

pas mal non plus on y trouve parfois des choses différentes que dans le précédent

Manuel DocBook (en français)

a le mérite d'être en français...

DocBook 5.0 The Transition Guide

Pour le passage à docBook 5

DocBook-XML et éditeur XMLmind (en français)

excellente introduction rapide à DocBook (une sorte de DocBook pour les nuls...)

HTML Parameter Reference

documentation de réference pour parametrisation des DocBook XSL HTML stylesheets (pour generer des documents HTML

FO Parameter Reference

documentation de réference pour paramétrisation des DocBook XSL FO stylesheets (pour generer des documents XSL-FO utilisé pour des documents finaux au format PDF.

Using CSS to style HTML

comment utiliser css pour personnaliser un document HTML