The Integration Repository is defined by an XML template file. This file is specified by the definitionFile
property of the IntegrationRepository
component. The Integration Repository definition file defines the integration behavior, including the commands used for the executeQuery
, getItem
, createItem
, updateItem
, and removeItem
integration operations. The elements of the Integration Repository definition file are described in the Integration Repository Definition File section. The commands are described in the Command Operations section.
Since the Integration Repository wraps another repository, the underlying SQL repository also requires a definition file to define the repository item properties. You may also want to create mapping files to handle the relation of your repository item properties to the data maintained on the remote system. See the Repository to XML Data Binding chapter for more information.
This is an example of what the Integration Repository definition file would look like. It defines a single item descriptor, named account
, and specifies the Commands
used to query, get, add, update, and remove account
items:
<integration-repository-template> <header> <name>RemoteX Repository</name> </header> <item-descriptor name="account"> <query command="/atg/integrations/remotex/queries/AccountQuery" view="atg.integrations.remotex.RemoteXView"> </query> <get-item command="/atg/integrations/remotex/queries/AccountQuery"> </get-item> <add-item command="/atg/integrations/remotex/queries/AccountUpdateRPC"> </add-item> <update-item command="/atg/integrations/remotex/queries/AccountUpdateRPC"> </update-item> <remove-item command="/atg/integrations/remotex/queries/AccountDeleteRPC"> </remove-item> </item-descriptor> </integration-repository-template>
The Integration Repository definition file conforms to a DTD file at this URL:
http://www.atg.com/dtds/integrations/integration-repository_1.0.dtd
The Integration Repository is also configured using normal JavaBean properties. An IntegrationRepository
component might be configured in a properties file like this:
$class=atg.adapter.integrations.IntegrationRepository repositoryName=MyStuff localRepository=/mystuff/MyLocalRepository definitionFile=/mystuff/irConfig.xml transactionManager=/atg/dynamo/transaction/TransactionManager integrationRepositoryTools=/atg/integrations/repository/IntegrationRepositoryTools persistentCacheManager=/atg/integrations/repository/PersistentCacheManager mappingManager=/atg/repository/xml/SchemaManager mappingTools=/atg/integrations/repository/MappingTools lockManager=/atg/dynamo/service/ClientLockManager
The IntegrationRepository section describes these properties.