If your environment includes multiple MDEX engines (for example, multiple languages with a separate MDEX per language), configuring the retrieval of file-based content requires a few more steps than in a single-MDEX environment.

As discussed in the Query Integration chapter, in a multiple-MDEX environment, the Guided Search integration uses a separate WorkbenchContentSource for each EAC application. In order to use the file-based method, each WorkbenchContentSource requires a separate instance of FileStoreFactory to retrieve the appropriate content for the corresponding EAC application.

The /atg/endeca/assembler/AssemblerApplicationConfiguration component can automatically create a FileStoreFactory for each WorkbenchContentSource it creates and set a reference to that FileStoreFactory on the WorkbenchContentSource. This behavior is enabled by setting the value of the useFileStoreFactory property of the AssemblerApplicationConfiguration component to true.

In addition, the /atg/endeca/assembler/admin/EndecaAdministrationService component can manage the updates to the store factories. This behavior is enabled by changing the class of the component from com.endeca.infront.assembler.servlet.admin.AdministrationService to atg.endeca.assembler.MultiAppAdministrationService. The MultiAppAdministrationService class extends AdministrationService to enable handling of updates to multiple store factory instances.

Two options for configuring file-based content retrieval in a multiple-MDEX environment are described below:

  • Creating FileStoreFactory instances automatically from a prototype-scoped component.

  • Creating FileStoreFactory instances from properties files.

Note that both sets of instructions assume you have already performed the following steps to set up a multiple-MDEX environment:

  1. Create one EAC application per language (for example, ATGen, ATGes, and ATGde).

  2. Modify the /atg/endeca/ApplicationConfiguration component in the local server configuration. Set the defaultLanguageForApplications to null, and set the keyToApplicationName property to create a mapping of application keys to application names. For example:

    defaultLanguageForApplications^=/Constants.null
    keyToApplicationName=\
      en=ATGen,\
      de=ATGde,\
      es=ATGes

  3. Modify the /atg/endeca/assembler/AssemblerApplicationConfiguration component in the local server configuration to set the applicationKeyToMdexHostAndPort property to create a mapping of application keys to hostname/port combinations. For example:

    applicationKeyToMdexHostAndPort=\
      en=localhost:15000,\
      de=localhost:16000,\
      es=localhost:17000

Creating FileStoreFactory Instances from a Prototype-Scoped Component

To create FileStoreFactory instances from a prototype-scoped component:

  1. Modify the /atg/endeca/assembler/AssemblerApplicationConfiguration component in the local server configuration. Set the useFileStoreFactory property to true to automatically create a corresponding FileStoreFactory for each EAC application and set a reference to that FileStoreFactory on the application’s WorkbenchContentSource:

    useFileStoreFactory=true

    The AssemblerApplicationConfiguration component has a prototypeFileStoreFactory property that is configured to point to the /atg/endeca/assembler/cartridge/manager/PrototypeFileStoreFactory component. The FileStoreFactory instances are created from the PrototypeFileStoreFactory component.

  2. Set the assemblerContentBaseDirectory property of the AssemblerApplicationConfiguration component to the file-system pathname of the directory to retrieve promoted content from. For example:

    assemblerContentBaseDirectory=\
       ToolsAndFrameworks/version/server/workspace/state/repository

    For each FileStoreFactory created, the corresponding EAC application name is appended to the assemblerContentBaseDirectory value to set the FileStoreFactory component’s configurationPath property. For example, if assemblerContentBaseDirectory is set as shown above, the configurationPath property for an application named ATGes would be ToolsAndFrameworks/version/server/workspace/state/repository/ATGes.

  3. Modify the /atg/endeca/assembler/admin/EndecaAdministrationService component in the local server configuration. Set the $class property to atg.endeca.assembler.MultiAppAdministrationService:

    $class=atg.endeca.assembler.MultiAppAdministrationService

    The MultiAppAdministrationService class is able to handle updates to multiple store factory instances.

Creating FileStoreFactory Instances from Properties Files

To create FileStoreFactory instances from properties files:

  1. For each EAC application, create a properties file for the corresponding FileStoreFactory component. Set the $class property to atg.endeca.assembler.content.ExtendedFileStoreFactory:

    $class=atg.endeca.assembler.content.ExtendedFileStoreFactory

    Set the configurationPath property of each FileStoreFactory component to the file-system pathname of the directory to retrieve promoted content from. For example, the configurationPath property for the FileStoreFactory component associated with an EAC application named ATGde might be:

    configurationPath=\
      ToolsAndFrameworks/version/server/workspace/state/repository/ATGde

  2. Modify the /atg/endeca/assembler/AssemblerApplicationConfiguration component in the local server configuration. Set the useFileStoreFactory property to true to automatically set a reference to the corresponding FileStoreFactory on the application’s WorkbenchContentSource:

    useFileStoreFactory=true

  3. Set the applicationKeyToStoreFactory property of the AssemblerApplicationConfiguration component to map application keys to the FileStoreFactory components you created. For example:

    applicationKeyToStoreFactory=\
      en=/atg/endeca/assembler/cartridge/manager/FileStoreFactory_en,\
      es=/atg/endeca/assembler/cartridge/manager/FileStoreFactory_es,\
      de=/atg/endeca/assembler/cartridge/manager/FileStoreFactory_de

  4. Modify the /atg/endeca/assembler/admin/EndecaAdministrationService component in the local server configuration. Set the $class property to atg.endeca.assembler.MultiAppAdministrationService:

    $class=atg.endeca.assembler.MultiAppAdministrationService

    The MultiAppAdministrationService class is able to handle updates to multiple store factory instances.


Copyright © 1997, 2015 Oracle and/or its affiliates. All rights reserved. Legal Notices