Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

There are two ways to dynamically inject parameters to your integration solutions:

Child pages (Children Display)toc

Injecting parameters as environment variables

If you want to inject parameter values as environment variables, follow the steps given below.

  1. Define your synapse artifacts using "$SYSTEM:<place_holder_value>" as the parameter value. Note that <place_holder_value> represents a place holder representing the parameter. For example, shown below is an endpoint artifact, where the endpoint uri configured for this feature:

    Code Block
    <?xml version="1.0" encoding="UTF-8"?>
    <endpoint xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteEndPoint">
      <address uri="$SYSTEM:stockQuoteEP"/>
    </endpoint>
  2. In a VM deployment, you can export the variables as shown below. Here VAR is the url you need to have set as environment property.

    Code Block
    export VAR=http://localhost:61616/...

Injecting parameters using a configuration file

Use separate configuration files to load the parameter values for each environment. For example, a file named dev.properties can be used to inject parameter values to the development environment and a file named prod.properties can be used to inject parameter values to the production environment.

It is possible to use a file in an NFS mount as the file path and it is useful for container deployment. We can use the environment specific configuration from the file in NFS mount and inject the parameter values to the docker container.

Using file.properties

In the the product startup scripts (integrator.sh and integrator.bat file), which are available in the <EI_HOME>/bin directory, a system variable is defined as follows and the value is set to default.

Code Block
-Dproperties.file.path=default 

When the above value set to default, the system reads the parameters from the file.properties file that is available in the <EI_HOME>/conf directory. Parameters can define as key-value pair in the file.properties file.

Using custom property files

Instead of using the file.properties file, you are allowed to use the user defined configuration file similar to the file.properties file and configure the particular file path in the integrator.sh or integrator.bat file as shown below.

  • In the integrator.sh file:

    Code Block
    -Dproperties.file.path=/home/user/ei_configs/dev/dev.properties
  • In the integrator.bat file:

    Code Block
    -Dproperties.file.path="%CONFIG_DIR%\dev\dev.properties

With this feature, it is possible to inject the parameters by using the $FILE: prefix followed by the relevant key used to map the original value.

Supported parameters

Endpoint parameters

Configure the Endpoint parameters in your synapse configuration as shown below.

Endpoint TypeParameters
Address Endpointuri
HTTP Endpointuri
Loadbalance Endpointhostname and port
RecipientList Endpointhostname and port
Template Endpointuri
WSDL EndpointwsdlURI

Data service parameters

  • Driver
  • URL
  • Username
  • Password

Scheduled Task parameters

The pinned servers parameter can be set as an environment variable for a scheduled task or proxy service. See the examples given below.

Inbound Endpoint parameters

See the list of properties that can be defined as environment variables:

Injecting proxy service parameters

The pinned servers parameter as well as all the service-level transport parameters:

Injecting Message Store parameters

Message Store TypeParameters
JMS Message Store
  • store.jms.username
  • store.jms.password
  • store.jms.connection.factory
WSO2 MB Message Store
RabbitMQ Message Store
JDBC Message Store
  • store.jdbc.drive
  • store.jdbc.connection.url
  • store.jdbc.username
  • store.jdbc.password
Resequence Message Store