Configure the Semarchy xDI Runtime Deliveries Repositories

A runtime look for its deliveries to run in delivery repositories, which may be hosted in the runtime file system or in Analytics.

Repository Configuration

Delivery repositories are configured in the Runtime Configuration File (engineParameters.xml), as shown in the example below:

Example 1. File delivery configuration sample
<parameters>
  <...>
  <repositories>
    <...>
      <deliveryRepository
        name="fileRepository"
        class="com.semarchy.xdi.runtime.repository.delivery.FileDeliveryRepositoryPlugin"
        module="moduleName"
        default="true"
        webservice="false"
        mode="poll"
        pollInt="10000"
        enableMemoryCache="true"
        cacheFolder="folderPath">
      <parameter name="folder" value="build/deliveries" />
      </deliveryRepository>
    <...>
  </repositories>
  <...>
</parameters>
You can define multiple delivery repositories under the <repositories> node.

Common Parameters

The following common parameters are available for all delivery repository types.

Parameter Mandatory Default value Description

name

Yes

Unique name identifying the the repository.

class

Yes

Delivery repository plugin class name.

module

No

internal

Module in which the plugin class will be searched. It is optional and will search in internal module when not specified.

default

No

false

Defines if this repository is the default repository used by the Runtime when performing delivery operations. Only two default repositories can be defined at a time in a Runtime - one for standard deliveries and one for webservices deliveries.

webservice

No

false

Defines if this repository is a repository for deliveries to be exposed as web service. Only one webservice repository can be defined at a time in a Runtime.

mode

No

direct

Defines how the deliveries contained in the repositories will be scanned, to update the list of available deliveries. See below for further details about available modes. possible values are:

  • direct: The runtime takes into account new or updated deliveries at startup and when one components (Designer, Analytics) performs a publish operation. The deliveries manually added or updated are into account only when the runtime restarts.

  • poll: The Runtime polls regularly the repository for new deliveries. This is mostly useful for deliveries exposed as web service.

pollInt

No

10000

Polling interval in milliseconds for the runtime to scan the repository for new deliveries. This parameter applies only when using the poll mode.

enableMemoryCache

No

False

Store the repository information in a cache.

cacheFolder

No

Folder used to cache repository information.

Repository Types

Each repository type has its own set of parameters, defined which are defined under its deliveryRepository node.

The following Delivery Repository types are available in a default runtime installation.

File Repository

The file repository plugin (FileDeliveryRepositoryPlugin) stores deliveries in the runtime local file system.

Parameter Mandatory Default Value Description

folder

Yes

build/deliveries

Absolute or relative path to a folder containing the deliveries.

Example 2. Sample file delivery repository configuration
<repositories>
  <!-- Standard deliveries file repository -->
  <deliveryRepository
    name="default"
    class="com.semarchy.xdi.runtime.repository.delivery.FileDeliveryRepositoryPlugin"
    default="true">
    <parameter name="folder" value="build/deliveries/"/>
  </deliveryRepository>
  <!-- Web service deliveries file repository -->
  <deliveryRepository
    name="webservices"
    class="com.semarchy.xdi.runtime.repository.delivery.FileDeliveryRepositoryPlugin"
    default="true"
    webservice="true">
    <parameter name="folder" value="build/deliveries/webservices/"/>
  </deliveryRepository>
</repositories>

HTTP Repository V2 - Analytics 3.x

The HTTP V2 repository (HttpDeliveryRepositoryV2Plugin) pulls deliveries from a remote repository managed in Analytics. The deliveries are not stored locally in the Runtime.

This plugin only works with analytics version 3.x and above.
Parameter Mandatory Description

url

Yes

URL to access Semarchy xDI Production Analytics

user

Yes

Username to connect Semarchy xDI Production Analytics

password

No

User password, encrypted with the runtime encrypt command. Only one of the password or uncryptedPassword parameters should be used at a time.

uncryptedPassword

No

Plain text password of the user.

unreachableTolerancePeriod

No

Timeout in milliseconds during which the Runtime will use the cached version of previously pulled deliveries when the server is unavailable.

environment

Yes

Analytics environment from which to retrieve deliveries. You can have multiple environments in Analytics, such as development, testing, production, … This property allows to define from which environment you want to retrieve deliveries from. This must correspond to the name of an environment existing in Analytics.

defaultDeliveryPath

No

Default delivery path, in the following form: <project_name>/<package_manager_name>/. This path automatically prefixes a delivery name started without specifying the full delivery path.

Deliveries executed from such a repository should be specified with their full path:
<project_name>/<package_manager_name>/<delivery_name>.

For example:

startdelivery.bat -repository analytics -name MyProject/MyManaber/MyDelivery

Use the defaultDeliveryPath parameter to set the default path when running deliveries without their full path.

Example 3. Sample HTTP v2 delivery repository configuration
<repositories>
    <deliveryRepository name="analytics_repository"
        class="com.semarchy.xdi.runtime.repository.delivery.HttpDeliveryRepositoryV2Plugin"
        default="false">
        <parameter name="url"
            value="http://localhost:8080/analytics"/>
        <parameter name="user"
            value="deliveryUser"/>
        <parameter name="uncryptedPassword"
            value="xxxxxx"/>
        <parameter name="unreachableTolerancePeriod"
            value="30000"/>
        <parameter name="environment"
            value="analytics_environment"/>
        <parameter name="defaultDeliveryPath"
            value="project_name/manager_name"/>
    </deliveryRepository>
</repositories>