1.1. The lookup phase during XXE startup
Prev | 1. Dynamic discovery of add-ons | Next

### 1.1. The lookup phase during XXE startup

During its startup:

1. XXE recursively scans the `addon/` subdirectory of XXE user preferences directory searching it for files containing add-ons.

   XXE user preferences directory is:

   - ``$HOME`/.xxe5/` on Linux.

   - ``$HOME`/Library/Application Support/XMLmind/XMLEditor5/` on the Mac.

   - ``%APPDATA%`\XMLmind\XMLEditor5\` on Windows XP, Vista, 7 and 8.

     Example: `C:\Documents and Settings\john\Application Data\XMLmind\XMLEditor5\` on Windows XP. `C:\Users\john\AppData\Roaming\XMLmind\XMLEditor5\` on Windows Vista, 7 and 8.

     If you cannot see the "`Application Data`" directory using Microsoft Windows File Manager, turn on Tools>Folder Options>View>File and Folders>Show hidden files and folders.

   ### Tip

   This `addon/` subdirectory is recursively scanned by XXE at startup time. Therefore, feel free to organize it as you want.

2. If the `XXE_ADDON_PATH` variable is set to a non empty string, the content of this variable must be a list of directory names separated by character "`;`" (even on Unix). All the directories referenced in this list are recursively scanned by XXE.

   - File names and "`file://`" URLs are both supported. Windows example:

         C> set XXE_ADDON_PATH=C:\xxe\doc\configure\samples\example1;\
         file:///C:/xxe/doc/configure/samples/example2

   - If this path ends with "`;+`", the `addon/` subdirectory of XXE installation directory is also scanned at startup time. Otherwise, the default add-ons (XHTML configuration, DocBook configuration, etc) are ignored.

   - Form `@``absolute URL` is also supported.

     `Absolute URL` specifies the location of a text file containing a list of (generally relative) URLs to be scanned by XXE. The URLs in this list are separated by white space.

     Example, `sample_configs.list`:

         example1
         example1/example1.css
         example1/example1.dtd
         example1/example1.xml
         example1/example1.xxe
         example1/example1_catalog.xml
         example2
         example2/example2.css
         example2/example2.xml
         example2/example2.xsd
         example2/example2.xxe
         example2/example2_catalog.xml

     Unix example:

         $ export XXE_ADDON_PATH="@http://www.foo.com/xxe/sample_configs.list;+"

3. If the `XXE_ADDON_PATH` is not set or is set to an empty string or ends with "`;+`", XXE also recursively scans the `addon/` subdirectory of its installation directory searching it for files containing add-ons.

   ### Tip

   This `addon/` subdirectory is recursively scanned by XXE at startup time. Therefore, feel free to organize it as you want.

4. Jar files (`.jar` files containing compiled Java™ code) found anywhere inside a directory or a file list scanned by XXE during its startup are automatically added to the `CLASSPATH` of XXE.

   ### About Jar files containing native libraries

   Some Jar files may contain native libraries. For example: `hunspell.dll` for Windows 32-bit and `libhunspell64.so` for Linux Intel™ 64-bit.

   When this is the case, it is recommended to create one Jar file per OS/architecture and to give these Jar files filenames following the convention explained below. For example, `hunspell.dll` should be contained in `hunspell--Windows-x86.jar` and `libhunspell64.so` should be contained in `hunspell--Linux-amd64.jar`.

   By doing this, you'll instruct XXE, for example, to ignore `hunspell--Linux-amd64.jar` and just consider `hunspell--Windows-x86.jar` when it is started on Windows.

   Filename syntax:

   jar_basename -> `jar_name` '--' `os_name` [ '-' `os_arch` ]? '.jar'

   - `os_name` must match the value of Java™ system property `os.name` (though for Windows, you may skip the "`XP`", "`Vista`", "`7`", "`8`" suffix and keep just the "`Windows`" prefix).

   - `os_arch` must match the value of Java system property `os.arch`.

   Examples:

   `os_name` | `os_arch`
   --- | ---
   `Windows` | Intel 32-bit: `x86`
   Intel 64-bit: `amd64`
   `Mac OS X` | Intel 32-bit: `i386`
   Intel 64-bit: `x86_64`
   `Linux` | Intel 32-bit: `i386`
   Intel 64-bit: `amd64`

   The deploywebstart command-line tool also understands the above filename convention and will wrap these Jar files into appropriate `resource` elements.

Prev | Up | Next
1. Dynamic discovery of add-ons | Home | 1.2. Files containing the add-ons