# Components

This section describes the component elements available in the custom namespace defined by the eacToolkit.xsd XML schema.

For more details, refer to the eacToolkit.xsd schema file distributed within the file eacHandlers.jar.

Element | Description
--- | ---
`forge` | This element defines a Forge component, including attributes that define the functionality of the Forge process as well as custom properties and directories used to configure the functionality of the Forge object's methods. Multiple `forge` elements can be defined.
    <forge id="Forge" host-id="ITLHost">
      <properties>
        <property name="numStateBackups" value="10" />
        <property name="numLogBackups" value="10" />
      </properties>
      <directories>
        <directory name="incomingDataDir">./data/incoming</directory>
        <directory name="configDir">./data/complete_config</directory>
        <directory name="wsTempDir">./data/web_studio_temp_dir</directory>
      </directories>
      <args>
        <arg>-vw</arg>
      </args>
      <input-dir>./data/processing</input-dir>
      <output-dir>./data/forge_output</output-dir>
      <state-dir>./data/state</state-dir>
      <temp-dir>./data/temp</temp-dir>
      <num-partitions>1</num-partitions>
      <pipeline-file>./data/processing/pipeline.epx</pipeline-file>
    </forge>
`forge-cluster` | This element defines a Forge cluster, including a list of ID references to the Forge components that belong to this cluster. This object can be configured to distribute data to Forge servers serially or in parallel.
    <forge-cluster id="ForgeCluster" getDataInParallel="true">
      <forge ref="ForgeServer" />
      <forge ref="ForgeClient1" />
      <forge ref="ForgeClient2" />
    </forge-cluster>
`dgidx` | This element defines a Dgidx component, including attributes that define the functionality of the Dgidx process as well as custom properties and directories used to configure the functionality of the Dgidx object's methods. Multiple `dgidx` elements can be defined.
    <dgidx id="Dgidx" host-id="ITLHost">
      <args>
        <arg>-v</arg>
      </args>
      <input-dir>./data/forge_output</input-dir>
      <output-dir>./data/dgidx_output</output-dir>
      <temp-dir>./data/temp</temp-dir>
      <run-aspell>true</run-aspell>
    </dgidx>
`indexing-cluster` | This element defines an indexing cluster, including a list of ID references to the Dgidx and Agidx components that belong to this cluster. This object can be configured to distribute data to indexing servers serially or in parallel.
    <indexing-cluster id="IndexingCluster" getDataInParallel="true">
      <agidx ref="Agidx1" />
      <dgidx ref="Dgidx1" />
      <dgidx ref="Dgidx2" />
    </indexing-cluster>
`agidx` | This element defines an Agidx component, including attributes that define the functionality of the Agidx process as well as custom properties and directories used to configure the functionality of the Agidx object's methods. Multiple `agidx` elements can be defined.
    <agidx id="Agidx1" host-id="ITLHost">
      <properties>
        <property name="agidxGroup" value="A" />
        <property name="numLogBackups" value="10" />
        <property name="numIndexBackups" value="3" />
      </properties>
      <args>
        <arg>-v</arg>
      </args>
      <input-prefix-list>
        <input-prefix>
          ./data/dgidxs/Dgidx1/dgidx_output/project_name-part0
        </input-prefix>
        <input-prefix>
          ./data/dgidxs/Dgidx2/dgidx_output/project_name-part1
        </input-prefix>
      </input-prefix-list>
      <log-dir>./logs/agidxs/Agidx1</log-dir>
      <output-dir>./data/agidx_output</output-dir>
    </agidx>
`dgraph` | This element defines a Dgraph component, including attributes that define the functionality of the Dgraph process as well as custom properties and directories used to configure the functionality of the Dgraph object's methods. Multiple `dgraph` elements can be defined. Each `dgraph` element inherits, and potentially overrides, configuration specified in the `dgraph-defaults` element (see below).
    <dgraph id="Dgraph1" host-id="MDEXHost" port="15000">
      <properties>
        <property name="restartGroup" value="A" />
        <property name="updateGroup" value="a" />
      </properties>
      <log-dir>./logs/dgraphs/Dgraph1</log-dir>
      <input-dir>./data/dgraphs/Dgraph1/dgraph_input</input-dir>
      <update-dir>./data/dgraphs/Dgraph1/dgraph_input/updates</update-dir>
      </dgraph>
`dgraph-defaults` | This element defines the default settings inherited by all `dgraph` elements specified in the document. This enables a single point of configuration for common Dgraph configuration such as command line arguments, and script directory configuration. Only one `dgraph-defaults` element can be defined.
    <dgraph-defaults>
      <properties>
        <property name="srcIndexDir" value="./data/dgidx_output" />
        <property name="srcIndexHostId" value="ITLHost" />
        <property name="numLogBackups" value="10" />
      </properties>
      <directories>
        <directory name="localIndexDir">
          ./data/dgraphs/local_dgraph_input
        </directory>
      </directories>
      <args>
        <arg>--threads</arg>
        <arg>2</arg>
        <arg>--spl</arg>
        <arg>--dym</arg>
      </args>
      <startup-timeout>120</startup-timeout>
    </dgraph-defaults>
`dgraph-cluster` | This element defines a Dgraph cluster, including a list of ID references to the Dgraph components that belong to this cluster. This object can be configured to distribute data to Dgraph servers serially or in parallel.
    <dgraph-cluster id="DgraphCluster" getDataInParallel="true">
      <dgraph ref="Dgraph1" />
      <dgraph ref="Dgraph2" />
    </dgraph-cluster>
`agraph` | This element defines an Agraph component, including attributes that define the functionality of the Agraph process as well as custom properties and directories used to configure the functionality of the Agraph object's methods. Multiple `agraph` elements can be defined. Each `agraph` element inherits, and potentially overrides, configuration specified in the `agraph-defaults` element (see below).
    <agraph id="Agraph1" host-id="MDEXHost" port="14000">
        <properties>
          <property name="restartGroup" value="A" />
        </properties>
        <dgraph-children>
          <dgraph-child>Dgraph1</dgraph-child>
          <dgraph-child>Dgraph2</dgraph-child>
        </dgraph-children>
        <log-dir>./logs/agraphs/Agraph1</log-dir>
        <input-dir>./data/agraphs/Agraph1/agraph_input</input-dir>
      </agraph>
`agraph-defaults` | This element defines the default settings inherited by all `agraph` elements specified in the document. This enables a single point of configuration for common Agraph configuration such as command line arguments, and script directory configuration. Only one `agraph-defaults` element can be defined.
    <agraph-defaults>
      <properties>
        <property name="srcIndexDir" value="./data/agidx_output" />
        <property name="srcIndexHostId" value="ITLHost" />
        <property name="numLogBackups" value="10" />
      </properties>
      <directories>
        <directory name="localIndexDir">
          ./data/agraphs/local_agraph_input
        </directory>
      </directories>
      <args>
        <arg>--no-partial</arg>
      </args>
      <startup-timeout>120</startup-timeout>
    </agraph-defaults>
`agraph-cluster` | This element defines an Agraph cluster, including a list of ID references to the Agraph and Dgraph components that belong to this cluster. This object can be configured to distribute data to graph servers serially or in parallel.
    <agraph-cluster id="AgraphCluster" getDataInParallel="true">
      <agraph ref="Agraph1" />
      <agraph ref="Agraph2" />
      <dgraph ref="Dgraph1" />
      <dgraph ref="Dgraph2" />
    </agraph-cluster>
`logserver` | This element defines a LogServer component, including attributes that define the functionality of the LogServer process as well as custom properties and directories used to configure the functionality of the LogServer object's methods. Multiple `logserver` elements can be defined.
    <logserver id="LogServer" host-id="ITLHost" port="15002">
      <properties>
        <property name="numLogBackups" value="10" />
        <property name="targetReportGenDir" value="./reports/input" />
        <property name="targetReportGenHostId" value="ITLHost" />
      </properties>
      <log-dir>./logs/logserver</log-dir>
      <output-dir>./logs/logserver_output</output-dir>
      <startup-timeout>120</startup-timeout>
      <gzip>false</gzip>
    </logserver>
`report-generator` | This element defines a ReportGenerator component, including attributes that define the functionality of the ReportGenerator process as well as custom properties and directories used to configure the functionality of the ReportGenerator object's methods. Multiple `report-generator` elements can be defined.
    <report-generator id="WeeklyReportGenerator" host-id="ITLHost">
      <properties>
        <property name="webStudioReportDir"
    value="C:\Endeca\MDEXEngine\workspace/reports/MyApp" />
        <property name="webStudioReportHostId" value="ITLHost" />
      </properties>
      <log-dir>./logs/report_generators/WeeklyReportGenerator</log-dir>
      <input-dir>./reports/input</input-dir>
      <output-file>./reports/weekly/report.xml</output-file>
      <stylesheet-file>
        ./config/report_templates/tools_report_stylesheet.xsl
      </stylesheet-file>
      <settings-file>
        ./config/report_templates/report_settings.xml
      </settings-file>
      <time-range>LastWeek</time-range>
      <time-series>Daily</time-series>
      <charts-enabled>true</charts-enabled>
    </report-generator>
`custom-component` | This element defines a custom component, including custom properties and directories used to configure the functionality of the custom component object's methods. Multiple `custom-component` elements can be defined, though each must specify the name of the implemented class that extends com.Endeca.soleng.eac.toolkit.component.CustomComponent.
    <custom-component id="ConfigManager" host-id="ITLHost"
      class="com.Endeca.soleng.eac.toolkit.component.ConfigManagerComponent">
      <properties>
        <property name="webStudioHost" value="sshusteff-lt1.ne.Endeca.com" />
        <property name="webStudioPort" value="8888" />
        <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="mergedConfigDir">./data/complete_config</directory>
        <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="webStudioTempDir">
          ./data/web_studio_temp_dir
        </directory>
      </directories>
    </custom-component>

Related concepts
Display component status