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_nameos_arch
    WindowsIntel 32-bit: x86
    Intel 64-bit: amd64
    Mac OS XIntel 32-bit: i386
    Intel 64-bit: x86_64
    LinuxIntel 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.