source: trunk/doc/src/docbook/appendix/base.config.xml @ 5071

Last change on this file since 5071 was 5071, checked in by Nicklas Nordborg, 14 years ago

References #108: Logging the change history of an item

  • Added the new data classes to UML diagram and made updates to all other affected diagrams
  • Documented the logging feature for plug-in developers
  • Made the new data classes immutable
  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 26.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE appendix PUBLIC
3    "-//Dawid Weiss//DTD DocBook V3.1-Based Extension for XML and graphics inclusion//EN"
4    "../../../../lib/docbook/preprocess/dweiss-docbook-extensions.dtd">
5<!--
6  $Id: base.config.xml 5071 2009-08-21 06:17:57Z nicklas $
7 
8  Copyright (C) 2007 Peter Johansson, Nicklas Nordborg, Martin Svensson
9 
10  This file is part of BASE - BioArray Software Environment.
11  Available at http://base.thep.lu.se/
12 
13  BASE is free software; you can redistribute it and/or
14  modify it under the terms of the GNU General Public License
15  as published by the Free Software Foundation; either version 3
16  of the License, or (at your option) any later version.
17 
18  BASE is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  GNU General Public License for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with BASE. If not, see <http://www.gnu.org/licenses/>.
25-->
26
27<appendix id="appendix.base.config">
28 
29  <title>base.config reference</title>
30
31  <para>
32    The <filename>base.config</filename> file is the main configuration file
33    for BASE. It is located in the <filename>&lt;basedir&gt;/www/WEB-INF/classes</filename>
34    directory.
35  </para>
36 
37  <simplesect id="appendix.base.config.dbdriver">
38    <title>Database driver section</title>
39   
40    <para>
41      This section has parameters needed for the database connection, such
42      as the database dialect, username and password.
43    </para>
44   
45    <variablelist>
46    <varlistentry>
47      <term><property>db.dialect</property></term>
48      <listitem>
49        <para>
50          The Hibernate dialect to use when generating SQL commands to the database.
51          Use:
52          <itemizedlist>
53          <listitem>
54            <userinput>org.hibernate.dialect.MySQLInnoDBDialect</userinput> 
55            for MySQL
56          </listitem>
57          <listitem>
58            <userinput>org.hibernate.dialect.PostgreSQLDialect</userinput> 
59            for PostgreSQL
60          </listitem>
61          </itemizedlist> 
62          Other dialects may work but are not supported.
63        </para>
64      </listitem>
65    </varlistentry>
66   
67    <varlistentry>
68      <term><property>db.driver</property></term>
69      <listitem>
70        <para>
71          The JDBC driver to use when connecting to the database. Use:
72          <itemizedlist>
73          <listitem>
74            <userinput>com.mysql.jdbc.Driver</userinput> 
75            for MySQL
76          </listitem>
77          <listitem>
78            <userinput>org.postgresql.Driver</userinput> 
79            for PostgreSQL
80          </listitem>
81          </itemizedlist> 
82          Other JDBC drivers may work but are not supported.
83        </para>
84      </listitem>
85    </varlistentry>
86   
87    <varlistentry>
88      <term><property>db.url</property></term>
89      <listitem>
90        <para>
91          The connection URL that locates the BASE database. The exact syntax
92          of the string depends on the JDBC driver. Here are two examples which
93          leaves all other settings to their defaults:
94          <itemizedlist>
95          <listitem>
96            <userinput>jdbc:mysql://localhost/base2</userinput> 
97            for MySQL
98          </listitem>
99          <listitem>
100            <userinput>jdbc:postgresql:base2</userinput> 
101            for PostgreSQL
102          </listitem>
103          </itemizedlist>
104         
105          You can get more information about the parameters that are supported on the
106          connection URL by reading the documentation from
107          <ulink url="http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html"
108            >MySQL</ulink> and
109          <ulink url="http://jdbc.postgresql.org/documentation/81/connect.html"
110            >PostgreSQL</ulink>.
111           
112           
113          <note>
114            <para>
115            For MySQL we recommend that you set the character encoding to UTF-8
116            and enable the server-side cursors feature. The latter option will
117            reduce memory usage since the JDBC driver does not have to
118            load all data into memory. The value below should go into one line
119            <userinput>
120            jdbc:mysql://localhost/base2?characterEncoding=UTF-8&amp;
121              useCursorFetch=true&amp;defaultFetchSize=100&amp;useServerPrepStmts=true
122            </userinput>
123            </para>
124           
125            <para>
126            Some MySQL versions (for example, 5.0.27) contains a bug that causes some
127            queries to fail if <userinput>useCursorFetch=true</userinput>. If you experience
128            this problem, you have to set it to false. For more information
129            see <ulink url="http://base.thep.lu.se/ticket/509">http://base.thep.lu.se/ticket/509</ulink>.
130            </para>
131          </note>
132           
133        </para>
134      </listitem>
135    </varlistentry>
136   
137    <varlistentry>
138      <term><property>db.dynamic.catalog</property></term>
139      <listitem>
140        <para>
141        The name of the catalog where the dynamic database used to store
142        analysed data is located. If not specified the same catalog as the regular
143        database is used. The exact meaning of catalog depends on the actual database.
144        For MySQL the catalog is the name of the database so this value is simply the
145        name of the dynamic database. PostgreSQL does not support connecting to multiple
146        databases with the same connection so this should have the same value as the
147        database in the <property>db.url</property> setting.
148        </para>
149      </listitem>
150    </varlistentry>
151
152    <varlistentry>
153      <term><property>db.dynamic.schema</property></term>
154      <listitem>
155        <para>
156        The name of the schema where the dynamic database used to store
157        analysed data is located. MySQL does not have schemas so this value should
158        be left empty. PostgreSQL supports schemas and we recommend that the dynamic
159        part is created in it's own schema to avoid mixing the dynamic tables with
160        the regular ones.
161        </para>
162      </listitem>
163    </varlistentry>
164
165    <varlistentry>
166      <term><property>db.username</property></term>
167      <listitem>
168        <para>
169        The username to connect to the database. The user should have full permission
170        to both the regular and the dynamic database.
171        </para>
172      </listitem>
173    </varlistentry>
174   
175    <varlistentry>
176      <term><property>db.password</property></term>
177      <listitem>
178        <para>
179         The password for the user.
180         </para>
181      </listitem>
182    </varlistentry>
183   
184    <varlistentry>
185      <term><property>db.batch-size</property></term>
186      <listitem>
187        <para>
188        The batch size to use when inserting/updating items with the Batch API.
189        A higher value requires more memory, a lower value degrades performance
190        since the number of database connections increases. The default value is
191        50.
192        </para>
193      </listitem>
194    </varlistentry>
195   
196    <varlistentry>
197      <term><property>db.queries</property></term>
198      <listitem>
199        <para>
200        The location of an XML file which contains database-specific
201        queries overriding those that does not work from the
202        <filename>/common-queries.xml</filename> file. Use:
203       
204        <itemizedlist>
205          <listitem><userinput>/mysql-queries.xml</userinput> for MySQL</listitem>
206          <listitem><userinput>/postgres-queries.xml</userinput> for PostgreSQL</listitem>
207        </itemizedlist>
208          See also <xref linkend="appendix.otherconfig.sql" />.
209          </para>
210      </listitem>
211    </varlistentry>
212   
213    <varlistentry>
214      <term><property>db.extended-properties</property></term>
215      <listitem>
216        <para>
217        The location of an XML file describing the extended properties for extendable
218        item types, ie. the reporters. The default value is <userinput>/extended-properties.xml</userinput>.
219        See <xref linkend="appendix.extendedproperties" /> for more information
220        about extended properties.
221          </para>
222      </listitem>
223    </varlistentry>
224   
225    <varlistentry>
226      <term><property>db.raw-data-types</property></term>
227      <listitem>
228        <para>
229        The location of an XML file describing all raw data types and their properties.
230        The default value is <userinput>/raw-data-types.xml</userinput>.
231        See <xref linkend="appendix.rawdatatypes" /> for more information
232        about raw data types.
233          </para>
234      </listitem>
235    </varlistentry>
236
237    <varlistentry>
238      <term><property>db.cleanup.interval</property></term>
239      <listitem>
240        <para>
241        Interval in hours between database cleanups. Set this to
242        0 to disable (recommened for job agents). The default value
243        is 24.
244          </para>
245      </listitem>
246    </varlistentry>
247   
248    <varlistentry>
249      <term><property>export.max.items</property></term>
250      <listitem>
251        <para>
252        The maximum number of items the export function should try to load in a single
253        query. This setting exists because MySQL prior to 5.0.2 does not support scrollable
254        result sets, but loads all data into memory. This will result in out of memory
255        exception if exporting too many items at the same time. PostgreSQL does not have
256        this problem. Use:
257       
258        <itemizedlist>
259        <listitem><para>0 for PostgreSQL</para></listitem>
260        <listitem>
261          <para>
262            0 for MySQL version 5.0.2 or above.
263            Requires that <userinput>useCursorFetch=true</userinput> is specified in
264            the connection url and  that <userinput>defaultFetchSize=xxx</userinput>
265            is set to a value &gt; 0.
266          </para>
267        </listitem>
268        <listitem>
269          <para>
270            As large as possible value for other MySQL versions.
271            A low value results in more queries and slower performance when
272            exporting data.
273          </para>
274        </listitem>
275        </itemizedlist>
276        </para>
277      </listitem>
278    </varlistentry>
279    </variablelist>
280   
281  </simplesect>
282 
283  <simplesect id="appendix.base.config.authentication">
284    <title>Authentication section</title>
285    <para>
286      This section describes parameters that are needed if you are
287      going to use external authentication. If you let BASE handle this
288      you will not have to bother about these settings. See
289      <xref linkend="plugin_developer.other.authentication"/> for more information about
290      external authentication.
291    </para>
292   
293    <variablelist>
294    <varlistentry>
295      <term><property>auth.driver</property></term>
296      <listitem>
297        <para>
298        The class name of the plug-in that acts as the authentication driver.
299        BASE ships with a simple plug-in that checks if a user has a valid email
300        account on a POP3 server. It is not enabled by default. The class name
301        of that plug-in is <classname docapi="net.sf.basedb.core.authentication">net.sf.basedb.core.authentication.POP3Authenticator</classname>.
302        If no class is specified internal authentication is used.
303          </para>
304      </listitem>
305    </varlistentry>
306   
307    <varlistentry>
308      <term><property>auth.init</property></term>
309      <listitem>
310        <para>
311        Initialisation parameters sent to the plug-in when calling the
312        <methodname>init()</methodname> method. The syntax and meaning of this
313        string depends on the plug-in. For the <classname docapi="net.sf.basedb.core.authentication">POP3Authenticator</classname> 
314        this is simply the name or IP-address of the mail server.
315          </para>
316      </listitem>
317    </varlistentry>
318   
319    <varlistentry>
320      <term><property>auth.synchronize</property></term>
321      <listitem>
322        <para>
323        If this setting is 1 or TRUE, BASE will synchronize the extra
324        information (name, address, email, etc.) sent by the authentication driver
325        when a user logs in to BASE. This setting is ignored if the driver does not
326        support extra information.
327          </para>
328      </listitem>
329    </varlistentry>
330   
331    <varlistentry>
332      <term><property>auth.cachepasswords</property></term>
333      <listitem>
334        <para>
335        If passwords should be cached by BASE or not. If the passwords are
336        cached a user may login to BASE even if the external authentication
337        server is down. The cached passwords are only used if the external
338        authentication does not answer properly.
339          </para>
340      </listitem>
341    </varlistentry>
342   
343    <varlistentry>
344      <term><property>auth.daystocache</property></term>
345      <listitem>
346        <para>
347        How many days a cached password is valid if caching is enabled. A value of
348        0 caches the passwords forever.
349          </para>
350      </listitem>
351    </varlistentry>
352    </variablelist>
353  </simplesect>
354 
355  <simplesect id="appendix.base.config.jobqueue">
356    <title>Internal job queue section</title>
357   
358    <para>
359      This section contains setting that control the internal job queue.
360      The internal job queue is a simple queue that executes jobs more or
361      less in the order they were added to the queue. To make sure long-running
362      jobs do not block the queue, there are four slots that uses the
363      expected execution time to decide if a job should be allowed to execute
364      or not.
365    </para>
366   
367    <variablelist>
368    <varlistentry>
369      <term><property>jobqueue.internal.enabled</property></term>
370      <listitem>
371        <para>
372         If <userinput>0</userinput> or <userinput>FALSE</userinput> the internal
373         job queue will be disabled.
374         </para>
375      </listitem>
376    </varlistentry>
377   
378    <varlistentry>
379      <term><property>jobqueue.internal.runallplugins</property></term>
380      <listitem>
381        <para>
382         If <userinput>1</userinput> or <userinput>TRUE</userinput> the internal
383         job queue will ignore the <property>useInternalJobQueue</property>
384         flag specified on plug-ins. If <userinput>0</userinput> or <userinput>FALSE</userinput>
385         the internal job queue will only execute plug-ins which has
386         <property>useInternalJobQueue=true</property>
387         </para>
388      </listitem>
389    </varlistentry>
390
391    <varlistentry>
392      <term><property>jobqueue.internal.signalreceiver.class</property></term>
393      <listitem>
394        <para>
395         A class implementing the <interfacename docapi="net.sf.basedb.core.signal"
396         >SignalReceiver</interfacename>
397         interface. The class must have a public no-argument constructor. If
398         no value is specified the default setting is:
399         <classname docapi="net.sf.basedb.core.signal"
400         >net.sf.basedb.core.signal.LocalSignalReceiver</classname>.
401         </para>
402         <para>
403         Change to <classname docapi="net.sf.basedb.core.signal"
404         >net.sf.basedb.core.signal.SocketSignalReceiver</classname>
405         if the internal job queue must be able to receive signals from outside
406         this JVM.
407         </para>
408      </listitem>
409    </varlistentry>
410   
411    <varlistentry>
412      <term><property>jobqueue.internal.signalreceiver.init</property></term>
413      <listitem>
414        <para>
415        Initialisation string sent to <methodname>SignalReceiver.init()</methodname>.
416        The syntax and meaning of the string depends on the actual implementation
417        that is used. Please see the Javadoc for more information.
418         </para>
419      </listitem>
420    </varlistentry>
421
422    <varlistentry>
423      <term><property>jobqueue.internal.checkinterval</property></term>
424      <listitem>
425        <para>
426         The number of seconds between checks to the database for jobs
427         that are waiting for execution.
428         </para>
429      </listitem>
430    </varlistentry>
431   
432    <varlistentry>
433      <term><property>jobqueue.internal.shortest.threads</property></term>
434      <term><property>jobqueue.internal.short.threads</property></term>
435      <term><property>jobqueue.internal.medium.threads</property></term>
436      <term><property>jobqueue.internal.long.threads</property></term>
437      <listitem>
438        <para>
439        Maximum number of threads to reserve for jobs with a given expected
440        execution time. A job with a short execution time may use a thread
441        from one of the slots with longer execution time. When all threads
442        are in use, new jobs will have to wait until an executing job
443        has finished.
444        </para>
445      </listitem>
446    </varlistentry>
447   
448    <varlistentry>
449      <term><property>jobqueue.internal.shortest.threadpriority</property></term>
450      <term><property>jobqueue.internal.short.threadpriority</property></term>
451      <term><property>jobqueue.internal.medium.threadpriority</property></term>
452      <term><property>jobqueue.internal.long.threadpriority</property></term>
453      <listitem>
454        <para>
455        The priority to give to jobs. The priority is a value between 1 and 10.
456        See <ulink url="http://java.sun.com/javase/6/docs/api/java/lang/Thread.html"
457        >http://java.sun.com/javase/6/docs/api/java/lang/Thread.html</ulink> 
458        for more information about thread priorities.
459        </para>
460      </listitem>
461    </varlistentry>
462    </variablelist>
463
464  </simplesect>
465
466  <simplesect id="appendix.base.config.jobagent">
467    <title>Job agent section</title>
468   
469    <para>
470      This section contains settings that BASE uses when communicating
471      with external job agents. See <xref linkend="installation_upgrade.jobagents"/> 
472      for more information about job agents.
473    </para>
474   
475    <variablelist>
476    <varlistentry>
477      <term><property>agent.maxage</property></term>
478      <listitem>
479        <para>
480        Number of seconds to keep job agent information in the internal cache.
481        The information includes, CPU and memory usage and the status of executing
482        jobs. This setting controls how long the information is kept in the cache
483        before a new request is made to the job agent. The default value is 60 seconds.
484          </para>
485      </listitem>
486    </varlistentry>
487
488    <varlistentry>
489      <term><property>agent.connection.timeout</property></term>
490      <listitem>
491        <para>
492        The timeout in milliseconds to wait for a response from a job agent
493        when sending a request to it. The default timeout is 1000 milliseconds.
494        This should be more than enough if the job agent is on the internal
495        network, but may have to be increased if it is located somewhere else.
496          </para>
497      </listitem>
498    </varlistentry>
499
500    </variablelist>
501   
502  </simplesect>
503
504  <simplesect id="appendix.base.config.secondary">
505    <title>Secondary storage controller</title>
506   
507    <para>
508      This section contains settings for the secondary storage controller. See
509      <xref linkend="plugin_developer.other.secondary"/> for more
510      information about secondary storage.
511    </para>
512   
513    <variablelist>
514    <varlistentry>
515      <term><property>secondary.storage.driver</property></term>
516      <listitem>
517        <para>
518        The class name of the plug-in that acts as the secondary storage controller.
519        BASE ships with a simple plug-in that just moves files to another directory,
520        but it is not enabled by default. The class name of that plug-in is
521        <classname docapi="net.sf.basedb.core">net.sf.basedb.core.InternalStorageController</classname>.
522        If no class is specified the secondary storage feature is disabled.
523          </para>
524      </listitem>
525    </varlistentry>
526   
527    <varlistentry>
528      <term><property>secondary.storage.init</property></term>
529      <listitem>
530        <para>
531        Initialisation parameters sent to the plug-in when calling the
532        <methodname>init()</methodname> method. The syntax and meaning of this
533        string depends on the plug-in. For the internal controller this is simply
534        the path to the secondary directory.
535          </para>
536      </listitem>
537    </varlistentry>
538   
539    <varlistentry>
540      <term><property>secondary.storage.interval</property></term>
541      <listitem>
542        <para>
543        Interval in seconds between each execution of the secondary storage
544        controller plug-in. It must be a value greater than zero or the secondary
545        storage feature will be disabled.
546          </para>
547      </listitem>
548    </varlistentry>
549   
550    <varlistentry>
551      <term><property>secondary.storage.time</property></term>
552      <listitem>
553        <para>
554        Time-point values specifying the time(s) of day that the secondary storage controller
555        should be executed. If present, this setting overrides the
556        <property>secondary.storage.interval</property> setting.
557        Time-point values are given as comma-separated list of two-digit, 24-based hour
558        and two-digit minute values. For example: <userinput>03:10,09:00,23:59</userinput>.
559          </para>
560      </listitem>
561    </varlistentry>
562    </variablelist>
563   
564  </simplesect>
565 
566  <simplesect id="appendix.base.config.log">
567    <title>Change history logging section</title>
568   
569    <para>
570      This section contains settings for logging the change history
571      of items.
572    </para>
573   
574    <variablelist>
575    <varlistentry>
576      <term><property>changelog.factory</property></term>
577      <listitem>
578        <para>
579        The factory class that controls the entire logging system. The
580        factory has control of what should be logged, were it should
581        be logged, etc. BASE ships with one factory implementation
582        <classname docapi="net.sf.basedb.core.log.db">DbLogManagerFactory</classname>
583        which logs changes into tables in the database. The server admin
584        may choose a different implementation provided that it implements
585        the <interfacename docapi="net.sf.basedb.core.log">LogManagerFactory</interfacename>
586        interface. See <xref linkend="plugin_developer.other.logging" />.
587        If no factory is specified, logging is disabled.
588          </para>
589      </listitem>
590    </varlistentry>
591    <varlistentry>
592      <term><property>changelog.show-in-web</property></term>
593      <listitem>
594        <para>
595        A boolean value that specifies if the <guilabel>Change history</guilabel>
596        tab should be visible in the web interface or not. The change history
597        tab will show log information that has been stored in the database
598        and it doesn't make sense to show this tab unless the
599        <classname docapi="net.sf.basedb.core.log.db">DbLogManagerFactory</classname>
600        is used.
601          </para>
602         
603          <note>
604            <para>
605            By default, only users that are members of the
606            <guilabel>Administrator</guilabel> role have permission to
607            view the change history. To give other users the same permission,
608            add the <guilabel>Change history</guilabel> permission to
609            the appropriate role(s).
610            </para>
611          </note>
612      </listitem>
613    </varlistentry>
614    <varlistentry>
615      <term><property>changelog.dblogger.detailed-properties</property></term>
616      <listitem>
617        <para>
618        A boolean value that specifies the amount of information
619        that should be logged. If set, the log will contain information
620        about which properties that was modified on each item,
621        otherwise only the type of change (create, update, delete) is
622        logged.
623        </para>
624      </listitem>
625    </varlistentry>
626    </variablelist>
627   
628  </simplesect>
629 
630  <simplesect id="appendix.base.config.secondary.other">
631    <title>Other settings</title>
632   
633    <variablelist>
634    <varlistentry>
635      <term><property>userfiles</property></term>
636      <listitem>
637        <para>
638        The path to the directory where uploaded and generated files should
639        be stored. This is the primary file storage. See <xref linkend="appendix.base.config.secondary" /> 
640        for information about how to configure the secondary storage. Files are not
641        stored in the same directory structure or with the same names as in
642        the BASE file system. The internal structure may contain sub-directories.
643          </para>
644      </listitem>
645    </varlistentry>
646   
647    <varlistentry>
648      <term><property>permission.timeout</property></term>
649      <listitem>
650        <para>
651        Number of minutes to cache a logged in user's permissions before
652        reloading them. The default value is 10. This setting affect how
653        quickly a changed permission propagate to a logged in user. Permissions
654        are always reloaded when a user logs in.
655          </para>
656      </listitem>
657    </varlistentry>
658   
659    <varlistentry>
660      <term><property>cache.timeout</property></term>
661      <listitem>
662        <para>
663        Number of minutes to keep user sessions in the internal cache
664        before the user is automatically logged out. The timeout is counted
665        from the last access made from the user.
666          </para>
667      </listitem>
668    </varlistentry>
669   
670    <varlistentry>
671      <term><property>cache.static.disabled</property></term>
672      <listitem>
673        <para>
674        If the static cache should be enabled or disabled. It is enabled by
675        default. Disabling the static cache may reduce performance in some
676        cases. The static cache is used to cache processed information,
677        for example images, so that the database doesn't have to be queried
678        on every request.
679          </para>
680      </listitem>
681    </varlistentry>
682   
683    <varlistentry>
684      <term><property>cache.static.max-age</property></term>
685      <listitem>
686        <para>
687        The maximum age in days of files in the static cache. Files that
688        hasn't been accessed (read or written) in the specified amount
689        of time are deleted.
690          </para>
691      </listitem>
692    </varlistentry>
693   
694    <varlistentry>
695      <term><property>helptext.update</property></term>
696      <listitem>
697        <para>
698          Defines if already existing helptexts in BASE should be overwritten when
699          updating the program,
700          <xref linkend="installation_upgrade.upgrade" />
701          <itemizedlist>
702            <listitem>
703              <simpara>
704                <userinput>true</userinput>
705                will overwrite existing helptexts.
706              </simpara>
707            </listitem>
708            <listitem>
709              <simpara>
710                <userinput>false</userinput>
711                will leave the existing helptexts in database unchanged and only
712                insert new helptexts.
713              </simpara>
714            </listitem>
715          </itemizedlist>
716        </para>
717      </listitem>
718    </varlistentry>
719    <varlistentry>
720      <term><property>plugins.autounload</property></term>
721      <listitem>
722        <para>
723          Enable this setting to let BASE detect if a plug-in JAR file is changed
724          and automatically load and use the new code instead of the old code.
725          This setting is useful for plug-in developers since they don't have to
726          restart the web server each time the plug-in is recompiled.
727          <itemizedlist>
728            <listitem>
729              <simpara>
730                <userinput>true,yes,1</userinput>
731                to enable
732              </simpara>
733            </listitem>
734            <listitem>
735              <simpara>
736                <userinput>false,no,0</userinput>
737                to disable (default if no value is specified)
738              </simpara>
739            </listitem>
740          </itemizedlist>
741        </para>
742      </listitem>
743    </varlistentry>
744    <varlistentry>
745      <term><property>plugins.dir</property></term>
746      <listitem>
747        <para>
748          The path to the directory where jar-files for external plugins should be located
749          if they should be used with the auto-installer. All new plugins found in this directory,
750          or in any of it's sub-directories, can be selected for installation, see
751          <xref linkend="plugins.installation" />.
752          The plugging auto-installer will not be available if this property isn't defined.
753        </para>
754
755        <para>
756          Another benefit is that all plug-ins inside this directory are registered
757          with relative paths. This means that there is a lot less hassle when
758          using job agents to run plug-ins. Just change this setting for the job
759          agent installation and all plug-ins will work. For plug-ins that are outside
760          of this directory you may have to manually register the path if it is different from
761          the main path. It will also be a lot easier if you plan to move all plug-ins to
762          a different directory. Just move the JAR files and change this setting. There is
763          no need to change the paths for each plug-in in the database.
764        </para>
765           
766      </listitem>
767    </varlistentry>
768    </variablelist>
769  </simplesect>
770
771</appendix>
772
Note: See TracBrowser for help on using the repository browser.