I2P

Invisible Internet Project


root/www.i2p2/pages/plugin_spec_fr.html @ 6c1e4800070ab98ec7454a6f4518d1e2f22ad041

Revision 6c1e4800070ab98ec7454a6f4518d1e2f22ad041, 22.7 KB (checked in by magma@…, 2 years ago)

upd 086_fr pages and end for plugin_spec_fr

Line 
1{% extends "_layout_fr.html" %}
2{% block title %}Spécification des greffons I2P{% endblock %}
3{% block content %}
4Traduction de mai 2011. <a href="plugin_spec.html">Version anglaise actuelle</a>
5<h2>
6Spécification Version 0.16
72010-07-26
8</h2>
9<p> 
10Mise à jour de juillet 2010 pour le routeur version 0.8.
11<h3>Aperçu</h3>
12<p> 
13Ce document spécifie un format de fichier .xpi2p (comme le .xpi de Firefox), mais avec un simple fichier de description
14plugin.config au lieu du fichier XML install.rdf. Ce fichier est utilisé pour l'installation initiale et pour les mises
15à jour.
16<p>
17De plus, ce document présente un aperçu résumé de l'installation des greffons par le routeur, et les stratégies et les
18grandes lignes de travail pour les développeurs.
19<p>
20Le format de base du fichier .xpi2p est le même que celui du fichier i2pupdate.sud (utilisé pour les mises à jour du
21routeur), mais le programme d'installation laisse faire l'utilisateur même si la clé de signature n'est pas encore
22connue.
23<p>
24La structure standard des répertoires permet l'installation des types de greffons suivants :
25<ul>
26<li>
27         applications web de console (webapps)
28<li>
29         nouvel eepsite avec cgi-bin, webapps
30<li>
31         thÚmes de console
32<li>
33         traductions de console
34<li>
35         programmes Java
36<li>
37         programmes Java dans une JVM séparée
38<li>
39         Tout script shell ou programme
40</ul>
41
42<p>
43Un greffon installe tous ses fichiers dans ~/.i2p/plugins/nom/ (%APPDIR%\I2P\plugins\nom\ sur Windows). Le programme
44d'installation empêche l'installation ailleurs, bien que le greffon puisse accéder pour son fonctionnement à des
45bibliothÚques situées en dehors de cette arborescence.
46
47<p>
48Ceci doit seulement être considéré comme un moyen pour faciliter l'installation, la désinstallation, et les mises à
49jour, ainsi que pour minimiser les conflits entre greffons.
50
51<p>
52Cependant, il n'y a pas de modÚle de sécurité imposé lorsque le greffon est en cours d'exécution. Les greffons tournent
53dans la même JVM et avec les même privilÚges que le routeur : ils ont l'accÚs total au systÚme de fichiers, au routeur,
54à l'exécution de programmes etc&hellip;
55<h3>Détails</h3>
56<p>
57foo.xpi2p est un fichier sud contenant les données suivantes :
58<pre>
59En-tête standard .sud au début du fichier zip, contenant :
60        La <a href="how_cryptography.html#DSA">signature DSA</a> Ã  40 octets
61        La version du greffon sur 16 octets en UTF-8, complétée par des zéros en fin si nécessaire
62
63Le fichier Zip contenant :
64
65        (REQUIS) un fichier plugin.config :
66        (fichier standard de configuration I2P, en UTF-8, contenant des lignes clé=valeur, les commentaires commençant par #)
67        Contenant les propriétés suivantes :
68
69        (* = requis)
70                Les trois premiÚres doivent être identiques à celles du greffon installé s'il s'agit d'une mise à jour.
71
72                *name (le greffon sera installé dans ce dossier)
73                        Pour les greffons spécifiques à un SE donné, vous pouvez séparer les noms pour des paquets différents, par exemple truc-windows et truc-linux.
74                *key (<a href="how_cryptography.html#DSA">clé publique DSA</a> sous forme Base64 de 172 caractÚres finissant '=')
75                *signer (votrenom@mail.i2p recommendé)
76
77                *version (dans un format compatible avec VersionComparator, p.e. 1.2.3-4)
78                        16 octets maximum (doit correspondre à la version du sud)
79                        Les séparateurs acceptés sont '.', '-', et '_'
80                        Pour une mise à jour de greffon, doit être supérieure à celle actuellement installée.
81
82
83                configclients.jsp affichera les éléments suivants s'ils sont présents :
84
85                date (temps Java - entier long)
86                author (votrenom@mail.i2p recommendé)
87                websiteURL (http://truc.i2p/)
88                updateURL (http://truc.i2p/truc.xpi2p)
89                        Le vérificateur de mises à jour contrÃŽle les octets 41 à 56 à cette URL pour déterminer si une nouvelle version est disponible
90                        (Le vérificateur va-t-il télécharger avec ?currentVersion=1.2.3?&hellip; Non. Si le développeur que l'URL contienne la version actuelle, il doit le préciser dans le fichier de configuration, et penser à le modifier à chaque nouvelle version)
91                description
92                description_xx (pour la langue xx)
93                license
94                disableStop=true
95                        Par défault, false.
96                        À true, le bouton "Arrêt" n'est pas affiché. À utiliser s'il n'y pas de client ni de
97                        webapp avec des arguments d'arrêt.
98
99                Les éléments suivants servent à l'affichage d'un lien dans le panneau de contrÃŽle de la console:
100
101                consoleLinkName (nom affiché dans le panneau de contrÃŽle)
102                consoleLinkName_xx (pour la langue xx)
103                consoleLinkURL (/appname/index.jsp)
104                consoleLinkTooltip (supporté depuis la version 0.7.12-6)
105                consoleLinkTooltip_xx (idem, pour la langue xx)
106                       
107
108                Les éléments suivants concernent l'installeur du greffon :
109
110                type (app/theme/locale/webapp/...) (non implémenté, probablement inutile)
111                min-i2p-version
112                max-i2p-version
113                min-java-version
114                min-jetty-version
115                max-jetty-version
116                required-platform-OS (non implémenté - sera peut-être seulement affiché, pas vérifié)
117                other-requirements (non implémenté p.e. python x.y - non vérifié par l'installeur, uniquement
118                 affiché)
119                dont-start-at-install=true
120                        false par défaut.
121                router-restart-required=true
122                        false par défaut.
123                        dont-start-at-install doit être positionné à true pour être actif.
124                        Ceci ne redémarre pas le routeur, indique seulement la nécessité de redémarrer.
125                update-only=true
126                        false par défaut.
127                        À true, un échec se produira si le greffon n'est pas déjà installé.
128                install-only=true
129                        false par défaut.
130                        À true, si le greffon est déjà installé, l'installation échouera.
131                min-installed-version (version minimale requise pour la mise à jour)
132                max-installed-version (version maximale requise pour la mise à jour)
133                depends=plugin1,plugin2,plugin3 (non implémenté - trop difficile? proposé par sponge)
134                depends-version=0.3.4,,5.6.7 (non implémenté)
135
136                Les éléments suivants sont pour les greffons de traduction :
137                langs=xx,yy,Klingon,... (non implémenté) (yy est le drapeau du pays)
138
139        Tous les dossiers et fichiers suivants sont optionnels , mais il faut mettre quelque-chose, ou il ne se
140        passera rien :
141
142        console/
143                locale/
144                        Seulement des jars contenant de nouvelles ressources (traductions) pour les
145                        applications de l'install de base I2P.
146                        Les paquets de ce greffon vont dans console/webapp/truc.war ou lib/truc.jar
147
148                themes/
149                        Nouveaux thÚmes pour la console
150                        Copier chaque thÚme dans un sous dossier.
151
152                webapps/
153                        (voir plus bas les remarques importantes sur les applications web)
154                        .wars
155                        Ils seront lancés à l'installation sauf si désactivés dans webapps.config
156                        Le nom du .war ne doit pas nécessairement être le même que celui du greffon.
157                        Ne pas utiliser plusieurs fois le même nom de .war dans l'installation de base.
158
159                webapps.config
160                        Même format que le webapps.config du routeur
161                        Sert aussi à indiquer des .jars supplémentaires dans $PLUGIN/lib/ ou $I2P/lib pour le
162                        classpath de la webapp, avec
163                        webapps.warname.classpath=$PLUGIN/lib/foo.jar,$I2P/lib/bar.jar
164                        NOTE : actuellement, la ligne classpath n'est chargée que si le nom du war est le même
165                        que celui du greffon.
166                        NOTE : avant sa version 0.7.12-9, le routeur cherchait plugin.warname.startOnLoad au
167                        lieu de webapps.warname.startOnLoad. Pour la compatibilité avec les versions
168                        antérieures, si un greffon doit désactiver un war, il doit comporter les deux lignes.
169
170        eepsite/
171                (Voir plus bas les remarques importantes sur les eepsites)
172                cgi-bin/
173                docroot/
174                logs/
175                webapps/
176                jetty.xml
177                        L'installeur devra y substituer la variable pour définir le chemin
178                        L'emplacement et le nom de ce fichier ne sont pas vraiment importants, tant qu'ils sont
179                        définis dans clients.config - il peut être plus pratique d'être un niveau au dessus
180                        dans l'arborescence (comme le fait le greffon zzzot)
181
182        lib/
183                Pour tous les jars. Les indiquer dans une ligne classpath de console/webapps.config et/ou clients.config
184
185        clients.config (même format que le clients.config du routeur)
186                Éléments lancés quand un greffon est démarré
187                Commence à client #0, en numérotation consécutive
188                New property clientApp.0.stopargs=truc machin stop bidule
189                        Si présente, la classe sera appelée avec ces arguments pour arrêter le client
190                        Toutes les tâches d'arrêt sont appelées avec un délais nul
191                        Note: Le routeur ne peut pas dire si les clients tournent ou pas. Chacun doit pouvoir gérer une demande d'arrêt d'une application qui ne tourne pas sans faire d'histoires.
192                        Idem pour le lancement d'un client déjà démarré.
193                New property clientApp.0.uninstallargs=truc machin uninstall bidule
194                        Si présente, la classe sera appelée avec ces arguments juste avant la suppression de $PLUGIN
195                        Toutes les tâches de désinstallation sont appelées avec un délais nul
196                New property clientApp.0.classpath=$I2P/lib/truc.muche,$PLUGIN/lib/bidule.jar
197                        L'exécutable du greffon devra faire une substitution de variable dans les lignes des
198                        les arguments et les stopargs de la façon suivante :
199                        $I2P => dossier d'installation de base d'I2P;
200                        $CONFIG => dossier de configuration d'i2p (habituellement ~/.i2p)
201                        $PLUGIN => le dossier d'installation du greffon (habituellement ~/.i2p/plugins/appname)
202                (Voir les remarques importantes sur les scripts d'exécution shell ou les programmes externes)
203</pre>
204
205
206<h3>Tâches d'installation du greffon</h3>
207Séquence d'installation.
208<ul>
209
210    <li>Téléchargement du fichier .xpi2p.</li>
211    <li>Vérification de la signature du .sud par rapport au clés connues. En l'absence de correspondance, le .sud est
212        extrait, la clé est chargée à partir des propriétés, vérifiée et enregistrée.</li>
213    <li>Vérification de l'intégrité du fichier zip.</li>
214    <li>Extraction du fichier plugin.config.</li>
215    <li>Vérification de la version d'I2P, pour assurer que le greffon peut fonctionner.</li>
216    <li>Vérification qu'il ne s'agit pas d'un doublon d'une des application $I2P.</li>
217    <li>Arrêt de l'éventuel greffon existant.</li>
218    <li>ContrÃŽle de l'inexistence du dossier d'installation si update=false, ou demande d'écrasement.</li>
219    <li>Vérification de l'existence du dossier d'installation update=true, ou demande de création.</li>
220    <li>Décompression du greffon dans appDir/plugins/name/</li>
221    <li>Ajout d'une référence au greffon dans plugins.config</li>
222</ul>
223
224<h3>
225Tâches du lanceur du greffon</h3>
226Séquence de lancement du greffon.
227tout d'abord, le fichier plugins.config est vérifié pour trouver quels greffons doivent être lancés.
228Pour chacun :
229<ul>
230    <li>Vérification de clients.config, chargement et lancement de chacun (ajout des jars configurés au classpath).</li>
231    <li>Vérification de console/webapp et console/webapp.config. chargement et lancement des éléments requis
232        (ajout des jars configurés au classpath).</li>
233    <li>Ajout de console/locale/truc.muche au classpath de traduction, si présent.</li>
234    <li>Ajout de console/theme au chemin de recherche de thÚmes, si présent.</li>
235    <li>Ajout du lien au panneau de contrÃŽle.</li>
236</ul>
237
238<h3>
239Remarques sur les applications web de console</h3>
240<p>
241Ces applications avec des tâches de fond doivent mettre en œuvre un ServletContextListener
242(voir les exemples de seedless ou i2pbote), ou écraser le destroy() dans le servlet, pour qu'elles puissent être
243arrêtées.
244À partir de la version 0.7.12-3 du routeur, les applications web de console sont toujours arrêtées avant d'être
245redémarrées pour que le développeur n'ait pas à se soucier des instances multiples, si jamais il y en a.
246À partir de cette même version, les webapps sont arrêtées lorsque le routeur est arrêté.
247<p>
248Ne fournissez pas de bibliothÚques jars dans les webapps ; placez-les dans lib/ avec un classpath dans webapps.config.
249Vous pourrez ainsi faire des installations et des mises à jours séparées, où ces derniÚres ne contiendront pas de
250bibliothÚques.
251<p>
252N'incluez pas de fichiers .java ou de .jsp ; sinon, jetty les recompilera à l'installation.
253<p>
254Pour l'instant, une webapp qui a besoin d'ajouter un des fichiers classpath dans $PLUGIN doivent avoir le même nom que
255que le greffon. Par exemple, la webapp du greffon 'truc' doit s'appeler truc.war.
256
257
258<h3>
259Remarques sur les eepsite
260</h3>
261<p>
262La façon d'ajouter un greffon à un site eep n'est pas trÚs claire. Le routeur n'a aucune jonction au site eep, l'état
263démarré ou arrêté de celui-ci lui est inconnu, et il peut y en avoir plusieurs. Le mieux est de lancer vos propres
264instances Jetty et I2PTunnel pour un nouvel eepsite.
265<p>
266 Il peut instancier un nouvel I2PTunnel (comme comme le fait la ligne de commande i2ptunnel), mais bien sûr il ne sera
267pas visible dans le GUI i2ptunnel, qui est une instance différente. Ça n'est pas un problÚme. Vous pouvez ensuite
268arrêter et démarrer i2ptunnel et Jetty ensemble.
269<p>
270Ne comptez donc pas sur le routeur pour fusionner ça avec un site eep préexistant. Ça ne fonctionnera sûrement pas.
271Démarrez un nouvel I2PTunnel et un nouveau Jetty depuis le fichier clients.config. Les meilleurs exemples sont ceux des
272greffons zzzot et pebble, disponibles sur <a href="http://stats.i2p/i2p/plugins/">page greffons de zzz</a>.
273<p>
274Comment réaliser une substitution de path dans jetty.xml? Voir les exemples de zzzot et pebble.
275
276
277<h3>
278Remarques sur l'arrêt/démarrage du client
279</h3>
280<p>
281Le routeur ne dispose d'aucun moyen de contrÎle de l'état des clients démarrés via clients.config. L'auteur du greffon
282doit gérer de multiples arrêts/démarrages, de façon fiable si possible, en gardant une table de trace d'état, ou avec
283les PID, etc&hellip; Ã‰vitez de tracer et de gérer les exceptions lors des multiples arrêts/démarrages, comme pour les
284demandes d'arrêt sans démarrage préalable. Depuis la v0.7.12-3, les greffons sont arrêtés avec le routeurs, ce qui veut
285dire que tous les clients avec des stopargs dans clients.config seront appelés, qu'il aient ou non été préalablement
286démarrés.
287
288
289<h3>
290Remarques sur les scripts Shell et les programmes externes
291</h3>
292<p>
293Pour exécuter des scripts shell ou d'autres programmes externes, voir <a href="http://zzz.i2p/topics/141">zzz.i2p</a>
294<p>
295Pour fonctionner sur Windows et Linux, écrivez une petite classe Java qui vérifie le type de SE, puis exécutez
296ShellCommand sur un .bat ou un .sh que vous fournissez vous-même.
297<p>
298Quand le routeur s'arrête, il n'arrête pas les programmes externes, et à contrario, une seconde copie sera lancée au
299démarrage du routeur. Pour empêcher ça, vous pourriez écrire une classe wrapper ou un script shell qui ferait le
300classique enregistrement du PID dans un fichier de PID, et le vérifier au démarrage.
301
302
303
304
305<h3>
306Autres conseils pour les greffons
307</h3>
308<ul>
309<li>
310Pour développer facilement, voir un générateur de fichier xpi2p, dans monotone à la branche i2p.scripts, ou les échantillons d'exemples de greffons sur la page de zzz<li>
311Pack200 est fortement recommandé pour les jars et les wars des greffons, cela réduit leur taille d'environ 60 à 65%.
312Voir exemple sur la page de zzz.
313La décompression Pack200 est supportée depuis le routeur version 0.7.11-5, c'est à dire quasiment tous les routeurs qui
314supportent les greffons.
315
316<li>
317 Les greffons ne doivent pas tenter d'écrire dans le dossier $I2P car il est potentiellement en lecture seule, et
318qu'en tous les cas ça n'est pas une bonne pratique.
319<li>
320 Les greffons peuvent écrire dans le dossier $CONFIG, mais seul le stockage de fichiers dans $PLUGIN est
321recommandé. Tous les fichiers de $PLUGIN sont supprimés à la désinstallation. Les fichiers situés ailleurs ne sont
322pas supprimés, à moins que le greffon ne le spécifie explicitement par les 'uninstallargs' d'exécution d'un client
323indiqués dans le fichier clients.config. Si l'utilisateur veut sauvegarder des données à la désinstallation, il
324peut le faire avec les branchements des 'uninstallargs'.
325<li>
326 Le dossier $CWD peut se trouver n'importe où ; ne considérez pas qu'il se trouve à un endroit particulier,
327n'essayez pas de lire ou écrire des fichiers dans le chemin relatif $CWD.
328<li>
329 Le programmes Java doivent pouvoir déterminer où ils se trouvent avec les 'getters' de I2PAppContext.
330<li>
331 Le dossier des greffons est I2PAppContext.getGlobalContext().getAppDir().getAbsolutePath() + "/plugins/" + nom de
332l'application, ou indiquez un argument $PLUGIN dans la ligne args du fichier clients.config. Il n'y a pas de moyen
333fiable pour trouver les dossiers d'installation d'i2p, de configuration ou de greffons sans utiliser l'API de contexte
334d'i2p.jar.
335<li>
336 Voir <a href="http://zzz.i2p/topics/16">Comment faire</a> pour générer les clés de signature et les clés de
337génération/vérification, et les fichiers .sud.
338<li>
339 Tous les fichiers de configuration doivent être encodés en UTF-8.
340<li>
341 Pour l'exécution dans une JVM séparée, utilisez ShellCommand avec java -cp truc:muche:bidule ma.pricipale.classe arg1 arg2 arg3.
342Évidement, il sera alors bien plus difficile d'arrêter le greffon&hellip;
343Mais cela reste possible en jouant avec les fichiers PID.
344<li>
345 En tant qu'alternative aux stopargs dans clients.config, un client Java peut enregistrer un lien d'arrêt avec
346I2PAppContext.addShutdownTask(). Mais ça n'arrêtera pas le greffon lors d'une mise à jour, donc les stopargs restent
347préférables. De plus, définissez en mode service toutes les tâches créées.
348<li>
349 N'incluez pas de classes dupliquant celles de l'installation standard. Améliorez les classes si nécessaire.
350<li>
351 Faites attention aux définitions des divers classpath dans wrapper.config entre les installations anciennes et
352nouvelles - voir la section 'classpath' plus bas.
353<li>
354 Les clients rejetterons les clés dupliquées avec des noms de clé différents, des noms de clés dupliqués avec des clés
355différentes, et des clés ou noms de clés différents dans les paquets de mises à jour. Sauvegardez vos clés de façon
356maniaque et paranoïaque. Ne les générez qu'une seule fois.
357<li>
358 Ne modifiez pas le fiichier plugin.config à l'exécution car il sera écrasé lors d'une mise à jour. Utilisez un fichier
359de configuration différent dans le dossier pour enregistrer la configuration d'exécution.
360<li>
361 En général, les greffons n'ont pas besoin d'accéder à $I2P/lib/router.jar. N'accédez pas aux classes du routeur, à
362moins que vous ne fassiez quelque-chose de particulier. Dans l'avenir, le routeur pourrait implémenter un classpath
363réservé pour les greffons, qui empêcherait l'accÚs à ses propres classes.
364<li>
365Comme chaque numéro de version doit être supérieur à celui de le version précédente, vous pouvez améliorer vos scripts
366de développement en ajoutant un numéro de développement à la fin du numéro de version. C'est pratique pour les tests.
367La plupart des greffons de zzz utilisent cette méthode : regardez build.xml à titre d'exemple.
368<li>
369Les greffons ne doivent jamais invoquer System.exit().
370<li>
371Merci de respecter les licences en vous conformant aux exigences de licences pour tout logiciel que vous fournissez.
372</ul>
373
374<h3>
375Classpaths
376</h3>
377
378Vous pouvez considérer que les jars suivants dans $I2P/lib sont dans le classpath standard pour toutes les
379installations dI2P, quel que soit l'âge de l'installation d'origine :
380<p>
381 i2p.jar, router.jar, jbigi.jar, sam.jar, mstreaming.jar, streaming.jar, i2ptunnel.jar,
382 org.mortbay.jetty.jar, javax.servlet.jar, jasper-compiler.jar, jasper-runtime.jar,
383 commons-logging.jar, commons-el.jar, wrapper.jar, systray.jar, systray4j.jar
384<p>
385
386 Rien de non listé ci-dessus ne devrait se trouver dans le classpath de personne, même si l'avez dans le classpath de
387VOTRE version d'i2p. Si vous avez besoin d'un jar non listé ci-dessus, ajoutez $I2P/lib/truc.jar au classpath indiqué
388dans les fichiers clients.config ou webapps.config de votre greffon.
389<p>
390Précédemment, une entrée classpath indiquée dans clients.config était ajoutée au classpath de la JVM. Cependant ceci à
391été corrigé depuis la version 0.7.13-3 en utilisant les chargeurs de classes, et maintenant, conformément à ce qui
392était prévu dÚs l'origine, le classpath indiqué dans clients.config ne concerne que la tâche spécifique.
393Voir la section sur le plantage de la JVM plus bas, et <a href="http://zzz.i2p/topics/633">cette page sur zzz.i2p</a> 
394pour plus de détails. En conséquence, indiquez le classpath intégral requis pour chaque client.
395
396
397<h3>
398Notes sur les versions de Java
399</h3>
400Bien que la plupart des utilisateurs d'I2P utilisent une JVM 1.6 (6.0), nous prenons en charge la version 1.5 (5.0) et
401les plus récentes.
402À moins que vous n'ayez besoin de fonctionnalités de la v1.6, vous devriez créer vos greffons avec la v1.5 pour
403garantir le fonctionnement à ceux qui l'utilisent.
404<p>
405Si votre greffon <b>n'a pas besoin de la 1.6</b> :
406<ul>
407<li>
408Assurez-vous que tous les fichiers java et jsp sont compilés avec source="1.5" target="1.5".
409<li>
410Assurez-vous aussi que toutes les bibliothÚques jars fournies sont pour la v1.5 ou plus ancienne.
411<li>
412Si vous utilisez pack200, toute classe 1.6 dans un jar fera que pack200 créera un paquet au format 1.6 pack format, et
413l'installation du greffon échouera sur un systÚme en v1.5 en générant le message erroné suivant : "Le greffon est
414corrompu".
415</ul>
416
417<p>
418Si votre greffon <b>nécessite la v1.6</b>:
419<ul>
420<li>
421Précisez-le expressément sur votre page de téléchargement.
422<li>
423Ajoutez min-java-version=1.6 dans votre ficher plugin.config
424<li>
425Si vous utilisez pack200, l'installation du greffon sur un systÚme en v1.5 échouera et retournera un message erroné "Le
426greffon est corrompu".
427</ul>
428
429
430<h3>
431La JVM se plante en mise à jour
432</h3>
433Note - tout devrait être résolu à l'heure actuelle.
434<p>
435La JVM a tendance à planter lors de mises à jour des jars d'un greffon si celui-ci était en cours d'exécution quand i2p
436a été lancé (même si le greffon a été arrêté aprÚs). Ça pourrait avoir été corrigé par l'utilisation du chargeur de
437classes dans la version 0.7.13-3, mais peut-être pas.
438À tester ultérieurement.
439<p>
440Le plus sûr est de concevoir votre greffon avec le jar dans le war (pour une application web), ou d'exiger un
441redémarrage aprÚs la mise à jour, ou ne pas mettre à jour les jar de votre greffon.
442<p>
443De part le fonctionnement des class loaders dans une webapp, il _pourrait_ être sûr d'avoir des jars externes si vous
444indiquez le classpath dans le fichier webapps.config. Plus de tests sont nécessaires pour vérifier ce point. N'indiquez
445pas le classpath avec un client factice dans le fichier clients.config s'il n'est nécessaire que pour une webapp -
446utilisez plutÃŽt webapps.config.
447<p>
448Le moins sûr, et apparemment source de la plupart des plantages, sont les clients avec les jars du greffon indiqués
449dans le classpath du fichier clients.config.
450
451<p>
452Rien de tout ceci ne devrait poser de problÚmes sur une installation initiale - vous ne devriez même jamais avoir à
453demander un redémarrage pour une installation initiale d'un greffon.
454
455{% endblock %}
Note: See TracBrowser for help on using the browser.