# Configuration Manager

The Configuration Manager component is a custom component that does not correlate to an Oracle Endeca process.

Instead, this object implements logic used to manage configuration files. Specifically, the current implementation supports retrieving and merging configuration from Developer Studio with files maintained in Oracle Endeca Workbench.

The following configuration properties and custom directories are used to implement the logic of the Config Manager component.

- `webStudioEnabled` - "true" or "false," indicating whether integration with Oracle Endeca Workbench is enabled.
- `webStudioHost` - Hostname of the server on which Oracle Endeca Workbench is running.
- `webStudioPort` - Port on which Oracle Endeca Workbench listens. This is the port of the Endeca Tools Service on the Oracle Endeca Workbench host.
- `webStudioMaintainedFile*` - Specifies the name of a file that will be maintained in Oracle Endeca Workbench. The ConfigManager respects all properties prefixed with "webStudioMaintainedFile" but requires that all properties have unique names. When configuring files, each should be given a unique suffix. Note that the names of files specified may use wildcards (e.g. `<property name="webStudioMaintainedFile1" value="merch_rule_group_*.xml" />`).
- `devStudioConfigDir` - Directory from which Developer Studio configuration files are retrieved.
- `webStudioConfigDir` - Directory to which Workbench configuration files are downloaded.
- `webStudioDgraphConfigDir` - Directory from which Developer Studio configuration files are retrieved.
- `mergedConfigDir` - Directory to which merged configuration is copied.
- `webStudioTempDir` - Temporary directory used for Workbench interaction. Post-Forge dimensions are uploaded from this directory to the Workbench.
- `skipTestingForFilesDuringCleanup` - Used for directory-cleaning operations. If set to "true", will skip the directory-contents test and instead proceed directly to cleaning the directory. The default behavior is to test the directory contents and skip cleanup if the directory is not empty.
- The properties documented in the "Fault tolerance and polling interval properties" topic.

    <!--
    #######################################################################
    # Config Manager. Manages Dev Studio and Web Studio config sources.
    #
    -->
    <custom-component id="ConfigManager" host-id="ITLHost"
      class="com.Endeca.soleng.eac.toolkit.component.ConfigManagerComponent">
      <properties>
        <property name="webStudioEnabled" value="true" />
        <property name="webStudioHost" value="ws.mycompany.com" />
        <property name="webStudioPort" value="8006" />
        <property name="webStudioMaintainedFile1"
          value="thesaurus.xml" />
        <property name="webStudioMaintainedFile2"
          value="merch_rule_group_default.xml" />
        <property name="webStudioMaintainedFile3"
          value="merch_rule_group_default_redirects.xml" />
      </properties>
      <directories>
        <directory name="devStudioConfigDir">
          ./config/pipeline
        </directory>
        <directory name="webStudioConfigDir">
          ./data/web_studio/config
        </directory>
        <directory name="webStudioDgraphConfigDir">
          ./data/web_studio/dgraph_config
        </directory>
        <directory name="mergedConfigDir">
          ./data/complete_index_config
        </directory>
        <directory name="webStudioTempDir">
          ./data/web_studio/temp
        </directory>
      </directories>
    </custom-component>