2. Centralizing add-ons on a HTTP server

  1. Install XXE on the server. Example: /opt/xxe/ on a server called rapido.

  2. Customize the distribution, if needed to. Example:

    • Create directory /opt/xxe/addon/custom/. This directory will contain all the custom add-ons you want to deploy.

    • Copy (XSL-FO processor plug-in) xfc_foprocessor.jar and xfc.jar to /opt/xxe/addon/custom/.

    • Recursively copy directory my_configs/ containing my_dtd1.xxe and my_dtd2.xxe and all associated resources (DTD, CSS, etc) to /opt/xxe/addon/custom/.

    • Directory my_configs/ also contains my_catalog.xml, the following XML catalog file:

      <?xml version="1.0" ?>
      <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
               prefer="public">
        <public publicId="-//My Company//DTD DTD1 V1.0//EN"
                uri="dtd1.dtd"/>
      
        <public publicId="-//My Company//DTD DTD2 V1.0//EN"
                uri="dtd2.dtd"/>
      </catalog>

      This file has been copied to /opt/xxe/addon/custom/my_configs/ along with all the other files.

  3. Test your customized distribution by running /opt/xxe/bin/xxe on the server.

  4. In /opt/xxe/addon/, run command "find custom > custom.list" to create text file custom.list:

    /opt/xxe/addon$ find custom > custom.list
    
    /opt/xxe/addon$ cat custom.list
    
    custom
    custom/xfc.jar
    custom/xfc_foprocessor.jar
    custom/my_configs
    custom/my_configs/dtd1.dtd
    custom/my_configs/dtd2.dtd
    custom/my_configs/my_catalog.xml
    custom/my_configs/my_css1.css
    custom/my_configs/my_css2.css
    custom/my_configs/my_dtd1.xxe
    custom/my_configs/my_dtd2.xxe
    custom/my_configs/my_template1.xml
    custom/my_configs/my_template2.xml
  5. Publish your customized distribution on your intranet using a HTTP server. Apache example:

    1. Add a similar snippet to /etc/httpd.conf:

      <Directory /opt/xxe/>
        AllowOverride None
        Order Deny,Allow
        Deny from All
        Allow from my_company.com
      
        Options Indexes Includes
      </Directory>
      Alias /xxe /opt/xxe/
    2. Restart apache:

      # cd /etc/rc.d
      # ./apache restart
  6. Now, the hardest part: make sure that the PCs of the all future XXE users on your intranet have the following environment variable always properly set (for example: add it to autoexec.bat).

    set XXE_ADDON_PATH="@http://rapido.my_company.com/xxe/addon/custom.list;+"

    Notice that you can update or upgrade the distribution on the server side without having to change this environment variable on the client side.

  7. Tell all your XXE users to download a copy of the XXE installer (that is, xxe-std-NNN-setup.exe or xxe-pro-NNN-setup.exe) from your intranet and to install it on their PCs.