Customization file

You can specify extensible components such as proxies, TestObjects, values, and value managers in an external customization file with the .rftcust extension. After the files are deployed, these extended components become part of the Functional Tester framework. The main customization file, rational_ft.rftcust is located in the Functional Tester installation directory or the customization directory.

You can create many customization files. When you start Functional Tester, it reads all the customization files and stores the details in the shared memory. Further references to the customization files are made in the shared memory


Customization file syntax

The customization file is an XML file with many sections that are marked with <Section></Section> tags. Each section has a name and contains the content between the tags. The following example shows a basic section:

<Section L=".ConfigFileSection">
  <Name>Section Name</Name>
         .
         .
         Section content 
         .
</Section >

Sections are optional and you can also insert empty sections also in a customization file. Each section has its own syntax. For section components that require implementation in both component models (Java and .NET ) there should be two <ComponentModel> tags, one for Java and .NET each:

<ComponentModel L=".ComponentModel">
       <Name>Java</Name>
</ComponentModel>
<ComponentModel L=".ComponentModel">
       <Name>Net</Name>
</ComponentModel>

The proxies section is the most commonly used section. It contains a <DomainImplementation> tag for each test domain for specifying proxy classes that are deployed and the associated application under test (AUT) class names for which the proxy is used. Within the <DomainImplementation> tag, the <Obj L=".Proxy"> tags are used for each proxy class that is established and the <UsedBy> tags specify the class name of the AUT control.

You can have more than one <UsedBy> tag for a single proxy class if you want to use the same proxy for similar controls.

You must use the <Section> tags appropriately, meeting their requirements and extension components to be deployed into the Functional Tester framework.


Complete syntax of the main customization

The following is the complete syntax for the main customization file.

<?xml version="1.0" encoding="UTF-8"?>
<ConfigFile L=".ConfigFile">
  
  <--Proxy Section: all the proxies are defined here domain wise-->
  <Section L=".ConfigFileSection">
    <Name>proxies</Name>
    <Val L=".ProxyManager">
      <DomainImplementation L=".DomainImplementation">
        <Name>Java</Name>
        <Obj L=".Proxy">
          <ClassName></ClassName>
          <Replaces/>
          <UsedBy></UsedBy>
          .
          .
        </Obj>
        .
        .
      </DomainImplementation>
      <DomainImplementation L=".DomainImplementation">
        <Name>Net</Name>
        <Obj L=".Proxy">
          <ClassName></ClassName>
          <Replaces/>
          <UsedBy></UsedBy>
          .
          .
        </Obj>
        .
        .
      </DomainImplementation>
      <DomainImplementation L=".DomainImplementation">
        <Name>Win</Name>
        <Obj L=".Proxy">
          <ClassName></ClassName>
          <Replaces/>
          <UsedBy></UsedBy>
          .
          .
        </Obj>
        .
        .
      </DomainImplementation>
      .
      .
    </Val>
  </Section>

  
  <--ValueManager Section: all newly defined Value and Valuemanager classes are defined here -->
  <Section L=".ConfigFileSection">
    <Name>valueManagers</Name>
    <Val L=".ValueManagerManager">
      <ComponentModel L=".ComponentModel">
        <Name>Java</Name>
        <Obj L=".ValueManager">
          <Id></Id>
          <ValueClass></ValueClass>
          <Manager></Manager>
        </Obj>
      </ComponentModel>
      <ComponentModel L=".ComponentModel">
        <Name>Net</Name>
        <Obj L=".ValueManager">
          <Id></Id>
          <ValueClass></ValueClass>
          <Manager></Manager>
        </Obj>
      </ComponentModel>
    </Val>
  </Section>
  
  <--Value Converter Section: -->
  <Section L=".ConfigFileSection">
    <Name>valueConverters</Name>
    <Val L=".ValueConverterManager">
    </Val>
  </Section>


  <--Property Converter Section: -->
  <Section L=".ConfigFileSection">
    <Name>propertyConverters</Name>
    <Val L=".PropertyConverterManager">
      <ComponentModel L=".ComponentModel">
        <Name>Java</Name>
        <Obj L=".PropertyConverter">
          <Property></Property>
          <Converter></Converter>
        </Obj>
      </ComponentModel>
      <ComponentModel L=".ComponentModel">
        <Name>Net</Name>
        <Obj L=".PropertyConverter">
          <Property></Property>
          <Converter></Converter>
        </Obj>
      </ComponentModel>
    </Val>
  </Section>

  <--Options Converter Section: -->
  <Section L=".ConfigFileSection">
    <Name>options</Name>
    <Val L=".Options">
      <Obj L=".Option">
        <Name></Name>
        <Type></Type>
        <ReadOnly></ReadOnly>
        <DefaultValue/>
        <Description></Description>
        <Label/>
        <Category></Category>
        <LegalValues/>
      </Obj>
    </Val>
  </Section>

  <-- RoleMap Section: -->
  <Section L=".ConfigFileSection">
    <Name>roleMap</Name>
    <Val L=".RoleMap">
      <Role L=".Role">
        <Name></Name>
        <Icon></Icon>
      </Role>
    </Val>
  </Section>

  <--TestObject Section: canonical name for all the newly created testobjects defined here -->
  <Section L=".ConfigFileSection">
    <Name>testObjects</Name>
    <Val L=".TestObjectManager">
      <ComponentModel L=".ComponentModel">
        <Name>Java</Name>
        <Obj L=".TestObject">
          <CanonicalName></CanonicalName>
          <TestObject></TestObject>
        </Obj>
        .
        .
      </ComponentModel>
      <ComponentModel L=".ComponentModel">
        <Name>Net</Name>
        <Obj L=".TestObject">
          <CanonicalName></CanonicalName>
          <TestObject></TestObject>
        </Obj>
        .
        .
      </ComponentModel>
    </Val>
  </Section>

</ConfigFile>