diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index e94d1ddf0..44153c97f 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -26,7 +26,7 @@ jobs: node-version: 18.x - name: Install dependencies - run: yarn global add semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github @semantic-release/exec @semantic-release/release-notes-generator @semantic-release/commit-analyzer conventional-changelog-conventionalcommits semantic-release-helm + run: yarn global add semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github @semantic-release/exec @semantic-release/release-notes-generator @semantic-release/commit-analyzer@10.0.1 conventional-changelog-conventionalcommits@6.1.0 semantic-release-helm - name: Get next version id: next-version @@ -110,10 +110,10 @@ jobs: node-version: 18.x - name: Install dependencies - run: yarn global add semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github @semantic-release/exec @semantic-release/release-notes-generator @semantic-release/commit-analyzer conventional-changelog-conventionalcommits semantic-release-helm + run: yarn global add semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github @semantic-release/exec @semantic-release/release-notes-generator @semantic-release/commit-analyzer@10.0.1 conventional-changelog-conventionalcommits@6.1.0 semantic-release-helm - name: Semantic Release run: "semantic-release" env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} - GH_TOKEN: ${{ secrets.GH_TOKEN }} \ No newline at end of file + GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.gitignore b/.gitignore index 50832d8b5..d9192897f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -FrankConfig.xsd Test.properties /.idea/ /target/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 030b5e499..d96c61696 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,55 @@ [![conventional commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org) [![semantic versioning](https://img.shields.io/badge/semantic%20versioning-2.0.0-green.svg)](https://semver.org) +## [1.12.40](https://github.com/ibissource/zaakbrug/compare/v1.12.39...v1.12.40) (2023-09-11) + + +### 🤖 Build System + +* **dependencies:** bump f!f version to 7.9-20230905.223421 ([8c2f24d](https://github.com/ibissource/zaakbrug/commit/8c2f24dae98798901b717bb3e58d88fcd24b83d1)) + +## [1.12.39](https://github.com/ibissource/zaakbrug/compare/v1.12.38...v1.12.39) (2023-09-07) + + +### ⏩ Reverts + +* Revert "fix: identificatie generation producing duplicates during highly-concurrent workload (#143)" (#151) ([db33368](https://github.com/ibissource/zaakbrug/commit/db333682b8ec1a8966903dfce6e6fcbbdcc1e59a)), closes [#143](https://github.com/ibissource/zaakbrug/issues/143) [#151](https://github.com/ibissource/zaakbrug/issues/151) + +## [1.12.38](https://github.com/ibissource/zaakbrug/compare/v1.12.37...v1.12.38) (2023-09-07) + + +### 🐛 Bug Fixes + +* Error message not returned to CLO in ForEachChildElementPipe in GeefLijstZaakdocumenten adapter ([#150](https://github.com/ibissource/zaakbrug/issues/150)) ([7d574c9](https://github.com/ibissource/zaakbrug/commit/7d574c994d85ada4896e00e6d0620dc3a8e6c0fa)) + +## [1.12.37](https://github.com/ibissource/zaakbrug/compare/v1.12.36...v1.12.37) (2023-09-06) + + +### 🐛 Bug Fixes + +* identificatie generation producing duplicates during highly-concurrent workload ([#143](https://github.com/ibissource/zaakbrug/issues/143)) ([3235a62](https://github.com/ibissource/zaakbrug/commit/3235a6242e00550ae0cd42189035e4bc326d02ef)) + +## [1.12.36](https://github.com/ibissource/zaakbrug/compare/v1.12.35...v1.12.36) (2023-09-06) + + +### ✅ Tests + +* add commented out pgadmin container to sentry docker-compose for postgres browsing ([bb42fbc](https://github.com/ibissource/zaakbrug/commit/bb42fbca1968886c4173a034b3f4c65db12f0019)) +* add sentry instance in test-environment and add instructions to contributing.md ([e210682](https://github.com/ibissource/zaakbrug/commit/e2106827c30b246ef51387fd9a3d688b9908c50a)) + +## [1.12.35](https://github.com/ibissource/zaakbrug/compare/v1.12.34...v1.12.35) (2023-09-01) + + +### 🐛 Bug Fixes + +* error message not returned to CLO ([6bf900a](https://github.com/ibissource/zaakbrug/commit/6bf900a22726bf629d90eaca41444d764d99d8bd)) + +## [1.12.34](https://github.com/ibissource/zaakbrug/compare/v1.12.33...v1.12.34) (2023-08-30) + + +### 🔁 Continuous Integration + +* revert semantic-release dependecies due to breaking change ([247909a](https://github.com/ibissource/zaakbrug/commit/247909a6e08a15279fe68efcb94e53679e4c13ab)) + ## [1.12.33](https://github.com/ibissource/zaakbrug/compare/v1.12.32...v1.12.33) (2023-08-10) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 62dc57bb5..555e9946f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,18 @@ # Contributing +# Bumping dependencies +## Frank!Framework version +We like to stay up-to-date with the latest version of the Frank!Framework to get the latest features, improvements, bug fixes and security patches. For stability reasons we do not want to use the "latest" tag for this. Instead we periodically(~weekly) do a manual bump to the latest available snapshot build of Frank!Framework at that time. Mainly because we use custom code that needs to be manual checked and updated with changes made in the Frank!Framework. + +Execute the following steps when bumping the Frank!Framework version: +1. Look up the latest framework snapshot build on [DockerHub - Frank!Framework](https://hub.docker.com/r/wearefrank/frank-framework/tags). The format of the tag should be: `.-.`. For example: 7.9-20230907.223421. +2. Replace the tag in the `Dockerfile` with the new tag. +3. Replace the tag in `frank-runner.properties` with the new tag. +4. Start ZaakBrug with the `Frank!Runner` to automatically replace the `./src/main/configuration//FrankConfig.xsd` and `./src/main/configuration/FrankConfig.xsd` with the newer version. You can stop the Frank!Runner once the files are replaced. Note that currently the Frank!Runner will also add `FrankConfig.xsd` to the `.gitignore` file. Make sure to revert the change to `.gitignore`. +5. Check [GitHub - Frank!Framework - Parameter.java commit history](https://github.com/ibissource/iaf/commits/master/core/src/main/java/nl/nn/adapterframework/parameters/Parameter.java) for any changes to this class. If there are indeed changes, update the corresponding file under `./src/main/java/nl/nn/adapterframework/...`. The `.java-orig` file content should be 1 on 1 equal to the new version on GitHub. Take care to not accidentally remove the intended customization of the code in the `.java` file. +6. Run the e2e testsuite by using the below Docker-Compose and configuration to validate the changes. You should only need `docker-compose -f ./docker-compose.zaakbrug.dev.yml -f ./docker-compose.openzaak.dev.yml up --build --force-recreate` for this. (TODO: Automate running of e2e tests in ci/cd). +7. Commit you changes on a branch with as message: `build(dependencies): bump f!f version to `. Create a PR to have you changes merged to master. + # Docker-compose The docker-compose development environment is designed to be flexible and composable. This prevents the need for developers to run the entire stack eventhough their work requires only a small part of the stack. For this we make use of a docker-compose feature that merges a given array of docker-compose files together. Simply provide a `-f ./docker-compose..yml` argument for each docker-compose file you wish to include in the `docker-compose up`command. @@ -63,3 +76,30 @@ Open Formulieren can be accessed from `host.docker.internal:9000/openforms/` Open Formulieren is also exposed on `host.docker.internal:9003/` TODO + +## docker-compose.sentry.dev +Contains a Sentry instance for monitoring applications in the environment. Particularly useful for troubleshooting OpenZaak, OpenForms, etc. + +The Sentry GUI can be accessed at `host.docker.internal:9500` or `localhost:9500`. + +#### Configuration +Running Sentry for the first time requires some configuration. + +TODO: Automate configuration + +1. Makes sure the `docker-compose.sentry.dev.yml` is included in your ` docker-compose up` and is running. +2. Open a CMD or Powershell in this repository folder and run `docker-compose -f ./docker-compose.sentry.dev.yml exec sentry sentry upgrade`. +3. After approx. a minute you will get asked if you want to create a user account. Choose `y` and hit enter. +4. We use the following defaults: email=`admin@wearefrank.nl`, password: `admin`. +5. Once finished, run the command: `docker-compose -f ./docker-compose.sentry.dev.yml restart sentry` to restart the sentry container. +6. Open a browser and navigate to `host.docker.internal:9500` or `localhost:9500`. You should see the Sentry login page. Login we the email and password from step 4. +7. Make sure the root url is `http://host.docker.internal:9500` and choose `Please keep my usage information anonymous` under Usage Statistics. +8. In the top-right corner hit the `add...` button and choose `project`. +9. Select the appropriate platform. For OpenZaak, ZaakBrug-Staging and OpenForms this will be `Django`. Change the project name appropriately and hit the `Create Project` button. +10. On the next page look for the word `dsn` and copy the value. +11. In the appropriate docker-compose file, add the following to the environment variables of the `open-zaak`, `zaakbrug-staging` and/or `open-forms` service: +``` +- SENTRY_DSN= +- SDK_SENTRY_DSN= +``` +12. Repeat step 8 - 11 for each application you want to monitor. diff --git a/Dockerfile b/Dockerfile index 19444f665..41fe5a71f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,8 @@ -FROM docker.io/wearefrank/frank-framework:7.9-20230810.190012 +# Keep in sync with version in frank-runner.properties. Detailed instructions can be found in CONTRIBUTING.md. +# Check whether java-orig files have changed in F!F and update custom code (java and java-orig files) accordingly + +# Before bumping make sure https://github.com/ibissource/iaf/issues/5356 is resolved or stuurgegevens-refactor PR is merged. +FROM docker.io/wearefrank/frank-framework:7.9-20230905.223421 # TempFix TODO: Move this to the credentialprovider.properties ENV credentialFactory.class=nl.nn.credentialprovider.PropertyFileCredentialFactory @@ -25,5 +29,6 @@ RUN javac \ -verbose -d /usr/local/tomcat/webapps/ROOT/WEB-INF/classes RUN rm -rf /tmp/java +# The part after "||" is to make sure the response of the health-endpoint call is included in the logs, for debugging purposes. HEALTHCHECK --interval=15s --timeout=5s --start-period=30s --retries=60 \ CMD curl --fail --silent http://localhost:8080/iaf/api/server/health || (curl --silent http://localhost:8080/iaf/api/server/health && exit 1) diff --git a/charts/zaakbrug/Chart.yaml b/charts/zaakbrug/Chart.yaml index fd273d019..e80c7fca5 100644 --- a/charts/zaakbrug/Chart.yaml +++ b/charts/zaakbrug/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 -appVersion: 1.12.33 +appVersion: 1.12.40 description: Install ZaakBrug (zds-to-zgw) on Haven, powered by the Frank!Framework name: zaakbrug type: application -version: 1.12.33 +version: 1.12.40 home: https://github.com/ibissource/zaakbrug icon: https://raw.githubusercontent.com/ibissource/zaakbrug/master/zaakbrug-icon.png keywords: diff --git a/docker-compose.sentry.dev.yml b/docker-compose.sentry.dev.yml new file mode 100644 index 000000000..2c5cfcf12 --- /dev/null +++ b/docker-compose.sentry.dev.yml @@ -0,0 +1,82 @@ +version: '3.8' + +services: + sentry-redis: + image: redis:${REDIS_VERSION:-6} + command: ["redis-server", "--appendonly", "yes"] + networks: + - sentry-backend + volumes: + - sentry-redis-data:/data + + sentry-postgres: + image: postgres:${POSTGRES_VERSION:-14} + environment: + POSTGRES_USER: sentry + POSTGRES_PASSWORD: sentry + POSTGRES_DB: sentry + POSTGRES_HOST_AUTH_METHOD: trust + networks: + - sentry-backend + volumes: + - sentry-postgres-data:/var/lib/postgresql/data + + # sentry-pgadmin: + # image: dpage/pgadmin4:${PGADMIN_VERSION:-latest} + # user: root + # depends_on: + # - sentry-postgres + # ports: + # - 5050:80 + # environment: + # PGADMIN_DEFAULT_EMAIL: admin@wearefrank.nl + # PGADMIN_DEFAULT_PASSWORD: admin + # # volumes: + # # - sentry-postgres-data:/var/lib/pgadmin + # networks: + # - sentry-backend + + sentry: + image: sentry:${SENTRY_VERSION:-latest} + depends_on: + - sentry-redis + - sentry-postgres + ports: + - 9500:9000 + environment: &sentry-env + SENTRY_SECRET_KEY: ${SECRET_KEY:-t$9llt$7fu65$nt$rmm4y^(xt)!%imecnia87ta(p4t^vf(w(+} + SENTRY_POSTGRES_HOST: sentry-postgres + SENTRY_DB_USER: sentry + SENTRY_DB_PASSWORD: sentry + SENTRY_REDIS_HOST: sentry-redis + networks: + - sentry-backend + - zaakbrug-stack + + sentry-cron: + image: sentry:${SENTRY_VERSION:-latest} + depends_on: + - sentry-redis + - sentry-postgres + command: "sentry run cron" + environment: *sentry-env + networks: + - sentry-backend + + sentry-worker: + image: sentry:${SENTRY_VERSION:-latest} + depends_on: + - sentry-redis + - sentry-postgres + command: "sentry run worker" + environment: *sentry-env + networks: + - sentry-backend + +volumes: + sentry-redis-data: + sentry-postgres-data: + +networks: + zaakbrug-stack: + sentry-backend: \ No newline at end of file diff --git a/frank-runner.properties b/frank-runner.properties index d22c388f9..3027a8d48 100644 --- a/frank-runner.properties +++ b/frank-runner.properties @@ -1 +1,4 @@ -classloader.type=ScanningDirectoryClassLoader \ No newline at end of file +classloader.type=ScanningDirectoryClassLoader + +# Keep in sync with version in Dockerfile. Detailed instructions can be found in CONTRIBUTING.md. +ff.version=7.9-20230905.223421 \ No newline at end of file diff --git a/src/main/FrankConfig.xsd b/src/main/FrankConfig.xsd new file mode 100644 index 000000000..077f89a73 --- /dev/null +++ b/src/main/FrankConfig.xsd @@ -0,0 +1,20197 @@ + + + + + Container of Adapters that belong together. + A configuration may be deployed independently from other configurations. + Names of nested elements like Adapters, Receivers, listeners and senders + can be reused in other configurations. + <br/><br/> + Configurations are shown in the Frank!Console along with their Adapters, + Receivers, listeners and senders. The Adapter Status page of the Frank!Console + has a tab for each configuration that only shows information + about that configuration. See the Frank!Manual for details. + + + + + + + + + + Wrapper element to help split up large configuration files into smaller valid XML files. It may be used as root tag when an XML file contains multiple adapters and/or jobs. The Module element itself does not influence the behavior of Frank configurations. + + + + + + + + + + + reference to a configuration to be included in the current. + + + + + + + + + + An Adapter receives a specific type of messages and processes them. It has Receivers + that receive the messages and a PipeLine that transforms the incoming messages. Each adapter is part of a Configuration. + <br/> + If an adapter can receive its messages through multiple channels (e.g. RESTful HTTP requests, incoming files, etc), + each channel appears as a separate Receiver nested in the adapter. Each Receiver is also responsible + for dealing with + the result of its received messages; the result is the output of the PipeLine. The result + consists of the transformed message and a state. The Frank!Framework distinguishes between exit states + SUCCESS and ERROR. There is also a state REJECTED for messages that are not accepted by the Frank!Framework + and that are not processed by the PipeLine. If the exit state is ERROR, the result message may + not be usable by the calling system. This can be fixed by adding an + errorMessageFormatter that formats the result message if the state is ERROR. + <br/><br/> + Adapters gather statistics about the messages they process. + <br/> + Adapters can process messages in parallel. They are thread-safe. + + + + + + + + + name of the adapter + + + + + some functional description of the <code>Adapter</code> + + + + + AutoStart indicates that the adapter should be started when the configuration + is started. Default: <code>true</code> + + + + + If <code>true</code> a null message is replaced by an empty message Default: <code>false</code> + + + + + number of message displayed in ibisconsole Default: 10 + + + + + Defines behaviour for logging messages. Configuration is done in the MSG appender in log4j4ibis.properties. Default: <code>INFO, unless overridden by property msg.log.level.default</code> + + + + + + + + If set to <code>true</code>, the length of the message is shown in the msg log instead of the content of the message Default: <code>false</code> + + + + + + + + + + + Wrapper for a listener that specifies a channel for the incoming messages of a specific Adapter. + By choosing a listener, the Frank developer determines how the messages are received. + For example, an nl.nn.adapterframework.http.rest.ApiListener receives RESTful HTTP requests and a + JavaListener receives messages from direct Java calls. + <br/><br/> + Apart from wrapping the listener, a Receiver can be configured + to store received messages and to keep track of the processed / failed + status of these messages. + <br/><br/> + There are two kinds of listeners: synchronous listeners and asynchronous listeners. + Synchronous listeners are expected to return a response. The system that triggers the + receiver typically waits for a response before proceeding its operation. When a + nl.nn.adapterframework.http.rest.ApiListener receives a HTTP request, the listener is expected to return a + HTTP response. Asynchronous listeners are not expected to return a response. The system that + triggers the listener typically continues without waiting for the adapter to finish. When a + receiver contains an asynchronous listener, it can have a sender that sends the transformed + message to its destination. Receivers with an asynchronous listener can also have an error sender that is used + by the receiver to send error messages. In other words: if the result state is SUCCESS then the + message is sent by the ordinary sender, while the error sender is used if the result state + is ERROR. + <br/><br/> + <b>Transaction control</b><br/><br/> + If transacted is set to <code>true</code>, messages will be received and processed under transaction control. + This means that after a message has been read and processed and the transaction has ended, one of the following apply: + <table border="1"> + <tr><th>situation</th><th>input listener</th><th>Pipeline</th><th>inProcess storage</th><th>errorSender</th><th>summary of effect</th></tr> + <tr><td>successful</td><td>message read and committed</td><td>message processed</td><td>unchanged</td><td>unchanged</td><td>message processed</td></tr> + <tr><td>procesing failed</td><td>message read and committed</td><td>message processing failed and rolled back</td><td>unchanged</td><td>message sent</td><td>message only transferred from listener to errroSender</td></tr> + <tr><td>listening failed</td><td>unchanged: listening rolled back</td><td>no processing performed</td><td>unchanged</td><td>unchanged</td><td>no changes, input message remains on input available for listener</td></tr> + <tr><td>transfer to inprocess storage failed</td><td>unchanged: listening rolled back</td><td>no processing performed</td><td>unchanged</td><td>unchanged</td><td>no changes, input message remains on input available for listener</td></tr> + <tr><td>transfer to errorSender failed</td><td>message read and committed</td><td>message processing failed and rolled back</td><td>message present</td><td>unchanged</td><td>message only transferred from listener to inProcess storage</td></tr> + </table> + If the application or the server crashes in the middle of one or more transactions, these transactions + will be recovered and rolled back after the server/application is restarted. Then always exactly one of + the following applies for any message touched at any time by Ibis by a transacted receiver: + <ul> + <li>It is processed correctly by the pipeline and removed from the input-queue, + not present in inProcess storage and not send to the errorSender</li> + <li>It is not processed at all by the pipeline, or processing by the pipeline has been rolled back; + the message is removed from the input queue and either (one of) still in inProcess storage <i>or</i> sent to the errorSender</li> + </ul> + + <p><b>commit or rollback</b><br/> + If transacted is set to <code>true</code>, messages will be either committed or rolled back. + All message-processing transactions are committed, unless one or more of the following apply: + <ul> + <li>The PipeLine is transacted and the exitState of the pipeline is not equal to SUCCESS</li> + <li>a PipeRunException or another runtime-exception has been thrown by any Pipe or by the PipeLine</li> + <li>the setRollBackOnly() method has been called on the userTransaction (not accessible by Pipes)</li> + </ul> + </p> + + + + + + + + + + + Name of the Receiver as known to the Adapter + + + + + One of 'continue' or 'close'. Controls the behaviour of the Receiver when it encounters an error sending a reply or receives an exception asynchronously Default: CONTINUE + + + + + + + + The number of threads that may execute a Pipeline concurrently (only for pulling listeners) Default: 1 + + + + + The number of threads that are actively polling for messages concurrently. '0' means 'limited only by <code>numthreads</code>' (only for pulling listeners) Default: 1 + + + + + The number of seconds waited after an unsuccesful poll attempt before another poll attempt is made. Only for polling listeners, not for e.g. ifsa, jms, webservice or javaListeners Default: 10 + + + + + timeout to start receiver. If this timeout is reached, the Receiver may be stopped again + + + + + timeout to stopped receiver. If this timeout is reached, a new stop command may be issued + + + + + If set to <code>true</code>, each message is checked for presence in the messageLog. If already present, it is not processed again. Only required for non XA compatible messaging. Requires messageLog! Default: false + + + + + (Only used when <code>checkForDuplicates=true</code>) Indicates whether the messageid or the correlationid is used for checking presence in the message log Default: MESSAGEID + + + + + + + + The maximum delivery count after which to stop processing the message (only for listeners that know the delivery count of received messages). If -1 the delivery count is ignored Default: 5 + + + + + The number of times a processing attempt is automatically retried after an exception is caught or rollback is experienced. If <code>maxRetries &lt; 0</code> the number of attempts is infinite Default: 1 + + + + + Size of the cache to keep process results, used by maxRetries Default: 100 + + + + + XPath expression to extract correlationid from message + + + + + Namespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + Stylesheet to extract correlationID from message + + + + + XPath expression to extract label from message + + + + + Namespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + Stylesheet to extract label from message + + + + + If set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment) + + + + + If set, the character data in this element is stored under a session key and in the message replaced by a reference to this session key: {sessionkey: + <code>elementToMoveSessionKey</code> + } + + + + + (Only used when <code>elementToMove</code> is set) Name of the session key under which the character data is stored Default: ref_ + the name of the element + + + + + Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. adapter;pipeline;pipe) + + + + + + Regular expression to mask strings in the errorStore/logStore. Every character between to the strings in this expression will be replaced by a '*'. For example, the regular expression (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every character between keys &lt;party&gt; and &lt;/party&gt; + + + + + Only used when hideRegex is not empty Default: all + + + + + + + + Comma separated list of keys of session variables which are available when the <code>PipelineSession</code> is created and of which the value will not be shown in the log (replaced by asterisks) + + + + + If set to <code>true</code>, every message read will be processed as if it is being retried, by setting a session variable to retry. Default: false + + + + + Number of connection attemps to put the adapter in warning status Default: 5 + + + + + + + + + + + + Generic parameter definition. + + A parameter resembles an attribute. However, while attributes get their value at configuration-time, + parameters get their value at the time of processing the message. Value can be retrieved from the message itself, + a fixed value, or from the pipelineSession. If this does not result in a value (or if neither of these is specified), a default value + can be specified. If an XPathExpression or stylesheet is specified, it will be applied to the message, the value retrieved + from the pipelineSession or the fixed value specified. If the transformation produces no output, the default value + of the parameter is taken if provided. + <br/><br/> + Examples: + <pre><code> + stored under SessionKey 'TransportInfo': + &lt;transportinfo&gt; + &lt;to&gt;***@zonnet.nl&lt;/to&gt; + &lt;to&gt;***@zonnet.nl&lt;/to&gt; + &lt;cc&gt;***@zonnet.nl&lt;/cc&gt; + &lt;/transportinfo&gt; + + to obtain all 'to' addressees as a parameter: + sessionKey="TransportInfo" + xpathExpression="transportinfo/to" + type="xml" + + Result: + &lt;to&gt;***@zonnet.nl&lt;/to&gt; + &lt;to&gt;***@zonnet.nl&lt;/to&gt; + </code></pre> + + N.B. to obtain a fixed value: a non-existing 'dummy' <code>sessionKey</code> in combination with the fixed value in <code>defaultValue</code> is used traditionally. + The current version of parameter supports the 'value' attribute, that is sufficient to set a fixed value. + + + + + + + Name of the parameter + + + + + The target data type of the parameter, related to the database or XSLT stylesheet to which the parameter is applied. + + + + + + + + The value of the parameter, or the base for transformation using xpathExpression or stylesheet, or formatting. + + + + + Key of a PipelineSession-variable. <br/>If specified, the value of the PipelineSession variable is used as input for + the xpathExpression or stylesheet, instead of the current input message. <br/>If no xpathExpression or stylesheet are + specified, the value itself is returned. <br/>If the value '*' is specified, all existing sessionkeys are added as + parameter of which the name starts with the name of this parameter. <br/>If also the name of the parameter has the + value '*' then all existing sessionkeys are added as parameter (except tsReceived) + + + + + key of message context variable to use as source, instead of the message found from input message or sessionKey itself + + + + + Instead of a fixed <code>sessionKey</code> it's also possible to use a XPath expression applied to the input message to extract the name of the session-variable. + + + + + URL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable. + + + + + the XPath expression to extract the parameter value from the (xml formatted) input or session-variable. + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect * @ff.default 0 + + + + + Namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of + <code>prefix=namespaceuri</code>-definitions. One entry can be without a prefix, that will define the default namespace. + + + + + When set <code>true</code> namespaces (and prefixes) in the input message are removed before the stylesheet/xpathExpression is executed Default: <code>false</code> + + + + + If the result of sessionKey, xpathExpression and/or stylesheet returns null or an empty string, this value is returned + + + + + Comma separated list of methods (<code>defaultValue</code>, <code>sessionKey</code>, <code>pattern</code>, <code>value</code> or <code>input</code>) to use as default value. Used in the order they appear until a non-null value is found. Default: <code>defaultValue</code> + + + + + Value of parameter is determined using substitution and formatting, following MessageFormat syntax with named parameters. The expression can contain references + to session-variables or other parameters using {name-of-parameter} and is formatted using java.text.MessageFormat. + <br/>If for instance <code>fname</code> is a parameter or session variable that resolves to Eric, then the pattern + 'Hi {fname}, how do you do?' resolves to 'Hi Eric, do you do?'.<br/> + The following predefined reference can be used in the expression too:<ul> + <li>{now}: the current system time</li> + <li>{uid}: an unique identifier, based on the IP address and java.rmi.server.UID</li> + <li>{uuid}: an unique identifier, based on the IP address and java.util.UUID</li> + <li>{hostname}: the name of the machine the application runs on</li> + <li>{username}: username from the credentials found using authAlias, or the username attribute</li> + <li>{password}: password from the credentials found using authAlias, or the password attribute</li> + <li>{fixeddate}: fake date, for testing only</li> + <li>{fixeduid}: fake uid, for testing only</li> + <li>{fixedhostname}: fake hostname, for testing only</li> + </ul> + A guid can be generated using {hostname}_{uid}, see also + <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/server/uid.html">http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/server/uid.html</a> for more information about (g)uid's or + <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/uuid.html">http://docs.oracle.com/javase/1.5.0/docs/api/java/util/uuid.html</a> for more information about uuid's. + <br/> + When combining a date or time <code>pattern</code> like {now} or {fixeddate} with a DATE, TIME, DATETIME or TIMESTAMP <code>type</code>, the effective value of the attribute + <code>formatString</code> must match the effective value of the formatString in the <code>pattern</code>. + + + + + Alias used to obtain username and password, used when a <code>pattern</code> containing {username} or {password} is specified + + + + + Default username that is used when a <code>pattern</code> containing {username} is specified + + + + + Default password that is used when a <code>pattern</code> containing {password} is specified + + + + + If set <code>true</code> pattern elements that cannot be resolved to a parameter or sessionKey are silently resolved to an empty string + + + + + Used in combination with types <code>DATE</code>, <code>TIME</code>, <code>DATETIME</code> and <code>TIMESTAMP</code> to parse the raw parameter string data into an object of the respective type Default: depends on type + + + + + Used in combination with type <code>NUMBER</code> Default: system default + + + + + Used in combination with type <code>NUMBER</code> Default: system default + + + + + If set (>=0) and the length of the value of the parameter falls short of this minimum length, the value is padded Default: -1 + + + + + If set (>=0) and the length of the value of the parameter exceeds this maximum length, the length is trimmed to this maximum length Default: -1 + + + + + Used in combination with type <code>number</code>; if set and the value of the parameter exceeds this maximum value, this maximum value is taken + + + + + Used in combination with type <code>number</code>; if set and the value of the parameter falls short of this minimum value, this minimum value is taken + + + + + If set to <code>true</code>, the value of the parameter will not be shown in the log (replaced by asterisks) Default: <code>false</code> + + + + + Set the mode of the parameter, which determines if the parameter is an INPUT, OUTPUT, or INOUT. + This parameter only has effect for nl.nn.adapterframework.jdbc.StoredProcedureQuerySender. + An OUTPUT parameter does not need to have a value specified, but does need to have the type specified. + Parameter values will not be updated, but output values will be put into the result of the + nl.nn.adapterframework.jdbc.StoredProcedureQuerySender. + <b/> + If not specified, the default is INPUT. + + + + + + + + + + + + + Required in each Adapter to transform incoming messages. A pipeline + is a sequence of pipes. A + pipeline also defines its allowed end states using the <code>&lt;Exits&gt;</code> + tag. + <br/><br/> + The pipes in a PipeLine may not be executed in sequential order, see PipeForward. + <br/><br/> + A pipeline gathers statistics about the messages it processes. + <br/><br/> + In the AppConstants there may be a property named <code>log.logIntermediaryResults</code> (true/false) + which indicates whether the intermediary results (between calling pipes) have to be logged. + <br/><br/> + <b>Transaction control</b><br/><br/> + THE FOLLOWING TO BE UPDATED, attribute 'transacted' replaced by 'transactionAttribute' + + If transacted is set to <code>true</code>, messages will be processed + under transaction control. Processing by XA-compliant pipes (i.e. Pipes that implement the + IXAEnabled-interface, set their transacted-attribute to <code>true</code> and use XA-compliant + resources) will then either be committed or rolled back in one transaction. + + If transacted is set to <code>true</code>, either an existing transaction + (started by a transactional receiver) is joined, or new one is created (if the message processing request + is not initiated by a receiver under transaction control. + Messages are only committed or rolled back by the Pipeline if it started the transaction itself. If + the pipeline joined an existing transaction, the commit or rollback is left to the object that started + the transaction, i.e. the receiver. In the latter case the pipeline can indicate to the receiver that the + transaction should be rolled back (by calling UserTransaction.setRollBackOnly()). + + The choice whether to either commit (by Pipeline or Receiver) or rollback (by Pipeline or Receiver) + is made as follows: + + If the processing of the message concluded without exceptions and the status of the transaction is + STATUS_ACTIVE (i.e. normal) the transaction will be committed. Otherwise it will be rolled back, + or marked for roll back by the calling party. + + + + + + + + + + + + + + + Name of the first pipe to execute when a message is to be processed Default: first pipe of the pipeline + + + + + Maximum number of threads that may execute this Pipeline simultaneously, use 0 to disable limit Default: 0 + + + + + If set <code>true</code> the original message without namespaces (and prefixes) is stored under the session key originalMessageWithoutNamespaces Default: false + + + + + If messageSizeWarn>=0 and the size of the input or result pipe message exceeds the value specified a warning message is logged. You can specify the value with the suffixes <code>KB</code>, <code>MB</code> or <code>GB</code> Default: application default (3MB) + + + + + when specified and <code>null</code> is received as a message the message is changed to the specified value + + + + + + + + + + + + Appears inside a pipe and defines what pipe or exit to execute next. When the + execution of a pipe is done, the pipe looks up the next pipe or exit to execute. + This pipe or exit is searched based on a key that describes what happened during + pipe execution. For example a FixedResultPipe searches for key + <code>filenotfound</code> if it tried to read a file that did not exist, + preventing it from producing the desired output message. If there was + no error, the FixedResultPipe searches for key <code>success</code>. + <br/><br/> + Each <code>&lt;Forward&gt;</code> tag is used to link a search key (<code>name</code> attribute) + to a pipe or exit to execute next (<code>path</code> attribute). The forward's <code>path</code> + attribute references the target pipe or exit by its <code>name</code> attribute, see + AbstractPipe and PipeLineExit. For most pipes and most keys, the next + pipe is executed if no forward is found. By default, the pipes in a pipeline are executed consecutively. + + + + the <code>name</code> is a symbolic reference to a <code>path</code>.<br/> + + + + + The name of the next Pipe or Exit. When the Pipeline doesn't have an Exits element configured it will be + initialized with one Exit having name READY and state SUCCESS + + + + + + + + + + Locker of scheduler jobs and pipes. + + Tries to set a lock (by inserting a record in the database table IbisLock) and only if this is done + successfully the job is executed. + + For an Oracle database the following objects are used: + <pre> + CREATE TABLE &lt;schema_owner&gt;.IBISLOCK + ( + OBJECTID VARCHAR2(100 CHAR), + TYPE CHAR(1 CHAR), + HOST VARCHAR2(100 CHAR), + CREATIONDATE TIMESTAMP(6), + EXPIRYDATE TIMESTAMP(6) + CONSTRAINT PK_IBISLOCK PRIMARY KEY (OBJECTID) + ); + + CREATE INDEX &lt;schema_owner&gt;.IX_IBISLOCK ON &lt;schema_owner&gt;.IBISLOCK + (EXPIRYDATE); + + GRANT DELETE, INSERT, SELECT, UPDATE ON &lt;schema_owner&gt;.IBISLOCK TO &lt;rolename&gt;; + GRANT SELECT ON SYS.DBA_PENDING_TRANSACTIONS TO &lt;rolename&gt;; + + COMMIT; + </pre> + + + + Identifier for this lock + + + + + Type for this lock: P(ermanent) or T(emporary). A temporary lock is released after the job has completed Default: T + + + + + + + + Format for date which is added after <code>objectid</code> (e.g. yyyyMMdd to be sure the job is executed only once a day) + + + + + The time (for type=P in days and for type=T in hours) to keep the record in the database before making it eligible for deletion by a cleanup process Default: 30 days (type=P), 4 hours (type=T) + + + + + The number of times an attempt should be made to acquire a lock, after this many times an exception is thrown when no lock could be acquired, when -1 the number of retries is unlimited Default: 0 + + + + + The time in ms to wait before the first attempt to acquire a lock is made Default: 0 + + + + + The time in ms to wait before another attempt to acquire a lock is made Default: 10000 + + + + + If > 0: The time in s to wait before the INSERT statement to obtain the lock is canceled. N.B. On Oracle hitting this lockWaitTimeout may cause the error: (SQLRecoverableException) SQLState [08003], errorCode [17008] connection closed Default: 0 + + + + + If set <code>true</code> and the IBISLOCK table does not exist in the database, the process continues as if the lock was obtained + + + + + The <code>transactionAttribute</code> declares transactional behavior of execution. It applies both to database transactions and XA transactions. + The pipeline uses this to start a new transaction or suspend the current one when required. + For developers: it is equal to <a href=\"https://docs.oracle.com/javaee/7/tutorial/transactions003.htm\">EJB transaction attribute</a>. + Possible values for transactionAttribute: + <table border=\"1\"> + <tr><th>transactionAttribute</th><th>callers Transaction</th><th>Pipeline excecuted in Transaction</th></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Required</td> <td>none</td><td>T2</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">RequiresNew</td> <td>none</td><td>T2</td></tr> + <tr><td>T1</td> <td>T2</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Mandatory</td> <td>none</td><td>error</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">NotSupported</td><td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>none</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Supports</td> <td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Never</td> <td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>error</td></tr> + </table> Default: Supports + + + + + + + + Timeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default) + + + + + + Authentication alias used to authenticate when connecting to database + + + + + User name for authentication when connecting to database, when none found from <code>authAlias</code> + + + + + Password for authentication when connecting to database, when none found from <code>authAlias</code> + + + + + controls the use of transactions + + + + + + + + + + + + + + + + Name of the sender or the listener + + + + + + + + + + Pipeline exit container in which all (required) Exits must be defined. + Multiple exits may be provided each with their unique name. + <br/><br/> + If no exits are specified, a default one is created with name="READY" and state="SUCCESS". + <br/><br/> + <b>example:</b> <code><pre> + &lt;Exits&gt; + &lt;Exit name="READY" state="SUCCESS" /&gt; + &lt;Exit name="Created" state="ERROR" code="201" empty="true" /&gt; + &lt;Exit name="NotModified" state="ERROR" code="304" empty="true" /&gt; + &lt;Exit name="BadRequest" state="ERROR" code="400" empty="true" /&gt; + &lt;Exit name="NotAuthorized" state="ERROR" code="401" empty="true" /&gt; + &lt;Exit name="NotAllowed" state="ERROR" code="403" empty="true" /&gt; + &lt;Exit name="Teapot" state="SUCCESS" code="418" /&gt; + &lt;Exit name="ServerError" state="ERROR" code="500" /&gt; + &lt;/Exits&gt; + </pre></code> + + + + + + + + + + + + The Exit of a Pipeline that specifies the end state of a PipeLine. The state is returned to the receiver as well as + the optionally specified http status code. Each Exit should have a unique name. See Exits + for examples. + <br/><br/> + When a Pipeline doesn't have an Exits element configured it will be initialized with one Exit having name READY and + state SUCCESS. + <br/><br/> + The name of an Exit can be referenced by the <code>path</code> attribute of a Forward within a Pipe. + + + + The name of the Exit that can be referenced by a PipeForward's <code>path</code> attribute. When a Pipeline doesn't have an Exits + element configured it will be initialized with one Exit having name READY (and state SUCCESS) + + + + + The state of the Pipeline that is returned to the Receiver for this Exit. When a Pipeline doesn't have an Exits + element configured it will be initialized with one Exit having state SUCCESS (and name READY) + + + + + + + + HTTP statusCode e.g. <code>500</code> Default: 200 + + + + + Configures the responseRoot in the OpenAPI schema for this exit. If not set, the responseRoot value of the validator will be used. If that contains multiple (comma separated) values, the first will be used for the exits with state <code>SUCCESS</code>, the last for the other exits. + + + + + If using RestListener and set to <code>true</code>, this removes the output and shows a blank page, the output is still logged in the ladybug testtool Default: <code>false</code> + + + + + If set to <code>true</code>, the output will not be wrapped by the OutputWrapper. Default: <code>false</code> + + + + + If set to <code>true</code>, the output will not be validated or transformed by the validator. Default: <code>false</code> + + + + + + + + + + Optional element in a pipeline. Global forwards that will be added to every pipe, when the forward name has not been explicitly set. + For example the <code>&lt;forward name="exception" path="error_exception" /&gt;</code>, which will add the '<code>exception</code>' forward to every pipe in the pipeline. + + + + + + + + + + + + The flow contains the handlers to handle records of a specific type. + Each flow is registered to a manager using the recordHandlerManagerRef. + + + + Key under which this flow is registered in the manager + + + + + Name of the manager to be used after handling this record + + + + + Name of the recordHandler to be used to transform records of the type specified in the key (optional) + + + + + Name of the manager to which this flow must be added + + + + + Name of the resultHandler to be used to handle the transformed result + + + + + Instructs the resultHandler to start a new block before the parsed line is processed + + + + + Instructs the resultHandler to end the specified block before the parsed line is processed + + + + + Instructs the resultHandler to start a new block after the parsed line is processed + + + + + Instructs the resultHandler to end the specified block after the parsed line is processed + + + + + If <code>true</code>, any open block of this type (and other nested open 'autoClose' block) is closed before a new one of the same type is opened. At a forced close, nested blocks are closed too (since 4.9) Default: true + + + + + If &gt;0 the <code>openBlockBeforeLine</code> instruction is only performed when the current line number is a multiple of this value Default: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + Container for jobs that are scheduled for periodic execution. + + + + + + + + + + + + Cleans up a directory. + + + + directory to be cleaned up + + + + + time (with suffix 'd', 'h', 'm' or 's' in milliseconds) that must have passed at least before a file will be deleted Default: 30d + + + + + when <code>true</code>, files in subdirectories will be deleted, too Default: false + + + + + when <code>true</code>, empty subdirectories will be deleted, too Default: false + + + + + when set <code>true</code>, send warnings to logging and console about not existing directories Default: true + + + + + + + + + + + + + + + + + + + Singleton that has the different jmsRealms.<br/> + Typical use: JmsRealmFactory.getInstance().&lt;method to execute&gt; + <br/> + + + + + + + + + + + + A JmsRealm is a definition of a JMS provider, and is kind of a utility + class to prevent the tedeous work of repeatedly defining all parameters + to connect to a queue or topic. + <br/> + This class is not an extension of JNDIBase, which would be logical, because + in the JMSBase class the function PropertyUtils.copyProperties is used, which cannot + handle this. + + + + Includes another realm into this one + + + + + Set the name of this realm<br/> + + + + + Set the name of the QueueConnectionFactory<br/> + + + + + Set the name of the TopicConnectionFactory<br/> + + + + + + + + + + + + + + + + + + + + + + + Manager for Monitoring. + + + + + + + + + + + + + <p>Example configuration:</p> + <pre><code> + {@literal + <monitor name="Receiver Shutdown" destinations="MONITOR_LOG"> + <trigger className="nl.nn.adapterframework.monitoring.Alarm" severity="WARNING"> + <event>Receiver Shutdown</event> + </trigger> + <trigger className="nl.nn.adapterframework.monitoring.Clearing" severity="WARNING"> + <event>Receiver Shutdown</event> + </trigger> + </monitor> + } + + </code></pre> + + + + + + + + The functional name of the object. + + + + + + + + + + + + + + + + + + + + + + Filter on Adapters, used by Triggers. + + + + + + + Set the name of the Adapter that this AdapterFilter filters on. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Listener that allows a Receiver to receive messages as a REST webservice. + Prepends the configured URI pattern with <code>api/</code>. The structure of REST messages is described + by OpenAPI specifications. The Frank!Framework generates an OpenAPI specification for each ApiListener and + also an OpenAPI specification for all ApiListeners in all configurations. You can + find them in the Frank!Console under main menu item Webservices, heading Available ApiListeners. + The generated OpenAPI specifications have <code>servers</code> and <code>paths</code> objects and + therefore they document the full URLs of the provided services. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsListener. + + + + + + + + + + + + Microsoft Exchange Implementation of a MailListener. + + + + + + + + + + + + + + + + + + + + + FxF extension of EsbJmsListener. + + <p><b>Configuration </b><i>(where deviating from EsbJmsListener)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>destinationName</td><td>name of the JMS destination (queue or topic) to use</td><td>"jms/FileTransferAction"</td></tr> + <tr><td>jmsRealm</td><td>&nbsp;</td><td>"qcf_tibco_p2p_ff"</td></tr> + <tr><td>messageProtocol</td><td>protocol of ESB service to be called. Possible values + <ul> + <li>"FF": Fire & Forget protocol</li> + <li>"RR": Request-Reply protocol</li> + </ul></td><td>"FF"</td></tr> + </table></p> + + + + + + + + + + + + Implementation of IPullingListener that acts as an IFSA-service. + + There is no need or possibility to set the ServiceId as the Provider will receive all messages + for this Application on the same serviceQueue. + + The following session keys are set for each message: + <ul> + <li>id (the message id)</li> + <li>cid (the correlation id)</li> + <li>timestamp</li> + <li>replyTo</li> + <li>messageText</li> + <li>fullIfsaServiceName</li> + <li>ifsaServiceName</li> + <li>ifsaGroup</li> + <li>ifsaOccurrence</li> + <li>ifsaVersion</li> + </ul> + + N.B. + Starting from IFSA-jms version 2.2.10.055(beta) a feature was created to have separate service-queues for Request/Reply + and for Fire & Forget services. This allows applications to provide both types of services, each in its own transaction + mode. This options is not compatible with earlier versions of IFSA-jms. If an earlier version of IFSA-jms is deployed on + the server, this behaviour must be disabled by the following setting in DeploymentSpecifics.properties: + + <code>ifsa.provider.useSelectors=false</code> + + + + + + + + + + + + Extension of JmsListener which only stores IFSA variables with their value to simulate IFSA. + + + + + + + + + + + + + + + + + + + + + Use this listener to receive messages from other adapters or a scheduler within the same Frank-application or from other components residing in the same JVM. + JavaListeners can receive calls made via de ibis-servicedispatcher, which should be located on the JVM classpath to receive calls from other components in the JVM. If you want to call an adapter in the same Frank-application, consider using the IbisLocalSender. + <br/> + To understand what this listener does exactly, please remember that the Frank!Framework is a Java application. + The JavaListener listens to Java method calls. You can issue Java method calls using a IbisJavaSender (external call) + or IbisLocalSender (internal call). + For more information see the ibis-servicedispatcher project. + + + + + + + + + + + + JdbcListener base class. + + + + + + + + + + + + Database Listener that operates on a table having at least a key and a status field. + + + + + + + + + + + + A true multi-threaded Listener-class. + <br/> + + Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the + transacted attribute. If this is set to <code>true</code>, received messages are + committed or rolled back, possibly together with other actions, by the receiver or the pipeline. + In case of a failure, all actions within the transaction are rolled back. + + <p><b>Using jmsTransacted and acknowledgement</b><br/> + If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis. + IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within + the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to + other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the + message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct + (transactional) behaviour, transacted should be used instead of listener.transacted. + </p><p> + Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from + the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue + when the state of the Adapter equals the success state for committing. + The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the + delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages. + In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode, + since a session has lower overhead in trying to prevent duplicate messages. + </p> + <p>The setting for listener.acknowledgeMode will only be processed if + the setting for listener.transacted as well as for + listener.jmsTransacted is false.</p> + + <p>If useReplyTo is set and a replyTo-destination is + specified in the message, the JmsListener sends the result of the processing + in the pipeline to this destination. Otherwise the result is sent using the (optionally) + specified, that in turn sends the message to + whatever it is configured to.</p> + + <p>You can add parameters to the JmsListener, the values will be added as Headers to the JMS response message.</p> + + <p><b>Notice:</b> the JmsListener is ONLY capable of processing + <code>javax.jms.TextMessage</code>s <br/><br/> + </p> + + + + + + + + + + + + Common baseclass for Pulling and Pushing JMS Listeners. + + + + + + + + + + + + Read messages from the IBISSTORE database table previously stored by a + MessageStoreSender. + + Example configuration: + <code><pre> + &lt;Receiver + name="03 MessageStoreReceiver" + numThreads="4" + transactionAttribute="Required" + pollInterval="1" + &gt; + &lt;MessageStoreListener + name="03 MessageStoreListener" + slotId="${instance.name}/TestMessageStore" + statusValueInProcess="I" + /&gt; + &lt;/Receiver&gt; + </pre></code> + + If you have a <code>MessageStoreListener</code>, failed messages are automatically kept in database + table IBISSTORE. Messages are also kept after successful processing. The state of a message + is distinguished by the <code>TYPE</code> field, as follows: + <ul> + <li> <code>M</code>: The message is new. From a functional perspective, it is in the message store. + <li> <code>E</code>: There was an error processing the message. From a functional perspective, it is in the error store. + <li> <code>A</code>: The message was successfully processed. From a functional perspective, it is in the message log. + </ul> + Another way to say this is that a <code>MessageStoreListener</code> acts as a message log and as an error store. + If you have it, you do not need to add + a <code>JdbcErrorStorage</code> or <code>JdbcMessageLog</code> within the same receiver. + <br/><br/> + See /IAF_util/IAF_DatabaseChangelog.xml for the structure of table IBISSTORE. + + + + + + + + + + + + MQTT listener which will connect to a broker and subscribe to a topic. + + Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame. + + + + + + + + + + + + Implementation of IPullingListener that acts as an IFSA-service. + + There is no need or possibility to set the ServiceId as the Provider will receive all messages + for this Application on the same serviceQueue. + + The following session keys are set for each message: + <ul> + <li>id (the message id)</li> + <li>cid (the correlation id)</li> + <li>timestamp</li> + <li>replyTo</li> + <li>messageText</li> + <li>fullIfsaServiceName</li> + <li>ifsaServiceName</li> + <li>ifsaGroup</li> + <li>ifsaOccurrence</li> + <li>ifsaVersion</li> + </ul> + N.B. + Starting from IFSA-jms version 2.2.10.055(beta) a feature was created to have separate service-queues for Request/Reply + and for Fire & Forget services. This allows applications to provide both types of services, each in its own transaction + mode. This options is not compatible with earlier versions of IFSA-jms. If an earlier version of IFSA-jms is deployed on + the server, this behaviour must be disabled by the following setting in DeploymentSpecifics.properties: + + <code>ifsa.provider.useSelectors=false</code> + + + + + + + + + + + + A true multi-threaded Listener-class. + <br/> + + Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the + transacted attribute. If this is set to <code>true</code>, received messages are + committed or rolled back, possibly together with other actions, by the receiver or the pipeline. + In case of a failure, all actions within the transaction are rolled back. + + <p><b>Using jmsTransacted and acknowledgement</b><br/> + If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis. + IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within + the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to + other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the + message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct + (transactional) behaviour, transacted should be used instead of listener.transacted. +<p> + Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from + the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue + when the state of the Adapter equals the success state. + The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the + delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages. + In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode, + since a session has lower overhead in trying to prevent duplicate messages. + </p> + <p>The setting for listener.acknowledgeMode will only be processed if + the setting for listener.transacted as well as for + listener.jmsTransacted is false.</p> + + <p>If useReplyTo is set and a replyTo-destination is + specified in the message, the JmsListener sends the result of the processing + in the pipeline to this destination. Otherwise the result is sent using the (optionally) + specified Sender, that in turn sends the message to + whatever it is configured to.</p> + </p> + <p><b>Notice:</b> the JmsListener is ONLY capable of processing + <code>javax.jms.TextMessage</code>s <br/><br/> + </p> + + + + + + + + + + + + Implementation of IPortConnectedListener that acts as an IFSA-service. + + There is no need or possibility to set the ServiceId as the Provider will receive all messages + for this Application on the same serviceQueue. + + The following session keys are set for each message: + <ul> + <li>id (the message id)</li> + <li>cid (the correlation id)</li> + <li>timestamp</li> + <li>replyTo</li> + <li>messageText</li> + <li>fullIfsaServiceName</li> + <li>ifsaServiceName</li> + <li>ifsaGroup</li> + <li>ifsaOccurrence</li> + <li>ifsaVersion</li> + <li>ifsaBifName</li> + <li>ifsaBtcData</li> + </ul> + N.B. + Starting from IFSA-jms version 2.2.10.055(beta) a feature was created to have separate service-queues for Request/Reply + and for Fire & Forget services. This allows applications to provide both types of services, each in its own transaction + mode. This options is not compatible with earlier versions of IFSA-jms. If an earlier version of IFSA-jms is deployed on + the server, this behaviour must be disabled by the following setting in DeploymentSpecifics.properties: + + <code>ifsa.provider.useSelectors=false</code> + + <p> + For Fire&Forget providers, the message log might get cluttered with messages like: + <code><pre> + [1-10-08 17:10:34:382 CEST] 209d4317 ConnectionMan W J2CA0075W: An active transaction should be present while processing method allocateMCWrapper. + [1-10-08 17:10:34:382 CEST] 209d4317 ConnectionMan W J2CA0075W: An active transaction should be present while processing method initializeForUOW + </pre></code> + This is due to a IFSA requirement, that sessions be created using a parameter transacted=true, indicating + JMS transacted sessions. + </p> + + + + + + + + + + + + JMSListener re-implemented as a pushing listener rather than a pulling listener. + The JMS messages have to come in from an external source: an MDB or a Spring + message container. + + This version of the <code>JmsListener</code> supports distributed transactions using the XA-protocol. + No special action is required to have the listener join the transaction. + + <p><b>Using jmsTransacted and acknowledgement</b><br/> + If jmsTransacted is set <code>true</code>, it should ensure that a message is received and processed on + a both or nothing basis. IBIS will commit the the message, otherwise perform rollback. However, using + jmsTransacted, IBIS does not bring transactions within the adapters under transaction control, + compromising the idea of atomic transactions. In the roll-back situation messages sent to other + destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In + the failure situation the message is therefore completely processed, and the roll back does not mean + that the processing is rolled back! To obtain the correct (transactional) behaviour, set + <code>transacted</code>="true" for the enclosing Receiver. Do not use jmsTransacted for any new situation. + + </p><p> + Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from + the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue + when the state of the Adapter equals the success state. + The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the + delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages. + In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode, + since a session has lower overhead in trying to prevent duplicate messages. + </p> + <p>The setting for listener.acknowledgeMode will only be processed if + the setting for listener.transacted as well as for + listener.jmsTransacted is false.</p> + + <p>If useReplyTo is set and a replyTo-destination is + specified in the message, the JmsListener sends the result of the processing + in the pipeline to this destination. Otherwise the result is sent using the (optionally) + specified Sender, that in turn sends the message to + whatever it is configured to.</p> + + <p><b>Notice:</b> the JmsListener is ONLY capable of processing + <code>javax.jms.TextMessage</code>s <br/><br/> + </p> + + + + + + + + + + + + Listener that allows a Receiver to receive messages as a REST webservice. + Prepends the configured URI pattern with <code>rest/</code>. When you are writing a new Frank config, you are recommended + to use an ApiListener instead. You can find all serviced URI patterns + in the Frank!Console: main menu item Webservice, heading Available REST Services. + + <p> + Note: + Servlets' multipart configuration expects a Content-Type of <code>multipart/form-data</code> (see http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html). + So do not use other multipart content types like <code>multipart/related</code> + </p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Database Listener that returns a count of messages available, but does not perform any locking or + other management of processing messages in parallel. + + + + + + + + + + + + Dedicated Listener on Tibco JMS Destinations. + + + + + + + + + + + + + + + + + + + + + Listener that allows a Receiver to receive messages as a SOAP webservice. + The structure of the SOAP messages is expressed in a WSDL (Web Services Description Language) document. + The Frank!Framework generates a WSDL document for each adapter that contains WebServiceListeners. You can + find these documents in the Frank!Console under main menu item Webservices, heading Available WSDL's. + The WSDL documents that we generate document how the SOAP services can be accessed. In particular, the + URL of a SOAP service can be found in an XML element <code>&lt;soap:address&gt;</code> with + <code>soap</code> pointing to namespace <code>http://schemas.xmlsoap.org/wsdl/soap/</code>. + + <br/>If <code>address</code> is set, then for each request:<ul> + <li>MIME headers are described in a 'mimeHeaders'-XML stored under session key 'mimeHeaders'</li> + <li>Attachments present in the request are described by an 'attachments'-XML stored under session key 'attachments'</li> + <li>SOAP protocol is stored under a session key 'soapProtocol'</li> + <li>SOAP action is stored under a session key 'SOAPAction'</li> + </ul> + and for each response a multipart message is constructed if a 'multipart'-XML is provided in sessionKey specified by multipartXmlSessionKey. + + + + + + + + + + + + + + + + + + + HTTP method to listen to Default: GET + + + + + + + + URI pattern to register this listener on, eq. `/my-listener/{something}/here` + + + + + The required contentType on requests, if it doesn't match the request will fail Default: ANY + + + + + + + + The specified contentType on response. When <code>ANY</code> the response will determine the content type based on the return data. Default: ANY + + + + + + + + The specified character encoding on the response contentType header. NULL or empty + values will be ignored. Default: UTF-8 + + + + + Automatically generate and validate etags Default: <code>false</code>, can be changed by setting the property <code>api.etag.enabled</code>. + + + + + Enables security for this listener. If you wish to use the application servers authorisation roles [AUTHROLE], you need to enable them globally for all ApiListeners with the `servlet.ApiListenerServlet.securityRoles=IbisTester,IbisWebService` property Default: <code>NONE</code> + + + + + + + + Only active when AuthenticationMethod=AUTHROLE. Comma separated list of authorization roles which are granted for this service, eq. IbisTester,IbisObserver", ""}) + + + + + Specify the form-part you wish to enter the pipeline Default: name of the first form-part + + + + + Name of the header which contains the Message-Id. Default: Message-Id + + + + + Name of the header which contains the Correlation-Id. Default: Correlation-Id + + + + + Unique string used to identify the operation. The id MUST be unique among all operations described in the OpenApi schema. + + + + + Comma separated list of parameters passed as http header. Parameters will be stored in 'headers' sessionkey. + + + + + Session key that provides the Content-Disposition header in the response + + + + + Issuer to validate JWT + + + + + Keysource URL to validate JWT + + + + + Header to extract JWT from + + + + + Comma separated list of required claims + + + + + Comma separated key value pairs to match with JWT payload. e.g. "sub=UnitTest, aud=test" + + + + + Claim name which specifies the role + + + + + Claim name which specifies the principal name (maps to GetPrincipalPipe) + + + + + + + + + + + Name of the listener as known to the adapter + + + + + + + + + + + + + + + + + + + + + + + + + Optional base folder, that serves as root for all other folders + + + + + + + + + + + Name of the listener + + + + + + + + + + + + + + + Determines the contents of the message that is sent to the pipeline. Can be 'name', for the filename, 'path', for the full file path, 'contents' for the contents of the file, 'info' for file information. For any other value, the attributes of the file are searched and used Default: path + + + + + + + + + + + + Charset to be used for extracting the contents + + + + + OutputFormat of message for messageType=info Default: XML + + + + + + + + + + + + + + + + + protocol of ESB service to be called + + + + + + + + if true, all JMS properties in the request starting with "ae_" are copied to the reply. Default: false + + + + + By default, the JmsListener takes the Correlation-ID (if present) as the ID that has to be used as Correlation-ID of the reply. + When set to <code>true</code>, the messageID is used as Correlation-ID of the reply. Default: if messageProtocol=<code>RR</code>: </td><td><code>true</code> + + + + + Flag if reply-to queue from the request message should be used or not. Default: if messageProtocol=<code>FF</code>: <code>false</code> + + + + + Comma separated list of all XPath keys that need to be logged. (overrides <code>msg.log.keys</code> property) + + + + + + + + + Receive timeout <i>in milliseconds</i> as specified by the JMS API, see https://docs.oracle.com/javaee/7/api/javax/jms/MessageConsumer.html#receive-long- Default: 1000 + + + + + + + + + + If <code>true</code>, messages sent are put in a SOAP envelope Default: false + + + + + + + + + + + + + + Controls whether messages are send under transaction control. + If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: false + + + + + + + + + + Alias used to obtain credentials for authentication to JMS server + + + + + + + + + + + + + + + + + + + By default, the JmsListener takes the Correlation-ID (if present) as the ID that has to be used as Correlation-ID of the reply. + When set to <code>true</code>, the messageID is used as Correlation-ID of the reply. Default: false + + + + + Receive timeout <i>in milliseconds</i> as specified by the JMS API, see https://docs.oracle.com/javaee/7/api/javax/jms/MessageConsumer.html#receive-long- Default: 1000 + + + + + Flag if reply-to queue from the request message should be used or not. Default: true + + + + + + + + + + If <code>true</code>, messages sent are put in a SOAP envelope Default: false + + + + + + + + + + + + + + + + + + + Name of the JMS destination (queue or topic) to use + + + + + + + + + + Controls whether messages are send under transaction control. + If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: false + + + + + + + + + + Alias used to obtain credentials for authentication to JMS server + + + + + + + + + + + + + + + + + + + + + + loads JNDI (and other) properties from a JmsRealm + + + + + + + + + Name of the sender or the listener + + + + + + + + + + + + + + Name of the JMS destination (queue or topic) to use + + + + + + + + + + Interval <i>in milliseconds</i> for the poll guard to check whether a successful poll was done by the receive + (https://docs.oracle.com/javaee/7/api/javax/jms/messageconsumer.html#receive-long-) since last check. If polling has stopped this will be logged + and the listener will be stopped and started in an attempt to workaround problems with polling. + Polling might stop due to bugs in the JMS driver/implementation which should be fixed by the supplier. As the poll time includes reading + and processing of the message no successful poll might be registered since the last check when message processing takes a long time, hence + while messages are being processed the check on last successful poll will be skipped. Set to -1 to disable. Default: ten times the specified timeout + + + + + + + + + + + + + + Controls whether messages are send under transaction control. + If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: false + + + + + + + + + + Alias used to obtain credentials for authentication to JMS server + + + + + + + + + + + + + The mail address of the mailbox connected to (also used for auto discovery) + + + + + Url of the Exchange server. Set to e.g. https://outlook.office365.com/EWS/Exchange.asmx to speed up startup, leave empty to use autodiscovery + + + + + Client ID that represents a registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview. + + + + + Client secret that belongs to registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Certificates and Secrets + + + + + Tenant ID that represents the tenant in which the registered application exists within Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview. + + + + + Alias used to obtain client ID and secret or username and password for authentication to Exchange mail server. + If the attribute tenantId is empty, the deprecated Basic Authentication method is used. + If the attribute tenantId is not empty, the username and password are treated as the client ID and secret. + + + + + Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is used + + + + + If empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrieved + + + + + Comma separated list of fields to try as response address Default: replyTo,from,sender,Return-Path + + + + + proxy host + + + + + proxy port Default: 8080 + + + + + proxy username + + + + + proxy password + + + + + proxy authAlias + + + + + proxy domain + + + + + Separator character used when working with multiple mailboxes, specified before the separator in the object name <code>test@organisation.com|My sub folder</code> or <code>test@organisation.com|AAMkADljZDMxYzIzLTFlMjYtNGY4Mi1hM2Y1LTc2MjE5ZjIyZmMyNABGAAAAAAAu/9EmV5M6QokBRZwID1Q6BwDXQXY+F44hRbDfTB9v8jRfAAAEUqUVAADXQXY+F44hRbDfTB9v8jRfAAKA4F+pAAA=</code>. + Please consider when moving emails across mailboxes that there will be a null value returned instead of the newly created identifier. Default: | + + + + + Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Resource url to truststore. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + + + + + + + Determines the contents of the message that is sent to the Pipeline. can be one of: + <ul> + <li><code>email</code>, for an XML containing most relevant information, except the body and the attachments</li> + <li><code>contents</code>, for the body of the message</li> + <li><code>mime</code>, for the MIME contents of the message</li> + <li><code>name</code> or <code>path</code>, for an internal handle of mail message, that can be used by a related MailFileSystemSender</li> + <li>the key of any header present in the message context</li> + </ul> Default: email + + + + + + + + Name of the listener + + + + + + + + + + + + + + + + + + + + + + Charset to be used for extracting the contents + + + + + OutputFormat of message for messageType=info Default: XML + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + FTP protocol to use Default: FTP + + + + + + + + + + + + + If <code>true</code>, passive ftp is used: before data is sent, a pasv command is issued, and the connection is set up by the server Default: true + + + + + (ftps) Transport type in case of sftp Default: SOCKS5 + + + + + + + + (ftps) Resource url to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + (ftps) Type of keystore Default: pkcs12 + + + + + + + + (ftps) Authentication alias used to obtain keystore password + + + + + (ftps) Default password to access keystore + + + + + (ftps) Alias to obtain specific certificate or key in keystore + + + + + (ftps) Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + (ftps) Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + (ftps) Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + (ftps) Resource url to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + (ftps) Type of truststore Default: jks + + + + + + + + (ftps) Authentication alias used to obtain truststore password + + + + + (ftps) Default password to access truststore + + + + + (ftps) Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + (ftps) If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + (ftps) If <code>true</code>, self signed certificates are accepted Default: false + + + + + (ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + Sets the <code>Data Channel Protection Level</code>. Default: C + + + + + + + + + + + + + + + + + + + name of the session key to store the name of the received file in Default: fxfFile + + + + + If set to <code>true</code>, the received file is moved after being processed Default: true + + + + + (only used when <code>moveProcessedFile=true</code>) <b>sibling</b> directory (related to the parent directory of the file to process) where files are stored after being processed Default: processed + + + + + (only used when <code>moveProcessedFile=true</code>) when set to <code>true</code>, the directory to move processed files in is created if it does not exist Default: false + + + + + + + + + + + + + + + + + + + Name of the WebSphere listener port that this JMS Listener binds to. Optional. + + This property is only used in EJB Deployment mode and has no effect otherwise. + If it is not set in EJB Deployment Mode, then the listener port name is + constructed by the EjbListenerPortConnector from + the Listener name, Adapter name and the Receiver name. + + + + + Controls caching of JMS objects. Must be one of CACHE_NONE, CACHE_CONNECTION, CACHE_SESSION, CACHE_CONSUMER + + + + + + + + + + + + + + + + + + Protocol of the IFSA-Service to be called. + When the protocol equals to <code>FF</code>, transacted is set to true. + + + + + + + + set the IFSA service Id, for requesters only + + + + + the ApplicationID, in the form of "IFSA://<i>AppId</i>" + + + + + The functional name of the object. + + + + + The receive timeout in milliseconds. To use the timeout defined as IFSA expiry, set this value to -1 Default: 20000 + + + + + + + + + + + + + + + + + + + + The hostname of the IMAP server + + + + + The port of the IMAP server Default: 993 + + + + + Alias used to obtain accessToken or username and password for authentication to Exchange mail server. + If the alias refers to a combination of a username and a password, the deprecated Basic Authentication method is used. + If the alias refers to a password without a username, the password is treated as the accessToken. + + + + + Username for authentication to mail server. + + + + + Password for authentication to mail server. + + + + + Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is used + + + + + Comma separated list of fields to try as response address Default: replyTo,from,sender,Return-Path + + + + + + + + + + + + + + + Internal name of the listener, as known to the adapter. An IbisLocalSender refers to this name in its <code>javaListener</code>-attribute. + + + + + External Name of the listener. An IbisJavaSender refers to this name in its <code>serviceName</code>-attribute. + + + + + Comma separated list of keys of session variables that should be returned to caller, for correct results as well as for erroneous results. + If not set (not even to an empty value), all session keys can be returned. Default: all session keys can be returned + + + + + Should the JavaListener throw a ListenerException when it occurs or return an error message Default: true + + + + + If <code>true</code>, the WSDL of the service provided by this listener will available for download Default: false + + + + + + + + + + + + + + + Primary key field of the table, used to identify messages. For optimal performance, there should be an index on this field. + + + + + Field containing the message data Default: <i>same as keyField</i> + + + + + Type of the field containing the message data Default: <i>String</i> + + + + + + + + Field containing the message Id Default: <i>same as keyField</i> + + + + + Field containing the correlationId Default: <i>same as messageIdField</i> + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + Controls whether BLOB is considered stored compressed in the database Default: true + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database. N.B. When set true, then the BLOB will be converted into a string Default: false + + + + + + + + + + + + + + + + + Authentication alias used to authenticate when connecting to database + + + + + User name for authentication when connecting to database, when none found from <code>authAlias</code> + + + + + Password for authentication when connecting to database, when none found from <code>authAlias</code> + + + + + controls the use of transactions + + + + + + + + + + + + + + + + + + + Name of the sender or the listener + + + + + + + + + + + + + Name of the table to be used + + + + + + Field containing the status of the message. For optimal performance, and index should exist that starts with this field, contains all fields that are used with a fixed value in the select condition, and end with the orderField. + + + + + + (optional) Field used to store the date and time of the last change of the statusField + + + + + (optional) Field used to store the reason of the last change of the statusField + + + + + + (optional) Value of statusField indicating row is available to be processed. If not specified, any row not having any of the other status values is considered available. + + + + + Value of statusField indicating the processing of the row resulted in an error + + + + + Value of status field indicating row is processed OK + + + + + Value of status field indicating is being processed. Can be left emtpy if database has SKIP LOCKED functionality and the Receiver can be (and is) set to Required or RequiresNew. + + + + + Value of status field indicating message is on Hold, temporarily + + + + + + + + + + + + + + + + + + + + + Identifier for this service + + + + + Comma separated list of sessionKey's to be read together with the message. Please note: corresponding MessageStoreSender must have the same value for this attribute + + + + + Name of the table to be used Default: IBISSTORE + + + + + Primary key field of the table, used to identify messages. For optimal performance, there should be an index on this field. Default: MESSAGEKEY + + + + + Field containing the message data Default: MESSAGE + + + + + Field containing the message Id Default: MESSAGEID + + + + + Field containing the correlationId Default: CORRELATIONID + + + + + Type of the field containing the message data Default: BLOB + + + + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database. N.B. When set true, then the BLOB will be converted into a string Default: <code>true</code> + + + + + Field containing the status of the message. For optimal performance, and index should exist that starts with this field, contains all fields that are used with a fixed value in the select condition, and end with the orderField. Default: TYPE + + + + + (optional) Field used to store the date and time of the last change of the statusField Default: MESSAGEDATE + + + + + (optional) Field used to store the reason of the last change of the statusField Default: COMMENTS + + + + + Value of statusField indicating row is available to be processed. If set empty, any row not having any of the other status values is considered available. Default: <code>M</code> + + + + + Value of status field indicating is being processed. Set to <code>I</code> if database has no SKIP LOCKED functionality, the Receiver cannot be set to <code>Required</code> or <code>RequiresNew</code>, or to support programmatic retry. + + + + + Value of statusField indicating the processing of the row resulted in an error Default: <code>E</code> + + + + + Value of status field indicating row is processed OK Default: <code>A</code> + + + + + Value of status field indicating message is on Hold, temporarily. If required, suggested value is <code>H</code>. + + + + + Move to messageLog after processing, as the message is already stored in the ibisstore only some fields need to be updated. When set <code>false</code>, messages are deleted after being processed Default: <code>true</code> + + + + + + + + + + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + Controls whether BLOB is considered stored compressed in the database Default: true + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a> + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a> + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#subscribe-java.lang.String-" target="_blank">MqttClient.subscribe(java.lang.String topicFilter)</a> + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a> Default: 2 + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setCleanSession-boolean-" target="_blank">MqttConnectOptions.setCleanSession(boolean cleanSession)</a> Default: true + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/persist/MqttDefaultFilePersistence.html" target="_blank">MqttDefaultFilePersistence</a> and <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html" target="_blank">MqttClient</a> + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setAutomaticReconnect-boolean-" target="_blank">MqttConnectOptions.setAutomaticReconnect(boolean automaticReconnect)</a> (apart from this recover job will also try to recover) Default: true + + + + + character encoding of received messages Default: UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + Uri pattern to match, the {uri} part in https://mydomain.com/ibis4something/rest/{uri}, where mydomain.com and ibis4something refer to 'your ibis'. + + + + + Method (e.g. GET or POST) to match + + + + + Key of session variable to store etag + + + + + Key of Session variable that determines requested content type, overrides produces + + + + + Can be either <code>/rest</code> or <code>/rest-public</code> and must correspond with the available RestListenerServlet path(s). + + + + + Indicates whether this listener supports a view (and a link should be put in the ibis console) Default: if <code>method=get</code> then <code>true</code>, else <code>false</code> + + + + + Comma separated list of authorization roles which are granted for this rest service Default: IbisAdmin,IbisDataAdmin,IbisTester,IbisObserver,IbisWebService + + + + + + + Indicates whether the parts of a multipart entity should be retrieved and put in session keys. This can only be done once! Default: true + + + + + Mediatype (e.g. XML, JSON, TEXT) the RestServiceDispatcher receives as input Default: XML + + + + + + + + Mediatype (e.g. XML, JSON, TEXT) the RestServiceDispatcher sends as output, if set to json the ibis will automatically try to convert the xml message Default: XML + + + + + + + + If set to true the ibis will automatically validate and process etags Default: false + + + + + If set to true the ibis will automatically create an etag Default: false + + + + + + + + + + + + + + + + + Type of the authentication either 'NTLM' or 'SPNEGO'. + When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGO + + + + + + + + alias used to obtain credentials for the smb share + + + + + the smb share username + + + + + the smb share password + + + + + domain, in case the user account is bound to a domain + + + + + + Key Distribution Center, typically hosted on a domain controller. + Stored in <code>java.security.krb5.kdc</code> + + + + + Kerberos Realm, case sensitive. Typically upper case and the same as the domain name. + An Active Directory domain acts as a Kerberos Realm. + Stored in <code>java.security.krb5.realm</code> + + + + + + + + + + + + + + + + + + + Name of the SapSystem used by this object + + + + + Name of the RFC-destination to be registered in the SAP system + + + + + The number of connections that should be registered at the gateway Default: 2 + + + + + + + + Name of the Ibis-object + + + + + + + + + + + + + + + Name of the Ibis-object + + + + + Name of the SapSystem used by this object + + + + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + alias to obtain credentials to authenticate on proxy + + + + + Default user name in case proxy requires authentication + + + + + Default password in case proxy requires authentication + + + + + Transport type in case of sftp Default: SOCKS5 + + + + + + + + Optional preferred encryption from client to server for sftp protocol + + + + + Optional preferred encryption from server to client for sftp protocol + + + + + Path to private key file for sftp authentication + + + + + Name of the alias to obtain credentials for passphrase of private key file + + + + + Passphrase of private key file + + + + + Path to file with knownhosts + + + + + Verify the hosts againt the knownhosts file. Default: true + + + + + + + + + + + + + + + count query that returns the number of available records. when there are available records the pipeline is activated + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If <code>true</code> the SOAP envelope is removed from received messages and a SOAP envelope is added to returned messages (SOAP envelope will not be visible to the pipeline) Default: true + + + + + Namespace of the service that is provided by the adapter of this listener. + If specified, requests posted to https://mydomain.com/ibis4something/servlet/rpcrouter that have this namespace in their body will be handled by this listener, + where mydomain.com and ibis4something refer to 'your ibis'. + + + + + + The address to listen to, e.g the part &lt;address&gt; in https://mydomain.com/ibis4something/services/&lt;address&gt;, + where mydomain.com and ibis4something refer to 'your ibis'. + + + + + If set, MTOM is enabled on the SOAP binding + + + + + Comma separated list of session keys to hold contents of attachments of the request + + + + + Key of session variable that holds the description (name, sessionKey, mimeType) of the parts present in the request. Only used if attachmentSessionKeys are specified Default: multipartXml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + General Cache provider. + + N.B. the default values shown can be overridden using properties in appConstants. The property names are found by prefixing the attribute name with <code>cache.default.</code>. + + + + + + + + + + + + + + + + + + + The maximum number of elements in memory, before they are evicted Default: 100 + + + + + Either <code>LRU</code>=Least Recent Use,<code>LFU</code>=Least Frequent Use or <code>FIFO</code>=First In - First Out Default: LRU + + + + + If <code>true</code>, the elements in the cache are eternal, i.e. never expire Default: false + + + + + The amount of time <i>in seconds</i> to live for an element from its creation date Default: 36000 + + + + + The amount of time <i>in seconds</i> to live for an element from its last accessed or modified date Default: 36000 + + + + + If <code>true</code>, the elements that are evicted from memory are spooled to disk Default: false + + + + + The maximum number of elements on disk, before they are removed Default: 10000 + + + + + If <code>true</code>, the the cache is reloaded after the JVM restarts Default: false + + + + + How often to run the disk store expiry thread Default: 600 + + + + + + + + + + + name of the cache, will be lowercased Default: <code>&lt;ownerName&gt;</code>_cache + + + + + xpath expression to extract cache key from request message + + + + + output type of xpath expression to extract cache key from request message Default: text + + + + + + + + namespace defintions for keyxpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + stylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messages + + + + + session key to use as input for transformation of request message to key by keyxpath or keystylesheet + + + + + controls whether empty keys are used for caching. when set true, cache entries with empty keys can exist. Default: false + + + + + xpath expression to extract value to be cached key from response message. Use in combination with cacheEmptyValues to inhibit caching for certain groups of response messages + + + + + + + + + + namespace defintions for valuexpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + stylesheet to extract value to be cached from response message + + + + + session key to use as input for transformation of response message to cached value by valuexpath or valuestylesheet + + + + + controls whether empty values will be cached. when set true, empty cache entries can exist for any key. Default: false + + + + + + + + + + Domparser om AFM-XML berichten om te zetten in edifactberichten (voor de backoffice). + + + + + + + + + + + + Sender to work with Amazon S3. + + + + + + + + + + + + Sender to obtain information from and write to a CMIS application. + + + <p> + When <code>action</code>=<code>get</code> the input (xml string) indicates the id of the document to get. This input is mandatory. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>delete</code> the input (xml string) indicates the id of the document to get. This input is mandatory. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>create</code> the input (xml string) indicates document properties to set. This input is optional. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;name&gt;Offerte&lt;/name&gt; + &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; + &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; + &lt;properties&gt; + &lt;property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz"&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name="ArrivedBy"&gt;HDN&lt;/property&gt; + &lt;property name="DocumentType"&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt; + </code></pre> + </p> + + <p> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>name</td><td>mandatory property "cmis:name". If not set the sender attribute fileNameSessionKey is used</td><td>"[unknown]"</td></tr> + <tr><td>objectTypeId</td><td>mandatory property "cmis:objectTypeId"</td><td>"cmis:document"</td></tr> + <tr><td>mediaType</td><td>the MIME type of the document to store</td><td>"application/octet-stream"</td></tr> + <tr><td>property</td><td>custom document property to set. Possible attributes: + <table border="1"> + <tr><th>name</th><th>description</th><th>default</th></tr> + <tr><td>type</td><td> + <ul> + <li><code>string</code>: renders the value</li> + <li><code>datetime</code>: converts the value to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code></li> + </ul> + </td><td>string</td></tr> + <tr><td>formatString</td><td>used in combination with <code>datetime</code></td><td>yyyy-MM-dd HH:mm:ss</td></tr> + </table></td><td>&nbsp;</td></tr> + </table> + </p> + <p> + When <code>action</code>=<code>find</code> the input (xml string) indicates the query to perform. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;query&gt; + &lt;statement&gt;select * from cmis:document&lt;/statement&gt; + &lt;maxItems&gt;10&lt;/maxItems&gt; + &lt;skipCount&gt;0&lt;/skipCount&gt; + &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; + &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; + &lt;/query&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>update</code> the input (xml string) indicates document properties to update. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;123456789&lt;/id&gt; + &lt;properties&gt; + &lt;property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz"&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name="ArrivedBy"&gt;HDN&lt;/property&gt; + &lt;property name="DocumentType"&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt; + </code></pre> + </p> + + <p> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>id</td><td>mandatory property "cmis:objectId" which indicates the document to update</td><td>&nbsp;</td></tr> + <tr><td>property</td><td>custom document property to update. See <code>action</code>=<code>create</code> for possible attributes</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + Sender that executes either its input or a fixed line, with all parametervalues appended, as a command. + + + + + + + + + + + + Sender that sleeps for a specified time, which defaults to 5000 msecs. + Useful for testing purposes. + + + + + + + + + + + + QuerySender that interprets the input message as a query, possibly with attributes. + Messages are expected to contain sql-text. + + + + + + + + + + + + Echos input to output. + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsSender. + + + + + + + + + + + + Implementation of a FileSystemSender that enables to manipulate messages in an Exchange folder. + + + + + + + + + + + + FileSystem Sender extension to handle Attachments. + + + + + + + + + + + + QuerySender that assumes a fixed query, possibly with attributes. + + <p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p> + + + + + + + + + + + + FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. + + + + + + + + + + + + + + + + + + + + + Sender for the HTTP protocol using HttpMethod. By default, any response code outside the 2xx or 3xx range + is considered an error and the <code>exception</code> forward of the SenderPipe is followed if present and if there + is no forward for the specific HTTP status code. Forwards for specific HTTP codes (e.g. "200", "201", ...) + are returned by this sender so they are available to the SenderPipe. + + <p><b>Expected message format:</b></p> + <p>GET methods expect a message looking like this: + <pre> + param_name=param_value&another_param_name=another_param_value + </pre> + <p>POST AND PUT methods expect a message similar as GET, or looking like this: + <pre> + param_name=param_value + another_param_name=another_param_value + </pre> + + Note: + When used as MTOM sender and MTOM receiver doesn't support Content-Transfer-Encoding "base64", messages without line feeds will give an error. + This can be fixed by setting the Content-Transfer-Encoding in the MTOM sender. + </p> + + + + + + + + + + + + JMS sender which will add an IMS header to the message and call the MQ specific logic. + + <p>See JmsSender for configuration</p> + + + + + + + + + + + + Posts a message to another IBIS-adapter or application in the same JVM using IbisServiceDispatcher. + + An IbisJavaSender makes a call to a Receiver with a JavaListener + or any other application in the same JVM that has registered a <code>RequestProcessor</code> with the IbisServiceDispatcher. + + <h4>configuring IbisJavaSender and JavaListener</h4> + <ul> + <li>Define a SenderPipe with an IbisJavaSender</li> + <li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a JavaListener</li> + <li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li> + </ul> + N.B. Please make sure that the IbisServiceDispatcher-1.1.jar is present on the class path of the server. + + + + + + + + + + + + Posts a message to another IBIS-adapter in the same IBIS instance. If the callee exits with an &lt;<code>exit</code>&gt; + that has state nl.nn.adapterframework.core.PipeLine.ExitState#ERROR, an error is considered to happen + in the caller which means that the <code>exception</code> forward is followed if it is present. + <p/> + <p/> + Returns exit.code as forward name to SenderPipe provided that exit.code can be parsed as integer. + For example, if the called adapter has an exit state with code + <code>2</code>, then the nl.nn.adapterframework.pipes.SenderPipe supports a forward with name <code>2</code> + that is followed when the called adapter exits with the mentioned exit. This does not work if the code is for example <code>c2</code>. + <p/> + <p/> + An IbisLocalSender makes a call to a Receiver with either a WebServiceListener + or a JavaListener. + + + + <h3>Configuration of the Adapter to be called</h3> + A call to another Adapter in the same IBIS instance is preferably made using the combination + of an IbisLocalSender and a JavaListener. If, + however, a Receiver with a WebServiceListener is already present, that can be used in some cases, too. + + <h4>configuring IbisLocalSender and JavaListener</h4> + <ul> + <li>Define a SenderPipe with an IbisLocalSender</li> + <li>Set the attribute <code>javaListener</code> to <i>yourServiceName</i></li> + <li>Do not set the attribute <code>serviceName</code></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a JavaListener</li> + <li>Set the attribute <code>name</code> to <i>yourServiceName</i></li> + <li>Do not set the attribute <code>serviceName</code>, except if the service is to be called also + from applications other than this IBIS-instance</li> + </ul> + + <h4>configuring IbisLocalSender and WebServiceListener</h4> + + <ul> + <li>Define a SenderPipe with an IbisLocalSender</li> + <li>Set the attribute <code>serviceName</code> to <i>yourIbisWebServiceName</i></li> + <li>Do not set the attribute <code>javaListener</code></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a WebServiceListener</li> + <li>Set the attribute <code>name</code> to <i>yourIbisWebServiceName</i></li> + </ul> + + + + + + + + + + + + Requires the net.bankid.merchant.library V1.06+. + Compile with Java 1.7+ + + + + + + + + + + + + + + + + + + + + + sender that sends a message to an IFSA service and, in case the MessageProtocol is RR (Request-Reply) + it waits for an reply-message. + + + + + + + + + + + + Extension of JmsSender which only adds parameters to simulate IFSA. + + <p><b>Configuration </b><i>(where deviating from JmsSender)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>messageType</td><td>type of messages. Possible values: + <ul> + <li>rr_request</li> + <li>rr_reply</li> + <li>ff_request</li> + </ul> When messageType=rr_reply, the destination is retrieved from session key <code>replyTo</code></td><td>&nbsp;</td></tr> + </table></p> + <p><b>added parameters:</b> + <table border="1"> + <tr><th>name</th><th>type</th><th>sessionKey</th><th>defaultValue</th><th>pattern</th><th>value</th><th>minLength</th><th/></tr> + <tr><td>ifsa</td><td></td><td></td><td></td><td></td><td>_IFSA_HEADER_</td><td></td><td></td></tr> + <tr><td>ifsa_api</td><td></td><td></td><td></td><td></td><td>jms_wrapper</td><td></td><td></td></tr> + <tr><td>ifsa_api_version</td><td></td><td></td><td></td><td></td><td>22.30.020</td><td></td><td></td></tr> + <tr><td>ifsa_auth_flag</td><td></td><td></td><td></td><td></td><td>1</td><td></td><td></td></tr> + <tr><td>ifsa_bif_id</td><td></td><td><code>rr_reply: </code>ifsa_bif_id</td><td></td><td><code>rr_request/ff_request: </code>${IFSAApplicationID}#{ifsa_destination}#{uid}</td><td></td><td></td><td></td></tr> + <tr><td>ifsa_bif_type</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>0<br/><code>ff_request: </code>2</td><td></td><td></td></tr> + <tr><td>ifsa_bulk</td><td></td><td></td><td></td><td></td><td>0</td><td></td><td></td></tr> + <tr><td>ifsa_bulk_auth_flag</td><td></td><td></td><td></td><td></td><td>0</td><td></td><td></td></tr> + <tr><td>ifsa_cil_version</td><td></td><td></td><td></td><td></td><td>22.30.009</td><td></td><td></td></tr> + <tr><td>ifsa_comp_algo</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_destination</td><td></td><td><code>rr_reply: </code>ifsa_source</td><td></td><td></td><td></td><td></td><td><code>rr_request/ff_request: </code>to be set in IBIS configuration</td></tr> + <tr><td>ifsa_expiry</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>${timeOutIFSARR}<br/><code>ff_request: </code>0</td><td></td><td></td></tr> + <tr><td>ifsa_header_version</td><td></td><td></td><td></td><td></td><td>02.02.000</td><td></td><td></td></tr> + <tr><td>ifsa_hop_count</td><td></td><td></td><td></td><td></td><td>000</td><td></td><td></td></tr> + <tr><td>ifsa_node_id</td><td></td><td></td><td></td><td></td><td>${ifsa_node_id}</td><td></td><td></td></tr> + <tr><td>ifsa_ori_area</td><td></td><td><code>ff_request: </code>null</td><td><code>ff_request: </code>""</td><td></td><td><code>rr_request/rr_reply: </code>${ifsa_ori_area}</td><td>60</td><td></td></tr> + <tr><td>ifsa_ori_format</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_ori_length</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_ori_rtq</td><td></td><td><code>rr_reply/ff_request: </code>null</td><td><code>rr_reply/ff_request: </code>""</td><td></td><td><code>rr_request: </code>${ifsa_ori_rtq}</td><td>48</td><td></td></tr> + <tr><td>ifsa_ori_rtqm</td><td></td><td><code>rr_reply/ff_request: </code>null</td><td><code>rr_reply/ff_request: </code>""</td><td></td><td><code>rr_request: </code>${ifsa_ori_rtqm}</td><td>48</td><td></td></tr> + <tr><td>ifsa_priority</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>3<br/><code>ff_request: </code>2</td><td></td><td></td></tr> + <tr><td>ifsa_source</td><td></td><td></td><td></td><td><code>rr_reply: </code>${IFSAApplicationID}#{ifsa_destination}</td><td><code>rr_request/ff_request: </code>${IFSAApplicationID}</td><td></td><td></td></tr> + <tr><td>ifsa_unique_id</td><td></td><td></td><td></td><td>{uid}</td><td></td><td></td><td></td></tr> + <tr><td>JMS_IBM_MsgType</td><td>integer</td><td></td><td></td><td></td><td><code>rr_request: </code>1<br/><code>rr_reply: </code>2<br/><code>ff_request: </code>8</td><td></td><td></td></tr> + </table> + </p> + + + + + + + + + + + + + + + + + + + + + Sender used to run javascript code using J2V8 or Rhino + + This sender can execute a function of a given javascript file, the result of the function will be the output of the sender. + The parameters of the javascript function to run are given as parameters by the adapter configuration + The sender doesn't accept nor uses the given input, instead for each argument for the #jsFunctionName method, + you will need to create a parameter on the sender. + It is recommended to have the result of the javascript function be of type String, as the output of the sender will be + of type String. + + + + + + + + + + + + This class sends messages with JMS. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, yielding JSON, XML or text. + JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json. + The XSLT stylesheet or XPathExpression operates on these element. + + + + + + + + + + + + Sender to obtain information from and write to an LDAP Directory. + Returns the set of attributes in an XML format. Examples are shown below. + + <h2>example</h2> + Consider the following configuration example: + <code> + <pre> + &lt;sender + className="nl.nn.adapterframework.ldap.LdapSender" + ldapProviderURL="ldap://servername:389/o=ing" + operation="read" + attributesToReturn="givenName,sn,telephoneNumber" &gt; + &lt;param name="entryName" xpathExpression="entryName" /&gt; + &lt;/sender&gt; + </pre> + </code> + <br/> + + This may result in the following output: + <code><pre> + &lt;ldap&gt; + &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; + + &lt;attributes&gt; + &lt;attribute attrID="givenName"&gt; + &lt;value&gt;Jan&lt;/value&gt; + &lt;/attribute&gt; + + &lt;attribute attrID="telephoneNumber"&gt; + &lt;value&gt;010 5131123&lt;/value&gt; + &lt;value&gt;06 23456064&lt;/value&gt; + &lt;/attribute&gt; + + &lt;attribute attrID="sn"&gt; + &lt;value&gt;Jansen&lt;/value&gt; + &lt;/attribute&gt; + &lt;/attributes&gt; + &lt;/ldap&gt; + </pre></code> <br/> + + Search or Read? + + Read retrieves all the attributes of the specified entry. + + Search retrieves all the entries of the specified (by entryName) context that have the specified attributes, + together with the attributes. If the specified attributes are null or empty all the attributes of all the entries within the + specified context are returned. + + Sample result of a <code>read</code> operation:<br/><code><pre> + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="employeeType" value="Extern"/&gt; + &lt;attribute name="roomNumber" value="DP 2.13.025"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + + </pre></code> <br/> + Sample result of a <code>search</code> operation:<br/><code><pre> + &lt;entries&gt; + &lt;entry name="uid=srp"&gt; + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="employeeType" value="Extern"/&gt; + &lt;attribute name="roomNumber" value="DP 2.13.025"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + &lt;/entry&gt; + &lt;entry&gt; .... &lt;/entry&gt; + ..... + &lt;/entries&gt; + </pre></code> <br/> + + + + + + + + + + + + + + + + + + + + + Sender that just logs its message. + + + + + + + + + + + + JMS sender which will call IBM WebSphere MQ specific + setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ) on the destination prior to + sending a message. This is needed when the MQ destination is not a JMS + receiver otherwise format errors occur (e.g. dots are added after every + character in the message). + + <p>See JmsSender for configuration</p> + + + + + + + + + + + + sender that sends a mail specified by an XML message. + <p> + Sample email.xml: + <code><pre> + &lt;email&gt; + &lt;recipients&gt; + &lt;recipient type="to"&gt;***@hotmail.com&lt;/recipient&gt; + &lt;recipient type="cc"&gt;***@gmail.com&lt;/recipient&gt; + &lt;/recipients&gt; + &lt;from name="*** ***"&gt;***@yahoo.com&lt;/from&gt; + &lt;subject&gt;This is the subject&lt;/subject&gt; + &lt;threadTopic&gt;subject&lt;/threadTopic&gt; + &lt;message&gt;This is the message&lt;/message&gt; + &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; + &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; + &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; + &lt;attachments&gt; + &lt;attachment name="filename1.txt"&gt;This is the first attachment&lt;/attachment&gt; + &lt;attachment name="filename2.pdf" base64="true"&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; + &lt;attachment name="filename3.pdf" url="file:/c:/filename3.pdf"/&gt; + &lt;attachment name="filename4.pdf" sessionKey="fileContent"/&gt; + &lt;/attachments&gt;&lt;!-- Optional --&gt; + &lt;/email&gt; + </pre></code> + </p><p> + Notice: the XML message must be valid XML. Therefore, especially the message element + must be plain text or be wrapped as CDATA. Example: + <code><pre> + &lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt; + </pre></code> + </p><p> + The <code>sessionKey</code> attribute for attachment can contain an inputstream or a string. Other types are not supported at this moment. + </p><p> + The attribute order for attachments is as follows: + <ol> + <li>sessionKey</li> + <li>url</li> + <li><i>value of the attachment element</i></li> + </ol> + </p><p> + The <code>base64</code> attribute is only used when the value of the PipeLineSession variable <code>sessionKey</code> is a String object + or when the value of the attachment element is used. If <code>base64=true</code> then the value will be decoded before it's used. + </p><p> + <b>Compilation and Deployment Note:</b> mail.jar (v1.2) and activation.jar must appear BEFORE j2ee.jar. + Otherwise errors like the following might occur: <code>NoClassDefFoundException: com/sun/mail/util/MailDateFormat</code> + </p> + + + + + + + + + + + + Send messages to the IBISSTORE database table to have them processed exactly-once by another + adapter which will read the messages using a MessageStoreListener. + This other adapter will process the messages asynchronously and (optionally) + under transaction control. Duplicate messages are ignored based on the + messageId (except when onlyStoreWhenMessageIdUnique is set to false), hence + the sender of the message can retry sending the message until a valid reply + is received in which case it can be certain that the message is stored in the + database table IBISSTORE. + <br/><br/> + If you have a <code>MessageStoreSender</code> it does not make sense to add a <code>JdbcMessageLog</code> + or <code>JdbcErrorStorage</code> in the same sender pipe. A <code>MessageStoreSender</code> + acts as a message log and an error store. It can be useful however to add a message log or error store + to the adapter around the sender pipe, because errors may occur before the message reaches the sender pipe. + <br/><br/> + Example configuration: + <code><pre> + &lt;SenderPipe name="Send"&gt; + &lt;MessageStoreSender + slotId="${instance.name}/TestMessageStore" + onlyStoreWhenMessageIdUnique="false" + /&gt; + &lt;/SenderPipe&gt; + </pre></code> + + + + + + + + + + + + Sender to perform action on a MongoDB database. + + + + + + + + + + + + MQTT listener which will connect to a broker and subscribe to a topic. + + Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame. + + + + + + + + + + + + Sender for Akamai NetStorage (HTTP based). + + <p>See HttpSenderBase for more arguments and parameters!</p> + + + <p><b>AuthAlias:</b></p> + <p>If you do not want to specify the nonce and the accesstoken used to authenticate with Akamai, you can use the authalias property. The username represents the nonce and the password the accesstoken.</p> + + + + + + + + + + + + Collection of Senders, that are executed all at the same time. + + + + + + + + + + + + Performs a reload on database configuration. + + <p>It is possible to set the name of the configuration with the parameter 'name'.</p> + <p>You can dynamically set 'forceReload' attribute with the parameter 'forceReload'.</p> + + + + + + + + + + + + QuerySender that writes each row in a ResultSet to a file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Registers a trigger in the scheduler so that the message is send to a javalistener + at a scheduled time. + + + + + + + + + + + + Sender that sends a mail via SendGrid v3 (cloud-based SMTP provider). + + Sample XML file can be found in the path: iaf-core/src/test/resources/emailSamplesXML/emailSample.xml + + + + + + + + + + + + Series of Senders, that are executed one after another. + + + + + + + + + + + + Wrapper for senders, that allows to get input from a session variable, and to store output in a session variable. + + + + + + + + + + + + + + + + + + + + + Collection of Senders, that are executed all at the same time. Once the results are processed, all results will be sent to the resultSender, + while the original sender will return it's result to the pipeline. + + <p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p> + + + + + + + + + + + + StoredProcedureQuerySender is used to send stored procedure queries and retrieve the result. + + <p> + The StoredProcedureQuerySender class has the following features: + <ul> + <li>It supports setting the output parameters of the stored procedure by setting 'mode' attribute of + the corresponding 'Param' to 'OUTPUT' or 'INOUT'.</li> + <li>The queryType can only be 'SELECT' or 'OTHER'. Use 'SELECT' when the stored procedure + returns a set of rows, use 'OTHER' if the stored procedure has one or more output parameters. + </li> + </ul> + </p> + <p> + All stored procedure parameters that are not fixed, so specified in the query with a {@code ?}, should + have a corresponding Parameter entry. Output parameters should have {@code mode="OUTPUT"}, or + {@code mode="INOUT"} depending on how the stored procedure is defined. + </p> + <p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p> + + + + + + + + + + + + Dedicated sender on Tibco Destinations. + + + + + + + + + + + + Sender that sends a message via a WebService based on NTLM authentication. + + + + + + + + + + + + Sender that sends a message via a WebService. + + + + + + + + + + + + XCom client voor het versturen van files via XCom. + + + + + + + + + + + + Sender for transferring files using the XFB protocol. Assumes sender input is local filename. + <br/> + Some comments from Richard Maddox (FTO) about UNIX File permissions: + <br/> + <br/> + In case of AIX or SUN systems we advise the following user and directory permissions: + <br/> + <br/> + SENDING CFT: + <br/> + - App_user must have secondary group: xfbgw + <br/> + - Folder should have ownership: app_user:xfbgw (owner:group) + <br/> + - Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder + <br/> + - Folder should have SGID bit set so that all files what is copied to this folder get group ownership xfbgw + <br/> + - send file must have rights 660 after putting the file in the send directory. + <br/> + <br/> + RECEIVING CFT: + <br/> + - App_user (the application user of customer) should have secondary group: xfbgw + <br/> + - Folder should have ownership: app_user:xfbgw (owner:group) + <br/> + - Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder + <br/> + - Folder should have SGID bit set, so that all files what is copied to this folder get group ownership xfbgw + <br/> + <br/> + There are of course more solutions to get the job done, but this is the solution we can guarantee. + + + + + + + + + + + + Sender for browsing and removing queue messages (with input and output in a XML message). + + <p> + When input root element is <code>browse</code> all queue messages are returned. + </p> + <p> + When input root element is <code>remove</code> all queue messages are removed. + </p> + <p> + <b>example (input):</b> + <code> + <pre> + &lt;browse&gt; + &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; + &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; + &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; + &lt;/browse> + </pre> + </code> + </p> + + + <p> + <b>example (browse output):</b> + <code> + <pre> + &lt;result&gt; + &lt;items count="2"&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;/items&gt; + &lt;/result&gt; + </pre> + </code> + </p> + + <p> + <b>example (remove output):</b> + <code> + <pre> + &lt;result&gt; + &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; + &lt;/result&gt; + </pre> + </code> + </p> + + + + + + + + + + + + QuerySender that transforms the input message to a query. + <br/><code><pre> + select + delete + insert + update - tableName + - columns [0..1] - column [1..n] - name + - value [0..1] + - type [0..1] one of {string;function;number;datetime;blob;clob;xmldatetime}, string by default + - decimalSeparator [0..1] only applicable for type=number + - groupingSeparator [0..1] only applicable for type=number + - formatString [0..1] only applicable for type=datetime, yyyy-MM-dd HH:mm:ss.SSS by default + - where [0..1] + - order [0..1] + <br/> + alter - sequenceName + - startWith + <br/> + sql - type [0..1] one of {select;ddl;other}, other by default + - query + <br/> + </pre></code><br/> + + + + + + + + + + + + Sender that validates the input message against a XML Schema. + + N.B. noNamespaceSchemaLocation may contain spaces, but not if the schema is stored in a .jar or .zip file on the class path. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet or XPath-expression. + + + + + + + + + + + + Sender that writes an entry to a ZipStream, similar to ZipWriterPipe with action='write'. + Filename and contents are taken from parameters. If one of the parameters is not present, the input message + is used for either filename or contents. + + + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + + + + + + + + + + + Access key to access to the AWS resources owned by the account + + + + + Secret key to access to the AWS resources owned by the account + + + + + Alias used to obtain AWS credentials + + + + + Setting this flag will result in disabling chunked encoding for all requests. Default: false + + + + + Set whether the client should be configured with global bucket access enabled. Default: false + + + + + Name of the region that the client will be created from Default: eu-west-1 + + + + + Name of the bucket to access. The bucketName can also be specified by prefixing it to the object name, separated from it by | + + + + + Proxy host + + + + + Proxy port + + + + + The S3 service endpoint, either with or without the protocol. (e.g. https://sns.us-west-1.amazonaws.com or sns.us-west-1.amazonaws.com) + + + + + Maximum concurrent connections towards S3 + + + + + + + + + + + + + + + + name of the sender + + + + + + + + + If parameter [action] is set, then the attribute action value will be overridden with the value of the parameter. + + + + + + + + Filename to operate on. If not set, the parameter filename is used. If that is not set either, the input is used + + + + + Destination for move, copy or rename. If not set, the parameter destination is used. If that is not set either, the input is used + + + + + Folder that is scanned for files when action=list. When not set, the root is scanned + + + + + If set <code>true</code>, the folder to create, write, move or copy the file to is created if it does not exist Default: false + + + + + If set <code>true</code>, for actions create, move, copy or rename, the destination file is overwritten if it already exists Default: false + + + + + For action=append: If set to a positive number, the file is rotated each day, and this number of files is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + For action=append: If set to a positive number, the file is rotated when it has reached the specified size, and the number of files specified in numberOfBackups is kept. Size is specified in plain bytes, suffixes like 'K', 'M' or 'G' are not recognized. The inputFolder must point to the directory where the file resides Default: 0 + + + + + For the actions write and append, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions move, copy, delete and list + + + + + Filter of files to be excluded when looking in inputFolder. Works with actions move, copy, delete and list + + + + + If set to <code>true</code> then the folder and the content of the non empty folder will be deleted. + + + + + If set to <code>true</code> then the system specific line separator will be appended to the file after executing the action. Works with actions write and append Default: false + + + + + Charset to be used for read and write action + + + + + If set to true then the folder will be deleted if it is empty after processing the action. Works with actions delete, readDelete and move + + + + + OutputFormat Default: XML + + + + + + + + + + + + + + + + + + + Specifies action to perform + + + + + + + + The maximum number of concurrent connections Default: 10 + + + + + The connection timeout in seconds Default: 10 + + + + + URL to connect to + + + + + Repository ID + + + + + Alias used to obtain credentials for authentication to host + + + + + Username used in authentication to host + + + + + Password used in authentication to host + + + + + BindingType CMIS protocol to use + + + + + + + + If <code>action</code>=<code>create</code> the sessionKey that contains the file to use. If <code>action</code>=<code>get</code> and <code>getProperties</code>=<code>true</code> the sessionKey to store the result in + + + + + If <code>action</code>=<code>create</code> the session key that contains the name of the file to use. If not set, the value of the property <code>filename</code> from the input message is used + + + + + If <code>action</code>=<code>create</code> the mime type used to store the document when it's not set in the input message by a property Default: 'application/octet-stream' + + + + + (Only used when <code>action</code>=<code>get</code>). If true, the content of the document is streamed to <code>fileInputStreamSessionKey</code> and all document properties are put in the result as a xml string Default: false + + + + + (Only used when <code>action</code>=<code>get</code>). If true, the attachment for the document is the sender result or, if set, stored in <code>fileInputStreamSessionKey</code>. If false, only the properties are returned Default: true + + + + + (Only used when <code>action</code>=<code>create</code>). If true, the document is created in the root folder of the repository. Otherwise the document is created in the repository Default: true + + + + + If true, the session is not closed at the end and it will be used in the next call Default: true + + + + + Override entrypoint WSDL by reading it from the classpath, overrides url attribute + + + + + Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Resource url to truststore. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + Proxy host url + + + + + Proxy host port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy Username + + + + + Proxy Password + + + + + + + + + + + + + + + + The command to be executed. Note: Executing a command in WAS requires &lt;&lt;ALL FILES&gt;&gt; execute permission to avoid that provide the absolute path of the command. Absolute path can be found with the following command 'which -a {commandName}' + + + + + The number of seconds to execute a command. If the limit is exceeded, a TimeoutException is thrown. A value of 0 means execution time is not limited Default: 0 + + + + + In case the command that will be executed contains arguments then this flag should be set to true Default: false + + + + + + + + + + + + + + + The time <i>in milliseconds</i> the thread will be put to sleep Default: 5000 [ms] + + + + + + + + + + + + + + + + + + + + + The number of seconds the driver will wait for a statement object to execute. If the limit is exceeded, a TimeoutException is thrown. A value of 0 means execution time is not limited Default: 0 + + + + + + + + + + + + Type of query to be executed Default: OTHER + + + + + + + + + + The maximum number of rows to be returned from the output of <code>select</code> queries, -1 means unlimited rows Default: -1 + + + + + The number of the first row to be returned from the output of <code>select</code> queries. Rows before this are skipped from the output. Default: 1 + + + + + + + Comma separated list of columns whose values are to be returned. Works only if the driver implements jdbc 3.0 getGeneratedKeys(). + Note: not all drivers support multiple values and returned field names may vary between drivers. + Works for H2 and Oracle. Could work for MS_SQL with a single identity column, with name GENERATED_KEYS, if a identity has been generated. Not supported for other DBMSes. + + + + + + + + If specified, the rowid of the processed row is put in the pipelinesession under the specified key (only applicable for <code>querytype=other</code>). <b>Note:</b> If multiple rows are processed a SqlException is thrown. + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + When set <code>true</code>, exclusive row-level locks are obtained on all the rows identified by the select statement (e.g. by appending ' FOR UPDATE NOWAIT SKIP LOCKED' to the end of the query) Default: false + + + + + when set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1 + + + + + + Only for querytype 'updateBlob': column that contains the BLOB to be updated Default: 1 + + + + + For querytype 'updateBlob': key of session variable that contains the data (String or InputStream) to be loaded to the BLOB. When empty, the input of the pipe, which then must be a String, is used. + For querytype 'select': key of session variable that contains the OutputStream, Writer or Filename to write the BLOB to + + + + + controls whether blobdata is stored compressed in the database Default: true + + + + + controls whether the streamed blobdata will need to be base64 <code>encode</code> or <code>decode</code> or not. + + + + + + + + Charset that is used to read and write BLOBs. This assumes the blob contains character data. + If blobCharset and blobSmartGet are not set, BLOBs are returned as bytes. Before version 7.6, blobs were base64 encoded after being read to accommodate for the fact that senders need to return a String. This is no longer the case + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database Default: false + + + + + Only for querytype 'updateClob': column that contains the CLOB to be updated Default: 1 + + + + + For querytype 'updateClob': key of session variable that contains the CLOB (String or InputStream) to be loaded to the CLOB. When empty, the input of the pipe, which then must be a String, is used. + For querytype 'select': key of session variable that contains the OutputStream, Writer or Filename to write the CLOB to + + + + + + + If true, then select queries are executed in a way that avoids taking locks, e.g. with isolation mode 'read committed' instead of 'repeatable read'. Default: false + + + + + + The type of output. If not set then defaults to old-style XML. If set to XML, new-style XML is used. EXPERIMENTAL: datatypes like numbers are not yet rendered correctly Default: false + + + + + + + + + + + + + + + + + + + hack to allow to introduce a correlationid Default: true + + + + + + + + + + + + + + + + protocol of ESB service to be called + + + + + + + + receiver timeout, in milliseconds + ff.default 20000 (20s) + + + + + if messageProtocol=<code>RR</code> then <code>deliveryMode</code> defaults to <code>NON_PERSISTENT</code> Default: not set by application + + + + + + + + if messageProtocol=<code>RR</code> then <code>replyTimeout</code> defaults to <code>timeOut</code> Default: 5000 + + + + + if messageProtocol=<code>RR</code> then <code>synchronous</code> defaults to <code>true</code> Default: false + + + + + if messageProtocol=<code>RR</code> then if <code>soapAction</code> is empty then it is derived from the element MessageHeader/To/Location in the SOAP header of the input message (if $messagingLayer='P2P' then '$applicationFunction' else '$operationName_$operationVersion) + + + + + + + + + + + + + If <code>true</code>, messages sent are put in a SOAP envelope Default: false + + + + + + + + + + + + + + + + + + + + + + + + If <code>true</code>, the sender operates in RR mode: A reply is expected, either on the queue specified in <code>replyToName</code>, or on a dynamically generated temporary queue Default: false + + + + + + + (Only for <code>synchronous</code>=<code>true</code>). Maximum time in ms to wait for a reply. 0 means no timeout. Default: 5000 + + + + + + Controls mode that messages are sent with Default: not set by application + + + + + + + + + If <code>true</code>, messages sent are put in a SOAP envelope Default: false + + + + + + + SOAPAction string sent as message property + + + + + + + + + + + + + + + + + + + The mail address of the mailbox connected to (also used for auto discovery) + + + + + Url of the Exchange server. Set to e.g. https://outlook.office365.com/EWS/Exchange.asmx to speed up startup, leave empty to use autodiscovery + + + + + Client ID that represents a registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview. + + + + + Client secret that belongs to registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Certificates and Secrets + + + + + Tenant ID that represents the tenant in which the registered application exists within Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview. + + + + + Alias used to obtain client ID and secret or username and password for authentication to Exchange mail server. + If the attribute tenantId is empty, the deprecated Basic Authentication method is used. + If the attribute tenantId is not empty, the username and password are treated as the client ID and secret. + + + + + Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is used + + + + + If empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrieved + + + + + Comma separated list of fields to try as response address Default: replyTo,from,sender,Return-Path + + + + + proxy host + + + + + proxy port Default: 8080 + + + + + proxy username + + + + + proxy password + + + + + proxy authAlias + + + + + proxy domain + + + + + Separator character used when working with multiple mailboxes, specified before the separator in the object name <code>test@organisation.com|My sub folder</code> or <code>test@organisation.com|AAMkADljZDMxYzIzLTFlMjYtNGY4Mi1hM2Y1LTc2MjE5ZjIyZmMyNABGAAAAAAAu/9EmV5M6QokBRZwID1Q6BwDXQXY+F44hRbDfTB9v8jRfAAAEUqUVAADXQXY+F44hRbDfTB9v8jRfAAKA4F+pAAA=</code>. + Please consider when moving emails across mailboxes that there will be a null value returned instead of the newly created identifier. Default: | + + + + + Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Resource url to truststore. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + + + + + + + + + + + + + + + + + The SQL query text to be excecuted each time sendMessage() is called + + + + + + + + + + + + + + + + + should values between ${ and } be resolved from the pipelinesession Default: false + + + + + Name of the file containing the result message + + + + + returned message + + + + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + FTP protocol to use Default: FTP + + + + + + + + + + + + + If <code>true</code>, passive ftp is used: before data is sent, a pasv command is issued, and the connection is set up by the server Default: true + + + + + (ftps) Transport type in case of sftp Default: SOCKS5 + + + + + + + + (ftps) Resource url to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + (ftps) Type of keystore Default: pkcs12 + + + + + + + + (ftps) Authentication alias used to obtain keystore password + + + + + (ftps) Default password to access keystore + + + + + (ftps) Alias to obtain specific certificate or key in keystore + + + + + (ftps) Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + (ftps) Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + (ftps) Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + (ftps) Resource url to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + (ftps) Type of truststore Default: jks + + + + + + + + (ftps) Authentication alias used to obtain truststore password + + + + + (ftps) Default password to access truststore + + + + + (ftps) Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + (ftps) If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + (ftps) If <code>true</code>, self signed certificates are accepted Default: false + + + + + (ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + Sets the <code>Data Channel Protection Level</code>. Default: C + + + + + + + + + + + + + + + + + + + If <code>methodType</code>=<code>POST</code>, <code>PUT</code> or <code>PATCH</code>, the type of post request Default: RAW + + + + + + + + (Only used when <code>methodType</code>=<code>POST</code> and <code>postType</code>=<code>URLENCODED</code>, <code>FORM-DATA</code> or <code>MTOM</code>) Prepends a new BodyPart using the specified name and uses the input of the Sender as content + + + + + If set, the result is streamed to the HhttpServletResponse object of the RestServiceDispatcher (instead of passed as a string) Default: false + + + + + If set and <code>methodType</code>=<code>POST</code> and <code>paramsInUrl</code>=<code>false</code>, a multipart/form-data entity is created instead of a request body. + For each part element in the session key a part in the multipart entity is created. Part elements can contain the following attributes: + <ul> + <li>name: optional, used as 'filename' in Content-Disposition</li> + <li>sessionKey: mandatory, refers to contents of part</li> + <li>mimeType: optional MIME type</li> + </ul> + The name of the part is determined by the name attribute, unless that is empty, or the contents is binary. In those cases the sessionKey name is used as name of the part. + + + + + + Specifies whether messages will encoded, e.g. spaces will be replaced by '+' etc. Default: false + + + + + If <code>true</code>, the input will be added to the URL for <code>methodType</code>=<code>GET</code>, or for <code>methodType</code>=<code>POST</code>, <code>PUT</code> or <code>PATCH</code> if <code>postType</code>=<code>RAW</code>. This used to be the default behaviour in framework version 7.7 and earlier Default: for methodType=<code>GET</code>: <code>false</code>,<br/>for methodTypes <code>POST</code>, <code>PUT</code>, <code>PATCH</code>: <code>true</code> + + + + + + + + + + + + + + + + URL or base of URL to be used + + + + + + + + + + + + (Only used when xHtml=<code>true</code>) stylesheet to apply to the HTML response + + + + + + + The functional name of the object. + + + + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The transaction code that should be added in the header, must be 8 characters + + + + + + + + + + + + + + + + ServiceName of the JavaListener that should be called. + + + + + Key of session variable to specify ServiceName of the JavaListener that should be called. + + + + + Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results. + The set of available sessionKeys to be returned might be limited by the returnedSessionKeys attribute of the corresponding JavaListener. + + + + + Currently used to mimic the HttpSender when it is stubbed locally. It could be useful in other situations too although currently the response string is used which isn't streamed, it would be better to pass the multipart as an input stream in the context map in which case content type and charset could also be passed Default: false + + + + + Set to 'DLL' to make the dispatcher communicate with a DLL set on the classpath + + + + + + + + + + + + + + + + Name of the JavaListener that should be called (will be ignored when javaListenerSessionKey is set) + + + + + Name of the sessionKey which holds the name of the JavaListener that should be called + + + + + Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results. + The set of available sessionKeys to be returned might be limited by the returnedSessionKeys attribute of the corresponding JavaListener. + + + + + If set <code>false</code>, the call is made asynchronously. This implies isolated=<code>true</code> Default: true + + + + + If <code>true</code>, the call is made in a separate thread, possibly using separate transaction Default: false + + + + + If <code>true</code>, the sender waits upon open until the called JavaListener is opened Default: true + + + + + Maximum time (in seconds) the sender waits for the listener to start. A value of -1 indicates to wait indefinitely Default: 60 + + + + + If set <code>false</code>, the xml-string \"&lt;error&gt;could not find JavaListener [...]&lt;/error&gt;\" is returned instead of throwing a senderexception Default: true + + + + + + + + + + + + + + + + + This is the contract number for iDIN the Merchant received from its Acquirer after registration, + and is used to unambiguously identify the Merchant. This number is 10-digits long, where the + first four digits are equal to the AcquirerID. + + + + + The SubID that uniquely defines the name and address of the Merchant to be used for iDIN, + if operating under different brands or trading entities. The Merchant obtains the SubID + from its Acquirer after registration for iDIN. A Merchant can request permission from + the Acquirer to use one or more SubIDs. + + + + + The web address provided by the Merchant in the transaction request that is used to redirect the + Consumer back to the Merchant after completing the authentication in the Issuer domain. The URL + does not necessarily begin with http:// or https://, it can also start with an app handler + e.g. companyname-nlservice://. + + + + + + + + The Java iDIN Software Library needs to access a keystore located in the Java classpath to + store all the required certificates + + + + + The password used to access the keystore + + + + + The AuthAlias used to access the keystore + + + + + This is the certificate owned by the Merchant. It's the private certificate + used to sign messages sent by the Merchant to the Acquirer's Routing Service platform. Its public + key is also used by the Acquirer to authenticate incoming messages from the Merchant. The + Merchant certificate must be in PKCS#12 format which has the extension .p12 or .pfx + + + + + In case the merchant certificate has been password protected + + + + + In case the merchant certificate has been password protected + + + + + This is the public certificate used to authenticate incoming messages from the Acquirer. The library + only needs its public key. The public certificate must be in PEM format (base64 ASCII) and typically + has the file extension .cer,.crt or .pem. + + + + + This is the public certificate used to authenticate incoming messages from the Acquirer. The library + only needs its public key. The public certificate must be in PEM format (base64 ASCII) and typically + has the file extension .cer,.crt or .pem. + + + + + This is the certificate owned by the Merchant. Its public key is used by the Issuer to encrypt information. + The Merchant can then use the private key to decrypt that information. The SAML certificate must be in + PKCS#12 format which has the extension .p12 or .pfx; + + + + + In case the SAML certificate has been password protected + + + + + In case the SAML certificate has been password protected + + + + + + + + + + + + + + + + + + + + + + + + + Session key in which LUW information is stored. If set, actions that share a LUW-handle will be executed using the same destination. Can only be used for synchronous functions + + + + + Name of the parameter used to indicate the name of the SapSystem used by this object if the attribute <code>sapSystemName</code> is empty Default: sapSystemName + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The hostname of the IMAP server + + + + + The port of the IMAP server Default: 993 + + + + + Alias used to obtain accessToken or username and password for authentication to Exchange mail server. + If the alias refers to a combination of a username and a password, the deprecated Basic Authentication method is used. + If the alias refers to a password without a username, the password is treated as the accessToken. + + + + + Username for authentication to mail server. + + + + + Password for authentication to mail server. + + + + + Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is used + + + + + Comma separated list of fields to try as response address Default: replyTo,from,sender,Return-Path + + + + + + + + + + + + + + + + the name of the javascript file containing the functions to run + + + + + the name of the javascript function that will be called (first) Default: main + + + + + the name of the javascript engine to be used Default: J2V8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If set, input is taken from this session key, instead of regular input + + + + + If set, this fixed value is taken as input, instead of regular input + + + + + If set <code>true</code>, the input of a pipe is restored before processing the next one Default: false + + + + + If set, the result is stored under this session key + + + + + If set, the input is stored under this session key + + + + + + + + + + + + + + + + When <code>true</code>, the xml result of the transformation is converted back to json Default: true + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions Default: j=http://www.w3.org/2013/XSL/json + + + + + + + + If true, then this sender will process the XSLT while streaming in a different thread. Can be used to switch streaming off for debugging purposes Default: set by appconstant xslt.streaming.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheet + + + + + For xpathExpression only Default: text + + + + + + + + If set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text. + Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + + + + + + + + + + If true, then this sender will process the XSLT while streaming in a different thread. Can be used to switch streaming off for debugging purposes Default: set by appconstant xslt.streaming.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheet + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some other use cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + If left empty, an the xpathExpression will match any namespace + + + + + For xpathExpression only Default: text + + + + + + + + If set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text. + Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + + + + + + + + + + + + + + + + + + Specifies LDAP operation to perform Default: read + + + + + + + + URL to context to search in, e.g. 'ldap://edsnlm01.group.intranet/ou=people, o=ing' to search in te people group of ing cds. Used to overwrite the providerURL specified in jmsRealm. + + + + + Specifies subject to perform operation on. Default: attribute + + + + + + + + Comma separated list of attributes to return. When no are attributes specified, all the attributes from the object read are returned. Default: <i>all attributes</i> + + + + + Specifies whether connection pooling is used or not Default: true when principal not set as parameter, false otherwise + + + + + Specifies the time (in ms) that is spent searching for results for operation search Default: 20000 + + + + + Key of session variable used to store cause of errors Default: errorReason + + + + + The maximum number of entries to be returned by a search query, or <code>0</code> for unlimited Default: 0 + + + + + When <code>true</code> the attributes passed by the input xml are scanned for an attribute with id unicodepwd, when found the value of this attribute will be encoded as required by active directory (a UTF-16 encoded unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server Default: false + + + + + (Only used when <code>operation=search/deepsearch</code>) when <code>true</code> the xml '&lt;ldapresult&gt;object not found&lt;/ldapresult&gt;' is returned instead of the PartialResultException 'unprocessed continuation reference(s)' Default: false + + + + + + + + + + + + + + + + Optional base folder, that serves as root for all other folders + + + + + + + + + + + + + + + + category under which messages are logged Default: name of the sender + + + + + level on which messages are logged Default: info + + + + + + + + + + + + + + + + + + + + + Name of the SMTP-host by which the messages are to be send + + + + + Port of the SMTP-host by which the messages are to be send Default: 25 + + + + + + + + + + + authAlias used to obtain credentials for authentication + + + + + + password of userid + + + + + + + Timeout <i>in milliseconds</i> for socket connection timeout and socket i/o timeouts Default: 20000 + + + + + + + + + + + + + + + + + + + + + + + + + + Comma separated list of sessionKey's to be stored together with the message. Please note: corresponding MessageStoreListener must have the same value for this attribute. + + + + + If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: <code>true</code> + + + + + + + + + + + + + + + + + + + If set to <code>true</code>, the messages are stored compressed Default: true + + + + + + + + + + + + + + + + + + + + + + + + + + If set to <code>true</code>, the messages are stored compressed Default: true + + + + + + + + If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: false + + + + + + + + + + + + + + + Name of the table messages are stored in. Default: IBISSTORE + + + + + Name of the index, to be used in hints for query optimizer too (only for Oracle). Default: IX_IBISSTORE + + + + + + + + + + + The name of the column that contains the primary key of the table Default: MESSAGEKEY + + + + + The name of the column messageIds are stored in Default: MESSAGEID + + + + + The name of the column correlation-ids are stored in Default: CORRELATIONID + + + + + The name of the column message themselves are stored in Default: MESSAGE + + + + + The name of the column the timestamp is stored in Default: MESSAGEDATE + + + + + The name of the column comments are stored in Default: COMMENTS + + + + + The name of the column the timestamp for expiry is stored in Default: EXPIRYDATE + + + + + The name of the column labels are stored in Default: LABEL + + + + + Prefix to be prefixed on all database objects (tables, indices, sequences), e.g. to access a different Oracle schema + + + + + + + + + + Regular expression to mask strings in the errorStore/logStore. Every character between to the strings in this expression will be replaced by a '*'. For example, the regular expression (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every character between keys &lt;party&gt; and &lt;/party&gt; + + + + + (Only used when hideRegex is not empty) Specifies the way to hide Default: ALL + + + + + + + + + + + + + + + + + + + The MongoDB datasource Default: mongodb.datasource.default + + + + + Database to connect to. Can be overridden by parameter database + + + + + Collection to act upon. Can be overridden by parameter collection + + + + + Action + + + + + + + + Filter. Can contain references to parameters between ?{ and }. Can be overridden by parameter filter + + + + + Limit to number of results returned. A value of 0 means 'no limit'. Can be overridden by parameter limit. Default: 0 + + + + + Only for find operation: return only the count and not the full document(s) Default: false + + + + + OutputFormat Default: JSON + + + + + + + + Format the output in easy legible way (currently only for XML) + + + + + + + + + + + + + + + + + + + + + + + + + + Only works in combination with the UPLOAD action. If set, and not specified as parameter, the sender will sign the file to be uploaded. + + + + + + + + NetStorage action to be used + + + + + + + + At the time of writing, NetStorage only supports version 1 Default: 1 + + + + + NetStorage CP Code of the storage group + + + + + The destination URL for the Akamai NetStorage. (Only the hostname, without CpCode; eq. xyz-nsu.akamaihd.net) + + + + + Login is done via a Nonce and AccessToken + + + + + Version to validate queries made to NetStorage backend. Default: 5 + + + + + Login is done via a Nonce and AccessToken + + + + + Root directory (appended to the url + cpCode) + + + + + Alias used to obtain credentials for nonce (username) and accesstoken (password) + + + + + + + + + + + + + + + (Only used when xHtml=<code>true</code>) stylesheet to apply to the HTML response + + + + + + + The functional name of the object. + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set the upper limit to the amount of concurrent threads that can be run simultaneously. Use 0 to disable. Default: 0 + + + + + + + + + + + + + + + + reload the configuration regardless of the version Default: false + + + + + + + + + + + + + + + + type of the optional status field which is set after the row is written to the file: timestamp + + + + + Key of session variable that contains the name of the file to use. + + + + + If set <code>true</code> and the file already exists, the resultset rows are written to the end of the file. Default: false + + + + + If set (and &gt;=0), this session key contains the maximum number of records which are processed. + If <code>query</code> contains a group field (3), then also following records with the same group field value as the last record are processed + + + + + + + + + + + + + + + + Shared folder name in the samba server + + + + + the smb share username + + + + + the smb share password + + + + + alias used to obtain credentials for the smb share + + + + + in case the user account is bound to a domain + + + + + controls whether hidden files are seen or not Default: false + + + + + + + + + + + + + + + + + + Type of the authentication either 'NTLM' or 'SPNEGO'. + When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGO + + + + + + + + alias used to obtain credentials for the smb share + + + + + the smb share username + + + + + the smb share password + + + + + domain, in case the user account is bound to a domain + + + + + + Key Distribution Center, typically hosted on a domain controller. + Stored in <code>java.security.krb5.kdc</code> + + + + + Kerberos Realm, case sensitive. Typically upper case and the same as the domain name. + An Active Directory domain acts as a Kerberos Realm. + Stored in <code>java.security.krb5.realm</code> + + + + + + + + + + + + + + + + + + + + + If <code>false</code>, the sender operates in RR mode: the a reply is expected from SAP, and the sender does not participate in a transaction. When <code>false</code>, the sender operates in FF mode: no reply is expected from SAP, and the sender joins the transaction, that must be present. The SAP transaction is committed right after the XA transaction is completed. Default: false + + + + + Name of the RFC-function to be called in the SAP system + + + + + Name of the parameter used to obtain the functionName from if the attribute <code>functionName</code> is empty Default: functionName + + + + + + + + + + + + + + + + expression that generates the cron trigger + + + + + job group in which the new trigger is to be created (optional) + + + + + pattern that leads to the name of the registered trigger(optional) + + + + + java listener to be called when scheduler trigger fires + + + + + + + + + + + + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + The maximum number of concurrent connections Default: 10 + + + + + The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 + + + + + Proxy host + + + + + Proxy port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy username + + + + + Proxy password + + + + + Proxy realm + + + + + resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true + + + + + Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true + + + + + Used when StaleChecking=<code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms + + + + + Secure socket protocol (such as 'SSL' and 'TLS') to use when a SSLContext object is generated. Default: SSL + + + + + + + + authAlias used to obtain credentials for authentication + + + + + + password of userid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + alias to obtain credentials to authenticate on proxy + + + + + Default user name in case proxy requires authentication + + + + + Default password in case proxy requires authentication + + + + + Transport type in case of sftp Default: SOCKS5 + + + + + + + + Optional preferred encryption from client to server for sftp protocol + + + + + Optional preferred encryption from server to client for sftp protocol + + + + + Path to private key file for sftp authentication + + + + + Name of the alias to obtain credentials for passphrase of private key file + + + + + Passphrase of private key file + + + + + Path to file with knownhosts + + + + + Verify the hosts againt the knownhosts file. Default: true + + + + + + + + + + + + + + + + Name of the sender that is considered that is considered to be the golden standard, i.e. the source of truth. Default: the first sender specified + + + + + The sender name which will process the results Default: the last sender specified + + + + + If set <code>true</code> the sender will wait for all shadows to have finished. Otherwise the collection of results will happen in a background thread. Default: false + + + + + + + + + + + + + + + + A SQL statement that calls a stored procedure. The statement should begin with the <code>CALL</code> or <code>EXEC</code> + SQL keyword depending on SQL dialect. In case of doubt, the safe choice is to always start with <code>CALL</code> and choose Oracle dialect. + + + + + The query type. For stored procedures, valid query types are JdbcQuerySenderBase.QueryType#SELECT and JdbcQuerySenderBase.QueryType#OTHER. + Use JdbcQuerySenderBase.QueryType#SELECT when your stored procedure returns a row set (not supported by Oracle and PostgreSQL). + Use JdbcQuerySenderBase.QueryType#OTHER when your stored procedure returns values via <code>OUT</code> or <code>INOUT</code> parameters, or does not return + anything at all. + <p> + Using any other value will be rejected. + </p> Default: OTHER + + + + + + + + + + + + + + + + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + + + + + The type of output. If not set then defaults to old-style XML. If set to XML, new-style XML is used. EXPERIMENTAL: datatypes like numbers are not yet rendered correctly Default: false + + + + + + + + + + + + + + + + URL (hostname and port, separated by ':') of Tibco-Server + + + + + + + + + + + + + + + + content-type of the request Default: text/html; charset=utf-8 + + + + + url or base of url to be used + + + + + timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + the maximum number of concurrent connections Default: 10 + + + + + alias used to obtain credentials for authentication to host + + + + + username used in authentication to host + + + + + password used to authenticate with the host + + + + + + + Default: 80 + + + + + the soapactionuri to be set in the requestheader + + + + + + + + + + + + + + + + when <code>true</code>, messages sent are put in a soap envelope and the soap envelope is removed from received messages (soap envelope will not be visible to the pipeline) Default: true + + + + + the soapactionuri to be set in the requestheader + + + + + parameter to obtain the soapactionuri + + + + + the encodingstyle to be set in the messageheader + + + + + controls whether soap faults generated by the application generate an exception, or are treated as 'normal' messages Default: true + + + + + the namespace of the message sent. identifies the service to be called. may be overriden by an actual namespace setting in the message to be sent + + + + + parameter to obtain the servicenamespace + + + + + namespace defintions to be added in the soap envelope tag. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + username used to obtain credentials for authentication to web services security + + + + + password used to obtain credentials for authentication to web services security + + + + + alias used to obtain credentials for authentication to web services security + + + + + when true, the password is sent digested. otherwise it is sent in clear text Default: true + + + + + + + + + + + + + + + + one of create, append or replace + + + + + + + + remote directory is prefixed witht the remote file + + + + + + + + + + characterset conversion + + + + + + + + + + + + + name of logfile for xcomtcp to be used + + + + + password of user on remote system + + + + + port of remote host + + + + + set queue off or on + + + + + hostname or tcpip adres of remote host + + + + + set between 0 (no trace) and 10 + + + + + set truncation off or on + + + + + loginname of user on remote system + + + + + remote file to create. if empty, the name is equal to the local file + + + + + directory in which to run the xcomtcp command + + + + + path to xcomtcp command + + + + + + name of the alias to obtain credentials to authenticatie on remote server + + + + + + + + + + + + + + + + Full pathname to the XFB script to be executed to transfer the file + + + + + + + + + When set to <code>true</code>, the file is copied before calling the XFB script. + Reasons to copy the file: + - XFB will rename the file (prefix it with FXB_) and delete it. + - On Linux the sticky bit (drwxrws--- wasadmin xfbgw) isn't honoured with a move (only with a copy) (on AIX the sticky bit works for both move and copy). + + + + + Prefix for the name of the copied or original filename. When the name of the original file starts with this prefix, it is removed. Otherwise this prefix is added to the filename of the copied file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + + + + + Enable full schema grammar constraint checking, including checking which + may be time-consuming or memory intensive. Currently, particle unique + attribution constraint checking and particle derivation restriction + checking are controlled by this option. + <p> + see property + http://apache.org/xml/features/validation/schema-full-checking + </p> Default: <code>false</code> + + + + + Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: false + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason + + + + + If set <code>true</code>, the input is assumed to be the name of the file to be validated. Otherwise the input itself is validated Default: false + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + If set <code>true</code>, send warnings to logging and console about syntax problems in the configured schema('s). + Alternatively, warnings can be switched off using suppression properties XSD_VALIDATION_WARNINGS_SUPPRESS_KEY, XSD_VALIDATION_ERROR_SUPPRESS_KEY and XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY Default: true + + + + + Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + + + + + If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false + + + + + If set to <code>1.0</code>, Xerces's previous XML Schema factory will be used, which would make all XSD 1.1 features illegal. The default behaviour can also be set with <code>xsd.processor.version</code> property. Default: <code>1.1</code> + + + + + + + + + + + + + + + + + + Session key used to refer to collection. Must be specified with another value if multiple CollectorPipes are active at the same time in the same session Default: collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Domparser om AFM-XML berichten om te zetten in edifactberichten (voor de backoffice). + + + + + + + + + + + + Sender to work with Amazon S3. + + + + + + + + + + + + Sender to obtain information from and write to a CMIS application. + + + <p> + When <code>action</code>=<code>get</code> the input (xml string) indicates the id of the document to get. This input is mandatory. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>delete</code> the input (xml string) indicates the id of the document to get. This input is mandatory. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>create</code> the input (xml string) indicates document properties to set. This input is optional. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;name&gt;Offerte&lt;/name&gt; + &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; + &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; + &lt;properties&gt; + &lt;property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz"&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name="ArrivedBy"&gt;HDN&lt;/property&gt; + &lt;property name="DocumentType"&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt; + </code></pre> + </p> + + <p> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>name</td><td>mandatory property "cmis:name". If not set the sender attribute fileNameSessionKey is used</td><td>"[unknown]"</td></tr> + <tr><td>objectTypeId</td><td>mandatory property "cmis:objectTypeId"</td><td>"cmis:document"</td></tr> + <tr><td>mediaType</td><td>the MIME type of the document to store</td><td>"application/octet-stream"</td></tr> + <tr><td>property</td><td>custom document property to set. Possible attributes: + <table border="1"> + <tr><th>name</th><th>description</th><th>default</th></tr> + <tr><td>type</td><td> + <ul> + <li><code>string</code>: renders the value</li> + <li><code>datetime</code>: converts the value to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code></li> + </ul> + </td><td>string</td></tr> + <tr><td>formatString</td><td>used in combination with <code>datetime</code></td><td>yyyy-MM-dd HH:mm:ss</td></tr> + </table></td><td>&nbsp;</td></tr> + </table> + </p> + <p> + When <code>action</code>=<code>find</code> the input (xml string) indicates the query to perform. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;query&gt; + &lt;statement&gt;select * from cmis:document&lt;/statement&gt; + &lt;maxItems&gt;10&lt;/maxItems&gt; + &lt;skipCount&gt;0&lt;/skipCount&gt; + &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; + &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; + &lt;/query&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>update</code> the input (xml string) indicates document properties to update. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;123456789&lt;/id&gt; + &lt;properties&gt; + &lt;property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz"&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name="ArrivedBy"&gt;HDN&lt;/property&gt; + &lt;property name="DocumentType"&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt; + </code></pre> + </p> + + <p> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>id</td><td>mandatory property "cmis:objectId" which indicates the document to update</td><td>&nbsp;</td></tr> + <tr><td>property</td><td>custom document property to update. See <code>action</code>=<code>create</code> for possible attributes</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + Sender that executes either its input or a fixed line, with all parametervalues appended, as a command. + + + + + + + + + + + + Sender that sleeps for a specified time, which defaults to 5000 msecs. + Useful for testing purposes. + + + + + + + + + + + + QuerySender that interprets the input message as a query, possibly with attributes. + Messages are expected to contain sql-text. + + + + + + + + + + + + Echos input to output. + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsSender. + + + + + + + + + + + + Implementation of a FileSystemSender that enables to manipulate messages in an Exchange folder. + + + + + + + + + + + + FileSystem Sender extension to handle Attachments. + + + + + + + + + + + + QuerySender that assumes a fixed query, possibly with attributes. + + <p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p> + + + + + + + + + + + + FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. + + + + + + + + + + + + + + + + + + + + + Sender for the HTTP protocol using HttpMethod. By default, any response code outside the 2xx or 3xx range + is considered an error and the <code>exception</code> forward of the SenderPipe is followed if present and if there + is no forward for the specific HTTP status code. Forwards for specific HTTP codes (e.g. "200", "201", ...) + are returned by this sender so they are available to the SenderPipe. + + <p><b>Expected message format:</b></p> + <p>GET methods expect a message looking like this: + <pre> + param_name=param_value&another_param_name=another_param_value + </pre> + <p>POST AND PUT methods expect a message similar as GET, or looking like this: + <pre> + param_name=param_value + another_param_name=another_param_value + </pre> + + Note: + When used as MTOM sender and MTOM receiver doesn't support Content-Transfer-Encoding "base64", messages without line feeds will give an error. + This can be fixed by setting the Content-Transfer-Encoding in the MTOM sender. + </p> + + + + + + + + + + + + JMS sender which will add an IMS header to the message and call the MQ specific logic. + + <p>See JmsSender for configuration</p> + + + + + + + + + + + + Posts a message to another IBIS-adapter or application in the same JVM using IbisServiceDispatcher. + + An IbisJavaSender makes a call to a Receiver with a JavaListener + or any other application in the same JVM that has registered a <code>RequestProcessor</code> with the IbisServiceDispatcher. + + <h4>configuring IbisJavaSender and JavaListener</h4> + <ul> + <li>Define a SenderPipe with an IbisJavaSender</li> + <li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a JavaListener</li> + <li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li> + </ul> + N.B. Please make sure that the IbisServiceDispatcher-1.1.jar is present on the class path of the server. + + + + + + + + + + + + Posts a message to another IBIS-adapter in the same IBIS instance. If the callee exits with an &lt;<code>exit</code>&gt; + that has state nl.nn.adapterframework.core.PipeLine.ExitState#ERROR, an error is considered to happen + in the caller which means that the <code>exception</code> forward is followed if it is present. + <p/> + <p/> + Returns exit.code as forward name to SenderPipe provided that exit.code can be parsed as integer. + For example, if the called adapter has an exit state with code + <code>2</code>, then the nl.nn.adapterframework.pipes.SenderPipe supports a forward with name <code>2</code> + that is followed when the called adapter exits with the mentioned exit. This does not work if the code is for example <code>c2</code>. + <p/> + <p/> + An IbisLocalSender makes a call to a Receiver with either a WebServiceListener + or a JavaListener. + + + + <h3>Configuration of the Adapter to be called</h3> + A call to another Adapter in the same IBIS instance is preferably made using the combination + of an IbisLocalSender and a JavaListener. If, + however, a Receiver with a WebServiceListener is already present, that can be used in some cases, too. + + <h4>configuring IbisLocalSender and JavaListener</h4> + <ul> + <li>Define a SenderPipe with an IbisLocalSender</li> + <li>Set the attribute <code>javaListener</code> to <i>yourServiceName</i></li> + <li>Do not set the attribute <code>serviceName</code></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a JavaListener</li> + <li>Set the attribute <code>name</code> to <i>yourServiceName</i></li> + <li>Do not set the attribute <code>serviceName</code>, except if the service is to be called also + from applications other than this IBIS-instance</li> + </ul> + + <h4>configuring IbisLocalSender and WebServiceListener</h4> + + <ul> + <li>Define a SenderPipe with an IbisLocalSender</li> + <li>Set the attribute <code>serviceName</code> to <i>yourIbisWebServiceName</i></li> + <li>Do not set the attribute <code>javaListener</code></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a WebServiceListener</li> + <li>Set the attribute <code>name</code> to <i>yourIbisWebServiceName</i></li> + </ul> + + + + + + + + + + + + Requires the net.bankid.merchant.library V1.06+. + Compile with Java 1.7+ + + + + + + + + + + + + + + + + + + + + + sender that sends a message to an IFSA service and, in case the MessageProtocol is RR (Request-Reply) + it waits for an reply-message. + + + + + + + + + + + + Extension of JmsSender which only adds parameters to simulate IFSA. + + <p><b>Configuration </b><i>(where deviating from JmsSender)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>messageType</td><td>type of messages. Possible values: + <ul> + <li>rr_request</li> + <li>rr_reply</li> + <li>ff_request</li> + </ul> When messageType=rr_reply, the destination is retrieved from session key <code>replyTo</code></td><td>&nbsp;</td></tr> + </table></p> + <p><b>added parameters:</b> + <table border="1"> + <tr><th>name</th><th>type</th><th>sessionKey</th><th>defaultValue</th><th>pattern</th><th>value</th><th>minLength</th><th/></tr> + <tr><td>ifsa</td><td></td><td></td><td></td><td></td><td>_IFSA_HEADER_</td><td></td><td></td></tr> + <tr><td>ifsa_api</td><td></td><td></td><td></td><td></td><td>jms_wrapper</td><td></td><td></td></tr> + <tr><td>ifsa_api_version</td><td></td><td></td><td></td><td></td><td>22.30.020</td><td></td><td></td></tr> + <tr><td>ifsa_auth_flag</td><td></td><td></td><td></td><td></td><td>1</td><td></td><td></td></tr> + <tr><td>ifsa_bif_id</td><td></td><td><code>rr_reply: </code>ifsa_bif_id</td><td></td><td><code>rr_request/ff_request: </code>${IFSAApplicationID}#{ifsa_destination}#{uid}</td><td></td><td></td><td></td></tr> + <tr><td>ifsa_bif_type</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>0<br/><code>ff_request: </code>2</td><td></td><td></td></tr> + <tr><td>ifsa_bulk</td><td></td><td></td><td></td><td></td><td>0</td><td></td><td></td></tr> + <tr><td>ifsa_bulk_auth_flag</td><td></td><td></td><td></td><td></td><td>0</td><td></td><td></td></tr> + <tr><td>ifsa_cil_version</td><td></td><td></td><td></td><td></td><td>22.30.009</td><td></td><td></td></tr> + <tr><td>ifsa_comp_algo</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_destination</td><td></td><td><code>rr_reply: </code>ifsa_source</td><td></td><td></td><td></td><td></td><td><code>rr_request/ff_request: </code>to be set in IBIS configuration</td></tr> + <tr><td>ifsa_expiry</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>${timeOutIFSARR}<br/><code>ff_request: </code>0</td><td></td><td></td></tr> + <tr><td>ifsa_header_version</td><td></td><td></td><td></td><td></td><td>02.02.000</td><td></td><td></td></tr> + <tr><td>ifsa_hop_count</td><td></td><td></td><td></td><td></td><td>000</td><td></td><td></td></tr> + <tr><td>ifsa_node_id</td><td></td><td></td><td></td><td></td><td>${ifsa_node_id}</td><td></td><td></td></tr> + <tr><td>ifsa_ori_area</td><td></td><td><code>ff_request: </code>null</td><td><code>ff_request: </code>""</td><td></td><td><code>rr_request/rr_reply: </code>${ifsa_ori_area}</td><td>60</td><td></td></tr> + <tr><td>ifsa_ori_format</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_ori_length</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_ori_rtq</td><td></td><td><code>rr_reply/ff_request: </code>null</td><td><code>rr_reply/ff_request: </code>""</td><td></td><td><code>rr_request: </code>${ifsa_ori_rtq}</td><td>48</td><td></td></tr> + <tr><td>ifsa_ori_rtqm</td><td></td><td><code>rr_reply/ff_request: </code>null</td><td><code>rr_reply/ff_request: </code>""</td><td></td><td><code>rr_request: </code>${ifsa_ori_rtqm}</td><td>48</td><td></td></tr> + <tr><td>ifsa_priority</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>3<br/><code>ff_request: </code>2</td><td></td><td></td></tr> + <tr><td>ifsa_source</td><td></td><td></td><td></td><td><code>rr_reply: </code>${IFSAApplicationID}#{ifsa_destination}</td><td><code>rr_request/ff_request: </code>${IFSAApplicationID}</td><td></td><td></td></tr> + <tr><td>ifsa_unique_id</td><td></td><td></td><td></td><td>{uid}</td><td></td><td></td><td></td></tr> + <tr><td>JMS_IBM_MsgType</td><td>integer</td><td></td><td></td><td></td><td><code>rr_request: </code>1<br/><code>rr_reply: </code>2<br/><code>ff_request: </code>8</td><td></td><td></td></tr> + </table> + </p> + + + + + + + + + + + + + + + + + + + + + Sender used to run javascript code using J2V8 or Rhino + + This sender can execute a function of a given javascript file, the result of the function will be the output of the sender. + The parameters of the javascript function to run are given as parameters by the adapter configuration + The sender doesn't accept nor uses the given input, instead for each argument for the #jsFunctionName method, + you will need to create a parameter on the sender. + It is recommended to have the result of the javascript function be of type String, as the output of the sender will be + of type String. + + + + + + + + + + + + This class sends messages with JMS. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, yielding JSON, XML or text. + JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json. + The XSLT stylesheet or XPathExpression operates on these element. + + + + + + + + + + + + Sender to obtain information from and write to an LDAP Directory. + Returns the set of attributes in an XML format. Examples are shown below. + + <h2>example</h2> + Consider the following configuration example: + <code> + <pre> + &lt;sender + className="nl.nn.adapterframework.ldap.LdapSender" + ldapProviderURL="ldap://servername:389/o=ing" + operation="read" + attributesToReturn="givenName,sn,telephoneNumber" &gt; + &lt;param name="entryName" xpathExpression="entryName" /&gt; + &lt;/sender&gt; + </pre> + </code> + <br/> + + This may result in the following output: + <code><pre> + &lt;ldap&gt; + &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; + + &lt;attributes&gt; + &lt;attribute attrID="givenName"&gt; + &lt;value&gt;Jan&lt;/value&gt; + &lt;/attribute&gt; + + &lt;attribute attrID="telephoneNumber"&gt; + &lt;value&gt;010 5131123&lt;/value&gt; + &lt;value&gt;06 23456064&lt;/value&gt; + &lt;/attribute&gt; + + &lt;attribute attrID="sn"&gt; + &lt;value&gt;Jansen&lt;/value&gt; + &lt;/attribute&gt; + &lt;/attributes&gt; + &lt;/ldap&gt; + </pre></code> <br/> + + Search or Read? + + Read retrieves all the attributes of the specified entry. + + Search retrieves all the entries of the specified (by entryName) context that have the specified attributes, + together with the attributes. If the specified attributes are null or empty all the attributes of all the entries within the + specified context are returned. + + Sample result of a <code>read</code> operation:<br/><code><pre> + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="employeeType" value="Extern"/&gt; + &lt;attribute name="roomNumber" value="DP 2.13.025"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + + </pre></code> <br/> + Sample result of a <code>search</code> operation:<br/><code><pre> + &lt;entries&gt; + &lt;entry name="uid=srp"&gt; + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="employeeType" value="Extern"/&gt; + &lt;attribute name="roomNumber" value="DP 2.13.025"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + &lt;/entry&gt; + &lt;entry&gt; .... &lt;/entry&gt; + ..... + &lt;/entries&gt; + </pre></code> <br/> + + + + + + + + + + + + + + + + + + + + + Sender that just logs its message. + + + + + + + + + + + + JMS sender which will call IBM WebSphere MQ specific + setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ) on the destination prior to + sending a message. This is needed when the MQ destination is not a JMS + receiver otherwise format errors occur (e.g. dots are added after every + character in the message). + + <p>See JmsSender for configuration</p> + + + + + + + + + + + + sender that sends a mail specified by an XML message. + <p> + Sample email.xml: + <code><pre> + &lt;email&gt; + &lt;recipients&gt; + &lt;recipient type="to"&gt;***@hotmail.com&lt;/recipient&gt; + &lt;recipient type="cc"&gt;***@gmail.com&lt;/recipient&gt; + &lt;/recipients&gt; + &lt;from name="*** ***"&gt;***@yahoo.com&lt;/from&gt; + &lt;subject&gt;This is the subject&lt;/subject&gt; + &lt;threadTopic&gt;subject&lt;/threadTopic&gt; + &lt;message&gt;This is the message&lt;/message&gt; + &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; + &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; + &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; + &lt;attachments&gt; + &lt;attachment name="filename1.txt"&gt;This is the first attachment&lt;/attachment&gt; + &lt;attachment name="filename2.pdf" base64="true"&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; + &lt;attachment name="filename3.pdf" url="file:/c:/filename3.pdf"/&gt; + &lt;attachment name="filename4.pdf" sessionKey="fileContent"/&gt; + &lt;/attachments&gt;&lt;!-- Optional --&gt; + &lt;/email&gt; + </pre></code> + </p><p> + Notice: the XML message must be valid XML. Therefore, especially the message element + must be plain text or be wrapped as CDATA. Example: + <code><pre> + &lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt; + </pre></code> + </p><p> + The <code>sessionKey</code> attribute for attachment can contain an inputstream or a string. Other types are not supported at this moment. + </p><p> + The attribute order for attachments is as follows: + <ol> + <li>sessionKey</li> + <li>url</li> + <li><i>value of the attachment element</i></li> + </ol> + </p><p> + The <code>base64</code> attribute is only used when the value of the PipeLineSession variable <code>sessionKey</code> is a String object + or when the value of the attachment element is used. If <code>base64=true</code> then the value will be decoded before it's used. + </p><p> + <b>Compilation and Deployment Note:</b> mail.jar (v1.2) and activation.jar must appear BEFORE j2ee.jar. + Otherwise errors like the following might occur: <code>NoClassDefFoundException: com/sun/mail/util/MailDateFormat</code> + </p> + + + + + + + + + + + + Send messages to the IBISSTORE database table to have them processed exactly-once by another + adapter which will read the messages using a MessageStoreListener. + This other adapter will process the messages asynchronously and (optionally) + under transaction control. Duplicate messages are ignored based on the + messageId (except when onlyStoreWhenMessageIdUnique is set to false), hence + the sender of the message can retry sending the message until a valid reply + is received in which case it can be certain that the message is stored in the + database table IBISSTORE. + <br/><br/> + If you have a <code>MessageStoreSender</code> it does not make sense to add a <code>JdbcMessageLog</code> + or <code>JdbcErrorStorage</code> in the same sender pipe. A <code>MessageStoreSender</code> + acts as a message log and an error store. It can be useful however to add a message log or error store + to the adapter around the sender pipe, because errors may occur before the message reaches the sender pipe. + <br/><br/> + Example configuration: + <code><pre> + &lt;SenderPipe name="Send"&gt; + &lt;MessageStoreSender + slotId="${instance.name}/TestMessageStore" + onlyStoreWhenMessageIdUnique="false" + /&gt; + &lt;/SenderPipe&gt; + </pre></code> + + + + + + + + + + + + Sender to perform action on a MongoDB database. + + + + + + + + + + + + MQTT listener which will connect to a broker and subscribe to a topic. + + Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame. + + + + + + + + + + + + Sender for Akamai NetStorage (HTTP based). + + <p>See HttpSenderBase for more arguments and parameters!</p> + + + <p><b>AuthAlias:</b></p> + <p>If you do not want to specify the nonce and the accesstoken used to authenticate with Akamai, you can use the authalias property. The username represents the nonce and the password the accesstoken.</p> + + + + + + + + + + + + Collection of Senders, that are executed all at the same time. + + + + + + + + + + + + Performs a reload on database configuration. + + <p>It is possible to set the name of the configuration with the parameter 'name'.</p> + <p>You can dynamically set 'forceReload' attribute with the parameter 'forceReload'.</p> + + + + + + + + + + + + QuerySender that writes each row in a ResultSet to a file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Registers a trigger in the scheduler so that the message is send to a javalistener + at a scheduled time. + + + + + + + + + + + + Sender that sends a mail via SendGrid v3 (cloud-based SMTP provider). + + Sample XML file can be found in the path: iaf-core/src/test/resources/emailSamplesXML/emailSample.xml + + + + + + + + + + + + Series of Senders, that are executed one after another. + + + + + + + + + + + + Wrapper for senders, that allows to get input from a session variable, and to store output in a session variable. + + + + + + + + + + + + + + + + + + + + + Collection of Senders, that are executed all at the same time. Once the results are processed, all results will be sent to the resultSender, + while the original sender will return it's result to the pipeline. + + <p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p> + + + + + + + + + + + + StoredProcedureQuerySender is used to send stored procedure queries and retrieve the result. + + <p> + The StoredProcedureQuerySender class has the following features: + <ul> + <li>It supports setting the output parameters of the stored procedure by setting 'mode' attribute of + the corresponding 'Param' to 'OUTPUT' or 'INOUT'.</li> + <li>The queryType can only be 'SELECT' or 'OTHER'. Use 'SELECT' when the stored procedure + returns a set of rows, use 'OTHER' if the stored procedure has one or more output parameters. + </li> + </ul> + </p> + <p> + All stored procedure parameters that are not fixed, so specified in the query with a {@code ?}, should + have a corresponding Parameter entry. Output parameters should have {@code mode="OUTPUT"}, or + {@code mode="INOUT"} depending on how the stored procedure is defined. + </p> + <p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p> + + + + + + + + + + + + Dedicated sender on Tibco Destinations. + + + + + + + + + + + + Sender that sends a message via a WebService based on NTLM authentication. + + + + + + + + + + + + Sender that sends a message via a WebService. + + + + + + + + + + + + XCom client voor het versturen van files via XCom. + + + + + + + + + + + + Sender for transferring files using the XFB protocol. Assumes sender input is local filename. + <br/> + Some comments from Richard Maddox (FTO) about UNIX File permissions: + <br/> + <br/> + In case of AIX or SUN systems we advise the following user and directory permissions: + <br/> + <br/> + SENDING CFT: + <br/> + - App_user must have secondary group: xfbgw + <br/> + - Folder should have ownership: app_user:xfbgw (owner:group) + <br/> + - Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder + <br/> + - Folder should have SGID bit set so that all files what is copied to this folder get group ownership xfbgw + <br/> + - send file must have rights 660 after putting the file in the send directory. + <br/> + <br/> + RECEIVING CFT: + <br/> + - App_user (the application user of customer) should have secondary group: xfbgw + <br/> + - Folder should have ownership: app_user:xfbgw (owner:group) + <br/> + - Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder + <br/> + - Folder should have SGID bit set, so that all files what is copied to this folder get group ownership xfbgw + <br/> + <br/> + There are of course more solutions to get the job done, but this is the solution we can guarantee. + + + + + + + + + + + + Sender for browsing and removing queue messages (with input and output in a XML message). + + <p> + When input root element is <code>browse</code> all queue messages are returned. + </p> + <p> + When input root element is <code>remove</code> all queue messages are removed. + </p> + <p> + <b>example (input):</b> + <code> + <pre> + &lt;browse&gt; + &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; + &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; + &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; + &lt;/browse> + </pre> + </code> + </p> + + + <p> + <b>example (browse output):</b> + <code> + <pre> + &lt;result&gt; + &lt;items count="2"&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;/items&gt; + &lt;/result&gt; + </pre> + </code> + </p> + + <p> + <b>example (remove output):</b> + <code> + <pre> + &lt;result&gt; + &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; + &lt;/result&gt; + </pre> + </code> + </p> + + + + + + + + + + + + QuerySender that transforms the input message to a query. + <br/><code><pre> + select + delete + insert + update - tableName + - columns [0..1] - column [1..n] - name + - value [0..1] + - type [0..1] one of {string;function;number;datetime;blob;clob;xmldatetime}, string by default + - decimalSeparator [0..1] only applicable for type=number + - groupingSeparator [0..1] only applicable for type=number + - formatString [0..1] only applicable for type=datetime, yyyy-MM-dd HH:mm:ss.SSS by default + - where [0..1] + - order [0..1] + <br/> + alter - sequenceName + - startWith + <br/> + sql - type [0..1] one of {select;ddl;other}, other by default + - query + <br/> + </pre></code><br/> + + + + + + + + + + + + Sender that validates the input message against a XML Schema. + + N.B. noNamespaceSchemaLocation may contain spaces, but not if the schema is stored in a .jar or .zip file on the class path. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet or XPath-expression. + + + + + + + + + + + + Sender that writes an entry to a ZipStream, similar to ZipWriterPipe with action='write'. + Filename and contents are taken from parameters. If one of the parameters is not present, the input message + is used for either filename or contents. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsTransactionalStorage. + + <p> + Depending on the <code>type</code> of the <code>TransactionalStorage</code> + one of the following messages is sent: + <ul> + <li><code>errorStore</code>: + ESB.Infrastructure.US.Log.BusinessLog.2.ExceptionLog.1.Action</li> + <li><code>messageLog</code>: + ESB.Infrastructure.US.Log.BusinessLog.2.AuditLog.1.Action</li> + </ul> + </p> + <p> + <b>Configuration </b><i>(where deviating from + JmsTransactionalStorage)</i><b>:</b> + <table border="1"> + <tr> + <th>attributes</th> + <th>description</th> + <th>default</th> + </tr> + </table> + </p> + + + + + + + + + + + + Implements a message log (<code>JdbcMessageLog</code>) or error store (<code>JdbcErrorStorage</code>) that uses database + table IBISSTORE. A <code>MessageStoreSender</code> and <code>MessageStoreListener</code> + pair implicitly includes a message log and an error store. + If you have a <code>MessageStoreSender</code> and <code>MessageStoreListener</code> + pair it is superfluous to add a <code>JdbcMessageLog</code> or <code>JdbcErrorStorage</code> + within the same sender pipe or the same receiver. + <br/><br/> + <b>Message log:</b> A message log writes messages in persistent storage for logging purposes. + When a message log appears in a receiver, it also ensures that the same message is only processed + once, even if a related pushing listener receives the same message multiple times. + <br/><br/> + <b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed. + Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders + offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled + back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When + this is done, the message is processed in the same way as messages received from the original source. + <br/><br/> + How does a message log or error store see duplicate messages? The message log or error store + always appears in combination with a sender or listener. This sender or listener determines + a key based on the sent or received message. Messages with the same key are considered to + be the same. + <br/><br/> + Storage structure is defined in /IAF_util/IAF_DatabaseChangelog.xml. If these database objects do not exist, + the Frank!Framework will try to create them. + <br/><br/> + N.B. Note on using XA transactions: + If transactions are used on Oracle, make sure that the database user can access the table SYS.DBA_PENDING_TRANSACTIONS. + If not, transactions present when the server goes down cannot be properly recovered, resulting in exceptions like: + <pre> + The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException + at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:508) + </pre> + + + + + + + + + + + + Implements a message log (<code>JmsMessageLog</code>) or error store (<code>JmsErrorStorage</code>) that uses JMS technology. + <br/><br/> + <b>Message log:</b> A message log writes messages in persistent storage for logging purposes. + When a message log appears in a receiver, it also ensures that the same message is only processed + once, even if a related pushing listener receives the same message multiple times. + <br/><br/> + <b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed. + Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders + offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled + back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When + this is done, the message is processed in the same way as messages received from the original source. + <br/><br/> + How does a message log or error store see duplicate messages? The message log or error store + always appears in combination with a sender or listener. This sender or listener determines + a key based on the sent or received message. Messages with the same key are considered to + be the same. + + + + + + + + + + + + + + + + + + + + + + + Optional identifier for this storage, to be able to share the physical storage between a number of receivers and pipes. + + + + + Possible values are <code>E</code> (error store), <code>M</code> (message store), <code>L</code> (message log for Pipe) or <code>A</code> (message log for Receiver).<br/> + Receiver will always set type to <code>E</code> for errorStorage and always set type to <code>A</code> for messageLog. SenderPipe will set type to <code>L</code> for messageLog (when type isn't specified).<br/> + See MessageStoreSender for type <code>M</code>. Default: <code>E</code> for errorStorage on Receiver<br/><code>A</code> for messageLog on Receiver<br/><code>L</code> for messageLog on Pipe + + + + + + + + + + + Timeout <i>in milliseconds</i> for receiving a message from the queue Default: 3000 + + + + + Regular expression to mask strings in the errorStore/logStore. Every character between to the strings in this expression will be replaced by a '*'. For example, the regular expression (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every character between keys &lt;party&gt; and &lt;/party&gt; + + + + + (Only used when hideRegex is not empty) Specifies the way to hide Default: ALL + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsTransactionalStorage. + + <p> + Depending on the <code>type</code> of the <code>TransactionalStorage</code> + one of the following messages is sent: + <ul> + <li><code>errorStore</code>: + ESB.Infrastructure.US.Log.BusinessLog.2.ExceptionLog.1.Action</li> + <li><code>messageLog</code>: + ESB.Infrastructure.US.Log.BusinessLog.2.AuditLog.1.Action</li> + </ul> + </p> + <p> + <b>Configuration </b><i>(where deviating from + JmsTransactionalStorage)</i><b>:</b> + <table border="1"> + <tr> + <th>attributes</th> + <th>description</th> + <th>default</th> + </tr> + </table> + </p> + + + + + + + + + + + + Implements a message log (<code>JdbcMessageLog</code>) or error store (<code>JdbcErrorStorage</code>) that uses database + table IBISSTORE. A <code>MessageStoreSender</code> and <code>MessageStoreListener</code> + pair implicitly includes a message log and an error store. + If you have a <code>MessageStoreSender</code> and <code>MessageStoreListener</code> + pair it is superfluous to add a <code>JdbcMessageLog</code> or <code>JdbcErrorStorage</code> + within the same sender pipe or the same receiver. + <br/><br/> + <b>Message log:</b> A message log writes messages in persistent storage for logging purposes. + When a message log appears in a receiver, it also ensures that the same message is only processed + once, even if a related pushing listener receives the same message multiple times. + <br/><br/> + <b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed. + Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders + offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled + back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When + this is done, the message is processed in the same way as messages received from the original source. + <br/><br/> + How does a message log or error store see duplicate messages? The message log or error store + always appears in combination with a sender or listener. This sender or listener determines + a key based on the sent or received message. Messages with the same key are considered to + be the same. + <br/><br/> + Storage structure is defined in /IAF_util/IAF_DatabaseChangelog.xml. If these database objects do not exist, + the Frank!Framework will try to create them. + <br/><br/> + N.B. Note on using XA transactions: + If transactions are used on Oracle, make sure that the database user can access the table SYS.DBA_PENDING_TRANSACTIONS. + If not, transactions present when the server goes down cannot be properly recovered, resulting in exceptions like: + <pre> + The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException + at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:508) + </pre> + + + + + + + + + + + + Implements a message log (<code>JmsMessageLog</code>) or error store (<code>JmsErrorStorage</code>) that uses JMS technology. + <br/><br/> + <b>Message log:</b> A message log writes messages in persistent storage for logging purposes. + When a message log appears in a receiver, it also ensures that the same message is only processed + once, even if a related pushing listener receives the same message multiple times. + <br/><br/> + <b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed. + Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders + offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled + back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When + this is done, the message is processed in the same way as messages received from the original source. + <br/><br/> + How does a message log or error store see duplicate messages? The message log or error store + always appears in combination with a sender or listener. This sender or listener determines + a key based on the sent or received message. Messages with the same key are considered to + be the same. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ErrorMessageFormatter that returns a fixed message with replacements. + + + + + + + + + + + + ErrorMessageFormatter that returns a soap fault message. + + + + + + + + + + + + Applies a XSLT-stylesheet to the standard error generated by an ErrorMessageFormatter. + + If the transformation does not succeed, this 'standard' error message is returned and an exception is logged. + + Hint: use <code>xpathExression="/errorMessage/@message"</code> for a single compact string as errormessage. + + + + + + + + + + + + + + + + + + + returned message + + + + + name of the file containing the resultmessage + + + + + + + + + + + + + + + + + + + + + + + + + + + URL to the stylesheet used to transform the output of the standard ErrorMessageFormatter + + + + + xPathExpression to use for transformation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to WsdlXmlValidator for API Management. + + The SOAP header can only contain the following schema (or it's empty): + <table border="1"> + <tr><th>element</th><th>level</th><th>mandatory</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>yes</td></tr> + <tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td>&nbsp;</td><td>yes</td></tr> + <tr><td>From</td><td>1</td><td>no</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>yes</td></tr> + <tr><td>ConversationId</td><td>2</td><td>yes</td></tr> + </table> + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd) + to the set of XSD's used for validation. + + + + + + + + + + + + FxF XML validator to be used with FxF3. When receiving files + (direction=receive) the message is validated against the + OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided + by Tibco) for all queues (every Ibis receiving FxF files has it's own + queue)). When sending files (direction=send) the message is validated against + the StartTransfer WSDL (ESB service provided by Tibco). + + + + + + + + + + + + <code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON. + + + + + + + + + + + + Pipe that validates the input message against a JSON Schema. + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation. + + Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply). + These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator. + Both the request and the reply are then validated by the inputValidator. + <p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p> + <table border="1"> + <tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr> + <tr><td>wsdl.${adapterName}.soapAction</td></tr> + <tr><td>wsdl.soapAction</td></tr> + </table> + + + + + + + + + + + + XmlValidator that will read the XSD's to use from a WSDL. As it extends the + SoapValidator is will also add the SOAP envelope XSD. + + + + + + + + + + + + Pipe that validates the input message against a XML Schema. + + + + + + + + + + + + <code>Pipe</code> that checks the well-formedness of the input message. + If <code>root</code> is given then this is also checked. + + + + + + + + + + + + + + + + + + + + indicates whether the message is multipart/form-data. If so, the wsdl only represents the first part, other parts are attachments. This attribute is only used for generating the 'real' wsdl which is available in the ibis console (../rest/webservices) Default: false + + + + + + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The WSDL to read the XSDs from + + + + + Name of the child element of the SOAP body, or a comma separated list of names to choose from (only one is allowed) (WSDL generator will use the first element) (use empty value to allow an empty SOAP body, for example to allow element x and an empty SOAP body use: x,). In case the request contains SOAPAction header and the WSDL contains an element specific to that SOAPAction, it will use that element as SOAP body. + + + + + Pairs of URI references which will be added to the WSDL + + + + + Creates <code>schemaLocation</code> attribute based on the WSDL and replaces the namespace of the soap body element + + + + + + + + + + + + + + + + + + + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the child element of the SOAP body, or a comma separated list of names to choose from (only one is allowed) (wsdl generator will use the first element) (use empty value to allow an empty soap body, for example to allow element x and an empty soap body use: x,) + + + + + + + + + + + + + + + + + + + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Only for JSON input: namespace of the resulting XML. Need only be specified when the namespace of root name is ambiguous in the schema + + + + + Default format of the result, that is used if the format cannot be found from outputFormatSessionKey or from inputFormatSessionKey (when validating responses and autoFormat=true) Default: XML + + + + + + + + Session key to retrieve outputFormat from Default: outputFormat + + + + + Session key to store the inputFormat in, to be able to set the outputformat when autoFormat=true. Can also be used to pass the value of an HTTP Accept header, to obtain a properly formatted response Default: Json2XmlValidator.inputFormat &lt;name of the pipe&gt; + + + + + If true, the format on 'output' is set to the same as the format of the input message on 'input'. The format of the input message is stored in and retrieved from the session variable specified by outputFormatSessionKey Default: true + + + + + If true assume arrays in JSON do not have the element containers like in XML Default: true + + + + + If true check that incoming JSON adheres to the specified syntax (compact or full), otherwise both types are accepted for conversion from JSON to XML Default: false + + + + + If true, assume that JSON contains/must contain a root element Default: false + + + + + If true, and converting from JSON to XML, parameter substitutions are searched for optional sub elements too. By default, only mandatory elements are searched for parameter substitutions. N.B. Currently this option might cause problems. Please try using more qualified parameters names (using '/') first Default: false + + + + + If true, and converting from JSON to XML, elements in JSON that are not found in the XML Schema are ignored Default: false + + + + + If true, an exception is thrown when a wildcard is found in the XML Schema when parsing an object. This often indicates that an element is not properly typed in the XML Schema, and could lead to ambuigities. Default: true + + + + + If true, all XML is allowed to be without namespaces. If no namespaces are detected (by the presence of the string 'xmlns') in the XML, the root namespace is added to the XML Default: false + + + + + If true, all XML that is generated is without a namespace set Default: false + + + + + If true, and converting to or from JSON, then the message root is the only rootValidation, ignoring root validations like for SOAP envelope and header set by descender classes like SoapValidator Default: true + + + + + Allow JSON input Default: true + + + + + + + + + + + + + + + + The filename of the schema on the classpath. It is not possible to specify a namespace using this attribute. (effectively the same as noNamespaceSchemaLocation) + An example value would be "xml/xsd/GetPartyDetail.xsd". + The value of the schema attribute is only used if the schemaLocation attribute and the noNamespaceSchemaLocation are not set. + + + + + + + Name of the root element, or a comma separated list of element names. The validation fails if the root element is not present in the list. N.B. for WSDL generation only the first element is used + + + + + + + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + + + + + + Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the root element + + + + + Name of the response root element + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If set, the processing continues directly at the forward of this pipe, without executing the pipe itself, if the input is empty Default: false + + + + + If set, this pipe is only executed when the value of parameter with name <code>ifParam</code> equals <code>ifValue</code> (otherwise this pipe is skipped) + + + + + See <code>ifParam</code> + + + + + Key of session variable to check if action must be executed. The pipe is only executed if the session variable exists and is not null + + + + + Value of session variable 'onlyIfSessionKey' to check if action must be executed. The pipe is only executed if the session variable has the specified value + + + + + Key of session variable to check if action must be executed. The pipe is not executed if the session variable exists and is not null + + + + + Value of session variable 'unlessSessionKey' to check if action must be executed. The pipe is not executed if the session variable has the specified value + + + + + + + + + + + + + + + + + + + + + + + + + + Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 + + + + + + + + + + + + + + + + + + + + + either 3.1 or 3.2 Default: 3.1 + + + + + + + + + + + + + + + + The JSON Schema to validate to + + + + + Prefix to element name to find subschema in schema Default: /definitions/ + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + + + + + + + + + + + + name of the root element + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to WsdlXmlValidator for API Management. + + The SOAP header can only contain the following schema (or it's empty): + <table border="1"> + <tr><th>element</th><th>level</th><th>mandatory</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>yes</td></tr> + <tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td>&nbsp;</td><td>yes</td></tr> + <tr><td>From</td><td>1</td><td>no</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>yes</td></tr> + <tr><td>ConversationId</td><td>2</td><td>yes</td></tr> + </table> + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd) + to the set of XSD's used for validation. + + + + + + + + + + + + FxF XML validator to be used with FxF3. When receiving files + (direction=receive) the message is validated against the + OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided + by Tibco) for all queues (every Ibis receiving FxF files has it's own + queue)). When sending files (direction=send) the message is validated against + the StartTransfer WSDL (ESB service provided by Tibco). + + + + + + + + + + + + <code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON. + + + + + + + + + + + + Pipe that validates the input message against a JSON Schema. + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation. + + Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply). + These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator. + Both the request and the reply are then validated by the inputValidator. + <p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p> + <table border="1"> + <tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr> + <tr><td>wsdl.${adapterName}.soapAction</td></tr> + <tr><td>wsdl.soapAction</td></tr> + </table> + + + + + + + + + + + + XmlValidator that will read the XSD's to use from a WSDL. As it extends the + SoapValidator is will also add the SOAP envelope XSD. + + + + + + + + + + + + Pipe that validates the input message against a XML Schema. + + + + + + + + + + + + <code>Pipe</code> that checks the well-formedness of the input message. + If <code>root</code> is given then this is also checked. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to SoapWrapperPipe for API Management. + <p> + <b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr> + </table> + </p><p> + <b>/xml/xsl/api/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr> + <tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>from_out</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + + + + + + + + + + + + Extension to SoapWrapperPipe for separate modes. + + <p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr> + <tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr> + <tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr> + <tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr> + <tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr> + <tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr> + <tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr> + <tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr> + <tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr> + </table></p> + <p> + <b>/xml/xsl/esb/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + <tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr> + <tr><td>Service</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>2</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>2</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>2</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>3</td><td>$operationName</td></tr> + <tr><td>Version</td><td>3</td><td>$operationVersion</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>businessDomain</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>service(Context)Version</td><td>1</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>applicationName</td><td>&nbsp;</td></tr> + <tr><td>applicationFunction</td><td>&nbsp;</td></tr> + <tr><td>messagingLayer</td><td>ESB</td></tr> + <tr><td>serviceLayer</td><td>&nbsp;</td></tr> + <tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + <tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/soapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>fixResultNamespace</td><td>false</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + FxF wrapper to be used with FxF3. When receiving files (direction=unwrap) + the message handed to the pipeline is the local filename extracted from an + ESB SOAP message. When sending files (direction=wrap) input should be a local + filename which will be wrapped into an ESB SOAP message. Please note: When + writing files which need to be send through FxF they should be written to + ${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be + available on the OTAP environment (define it in StageSpecifics_LOC.properties + only). Replace NNX00000 with the specific flowId and generate a unique + filename (files will automatically be cleaned after 30 days or any other + value specified by ${fxf.retention}). + + + + + + + + + + + + Pipe to wrap or unwrap a message from/into a SOAP Envelope. + + + + + + + + + + + + + + + + + + + + + + + + + Default: wrap + + + + + + + + Soap version to use Default: auto + + + + + + + + (only used when direction=<code>wrap</code>) Namespace of the soap envelope Default: auto determined from soapVersion + + + + + Key of session variable to store auto detected soapNamespace Default: If configured as Pipeline Input Wrapper or PipeLine Output Wrapper: soapNamespace + + + + + Key of session variable to store soap header Default: If configured as Pipeline Input Wrapper and direction=<code>unwrap</code>: soapHeader + + + + + The encodingStyle to be set in the soap header + + + + + The default for the namespace of the message sent. Identifies the service to be called. May be overriden by an actual namespace setting in the message to be sent + + + + + (only used when direction=<code>wrap</code>) Stylesheet to create the content of the soap header. As input for this stylesheet a dummy xml string is used. Note: outputType=<code>xml</code> and xsltVersion= + + + + + (only used when direction=<code>wrap</code>) Stylesheet to apply to the input message. Note: outputType=<code>xml</code> and xsltVersion=2 + + + + + (only used when direction=<code>unwrap</code>) If <code>true</code>, namespaces (and prefixes) in the content of the soap body are removed Default: false + + + + + (only used when direction=<code>unwrap</code> and <code>removeoutputnamespaces=false</code>) If <code>true</code>, unused namespaces in the content of the soap body are removed Default: true + + + + + (only used when direction=<code>wrap</code>) If not empty, this namespace is added to the root element in the soap body + + + + + If not empty, the root element in the soap body is changed to this value + + + + + (only used when direction=<code>unwrap</code>) If <code>false</code> and the soap body contains a soap fault, a PipeRunException is thrown Default: false + + + + + For direction=<code>unwrap</code> only: if true, allow unwrapped xml too Default: false + + + + + alias used to obtain credentials for authentication to WebServiceSecurity + + + + + Default username for WebServiceSecurity + + + + + Default password for WebServiceSecurity + + + + + If true, the password is sent digested; Otherwise it is sent in clear text Default: true + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default: REG + + + + + + + + <b>Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 + + + + + (only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion') Default: false + + + + + (only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code> Default: true + + + + + If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only) Default: false + + + + + (only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed Default: false + + + + + When the messagingLayer part of the destination has this value interpret it as P2P + + + + + When the messagingLayer part of the destination has this value interpret it as ESB + + + + + + + + + + + + + + + + The flowId of the file transfer when direction=wrap. When direction=unwrap the flowId will be extracted from the incoming message and added as a sessionKey to the pipeline. + + + + + specifies the output folder if transformFilename=<code>false</code> and direction=wrap + + + + + when <code>true</code> and direction=wrap, the input which is expected to be a local filename will be transformed to the filename as known on the IUF State machine. Default: true + + + + + + + + + + + either 3.1 or 3.2 Default: 3.1 + + + + + when set to <code>true</code>, the folder corresponding fxf.dir property will be created in case it does not exist Default: false + + + + + when set to <code>true</code>, ServerFileName from the input will be used as the filename Default: false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to SoapWrapperPipe for API Management. + <p> + <b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr> + </table> + </p><p> + <b>/xml/xsl/api/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr> + <tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>from_out</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + + + + + + + + + + + + Extension to SoapWrapperPipe for separate modes. + + <p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr> + <tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr> + <tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr> + <tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr> + <tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr> + <tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr> + <tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr> + <tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr> + <tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr> + </table></p> + <p> + <b>/xml/xsl/esb/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + <tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr> + <tr><td>Service</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>2</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>2</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>2</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>3</td><td>$operationName</td></tr> + <tr><td>Version</td><td>3</td><td>$operationVersion</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>businessDomain</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>service(Context)Version</td><td>1</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>applicationName</td><td>&nbsp;</td></tr> + <tr><td>applicationFunction</td><td>&nbsp;</td></tr> + <tr><td>messagingLayer</td><td>ESB</td></tr> + <tr><td>serviceLayer</td><td>&nbsp;</td></tr> + <tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + <tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/soapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>fixResultNamespace</td><td>false</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + FxF wrapper to be used with FxF3. When receiving files (direction=unwrap) + the message handed to the pipeline is the local filename extracted from an + ESB SOAP message. When sending files (direction=wrap) input should be a local + filename which will be wrapped into an ESB SOAP message. Please note: When + writing files which need to be send through FxF they should be written to + ${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be + available on the OTAP environment (define it in StageSpecifics_LOC.properties + only). Replace NNX00000 with the specific flowId and generate a unique + filename (files will automatically be cleaned after 30 days or any other + value specified by ${fxf.retention}). + + + + + + + + + + + + Pipe to wrap or unwrap a message from/into a SOAP Envelope. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A true multi-threaded Listener-class. + <br/> + + Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the + transacted attribute. If this is set to <code>true</code>, received messages are + committed or rolled back, possibly together with other actions, by the receiver or the pipeline. + In case of a failure, all actions within the transaction are rolled back. + + <p><b>Using jmsTransacted and acknowledgement</b><br/> + If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis. + IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within + the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to + other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the + message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct + (transactional) behaviour, transacted should be used instead of listener.transacted. +<p> + Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from + the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue + when the state of the Adapter equals the success state. + The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the + delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages. + In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode, + since a session has lower overhead in trying to prevent duplicate messages. + </p> + <p>The setting for listener.acknowledgeMode will only be processed if + the setting for listener.transacted as well as for + listener.jmsTransacted is false.</p> + + <p>If useReplyTo is set and a replyTo-destination is + specified in the message, the JmsListener sends the result of the processing + in the pipeline to this destination. Otherwise the result is sent using the (optionally) + specified Sender, that in turn sends the message to + whatever it is configured to.</p> + </p> + <p><b>Notice:</b> the JmsListener is ONLY capable of processing + <code>javax.jms.TextMessage</code>s <br/><br/> + </p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Manager that decides the handlers based on the content of a field in the specified + position in a record. The fields in the record are separated by a separator. + The value of the specified field is taken as key in the flow-table. + + + + + + + + + + + + Manager that decides the handlers based on the content of a field in the specified + position in a record. The fields in the record are of a fixed length. + The data beween the start position and end position is taken as key in the flow-table. + + + + + + + + + + + + + + + + + + + + position of field that identifies the recordtype (position of first field is 1) + + + + + separator that separates the fields in the record + + + + + + + + + + + + + + + + + + + + + Name of the manager + + + + + This manager is the initial manager, i.e. to be used for the first record Default: false + + + + + + + + + + + + + + Start position of the field in the record that identifies the recordtype (first character is 0) Default: 0 + + + + + If endposition &gt;= 0 then this field contains the endPosition of the recordtype field in the record; All characters beyond this position are ignored. Else, if endPosition &lt; 0 then it depends on the length of the recordkey in the flow Default: -1 + + + + + + + + + + + + + + + + + + + + + + + + + IReaderFactory that provides a reader that reads Delphi records containing Strings. + + + + + + + + + + + + Basic InputStreamReaderFactory. + + + + + + + + + + + + + + + + + + + separator placed between each string read Default: | + + + + + the maximum length of each string. each string is preceded by a one byte length indication. Default: 50 + + + + + the number of strings read for each record. 0 means file consists of one logical record Default: 0 + + + + + replacement character, used when separator is found in string read Default: _ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Translate a record using an outputFields description. + + + The outputFields description can contain the following functions: + + <table border="1"> + <tr><td>string(value)</td><td>inserts the value between the braces</td><td>string( Dit wordt geinsert inclusief spaties ervoor en erna. )</td></tr> + <tr><td>align(value,size,align,fillchar)</td><td>inserts the value aligned</td><td>align(test~10~left~ )</td></tr> + <tr><td>fill(size,fillchar)</td><td>insert size fillchars</td><td>fill(2,0)</td></tr> + <tr><td>now(outformat)</td><td>inserts the current date</td><td>now(dd MMM yyyy)</td></tr> + <tr><td>incopy(fieldnr)</td><td>simply inserts the value of the field</td><td>incopy(2)</td></tr> + <tr><td>substr(fieldnr,startindex,endindex)</td><td>insert part of the value of the field</td><td>substr(2,0,8)</td></tr> + <tr><td>lookup(fieldnr,orgvval=newval,...)</td><td>replace original value using lookup table</td><td>lookup(3,Debit=+,Credit=-)</td></tr> + <tr><td>indate(fieldnr,informat,outformat)</td><td>inserts an input datefield using a different format</td><td>indate(2~MMddYY~dd MMM yyyy)</td></tr> + <tr><td>inalign(fieldnr,size,align,fillchar)</td><td>inserts an input field</td><td>inalign(3~5~left~0)</td></tr> + <tr><td>if(fieldnr,comparator,compareval)</td><td>only output the next fields if condition is true. Comparator is EQ (is equal to), NE (is not equal to), SW (starts with) or NS (not starts with). Use "{..|..|..}" for multiple compareValues</td><td>if(1,eq,3)</td></tr> + <tr><td>elseif(fieldnr,comparator,compareval)</td><td>only output the next fields if condition is true. Comparator is EQ, NE, SW or NS</td><td>elseif(1,ne,4)</td></tr> + <tr><td>endif()</td><td>endmarker for if</td><td>endif()</td></tr> + </table> + + + + + + + + + + + + Translate a record into XML, then send it using a sender. + + + + + + + + + + + + Encapsulates a record in XML, optionally translates it using XSLT or XPath. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + semicolon separated list of output record field specifications (see table below) + + + + + optional separator to add between the fields + + + + + + + + + + + + + + + + + comma separated list of numbers of those fields that are compared with the previous record to determine if a prefix must be written. if any of these fields is not equal in both records, the record types are assumed to be different + + + + + Name of the recordhandler + + + + + Comma separated specification of field lengths. if neither this attribute nor <code>inputSeparator</code> is specified then the entire record is parsed + + + + + Separator that separates the fields in the input record. If neither this attribute nor <code>inputFields</code> is specified then the entire record is parsed + + + + + If set <code>true</code>, trailing spaces are removed from each field Default: false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + comma separated string with tagnames for the individual input fields (related using there positions). if you leave a tagname empty, the field is not xml-ized + + + + + Root tag for the generated xml document that will be send to the Sender Default: record + + + + + Name of stylesheet to transform an individual record + + + + + Alternatively: xpath-expression to create stylesheet from + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. One entry can be without a prefix, that will define the default namespace. + + + + + Only valid for <code>xpathExpression</code> Default: text + + + + + + + + Force the transformer generated from the xpath-expression to omit the xml declaration Default: true + + + + + String which ends the record and must be ignored + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ResultHandler that writes the transformed record to a BLOB. + + + + + + + + + + + + ResultHandler that writes the transformed record to a CLOB. + + + + + + + + + + + + Resulthandler that writes the transformed record to a file. + + + + + + + + + + + + Resulthandler that writes the transformed record to a String, that is passed to the next Pipe literally. + + + + + + + + + + + + ResultHandler that collects a number of records and sends them together to a sender. + + + + + + + + + + + + + + + + + + + + Column that contains the BLOB to be updated Default: 1 + + + + + controls whether blobdata is stored compressed in the database Default: true + + + + + Charset that is used to read and write BLOBs. This assumes the blob contains character data. + If blobCharset and blobSmartGet are not set, BLOBs are returned as bytes. Before version 7.6, blobs were base64 encoded after being read to accommodate for the fact that senders need to return a String. This is no longer the case + + + + + + + + + + + + + + + + The functional name of the object. + + + + + if set <code>true</code>, this resulthandler is the default for all flows that do not have a handler specified Default: false + + + + + When set <code>true</code>(default), every group of records, as indicated by RecordHandler.newRecordType is handled as a block. Default: true + + + + + + + + + The SQL query text + + + + + JNDI name of datasource to be used, can be configured via jmsRealm, too Default: jdbc.datasource.default + + + + + loads JNDI (and other) properties from a JmsRealm + + + + + + + + + + + string that is written before any data of results is written Default: &lt;document name=&quot;#name#&quot;&gt; + + + + + string that is written after all data of results is written Default: &lt;/document&gt; + + + + + string that is written before the start of each logical block, as defined in the flow Default: &lt;#name#&gt; + + + + + string that is written after the end of each logical block, as defined in the flow Default: &lt;/#name#&gt; + + + + + string that is replaced by name of block or name of stream in above strings Default: #name# + + + + + + + + + + + + + + + + Column that contains the CLOB to be updated Default: 1 + + + + + + + + + + + + + + + + Directory in which the resultfile must be stored + + + + + Directory to which the created file must be moved after finalization (is optional) + + + + + Name of the file is created using the messageformat. Params: 1=inputfilename, 2=extension of file, 3=current date + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Transforms between ascii-ADIOS and an XML representation of ADIOS. + + <p> + Sample xml:<br/> + <pre><code> + &lt;adios rekenbox="L76HB150"&gt; + &lt;rubriek naam="BER_VERZ_CD" waarde="COMBIFLEX_BELEGGING" /&gt; + &lt;rubriek naam="INBR_CD" waarde="NIEUWE_VERZEKERING" /&gt; + &lt;rubriek naam="PENS_DT_BEP_CD" waarde="DT_UIT_PENS_LFT" /&gt; + &lt;rubriek nummer="313" naam="AS_OPSL_PRD_TRM_PRM" index="3" recordnr="74" record="VUT_VERZEKERING" waarde="52.34" /&gt; + ... + &lt;/adios&gt; + </code></pre> + <br/> + For input, a 'naam' or a 'nummer'-attribute must be specified. If both are specified, their match is checked. + On output, 'nummer', 'naam' and 'waarde'-attributes are always present in each rubriek-element. + Where applicable 'index', 'recordnr', 'record' and 'recordindex' are present, too. + If sub-records exist, they are present with a 'sub' prefix to all attributes. + </p> + + + + + + + + + + + + Returns the amount of pages of a PDF file. + + + + + + + + + + + + Pipe to manage the ApiPrincipal handling + + + + + + + + + + + + Extension to SoapWrapperPipe for API Management. + <p> + <b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr> + </table> + </p><p> + <b>/xml/xsl/api/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr> + <tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>from_out</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + + + + + + + + + + + + Extension to WsdlXmlValidator for API Management. + + The SOAP header can only contain the following schema (or it's empty): + <table border="1"> + <tr><th>element</th><th>level</th><th>mandatory</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>yes</td></tr> + <tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td>&nbsp;</td><td>yes</td></tr> + <tr><td>From</td><td>1</td><td>no</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>yes</td></tr> + <tr><td>ConversationId</td><td>2</td><td>yes</td></tr> + </table> + + + + + + + + + + + + Pipe that performs base64 encoding and decoding. + + + + + + + + + + + + Pipe for transforming a (batch)file with records. Records in the file must be separated + with new line characters. + You can use the &lt;child&gt; tag to register RecordHandlers, RecordHandlerManagers, ResultHandlers + and RecordHandlingFlow elements. This is deprecated, however. Since 4.7 one should use &lt;manager&gt;, + &lt;recordHandler&gt;, &lt;resultHandler&gt; and &lt;flow&gt; + + For files containing only a single type of lines, a simpler configuration without managers and flows + can be specified. A single recordHandler with key="*" and (optional) a single resultHandler need to be specified. + Each line will be handled by this recordHandler and resultHandler. + + + + + + + + + + + + Pipe that iterates over the lines in a BLOB. + + + + + + + + + + + + Output bytes as specified by the input XML. + + Actions are taken on every field + tag found in the input XML. Every field tag should have a type attribute + that specifies the type of conversion that needs to be done on the string + specified by the value attribute. A value attribute also needs to be present + for every field tag. Currently two types of conversion are supported: + + <ul> + <li><code>GetBytesFromString</code>, a conversion from string to bytes as specified by java.lang.String.getBytes(String charsetName)</li> + <li><code>PackedDecimal</code>, a conversion from string to Packed-decimal</li> + </ul> + + An additional charset attribute is needed for a GetBytesFromString + conversion. An input XML that would encode the string &quot; TEST 1234 &quot; + into EBCDIC format would look like: + + <pre> + &lt;fields&gt; + &lt;field type=&quot;GetBytesFromString&quot; value=&quot; TEST 1234 &quot; charset=&quot;Cp037&quot;/&gt; + &lt;/fields&gt; + </pre> + + The Packed-decimal conversion has been implemented according to information + found in the following resources: + + <ul> + <li>A description as found at <a href="http://www.simotime.com/datapk01.htm">http://www.simotime.com/datapk01.htm</a></li> + <li>AS400PackedDecimal.java from jtopen_6_1_source.zip downloaded at <a href="http://jt400.sourceforge.net/">http://jt400.sourceforge.net/</a></li> + <li>The WebSphere Studio COBOL for Windows Programming Guide from <a href="http://www-1.ibm.com/support/docview.wss?uid=swg27005151">http://www-1.ibm.com/support/docview.wss?uid=swg27005151</a></li> + </ul> + + Some examples: + + <ul> + <li>The string +12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5C</li> + <li>The string -12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5D</li> + <li>The string 12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5F</li> + <li>The string 1234 will be translated to three bytes with the following hexadecimal representation: 01 23 4F</li> + </ul> + + The Packed-decimal is prefixed with zero's when the specified size is bigger + than the number of decimals. An exception is thrown when the specified size + is smaller than the number of decimals. + + An input XML that would generate a number of Packed-decimals could look like: + + <pre> + &lt;fields&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+67890&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-67890&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;67890&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+1&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-1&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+12&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-12&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+123&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-123&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+123456&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-123456&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+1234567&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-1234567&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+12345678&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-12345678&quot; size=&quot;16&quot;/&gt; + &lt;/fields&gt; + </pre> + + + + + + + + + + + + Pipe to calculate checksum on input. + + + + + + + + + + + + Pipe for deleting files. + + + + + + + + + + + + Pipe that iterates over the lines in a CLOB. + + + + + + + + + + + + Pipe that compares the two integer values. + If one of the parameters is missing then the input message will be used as the missing operand. + This pipe can be used in combination with IncreaseIntegerPipe to construct loops. + + + + + + + + + + + + Pipe that compares lexicographically two strings. + + + + + + + + + + + + Pipe to zip or unzip a message or file. + + + + + + + + + + + + Perform the call to a CoolGen proxy with pre- and post transformations. + + + + + + + + + + + + Selects an exitState, based on the number of received messages by this pipe. + + The exitState is the difference (subtraction) between the <code>divisor</code> and + the remainder of [number of received messages] modulus <code>divisor</code>. + This will always be an integer between 1 and <code>divisor</code>, inclusive. + + + + + + + + + + + + Pipe to check the the CredentialFactory (for testing only). + + + + + + + + + + + + Pipe that reads a CRL from an input stream and transforms it to an XML. + The steam is closed after reading. + + Example configuration: + <pre><code> + &lt;pipe + name="Read issuer" + className="nl.nn.adapterframework.pipes.FilePipe" + actions="read" + fileName="dir/issuer.cer" + preserveInput="true" + outputType="stream" + storeResultInSessionKey="issuer" + &gt; + &lt;forward name="success" path="Read CRL" /&gt; + &lt;/pipe&gt; + &lt;pipe + name="Read CRL" + className="nl.nn.adapterframework.pipes.FilePipe" + actions="read" + fileName="dir/CRL.crl" + outputType="stream" + &gt; + &lt;forward name="success" path="Transform CRL" /&gt; + &lt;/pipe&gt; + &lt;pipe + name="Transform CRL" + className="nl.nn.adapterframework.pipes.CrlPipe" + issuerSessionKey="issuer" + &gt; + &lt;forward name="success" path="EXIT" /&gt; + &lt;/pipe&gt; + </code></pre> + + + + + + + + + + + + Reads a message in CSV format, and turns it into XML. + + + + + + + + + + + + Pipe that sleeps for a specified time, which defaults to 5000 msecs. + Usefull for testing purposes. + + + + + + + + + + + + Kind of extension to EsbSoapWrapperPipe for real time destinations. + + + + + + + + + + + + Pipe that performs domain transforming on the basis of a database table. + + Every string which equals "%![DT{<code>label</code>,<code>valueIn</code>,<code>type</code>}]" will be replaced by <code>valueOut</code>. + + The field <code>type</code>, which is optional, indicates the format of <code>valueIn</code>. Currently the following types are supported: + + <ul> + <li><code>string</code> (default): the methode setString() is used</li> + <li><code>number</code>: the method setDouble() is used </li> + </ul> + + + + + + + + + + + + Returns simply the input message. + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd) + to the set of XSD's used for validation. + + + + + + + + + + + + Extension to SoapWrapperPipe for separate modes. + + <p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr> + <tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr> + <tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr> + <tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr> + <tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr> + <tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr> + <tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr> + <tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr> + <tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr> + </table></p> + <p> + <b>/xml/xsl/esb/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + <tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr> + <tr><td>Service</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>2</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>2</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>2</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>3</td><td>$operationName</td></tr> + <tr><td>Version</td><td>3</td><td>$operationVersion</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>businessDomain</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>service(Context)Version</td><td>1</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>applicationName</td><td>&nbsp;</td></tr> + <tr><td>applicationFunction</td><td>&nbsp;</td></tr> + <tr><td>messagingLayer</td><td>ESB</td></tr> + <tr><td>serviceLayer</td><td>&nbsp;</td></tr> + <tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + <tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/soapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>fixResultNamespace</td><td>false</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + Pipe that performs translations between special characters and their xml equivalents. + <p>When direction=cdata2text all cdata nodes are converted to text nodes without any other translations.</p> + + + + + + + + + + + + Pipe that throws an exception, based on the input message. + + + + + + + + + + + + Produces a fixed result that does not depend on the input message. It may return the contents of a file + when <code>filename</code> or <code>filenameSessionKey</code> is specified. Otherwise the + value of attribute <code>returnString</code> is returned. + <br/><br/> + Using parameters and the attributes of this pipe, it is possible to substitute values. This pipe + performs the following steps: + <ol> + <li>During execution, this pipe first obtains a string based on attributes <code>returnString</code>, <code>filename</code> or <code>filenameSessionKey</code>.</li> + <li>The resulting string is transformed according to attributes <code>replaceFrom</code> and <code>replaceTo</code> if set. + Please note that the plain value of attribute <code>replaceFrom</code> is matched, no <code>${...}</code> here.</li> + <li>The resulting string is substituted based on the parameters of this pipe. This step depends on attribute <code>replaceFixedParams</code>. + Assume that there is a parameter with name <code>xyz</code>. If <code>replaceFixedParams</code> is <code>false</code>, then + each occurrence of <code>${xyz}</code> is replaced by the parameter's value. Otherwise, the text <code>xyz</code> + is substituted. See Parameter to see how parameter values are determined.</li> + <li>If attribute <code>substituteVars</code> is <code>true</code>, then expressions <code>${...}</code> are substituted using + system properties, pipelinesession variables and application properties. Please note that + no <code>${...}</code> patterns are left if the initial string came from attribute <code>returnString</code>, because + any <code>${...}</code> pattern in attribute <code>returnString</code> is substituted when the configuration is loaded.</li> + <li>If attribute <code>styleSheetName</code> is set, then the referenced XSLT stylesheet is applied to the resulting string.</li> + </ol> + <br/> + Many attributes of this pipe reference file names. If a file is referenced by a relative path, the path + is relative to the configuration's root directory. + + + + + + + + + + + + + + + + + + + + + Sends a message to a Sender for each child element of the input XML. + Input can be a String containing XML, a filename (set processFile true), an InputStream or a Reader. + + + + + + + + + + + + FxF wrapper to be used with FxF3. When receiving files (direction=unwrap) + the message handed to the pipeline is the local filename extracted from an + ESB SOAP message. When sending files (direction=wrap) input should be a local + filename which will be wrapped into an ESB SOAP message. Please note: When + writing files which need to be send through FxF they should be written to + ${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be + available on the OTAP environment (define it in StageSpecifics_LOC.properties + only). Replace NNX00000 with the specific flowId and generate a unique + filename (files will automatically be cleaned after 30 days or any other + value specified by ${fxf.retention}). + + + + + + + + + + + + FxF XML validator to be used with FxF3. When receiving files + (direction=receive) the message is validated against the + OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided + by Tibco) for all queues (every Ibis receiving FxF files has it's own + queue)). When sending files (direction=send) the message is validated against + the StartTransfer WSDL (ESB service provided by Tibco). + + + + + + + + + + + + Gets the contents of the pipeLineSession by a key specified by + <code>sessionKey</code>. + + + + + + + + + + + + Returns the LTPA token associated with the session. + + + + + + + + + + + + Returns the name of the user executing the request. + + + + + + + + + + + + Returns information about Tibco queues in a XML string. + <p> + If the parameter <code>queueName</code> is empty then + <ul><li>all Tibco queues including information about these queues are returned</li></ul> + else + <ul><li>one message on a specific Tibco queue including information about this message is returned (without removing it)</li></ul> + </p> + + + + + + + + + + + + Pipe that hashes the input message. + + + + + + + + + + + + Selects an exitState, based on the content-type of a httpServletRequest + object as input. + + + + + + + + + + + + Pipe that increases the integer value of a session variable. + Can be used in combination with CompareIntegerPipe to construct loops. + + + + + + + + + + + + Pipe that checks if the calling user has a specified role. + Uses the PipeLineSessions methods. + <p> + If the role is not specified by the role attribute, the input of + the pipe is used as role. + + N.B. The role itself must be specified by hand in the deployment descriptors web.xml and application.xml. + </p> + + + + + + + + + + + + Selects an exitState, based on if the input is a XML string. + + The input is a XML string if it, after removing leading white-space characters, starts with '&lt;'. + + + + + + + + + + + + <code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON. + + + + + + + + + + + + JSON is not aware of the element order. This pipe performs a <strong>best effort</strong> JSON to XML transformation. + If you wish to validate or add structure to the converted (xml) file, please use the Json2XmlValidator. + + + + + + + + + + + + Pipe that validates the input message against a JSON Schema. + + + + + + + + + + + + <code>Pipe</code> that checks the well-formedness of the input message. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, XML or text. + JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json. + The XSLT stylesheet or XPathExpression operates on these element. + + + + + + + + + + + + Transforms between ascii and an XML representation. + + <p> + Sample xml:<br/><code><pre> + &lt;CALCBOXMESSAGE&gt; + &lt;OPDRACHT&gt; + &lt;OPDRACHTSOORT&gt;ONTTREK_RISICO_EN_KOSTEN&lt;/OPDRACHTSOORT&gt; + &lt;BASISRENDEMENTSOORT&gt;NVT&lt;/BASISRENDEMENTSOORT&gt; + &lt;BEDRAG&gt;625&lt;/BEDRAG&gt; + &lt;DATUM&gt;20071201&lt;/DATUM&gt; + + ... + &lt;/CALCBOXMESSAGE&gt; + </pre></code> <br/> + + Sample ascii:<br/><code><pre> + OPDRACHT : #SAMENGESTELD + OPDRACHT.OPDRACHTSOORT :ONTTREK_RISICO_EN_KOSTEN + OPDRACHT.BASISRENDEMENTSOORT :NVT + OPDRACHT.BEDRAG :625 + OPDRACHT.DATUM :20071201 + + ... + EINDEREKENVERZOEK :EINDE + </pre></code> + </p> + + <p><b>Configuration:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>direction</td><td>transformation direction. Possible values + <ul> + <li>"Xml2Label": transform an XML file to ascii</li> + <li>"Label2Xml": transform an ascii file to XML</li> + </ul></td><td>Xml2Label</td></tr> + </table> + </p> + + + + + + + + + + + + Call Ladybug Test Tool to rerun the reports present in test storage (see Test tab in Ladybug) + + + + + + + + + + + + Call Larva Test Tool + + + + + + + + + + + + Pipe that returns the memberships of a userDN. + The input is a fullDn, of a user or a group. + <br/> + Sample result:<br/><code><pre> + &lt;ldap&gt; + &lt;entry name="CN=xxyyzz,OU=Users,DC=domain,DC=ext"&gt; + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="memberOf" value="Extern"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=zzyyxx"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=Group,ou=domain,o=ext"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + &lt;/entry&gt; + &lt;entry&gt; .... &lt;/entry&gt; + ..... + &lt;/ldap&gt; + </pre></code> <br/> + + + + + + + + + + + + Pipe that checks if a specified dn exists as 'member' in another specified dn + in LDAP. + + + + + + + + + + + + + + + + + + + + + Pipe that stores all its parameter values in the ThreadContext, formerly known as Mapped Diagnostic Context (MDC), to be used in logging. + The input is passed through to the output. + + + + + + + + + + + + Pipe that sends a mail-message using a MailSender as its sender. + <br/> + Sample email.xml:<br/><code><pre> + &lt;email&gt; + &lt;recipients&gt; + &lt;recipient&gt;***@natned&lt;/recipient&gt; + &lt;recipient&gt;***@nn.nl&lt;/recipient&gt; + &lt;/recipients&gt; + &lt;from&gt;***@nn.nl&lt;/from&gt; + &lt;subject&gt;this is the subject&lt;/subject&gt; + &lt;message&gt;dit is de message&lt;/message&gt; + &lt;/email&gt; + </pre></code> <br/> + Notice: it must be valid XML. Therefore, especially the message element + must be plain text or be wrapped as CDATA.<br/><br/> + example:<br/><code><pre> + &lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt; + </pre></code><br/> + + + + + + + + + + + + <p>Performs various PGP (Pretty Good Privacy) actions such as Encrypt, Sign, Decrypt, Verify.</p> + <p>To use this pipe action parameter has to be set to one of the actions above.</p> + <p> + <strong>Note:</strong> When secret key is required in any of the actions, + the related public key should also be included in public keys. + </p> + + <p> + <strong>Note:</strong> For fields that require multiple input + (such as recipients, senders and publicKey -in certain actions-) + you can seperate multiple values with ";" (semicolon). + </p> + + + + + + + + + + + + Returns random password. + + + + + + + + + + + + Hash a password or validate a password against a hash using PasswordHash.java + from <a href="https://crackstation.net/hashing-security.htm">https://crackstation.net/hashing-security.htm</a>. + Input of the pipe is expected to be the password. In case hashSessionKey + isn't used a hash of the password is returned. In case hashSessionKey is used + it is validated against the hash in the session key which will determine + the forward to be used (success or failure). + + + + + + + + + + + + Converts files to pdf type. This pipe has two actions convert and combine. + With combine action you can attach files into main pdf file. + + + + + + + + + + + + Puts the input or the <code>value</code> in the PipeLineSession, under the key specified by + <code>sessionKey</code>. Additionally, stores parameter values in the PipeLineSession. + + + + + + + + + + + + Puts the system date/time under a key in the pipeLineSession. + + + + + + + + + + + + Perform a call to a RekenBox. + + The inputmessage is written to a temporary file and passed as inputfile to the rekenbox. The contents of the outputfile of the + rekenbox is returned as output message. The name of the rekenbox, as determined from the inputfile, is optionally written to + the pipeLineSession. + + + <p><b>Note:</b><br/> + The rekenbox-name is currently determined from the first 8 characters of the file, or up + to the first space (' ') or colon (':') character. Beware that if the first character of the + file is a newline character or something similar, less characters are available to pass the + rekenbox-name on. Especially if the inputmessages are constructed by means of an XSLT-stylesheet, + messages often start with a newline character. + </p> + + + + + + + + + + + + Remove specified cache key from cache with specified name. + + + + + + + + + + + + Removes a key specified by <code>sessionKey</code> + from the pipeLineSession. + + + + + + + + + + + + Replaces all occurrences of one string with another. + + + + + + + + + + + + Pipe that iterates over rows in in ResultSet. + + Each row is send passed to the sender in the same format a row is usually returned from a query. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Manager for SAP Logical Units of Work (LUWs). + Used to begin, commit or rollback LUWs. A SapLUWManager can be placed before a number + of SapSenders. The SapLUWManager and the SapSenders must each use the same value for + luwHandleSessionKey. By doing so, they use the same connection to SAP. This allows to + perform a commit on a number of actions.<br/> + The placement of the the first SapLUWManager is optionan: By specifying a new + luwHandleSessionKey a new handle is created implicitly.<br/> + To explicityly commit or rollback a set of actions, a SapLUWManager-pipe can be used, with + the action-attribute set apropriately. + + + + + + + + + + + + Pipe which scans TIBCO sources in Subversion and creates a report in xml. + + + + + + + + + + + + Sends a message to a Tibco queue. + + + + + + + + + + + + Plain extension to MessageSendingPipe that can be used directly in configurations. + Only extension is that the setters for listener and sender have been made public, and can therefore + be set from the configuration file. + + + + + + + + + + + + + + + + + + + + + Returns the number of bytes or characters in the input. + + + + + + + + + + + + Skip a number of bytes or characters from the input. + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation. + + Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply). + These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator. + Both the request and the reply are then validated by the inputValidator. + <p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p> + <table border="1"> + <tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr> + <tr><td>wsdl.${adapterName}.soapAction</td></tr> + <tr><td>wsdl.soapAction</td></tr> + </table> + + + + + + + + + + + + Pipe to wrap or unwrap a message from/into a SOAP Envelope. + + + + + + + + + + + + Sends a message to a Sender for each line of its input, that must be an InputStream. + + + + + + + + + + + + Stream an input stream to an output stream. + + + + + + + + + + + + Pipe for transforming a stream with records. Records in the stream must be separated with new line characters. + + For file containing only a single type of lines, a simpler configuration without managers and flows + can be specified. A single recordHandler with key="*" and (optional) a single resultHandler need to be specified. + Each line will be handled by this recordHandler and resultHandler. + + + + + + + + + + + + IteratingPipe that has Strings as items. + + + + + + + + + + + + Pipe for converting TEXT to XML. + + + + + + + + + + + + Breaks up the text input in blocks of a maximum length. + By default the maximum block length is 160 characters, to enable them to be send as SMS messages. + + + + + + + + + + + + Pipe that generates an UUID (Universally Unique Identifier). + + Only type <code>alphanumeric</code> guarantees a 100% unique identifier, type <code>numeric</code> has a 0.01% chance of exactly the same id in case of multiple calls on the same host within a few milliseconds. + + + + + + + + + + + + Assumes input to be the file name of a ZIP archive, and unzips it to a + directory and/or an XML message. + <br/> + The output of each unzipped item is returned in XML as follows when + collectFileContents is false: + <pre> + &lt;results count="num_of_items"&gt; + &lt;result item="1"&gt; + &lt;zipEntry&gt;name in ZIP archive of first item&lt;/zipEntry&gt; + &lt;fileName&gt;filename of first item&lt;/fileName&gt; + &lt;/result&gt; + &lt;result item="2"&gt; + &lt;zipEntry&gt;name in ZIP archive of second item&lt;/zipEntry&gt; + &lt;fileName&gt;filename of second item&lt;/fileName&gt; + &lt;/result&gt; + ... + &lt;/results&gt; + </pre> + + <br/> + The output of each unzipped item is returned in XML as follows when + collectFileContents is true: + <pre> + &lt;results count="num_of_items"&gt; + &lt;result item="1"&gt; + &lt;zipEntry&gt;name in ZIP archive of first item&lt;/zipEntry&gt; + &lt;fileContent&gt;content of first item&lt;/fileContent&gt; + &lt;/result&gt; + &lt;result item="2"&gt; + &lt;zipEntry&gt;name in ZIP archive of second item&lt;/zipEntry&gt; + &lt;fileContent&gt;content of second item&lt;/fileContent&gt; + &lt;/result&gt; + ... + &lt;/results&gt; + </pre> + <br/> + By default, this pipe takes care + to produce unique file names, as follows. When the filename within + the archive is: + <pre>&lt;basename&gt; + "." + &lt;extension&gt;</pre> + then the extracted filename (path omitted) becomes + <pre>&lt;basename&gt; + &lt;unique number&gt; + "." + &lt;extension&gt;</pre> + <br/> + + + + + + + + + + + + Generate WSDL of parent or specified adapter. + + + + + + + + + + + + XmlValidator that will read the XSD's to use from a WSDL. As it extends the + SoapValidator is will also add the SOAP envelope XSD. + + + + + + + + + + + + Perform an XQuery. + + + + + + + + + + + + Selects an forward, based on XPath evaluation + + + + + + + + + + + + Selects an exitState, based on either the content of the input message, by means + of a XSLT-stylesheet, the content of a session variable or, by default, by returning the name of the root-element. + + + + + + + + + + + + Pipe that validates the input message against a XML Schema. + + + + + + + + + + + + <code>Pipe</code> that checks the well-formedness of the input message. + If <code>root</code> is given then this is also checked. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet. + + + + + + + + + + + + Sends a message to a Sender for each entry of its input, that must be an ZipInputStream. The input of the pipe must be one of: + <ul> + <li>String refering to a filename</li> + <li>File</li> + <li>InputStream</li> + </ul> + The message sent each time to the sender is the filename of the entry found in the archive. + The contents of the archive is available as a Stream or a String in a session variable. + + <br/> + + + + + + + + + + + + Pipe that creates a ZIP archive (on action close). + <p> + A chain of zipWriterPipes can be used to create a ZIP archive. You can use the pipe with different actions (see specified below). + Action <code>CLOSE</code> will generate the ZIP archive which is returned as the pipe ouput. + </p> + + + + + + + + + + + + + + + + + + + + sets URL to the pascal file with label-constants generated by the ADIOS-utility. Default: nnrscons.pas + + + + + Transformation direction. Default: Adios2Xml + + + + + + + + Sets name of the rekenbox to be called + + + + + Name of the SessionKey to retrieve the rekenbox name from + + + + + Sets the name of the forward used when no conversion to XML was performed, because the input was already XML. Default: noconversion + + + + + + + + + + + + + + + + Charset to be used to encode the given input string Default: UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default: ENCODE + + + + + + + + Character encoding to be used to when reading input from strings for direction=encode or writing data for direction=decode. + + + + + (Only used when direction=encode) Defines separator between lines. Special values: <code>auto</code>: platform default, <code>dos</code>: crlf, <code>unix</code>: lf Default: auto + + + + + (Only used when direction=encode) Each line of encoded data will be at most of the given length (rounded down to nearest multiple of 4). If linelength &lt;= 0, then the output will not be divided into lines Default: 76 + + + + + + + + + + + If true, then this pipe can provide an OutputStream to the previous pipe, to write its output to. Can be used to switch this streaming off for debugging purposes Default: set by appconstant streaming.auto + + + + + + + + + + + + + + + + Directory in which the transformed file(s) is stored + + + + + Directory to which the inputfile is moved in case an error occurs + + + + + Number of copies held of a file with the same name. Backup files have a dot and a number suffixed to their name. If set to 0, no backups will be kept. Default: 5 + + + + + If set <code>true</code>, the destination file will be deleted if it already exists Default: false + + + + + If set <code>true</code>, the file processed will deleted after being processed, and not stored Default: false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If set <code>true</code> the original block is stored under the session key <code>originalBlock</code>. Default: false + + + + + If set to <code>false</code>, the inputstream is not closed after it has been used. Default: true + + + + + Characterset used for reading file or inputstream" Default: UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + Stylesheet to apply to each message, before sending it + + + + + Alternatively: xpath-expression to create stylesheet from + + + + + + Only valid for xpathexpression Default: text + + + + + + + + Force the transformer generated from the xpath-expression to omit the xml declaration Default: true + + + + + + + + + + + + + + + Controls multiline behaviour. When set to a value greater than 0, it specifies the number of rows send, in a one block, to the sender. Default: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + For asynchronous communication, the server side may either use the messageID or the correlationID + in the correlationID field of the reply message. Use this property to set the behaviour of the reply-listener. Default: CORRELATIONID + + + + + + + + Stylesheet to extract correlationid from message + + + + + XPath expression to extract correlationid from message + + + + + Namespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitions + + + + + Key of a PipelineSession-variable. If specified, the value of the PipelineSession variable is used as input for the XPathExpression or stylesheet, instead of the current input message + + + + + Stylesheet to extract label from message + + + + + XPath expression to extract label from message + + + + + Namespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitions + + + + + XPath expression to extract audit trail from message + + + + + Namespace defintions for auditTrailXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitions + + + + + Key of a PipelineSession-variable. If specified, the value of the PipelineSession variable is used as audit trail (instead of the default 'no audit trail) + + + + + If set <code>true</code>, the input of the Pipe is used to extract audit trail, correlationid and label (instead of the wrapped input) Default: true + + + + + Next to common usage in AbstractPipe, also strings in the error/logstore are masked + + + + + (Only used when hideRegex is not empty and only applies to error/logstore) Default: all + + + + + + + + If set <code>true</code>, the XML Well-Formedness of the result is checked Default: false + + + + + If set, besides the XML Well-Formedness the root element of the result is checked to be equal to the value set + + + + + The message (e.g. 'receiver timed out') that is returned when the time listening for a reply message + exceeds the timeout, or in other situations no reply message is received. + + + + + The number of times a processing attempt is retried after a timeout or an exception is caught or after an incorrect reply is received (see also <code>retryXPath</code>) Default: 0 + + + + + The starting number of seconds waited after an unsuccessful processing attempt before another processing attempt is made. Each next retry this interval is doubled with a upper limit of <code>retryMaxInterval</code> Default: 1 + + + + + The maximum number of seconds waited after an unsuccessful processing attempt before another processing attempt is made Default: 600 + + + + + XPath expression evaluated on each technical successful reply. Retry is done if condition returns true + + + + + Namespace defintions for retryXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitions + + + + + If the previous call was a timeout, the maximum time <i>in seconds</i> after this timeout to presume the current call is also a timeout. Default: 0 + + + + + If set, the pipe returns a message from a file, instead of doing the regular process + + + + + If not empty, a TimeoutException is thrown when the result equals this value (for testing purposes only) + + + + + If not empty, a PipeRunException is thrown when the result equals this value (for testing purposes only) + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + The SQL query text to be excecuted each time sendMessage() is called. When not set, the input message is taken as the query + + + + + JNDI name of datasource to be used, can be configured via jmsRealm, too Default: jdbc.datasource.default + + + + + Named parameters will be auto detected by default. Every string in the query which equals <code>?{paramname}</code> will be replaced by the value of the corresponding parameter. The parameters don't need to be in the correct order and unused parameters are skipped. + + + + + Remove trailing blanks from all result values. Default: true + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + When set <code>true</code>, exclusive row-level locks are obtained on all the rows identified by the select statement (e.g. by appending ' FOR UPDATE NOWAIT SKIP LOCKED' to the end of the query) Default: false + + + + + when set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1 + + + + + If true, then select queries are executed in a way that avoids taking locks, e.g. with isolation mode 'read committed' instead of 'repeatable read'. Default: false + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database Default: false + + + + + controls whether blobdata is stored compressed in the database Default: true + + + + + + + + + + + + + + + + Controls multiline behaviour. If set to a value greater than 0, it specifies the number of rows send in a block to the sender. Default: 0 (one line at a time, no prefix of suffix) + + + + + If <code>startPosition &gt;= 0</code>, this field contains the start position of the key in the current record (first character is 0); + A sequence of lines with the same key is put in one block and send to the sender. Cannot be used in combination with blockSize. Default: -1 + + + + + If <code>endPosition &gt;= startPosition</code>, this field contains the end position of the key in the current record Default: -1 + + + + + If <code>true</code>, all items in a block are sent at once. If set false, items are sent individually, potentially leveraging block enabled sending capabilities of the sender Default: true + + + + + If <code>combineBlocks = true</code>, this string is inserted at the start of each block. Requires <code>blockSize</code> or <code>startPosition</code> and <code>endPosition</code> to be set too. Default: &lt;block&gt; + + + + + If <code>combineBlocks = true</code>, this string is inserted at the end of the set of lines. Requires <code>blockSize</code> or <code>startPosition</code> and <code>endPosition</code> to be set too. Default: &lt;/block&gt; + + + + + This string is inserted at the start of each item + + + + + This string is appended at the end of each item + + + + + Escape XML characters in each item Default: false + + + + + + + + Stylesheet to apply to each message, before sending it + + + + + Alternatively: xpath-expression to create stylesheet from + + + + + + Only valid for xpathexpression Default: text + + + + + + + + Force the transformer generated from the xpath-expression to omit the xml declaration Default: true + + + + + + + + + + + + + + + + + + + + + + + + + + + + Character encoding to be used to encode message before calculating checksum. + + + + + Type of checksum to be calculated Default: MD5 + + + + + + + + + + + + + + + + + + + files that match this pattern will be deleted. parameters of the pipe are applied to this pattern. if this attribute is not set, the input of the pipe is interpreted as the file to be removed + + + + + session key that contains the pattern of files to be deleted, only used if filePattern is not set + + + + + time in milliseconds after last modification that must have passed at least before a file will be deleted (set to negative value to disable) Default: 0 + + + + + when <code>true</code>, files in subdirectories will be deleted, too Default: false + + + + + when <code>true</code>, empty subdirectories will be deleted, too Default: false + + + + + filter of files to delete. if not set and a directory is specified, all files in the directory are interpreted to be deleted + + + + + filter of files to be excluded for deletion + + + + + Minimal age of file <i>in milliseconds</i>, to avoid deleting a file while it is still being written (only used when wildcard is set) (set to 0 to disable) Default: 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + when set <code>true</code> the string values to compare are considered to be xml strings and before the actual compare both xml strings are transformed to a canonical form Default: false + + + + + + + + + + + + + + + + if <code>true</code> the pipe compresses, otherwise it decompress Default: false + + + + + required if result is a file, the pattern for the result filename. Can be set with variables e.g. {file}.{ext}.zip in this example the {file} and {ext} variables are resolved with sessionKeys with the same name + + + + + flag indicates whether the message is the content or the path to a file with the contents. for multiple files use ';' as delimiter Default: false + + + + + required if result is a file, the directory in which to store the result file + + + + + flag indicates whether the result must be written to the message or to a file (filename = message) Default: false + + + + + the pattern for the zipentry name in case a zipfile is read or written + + + + + + + + + + + + + + + + + + + + + CICS userId of account perform operation + + + + + Password corresponding with userId + + + + + Optional URL of XSLT-stylesheet to apply to message before calling proxy + + + + + Optional URL of XSLT-stylesheet to apply to result of proxy + + + + + Optional URL of XML-Schema of proxy input message. If specified it is used to validate the input message + + + + + + + + + + + + + + + + + Default: 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name of the sessionkey that holds a stream to the certificate of the issuer who signed the crl. the steam is closed after reading + + + + + + + + + + + + + + + + Specifies if the first line should be treated as header or as data Default: true + + + + + Comma separated list of header names. If set, then <code>fileContainsHeader</code> defaults to false. If not set, headers are taken from the first line + + + + + Character that separates fields Default: , + + + + + When set, character casing will be changed for the header + + + + + + + + Format the XML output in easy legible way + + + + + + + + + + + + + + + + The time <i>in milliseconds</i> the thread will be put to sleep Default: 5000 + + + + + + + + + + + + + + + + when <code>true</code>, a piperunexception is thrown. otherwise the output is only logged as an error (and returned in a xml string with 'error' tags) Default: true + + + + + timeout in seconds of obtaining a result Default: 30 + + + + + + + + + + + + + + + + + the name of the table that contains the mapping Default: mapping + + + + + the name of the column labels are stored in Default: label + + + + + the name of the column source values are stored in Default: valuein + + + + + the name of the column destination values are stored in Default: valueout + + + + + + + + + + + + + + + + + + + + + substring to start translation + + + + + substring to end translation + + + + + + + + + + when set <code>true</code> special characters in <code>substringstart</code> and <code>substringend</code> are first translated to their xml equivalents Default: false + + + + + + + + + + + + + + + + when <code>true</code>, a piperunexception is thrown. otherwise the output is only logged as an error (and no rollback is performed). Default: true + + + + + + + + + + + + + + + + Should values between ${ and } be resolved. If true, the search order of replacement values is: + system properties (1), pipelinesession variables (2), application properties (3). Default: false + + + + + Name of the file containing the result message. + + + + + Name of the session key containing the file name of the file containing the result message. + + + + + Returned message. + + + + + If set, every occurrence of this attribute's value is replaced by the value of <code>replaceTo</code>. + + + + + See <code>replaceFrom</code>. + + + + + File name of XSLT stylesheet to apply. + + + + + When set <code>true</code>, parameter replacement matches <code>name-of-parameter</code>, not <code>${name-of-parameter}</code> Default: false + + + + + + + + + + + + + + + + comma separated list of attachment properties to list + + + + + comma separated list of attachment properties not to list. When specified, 'onlyProperties' is ignored + + + + + + + + + + + + + + + + Element name (not an XPath-expression), qualified via attribute <code>namespaceDefs</code>, used to determine the 'root' of elements to be iterated over, i.e. the root of the set of child elements. + When empty, the pipe will iterate over each direct child element of the root + + + + + Element name (not an XPath-expression), qualified via attribute <code>namespaceDefs</code>, used to determine the type of elements to be iterated over, i.e. the element name of each of the child elements. + When empty, the pipe will iterate over any direct child element of the root or specified containerElement + + + + + XPath-expression used to determine the set of elements to be iterated over, i.e. the set of child elements. When empty, the effective value is \/*\/*, i.e. the pipe will iterate over each direct child element of the root. + Be aware that memory consumption appears to increase with file size when this attribute is used. When possible, use containerElement and/or targetElement instead. + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) XSLT processor 2.0 or 3.0 will be used, supporting XPath 2.0 or 3.0 respectively, otherwise an XSLT processor 1.0 (org.apache.xalan), supporting XPath 1.0. N.B. Be aware that setting this other than 1 might cause the input file being read as a whole in to memory, as XSLT Streaming is currently only supported by the XSLT Processor that is used for xsltVersion=1 Default: 1 + + + + + If set <code>true</code> namespaces (and prefixes) are removed from the items just before forwarding them to the sender. N.B. This takes place <strong>after</strong> the transformation for <code>elementXPathExpression</code> if that is specified + + + + + + + + + + + + + + + + Key of the session variable to retrieve the output message from. When left unspecified, the input message is used as the key of the session variable + + + + + <ul><li><code>string</code>: renders the contents</li><li><code>map</code>: converts a Map&lt;String, String&gt; object to a xml-string (&lt;items&gt;&lt;item name='...'&gt;...&lt;/item&gt;&lt;item name='...'&gt;...&lt;/item&gt;&lt;/items&gt;)</li></ul> Default: string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + URL or base of URL to be used. When multiple URLs are defined (comma separated list), the first URL is used of which the server has an active state + + + + + alias used to obtain credentials for authentication to host + + + + + username used in authentication to host + + + + + password used in authentication to host + + + + + when set to <code>true</code>, temporary queues are skipped Default: false + + + + + when set to <code>true</code>, the length of the queue message is returned instead of the queue message self (when parameter <code>queueName</code> is not empty) Default: false + + + + + + + + + + + + + + + + + Hash Algorithm to use Default: HmacSHA256 + + + + + + + + Character set to use for converting the secret from String to bytes Default: UTF-8 + + + + + Method to use for converting the hash from bytes to String Default: Base64 + + + + + + + + The secret to hash with. Only used if no parameter secret is configured. The secret is only used when there is no authAlias specified, by attribute or parameter + + + + + authAlias to retrieve the secret from (password field). Only used if no parameter authAlias is configured + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reference to the session variable whose value is to be increased + + + + + amount to increment the value. Can be set from the attribute or the parameter 'increment' Default: 1 + + + + + + + + + + + + + + + + the j2ee role to check. + + + + + + + + + + + + + + + + forward returned when <code>'true'</code> Default: then + + + + + forward returned when 'false' Default: else + + + + + return elseforward when input is empty (or thenforward) Default: true + + + + + + + + + + + + + + + + Direction of the transformation. Default: JSON2XML + + + + + + + + When direction is JSON2XML, it wraps a root element around the converted message. + When direction is XML2JSON, it includes the name of the root element as a key in the converted message. Default: TRUE when JSON2XML and FALSE when XML2JSON + + + + + Format the output in easy legible way (currently only for XML) + + + + + + + + + + + + + + + + + + + + + When <code>true</code>, the xml result of the transformation is converted back to json Default: true + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions Default: j=http://www.w3.org/2013/XSL/json + + + + + + + + If true, then this pipe will process the XSLT while streaming in a different thread. Can be used to switch streaming xslt off for debugging purposes Default: set by appconstant xslt.streaming.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheet + + + + + For xpathExpression only Default: text + + + + + + + + If set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text. + Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + + + + + + + + + If true, then this pipe will process the XSLT while streaming in a different thread. Can be used to switch streaming xslt off for debugging purposes Default: set by appconstant xslt.streaming.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheet + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some other use cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + If left empty, an the xpathExpression will match any namespace + + + + + For xpathExpression only Default: text + + + + + + + + If set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text. + Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + + + + + + + + + + + + sets transformation direction. Possible values + <ul> + <li>"Xml2Label": transform an XML file to ascii</li> + <li>"Label2Xml": transform an ascii file to XML</li> + </ul> + default: None + + + + + + + + + + + + + + + + whether or not to write results to the logfile (testtool4&lt;instance.name&gt;) Default: false + + + + + whether or not to write results to system out Default: false + + + + + Set to <code>true</code> when the pipeline is triggered by a user (e.g. using an http based listener + that will add a securityHandler session key) and you don't want the listener to check whether the user + is autorised and/or you want the enforce the roles as configured for the Ladybug Default: false + + + + + Set to <code>true</code> to enable Ladybug's report generator for the duration of the scheduled report runs + then revert it to its original setting Default: false + + + + + When set, reports with a full path (path + name) that matches with the specified regular expression are skipped. For example, \"/Unscheduled/.*\" or \".*SKIP\". + + + + + + + + + + + + + + + + Default: false + + + + + Default: false + + + + + The scenario sub directory to execute + + + + + the larva log level: one of [debug], [pipeline messages prepared for diff], [pipeline messages], [wrong pipeline messages prepared for diff], [wrong pipeline messages], [step passed/failed], [scenario passed/failed], [scenario failed], [totals], [error] Default: wrong pipeline messages + + + + + Default: 100ms + + + + + the larva timeout Default: 10000 + + + + + + + + + + + + + + + + + + + + + + + + + + + when <code>true</code>, the memberOf attribute is also searched in all the found members Default: true + + + + + + + + + + + Url to context to search in, e.g. 'ldaps://DOMAIN.EXT'. + + + + + Host part of ldapProviderUrl. Only used when ldapProviderUrl not specified + + + + + Port of ldapProviderUrl. Only used when ldapProviderUrl not specified + + + + + Indication to use ldap or ldaps in ldapProviderUrl. Only used when ldapProviderUrl not specified Default: false + + + + + BaseDN, e.g. CN=USERS,DC=DOMAIN,DC=EXT Default: false + + + + + Alias used to obtain credentials to connect to ldap server + + + + + Username used to obtain credentials to connect to ldap server + + + + + Password used to obtain credentials to connect to ldap server + + + + + + PipeForward used when an exception is caught + + + + + + + + + + + + + + + + The dn of the group to search in when the parameter dnSearchIn is not set + + + + + The dn of the member to search for when the parameter dnFind is not set + + + + + when <code>true</code>, the member attribute is also searched in all the found members Default: true + + + + + + + + + + + + + + + + the folder that serves as the root of this virtual filesystem + + + + + + + + + + + If parameter [action] is set, then the attribute action value will be overridden with the value of the parameter. + + + + + + + + Filename to operate on. If not set, the parameter filename is used. If that is not set either, the input is used + + + + + Destination for move, copy or rename. If not set, the parameter destination is used. If that is not set either, the input is used + + + + + Folder that is scanned for files when action=list. When not set, the root is scanned + + + + + If set <code>true</code>, the folder to create, write, move or copy the file to is created if it does not exist Default: false + + + + + If set <code>true</code>, for actions create, move, copy or rename, the destination file is overwritten if it already exists Default: false + + + + + For action=append: If set to a positive number, the file is rotated each day, and this number of files is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + For action=append: If set to a positive number, the file is rotated when it has reached the specified size, and the number of files specified in numberOfBackups is kept. Size is specified in plain bytes, suffixes like 'K', 'M' or 'G' are not recognized. The inputFolder must point to the directory where the file resides Default: 0 + + + + + For the actions write and append, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions move, copy, delete and list + + + + + Filter of files to be excluded when looking in inputFolder. Works with actions move, copy, delete and list + + + + + If set to <code>true</code> then the folder and the content of the non empty folder will be deleted. + + + + + If set to <code>true</code> then the system specific line separator will be appended to the file after executing the action. Works with actions write and append Default: false + + + + + Charset to be used for read and write action + + + + + If set to true then the folder will be deleted if it is empty after processing the action. Works with actions delete, readDelete and move + + + + + OutputFormat Default: XML + + + + + + + + + + + + + + + + + + + If set <code>true</code> the ThreadContext parameters will be exported from the current PipeLine up in the call tree. Default: false + + + + + + + + + + + + + + + + + + + + + Action to be taken when pipe is executed. + + + + + + + + Recipients to be used during encryption stage. If multiple, separate with ';' (semicolon) + + + + + Emails of the senders. This will be used to verify that all the senders have signed the given message. + If not set, and the action is verify; this pipe will validate that at least one person has signed. + For signing action, it needs to be set to the email that was used to generate the private key + "that is being used for this process. + + + + + Path to the private key. It will be used when signing or decrypting. + + + + + Password for the private key. + + + + + Path to the recipient's public key. It will be used for encryption and verification. + + + + + + + + + + + + + + + + whether the securerandom algorithm is to be used (slower) Default: true + + + + + the lowercase characters to use Default: ('a'..'z') + + + + + the uppercase characters to use Default: ('A'..'Z') + + + + + the numbers to use Default: ('0'..'9') + + + + + the signs to use Default: (;:_%$#@!&gt;&lt;) + + + + + the number of lowercase characters in the generated password Default: 2 + + + + + the number of digits in the generated password Default: 2 + + + + + the number of sign characters in the generated password Default: 2 + + + + + the number of uppercase characters in the generated password Default: 2 + + + + + + + + + + + + + + + + name of sessionkey that holds the hash which will be used to validate the password (input of the pipe) + + + + + + + + + + + + + + + + + + + + + + + session key that contains the document that the attachments will be attached to. Only used when action is set to 'combine' Default: defaultMainDocumentSessionKey + + + + + session key that contains the filename to be attached. Only used when the action is set to 'combine' Default: defaultFileNameToAttachSessionKey + + + + + fonts folder to load the fonts. If not set then a temporary folder will be created to extract fonts from fonts.zip everytime. Having fontsDirectory to be set will improve startup time + + + + + + charset to be used to decode the given input message in case the input is not binary but character stream Default: UTF-8 + + + + + aspose license location including the file name. It can also be used without license but there some restrictions on usage. If license is in resource, license attribute can be license file name. If the license is in somewhere in filesystem then it should be full path to file including filename and starting with file://// prefix. classloader.allowed.protocols property should contain 'file' protocol + + + + + when sets to false, converts the file including the attachments attached to the main file. when it is true, saves each attachment separately Default: false + + + + + directory to save resulting pdf files after conversion. If not set then a temporary directory will be created and the conversion results will be stored in that directory. + + + + + when set to true, external resources, such as stylesheets and images found in HTML pages, will be loaded from the internet Default: false + + + + + + + + + + + + + + + + Key of the session variable to store the input in + + + + + Value to store in the <code>pipeLineSession</code>. If not set, the input of the pipe is stored + + + + + + + + + + + + + + + + Key of session variable to store systemdate in Default: systemDate + + + + + Format to store date in Default: full ISO format: DateUtils.fullIsoFormat + + + + + Time zone to use for the formatter Default: the default time zone for the JVM + + + + + Set to a time <i>in milliseconds</i> to create a value that is different to the previous returned value by a PutSystemDateInSession pipe in + this virtual machine or <code>-1 to disable</code>. The thread will sleep for the specified time before recalculating a new value. Set the + timezone to a value without Daylight Saving Time (like GMT+1) to prevent this pipe to generate two equal value's when the clock is set back. + <b>note:</b> When you're looking for a GUID parameter for your XSLT it might be better to use + &lt;param name=&quot;guid&quot; pattern=&quot;{hostname}_{uid}&quot;/&gt;, see Parameter. Default: -1 + + + + + If <code>true</code>, the date/time returned will always be 2001-12-17 09:30:47 (for testing purposes only). It is overridden by the value of the pipelinesession key <code>stub4testtool.fixeddate</code> when it exists Default: false + + + + + If set to 'true' then current time stamp in millisecond will be stored in the sessionKey Default: false + + + + + + + + + + + + + + + + Fixed name of the rekenbox (or wrapper) to be called. If empty, the name is determined from the request + + + + + Directory on server where rekenbox-executable can be found + + + + + Rekenbox template directory on server + + + + + Directory on server where input and output files are (temporarily) stored + + + + + Format of commandline of rekenbox. Possible values + "straight": rekenbox is called like: rekenbox.exe inputFileName outputFileName templateDir + "switches": rekenbox is called like: rekenbox.exe /IinputFileName /UoutputFileName /PtemplateDir + "redirected": rekenbox is called like: rekenbox.exe inputFileName templateDir > outputFileName; (This method has not been fully tested) + + + + + Extension of rekenbox-executable + + + + + If <code>true</code>, input and output files are removed after the call to the rekenbox is finished + + + + + Key in pipeLineSession to store rekenbox name in + + + + + First part of filenames that communicate requests and replies to rekenbox + + + + + Maximal number that will be concatenated to dataFilenamePrefix + + + + + + + + + + + + + + + + Name of the cache from which items are to be removed + + + + + XPath expression to extract cache key from request message + + + + + Output type of xpath expression to extract cache key from request message, must be 'xml' or 'text' Default: text + + + + + + + + Namespace defintions for keyXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + Stylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messages + + + + + Session key to use as input for transformation of request message to key by keyXPath or keyStyleSheet + + + + + + + + + + + + + + + + name of the key of the entry in the <code>pipelinesession</code> to remove. if this key is empty the input message is interpretted as key. for multiple keys use ',' as delimiter + + + + + + + + + + + + + + + + Sets the string that is searched for. + + + + + Sets the string that will replace each of the occurrences of the find-string. + + + + + sets the string the representation in find and replace of the line separator + + + + + Replace all non XML chars (not in the <a href="http://www.w3.org/TR/2006/REC-xml-20060816/#NT-Char">character range as specified by the XML specification</a>) with replaceNonValidXmlCharacters Default: false + + + + + character that will replace each non valid xml character (empty string is also possible) (use &amp;#x00bf; for inverted question mark) Default: empty string + + + + + Whether to allow Unicode supplementary characters (like a smiley) during replaceNonValidXmlCharacters Default: false + + + + + + + + + + + + + + + + + + + + + Shared folder name in the samba server + + + + + the smb share username + + + + + the smb share password + + + + + alias used to obtain credentials for the smb share + + + + + in case the user account is bound to a domain + + + + + controls whether hidden files are seen or not Default: false + + + + + + + + + + + + + + + + + + Type of the authentication either 'NTLM' or 'SPNEGO'. + When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGO + + + + + + + + alias used to obtain credentials for the smb share + + + + + the smb share username + + + + + the smb share password + + + + + domain, in case the user account is bound to a domain + + + + + + Key Distribution Center, typically hosted on a domain controller. + Stored in <code>java.security.krb5.kdc</code> + + + + + Kerberos Realm, case sensitive. Typically upper case and the same as the domain name. + An Active Directory domain acts as a Kerberos Realm. + Stored in <code>java.security.krb5.realm</code> + + + + + + + + + + + + + + + + + + + + + Name of the SapSystem used by this object + + + + + One of: begin, commit, rollback, release + + + + + Session key under which information is stored + + + + + + + + + + + + + + + + + + + + + + + + + + + + + URL or base of URL to be used. When multiple URLs are defined (comma separated list), the first URL is used of which the server has an active state + + + + + alias used to obtain credentials for authentication to host + + + + + username used in authentication to host + + + + + password used in authentication to host + + + + + The name of the queue which is used for browsing one queue + + + + + Protocol of Tibco service to be called + + + + + + + + Maximum time in milliseconds to wait for a reply. 0 means no timeout. (Only for messageProtocol=RR) Default: 5000 + + + + + If empty then derived from queueName (if $messagingLayer='P2P' then '$applicationFunction' else '$operationName_$operationVersion) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Action to be taken when pipe is executed. Default: SIGN + + + + + + + + The signing algorithm Default: ALGORITHM_DEFAULT + + + + + Cryptography provider + + + + + if true, the signature is (expected to be) base64 encoded Default: true + + + + + Keystore to obtain signing key + + + + + Type of keystore, can be pkcs12 or pem Default: pkcs12 + + + + + + + + Alias used to obtain keystore password + + + + + Keystore password + + + + + Alias in keystore + + + + + Alias used to obtain keystoreAlias password + + + + + KeystoreAlias password + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + + + + + + + + + + + + + + + + + Number of bytes (for binary input) or characters (for character input) to skip. An empty byte array or string is returned when skip is larger then the length of the input Default: 0 + + + + + If length>=0 only these number of bytes (for binary input) or characters (for character input) is returned. Default: -1 + + + + + + + + + + + + + + + + If set, each record has to end with this string. If a line read doesn't end with this string more lines are added (including line separators) until the total record ends with the given string + + + + + Marks the start of a new record. If set, a new record is started when this line is read. + + + + + If set to <code>false</code>, the inputstream is not closed after it has been used Default: true + + + + + + + + + + + + + + + + (only used for parameter <code>httprequest</code>) when true the first part is not put in a session key but returned to the pipeline (as the result of this pipe) Default: false + + + + + (only used when <code>extractfirststringpart=true</code>) the session key to put the xml in with info about the stored parts Default: <code>multipartxml</code> + + + + + (only used for parameter <code>httprequest</code>) when true parts are checked for antivirus scan returncode. these antivirus scan parts have been added by another application (so the antivirus scan is not performed in this pipe). for each file part an antivirus scan part have been added by this other application (directly after this file part) Default: false + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) name of antivirus scan status parts Default: <code>antivirus_rc</code> + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) name of antivirus scan message parts Default: <code>antivirus_msg</code> + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) message of antivirus scan parts which indicates the antivirus scan passed Default: <code>pass</code> + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) when true and the antivirusfailed forward is specified and the antivirus scan did not pass, a soap fault is returned instead of only a plain error message Default: false + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) if not empty and the antivirusfailed forward is specified and the antivirus scan did not pass, the error message (or soap fault) is stored in this session key and the first string part is returned to the pipeline + + + + + + + + + + + + + + + + The xml tag to encapsulate the text in + + + + + Controls whether the lines of the input are places in separated &lt;line&gt; tags Default: false + + + + + Replace all non xml chars (not in the <a href="http://www.w3.org/tr/2006/rec-xml-20060816/#nt-char">character range as specified by the xml specification</a>) + with the inverted question mark (0x00bf) Default: true + + + + + Controls whether the text to encapsulate should be put in a cdata section Default: true + + + + + + + + + + + + + + + + Set the maximum number of characters of a block Default: 160 + + + + + If true, try to break up the message at spaces, instead of in the middle of words Default: false + + + + + + + + + + + + + + + + Format of generated string. Default: alphanumeric + + + + + + + + + + + + + + + + + + + Directory to extract the archive to + + + + + Sessionkey with a directory value to extract the archive to + + + + + If set <code>false</code>, only a small summary (count of items in zip) is returned Default: true + + + + + If set <code>true</code>, the contents of the files in the zip are returned in the result xml message of this pipe. Please note this can consume a lot of memory for large files or a large number of files Default: false + + + + + Comma separated list of file extensions. Files with an extension which is part of this list will be base64 encoded. All other files are assumed to have UTF-8 when reading it from the zip and are added as escaped xml with non-unicode-characters being replaced by inverted question mark appended with #, the character number and ; Default: false + + + + + If set <code>false</code>, a suffix is added to the original filename to be sure it is unique Default: false + + + + + If set <code>true</code>, the path of the zip entry will be preserved. Otherwise, the zip entries will be extracted to the root folder Default: false + + + + + If set <code>true</code>, validation of directory is ignored Default: false + + + + + + + + + + + + + + + + either parent (adapter of pipeline which contains this pipe) or input (name of adapter specified by input of pipe), adapter must be within the same Configuration Default: parent + + + + + + + + + + + + + + + + name of the file (resource) on the classpath to read the xquery from + + + + + name of the file on the file system to read the xquery from + + + + + + + + + + + + + + + + a string to compare the result of the xpathexpression (or the input-message itself) to. if not specified, a non-empty result leads to the 'then'-forward, an empty result to 'else'-forward + + + + + forward returned when <code>'true'</code> Default: then + + + + + forward returned when 'false' Default: else + + + + + xpath expression to be applied to the input-message. if not set, no transformation is done + + + + + regular expression to be applied to the input-message (ignored if xpathexpression is specified). the input-message matching the given regular expression leads to the 'then'-forward + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan) Default: 2 + + + + + namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. + + + + + controls namespace-awareness of XSLT transformation Default: true + + + + + + + + + + + + + + + + stylesheet may return a string representing the forward to look up Default: <i>a stylesheet that returns the name of the root-element</i> + + + + + xpath-expression that returns a string representing the forward to look up. It's possible to refer to a parameter (which e.g. contains a value from a sessionkey) by using the parameter name prefixed with $ + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + + + + + Forward returned when the pipename derived from the stylesheet could not be found. + + + + + Forward returned when the content, on which the switch is performed, is empty. if <code>emptyforwardname</code> is not specified, <code>notfoundforwardname</code> is used. + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + Selected forward name will be stored in the specified session key. + + + + + Session key that will be used to get the forward name from. + + + + + controls namespace-awareness of XSLT transformation Default: true + + + + + + + + + + + + + + + + Session key used to store contents of each zip entry Default: zipdata + + + + + If set to <code>false</code>, a string containing the contents of the entry is placed under the session key, instead of the inputstream to the contents Default: true + + + + + If set to <code>false</code>, the inputstream is not closed after it has been used Default: true + + + + + Charset used when reading the contents of the entry (only used if streamingContents=false) Default: utf-8 + + + + + If set to <code>true</code>, a possible bytes order mark (BOM) at the start of the file is skipped (only used for encoding uft-8) Default: false + + + + + + + + + + + + + + + + Only for action='write': If set to <code>true</code>, the fields 'crc-32', 'compressed size' and 'uncompressed size' in the zip entry file header are set explicitly (note: compression ratio is zero) Default: false + + + + + + + + + + + Collectors must be opened before you can write content to them, after it's closed you can no longer write to it. Default: WRITE + + + + + + + + Session key used to refer to collection. Must be specified with another value if multiple CollectorPipes are active at the same time in the same session Default: collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1. This method first stores all database jobs that can are found in the Quartz Scheduler in a Map. + 2. It then loops through all records found in the database. + 3. If the job is found, remove it from the Map and compares it with the already existing scheduled job. + Only if they differ, it overwrites the current job. + If it is not present it add the job to the scheduler. + 4. Once it's looped through all the database jobs, loop through the remaining jobs in the Map. + Since they have been removed from the database, remove them from the Quartz Scheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the job + + + + + Description of the job + + + + + CRON expression that determines the frequency of execution. + Can <code>not</code> be used in combination with Interval. + + + + + Triggers the Job at the specified number of milliseconds. Keep cronExpression empty in order to use interval. + Value <code>0</code> may be used to run once at startup of the application. + A value of 0 in combination with function 'sendMessage' will set dependencyTimeout on the IbisLocalSender to -1 to keep waiting indefinitely instead of 60 seconds for the adapter to start. + + + + + Number of threads that may execute concurrently Default: 1 + + + + + Number of messages displayed in ibisconsole Default: 10 + + + + + + + + + + + + + + + + The number of seconds the database driver will wait for a statement to execute. If the limit is exceeded, a TimeoutException is thrown. 0 means no timeout Default: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The SQL query text to be executed + + + + + JNDI name of datasource to be used Default: jdbc.datasource.default + + + + + The number of seconds the database driver will wait for a statement to execute. If the limit is exceeded, a TimeoutException is thrown. 0 means no timeout Default: 0 + + + + + + + + + + + + + + + + + + + + + Configuration on which job operates + + + + + Adapter on which job operates + + + + + Receiver on which job operates + + + + + + + + + + + + + + + + + + + + + + + + + + JavaListener to send the message to + + + + + message to be send into the pipeline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IMonitorAdapter that uses a sender to send its message. + + + + + + + + + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A Trigger that starts its life with type = ALARM. The type of the trigger can be changed dynamically. + + + + + + + + + + + + A Trigger that starts its life with type = CLEARING. The type of the trigger can be changed dynamically. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shared HTTPSession, implements SharedResource so it can be set in the Configuration.xml + + + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If the Configuration should automatically start all Adapters and Jobs. + + + + + Configurations should be wired through Spring, which in turn should call #setBeanName(String). + Once the ConfigurationContext has a name it should not be changed anymore, hence + super.setBeanName(String) only sets the name once. + If not created by Spring, the setIdCalled flag in AbstractRefreshableConfigApplicationContext wont be set, allowing the name to be updated. + + The DisplayName will always be updated, which is purely used for logging purposes. + + + + + + + + + + Renders the contents of the first node (in combination with xslt or xpath). Please note that + if there are child nodes, only the contents are returned, use <code>XML</code> if the xml tags are required + + + + + Renders an xml-nodeset as an xml-string (in combination with xslt or xpath). This will include the xml tags + + + + + Renders the CONTENTS of the first node as a nodeset + that can be used as such when passed as xslt-parameter (only for XSLT 1.0). + Please note that the nodeset may contain multiple nodes, without a common root node. + N.B. The result is the set of children of what you might expect it to be... + + + + + Renders XML as a DOM document; similar to <code>node</code> + with the distinction that there is always a common root node (required for XSLT 2.0) + + + + + Converts the result to a Date, by default using formatString <code>yyyy-MM-dd</code>. + When applied as a JDBC parameter, the method setDate() is used + + + + + Converts the result to a Date, by default using formatString <code>HH:mm:ss</code>. + When applied as a JDBC parameter, the method setTime() is used + + + + + Converts the result to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code>. + When applied as a JDBC parameter, the method setTimestamp() is used + + + + + Similar to <code>DATETIME</code>, except for the formatString that is <code>yyyy-MM-dd HH:mm:ss.SSS</code> by default + + + + + Converts the result from a XML formatted dateTime to a Date. + When applied as a JDBC parameter, the method setTimestamp() is used + + + + + Converts the result to a Number, using decimalSeparator and groupingSeparator. + When applied as a JDBC parameter, the method setDouble() is used + + + + + Converts the result to an Integer + + + + + Converts the result to a Boolean + + + + + Forces the parameter value to be treated as binary data (e.g. when using a SQL BLOB field). + When applied as a JDBC parameter, the method setBinaryStream() or setBytes() is used + + + + + Forces the parameter value to be treated as character data (e.g. when using a SQL CLOB field). + When applied as a JDBC parameter, the method setCharacterStream() or setString() is used + + + + + + + + + + + + + + + + + + + + + + + + + + + (Only for produces) Attempts to detect the MimeType as well as charset when not known + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fire & Forget protocol + + + + + Request-Reply protocol + + + + + + + + + + + + + + + + + + + + + + + auto or auto_acknowledge: Specifies that the session is to automatically acknowledge consumer receipt of + messages when message processing is complete. + + + + + client or client_acknowledge: Specifies that the consumer is to acknowledge all messages delivered in this session. + The Frank application will acknowledge all messages processed correctly. The skipping of the acknowledgement of messages + processed in error will cause them to be redelivered, thus providing an automatic retry. + + + + + dups or dups_ok_acknowledge: Specifies that the session is to "lazily" acknowledge the + delivery of messages to the consumer. "Lazy" means that the consumer can delay the acknowledgment + of messages to the server until a convenient time; meanwhile the server might redeliver messages. + This mode reduces the session overhead. If JMS fails, the consumer may receive duplicate messages. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clear + + + + + Safe(SSL protocol only) + + + + + Confidential(SSL protocol only) + + + + + Private + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + list files in a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + + + + + show info about a single file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + + + + + read a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + + + + + like <code>read</code>, but deletes the file after it has been read + + + + + move a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to a folder specified by attribute <code>destination</code> or parameter <code>destination</code> + + + + + copy a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to a folder specified by attribute <code>destination</code> or parameter <code>destination</code> + + + + + delete a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + + + + + create a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + + + + + remove a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + + + + + Creates file and writes contents, specified by parameter <code>contents</code> or input message, to a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message. + At least one of the parameters must be specified. The missing parameter defaults to the input message. For streaming operation, the parameter <code>filename</code> must be specified. + + + + + (only for filesystems that support 'append') append contents, specified by parameter <code>contents</code> or input message, to a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message. + At least one of the parameters must be specified. The missing parameter defaults to the input message. For streaming operation, the parameter <code>filename</code> must be specified. + + + + + create empty file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + + + + + change the name of a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to the value specified by attribute <code>destination</code> or parameter <code>destination</code> + + + + + (for MailFileSystems only:) forward an existing file, specified by parameter <code>contents</code> or input message, to a file, to an email address specified by attribute <code>destination</code> or parameter <code>destination</code> + + + + + Specific to FileSystemSenderWithAttachments + + + + + + + + + Create a document + + + + + Delete a document + + + + + Get the content of a document (and optional the properties) + + + + + Perform a query that returns properties + + + + + Update the properties of an existing document + + + + + Get the (meta)data of a folder or document + + + + + Determine action based on the incoming CmisEvent + + + + + + + + + + + + + + + + For queries that return data + + + + + For queries that update a BLOB + + + + + For queries that update a CLOB + + + + + To execute Oracle PL/SQL package + + + + + For queries that return no data + + + + + + + + + + + + + + + Fire & Forget protocol + + + + + Request-Reply protocol + + + + + + + + + use the generated messageId as the correlationId in the selector for response messages + + + + + set the correlationId of the pipeline as the correlationId of the message sent, and use that as the correlationId in the selector for response messages + + + + + do not automatically set the correlationId of the message sent, but use use the value found in that header after sending the message as the selector for response messages + + + + + + + + + The input message is sent unchanged as character data, like text, XML or JSON, with possibly parameter data appended + + + + + The input message is sent unchanged as binary data + + + + + Yields a x-www-form-urlencoded form entity + + + + + Yields a multipart/form-data form entity + + + + + Yields a MTOM multipart/related form entity + + + + + + + + + + + + + + + + + + + + + + + + + + + Read the contents of an entry. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>optional xml-inputmessage containing attributes to be returned</li> + </ul> + + + + + Create an attribute or an entry. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to create</li> + <li>xml-inputmessage containing attributes to create</li> + </ul> + + + + + Update an attribute or an entry. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to update</li> + <li>xml-inputmessage containing attributes to update</li> + <li>optional parameter 'newEntryName', new RDN of entry</li> + </ul> + + + + + Delete an attribute or an entry. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to delete</li> + <li>when manipulationSubject is set to attribute: xml-inputmessage containing attributes to be deleted</li> + </ul> + + + + + Search for an entry in the direct children of the specified root. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>parameter 'filterExpression', specifying the entries searched for</li> + <li>optional attribute 'attributesReturned' containing attributes to be returned</li> + </ul> + + + + + Search for an entry in the complete tree below the specified root. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>parameter 'filterExpression', specifying the entries searched for</li> + <li>optional attribute 'attributesReturned' containing attributes to be returned</li> + </ul> + + + + + Get a list of the direct children of the specifed root. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>optional attribute 'attributesReturned' containing attributes to be returned</li> + </ul> + + + + + Get a copy of the complete tree below the specified root. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>optional attribute 'attributesReturned' containing attributes to be returned</li> + </ul> + + + + + Check username and password against LDAP specifying principal and credential using parameters. Configuration requirements: + <ul> + <li>parameter 'principal', resolving to RDN of user who's password should be verified</li> + <li>parameter 'credentials', password to verify</li> + </ul> + + + + + Typical user change-password operation (one of the two methods to modify the unicodePwd attribute in AD (http://support.microsoft.com/kb/263991)). Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of user who's password should be changed</li> + <li>parameter 'oldPassword', current password, will be encoded as required by Active Directory (a UTF-16 encoded Unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server. It's advised to set attribute hidden to true for parameter.</li> + <li>parameter 'newPassword', new password, will be encoded as required by Active Directory (a UTF-16 encoded Unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server. It's advised to set attribute hidden to true for parameter.</li> + </ul> + + + + + + + + + + + + + + + + + + + + + + to mask the entire string + + + + + to only mask the first half of the string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Don't stop the receiver when an error occurs. + + + + + If an error occurs (eg. connection is lost) the receiver will be stopped and marked as ERROR + Once every <code>recover.adapters.interval</code> it will be attempted to (re-) start the receiver. + + + + + Stop the receiver when an error occurs. + + + + + + + + + + + + + + + Support a current transaction; create a new one if none exists. + + + + + Support a current transaction; execute non-transactionally if none exists. + + + + + Support a current transaction; throw an exception if no current transaction exists. + + + + + Create a new transaction, suspending the current transaction if one exists. + + + + + Do not support a current transaction; rather always execute non-transactionally. + + + + + Do not support a current transaction; throw an exception if a current transaction exists. + + + + + + + + + Temporary + + + + + Permanent + + + + + + + + + + + No wrapping or unwrapping will be done + + + + + Try to auto-detect the value + + + + + + + + + + + + + + + ifsa2tibco + + + + + Regular + + + + + Business Integration Services + + + + + + + + + + + + + + + + + + + + + + + + + + + + Transform an Adios-XML file to ASCII-Adios + + + + + Transform an ASCII-Adios file to Adios-XML + + + + + + + + + + + + + + + + + + + + + + + + + Gzip format; also used when direction is compress and resultIsContent=<code>true</code> + or when direction is decompress and messageIsContent=<code>true</code> + + + + + Zip format; also used when direction is compress and resultIsContent=<code>false</code> + or when direction is decompress and messageIsContent=<code>false</code> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Encrypts the given input. Requires the publicKey to be set to recipients public key, and recipients to be set to recipients email addresses. + + + + + Encrypts and then signs the given input. On top of the requirements for Encrypt action, signing requires senders to bet set for user's email; and secretKey & secretPassword to be set to private key's path and it's password (password is optional, if private key does not have protection). + + + + + Decrypts the given input. Requires secretKey and secretPassword to bet set to private key's path and it's password. Just like signing, password is not required, if private key does not have protection. + + + + + Decrypts and verifies the given input. On top of the requirements for Decrypt action, verification expects list of senders' email's and corresponding public keys. However, sender emails does not have to be set, and in that case, this pipe will only validate that someone signed the input. + + + + + + + + + + + + + + + Request-Reply + + + + + Fire & Forget + + + + + + + + + signs the input + + + + + verifies a signature + + + + + + + + + the UUID will not have a fixed length which will be about 42 + + + + + a UUID with fixed length 31 will be generated + + + + + + + + + To initiate a new collection + + + + + Add an item to to an existing collection + + + + + Combination of WRITE and CLOSE: Add an item to to an existing collection, then finalize the collection + + + + + Finalize the collection + + + + + + + + + No logging + + + + + Logs information from adapter level messages + + + + + Logs information from pipe messages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Folder that is scanned for files. If not set, the root is scanned + + + + + Folder where files are stored <i>while</i> being processed + + + + + Folder where files are stored <i>after</i> being processed + + + + + Folder where files are stored <i>after</i> being processed, in case the exit-state was not equal to <code>success</code> + + + + + Folder where messages from the error folder can be put on Hold, temporarily + + + + + Folder where a copy of every file that is received is stored + + + + + If set to <code>true</code>, the folders to look for files and to move files to when being processed and after being processed are created if they are specified and do not exist Default: false + + + + + If set <code>true</code>, the file processed will be deleted after being processed, and not stored Default: false + + + + + Number of copies held of a file with the same name. Backup files have a dot and a number suffixed to their name. If set to 0, no backups will be kept. Default: 0 + + + + + If set <code>true</code>, the destination file will be deleted if it already exists Default: false + + + + + If <code>true</code>, the file modification time is used in addition to the filename to determine if a file has been seen before Default: false + + + + + Minimal age of file <i>in milliseconds</i>, to avoid receiving a file while it is still being written Default: 1000 + + + + + Key of Property to use as messageId. If not set, the filename of the file as it was received in the inputFolder is used as the messageId Default: for MailFileSystems: Message-ID + + + + + If set <code>true</code>, no browsers for process folders are generated Default: false + + + + + Filter of files to look for in inputFolder e.g. '*.inp'. + + + + + Filter of files to be excluded when looking in inputFolder. + + + + + If set, an XML with all message properties is provided under this key + + + + + Name of the JMS destination (queue or topic) to use for sending replies. If <code>useReplyTo</code>=<code>true</code>, + the sender specified reply destination takes precedence over this one. + + + + + Value of the JMSType field of the reply message Default: not set by application + + + + + Controls mode that reply messages are sent with Default: NON_PERSISTENT + + + + + + + + Sets the priority that is used to deliver the reply message. Ranges from 0 to 9. Effectively the default priority is set by JMS to 4, <code>-1</code> means not set and thus uses the JMS default Default: -1 + + + + + Time <i>in milliseconds</i> after which the reply-message will expire Default: 0 + + + + + + + + sessionKey to store the SOAP header of the incoming message Default: soapHeader + + + + + Type of the messageing destination. + This function also sets the <code>useTopicFunctions</code> field, + that controls whether Topic functions are used or Queue functions. Default: QUEUE + + + + + + + + If not transacted, the way the application informs the JMS provider that it has successfully received a message. Default: auto + + + + + + + + Only applicable for topics Default: DURABLE + + + + + + + + Used when destinationType = QUEUE. + The JNDI-name of the queueConnectionFactory to use to connect to a <code>queue</code> if #isTransacted() returns <code>false</code>. + The corresponding connection factory should be configured not to support XA transactions. + + + + + Used when destinationType = TOPIC. + The JNDI-name of the connection factory to use to connect to a <i>topic</i> if #isTransacted() returns <code>false</code>. + The corresponding connection factory should be configured not to support XA transactions. + + + + + Transform the value of the correlationid to a hexadecimal value if it starts with id: (preserving the id: part). + Useful when sending messages to MQ which expects this value to be in hexadecimal format when it starts with id:, otherwise generating the error: MQJMS1044: String is not a valid hexadecimal number Default: false + + + + + Prefix to check before executing correlationIdToHex. If empty (and correlationIdToHex equals true) all correlationid's are transformed, this is useful in case you want the entire correlationId to be transformed (for example when the receiving party doesn't allow characters like a colon to be present in the correlationId). Default: id: + + + + + The time <i>in milliseconds</i> it takes for the message to expire. If the message is not consumed before, it will be lost. Must be a positive value for request/reply type of messages, 0 disables the expiry timeout Default: 0 + + + + + If set (>=0) and the length of the correlationId exceeds this maximum length, the correlationId is trimmed from the left side of a string to this maximum length Default: -1 + + + + + If set, the value of this attribute is used as a selector to filter messages. Default: 0 (unlimited) + + + + + If set <code>false</code>, the destinationName is used directly instead of performing a JNDI lookup Default: true + + + + + maps to the field context.security_authentication + + + + + username to connect to context, maps to context.security_credentials + + + + + class to use as initial context factory + + + + + Sets the value of providerURL + + + + + maps to the field context.security_protocol + + + + + maps to the field context.url_pkg_prefixes + + + + + username to connect to context, maps to context.security_principal + + + + + authentication alias, may be used to override principal and credential-settings + + + + + + + when true, then PollingListener container will execute getRawMessage() only when hasRawMessageAvailable() has returned true. This avoids rolling back a lot of XA transactions, that appears to be problematic on MS SQL Server Default: true + + + + + (only used when <code>peekUntransacted</code>=<code>true</code>) peek query to determine if the select query should be executed. Peek queries are, unlike select queries, executed without a transaction and without a rowlock Default: selectQuery + + + + + + JNDI name of datasource to be used, can be configured via jmsRealm, too Default: jdbc.datasource.default + + + + + informs the sender that the obtained connection is from a pool (and thus connections are reused and never closed) Default: true + + + + + Alias of the table, that can be used in selectCondition Default: t + + + + + (optional) Comma separated list of fields determining the order in which messages are processed + + + + + (optional) Maximum length of strings to be stored in commentField, or -1 for unlimited Default: 1000 + + + + + Additional condition for a row to belong to this TableListener. Impacts all process states + + + + + Index of the field in the ImportParameterList of the RFC function that contains the correlationId Default: 0 + + + + + Name of the field in the ImportParameterList of the RFC function that contains the correlationId + + + + + Index of the field in the ImportParameterList of the RFC function that contains the whole request message contents Default: 0 + + + + + Name of the field in the ImportParameterList of the RFC function that contains the whole request message contents + + + + + Index of the field in the ExportParameterList of the RFC function that contains the whole reply message contents Default: 0 + + + + + Name of the field in the ExportParameterList of the RFC function that contains the whole reply message contents + + + + + Controls wheter the returned package content is db2 format or xml format. + Possible values: + <ul> + <li>select:</li> xml content s expected + <li><i>anything else</i>:</li> db2 content is expected + </ul> + + + + + When <code>true</code>, the value of the first column of the first row (or the startrow) is returned as the only result, as a simple non-xml value Default: false + + + + + When <code>true</code> and <code>scalar</code> is also <code>true</code>, but returns no value, one of the following is returned: + <ul> + <li>'[absent]' no row is found</li> + <li>'[null]' a row is found, but the value is a SQL-NULL</li> + <li>'[empty]' a row is found, but the value is a empty string</li> + </ul> Default: false + + + + + Value used in result as contents of fields that contain no value (sql-null) Default: <i>empty string</i> + + + + + Query that can be used to obtain result of side-effect of update-query, like generated value of sequence. Example: SELECT mysequence.currval FROM dual + + + + + Named parameters will be auto detected by default. Every string in the query which equals <code>?{paramname}</code> will be replaced by the value of the corresponding parameter. The parameters don't need to be in the correct order and unused parameters are skipped. + + + + + when <code>true</code>, the result contains besides the returned rows also includes a header with information about the fetched fields Default: application default (true) + + + + + Remove trailing blanks from all result values. Default: true + + + + + When <code>true</code>, the result of sendMessage is the reply of the request. Default: true + + + + + When set to <code>false</code>, the Outputstream is not closed after BLOB or CLOB has been written to it Default: true + + + + + Charset used when reading a stream (that is e.g. going to be written to a BLOB or CLOB). When empty, the stream is copied directly to the BLOB, without conversion + + + + + If true and scalar=false, multiline indented XML is produced Default: false + + + + + Parameter that is used, if specified and not empty, to determine the destination. Overrides the <code>destination</code> attribute + + + + + Name of the queue the reply is expected on. This value is sent in the JMSReplyTo-header with the message. Default: a dynamically generated temporary destination + + + + + (Only used when <code>synchronous</code>=<code>true</code> and <code>replyToName</code> is set). Indicates whether the server uses the correlationId from the pipeline, the correlationId from the message or the messageId in the correlationId field of the reply. This requires the sender to have set the correlationId at the time of sending. Default: MESSAGEID + + + + + + + + Value of the JMSType field Default: not set by application + + + + + Sets the priority that is used to deliver the message. Ranges from 0 to 9. Defaults to -1, meaning not set. Effectively the default priority is set by JMS to 4 Default: -1 + + + + + SOAP encoding style URI + + + + + SOAP service namespace URI + + + + + Name of parameter containing SOAP header Default: soapHeader + + + + + session key to store SOAP header of reply Default: replySoapHeader + + + + + A list of JMS headers of the response to add to the PipeLineSession + + + + + When set larger than 0 and used as a child of an IteratingPipe, then the database calls are made in batches of this size. Only for queryType=other. Default: 0 + + + + + Parameter that is used to obtain URL; overrides url-attribute. Default: url + + + + + The HTTP Method used to execute the request Default: <code>GET</code> + + + + + + + + Content-Type (superset of mimetype + charset) of the request, for <code>POST</code>, <code>PUT</code> and <code>PATCH</code> methods Default: text/html, when postType=<code>RAW</code> + + + + + Charset of the request. Typically only used on <code>PUT</code> and <code>POST</code> requests. Default: UTF-8 + + + + + Comma separated list of parameter names which should be set as HTTP headers + + + + + Comma separated list of parameter names that should not be added as request or body parameter, or as HTTP header, if they are empty. Set to '*' for this behaviour for all parameters + + + + + If <code>true</code>, the HTML response is transformed to XHTML Default: false + + + + + If set, the status code of the HTTP response is put in the specified sessionKey and the (error or okay) response message is returned. + Setting this property has a side effect. If a 4xx or 5xx result code is returned and if the configuration does not implement + the specific forward for the returned HTTP result code, then the success forward is followed instead of the exception forward. + + + + + + The maximum number of concurrent connections Default: 10 + + + + + The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 + + + + + Endpoint to obtain OAuth accessToken. If <code>authAlias</code> or <code>username</code>( and <code>password</code>) are specified, + then a PasswordGrant is used, otherwise a ClientCredentials grant. The obtained accessToken will be added to the regular requests + in an HTTP Header 'Authorization' with a 'Bearer' prefix. + + + + + If set to a non-negative value, then determines the time (in seconds) after which the token will be refreshed. Otherwise the token + will be refreshed when it is half way its lifetime as defined by the <code>expires_in</code> clause of the token response, + or when the regular server returns a 401 status with a challenge. + If not specified, and the accessTokens lifetime is not found in the token response, the accessToken will not be refreshed preemptively. Default: -1 + + + + + Alias used to obtain client_id and client_secret for authentication to <code>tokenEndpoint</code> + + + + + Client_id used in authentication to <code>tokenEndpoint</code> + + + + + Client_secret used in authentication to <code>tokenEndpoint</code> + + + + + Space or comma separated list of scope items requested for accessToken, e.g. <code>read write</code>. Only used when <code>tokenEndpoint</code> is specified + + + + + if set true, clientId and clientSecret will be added as Basic Authentication header to the tokenRequest, instead of as request parameters + + + + + Proxy host + + + + + Proxy port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy username + + + + + Proxy password + + + + + Proxy realm + + + + + Create a pre-emptive login context for the proxy connection(s). + + + + + Disables the use of cookies, making the sender completely stateless Default: false + + + + + resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Type of truststore Default: jks + + + + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true + + + + + If true, besides http status code 200 (OK) also the code 301 (MOVED_PERMANENTLY), 302 (MOVED_TEMPORARILY) and 307 (TEMPORARY_REDIRECT) are considered successful Default: false + + + + + Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true + + + + + Used when StaleChecking=<code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms + + + + + Maximum Time to Live for connections in the pool. No connection will be re-used past its timeToLive value. Default: 900 s + + + + + Maximum Time for connection to stay idle in the pool. Connections that are idle longer will periodically be evicted from the pool Default: 10 s + + + + + Secure socket protocol (such as 'SSL' and 'TLS') to use when a SSLContext object is generated. Default: SSL + + + + + If set <code>true</code> the input is written to the log file, at DEBUG level Default: false + + + + + userId on the smtphost + + + + + value of the subject: header if not specified in message itself + + + + + value of the from: header if not specified in message itself + + + + + When this name is used, it will be followed by a number which is equal to the node's position Default: attachment + + + + + when messageType is not specified defaultMessageType will be used Default: text/plain + + + + + when messageBase64 is not specified defaultMessageBase64 will be used Default: false + + + + + NDR return address when mail cannot be delivered. This adds a Return-Path header Default: MAIL FROM attribute + + + + + Comma separated list of domains to which mails can be send, domains not on the list are filtered out. Empty allows all domains + + + + + Optional identifier for this storage, to be able to share the physical storage between a number of receivers and pipes. + + + + + Possible values are <code>E</code> (error store), <code>M</code> (message store), <code>L</code> (message log for Pipe) or <code>A</code> (message log for Receiver).<br/> + Receiver will always set type to <code>E</code> for errorStorage and always set type to <code>A</code> for messageLog. SenderPipe will set type to <code>L</code> for messageLog (when type isn't specified).<br/> + See MessageStoreSender for type <code>M</code>. Default: <code>E</code> for errorStorage on Receiver<br/><code>A</code> for messageLog on Receiver<br/><code>L</code> for messageLog on Pipe + + + + + The name of the column slotids are stored in Default: SLOTID + + + + + The name of the column types are stored in Default: TYPE + + + + + The name of the column that stores the hostname of the server Default: HOST + + + + + The name of the sequence used to generate the primary key, for DBMSes that use sequences, like Oracle Default: seq_ibisstore + + + + + If set to <code>true</code>, checks are performed if the table exists and is properly created Default: false + + + + + The type of the column message themselves are stored in + + + + + The type of the column that contains the primary key of the table + + + + + The type of the column the timestamps are stored in + + + + + The type of the columns messageId and correlationId, slotId and comments are stored in. N.B. <code>(100)</code> is appended for id's, <code>(1000)</code> is appended for comments. + + + + + The time (in days) to keep the record in the database before making it eligible for deletion by a cleanup process. when set to -1, the record will live on forever Default: 30 + + + + + Schema owner to be used to check the database Default: &lt;current_schema&gt; (only for oracle) + + + + + If set to <code>true</code>, the full message is stored with the log. Can be set to <code>false</code> to reduce table size, by avoiding to store the full message Default: true + + + + + Timeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default) + + + + + The <code>transactionAttribute</code> declares transactional behavior of execution. It applies both to database transactions and XA transactions. + The pipeline uses this to start a new transaction or suspend the current one when required. + For developers: it is equal to <a href=\"https://docs.oracle.com/javaee/7/tutorial/transactions003.htm\">EJB transaction attribute</a>. + Possible values for transactionAttribute: + <table border=\"1\"> + <tr><th>transactionAttribute</th><th>callers Transaction</th><th>Pipeline excecuted in Transaction</th></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Required</td> <td>none</td><td>T2</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">RequiresNew</td> <td>none</td><td>T2</td></tr> + <tr><td>T1</td> <td>T2</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Mandatory</td> <td>none</td><td>error</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">NotSupported</td><td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>none</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Supports</td> <td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Never</td> <td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>error</td></tr> + </table> Default: Supports + + + + + + + + If set, input is taken from this session key, instead of regular input + + + + + If set, this fixed value is taken as input, instead of regular input + + + + + If set and the input is empty, this fixed value is taken as input + + + + + If set <code>true</code>, the result of the pipe is replaced with the original input (i.e. the input before configured replacements of <code>getInputFromSessionKey</code>, <code>getInputFromFixedValue</code> or <code>emptyInputReplacement</code>) + + + + + If set, the pipe result is copied to a session key that has the name defined by this attribute. The + pipe result is still written as the output message as usual. + + + + + The maximum number of threads that may messages simultaneously. + A value of 0 indicates an unlimited number of threads. Default: 0 + + + + + If set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment) + + + + + If set, the character data in this element is stored under a session key and in the message replaced by a reference to this session key: {sessionkey: + <code>elementToMoveSessionKey</code> + } + + + + + (Only used when <code>elementToMove</code> is set) Name of the session key under which the character data is stored Default: ref_ + the name of the element + + + + + Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. 'adapter;pipeline;pipe') + + + + + If durationThreshold >=0 and the duration of the message processing exceeded the value specified (in milliseconds) the message is logged informatory to be analyzed Default: -1 + + + + + + If set <code>true</code>, compacted messages in the result are restored to their original format (see also #setElementToMove(java.lang.String)) + + + + + + when set to <code>true</code> a record is written to the security log when the pipe has finished successfully + + + + + (only used when <code>writeToSecLog=true</code>) comma separated list of keys of session variables that is appended to the security log record + + + + + when set, the value in AppConstants is overwritten (for this pipe only) + + + + + Regular expression to mask strings in the log. For example, the regular expression <code>(?&lt;=&lt;password&gt;).*?(?=&lt;/password&gt;)</code> + will replace every character between keys '&lt;password&gt;' and '&lt;/password&gt;'. <b>note:</b> this feature is used at adapter level, + so one pipe affects all pipes in the pipeline (and multiple values in different pipes are merged) + + + + + Identical to the <code>soapBody</code> attribute except that it's used for the output message instead of the input message. For more information see <a href=\"#note1\">note 1</a> + + + + + Name of the child element of the SOAP header, or a comma separated list of names to choose from (only one is allowed) (wsdl generator will use the first element) (use empty value to allow an empty soap header, for example to allow element x and an empty soap header use: x,) + + + + + Can be used when the SOAP header element exists multiple times + + + + + SOAP envelope XSD version to use Default: 1.1 + + + + + + + + Allow plain XML, without a SOAP Envelope, too. Be aware that setting this true inhibits the capability to test for exit specific response roots in SOAP messages Default: false + + + + + Ignore namespaces in the input message which are unknown. If the XSD used has elementFormDefault=unqualified, it is necessary to set this to true. Be aware, however, that + this will inhibit the validator to detect validation failures of namespaceless subelements of the SoapBody. Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + + + + + Pairs of URI references (one for the namespace name, and one for a hint as to the location of a schema document defining names for that namespace name).<br/> + The syntax is the same as for schemaLocation attributes in instance documents: e.g, "http://www.example.com file%20name.xsd".<br/> + The user can specify more than one XML Schema in the list.<br/> + <b>Note</b> that spaces are considered separators for this attributed. This means that, for example, spaces in filenames should be escaped to %20. + + + + + A uri reference as a hint as to the location of a schema document with no target namespace. + + + + + Name of the response root element, or a comma separated list of element names. The validation fails if the root element is not present in the list. N.B. for WSDL generation only the first element is used + + + + + Enable full schema grammar constraint checking, including checking which + may be time-consuming or memory intensive. Currently, particle unique + attribution constraint checking and particle derivation restriction + checking are controlled by this option. + <p> + see property + http://apache.org/xml/features/validation/schema-full-checking + </p> Default: <code>false</code> + + + + + Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: false + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason + + + + + If set <code>true</code>, the input is assumed to be the name of the file to be validated. Otherwise the input itself is validated Default: false + + + + + If set <code>true</code>, the namespace from schemalocation is added to the schema document as targetnamespace Default: false + + + + + Comma separated list of schemaLocations which are excluded from an import or include in the schema document + + + + + If set <code>true</code>, the comparison for importedSchemaLocationsToIgnore is done on base filename without any path Default: false + + + + + Comma separated list of namespaces which are excluded from an import or include in the schema document + + + + + If set <code>true</code>, send warnings to logging and console about syntax problems in the configured schema('s). + Alternatively, warnings can be switched off using suppression properties XSD_VALIDATION_WARNINGS_SUPPRESS_KEY, XSD_VALIDATION_ERROR_SUPPRESS_KEY and XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY Default: true + + + + + If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false + + + + + If set to <code>1.0</code>, Xerces's previous XML Schema factory will be used, which would make all XSD 1.1 features illegal. The default behaviour can also be set with <code>xsd.processor.version</code> property. Default: <code>1.1</code> + + + + + Key of session variable to store the name of the root element + + + + + Key of session variable to store the namespace of the root element + + + + + Session key for retrieving a schema + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + + + + + Key of session variable to store number of items processed, i.e. the position or index in the set of items to be processed. When handling the first item, the value will be 1. + + + + + The maximum number of items returned. The (default) value of 0 means unlimited, all available items will be returned. Special forward maxItemsReached can be configured to follow Default: 0 + + + + + Expression evaluated on each result and forwards to [stopConditionMet] forward if configured. + Iteration stops if condition returns anything other than an empty result. To test for the root element to have an attribute 'finished' with the value 'yes', the expression <code>*[@finished='yes']</code> can be used. + This can be used if the condition to stop can be derived from the item result. To stop after a maximum number of items has been processed, use <code>maxItems</code>. + Previous versions documented that <code>position()=2</code> could be used. This is not working as expected; Use maxItems instead + + + + + When <code>true</code> ignore any exception thrown by executing sender Default: false + + + + + Controls whether all the results of each iteration will be collected in one result message. If set <code>false</code>, only a small summary is returned. + Setting this attributes to <code>false</code> is often required to enable processing of very large files. N.B. Remember in such a case that setting transactionAttribute to NotSupported might be necessary too Default: true + + + + + Postprocess each partial result, to remove the xml-declaration, as this is not allowed inside an xml-document Default: false + + + + + When <code>true</code> the input is added to the result in an input element Default: false + + + + + When <code>true</code> duplicate input elements are removed, i.e. they are handled only once Default: false + + + + + When set <code>true</code>, the calls for all items are done in parallel (a new thread is started for each call). when collectresults set <code>true</code>, this pipe will wait for all calls to finish before results are collected and pipe result is returned Default: false + + + + + Maximum number of child threads that may run in parallel simultaneously (combined total of all threads calling this pipe). Use <code>0</code> for unlimited threads Default: 0 + + + + + + + + + + + + + + + If defined and empty or false, then this element and all its children are ignored + + + + + + + + + + + + + diff --git a/src/main/configurations/FrankConfig.xsd b/src/main/configurations/FrankConfig.xsd new file mode 100644 index 000000000..077f89a73 --- /dev/null +++ b/src/main/configurations/FrankConfig.xsd @@ -0,0 +1,20197 @@ + + + + + Container of Adapters that belong together. + A configuration may be deployed independently from other configurations. + Names of nested elements like Adapters, Receivers, listeners and senders + can be reused in other configurations. + <br/><br/> + Configurations are shown in the Frank!Console along with their Adapters, + Receivers, listeners and senders. The Adapter Status page of the Frank!Console + has a tab for each configuration that only shows information + about that configuration. See the Frank!Manual for details. + + + + + + + + + + Wrapper element to help split up large configuration files into smaller valid XML files. It may be used as root tag when an XML file contains multiple adapters and/or jobs. The Module element itself does not influence the behavior of Frank configurations. + + + + + + + + + + + reference to a configuration to be included in the current. + + + + + + + + + + An Adapter receives a specific type of messages and processes them. It has Receivers + that receive the messages and a PipeLine that transforms the incoming messages. Each adapter is part of a Configuration. + <br/> + If an adapter can receive its messages through multiple channels (e.g. RESTful HTTP requests, incoming files, etc), + each channel appears as a separate Receiver nested in the adapter. Each Receiver is also responsible + for dealing with + the result of its received messages; the result is the output of the PipeLine. The result + consists of the transformed message and a state. The Frank!Framework distinguishes between exit states + SUCCESS and ERROR. There is also a state REJECTED for messages that are not accepted by the Frank!Framework + and that are not processed by the PipeLine. If the exit state is ERROR, the result message may + not be usable by the calling system. This can be fixed by adding an + errorMessageFormatter that formats the result message if the state is ERROR. + <br/><br/> + Adapters gather statistics about the messages they process. + <br/> + Adapters can process messages in parallel. They are thread-safe. + + + + + + + + + name of the adapter + + + + + some functional description of the <code>Adapter</code> + + + + + AutoStart indicates that the adapter should be started when the configuration + is started. Default: <code>true</code> + + + + + If <code>true</code> a null message is replaced by an empty message Default: <code>false</code> + + + + + number of message displayed in ibisconsole Default: 10 + + + + + Defines behaviour for logging messages. Configuration is done in the MSG appender in log4j4ibis.properties. Default: <code>INFO, unless overridden by property msg.log.level.default</code> + + + + + + + + If set to <code>true</code>, the length of the message is shown in the msg log instead of the content of the message Default: <code>false</code> + + + + + + + + + + + Wrapper for a listener that specifies a channel for the incoming messages of a specific Adapter. + By choosing a listener, the Frank developer determines how the messages are received. + For example, an nl.nn.adapterframework.http.rest.ApiListener receives RESTful HTTP requests and a + JavaListener receives messages from direct Java calls. + <br/><br/> + Apart from wrapping the listener, a Receiver can be configured + to store received messages and to keep track of the processed / failed + status of these messages. + <br/><br/> + There are two kinds of listeners: synchronous listeners and asynchronous listeners. + Synchronous listeners are expected to return a response. The system that triggers the + receiver typically waits for a response before proceeding its operation. When a + nl.nn.adapterframework.http.rest.ApiListener receives a HTTP request, the listener is expected to return a + HTTP response. Asynchronous listeners are not expected to return a response. The system that + triggers the listener typically continues without waiting for the adapter to finish. When a + receiver contains an asynchronous listener, it can have a sender that sends the transformed + message to its destination. Receivers with an asynchronous listener can also have an error sender that is used + by the receiver to send error messages. In other words: if the result state is SUCCESS then the + message is sent by the ordinary sender, while the error sender is used if the result state + is ERROR. + <br/><br/> + <b>Transaction control</b><br/><br/> + If transacted is set to <code>true</code>, messages will be received and processed under transaction control. + This means that after a message has been read and processed and the transaction has ended, one of the following apply: + <table border="1"> + <tr><th>situation</th><th>input listener</th><th>Pipeline</th><th>inProcess storage</th><th>errorSender</th><th>summary of effect</th></tr> + <tr><td>successful</td><td>message read and committed</td><td>message processed</td><td>unchanged</td><td>unchanged</td><td>message processed</td></tr> + <tr><td>procesing failed</td><td>message read and committed</td><td>message processing failed and rolled back</td><td>unchanged</td><td>message sent</td><td>message only transferred from listener to errroSender</td></tr> + <tr><td>listening failed</td><td>unchanged: listening rolled back</td><td>no processing performed</td><td>unchanged</td><td>unchanged</td><td>no changes, input message remains on input available for listener</td></tr> + <tr><td>transfer to inprocess storage failed</td><td>unchanged: listening rolled back</td><td>no processing performed</td><td>unchanged</td><td>unchanged</td><td>no changes, input message remains on input available for listener</td></tr> + <tr><td>transfer to errorSender failed</td><td>message read and committed</td><td>message processing failed and rolled back</td><td>message present</td><td>unchanged</td><td>message only transferred from listener to inProcess storage</td></tr> + </table> + If the application or the server crashes in the middle of one or more transactions, these transactions + will be recovered and rolled back after the server/application is restarted. Then always exactly one of + the following applies for any message touched at any time by Ibis by a transacted receiver: + <ul> + <li>It is processed correctly by the pipeline and removed from the input-queue, + not present in inProcess storage and not send to the errorSender</li> + <li>It is not processed at all by the pipeline, or processing by the pipeline has been rolled back; + the message is removed from the input queue and either (one of) still in inProcess storage <i>or</i> sent to the errorSender</li> + </ul> + + <p><b>commit or rollback</b><br/> + If transacted is set to <code>true</code>, messages will be either committed or rolled back. + All message-processing transactions are committed, unless one or more of the following apply: + <ul> + <li>The PipeLine is transacted and the exitState of the pipeline is not equal to SUCCESS</li> + <li>a PipeRunException or another runtime-exception has been thrown by any Pipe or by the PipeLine</li> + <li>the setRollBackOnly() method has been called on the userTransaction (not accessible by Pipes)</li> + </ul> + </p> + + + + + + + + + + + Name of the Receiver as known to the Adapter + + + + + One of 'continue' or 'close'. Controls the behaviour of the Receiver when it encounters an error sending a reply or receives an exception asynchronously Default: CONTINUE + + + + + + + + The number of threads that may execute a Pipeline concurrently (only for pulling listeners) Default: 1 + + + + + The number of threads that are actively polling for messages concurrently. '0' means 'limited only by <code>numthreads</code>' (only for pulling listeners) Default: 1 + + + + + The number of seconds waited after an unsuccesful poll attempt before another poll attempt is made. Only for polling listeners, not for e.g. ifsa, jms, webservice or javaListeners Default: 10 + + + + + timeout to start receiver. If this timeout is reached, the Receiver may be stopped again + + + + + timeout to stopped receiver. If this timeout is reached, a new stop command may be issued + + + + + If set to <code>true</code>, each message is checked for presence in the messageLog. If already present, it is not processed again. Only required for non XA compatible messaging. Requires messageLog! Default: false + + + + + (Only used when <code>checkForDuplicates=true</code>) Indicates whether the messageid or the correlationid is used for checking presence in the message log Default: MESSAGEID + + + + + + + + The maximum delivery count after which to stop processing the message (only for listeners that know the delivery count of received messages). If -1 the delivery count is ignored Default: 5 + + + + + The number of times a processing attempt is automatically retried after an exception is caught or rollback is experienced. If <code>maxRetries &lt; 0</code> the number of attempts is infinite Default: 1 + + + + + Size of the cache to keep process results, used by maxRetries Default: 100 + + + + + XPath expression to extract correlationid from message + + + + + Namespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + Stylesheet to extract correlationID from message + + + + + XPath expression to extract label from message + + + + + Namespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + Stylesheet to extract label from message + + + + + If set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment) + + + + + If set, the character data in this element is stored under a session key and in the message replaced by a reference to this session key: {sessionkey: + <code>elementToMoveSessionKey</code> + } + + + + + (Only used when <code>elementToMove</code> is set) Name of the session key under which the character data is stored Default: ref_ + the name of the element + + + + + Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. adapter;pipeline;pipe) + + + + + + Regular expression to mask strings in the errorStore/logStore. Every character between to the strings in this expression will be replaced by a '*'. For example, the regular expression (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every character between keys &lt;party&gt; and &lt;/party&gt; + + + + + Only used when hideRegex is not empty Default: all + + + + + + + + Comma separated list of keys of session variables which are available when the <code>PipelineSession</code> is created and of which the value will not be shown in the log (replaced by asterisks) + + + + + If set to <code>true</code>, every message read will be processed as if it is being retried, by setting a session variable to retry. Default: false + + + + + Number of connection attemps to put the adapter in warning status Default: 5 + + + + + + + + + + + + Generic parameter definition. + + A parameter resembles an attribute. However, while attributes get their value at configuration-time, + parameters get their value at the time of processing the message. Value can be retrieved from the message itself, + a fixed value, or from the pipelineSession. If this does not result in a value (or if neither of these is specified), a default value + can be specified. If an XPathExpression or stylesheet is specified, it will be applied to the message, the value retrieved + from the pipelineSession or the fixed value specified. If the transformation produces no output, the default value + of the parameter is taken if provided. + <br/><br/> + Examples: + <pre><code> + stored under SessionKey 'TransportInfo': + &lt;transportinfo&gt; + &lt;to&gt;***@zonnet.nl&lt;/to&gt; + &lt;to&gt;***@zonnet.nl&lt;/to&gt; + &lt;cc&gt;***@zonnet.nl&lt;/cc&gt; + &lt;/transportinfo&gt; + + to obtain all 'to' addressees as a parameter: + sessionKey="TransportInfo" + xpathExpression="transportinfo/to" + type="xml" + + Result: + &lt;to&gt;***@zonnet.nl&lt;/to&gt; + &lt;to&gt;***@zonnet.nl&lt;/to&gt; + </code></pre> + + N.B. to obtain a fixed value: a non-existing 'dummy' <code>sessionKey</code> in combination with the fixed value in <code>defaultValue</code> is used traditionally. + The current version of parameter supports the 'value' attribute, that is sufficient to set a fixed value. + + + + + + + Name of the parameter + + + + + The target data type of the parameter, related to the database or XSLT stylesheet to which the parameter is applied. + + + + + + + + The value of the parameter, or the base for transformation using xpathExpression or stylesheet, or formatting. + + + + + Key of a PipelineSession-variable. <br/>If specified, the value of the PipelineSession variable is used as input for + the xpathExpression or stylesheet, instead of the current input message. <br/>If no xpathExpression or stylesheet are + specified, the value itself is returned. <br/>If the value '*' is specified, all existing sessionkeys are added as + parameter of which the name starts with the name of this parameter. <br/>If also the name of the parameter has the + value '*' then all existing sessionkeys are added as parameter (except tsReceived) + + + + + key of message context variable to use as source, instead of the message found from input message or sessionKey itself + + + + + Instead of a fixed <code>sessionKey</code> it's also possible to use a XPath expression applied to the input message to extract the name of the session-variable. + + + + + URL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable. + + + + + the XPath expression to extract the parameter value from the (xml formatted) input or session-variable. + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect * @ff.default 0 + + + + + Namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of + <code>prefix=namespaceuri</code>-definitions. One entry can be without a prefix, that will define the default namespace. + + + + + When set <code>true</code> namespaces (and prefixes) in the input message are removed before the stylesheet/xpathExpression is executed Default: <code>false</code> + + + + + If the result of sessionKey, xpathExpression and/or stylesheet returns null or an empty string, this value is returned + + + + + Comma separated list of methods (<code>defaultValue</code>, <code>sessionKey</code>, <code>pattern</code>, <code>value</code> or <code>input</code>) to use as default value. Used in the order they appear until a non-null value is found. Default: <code>defaultValue</code> + + + + + Value of parameter is determined using substitution and formatting, following MessageFormat syntax with named parameters. The expression can contain references + to session-variables or other parameters using {name-of-parameter} and is formatted using java.text.MessageFormat. + <br/>If for instance <code>fname</code> is a parameter or session variable that resolves to Eric, then the pattern + 'Hi {fname}, how do you do?' resolves to 'Hi Eric, do you do?'.<br/> + The following predefined reference can be used in the expression too:<ul> + <li>{now}: the current system time</li> + <li>{uid}: an unique identifier, based on the IP address and java.rmi.server.UID</li> + <li>{uuid}: an unique identifier, based on the IP address and java.util.UUID</li> + <li>{hostname}: the name of the machine the application runs on</li> + <li>{username}: username from the credentials found using authAlias, or the username attribute</li> + <li>{password}: password from the credentials found using authAlias, or the password attribute</li> + <li>{fixeddate}: fake date, for testing only</li> + <li>{fixeduid}: fake uid, for testing only</li> + <li>{fixedhostname}: fake hostname, for testing only</li> + </ul> + A guid can be generated using {hostname}_{uid}, see also + <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/server/uid.html">http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/server/uid.html</a> for more information about (g)uid's or + <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/uuid.html">http://docs.oracle.com/javase/1.5.0/docs/api/java/util/uuid.html</a> for more information about uuid's. + <br/> + When combining a date or time <code>pattern</code> like {now} or {fixeddate} with a DATE, TIME, DATETIME or TIMESTAMP <code>type</code>, the effective value of the attribute + <code>formatString</code> must match the effective value of the formatString in the <code>pattern</code>. + + + + + Alias used to obtain username and password, used when a <code>pattern</code> containing {username} or {password} is specified + + + + + Default username that is used when a <code>pattern</code> containing {username} is specified + + + + + Default password that is used when a <code>pattern</code> containing {password} is specified + + + + + If set <code>true</code> pattern elements that cannot be resolved to a parameter or sessionKey are silently resolved to an empty string + + + + + Used in combination with types <code>DATE</code>, <code>TIME</code>, <code>DATETIME</code> and <code>TIMESTAMP</code> to parse the raw parameter string data into an object of the respective type Default: depends on type + + + + + Used in combination with type <code>NUMBER</code> Default: system default + + + + + Used in combination with type <code>NUMBER</code> Default: system default + + + + + If set (>=0) and the length of the value of the parameter falls short of this minimum length, the value is padded Default: -1 + + + + + If set (>=0) and the length of the value of the parameter exceeds this maximum length, the length is trimmed to this maximum length Default: -1 + + + + + Used in combination with type <code>number</code>; if set and the value of the parameter exceeds this maximum value, this maximum value is taken + + + + + Used in combination with type <code>number</code>; if set and the value of the parameter falls short of this minimum value, this minimum value is taken + + + + + If set to <code>true</code>, the value of the parameter will not be shown in the log (replaced by asterisks) Default: <code>false</code> + + + + + Set the mode of the parameter, which determines if the parameter is an INPUT, OUTPUT, or INOUT. + This parameter only has effect for nl.nn.adapterframework.jdbc.StoredProcedureQuerySender. + An OUTPUT parameter does not need to have a value specified, but does need to have the type specified. + Parameter values will not be updated, but output values will be put into the result of the + nl.nn.adapterframework.jdbc.StoredProcedureQuerySender. + <b/> + If not specified, the default is INPUT. + + + + + + + + + + + + + Required in each Adapter to transform incoming messages. A pipeline + is a sequence of pipes. A + pipeline also defines its allowed end states using the <code>&lt;Exits&gt;</code> + tag. + <br/><br/> + The pipes in a PipeLine may not be executed in sequential order, see PipeForward. + <br/><br/> + A pipeline gathers statistics about the messages it processes. + <br/><br/> + In the AppConstants there may be a property named <code>log.logIntermediaryResults</code> (true/false) + which indicates whether the intermediary results (between calling pipes) have to be logged. + <br/><br/> + <b>Transaction control</b><br/><br/> + THE FOLLOWING TO BE UPDATED, attribute 'transacted' replaced by 'transactionAttribute' + + If transacted is set to <code>true</code>, messages will be processed + under transaction control. Processing by XA-compliant pipes (i.e. Pipes that implement the + IXAEnabled-interface, set their transacted-attribute to <code>true</code> and use XA-compliant + resources) will then either be committed or rolled back in one transaction. + + If transacted is set to <code>true</code>, either an existing transaction + (started by a transactional receiver) is joined, or new one is created (if the message processing request + is not initiated by a receiver under transaction control. + Messages are only committed or rolled back by the Pipeline if it started the transaction itself. If + the pipeline joined an existing transaction, the commit or rollback is left to the object that started + the transaction, i.e. the receiver. In the latter case the pipeline can indicate to the receiver that the + transaction should be rolled back (by calling UserTransaction.setRollBackOnly()). + + The choice whether to either commit (by Pipeline or Receiver) or rollback (by Pipeline or Receiver) + is made as follows: + + If the processing of the message concluded without exceptions and the status of the transaction is + STATUS_ACTIVE (i.e. normal) the transaction will be committed. Otherwise it will be rolled back, + or marked for roll back by the calling party. + + + + + + + + + + + + + + + Name of the first pipe to execute when a message is to be processed Default: first pipe of the pipeline + + + + + Maximum number of threads that may execute this Pipeline simultaneously, use 0 to disable limit Default: 0 + + + + + If set <code>true</code> the original message without namespaces (and prefixes) is stored under the session key originalMessageWithoutNamespaces Default: false + + + + + If messageSizeWarn>=0 and the size of the input or result pipe message exceeds the value specified a warning message is logged. You can specify the value with the suffixes <code>KB</code>, <code>MB</code> or <code>GB</code> Default: application default (3MB) + + + + + when specified and <code>null</code> is received as a message the message is changed to the specified value + + + + + + + + + + + + Appears inside a pipe and defines what pipe or exit to execute next. When the + execution of a pipe is done, the pipe looks up the next pipe or exit to execute. + This pipe or exit is searched based on a key that describes what happened during + pipe execution. For example a FixedResultPipe searches for key + <code>filenotfound</code> if it tried to read a file that did not exist, + preventing it from producing the desired output message. If there was + no error, the FixedResultPipe searches for key <code>success</code>. + <br/><br/> + Each <code>&lt;Forward&gt;</code> tag is used to link a search key (<code>name</code> attribute) + to a pipe or exit to execute next (<code>path</code> attribute). The forward's <code>path</code> + attribute references the target pipe or exit by its <code>name</code> attribute, see + AbstractPipe and PipeLineExit. For most pipes and most keys, the next + pipe is executed if no forward is found. By default, the pipes in a pipeline are executed consecutively. + + + + the <code>name</code> is a symbolic reference to a <code>path</code>.<br/> + + + + + The name of the next Pipe or Exit. When the Pipeline doesn't have an Exits element configured it will be + initialized with one Exit having name READY and state SUCCESS + + + + + + + + + + Locker of scheduler jobs and pipes. + + Tries to set a lock (by inserting a record in the database table IbisLock) and only if this is done + successfully the job is executed. + + For an Oracle database the following objects are used: + <pre> + CREATE TABLE &lt;schema_owner&gt;.IBISLOCK + ( + OBJECTID VARCHAR2(100 CHAR), + TYPE CHAR(1 CHAR), + HOST VARCHAR2(100 CHAR), + CREATIONDATE TIMESTAMP(6), + EXPIRYDATE TIMESTAMP(6) + CONSTRAINT PK_IBISLOCK PRIMARY KEY (OBJECTID) + ); + + CREATE INDEX &lt;schema_owner&gt;.IX_IBISLOCK ON &lt;schema_owner&gt;.IBISLOCK + (EXPIRYDATE); + + GRANT DELETE, INSERT, SELECT, UPDATE ON &lt;schema_owner&gt;.IBISLOCK TO &lt;rolename&gt;; + GRANT SELECT ON SYS.DBA_PENDING_TRANSACTIONS TO &lt;rolename&gt;; + + COMMIT; + </pre> + + + + Identifier for this lock + + + + + Type for this lock: P(ermanent) or T(emporary). A temporary lock is released after the job has completed Default: T + + + + + + + + Format for date which is added after <code>objectid</code> (e.g. yyyyMMdd to be sure the job is executed only once a day) + + + + + The time (for type=P in days and for type=T in hours) to keep the record in the database before making it eligible for deletion by a cleanup process Default: 30 days (type=P), 4 hours (type=T) + + + + + The number of times an attempt should be made to acquire a lock, after this many times an exception is thrown when no lock could be acquired, when -1 the number of retries is unlimited Default: 0 + + + + + The time in ms to wait before the first attempt to acquire a lock is made Default: 0 + + + + + The time in ms to wait before another attempt to acquire a lock is made Default: 10000 + + + + + If > 0: The time in s to wait before the INSERT statement to obtain the lock is canceled. N.B. On Oracle hitting this lockWaitTimeout may cause the error: (SQLRecoverableException) SQLState [08003], errorCode [17008] connection closed Default: 0 + + + + + If set <code>true</code> and the IBISLOCK table does not exist in the database, the process continues as if the lock was obtained + + + + + The <code>transactionAttribute</code> declares transactional behavior of execution. It applies both to database transactions and XA transactions. + The pipeline uses this to start a new transaction or suspend the current one when required. + For developers: it is equal to <a href=\"https://docs.oracle.com/javaee/7/tutorial/transactions003.htm\">EJB transaction attribute</a>. + Possible values for transactionAttribute: + <table border=\"1\"> + <tr><th>transactionAttribute</th><th>callers Transaction</th><th>Pipeline excecuted in Transaction</th></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Required</td> <td>none</td><td>T2</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">RequiresNew</td> <td>none</td><td>T2</td></tr> + <tr><td>T1</td> <td>T2</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Mandatory</td> <td>none</td><td>error</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">NotSupported</td><td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>none</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Supports</td> <td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Never</td> <td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>error</td></tr> + </table> Default: Supports + + + + + + + + Timeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default) + + + + + + Authentication alias used to authenticate when connecting to database + + + + + User name for authentication when connecting to database, when none found from <code>authAlias</code> + + + + + Password for authentication when connecting to database, when none found from <code>authAlias</code> + + + + + controls the use of transactions + + + + + + + + + + + + + + + + Name of the sender or the listener + + + + + + + + + + Pipeline exit container in which all (required) Exits must be defined. + Multiple exits may be provided each with their unique name. + <br/><br/> + If no exits are specified, a default one is created with name="READY" and state="SUCCESS". + <br/><br/> + <b>example:</b> <code><pre> + &lt;Exits&gt; + &lt;Exit name="READY" state="SUCCESS" /&gt; + &lt;Exit name="Created" state="ERROR" code="201" empty="true" /&gt; + &lt;Exit name="NotModified" state="ERROR" code="304" empty="true" /&gt; + &lt;Exit name="BadRequest" state="ERROR" code="400" empty="true" /&gt; + &lt;Exit name="NotAuthorized" state="ERROR" code="401" empty="true" /&gt; + &lt;Exit name="NotAllowed" state="ERROR" code="403" empty="true" /&gt; + &lt;Exit name="Teapot" state="SUCCESS" code="418" /&gt; + &lt;Exit name="ServerError" state="ERROR" code="500" /&gt; + &lt;/Exits&gt; + </pre></code> + + + + + + + + + + + + The Exit of a Pipeline that specifies the end state of a PipeLine. The state is returned to the receiver as well as + the optionally specified http status code. Each Exit should have a unique name. See Exits + for examples. + <br/><br/> + When a Pipeline doesn't have an Exits element configured it will be initialized with one Exit having name READY and + state SUCCESS. + <br/><br/> + The name of an Exit can be referenced by the <code>path</code> attribute of a Forward within a Pipe. + + + + The name of the Exit that can be referenced by a PipeForward's <code>path</code> attribute. When a Pipeline doesn't have an Exits + element configured it will be initialized with one Exit having name READY (and state SUCCESS) + + + + + The state of the Pipeline that is returned to the Receiver for this Exit. When a Pipeline doesn't have an Exits + element configured it will be initialized with one Exit having state SUCCESS (and name READY) + + + + + + + + HTTP statusCode e.g. <code>500</code> Default: 200 + + + + + Configures the responseRoot in the OpenAPI schema for this exit. If not set, the responseRoot value of the validator will be used. If that contains multiple (comma separated) values, the first will be used for the exits with state <code>SUCCESS</code>, the last for the other exits. + + + + + If using RestListener and set to <code>true</code>, this removes the output and shows a blank page, the output is still logged in the ladybug testtool Default: <code>false</code> + + + + + If set to <code>true</code>, the output will not be wrapped by the OutputWrapper. Default: <code>false</code> + + + + + If set to <code>true</code>, the output will not be validated or transformed by the validator. Default: <code>false</code> + + + + + + + + + + Optional element in a pipeline. Global forwards that will be added to every pipe, when the forward name has not been explicitly set. + For example the <code>&lt;forward name="exception" path="error_exception" /&gt;</code>, which will add the '<code>exception</code>' forward to every pipe in the pipeline. + + + + + + + + + + + + The flow contains the handlers to handle records of a specific type. + Each flow is registered to a manager using the recordHandlerManagerRef. + + + + Key under which this flow is registered in the manager + + + + + Name of the manager to be used after handling this record + + + + + Name of the recordHandler to be used to transform records of the type specified in the key (optional) + + + + + Name of the manager to which this flow must be added + + + + + Name of the resultHandler to be used to handle the transformed result + + + + + Instructs the resultHandler to start a new block before the parsed line is processed + + + + + Instructs the resultHandler to end the specified block before the parsed line is processed + + + + + Instructs the resultHandler to start a new block after the parsed line is processed + + + + + Instructs the resultHandler to end the specified block after the parsed line is processed + + + + + If <code>true</code>, any open block of this type (and other nested open 'autoClose' block) is closed before a new one of the same type is opened. At a forced close, nested blocks are closed too (since 4.9) Default: true + + + + + If &gt;0 the <code>openBlockBeforeLine</code> instruction is only performed when the current line number is a multiple of this value Default: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + Container for jobs that are scheduled for periodic execution. + + + + + + + + + + + + Cleans up a directory. + + + + directory to be cleaned up + + + + + time (with suffix 'd', 'h', 'm' or 's' in milliseconds) that must have passed at least before a file will be deleted Default: 30d + + + + + when <code>true</code>, files in subdirectories will be deleted, too Default: false + + + + + when <code>true</code>, empty subdirectories will be deleted, too Default: false + + + + + when set <code>true</code>, send warnings to logging and console about not existing directories Default: true + + + + + + + + + + + + + + + + + + + Singleton that has the different jmsRealms.<br/> + Typical use: JmsRealmFactory.getInstance().&lt;method to execute&gt; + <br/> + + + + + + + + + + + + A JmsRealm is a definition of a JMS provider, and is kind of a utility + class to prevent the tedeous work of repeatedly defining all parameters + to connect to a queue or topic. + <br/> + This class is not an extension of JNDIBase, which would be logical, because + in the JMSBase class the function PropertyUtils.copyProperties is used, which cannot + handle this. + + + + Includes another realm into this one + + + + + Set the name of this realm<br/> + + + + + Set the name of the QueueConnectionFactory<br/> + + + + + Set the name of the TopicConnectionFactory<br/> + + + + + + + + + + + + + + + + + + + + + + + Manager for Monitoring. + + + + + + + + + + + + + <p>Example configuration:</p> + <pre><code> + {@literal + <monitor name="Receiver Shutdown" destinations="MONITOR_LOG"> + <trigger className="nl.nn.adapterframework.monitoring.Alarm" severity="WARNING"> + <event>Receiver Shutdown</event> + </trigger> + <trigger className="nl.nn.adapterframework.monitoring.Clearing" severity="WARNING"> + <event>Receiver Shutdown</event> + </trigger> + </monitor> + } + + </code></pre> + + + + + + + + The functional name of the object. + + + + + + + + + + + + + + + + + + + + + + Filter on Adapters, used by Triggers. + + + + + + + Set the name of the Adapter that this AdapterFilter filters on. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Listener that allows a Receiver to receive messages as a REST webservice. + Prepends the configured URI pattern with <code>api/</code>. The structure of REST messages is described + by OpenAPI specifications. The Frank!Framework generates an OpenAPI specification for each ApiListener and + also an OpenAPI specification for all ApiListeners in all configurations. You can + find them in the Frank!Console under main menu item Webservices, heading Available ApiListeners. + The generated OpenAPI specifications have <code>servers</code> and <code>paths</code> objects and + therefore they document the full URLs of the provided services. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsListener. + + + + + + + + + + + + Microsoft Exchange Implementation of a MailListener. + + + + + + + + + + + + + + + + + + + + + FxF extension of EsbJmsListener. + + <p><b>Configuration </b><i>(where deviating from EsbJmsListener)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>destinationName</td><td>name of the JMS destination (queue or topic) to use</td><td>"jms/FileTransferAction"</td></tr> + <tr><td>jmsRealm</td><td>&nbsp;</td><td>"qcf_tibco_p2p_ff"</td></tr> + <tr><td>messageProtocol</td><td>protocol of ESB service to be called. Possible values + <ul> + <li>"FF": Fire & Forget protocol</li> + <li>"RR": Request-Reply protocol</li> + </ul></td><td>"FF"</td></tr> + </table></p> + + + + + + + + + + + + Implementation of IPullingListener that acts as an IFSA-service. + + There is no need or possibility to set the ServiceId as the Provider will receive all messages + for this Application on the same serviceQueue. + + The following session keys are set for each message: + <ul> + <li>id (the message id)</li> + <li>cid (the correlation id)</li> + <li>timestamp</li> + <li>replyTo</li> + <li>messageText</li> + <li>fullIfsaServiceName</li> + <li>ifsaServiceName</li> + <li>ifsaGroup</li> + <li>ifsaOccurrence</li> + <li>ifsaVersion</li> + </ul> + + N.B. + Starting from IFSA-jms version 2.2.10.055(beta) a feature was created to have separate service-queues for Request/Reply + and for Fire & Forget services. This allows applications to provide both types of services, each in its own transaction + mode. This options is not compatible with earlier versions of IFSA-jms. If an earlier version of IFSA-jms is deployed on + the server, this behaviour must be disabled by the following setting in DeploymentSpecifics.properties: + + <code>ifsa.provider.useSelectors=false</code> + + + + + + + + + + + + Extension of JmsListener which only stores IFSA variables with their value to simulate IFSA. + + + + + + + + + + + + + + + + + + + + + Use this listener to receive messages from other adapters or a scheduler within the same Frank-application or from other components residing in the same JVM. + JavaListeners can receive calls made via de ibis-servicedispatcher, which should be located on the JVM classpath to receive calls from other components in the JVM. If you want to call an adapter in the same Frank-application, consider using the IbisLocalSender. + <br/> + To understand what this listener does exactly, please remember that the Frank!Framework is a Java application. + The JavaListener listens to Java method calls. You can issue Java method calls using a IbisJavaSender (external call) + or IbisLocalSender (internal call). + For more information see the ibis-servicedispatcher project. + + + + + + + + + + + + JdbcListener base class. + + + + + + + + + + + + Database Listener that operates on a table having at least a key and a status field. + + + + + + + + + + + + A true multi-threaded Listener-class. + <br/> + + Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the + transacted attribute. If this is set to <code>true</code>, received messages are + committed or rolled back, possibly together with other actions, by the receiver or the pipeline. + In case of a failure, all actions within the transaction are rolled back. + + <p><b>Using jmsTransacted and acknowledgement</b><br/> + If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis. + IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within + the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to + other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the + message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct + (transactional) behaviour, transacted should be used instead of listener.transacted. + </p><p> + Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from + the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue + when the state of the Adapter equals the success state for committing. + The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the + delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages. + In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode, + since a session has lower overhead in trying to prevent duplicate messages. + </p> + <p>The setting for listener.acknowledgeMode will only be processed if + the setting for listener.transacted as well as for + listener.jmsTransacted is false.</p> + + <p>If useReplyTo is set and a replyTo-destination is + specified in the message, the JmsListener sends the result of the processing + in the pipeline to this destination. Otherwise the result is sent using the (optionally) + specified, that in turn sends the message to + whatever it is configured to.</p> + + <p>You can add parameters to the JmsListener, the values will be added as Headers to the JMS response message.</p> + + <p><b>Notice:</b> the JmsListener is ONLY capable of processing + <code>javax.jms.TextMessage</code>s <br/><br/> + </p> + + + + + + + + + + + + Common baseclass for Pulling and Pushing JMS Listeners. + + + + + + + + + + + + Read messages from the IBISSTORE database table previously stored by a + MessageStoreSender. + + Example configuration: + <code><pre> + &lt;Receiver + name="03 MessageStoreReceiver" + numThreads="4" + transactionAttribute="Required" + pollInterval="1" + &gt; + &lt;MessageStoreListener + name="03 MessageStoreListener" + slotId="${instance.name}/TestMessageStore" + statusValueInProcess="I" + /&gt; + &lt;/Receiver&gt; + </pre></code> + + If you have a <code>MessageStoreListener</code>, failed messages are automatically kept in database + table IBISSTORE. Messages are also kept after successful processing. The state of a message + is distinguished by the <code>TYPE</code> field, as follows: + <ul> + <li> <code>M</code>: The message is new. From a functional perspective, it is in the message store. + <li> <code>E</code>: There was an error processing the message. From a functional perspective, it is in the error store. + <li> <code>A</code>: The message was successfully processed. From a functional perspective, it is in the message log. + </ul> + Another way to say this is that a <code>MessageStoreListener</code> acts as a message log and as an error store. + If you have it, you do not need to add + a <code>JdbcErrorStorage</code> or <code>JdbcMessageLog</code> within the same receiver. + <br/><br/> + See /IAF_util/IAF_DatabaseChangelog.xml for the structure of table IBISSTORE. + + + + + + + + + + + + MQTT listener which will connect to a broker and subscribe to a topic. + + Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame. + + + + + + + + + + + + Implementation of IPullingListener that acts as an IFSA-service. + + There is no need or possibility to set the ServiceId as the Provider will receive all messages + for this Application on the same serviceQueue. + + The following session keys are set for each message: + <ul> + <li>id (the message id)</li> + <li>cid (the correlation id)</li> + <li>timestamp</li> + <li>replyTo</li> + <li>messageText</li> + <li>fullIfsaServiceName</li> + <li>ifsaServiceName</li> + <li>ifsaGroup</li> + <li>ifsaOccurrence</li> + <li>ifsaVersion</li> + </ul> + N.B. + Starting from IFSA-jms version 2.2.10.055(beta) a feature was created to have separate service-queues for Request/Reply + and for Fire & Forget services. This allows applications to provide both types of services, each in its own transaction + mode. This options is not compatible with earlier versions of IFSA-jms. If an earlier version of IFSA-jms is deployed on + the server, this behaviour must be disabled by the following setting in DeploymentSpecifics.properties: + + <code>ifsa.provider.useSelectors=false</code> + + + + + + + + + + + + A true multi-threaded Listener-class. + <br/> + + Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the + transacted attribute. If this is set to <code>true</code>, received messages are + committed or rolled back, possibly together with other actions, by the receiver or the pipeline. + In case of a failure, all actions within the transaction are rolled back. + + <p><b>Using jmsTransacted and acknowledgement</b><br/> + If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis. + IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within + the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to + other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the + message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct + (transactional) behaviour, transacted should be used instead of listener.transacted. +<p> + Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from + the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue + when the state of the Adapter equals the success state. + The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the + delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages. + In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode, + since a session has lower overhead in trying to prevent duplicate messages. + </p> + <p>The setting for listener.acknowledgeMode will only be processed if + the setting for listener.transacted as well as for + listener.jmsTransacted is false.</p> + + <p>If useReplyTo is set and a replyTo-destination is + specified in the message, the JmsListener sends the result of the processing + in the pipeline to this destination. Otherwise the result is sent using the (optionally) + specified Sender, that in turn sends the message to + whatever it is configured to.</p> + </p> + <p><b>Notice:</b> the JmsListener is ONLY capable of processing + <code>javax.jms.TextMessage</code>s <br/><br/> + </p> + + + + + + + + + + + + Implementation of IPortConnectedListener that acts as an IFSA-service. + + There is no need or possibility to set the ServiceId as the Provider will receive all messages + for this Application on the same serviceQueue. + + The following session keys are set for each message: + <ul> + <li>id (the message id)</li> + <li>cid (the correlation id)</li> + <li>timestamp</li> + <li>replyTo</li> + <li>messageText</li> + <li>fullIfsaServiceName</li> + <li>ifsaServiceName</li> + <li>ifsaGroup</li> + <li>ifsaOccurrence</li> + <li>ifsaVersion</li> + <li>ifsaBifName</li> + <li>ifsaBtcData</li> + </ul> + N.B. + Starting from IFSA-jms version 2.2.10.055(beta) a feature was created to have separate service-queues for Request/Reply + and for Fire & Forget services. This allows applications to provide both types of services, each in its own transaction + mode. This options is not compatible with earlier versions of IFSA-jms. If an earlier version of IFSA-jms is deployed on + the server, this behaviour must be disabled by the following setting in DeploymentSpecifics.properties: + + <code>ifsa.provider.useSelectors=false</code> + + <p> + For Fire&Forget providers, the message log might get cluttered with messages like: + <code><pre> + [1-10-08 17:10:34:382 CEST] 209d4317 ConnectionMan W J2CA0075W: An active transaction should be present while processing method allocateMCWrapper. + [1-10-08 17:10:34:382 CEST] 209d4317 ConnectionMan W J2CA0075W: An active transaction should be present while processing method initializeForUOW + </pre></code> + This is due to a IFSA requirement, that sessions be created using a parameter transacted=true, indicating + JMS transacted sessions. + </p> + + + + + + + + + + + + JMSListener re-implemented as a pushing listener rather than a pulling listener. + The JMS messages have to come in from an external source: an MDB or a Spring + message container. + + This version of the <code>JmsListener</code> supports distributed transactions using the XA-protocol. + No special action is required to have the listener join the transaction. + + <p><b>Using jmsTransacted and acknowledgement</b><br/> + If jmsTransacted is set <code>true</code>, it should ensure that a message is received and processed on + a both or nothing basis. IBIS will commit the the message, otherwise perform rollback. However, using + jmsTransacted, IBIS does not bring transactions within the adapters under transaction control, + compromising the idea of atomic transactions. In the roll-back situation messages sent to other + destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In + the failure situation the message is therefore completely processed, and the roll back does not mean + that the processing is rolled back! To obtain the correct (transactional) behaviour, set + <code>transacted</code>="true" for the enclosing Receiver. Do not use jmsTransacted for any new situation. + + </p><p> + Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from + the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue + when the state of the Adapter equals the success state. + The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the + delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages. + In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode, + since a session has lower overhead in trying to prevent duplicate messages. + </p> + <p>The setting for listener.acknowledgeMode will only be processed if + the setting for listener.transacted as well as for + listener.jmsTransacted is false.</p> + + <p>If useReplyTo is set and a replyTo-destination is + specified in the message, the JmsListener sends the result of the processing + in the pipeline to this destination. Otherwise the result is sent using the (optionally) + specified Sender, that in turn sends the message to + whatever it is configured to.</p> + + <p><b>Notice:</b> the JmsListener is ONLY capable of processing + <code>javax.jms.TextMessage</code>s <br/><br/> + </p> + + + + + + + + + + + + Listener that allows a Receiver to receive messages as a REST webservice. + Prepends the configured URI pattern with <code>rest/</code>. When you are writing a new Frank config, you are recommended + to use an ApiListener instead. You can find all serviced URI patterns + in the Frank!Console: main menu item Webservice, heading Available REST Services. + + <p> + Note: + Servlets' multipart configuration expects a Content-Type of <code>multipart/form-data</code> (see http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html). + So do not use other multipart content types like <code>multipart/related</code> + </p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Database Listener that returns a count of messages available, but does not perform any locking or + other management of processing messages in parallel. + + + + + + + + + + + + Dedicated Listener on Tibco JMS Destinations. + + + + + + + + + + + + + + + + + + + + + Listener that allows a Receiver to receive messages as a SOAP webservice. + The structure of the SOAP messages is expressed in a WSDL (Web Services Description Language) document. + The Frank!Framework generates a WSDL document for each adapter that contains WebServiceListeners. You can + find these documents in the Frank!Console under main menu item Webservices, heading Available WSDL's. + The WSDL documents that we generate document how the SOAP services can be accessed. In particular, the + URL of a SOAP service can be found in an XML element <code>&lt;soap:address&gt;</code> with + <code>soap</code> pointing to namespace <code>http://schemas.xmlsoap.org/wsdl/soap/</code>. + + <br/>If <code>address</code> is set, then for each request:<ul> + <li>MIME headers are described in a 'mimeHeaders'-XML stored under session key 'mimeHeaders'</li> + <li>Attachments present in the request are described by an 'attachments'-XML stored under session key 'attachments'</li> + <li>SOAP protocol is stored under a session key 'soapProtocol'</li> + <li>SOAP action is stored under a session key 'SOAPAction'</li> + </ul> + and for each response a multipart message is constructed if a 'multipart'-XML is provided in sessionKey specified by multipartXmlSessionKey. + + + + + + + + + + + + + + + + + + + HTTP method to listen to Default: GET + + + + + + + + URI pattern to register this listener on, eq. `/my-listener/{something}/here` + + + + + The required contentType on requests, if it doesn't match the request will fail Default: ANY + + + + + + + + The specified contentType on response. When <code>ANY</code> the response will determine the content type based on the return data. Default: ANY + + + + + + + + The specified character encoding on the response contentType header. NULL or empty + values will be ignored. Default: UTF-8 + + + + + Automatically generate and validate etags Default: <code>false</code>, can be changed by setting the property <code>api.etag.enabled</code>. + + + + + Enables security for this listener. If you wish to use the application servers authorisation roles [AUTHROLE], you need to enable them globally for all ApiListeners with the `servlet.ApiListenerServlet.securityRoles=IbisTester,IbisWebService` property Default: <code>NONE</code> + + + + + + + + Only active when AuthenticationMethod=AUTHROLE. Comma separated list of authorization roles which are granted for this service, eq. IbisTester,IbisObserver", ""}) + + + + + Specify the form-part you wish to enter the pipeline Default: name of the first form-part + + + + + Name of the header which contains the Message-Id. Default: Message-Id + + + + + Name of the header which contains the Correlation-Id. Default: Correlation-Id + + + + + Unique string used to identify the operation. The id MUST be unique among all operations described in the OpenApi schema. + + + + + Comma separated list of parameters passed as http header. Parameters will be stored in 'headers' sessionkey. + + + + + Session key that provides the Content-Disposition header in the response + + + + + Issuer to validate JWT + + + + + Keysource URL to validate JWT + + + + + Header to extract JWT from + + + + + Comma separated list of required claims + + + + + Comma separated key value pairs to match with JWT payload. e.g. "sub=UnitTest, aud=test" + + + + + Claim name which specifies the role + + + + + Claim name which specifies the principal name (maps to GetPrincipalPipe) + + + + + + + + + + + Name of the listener as known to the adapter + + + + + + + + + + + + + + + + + + + + + + + + + Optional base folder, that serves as root for all other folders + + + + + + + + + + + Name of the listener + + + + + + + + + + + + + + + Determines the contents of the message that is sent to the pipeline. Can be 'name', for the filename, 'path', for the full file path, 'contents' for the contents of the file, 'info' for file information. For any other value, the attributes of the file are searched and used Default: path + + + + + + + + + + + + Charset to be used for extracting the contents + + + + + OutputFormat of message for messageType=info Default: XML + + + + + + + + + + + + + + + + + protocol of ESB service to be called + + + + + + + + if true, all JMS properties in the request starting with "ae_" are copied to the reply. Default: false + + + + + By default, the JmsListener takes the Correlation-ID (if present) as the ID that has to be used as Correlation-ID of the reply. + When set to <code>true</code>, the messageID is used as Correlation-ID of the reply. Default: if messageProtocol=<code>RR</code>: </td><td><code>true</code> + + + + + Flag if reply-to queue from the request message should be used or not. Default: if messageProtocol=<code>FF</code>: <code>false</code> + + + + + Comma separated list of all XPath keys that need to be logged. (overrides <code>msg.log.keys</code> property) + + + + + + + + + Receive timeout <i>in milliseconds</i> as specified by the JMS API, see https://docs.oracle.com/javaee/7/api/javax/jms/MessageConsumer.html#receive-long- Default: 1000 + + + + + + + + + + If <code>true</code>, messages sent are put in a SOAP envelope Default: false + + + + + + + + + + + + + + Controls whether messages are send under transaction control. + If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: false + + + + + + + + + + Alias used to obtain credentials for authentication to JMS server + + + + + + + + + + + + + + + + + + + By default, the JmsListener takes the Correlation-ID (if present) as the ID that has to be used as Correlation-ID of the reply. + When set to <code>true</code>, the messageID is used as Correlation-ID of the reply. Default: false + + + + + Receive timeout <i>in milliseconds</i> as specified by the JMS API, see https://docs.oracle.com/javaee/7/api/javax/jms/MessageConsumer.html#receive-long- Default: 1000 + + + + + Flag if reply-to queue from the request message should be used or not. Default: true + + + + + + + + + + If <code>true</code>, messages sent are put in a SOAP envelope Default: false + + + + + + + + + + + + + + + + + + + Name of the JMS destination (queue or topic) to use + + + + + + + + + + Controls whether messages are send under transaction control. + If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: false + + + + + + + + + + Alias used to obtain credentials for authentication to JMS server + + + + + + + + + + + + + + + + + + + + + + loads JNDI (and other) properties from a JmsRealm + + + + + + + + + Name of the sender or the listener + + + + + + + + + + + + + + Name of the JMS destination (queue or topic) to use + + + + + + + + + + Interval <i>in milliseconds</i> for the poll guard to check whether a successful poll was done by the receive + (https://docs.oracle.com/javaee/7/api/javax/jms/messageconsumer.html#receive-long-) since last check. If polling has stopped this will be logged + and the listener will be stopped and started in an attempt to workaround problems with polling. + Polling might stop due to bugs in the JMS driver/implementation which should be fixed by the supplier. As the poll time includes reading + and processing of the message no successful poll might be registered since the last check when message processing takes a long time, hence + while messages are being processed the check on last successful poll will be skipped. Set to -1 to disable. Default: ten times the specified timeout + + + + + + + + + + + + + + Controls whether messages are send under transaction control. + If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: false + + + + + + + + + + Alias used to obtain credentials for authentication to JMS server + + + + + + + + + + + + + The mail address of the mailbox connected to (also used for auto discovery) + + + + + Url of the Exchange server. Set to e.g. https://outlook.office365.com/EWS/Exchange.asmx to speed up startup, leave empty to use autodiscovery + + + + + Client ID that represents a registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview. + + + + + Client secret that belongs to registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Certificates and Secrets + + + + + Tenant ID that represents the tenant in which the registered application exists within Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview. + + + + + Alias used to obtain client ID and secret or username and password for authentication to Exchange mail server. + If the attribute tenantId is empty, the deprecated Basic Authentication method is used. + If the attribute tenantId is not empty, the username and password are treated as the client ID and secret. + + + + + Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is used + + + + + If empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrieved + + + + + Comma separated list of fields to try as response address Default: replyTo,from,sender,Return-Path + + + + + proxy host + + + + + proxy port Default: 8080 + + + + + proxy username + + + + + proxy password + + + + + proxy authAlias + + + + + proxy domain + + + + + Separator character used when working with multiple mailboxes, specified before the separator in the object name <code>test@organisation.com|My sub folder</code> or <code>test@organisation.com|AAMkADljZDMxYzIzLTFlMjYtNGY4Mi1hM2Y1LTc2MjE5ZjIyZmMyNABGAAAAAAAu/9EmV5M6QokBRZwID1Q6BwDXQXY+F44hRbDfTB9v8jRfAAAEUqUVAADXQXY+F44hRbDfTB9v8jRfAAKA4F+pAAA=</code>. + Please consider when moving emails across mailboxes that there will be a null value returned instead of the newly created identifier. Default: | + + + + + Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Resource url to truststore. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + + + + + + + Determines the contents of the message that is sent to the Pipeline. can be one of: + <ul> + <li><code>email</code>, for an XML containing most relevant information, except the body and the attachments</li> + <li><code>contents</code>, for the body of the message</li> + <li><code>mime</code>, for the MIME contents of the message</li> + <li><code>name</code> or <code>path</code>, for an internal handle of mail message, that can be used by a related MailFileSystemSender</li> + <li>the key of any header present in the message context</li> + </ul> Default: email + + + + + + + + Name of the listener + + + + + + + + + + + + + + + + + + + + + + Charset to be used for extracting the contents + + + + + OutputFormat of message for messageType=info Default: XML + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + FTP protocol to use Default: FTP + + + + + + + + + + + + + If <code>true</code>, passive ftp is used: before data is sent, a pasv command is issued, and the connection is set up by the server Default: true + + + + + (ftps) Transport type in case of sftp Default: SOCKS5 + + + + + + + + (ftps) Resource url to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + (ftps) Type of keystore Default: pkcs12 + + + + + + + + (ftps) Authentication alias used to obtain keystore password + + + + + (ftps) Default password to access keystore + + + + + (ftps) Alias to obtain specific certificate or key in keystore + + + + + (ftps) Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + (ftps) Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + (ftps) Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + (ftps) Resource url to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + (ftps) Type of truststore Default: jks + + + + + + + + (ftps) Authentication alias used to obtain truststore password + + + + + (ftps) Default password to access truststore + + + + + (ftps) Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + (ftps) If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + (ftps) If <code>true</code>, self signed certificates are accepted Default: false + + + + + (ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + Sets the <code>Data Channel Protection Level</code>. Default: C + + + + + + + + + + + + + + + + + + + name of the session key to store the name of the received file in Default: fxfFile + + + + + If set to <code>true</code>, the received file is moved after being processed Default: true + + + + + (only used when <code>moveProcessedFile=true</code>) <b>sibling</b> directory (related to the parent directory of the file to process) where files are stored after being processed Default: processed + + + + + (only used when <code>moveProcessedFile=true</code>) when set to <code>true</code>, the directory to move processed files in is created if it does not exist Default: false + + + + + + + + + + + + + + + + + + + Name of the WebSphere listener port that this JMS Listener binds to. Optional. + + This property is only used in EJB Deployment mode and has no effect otherwise. + If it is not set in EJB Deployment Mode, then the listener port name is + constructed by the EjbListenerPortConnector from + the Listener name, Adapter name and the Receiver name. + + + + + Controls caching of JMS objects. Must be one of CACHE_NONE, CACHE_CONNECTION, CACHE_SESSION, CACHE_CONSUMER + + + + + + + + + + + + + + + + + + Protocol of the IFSA-Service to be called. + When the protocol equals to <code>FF</code>, transacted is set to true. + + + + + + + + set the IFSA service Id, for requesters only + + + + + the ApplicationID, in the form of "IFSA://<i>AppId</i>" + + + + + The functional name of the object. + + + + + The receive timeout in milliseconds. To use the timeout defined as IFSA expiry, set this value to -1 Default: 20000 + + + + + + + + + + + + + + + + + + + + The hostname of the IMAP server + + + + + The port of the IMAP server Default: 993 + + + + + Alias used to obtain accessToken or username and password for authentication to Exchange mail server. + If the alias refers to a combination of a username and a password, the deprecated Basic Authentication method is used. + If the alias refers to a password without a username, the password is treated as the accessToken. + + + + + Username for authentication to mail server. + + + + + Password for authentication to mail server. + + + + + Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is used + + + + + Comma separated list of fields to try as response address Default: replyTo,from,sender,Return-Path + + + + + + + + + + + + + + + Internal name of the listener, as known to the adapter. An IbisLocalSender refers to this name in its <code>javaListener</code>-attribute. + + + + + External Name of the listener. An IbisJavaSender refers to this name in its <code>serviceName</code>-attribute. + + + + + Comma separated list of keys of session variables that should be returned to caller, for correct results as well as for erroneous results. + If not set (not even to an empty value), all session keys can be returned. Default: all session keys can be returned + + + + + Should the JavaListener throw a ListenerException when it occurs or return an error message Default: true + + + + + If <code>true</code>, the WSDL of the service provided by this listener will available for download Default: false + + + + + + + + + + + + + + + Primary key field of the table, used to identify messages. For optimal performance, there should be an index on this field. + + + + + Field containing the message data Default: <i>same as keyField</i> + + + + + Type of the field containing the message data Default: <i>String</i> + + + + + + + + Field containing the message Id Default: <i>same as keyField</i> + + + + + Field containing the correlationId Default: <i>same as messageIdField</i> + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + Controls whether BLOB is considered stored compressed in the database Default: true + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database. N.B. When set true, then the BLOB will be converted into a string Default: false + + + + + + + + + + + + + + + + + Authentication alias used to authenticate when connecting to database + + + + + User name for authentication when connecting to database, when none found from <code>authAlias</code> + + + + + Password for authentication when connecting to database, when none found from <code>authAlias</code> + + + + + controls the use of transactions + + + + + + + + + + + + + + + + + + + Name of the sender or the listener + + + + + + + + + + + + + Name of the table to be used + + + + + + Field containing the status of the message. For optimal performance, and index should exist that starts with this field, contains all fields that are used with a fixed value in the select condition, and end with the orderField. + + + + + + (optional) Field used to store the date and time of the last change of the statusField + + + + + (optional) Field used to store the reason of the last change of the statusField + + + + + + (optional) Value of statusField indicating row is available to be processed. If not specified, any row not having any of the other status values is considered available. + + + + + Value of statusField indicating the processing of the row resulted in an error + + + + + Value of status field indicating row is processed OK + + + + + Value of status field indicating is being processed. Can be left emtpy if database has SKIP LOCKED functionality and the Receiver can be (and is) set to Required or RequiresNew. + + + + + Value of status field indicating message is on Hold, temporarily + + + + + + + + + + + + + + + + + + + + + Identifier for this service + + + + + Comma separated list of sessionKey's to be read together with the message. Please note: corresponding MessageStoreSender must have the same value for this attribute + + + + + Name of the table to be used Default: IBISSTORE + + + + + Primary key field of the table, used to identify messages. For optimal performance, there should be an index on this field. Default: MESSAGEKEY + + + + + Field containing the message data Default: MESSAGE + + + + + Field containing the message Id Default: MESSAGEID + + + + + Field containing the correlationId Default: CORRELATIONID + + + + + Type of the field containing the message data Default: BLOB + + + + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database. N.B. When set true, then the BLOB will be converted into a string Default: <code>true</code> + + + + + Field containing the status of the message. For optimal performance, and index should exist that starts with this field, contains all fields that are used with a fixed value in the select condition, and end with the orderField. Default: TYPE + + + + + (optional) Field used to store the date and time of the last change of the statusField Default: MESSAGEDATE + + + + + (optional) Field used to store the reason of the last change of the statusField Default: COMMENTS + + + + + Value of statusField indicating row is available to be processed. If set empty, any row not having any of the other status values is considered available. Default: <code>M</code> + + + + + Value of status field indicating is being processed. Set to <code>I</code> if database has no SKIP LOCKED functionality, the Receiver cannot be set to <code>Required</code> or <code>RequiresNew</code>, or to support programmatic retry. + + + + + Value of statusField indicating the processing of the row resulted in an error Default: <code>E</code> + + + + + Value of status field indicating row is processed OK Default: <code>A</code> + + + + + Value of status field indicating message is on Hold, temporarily. If required, suggested value is <code>H</code>. + + + + + Move to messageLog after processing, as the message is already stored in the ibisstore only some fields need to be updated. When set <code>false</code>, messages are deleted after being processed Default: <code>true</code> + + + + + + + + + + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + Controls whether BLOB is considered stored compressed in the database Default: true + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a> + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a> + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#subscribe-java.lang.String-" target="_blank">MqttClient.subscribe(java.lang.String topicFilter)</a> + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a> Default: 2 + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setCleanSession-boolean-" target="_blank">MqttConnectOptions.setCleanSession(boolean cleanSession)</a> Default: true + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/persist/MqttDefaultFilePersistence.html" target="_blank">MqttDefaultFilePersistence</a> and <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html" target="_blank">MqttClient</a> + + + + + see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setAutomaticReconnect-boolean-" target="_blank">MqttConnectOptions.setAutomaticReconnect(boolean automaticReconnect)</a> (apart from this recover job will also try to recover) Default: true + + + + + character encoding of received messages Default: UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + Uri pattern to match, the {uri} part in https://mydomain.com/ibis4something/rest/{uri}, where mydomain.com and ibis4something refer to 'your ibis'. + + + + + Method (e.g. GET or POST) to match + + + + + Key of session variable to store etag + + + + + Key of Session variable that determines requested content type, overrides produces + + + + + Can be either <code>/rest</code> or <code>/rest-public</code> and must correspond with the available RestListenerServlet path(s). + + + + + Indicates whether this listener supports a view (and a link should be put in the ibis console) Default: if <code>method=get</code> then <code>true</code>, else <code>false</code> + + + + + Comma separated list of authorization roles which are granted for this rest service Default: IbisAdmin,IbisDataAdmin,IbisTester,IbisObserver,IbisWebService + + + + + + + Indicates whether the parts of a multipart entity should be retrieved and put in session keys. This can only be done once! Default: true + + + + + Mediatype (e.g. XML, JSON, TEXT) the RestServiceDispatcher receives as input Default: XML + + + + + + + + Mediatype (e.g. XML, JSON, TEXT) the RestServiceDispatcher sends as output, if set to json the ibis will automatically try to convert the xml message Default: XML + + + + + + + + If set to true the ibis will automatically validate and process etags Default: false + + + + + If set to true the ibis will automatically create an etag Default: false + + + + + + + + + + + + + + + + + Type of the authentication either 'NTLM' or 'SPNEGO'. + When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGO + + + + + + + + alias used to obtain credentials for the smb share + + + + + the smb share username + + + + + the smb share password + + + + + domain, in case the user account is bound to a domain + + + + + + Key Distribution Center, typically hosted on a domain controller. + Stored in <code>java.security.krb5.kdc</code> + + + + + Kerberos Realm, case sensitive. Typically upper case and the same as the domain name. + An Active Directory domain acts as a Kerberos Realm. + Stored in <code>java.security.krb5.realm</code> + + + + + + + + + + + + + + + + + + + Name of the SapSystem used by this object + + + + + Name of the RFC-destination to be registered in the SAP system + + + + + The number of connections that should be registered at the gateway Default: 2 + + + + + + + + Name of the Ibis-object + + + + + + + + + + + + + + + Name of the Ibis-object + + + + + Name of the SapSystem used by this object + + + + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + alias to obtain credentials to authenticate on proxy + + + + + Default user name in case proxy requires authentication + + + + + Default password in case proxy requires authentication + + + + + Transport type in case of sftp Default: SOCKS5 + + + + + + + + Optional preferred encryption from client to server for sftp protocol + + + + + Optional preferred encryption from server to client for sftp protocol + + + + + Path to private key file for sftp authentication + + + + + Name of the alias to obtain credentials for passphrase of private key file + + + + + Passphrase of private key file + + + + + Path to file with knownhosts + + + + + Verify the hosts againt the knownhosts file. Default: true + + + + + + + + + + + + + + + count query that returns the number of available records. when there are available records the pipeline is activated + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If <code>true</code> the SOAP envelope is removed from received messages and a SOAP envelope is added to returned messages (SOAP envelope will not be visible to the pipeline) Default: true + + + + + Namespace of the service that is provided by the adapter of this listener. + If specified, requests posted to https://mydomain.com/ibis4something/servlet/rpcrouter that have this namespace in their body will be handled by this listener, + where mydomain.com and ibis4something refer to 'your ibis'. + + + + + + The address to listen to, e.g the part &lt;address&gt; in https://mydomain.com/ibis4something/services/&lt;address&gt;, + where mydomain.com and ibis4something refer to 'your ibis'. + + + + + If set, MTOM is enabled on the SOAP binding + + + + + Comma separated list of session keys to hold contents of attachments of the request + + + + + Key of session variable that holds the description (name, sessionKey, mimeType) of the parts present in the request. Only used if attachmentSessionKeys are specified Default: multipartXml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + General Cache provider. + + N.B. the default values shown can be overridden using properties in appConstants. The property names are found by prefixing the attribute name with <code>cache.default.</code>. + + + + + + + + + + + + + + + + + + + The maximum number of elements in memory, before they are evicted Default: 100 + + + + + Either <code>LRU</code>=Least Recent Use,<code>LFU</code>=Least Frequent Use or <code>FIFO</code>=First In - First Out Default: LRU + + + + + If <code>true</code>, the elements in the cache are eternal, i.e. never expire Default: false + + + + + The amount of time <i>in seconds</i> to live for an element from its creation date Default: 36000 + + + + + The amount of time <i>in seconds</i> to live for an element from its last accessed or modified date Default: 36000 + + + + + If <code>true</code>, the elements that are evicted from memory are spooled to disk Default: false + + + + + The maximum number of elements on disk, before they are removed Default: 10000 + + + + + If <code>true</code>, the the cache is reloaded after the JVM restarts Default: false + + + + + How often to run the disk store expiry thread Default: 600 + + + + + + + + + + + name of the cache, will be lowercased Default: <code>&lt;ownerName&gt;</code>_cache + + + + + xpath expression to extract cache key from request message + + + + + output type of xpath expression to extract cache key from request message Default: text + + + + + + + + namespace defintions for keyxpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + stylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messages + + + + + session key to use as input for transformation of request message to key by keyxpath or keystylesheet + + + + + controls whether empty keys are used for caching. when set true, cache entries with empty keys can exist. Default: false + + + + + xpath expression to extract value to be cached key from response message. Use in combination with cacheEmptyValues to inhibit caching for certain groups of response messages + + + + + + + + + + namespace defintions for valuexpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + stylesheet to extract value to be cached from response message + + + + + session key to use as input for transformation of response message to cached value by valuexpath or valuestylesheet + + + + + controls whether empty values will be cached. when set true, empty cache entries can exist for any key. Default: false + + + + + + + + + + Domparser om AFM-XML berichten om te zetten in edifactberichten (voor de backoffice). + + + + + + + + + + + + Sender to work with Amazon S3. + + + + + + + + + + + + Sender to obtain information from and write to a CMIS application. + + + <p> + When <code>action</code>=<code>get</code> the input (xml string) indicates the id of the document to get. This input is mandatory. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>delete</code> the input (xml string) indicates the id of the document to get. This input is mandatory. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>create</code> the input (xml string) indicates document properties to set. This input is optional. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;name&gt;Offerte&lt;/name&gt; + &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; + &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; + &lt;properties&gt; + &lt;property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz"&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name="ArrivedBy"&gt;HDN&lt;/property&gt; + &lt;property name="DocumentType"&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt; + </code></pre> + </p> + + <p> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>name</td><td>mandatory property "cmis:name". If not set the sender attribute fileNameSessionKey is used</td><td>"[unknown]"</td></tr> + <tr><td>objectTypeId</td><td>mandatory property "cmis:objectTypeId"</td><td>"cmis:document"</td></tr> + <tr><td>mediaType</td><td>the MIME type of the document to store</td><td>"application/octet-stream"</td></tr> + <tr><td>property</td><td>custom document property to set. Possible attributes: + <table border="1"> + <tr><th>name</th><th>description</th><th>default</th></tr> + <tr><td>type</td><td> + <ul> + <li><code>string</code>: renders the value</li> + <li><code>datetime</code>: converts the value to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code></li> + </ul> + </td><td>string</td></tr> + <tr><td>formatString</td><td>used in combination with <code>datetime</code></td><td>yyyy-MM-dd HH:mm:ss</td></tr> + </table></td><td>&nbsp;</td></tr> + </table> + </p> + <p> + When <code>action</code>=<code>find</code> the input (xml string) indicates the query to perform. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;query&gt; + &lt;statement&gt;select * from cmis:document&lt;/statement&gt; + &lt;maxItems&gt;10&lt;/maxItems&gt; + &lt;skipCount&gt;0&lt;/skipCount&gt; + &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; + &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; + &lt;/query&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>update</code> the input (xml string) indicates document properties to update. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;123456789&lt;/id&gt; + &lt;properties&gt; + &lt;property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz"&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name="ArrivedBy"&gt;HDN&lt;/property&gt; + &lt;property name="DocumentType"&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt; + </code></pre> + </p> + + <p> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>id</td><td>mandatory property "cmis:objectId" which indicates the document to update</td><td>&nbsp;</td></tr> + <tr><td>property</td><td>custom document property to update. See <code>action</code>=<code>create</code> for possible attributes</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + Sender that executes either its input or a fixed line, with all parametervalues appended, as a command. + + + + + + + + + + + + Sender that sleeps for a specified time, which defaults to 5000 msecs. + Useful for testing purposes. + + + + + + + + + + + + QuerySender that interprets the input message as a query, possibly with attributes. + Messages are expected to contain sql-text. + + + + + + + + + + + + Echos input to output. + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsSender. + + + + + + + + + + + + Implementation of a FileSystemSender that enables to manipulate messages in an Exchange folder. + + + + + + + + + + + + FileSystem Sender extension to handle Attachments. + + + + + + + + + + + + QuerySender that assumes a fixed query, possibly with attributes. + + <p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p> + + + + + + + + + + + + FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. + + + + + + + + + + + + + + + + + + + + + Sender for the HTTP protocol using HttpMethod. By default, any response code outside the 2xx or 3xx range + is considered an error and the <code>exception</code> forward of the SenderPipe is followed if present and if there + is no forward for the specific HTTP status code. Forwards for specific HTTP codes (e.g. "200", "201", ...) + are returned by this sender so they are available to the SenderPipe. + + <p><b>Expected message format:</b></p> + <p>GET methods expect a message looking like this: + <pre> + param_name=param_value&another_param_name=another_param_value + </pre> + <p>POST AND PUT methods expect a message similar as GET, or looking like this: + <pre> + param_name=param_value + another_param_name=another_param_value + </pre> + + Note: + When used as MTOM sender and MTOM receiver doesn't support Content-Transfer-Encoding "base64", messages without line feeds will give an error. + This can be fixed by setting the Content-Transfer-Encoding in the MTOM sender. + </p> + + + + + + + + + + + + JMS sender which will add an IMS header to the message and call the MQ specific logic. + + <p>See JmsSender for configuration</p> + + + + + + + + + + + + Posts a message to another IBIS-adapter or application in the same JVM using IbisServiceDispatcher. + + An IbisJavaSender makes a call to a Receiver with a JavaListener + or any other application in the same JVM that has registered a <code>RequestProcessor</code> with the IbisServiceDispatcher. + + <h4>configuring IbisJavaSender and JavaListener</h4> + <ul> + <li>Define a SenderPipe with an IbisJavaSender</li> + <li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a JavaListener</li> + <li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li> + </ul> + N.B. Please make sure that the IbisServiceDispatcher-1.1.jar is present on the class path of the server. + + + + + + + + + + + + Posts a message to another IBIS-adapter in the same IBIS instance. If the callee exits with an &lt;<code>exit</code>&gt; + that has state nl.nn.adapterframework.core.PipeLine.ExitState#ERROR, an error is considered to happen + in the caller which means that the <code>exception</code> forward is followed if it is present. + <p/> + <p/> + Returns exit.code as forward name to SenderPipe provided that exit.code can be parsed as integer. + For example, if the called adapter has an exit state with code + <code>2</code>, then the nl.nn.adapterframework.pipes.SenderPipe supports a forward with name <code>2</code> + that is followed when the called adapter exits with the mentioned exit. This does not work if the code is for example <code>c2</code>. + <p/> + <p/> + An IbisLocalSender makes a call to a Receiver with either a WebServiceListener + or a JavaListener. + + + + <h3>Configuration of the Adapter to be called</h3> + A call to another Adapter in the same IBIS instance is preferably made using the combination + of an IbisLocalSender and a JavaListener. If, + however, a Receiver with a WebServiceListener is already present, that can be used in some cases, too. + + <h4>configuring IbisLocalSender and JavaListener</h4> + <ul> + <li>Define a SenderPipe with an IbisLocalSender</li> + <li>Set the attribute <code>javaListener</code> to <i>yourServiceName</i></li> + <li>Do not set the attribute <code>serviceName</code></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a JavaListener</li> + <li>Set the attribute <code>name</code> to <i>yourServiceName</i></li> + <li>Do not set the attribute <code>serviceName</code>, except if the service is to be called also + from applications other than this IBIS-instance</li> + </ul> + + <h4>configuring IbisLocalSender and WebServiceListener</h4> + + <ul> + <li>Define a SenderPipe with an IbisLocalSender</li> + <li>Set the attribute <code>serviceName</code> to <i>yourIbisWebServiceName</i></li> + <li>Do not set the attribute <code>javaListener</code></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a WebServiceListener</li> + <li>Set the attribute <code>name</code> to <i>yourIbisWebServiceName</i></li> + </ul> + + + + + + + + + + + + Requires the net.bankid.merchant.library V1.06+. + Compile with Java 1.7+ + + + + + + + + + + + + + + + + + + + + + sender that sends a message to an IFSA service and, in case the MessageProtocol is RR (Request-Reply) + it waits for an reply-message. + + + + + + + + + + + + Extension of JmsSender which only adds parameters to simulate IFSA. + + <p><b>Configuration </b><i>(where deviating from JmsSender)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>messageType</td><td>type of messages. Possible values: + <ul> + <li>rr_request</li> + <li>rr_reply</li> + <li>ff_request</li> + </ul> When messageType=rr_reply, the destination is retrieved from session key <code>replyTo</code></td><td>&nbsp;</td></tr> + </table></p> + <p><b>added parameters:</b> + <table border="1"> + <tr><th>name</th><th>type</th><th>sessionKey</th><th>defaultValue</th><th>pattern</th><th>value</th><th>minLength</th><th/></tr> + <tr><td>ifsa</td><td></td><td></td><td></td><td></td><td>_IFSA_HEADER_</td><td></td><td></td></tr> + <tr><td>ifsa_api</td><td></td><td></td><td></td><td></td><td>jms_wrapper</td><td></td><td></td></tr> + <tr><td>ifsa_api_version</td><td></td><td></td><td></td><td></td><td>22.30.020</td><td></td><td></td></tr> + <tr><td>ifsa_auth_flag</td><td></td><td></td><td></td><td></td><td>1</td><td></td><td></td></tr> + <tr><td>ifsa_bif_id</td><td></td><td><code>rr_reply: </code>ifsa_bif_id</td><td></td><td><code>rr_request/ff_request: </code>${IFSAApplicationID}#{ifsa_destination}#{uid}</td><td></td><td></td><td></td></tr> + <tr><td>ifsa_bif_type</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>0<br/><code>ff_request: </code>2</td><td></td><td></td></tr> + <tr><td>ifsa_bulk</td><td></td><td></td><td></td><td></td><td>0</td><td></td><td></td></tr> + <tr><td>ifsa_bulk_auth_flag</td><td></td><td></td><td></td><td></td><td>0</td><td></td><td></td></tr> + <tr><td>ifsa_cil_version</td><td></td><td></td><td></td><td></td><td>22.30.009</td><td></td><td></td></tr> + <tr><td>ifsa_comp_algo</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_destination</td><td></td><td><code>rr_reply: </code>ifsa_source</td><td></td><td></td><td></td><td></td><td><code>rr_request/ff_request: </code>to be set in IBIS configuration</td></tr> + <tr><td>ifsa_expiry</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>${timeOutIFSARR}<br/><code>ff_request: </code>0</td><td></td><td></td></tr> + <tr><td>ifsa_header_version</td><td></td><td></td><td></td><td></td><td>02.02.000</td><td></td><td></td></tr> + <tr><td>ifsa_hop_count</td><td></td><td></td><td></td><td></td><td>000</td><td></td><td></td></tr> + <tr><td>ifsa_node_id</td><td></td><td></td><td></td><td></td><td>${ifsa_node_id}</td><td></td><td></td></tr> + <tr><td>ifsa_ori_area</td><td></td><td><code>ff_request: </code>null</td><td><code>ff_request: </code>""</td><td></td><td><code>rr_request/rr_reply: </code>${ifsa_ori_area}</td><td>60</td><td></td></tr> + <tr><td>ifsa_ori_format</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_ori_length</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_ori_rtq</td><td></td><td><code>rr_reply/ff_request: </code>null</td><td><code>rr_reply/ff_request: </code>""</td><td></td><td><code>rr_request: </code>${ifsa_ori_rtq}</td><td>48</td><td></td></tr> + <tr><td>ifsa_ori_rtqm</td><td></td><td><code>rr_reply/ff_request: </code>null</td><td><code>rr_reply/ff_request: </code>""</td><td></td><td><code>rr_request: </code>${ifsa_ori_rtqm}</td><td>48</td><td></td></tr> + <tr><td>ifsa_priority</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>3<br/><code>ff_request: </code>2</td><td></td><td></td></tr> + <tr><td>ifsa_source</td><td></td><td></td><td></td><td><code>rr_reply: </code>${IFSAApplicationID}#{ifsa_destination}</td><td><code>rr_request/ff_request: </code>${IFSAApplicationID}</td><td></td><td></td></tr> + <tr><td>ifsa_unique_id</td><td></td><td></td><td></td><td>{uid}</td><td></td><td></td><td></td></tr> + <tr><td>JMS_IBM_MsgType</td><td>integer</td><td></td><td></td><td></td><td><code>rr_request: </code>1<br/><code>rr_reply: </code>2<br/><code>ff_request: </code>8</td><td></td><td></td></tr> + </table> + </p> + + + + + + + + + + + + + + + + + + + + + Sender used to run javascript code using J2V8 or Rhino + + This sender can execute a function of a given javascript file, the result of the function will be the output of the sender. + The parameters of the javascript function to run are given as parameters by the adapter configuration + The sender doesn't accept nor uses the given input, instead for each argument for the #jsFunctionName method, + you will need to create a parameter on the sender. + It is recommended to have the result of the javascript function be of type String, as the output of the sender will be + of type String. + + + + + + + + + + + + This class sends messages with JMS. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, yielding JSON, XML or text. + JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json. + The XSLT stylesheet or XPathExpression operates on these element. + + + + + + + + + + + + Sender to obtain information from and write to an LDAP Directory. + Returns the set of attributes in an XML format. Examples are shown below. + + <h2>example</h2> + Consider the following configuration example: + <code> + <pre> + &lt;sender + className="nl.nn.adapterframework.ldap.LdapSender" + ldapProviderURL="ldap://servername:389/o=ing" + operation="read" + attributesToReturn="givenName,sn,telephoneNumber" &gt; + &lt;param name="entryName" xpathExpression="entryName" /&gt; + &lt;/sender&gt; + </pre> + </code> + <br/> + + This may result in the following output: + <code><pre> + &lt;ldap&gt; + &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; + + &lt;attributes&gt; + &lt;attribute attrID="givenName"&gt; + &lt;value&gt;Jan&lt;/value&gt; + &lt;/attribute&gt; + + &lt;attribute attrID="telephoneNumber"&gt; + &lt;value&gt;010 5131123&lt;/value&gt; + &lt;value&gt;06 23456064&lt;/value&gt; + &lt;/attribute&gt; + + &lt;attribute attrID="sn"&gt; + &lt;value&gt;Jansen&lt;/value&gt; + &lt;/attribute&gt; + &lt;/attributes&gt; + &lt;/ldap&gt; + </pre></code> <br/> + + Search or Read? + + Read retrieves all the attributes of the specified entry. + + Search retrieves all the entries of the specified (by entryName) context that have the specified attributes, + together with the attributes. If the specified attributes are null or empty all the attributes of all the entries within the + specified context are returned. + + Sample result of a <code>read</code> operation:<br/><code><pre> + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="employeeType" value="Extern"/&gt; + &lt;attribute name="roomNumber" value="DP 2.13.025"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + + </pre></code> <br/> + Sample result of a <code>search</code> operation:<br/><code><pre> + &lt;entries&gt; + &lt;entry name="uid=srp"&gt; + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="employeeType" value="Extern"/&gt; + &lt;attribute name="roomNumber" value="DP 2.13.025"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + &lt;/entry&gt; + &lt;entry&gt; .... &lt;/entry&gt; + ..... + &lt;/entries&gt; + </pre></code> <br/> + + + + + + + + + + + + + + + + + + + + + Sender that just logs its message. + + + + + + + + + + + + JMS sender which will call IBM WebSphere MQ specific + setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ) on the destination prior to + sending a message. This is needed when the MQ destination is not a JMS + receiver otherwise format errors occur (e.g. dots are added after every + character in the message). + + <p>See JmsSender for configuration</p> + + + + + + + + + + + + sender that sends a mail specified by an XML message. + <p> + Sample email.xml: + <code><pre> + &lt;email&gt; + &lt;recipients&gt; + &lt;recipient type="to"&gt;***@hotmail.com&lt;/recipient&gt; + &lt;recipient type="cc"&gt;***@gmail.com&lt;/recipient&gt; + &lt;/recipients&gt; + &lt;from name="*** ***"&gt;***@yahoo.com&lt;/from&gt; + &lt;subject&gt;This is the subject&lt;/subject&gt; + &lt;threadTopic&gt;subject&lt;/threadTopic&gt; + &lt;message&gt;This is the message&lt;/message&gt; + &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; + &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; + &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; + &lt;attachments&gt; + &lt;attachment name="filename1.txt"&gt;This is the first attachment&lt;/attachment&gt; + &lt;attachment name="filename2.pdf" base64="true"&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; + &lt;attachment name="filename3.pdf" url="file:/c:/filename3.pdf"/&gt; + &lt;attachment name="filename4.pdf" sessionKey="fileContent"/&gt; + &lt;/attachments&gt;&lt;!-- Optional --&gt; + &lt;/email&gt; + </pre></code> + </p><p> + Notice: the XML message must be valid XML. Therefore, especially the message element + must be plain text or be wrapped as CDATA. Example: + <code><pre> + &lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt; + </pre></code> + </p><p> + The <code>sessionKey</code> attribute for attachment can contain an inputstream or a string. Other types are not supported at this moment. + </p><p> + The attribute order for attachments is as follows: + <ol> + <li>sessionKey</li> + <li>url</li> + <li><i>value of the attachment element</i></li> + </ol> + </p><p> + The <code>base64</code> attribute is only used when the value of the PipeLineSession variable <code>sessionKey</code> is a String object + or when the value of the attachment element is used. If <code>base64=true</code> then the value will be decoded before it's used. + </p><p> + <b>Compilation and Deployment Note:</b> mail.jar (v1.2) and activation.jar must appear BEFORE j2ee.jar. + Otherwise errors like the following might occur: <code>NoClassDefFoundException: com/sun/mail/util/MailDateFormat</code> + </p> + + + + + + + + + + + + Send messages to the IBISSTORE database table to have them processed exactly-once by another + adapter which will read the messages using a MessageStoreListener. + This other adapter will process the messages asynchronously and (optionally) + under transaction control. Duplicate messages are ignored based on the + messageId (except when onlyStoreWhenMessageIdUnique is set to false), hence + the sender of the message can retry sending the message until a valid reply + is received in which case it can be certain that the message is stored in the + database table IBISSTORE. + <br/><br/> + If you have a <code>MessageStoreSender</code> it does not make sense to add a <code>JdbcMessageLog</code> + or <code>JdbcErrorStorage</code> in the same sender pipe. A <code>MessageStoreSender</code> + acts as a message log and an error store. It can be useful however to add a message log or error store + to the adapter around the sender pipe, because errors may occur before the message reaches the sender pipe. + <br/><br/> + Example configuration: + <code><pre> + &lt;SenderPipe name="Send"&gt; + &lt;MessageStoreSender + slotId="${instance.name}/TestMessageStore" + onlyStoreWhenMessageIdUnique="false" + /&gt; + &lt;/SenderPipe&gt; + </pre></code> + + + + + + + + + + + + Sender to perform action on a MongoDB database. + + + + + + + + + + + + MQTT listener which will connect to a broker and subscribe to a topic. + + Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame. + + + + + + + + + + + + Sender for Akamai NetStorage (HTTP based). + + <p>See HttpSenderBase for more arguments and parameters!</p> + + + <p><b>AuthAlias:</b></p> + <p>If you do not want to specify the nonce and the accesstoken used to authenticate with Akamai, you can use the authalias property. The username represents the nonce and the password the accesstoken.</p> + + + + + + + + + + + + Collection of Senders, that are executed all at the same time. + + + + + + + + + + + + Performs a reload on database configuration. + + <p>It is possible to set the name of the configuration with the parameter 'name'.</p> + <p>You can dynamically set 'forceReload' attribute with the parameter 'forceReload'.</p> + + + + + + + + + + + + QuerySender that writes each row in a ResultSet to a file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Registers a trigger in the scheduler so that the message is send to a javalistener + at a scheduled time. + + + + + + + + + + + + Sender that sends a mail via SendGrid v3 (cloud-based SMTP provider). + + Sample XML file can be found in the path: iaf-core/src/test/resources/emailSamplesXML/emailSample.xml + + + + + + + + + + + + Series of Senders, that are executed one after another. + + + + + + + + + + + + Wrapper for senders, that allows to get input from a session variable, and to store output in a session variable. + + + + + + + + + + + + + + + + + + + + + Collection of Senders, that are executed all at the same time. Once the results are processed, all results will be sent to the resultSender, + while the original sender will return it's result to the pipeline. + + <p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p> + + + + + + + + + + + + StoredProcedureQuerySender is used to send stored procedure queries and retrieve the result. + + <p> + The StoredProcedureQuerySender class has the following features: + <ul> + <li>It supports setting the output parameters of the stored procedure by setting 'mode' attribute of + the corresponding 'Param' to 'OUTPUT' or 'INOUT'.</li> + <li>The queryType can only be 'SELECT' or 'OTHER'. Use 'SELECT' when the stored procedure + returns a set of rows, use 'OTHER' if the stored procedure has one or more output parameters. + </li> + </ul> + </p> + <p> + All stored procedure parameters that are not fixed, so specified in the query with a {@code ?}, should + have a corresponding Parameter entry. Output parameters should have {@code mode="OUTPUT"}, or + {@code mode="INOUT"} depending on how the stored procedure is defined. + </p> + <p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p> + + + + + + + + + + + + Dedicated sender on Tibco Destinations. + + + + + + + + + + + + Sender that sends a message via a WebService based on NTLM authentication. + + + + + + + + + + + + Sender that sends a message via a WebService. + + + + + + + + + + + + XCom client voor het versturen van files via XCom. + + + + + + + + + + + + Sender for transferring files using the XFB protocol. Assumes sender input is local filename. + <br/> + Some comments from Richard Maddox (FTO) about UNIX File permissions: + <br/> + <br/> + In case of AIX or SUN systems we advise the following user and directory permissions: + <br/> + <br/> + SENDING CFT: + <br/> + - App_user must have secondary group: xfbgw + <br/> + - Folder should have ownership: app_user:xfbgw (owner:group) + <br/> + - Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder + <br/> + - Folder should have SGID bit set so that all files what is copied to this folder get group ownership xfbgw + <br/> + - send file must have rights 660 after putting the file in the send directory. + <br/> + <br/> + RECEIVING CFT: + <br/> + - App_user (the application user of customer) should have secondary group: xfbgw + <br/> + - Folder should have ownership: app_user:xfbgw (owner:group) + <br/> + - Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder + <br/> + - Folder should have SGID bit set, so that all files what is copied to this folder get group ownership xfbgw + <br/> + <br/> + There are of course more solutions to get the job done, but this is the solution we can guarantee. + + + + + + + + + + + + Sender for browsing and removing queue messages (with input and output in a XML message). + + <p> + When input root element is <code>browse</code> all queue messages are returned. + </p> + <p> + When input root element is <code>remove</code> all queue messages are removed. + </p> + <p> + <b>example (input):</b> + <code> + <pre> + &lt;browse&gt; + &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; + &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; + &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; + &lt;/browse> + </pre> + </code> + </p> + + + <p> + <b>example (browse output):</b> + <code> + <pre> + &lt;result&gt; + &lt;items count="2"&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;/items&gt; + &lt;/result&gt; + </pre> + </code> + </p> + + <p> + <b>example (remove output):</b> + <code> + <pre> + &lt;result&gt; + &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; + &lt;/result&gt; + </pre> + </code> + </p> + + + + + + + + + + + + QuerySender that transforms the input message to a query. + <br/><code><pre> + select + delete + insert + update - tableName + - columns [0..1] - column [1..n] - name + - value [0..1] + - type [0..1] one of {string;function;number;datetime;blob;clob;xmldatetime}, string by default + - decimalSeparator [0..1] only applicable for type=number + - groupingSeparator [0..1] only applicable for type=number + - formatString [0..1] only applicable for type=datetime, yyyy-MM-dd HH:mm:ss.SSS by default + - where [0..1] + - order [0..1] + <br/> + alter - sequenceName + - startWith + <br/> + sql - type [0..1] one of {select;ddl;other}, other by default + - query + <br/> + </pre></code><br/> + + + + + + + + + + + + Sender that validates the input message against a XML Schema. + + N.B. noNamespaceSchemaLocation may contain spaces, but not if the schema is stored in a .jar or .zip file on the class path. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet or XPath-expression. + + + + + + + + + + + + Sender that writes an entry to a ZipStream, similar to ZipWriterPipe with action='write'. + Filename and contents are taken from parameters. If one of the parameters is not present, the input message + is used for either filename or contents. + + + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + + + + + + + + + + + Access key to access to the AWS resources owned by the account + + + + + Secret key to access to the AWS resources owned by the account + + + + + Alias used to obtain AWS credentials + + + + + Setting this flag will result in disabling chunked encoding for all requests. Default: false + + + + + Set whether the client should be configured with global bucket access enabled. Default: false + + + + + Name of the region that the client will be created from Default: eu-west-1 + + + + + Name of the bucket to access. The bucketName can also be specified by prefixing it to the object name, separated from it by | + + + + + Proxy host + + + + + Proxy port + + + + + The S3 service endpoint, either with or without the protocol. (e.g. https://sns.us-west-1.amazonaws.com or sns.us-west-1.amazonaws.com) + + + + + Maximum concurrent connections towards S3 + + + + + + + + + + + + + + + + name of the sender + + + + + + + + + If parameter [action] is set, then the attribute action value will be overridden with the value of the parameter. + + + + + + + + Filename to operate on. If not set, the parameter filename is used. If that is not set either, the input is used + + + + + Destination for move, copy or rename. If not set, the parameter destination is used. If that is not set either, the input is used + + + + + Folder that is scanned for files when action=list. When not set, the root is scanned + + + + + If set <code>true</code>, the folder to create, write, move or copy the file to is created if it does not exist Default: false + + + + + If set <code>true</code>, for actions create, move, copy or rename, the destination file is overwritten if it already exists Default: false + + + + + For action=append: If set to a positive number, the file is rotated each day, and this number of files is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + For action=append: If set to a positive number, the file is rotated when it has reached the specified size, and the number of files specified in numberOfBackups is kept. Size is specified in plain bytes, suffixes like 'K', 'M' or 'G' are not recognized. The inputFolder must point to the directory where the file resides Default: 0 + + + + + For the actions write and append, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions move, copy, delete and list + + + + + Filter of files to be excluded when looking in inputFolder. Works with actions move, copy, delete and list + + + + + If set to <code>true</code> then the folder and the content of the non empty folder will be deleted. + + + + + If set to <code>true</code> then the system specific line separator will be appended to the file after executing the action. Works with actions write and append Default: false + + + + + Charset to be used for read and write action + + + + + If set to true then the folder will be deleted if it is empty after processing the action. Works with actions delete, readDelete and move + + + + + OutputFormat Default: XML + + + + + + + + + + + + + + + + + + + Specifies action to perform + + + + + + + + The maximum number of concurrent connections Default: 10 + + + + + The connection timeout in seconds Default: 10 + + + + + URL to connect to + + + + + Repository ID + + + + + Alias used to obtain credentials for authentication to host + + + + + Username used in authentication to host + + + + + Password used in authentication to host + + + + + BindingType CMIS protocol to use + + + + + + + + If <code>action</code>=<code>create</code> the sessionKey that contains the file to use. If <code>action</code>=<code>get</code> and <code>getProperties</code>=<code>true</code> the sessionKey to store the result in + + + + + If <code>action</code>=<code>create</code> the session key that contains the name of the file to use. If not set, the value of the property <code>filename</code> from the input message is used + + + + + If <code>action</code>=<code>create</code> the mime type used to store the document when it's not set in the input message by a property Default: 'application/octet-stream' + + + + + (Only used when <code>action</code>=<code>get</code>). If true, the content of the document is streamed to <code>fileInputStreamSessionKey</code> and all document properties are put in the result as a xml string Default: false + + + + + (Only used when <code>action</code>=<code>get</code>). If true, the attachment for the document is the sender result or, if set, stored in <code>fileInputStreamSessionKey</code>. If false, only the properties are returned Default: true + + + + + (Only used when <code>action</code>=<code>create</code>). If true, the document is created in the root folder of the repository. Otherwise the document is created in the repository Default: true + + + + + If true, the session is not closed at the end and it will be used in the next call Default: true + + + + + Override entrypoint WSDL by reading it from the classpath, overrides url attribute + + + + + Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Resource url to truststore. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + Proxy host url + + + + + Proxy host port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy Username + + + + + Proxy Password + + + + + + + + + + + + + + + + The command to be executed. Note: Executing a command in WAS requires &lt;&lt;ALL FILES&gt;&gt; execute permission to avoid that provide the absolute path of the command. Absolute path can be found with the following command 'which -a {commandName}' + + + + + The number of seconds to execute a command. If the limit is exceeded, a TimeoutException is thrown. A value of 0 means execution time is not limited Default: 0 + + + + + In case the command that will be executed contains arguments then this flag should be set to true Default: false + + + + + + + + + + + + + + + The time <i>in milliseconds</i> the thread will be put to sleep Default: 5000 [ms] + + + + + + + + + + + + + + + + + + + + + The number of seconds the driver will wait for a statement object to execute. If the limit is exceeded, a TimeoutException is thrown. A value of 0 means execution time is not limited Default: 0 + + + + + + + + + + + + Type of query to be executed Default: OTHER + + + + + + + + + + The maximum number of rows to be returned from the output of <code>select</code> queries, -1 means unlimited rows Default: -1 + + + + + The number of the first row to be returned from the output of <code>select</code> queries. Rows before this are skipped from the output. Default: 1 + + + + + + + Comma separated list of columns whose values are to be returned. Works only if the driver implements jdbc 3.0 getGeneratedKeys(). + Note: not all drivers support multiple values and returned field names may vary between drivers. + Works for H2 and Oracle. Could work for MS_SQL with a single identity column, with name GENERATED_KEYS, if a identity has been generated. Not supported for other DBMSes. + + + + + + + + If specified, the rowid of the processed row is put in the pipelinesession under the specified key (only applicable for <code>querytype=other</code>). <b>Note:</b> If multiple rows are processed a SqlException is thrown. + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + When set <code>true</code>, exclusive row-level locks are obtained on all the rows identified by the select statement (e.g. by appending ' FOR UPDATE NOWAIT SKIP LOCKED' to the end of the query) Default: false + + + + + when set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1 + + + + + + Only for querytype 'updateBlob': column that contains the BLOB to be updated Default: 1 + + + + + For querytype 'updateBlob': key of session variable that contains the data (String or InputStream) to be loaded to the BLOB. When empty, the input of the pipe, which then must be a String, is used. + For querytype 'select': key of session variable that contains the OutputStream, Writer or Filename to write the BLOB to + + + + + controls whether blobdata is stored compressed in the database Default: true + + + + + controls whether the streamed blobdata will need to be base64 <code>encode</code> or <code>decode</code> or not. + + + + + + + + Charset that is used to read and write BLOBs. This assumes the blob contains character data. + If blobCharset and blobSmartGet are not set, BLOBs are returned as bytes. Before version 7.6, blobs were base64 encoded after being read to accommodate for the fact that senders need to return a String. This is no longer the case + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database Default: false + + + + + Only for querytype 'updateClob': column that contains the CLOB to be updated Default: 1 + + + + + For querytype 'updateClob': key of session variable that contains the CLOB (String or InputStream) to be loaded to the CLOB. When empty, the input of the pipe, which then must be a String, is used. + For querytype 'select': key of session variable that contains the OutputStream, Writer or Filename to write the CLOB to + + + + + + + If true, then select queries are executed in a way that avoids taking locks, e.g. with isolation mode 'read committed' instead of 'repeatable read'. Default: false + + + + + + The type of output. If not set then defaults to old-style XML. If set to XML, new-style XML is used. EXPERIMENTAL: datatypes like numbers are not yet rendered correctly Default: false + + + + + + + + + + + + + + + + + + + hack to allow to introduce a correlationid Default: true + + + + + + + + + + + + + + + + protocol of ESB service to be called + + + + + + + + receiver timeout, in milliseconds + ff.default 20000 (20s) + + + + + if messageProtocol=<code>RR</code> then <code>deliveryMode</code> defaults to <code>NON_PERSISTENT</code> Default: not set by application + + + + + + + + if messageProtocol=<code>RR</code> then <code>replyTimeout</code> defaults to <code>timeOut</code> Default: 5000 + + + + + if messageProtocol=<code>RR</code> then <code>synchronous</code> defaults to <code>true</code> Default: false + + + + + if messageProtocol=<code>RR</code> then if <code>soapAction</code> is empty then it is derived from the element MessageHeader/To/Location in the SOAP header of the input message (if $messagingLayer='P2P' then '$applicationFunction' else '$operationName_$operationVersion) + + + + + + + + + + + + + If <code>true</code>, messages sent are put in a SOAP envelope Default: false + + + + + + + + + + + + + + + + + + + + + + + + If <code>true</code>, the sender operates in RR mode: A reply is expected, either on the queue specified in <code>replyToName</code>, or on a dynamically generated temporary queue Default: false + + + + + + + (Only for <code>synchronous</code>=<code>true</code>). Maximum time in ms to wait for a reply. 0 means no timeout. Default: 5000 + + + + + + Controls mode that messages are sent with Default: not set by application + + + + + + + + + If <code>true</code>, messages sent are put in a SOAP envelope Default: false + + + + + + + SOAPAction string sent as message property + + + + + + + + + + + + + + + + + + + The mail address of the mailbox connected to (also used for auto discovery) + + + + + Url of the Exchange server. Set to e.g. https://outlook.office365.com/EWS/Exchange.asmx to speed up startup, leave empty to use autodiscovery + + + + + Client ID that represents a registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview. + + + + + Client secret that belongs to registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Certificates and Secrets + + + + + Tenant ID that represents the tenant in which the registered application exists within Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview. + + + + + Alias used to obtain client ID and secret or username and password for authentication to Exchange mail server. + If the attribute tenantId is empty, the deprecated Basic Authentication method is used. + If the attribute tenantId is not empty, the username and password are treated as the client ID and secret. + + + + + Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is used + + + + + If empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrieved + + + + + Comma separated list of fields to try as response address Default: replyTo,from,sender,Return-Path + + + + + proxy host + + + + + proxy port Default: 8080 + + + + + proxy username + + + + + proxy password + + + + + proxy authAlias + + + + + proxy domain + + + + + Separator character used when working with multiple mailboxes, specified before the separator in the object name <code>test@organisation.com|My sub folder</code> or <code>test@organisation.com|AAMkADljZDMxYzIzLTFlMjYtNGY4Mi1hM2Y1LTc2MjE5ZjIyZmMyNABGAAAAAAAu/9EmV5M6QokBRZwID1Q6BwDXQXY+F44hRbDfTB9v8jRfAAAEUqUVAADXQXY+F44hRbDfTB9v8jRfAAKA4F+pAAA=</code>. + Please consider when moving emails across mailboxes that there will be a null value returned instead of the newly created identifier. Default: | + + + + + Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Resource url to truststore. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + + + + + + + + + + + + + + + + + The SQL query text to be excecuted each time sendMessage() is called + + + + + + + + + + + + + + + + + should values between ${ and } be resolved from the pipelinesession Default: false + + + + + Name of the file containing the result message + + + + + returned message + + + + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + FTP protocol to use Default: FTP + + + + + + + + + + + + + If <code>true</code>, passive ftp is used: before data is sent, a pasv command is issued, and the connection is set up by the server Default: true + + + + + (ftps) Transport type in case of sftp Default: SOCKS5 + + + + + + + + (ftps) Resource url to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + (ftps) Type of keystore Default: pkcs12 + + + + + + + + (ftps) Authentication alias used to obtain keystore password + + + + + (ftps) Default password to access keystore + + + + + (ftps) Alias to obtain specific certificate or key in keystore + + + + + (ftps) Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + (ftps) Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + (ftps) Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + (ftps) Resource url to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + (ftps) Type of truststore Default: jks + + + + + + + + (ftps) Authentication alias used to obtain truststore password + + + + + (ftps) Default password to access truststore + + + + + (ftps) Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + (ftps) If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + (ftps) If <code>true</code>, self signed certificates are accepted Default: false + + + + + (ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + Sets the <code>Data Channel Protection Level</code>. Default: C + + + + + + + + + + + + + + + + + + + If <code>methodType</code>=<code>POST</code>, <code>PUT</code> or <code>PATCH</code>, the type of post request Default: RAW + + + + + + + + (Only used when <code>methodType</code>=<code>POST</code> and <code>postType</code>=<code>URLENCODED</code>, <code>FORM-DATA</code> or <code>MTOM</code>) Prepends a new BodyPart using the specified name and uses the input of the Sender as content + + + + + If set, the result is streamed to the HhttpServletResponse object of the RestServiceDispatcher (instead of passed as a string) Default: false + + + + + If set and <code>methodType</code>=<code>POST</code> and <code>paramsInUrl</code>=<code>false</code>, a multipart/form-data entity is created instead of a request body. + For each part element in the session key a part in the multipart entity is created. Part elements can contain the following attributes: + <ul> + <li>name: optional, used as 'filename' in Content-Disposition</li> + <li>sessionKey: mandatory, refers to contents of part</li> + <li>mimeType: optional MIME type</li> + </ul> + The name of the part is determined by the name attribute, unless that is empty, or the contents is binary. In those cases the sessionKey name is used as name of the part. + + + + + + Specifies whether messages will encoded, e.g. spaces will be replaced by '+' etc. Default: false + + + + + If <code>true</code>, the input will be added to the URL for <code>methodType</code>=<code>GET</code>, or for <code>methodType</code>=<code>POST</code>, <code>PUT</code> or <code>PATCH</code> if <code>postType</code>=<code>RAW</code>. This used to be the default behaviour in framework version 7.7 and earlier Default: for methodType=<code>GET</code>: <code>false</code>,<br/>for methodTypes <code>POST</code>, <code>PUT</code>, <code>PATCH</code>: <code>true</code> + + + + + + + + + + + + + + + + URL or base of URL to be used + + + + + + + + + + + + (Only used when xHtml=<code>true</code>) stylesheet to apply to the HTML response + + + + + + + The functional name of the object. + + + + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The transaction code that should be added in the header, must be 8 characters + + + + + + + + + + + + + + + + ServiceName of the JavaListener that should be called. + + + + + Key of session variable to specify ServiceName of the JavaListener that should be called. + + + + + Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results. + The set of available sessionKeys to be returned might be limited by the returnedSessionKeys attribute of the corresponding JavaListener. + + + + + Currently used to mimic the HttpSender when it is stubbed locally. It could be useful in other situations too although currently the response string is used which isn't streamed, it would be better to pass the multipart as an input stream in the context map in which case content type and charset could also be passed Default: false + + + + + Set to 'DLL' to make the dispatcher communicate with a DLL set on the classpath + + + + + + + + + + + + + + + + Name of the JavaListener that should be called (will be ignored when javaListenerSessionKey is set) + + + + + Name of the sessionKey which holds the name of the JavaListener that should be called + + + + + Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results. + The set of available sessionKeys to be returned might be limited by the returnedSessionKeys attribute of the corresponding JavaListener. + + + + + If set <code>false</code>, the call is made asynchronously. This implies isolated=<code>true</code> Default: true + + + + + If <code>true</code>, the call is made in a separate thread, possibly using separate transaction Default: false + + + + + If <code>true</code>, the sender waits upon open until the called JavaListener is opened Default: true + + + + + Maximum time (in seconds) the sender waits for the listener to start. A value of -1 indicates to wait indefinitely Default: 60 + + + + + If set <code>false</code>, the xml-string \"&lt;error&gt;could not find JavaListener [...]&lt;/error&gt;\" is returned instead of throwing a senderexception Default: true + + + + + + + + + + + + + + + + + This is the contract number for iDIN the Merchant received from its Acquirer after registration, + and is used to unambiguously identify the Merchant. This number is 10-digits long, where the + first four digits are equal to the AcquirerID. + + + + + The SubID that uniquely defines the name and address of the Merchant to be used for iDIN, + if operating under different brands or trading entities. The Merchant obtains the SubID + from its Acquirer after registration for iDIN. A Merchant can request permission from + the Acquirer to use one or more SubIDs. + + + + + The web address provided by the Merchant in the transaction request that is used to redirect the + Consumer back to the Merchant after completing the authentication in the Issuer domain. The URL + does not necessarily begin with http:// or https://, it can also start with an app handler + e.g. companyname-nlservice://. + + + + + + + + The Java iDIN Software Library needs to access a keystore located in the Java classpath to + store all the required certificates + + + + + The password used to access the keystore + + + + + The AuthAlias used to access the keystore + + + + + This is the certificate owned by the Merchant. It's the private certificate + used to sign messages sent by the Merchant to the Acquirer's Routing Service platform. Its public + key is also used by the Acquirer to authenticate incoming messages from the Merchant. The + Merchant certificate must be in PKCS#12 format which has the extension .p12 or .pfx + + + + + In case the merchant certificate has been password protected + + + + + In case the merchant certificate has been password protected + + + + + This is the public certificate used to authenticate incoming messages from the Acquirer. The library + only needs its public key. The public certificate must be in PEM format (base64 ASCII) and typically + has the file extension .cer,.crt or .pem. + + + + + This is the public certificate used to authenticate incoming messages from the Acquirer. The library + only needs its public key. The public certificate must be in PEM format (base64 ASCII) and typically + has the file extension .cer,.crt or .pem. + + + + + This is the certificate owned by the Merchant. Its public key is used by the Issuer to encrypt information. + The Merchant can then use the private key to decrypt that information. The SAML certificate must be in + PKCS#12 format which has the extension .p12 or .pfx; + + + + + In case the SAML certificate has been password protected + + + + + In case the SAML certificate has been password protected + + + + + + + + + + + + + + + + + + + + + + + + + Session key in which LUW information is stored. If set, actions that share a LUW-handle will be executed using the same destination. Can only be used for synchronous functions + + + + + Name of the parameter used to indicate the name of the SapSystem used by this object if the attribute <code>sapSystemName</code> is empty Default: sapSystemName + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The hostname of the IMAP server + + + + + The port of the IMAP server Default: 993 + + + + + Alias used to obtain accessToken or username and password for authentication to Exchange mail server. + If the alias refers to a combination of a username and a password, the deprecated Basic Authentication method is used. + If the alias refers to a password without a username, the password is treated as the accessToken. + + + + + Username for authentication to mail server. + + + + + Password for authentication to mail server. + + + + + Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is used + + + + + Comma separated list of fields to try as response address Default: replyTo,from,sender,Return-Path + + + + + + + + + + + + + + + + the name of the javascript file containing the functions to run + + + + + the name of the javascript function that will be called (first) Default: main + + + + + the name of the javascript engine to be used Default: J2V8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If set, input is taken from this session key, instead of regular input + + + + + If set, this fixed value is taken as input, instead of regular input + + + + + If set <code>true</code>, the input of a pipe is restored before processing the next one Default: false + + + + + If set, the result is stored under this session key + + + + + If set, the input is stored under this session key + + + + + + + + + + + + + + + + When <code>true</code>, the xml result of the transformation is converted back to json Default: true + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions Default: j=http://www.w3.org/2013/XSL/json + + + + + + + + If true, then this sender will process the XSLT while streaming in a different thread. Can be used to switch streaming off for debugging purposes Default: set by appconstant xslt.streaming.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheet + + + + + For xpathExpression only Default: text + + + + + + + + If set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text. + Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + + + + + + + + + + If true, then this sender will process the XSLT while streaming in a different thread. Can be used to switch streaming off for debugging purposes Default: set by appconstant xslt.streaming.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheet + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some other use cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + If left empty, an the xpathExpression will match any namespace + + + + + For xpathExpression only Default: text + + + + + + + + If set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text. + Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + + + + + + + + + + + + + + + + + + Specifies LDAP operation to perform Default: read + + + + + + + + URL to context to search in, e.g. 'ldap://edsnlm01.group.intranet/ou=people, o=ing' to search in te people group of ing cds. Used to overwrite the providerURL specified in jmsRealm. + + + + + Specifies subject to perform operation on. Default: attribute + + + + + + + + Comma separated list of attributes to return. When no are attributes specified, all the attributes from the object read are returned. Default: <i>all attributes</i> + + + + + Specifies whether connection pooling is used or not Default: true when principal not set as parameter, false otherwise + + + + + Specifies the time (in ms) that is spent searching for results for operation search Default: 20000 + + + + + Key of session variable used to store cause of errors Default: errorReason + + + + + The maximum number of entries to be returned by a search query, or <code>0</code> for unlimited Default: 0 + + + + + When <code>true</code> the attributes passed by the input xml are scanned for an attribute with id unicodepwd, when found the value of this attribute will be encoded as required by active directory (a UTF-16 encoded unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server Default: false + + + + + (Only used when <code>operation=search/deepsearch</code>) when <code>true</code> the xml '&lt;ldapresult&gt;object not found&lt;/ldapresult&gt;' is returned instead of the PartialResultException 'unprocessed continuation reference(s)' Default: false + + + + + + + + + + + + + + + + Optional base folder, that serves as root for all other folders + + + + + + + + + + + + + + + + category under which messages are logged Default: name of the sender + + + + + level on which messages are logged Default: info + + + + + + + + + + + + + + + + + + + + + Name of the SMTP-host by which the messages are to be send + + + + + Port of the SMTP-host by which the messages are to be send Default: 25 + + + + + + + + + + + authAlias used to obtain credentials for authentication + + + + + + password of userid + + + + + + + Timeout <i>in milliseconds</i> for socket connection timeout and socket i/o timeouts Default: 20000 + + + + + + + + + + + + + + + + + + + + + + + + + + Comma separated list of sessionKey's to be stored together with the message. Please note: corresponding MessageStoreListener must have the same value for this attribute. + + + + + If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: <code>true</code> + + + + + + + + + + + + + + + + + + + If set to <code>true</code>, the messages are stored compressed Default: true + + + + + + + + + + + + + + + + + + + + + + + + + + If set to <code>true</code>, the messages are stored compressed Default: true + + + + + + + + If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: false + + + + + + + + + + + + + + + Name of the table messages are stored in. Default: IBISSTORE + + + + + Name of the index, to be used in hints for query optimizer too (only for Oracle). Default: IX_IBISSTORE + + + + + + + + + + + The name of the column that contains the primary key of the table Default: MESSAGEKEY + + + + + The name of the column messageIds are stored in Default: MESSAGEID + + + + + The name of the column correlation-ids are stored in Default: CORRELATIONID + + + + + The name of the column message themselves are stored in Default: MESSAGE + + + + + The name of the column the timestamp is stored in Default: MESSAGEDATE + + + + + The name of the column comments are stored in Default: COMMENTS + + + + + The name of the column the timestamp for expiry is stored in Default: EXPIRYDATE + + + + + The name of the column labels are stored in Default: LABEL + + + + + Prefix to be prefixed on all database objects (tables, indices, sequences), e.g. to access a different Oracle schema + + + + + + + + + + Regular expression to mask strings in the errorStore/logStore. Every character between to the strings in this expression will be replaced by a '*'. For example, the regular expression (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every character between keys &lt;party&gt; and &lt;/party&gt; + + + + + (Only used when hideRegex is not empty) Specifies the way to hide Default: ALL + + + + + + + + + + + + + + + + + + + The MongoDB datasource Default: mongodb.datasource.default + + + + + Database to connect to. Can be overridden by parameter database + + + + + Collection to act upon. Can be overridden by parameter collection + + + + + Action + + + + + + + + Filter. Can contain references to parameters between ?{ and }. Can be overridden by parameter filter + + + + + Limit to number of results returned. A value of 0 means 'no limit'. Can be overridden by parameter limit. Default: 0 + + + + + Only for find operation: return only the count and not the full document(s) Default: false + + + + + OutputFormat Default: JSON + + + + + + + + Format the output in easy legible way (currently only for XML) + + + + + + + + + + + + + + + + + + + + + + + + + + Only works in combination with the UPLOAD action. If set, and not specified as parameter, the sender will sign the file to be uploaded. + + + + + + + + NetStorage action to be used + + + + + + + + At the time of writing, NetStorage only supports version 1 Default: 1 + + + + + NetStorage CP Code of the storage group + + + + + The destination URL for the Akamai NetStorage. (Only the hostname, without CpCode; eq. xyz-nsu.akamaihd.net) + + + + + Login is done via a Nonce and AccessToken + + + + + Version to validate queries made to NetStorage backend. Default: 5 + + + + + Login is done via a Nonce and AccessToken + + + + + Root directory (appended to the url + cpCode) + + + + + Alias used to obtain credentials for nonce (username) and accesstoken (password) + + + + + + + + + + + + + + + (Only used when xHtml=<code>true</code>) stylesheet to apply to the HTML response + + + + + + + The functional name of the object. + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set the upper limit to the amount of concurrent threads that can be run simultaneously. Use 0 to disable. Default: 0 + + + + + + + + + + + + + + + + reload the configuration regardless of the version Default: false + + + + + + + + + + + + + + + + type of the optional status field which is set after the row is written to the file: timestamp + + + + + Key of session variable that contains the name of the file to use. + + + + + If set <code>true</code> and the file already exists, the resultset rows are written to the end of the file. Default: false + + + + + If set (and &gt;=0), this session key contains the maximum number of records which are processed. + If <code>query</code> contains a group field (3), then also following records with the same group field value as the last record are processed + + + + + + + + + + + + + + + + Shared folder name in the samba server + + + + + the smb share username + + + + + the smb share password + + + + + alias used to obtain credentials for the smb share + + + + + in case the user account is bound to a domain + + + + + controls whether hidden files are seen or not Default: false + + + + + + + + + + + + + + + + + + Type of the authentication either 'NTLM' or 'SPNEGO'. + When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGO + + + + + + + + alias used to obtain credentials for the smb share + + + + + the smb share username + + + + + the smb share password + + + + + domain, in case the user account is bound to a domain + + + + + + Key Distribution Center, typically hosted on a domain controller. + Stored in <code>java.security.krb5.kdc</code> + + + + + Kerberos Realm, case sensitive. Typically upper case and the same as the domain name. + An Active Directory domain acts as a Kerberos Realm. + Stored in <code>java.security.krb5.realm</code> + + + + + + + + + + + + + + + + + + + + + If <code>false</code>, the sender operates in RR mode: the a reply is expected from SAP, and the sender does not participate in a transaction. When <code>false</code>, the sender operates in FF mode: no reply is expected from SAP, and the sender joins the transaction, that must be present. The SAP transaction is committed right after the XA transaction is completed. Default: false + + + + + Name of the RFC-function to be called in the SAP system + + + + + Name of the parameter used to obtain the functionName from if the attribute <code>functionName</code> is empty Default: functionName + + + + + + + + + + + + + + + + expression that generates the cron trigger + + + + + job group in which the new trigger is to be created (optional) + + + + + pattern that leads to the name of the registered trigger(optional) + + + + + java listener to be called when scheduler trigger fires + + + + + + + + + + + + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + The maximum number of concurrent connections Default: 10 + + + + + The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 + + + + + Proxy host + + + + + Proxy port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy username + + + + + Proxy password + + + + + Proxy realm + + + + + resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true + + + + + Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true + + + + + Used when StaleChecking=<code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms + + + + + Secure socket protocol (such as 'SSL' and 'TLS') to use when a SSLContext object is generated. Default: SSL + + + + + + + + authAlias used to obtain credentials for authentication + + + + + + password of userid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + alias to obtain credentials to authenticate on proxy + + + + + Default user name in case proxy requires authentication + + + + + Default password in case proxy requires authentication + + + + + Transport type in case of sftp Default: SOCKS5 + + + + + + + + Optional preferred encryption from client to server for sftp protocol + + + + + Optional preferred encryption from server to client for sftp protocol + + + + + Path to private key file for sftp authentication + + + + + Name of the alias to obtain credentials for passphrase of private key file + + + + + Passphrase of private key file + + + + + Path to file with knownhosts + + + + + Verify the hosts againt the knownhosts file. Default: true + + + + + + + + + + + + + + + + Name of the sender that is considered that is considered to be the golden standard, i.e. the source of truth. Default: the first sender specified + + + + + The sender name which will process the results Default: the last sender specified + + + + + If set <code>true</code> the sender will wait for all shadows to have finished. Otherwise the collection of results will happen in a background thread. Default: false + + + + + + + + + + + + + + + + A SQL statement that calls a stored procedure. The statement should begin with the <code>CALL</code> or <code>EXEC</code> + SQL keyword depending on SQL dialect. In case of doubt, the safe choice is to always start with <code>CALL</code> and choose Oracle dialect. + + + + + The query type. For stored procedures, valid query types are JdbcQuerySenderBase.QueryType#SELECT and JdbcQuerySenderBase.QueryType#OTHER. + Use JdbcQuerySenderBase.QueryType#SELECT when your stored procedure returns a row set (not supported by Oracle and PostgreSQL). + Use JdbcQuerySenderBase.QueryType#OTHER when your stored procedure returns values via <code>OUT</code> or <code>INOUT</code> parameters, or does not return + anything at all. + <p> + Using any other value will be rejected. + </p> Default: OTHER + + + + + + + + + + + + + + + + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + + + + + The type of output. If not set then defaults to old-style XML. If set to XML, new-style XML is used. EXPERIMENTAL: datatypes like numbers are not yet rendered correctly Default: false + + + + + + + + + + + + + + + + URL (hostname and port, separated by ':') of Tibco-Server + + + + + + + + + + + + + + + + content-type of the request Default: text/html; charset=utf-8 + + + + + url or base of url to be used + + + + + timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + the maximum number of concurrent connections Default: 10 + + + + + alias used to obtain credentials for authentication to host + + + + + username used in authentication to host + + + + + password used to authenticate with the host + + + + + + + Default: 80 + + + + + the soapactionuri to be set in the requestheader + + + + + + + + + + + + + + + + when <code>true</code>, messages sent are put in a soap envelope and the soap envelope is removed from received messages (soap envelope will not be visible to the pipeline) Default: true + + + + + the soapactionuri to be set in the requestheader + + + + + parameter to obtain the soapactionuri + + + + + the encodingstyle to be set in the messageheader + + + + + controls whether soap faults generated by the application generate an exception, or are treated as 'normal' messages Default: true + + + + + the namespace of the message sent. identifies the service to be called. may be overriden by an actual namespace setting in the message to be sent + + + + + parameter to obtain the servicenamespace + + + + + namespace defintions to be added in the soap envelope tag. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + username used to obtain credentials for authentication to web services security + + + + + password used to obtain credentials for authentication to web services security + + + + + alias used to obtain credentials for authentication to web services security + + + + + when true, the password is sent digested. otherwise it is sent in clear text Default: true + + + + + + + + + + + + + + + + one of create, append or replace + + + + + + + + remote directory is prefixed witht the remote file + + + + + + + + + + characterset conversion + + + + + + + + + + + + + name of logfile for xcomtcp to be used + + + + + password of user on remote system + + + + + port of remote host + + + + + set queue off or on + + + + + hostname or tcpip adres of remote host + + + + + set between 0 (no trace) and 10 + + + + + set truncation off or on + + + + + loginname of user on remote system + + + + + remote file to create. if empty, the name is equal to the local file + + + + + directory in which to run the xcomtcp command + + + + + path to xcomtcp command + + + + + + name of the alias to obtain credentials to authenticatie on remote server + + + + + + + + + + + + + + + + Full pathname to the XFB script to be executed to transfer the file + + + + + + + + + When set to <code>true</code>, the file is copied before calling the XFB script. + Reasons to copy the file: + - XFB will rename the file (prefix it with FXB_) and delete it. + - On Linux the sticky bit (drwxrws--- wasadmin xfbgw) isn't honoured with a move (only with a copy) (on AIX the sticky bit works for both move and copy). + + + + + Prefix for the name of the copied or original filename. When the name of the original file starts with this prefix, it is removed. Otherwise this prefix is added to the filename of the copied file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + + + + + Enable full schema grammar constraint checking, including checking which + may be time-consuming or memory intensive. Currently, particle unique + attribution constraint checking and particle derivation restriction + checking are controlled by this option. + <p> + see property + http://apache.org/xml/features/validation/schema-full-checking + </p> Default: <code>false</code> + + + + + Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: false + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason + + + + + If set <code>true</code>, the input is assumed to be the name of the file to be validated. Otherwise the input itself is validated Default: false + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + If set <code>true</code>, send warnings to logging and console about syntax problems in the configured schema('s). + Alternatively, warnings can be switched off using suppression properties XSD_VALIDATION_WARNINGS_SUPPRESS_KEY, XSD_VALIDATION_ERROR_SUPPRESS_KEY and XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY Default: true + + + + + Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + + + + + If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false + + + + + If set to <code>1.0</code>, Xerces's previous XML Schema factory will be used, which would make all XSD 1.1 features illegal. The default behaviour can also be set with <code>xsd.processor.version</code> property. Default: <code>1.1</code> + + + + + + + + + + + + + + + + + + Session key used to refer to collection. Must be specified with another value if multiple CollectorPipes are active at the same time in the same session Default: collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Domparser om AFM-XML berichten om te zetten in edifactberichten (voor de backoffice). + + + + + + + + + + + + Sender to work with Amazon S3. + + + + + + + + + + + + Sender to obtain information from and write to a CMIS application. + + + <p> + When <code>action</code>=<code>get</code> the input (xml string) indicates the id of the document to get. This input is mandatory. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>delete</code> the input (xml string) indicates the id of the document to get. This input is mandatory. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>create</code> the input (xml string) indicates document properties to set. This input is optional. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;name&gt;Offerte&lt;/name&gt; + &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; + &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; + &lt;properties&gt; + &lt;property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz"&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name="ArrivedBy"&gt;HDN&lt;/property&gt; + &lt;property name="DocumentType"&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt; + </code></pre> + </p> + + <p> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>name</td><td>mandatory property "cmis:name". If not set the sender attribute fileNameSessionKey is used</td><td>"[unknown]"</td></tr> + <tr><td>objectTypeId</td><td>mandatory property "cmis:objectTypeId"</td><td>"cmis:document"</td></tr> + <tr><td>mediaType</td><td>the MIME type of the document to store</td><td>"application/octet-stream"</td></tr> + <tr><td>property</td><td>custom document property to set. Possible attributes: + <table border="1"> + <tr><th>name</th><th>description</th><th>default</th></tr> + <tr><td>type</td><td> + <ul> + <li><code>string</code>: renders the value</li> + <li><code>datetime</code>: converts the value to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code></li> + </ul> + </td><td>string</td></tr> + <tr><td>formatString</td><td>used in combination with <code>datetime</code></td><td>yyyy-MM-dd HH:mm:ss</td></tr> + </table></td><td>&nbsp;</td></tr> + </table> + </p> + <p> + When <code>action</code>=<code>find</code> the input (xml string) indicates the query to perform. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;query&gt; + &lt;statement&gt;select * from cmis:document&lt;/statement&gt; + &lt;maxItems&gt;10&lt;/maxItems&gt; + &lt;skipCount&gt;0&lt;/skipCount&gt; + &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; + &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; + &lt;/query&gt; + </code></pre> + </p> + <p> + When <code>action</code>=<code>update</code> the input (xml string) indicates document properties to update. + </p> + <p> + <b>Example:</b> + <pre><code> + &lt;cmis&gt; + &lt;id&gt;123456789&lt;/id&gt; + &lt;properties&gt; + &lt;property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz"&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name="ArrivedBy"&gt;HDN&lt;/property&gt; + &lt;property name="DocumentType"&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt; + </code></pre> + </p> + + <p> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>id</td><td>mandatory property "cmis:objectId" which indicates the document to update</td><td>&nbsp;</td></tr> + <tr><td>property</td><td>custom document property to update. See <code>action</code>=<code>create</code> for possible attributes</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + Sender that executes either its input or a fixed line, with all parametervalues appended, as a command. + + + + + + + + + + + + Sender that sleeps for a specified time, which defaults to 5000 msecs. + Useful for testing purposes. + + + + + + + + + + + + QuerySender that interprets the input message as a query, possibly with attributes. + Messages are expected to contain sql-text. + + + + + + + + + + + + Echos input to output. + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsSender. + + + + + + + + + + + + Implementation of a FileSystemSender that enables to manipulate messages in an Exchange folder. + + + + + + + + + + + + FileSystem Sender extension to handle Attachments. + + + + + + + + + + + + QuerySender that assumes a fixed query, possibly with attributes. + + <p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p> + + + + + + + + + + + + FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. + + + + + + + + + + + + + + + + + + + + + Sender for the HTTP protocol using HttpMethod. By default, any response code outside the 2xx or 3xx range + is considered an error and the <code>exception</code> forward of the SenderPipe is followed if present and if there + is no forward for the specific HTTP status code. Forwards for specific HTTP codes (e.g. "200", "201", ...) + are returned by this sender so they are available to the SenderPipe. + + <p><b>Expected message format:</b></p> + <p>GET methods expect a message looking like this: + <pre> + param_name=param_value&another_param_name=another_param_value + </pre> + <p>POST AND PUT methods expect a message similar as GET, or looking like this: + <pre> + param_name=param_value + another_param_name=another_param_value + </pre> + + Note: + When used as MTOM sender and MTOM receiver doesn't support Content-Transfer-Encoding "base64", messages without line feeds will give an error. + This can be fixed by setting the Content-Transfer-Encoding in the MTOM sender. + </p> + + + + + + + + + + + + JMS sender which will add an IMS header to the message and call the MQ specific logic. + + <p>See JmsSender for configuration</p> + + + + + + + + + + + + Posts a message to another IBIS-adapter or application in the same JVM using IbisServiceDispatcher. + + An IbisJavaSender makes a call to a Receiver with a JavaListener + or any other application in the same JVM that has registered a <code>RequestProcessor</code> with the IbisServiceDispatcher. + + <h4>configuring IbisJavaSender and JavaListener</h4> + <ul> + <li>Define a SenderPipe with an IbisJavaSender</li> + <li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a JavaListener</li> + <li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li> + </ul> + N.B. Please make sure that the IbisServiceDispatcher-1.1.jar is present on the class path of the server. + + + + + + + + + + + + Posts a message to another IBIS-adapter in the same IBIS instance. If the callee exits with an &lt;<code>exit</code>&gt; + that has state nl.nn.adapterframework.core.PipeLine.ExitState#ERROR, an error is considered to happen + in the caller which means that the <code>exception</code> forward is followed if it is present. + <p/> + <p/> + Returns exit.code as forward name to SenderPipe provided that exit.code can be parsed as integer. + For example, if the called adapter has an exit state with code + <code>2</code>, then the nl.nn.adapterframework.pipes.SenderPipe supports a forward with name <code>2</code> + that is followed when the called adapter exits with the mentioned exit. This does not work if the code is for example <code>c2</code>. + <p/> + <p/> + An IbisLocalSender makes a call to a Receiver with either a WebServiceListener + or a JavaListener. + + + + <h3>Configuration of the Adapter to be called</h3> + A call to another Adapter in the same IBIS instance is preferably made using the combination + of an IbisLocalSender and a JavaListener. If, + however, a Receiver with a WebServiceListener is already present, that can be used in some cases, too. + + <h4>configuring IbisLocalSender and JavaListener</h4> + <ul> + <li>Define a SenderPipe with an IbisLocalSender</li> + <li>Set the attribute <code>javaListener</code> to <i>yourServiceName</i></li> + <li>Do not set the attribute <code>serviceName</code></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a JavaListener</li> + <li>Set the attribute <code>name</code> to <i>yourServiceName</i></li> + <li>Do not set the attribute <code>serviceName</code>, except if the service is to be called also + from applications other than this IBIS-instance</li> + </ul> + + <h4>configuring IbisLocalSender and WebServiceListener</h4> + + <ul> + <li>Define a SenderPipe with an IbisLocalSender</li> + <li>Set the attribute <code>serviceName</code> to <i>yourIbisWebServiceName</i></li> + <li>Do not set the attribute <code>javaListener</code></li> + </ul> + In the Adapter to be called: + <ul> + <li>Define a Receiver with a WebServiceListener</li> + <li>Set the attribute <code>name</code> to <i>yourIbisWebServiceName</i></li> + </ul> + + + + + + + + + + + + Requires the net.bankid.merchant.library V1.06+. + Compile with Java 1.7+ + + + + + + + + + + + + + + + + + + + + + sender that sends a message to an IFSA service and, in case the MessageProtocol is RR (Request-Reply) + it waits for an reply-message. + + + + + + + + + + + + Extension of JmsSender which only adds parameters to simulate IFSA. + + <p><b>Configuration </b><i>(where deviating from JmsSender)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>messageType</td><td>type of messages. Possible values: + <ul> + <li>rr_request</li> + <li>rr_reply</li> + <li>ff_request</li> + </ul> When messageType=rr_reply, the destination is retrieved from session key <code>replyTo</code></td><td>&nbsp;</td></tr> + </table></p> + <p><b>added parameters:</b> + <table border="1"> + <tr><th>name</th><th>type</th><th>sessionKey</th><th>defaultValue</th><th>pattern</th><th>value</th><th>minLength</th><th/></tr> + <tr><td>ifsa</td><td></td><td></td><td></td><td></td><td>_IFSA_HEADER_</td><td></td><td></td></tr> + <tr><td>ifsa_api</td><td></td><td></td><td></td><td></td><td>jms_wrapper</td><td></td><td></td></tr> + <tr><td>ifsa_api_version</td><td></td><td></td><td></td><td></td><td>22.30.020</td><td></td><td></td></tr> + <tr><td>ifsa_auth_flag</td><td></td><td></td><td></td><td></td><td>1</td><td></td><td></td></tr> + <tr><td>ifsa_bif_id</td><td></td><td><code>rr_reply: </code>ifsa_bif_id</td><td></td><td><code>rr_request/ff_request: </code>${IFSAApplicationID}#{ifsa_destination}#{uid}</td><td></td><td></td><td></td></tr> + <tr><td>ifsa_bif_type</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>0<br/><code>ff_request: </code>2</td><td></td><td></td></tr> + <tr><td>ifsa_bulk</td><td></td><td></td><td></td><td></td><td>0</td><td></td><td></td></tr> + <tr><td>ifsa_bulk_auth_flag</td><td></td><td></td><td></td><td></td><td>0</td><td></td><td></td></tr> + <tr><td>ifsa_cil_version</td><td></td><td></td><td></td><td></td><td>22.30.009</td><td></td><td></td></tr> + <tr><td>ifsa_comp_algo</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_destination</td><td></td><td><code>rr_reply: </code>ifsa_source</td><td></td><td></td><td></td><td></td><td><code>rr_request/ff_request: </code>to be set in IBIS configuration</td></tr> + <tr><td>ifsa_expiry</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>${timeOutIFSARR}<br/><code>ff_request: </code>0</td><td></td><td></td></tr> + <tr><td>ifsa_header_version</td><td></td><td></td><td></td><td></td><td>02.02.000</td><td></td><td></td></tr> + <tr><td>ifsa_hop_count</td><td></td><td></td><td></td><td></td><td>000</td><td></td><td></td></tr> + <tr><td>ifsa_node_id</td><td></td><td></td><td></td><td></td><td>${ifsa_node_id}</td><td></td><td></td></tr> + <tr><td>ifsa_ori_area</td><td></td><td><code>ff_request: </code>null</td><td><code>ff_request: </code>""</td><td></td><td><code>rr_request/rr_reply: </code>${ifsa_ori_area}</td><td>60</td><td></td></tr> + <tr><td>ifsa_ori_format</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_ori_length</td><td></td><td>null</td><td>""</td><td></td><td></td><td></td><td></td></tr> + <tr><td>ifsa_ori_rtq</td><td></td><td><code>rr_reply/ff_request: </code>null</td><td><code>rr_reply/ff_request: </code>""</td><td></td><td><code>rr_request: </code>${ifsa_ori_rtq}</td><td>48</td><td></td></tr> + <tr><td>ifsa_ori_rtqm</td><td></td><td><code>rr_reply/ff_request: </code>null</td><td><code>rr_reply/ff_request: </code>""</td><td></td><td><code>rr_request: </code>${ifsa_ori_rtqm}</td><td>48</td><td></td></tr> + <tr><td>ifsa_priority</td><td></td><td></td><td></td><td></td><td><code>rr_request/rr_reply: </code>3<br/><code>ff_request: </code>2</td><td></td><td></td></tr> + <tr><td>ifsa_source</td><td></td><td></td><td></td><td><code>rr_reply: </code>${IFSAApplicationID}#{ifsa_destination}</td><td><code>rr_request/ff_request: </code>${IFSAApplicationID}</td><td></td><td></td></tr> + <tr><td>ifsa_unique_id</td><td></td><td></td><td></td><td>{uid}</td><td></td><td></td><td></td></tr> + <tr><td>JMS_IBM_MsgType</td><td>integer</td><td></td><td></td><td></td><td><code>rr_request: </code>1<br/><code>rr_reply: </code>2<br/><code>ff_request: </code>8</td><td></td><td></td></tr> + </table> + </p> + + + + + + + + + + + + + + + + + + + + + Sender used to run javascript code using J2V8 or Rhino + + This sender can execute a function of a given javascript file, the result of the function will be the output of the sender. + The parameters of the javascript function to run are given as parameters by the adapter configuration + The sender doesn't accept nor uses the given input, instead for each argument for the #jsFunctionName method, + you will need to create a parameter on the sender. + It is recommended to have the result of the javascript function be of type String, as the output of the sender will be + of type String. + + + + + + + + + + + + This class sends messages with JMS. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, yielding JSON, XML or text. + JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json. + The XSLT stylesheet or XPathExpression operates on these element. + + + + + + + + + + + + Sender to obtain information from and write to an LDAP Directory. + Returns the set of attributes in an XML format. Examples are shown below. + + <h2>example</h2> + Consider the following configuration example: + <code> + <pre> + &lt;sender + className="nl.nn.adapterframework.ldap.LdapSender" + ldapProviderURL="ldap://servername:389/o=ing" + operation="read" + attributesToReturn="givenName,sn,telephoneNumber" &gt; + &lt;param name="entryName" xpathExpression="entryName" /&gt; + &lt;/sender&gt; + </pre> + </code> + <br/> + + This may result in the following output: + <code><pre> + &lt;ldap&gt; + &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; + + &lt;attributes&gt; + &lt;attribute attrID="givenName"&gt; + &lt;value&gt;Jan&lt;/value&gt; + &lt;/attribute&gt; + + &lt;attribute attrID="telephoneNumber"&gt; + &lt;value&gt;010 5131123&lt;/value&gt; + &lt;value&gt;06 23456064&lt;/value&gt; + &lt;/attribute&gt; + + &lt;attribute attrID="sn"&gt; + &lt;value&gt;Jansen&lt;/value&gt; + &lt;/attribute&gt; + &lt;/attributes&gt; + &lt;/ldap&gt; + </pre></code> <br/> + + Search or Read? + + Read retrieves all the attributes of the specified entry. + + Search retrieves all the entries of the specified (by entryName) context that have the specified attributes, + together with the attributes. If the specified attributes are null or empty all the attributes of all the entries within the + specified context are returned. + + Sample result of a <code>read</code> operation:<br/><code><pre> + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="employeeType" value="Extern"/&gt; + &lt;attribute name="roomNumber" value="DP 2.13.025"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + + </pre></code> <br/> + Sample result of a <code>search</code> operation:<br/><code><pre> + &lt;entries&gt; + &lt;entry name="uid=srp"&gt; + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="employeeType" value="Extern"/&gt; + &lt;attribute name="roomNumber" value="DP 2.13.025"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;item value="ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + &lt;/entry&gt; + &lt;entry&gt; .... &lt;/entry&gt; + ..... + &lt;/entries&gt; + </pre></code> <br/> + + + + + + + + + + + + + + + + + + + + + Sender that just logs its message. + + + + + + + + + + + + JMS sender which will call IBM WebSphere MQ specific + setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ) on the destination prior to + sending a message. This is needed when the MQ destination is not a JMS + receiver otherwise format errors occur (e.g. dots are added after every + character in the message). + + <p>See JmsSender for configuration</p> + + + + + + + + + + + + sender that sends a mail specified by an XML message. + <p> + Sample email.xml: + <code><pre> + &lt;email&gt; + &lt;recipients&gt; + &lt;recipient type="to"&gt;***@hotmail.com&lt;/recipient&gt; + &lt;recipient type="cc"&gt;***@gmail.com&lt;/recipient&gt; + &lt;/recipients&gt; + &lt;from name="*** ***"&gt;***@yahoo.com&lt;/from&gt; + &lt;subject&gt;This is the subject&lt;/subject&gt; + &lt;threadTopic&gt;subject&lt;/threadTopic&gt; + &lt;message&gt;This is the message&lt;/message&gt; + &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; + &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; + &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; + &lt;attachments&gt; + &lt;attachment name="filename1.txt"&gt;This is the first attachment&lt;/attachment&gt; + &lt;attachment name="filename2.pdf" base64="true"&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; + &lt;attachment name="filename3.pdf" url="file:/c:/filename3.pdf"/&gt; + &lt;attachment name="filename4.pdf" sessionKey="fileContent"/&gt; + &lt;/attachments&gt;&lt;!-- Optional --&gt; + &lt;/email&gt; + </pre></code> + </p><p> + Notice: the XML message must be valid XML. Therefore, especially the message element + must be plain text or be wrapped as CDATA. Example: + <code><pre> + &lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt; + </pre></code> + </p><p> + The <code>sessionKey</code> attribute for attachment can contain an inputstream or a string. Other types are not supported at this moment. + </p><p> + The attribute order for attachments is as follows: + <ol> + <li>sessionKey</li> + <li>url</li> + <li><i>value of the attachment element</i></li> + </ol> + </p><p> + The <code>base64</code> attribute is only used when the value of the PipeLineSession variable <code>sessionKey</code> is a String object + or when the value of the attachment element is used. If <code>base64=true</code> then the value will be decoded before it's used. + </p><p> + <b>Compilation and Deployment Note:</b> mail.jar (v1.2) and activation.jar must appear BEFORE j2ee.jar. + Otherwise errors like the following might occur: <code>NoClassDefFoundException: com/sun/mail/util/MailDateFormat</code> + </p> + + + + + + + + + + + + Send messages to the IBISSTORE database table to have them processed exactly-once by another + adapter which will read the messages using a MessageStoreListener. + This other adapter will process the messages asynchronously and (optionally) + under transaction control. Duplicate messages are ignored based on the + messageId (except when onlyStoreWhenMessageIdUnique is set to false), hence + the sender of the message can retry sending the message until a valid reply + is received in which case it can be certain that the message is stored in the + database table IBISSTORE. + <br/><br/> + If you have a <code>MessageStoreSender</code> it does not make sense to add a <code>JdbcMessageLog</code> + or <code>JdbcErrorStorage</code> in the same sender pipe. A <code>MessageStoreSender</code> + acts as a message log and an error store. It can be useful however to add a message log or error store + to the adapter around the sender pipe, because errors may occur before the message reaches the sender pipe. + <br/><br/> + Example configuration: + <code><pre> + &lt;SenderPipe name="Send"&gt; + &lt;MessageStoreSender + slotId="${instance.name}/TestMessageStore" + onlyStoreWhenMessageIdUnique="false" + /&gt; + &lt;/SenderPipe&gt; + </pre></code> + + + + + + + + + + + + Sender to perform action on a MongoDB database. + + + + + + + + + + + + MQTT listener which will connect to a broker and subscribe to a topic. + + Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame. + + + + + + + + + + + + Sender for Akamai NetStorage (HTTP based). + + <p>See HttpSenderBase for more arguments and parameters!</p> + + + <p><b>AuthAlias:</b></p> + <p>If you do not want to specify the nonce and the accesstoken used to authenticate with Akamai, you can use the authalias property. The username represents the nonce and the password the accesstoken.</p> + + + + + + + + + + + + Collection of Senders, that are executed all at the same time. + + + + + + + + + + + + Performs a reload on database configuration. + + <p>It is possible to set the name of the configuration with the parameter 'name'.</p> + <p>You can dynamically set 'forceReload' attribute with the parameter 'forceReload'.</p> + + + + + + + + + + + + QuerySender that writes each row in a ResultSet to a file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Registers a trigger in the scheduler so that the message is send to a javalistener + at a scheduled time. + + + + + + + + + + + + Sender that sends a mail via SendGrid v3 (cloud-based SMTP provider). + + Sample XML file can be found in the path: iaf-core/src/test/resources/emailSamplesXML/emailSample.xml + + + + + + + + + + + + Series of Senders, that are executed one after another. + + + + + + + + + + + + Wrapper for senders, that allows to get input from a session variable, and to store output in a session variable. + + + + + + + + + + + + + + + + + + + + + Collection of Senders, that are executed all at the same time. Once the results are processed, all results will be sent to the resultSender, + while the original sender will return it's result to the pipeline. + + <p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p> + + + + + + + + + + + + StoredProcedureQuerySender is used to send stored procedure queries and retrieve the result. + + <p> + The StoredProcedureQuerySender class has the following features: + <ul> + <li>It supports setting the output parameters of the stored procedure by setting 'mode' attribute of + the corresponding 'Param' to 'OUTPUT' or 'INOUT'.</li> + <li>The queryType can only be 'SELECT' or 'OTHER'. Use 'SELECT' when the stored procedure + returns a set of rows, use 'OTHER' if the stored procedure has one or more output parameters. + </li> + </ul> + </p> + <p> + All stored procedure parameters that are not fixed, so specified in the query with a {@code ?}, should + have a corresponding Parameter entry. Output parameters should have {@code mode="OUTPUT"}, or + {@code mode="INOUT"} depending on how the stored procedure is defined. + </p> + <p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p> + + + + + + + + + + + + Dedicated sender on Tibco Destinations. + + + + + + + + + + + + Sender that sends a message via a WebService based on NTLM authentication. + + + + + + + + + + + + Sender that sends a message via a WebService. + + + + + + + + + + + + XCom client voor het versturen van files via XCom. + + + + + + + + + + + + Sender for transferring files using the XFB protocol. Assumes sender input is local filename. + <br/> + Some comments from Richard Maddox (FTO) about UNIX File permissions: + <br/> + <br/> + In case of AIX or SUN systems we advise the following user and directory permissions: + <br/> + <br/> + SENDING CFT: + <br/> + - App_user must have secondary group: xfbgw + <br/> + - Folder should have ownership: app_user:xfbgw (owner:group) + <br/> + - Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder + <br/> + - Folder should have SGID bit set so that all files what is copied to this folder get group ownership xfbgw + <br/> + - send file must have rights 660 after putting the file in the send directory. + <br/> + <br/> + RECEIVING CFT: + <br/> + - App_user (the application user of customer) should have secondary group: xfbgw + <br/> + - Folder should have ownership: app_user:xfbgw (owner:group) + <br/> + - Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder + <br/> + - Folder should have SGID bit set, so that all files what is copied to this folder get group ownership xfbgw + <br/> + <br/> + There are of course more solutions to get the job done, but this is the solution we can guarantee. + + + + + + + + + + + + Sender for browsing and removing queue messages (with input and output in a XML message). + + <p> + When input root element is <code>browse</code> all queue messages are returned. + </p> + <p> + When input root element is <code>remove</code> all queue messages are removed. + </p> + <p> + <b>example (input):</b> + <code> + <pre> + &lt;browse&gt; + &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; + &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; + &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; + &lt;/browse> + </pre> + </code> + </p> + + + <p> + <b>example (browse output):</b> + <code> + <pre> + &lt;result&gt; + &lt;items count="2"&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;/items&gt; + &lt;/result&gt; + </pre> + </code> + </p> + + <p> + <b>example (remove output):</b> + <code> + <pre> + &lt;result&gt; + &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; + &lt;/result&gt; + </pre> + </code> + </p> + + + + + + + + + + + + QuerySender that transforms the input message to a query. + <br/><code><pre> + select + delete + insert + update - tableName + - columns [0..1] - column [1..n] - name + - value [0..1] + - type [0..1] one of {string;function;number;datetime;blob;clob;xmldatetime}, string by default + - decimalSeparator [0..1] only applicable for type=number + - groupingSeparator [0..1] only applicable for type=number + - formatString [0..1] only applicable for type=datetime, yyyy-MM-dd HH:mm:ss.SSS by default + - where [0..1] + - order [0..1] + <br/> + alter - sequenceName + - startWith + <br/> + sql - type [0..1] one of {select;ddl;other}, other by default + - query + <br/> + </pre></code><br/> + + + + + + + + + + + + Sender that validates the input message against a XML Schema. + + N.B. noNamespaceSchemaLocation may contain spaces, but not if the schema is stored in a .jar or .zip file on the class path. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet or XPath-expression. + + + + + + + + + + + + Sender that writes an entry to a ZipStream, similar to ZipWriterPipe with action='write'. + Filename and contents are taken from parameters. If one of the parameters is not present, the input message + is used for either filename or contents. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsTransactionalStorage. + + <p> + Depending on the <code>type</code> of the <code>TransactionalStorage</code> + one of the following messages is sent: + <ul> + <li><code>errorStore</code>: + ESB.Infrastructure.US.Log.BusinessLog.2.ExceptionLog.1.Action</li> + <li><code>messageLog</code>: + ESB.Infrastructure.US.Log.BusinessLog.2.AuditLog.1.Action</li> + </ul> + </p> + <p> + <b>Configuration </b><i>(where deviating from + JmsTransactionalStorage)</i><b>:</b> + <table border="1"> + <tr> + <th>attributes</th> + <th>description</th> + <th>default</th> + </tr> + </table> + </p> + + + + + + + + + + + + Implements a message log (<code>JdbcMessageLog</code>) or error store (<code>JdbcErrorStorage</code>) that uses database + table IBISSTORE. A <code>MessageStoreSender</code> and <code>MessageStoreListener</code> + pair implicitly includes a message log and an error store. + If you have a <code>MessageStoreSender</code> and <code>MessageStoreListener</code> + pair it is superfluous to add a <code>JdbcMessageLog</code> or <code>JdbcErrorStorage</code> + within the same sender pipe or the same receiver. + <br/><br/> + <b>Message log:</b> A message log writes messages in persistent storage for logging purposes. + When a message log appears in a receiver, it also ensures that the same message is only processed + once, even if a related pushing listener receives the same message multiple times. + <br/><br/> + <b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed. + Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders + offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled + back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When + this is done, the message is processed in the same way as messages received from the original source. + <br/><br/> + How does a message log or error store see duplicate messages? The message log or error store + always appears in combination with a sender or listener. This sender or listener determines + a key based on the sent or received message. Messages with the same key are considered to + be the same. + <br/><br/> + Storage structure is defined in /IAF_util/IAF_DatabaseChangelog.xml. If these database objects do not exist, + the Frank!Framework will try to create them. + <br/><br/> + N.B. Note on using XA transactions: + If transactions are used on Oracle, make sure that the database user can access the table SYS.DBA_PENDING_TRANSACTIONS. + If not, transactions present when the server goes down cannot be properly recovered, resulting in exceptions like: + <pre> + The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException + at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:508) + </pre> + + + + + + + + + + + + Implements a message log (<code>JmsMessageLog</code>) or error store (<code>JmsErrorStorage</code>) that uses JMS technology. + <br/><br/> + <b>Message log:</b> A message log writes messages in persistent storage for logging purposes. + When a message log appears in a receiver, it also ensures that the same message is only processed + once, even if a related pushing listener receives the same message multiple times. + <br/><br/> + <b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed. + Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders + offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled + back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When + this is done, the message is processed in the same way as messages received from the original source. + <br/><br/> + How does a message log or error store see duplicate messages? The message log or error store + always appears in combination with a sender or listener. This sender or listener determines + a key based on the sent or received message. Messages with the same key are considered to + be the same. + + + + + + + + + + + + + + + + + + + + + + + Optional identifier for this storage, to be able to share the physical storage between a number of receivers and pipes. + + + + + Possible values are <code>E</code> (error store), <code>M</code> (message store), <code>L</code> (message log for Pipe) or <code>A</code> (message log for Receiver).<br/> + Receiver will always set type to <code>E</code> for errorStorage and always set type to <code>A</code> for messageLog. SenderPipe will set type to <code>L</code> for messageLog (when type isn't specified).<br/> + See MessageStoreSender for type <code>M</code>. Default: <code>E</code> for errorStorage on Receiver<br/><code>A</code> for messageLog on Receiver<br/><code>L</code> for messageLog on Pipe + + + + + + + + + + + Timeout <i>in milliseconds</i> for receiving a message from the queue Default: 3000 + + + + + Regular expression to mask strings in the errorStore/logStore. Every character between to the strings in this expression will be replaced by a '*'. For example, the regular expression (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every character between keys &lt;party&gt; and &lt;/party&gt; + + + + + (Only used when hideRegex is not empty) Specifies the way to hide Default: ALL + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsTransactionalStorage. + + <p> + Depending on the <code>type</code> of the <code>TransactionalStorage</code> + one of the following messages is sent: + <ul> + <li><code>errorStore</code>: + ESB.Infrastructure.US.Log.BusinessLog.2.ExceptionLog.1.Action</li> + <li><code>messageLog</code>: + ESB.Infrastructure.US.Log.BusinessLog.2.AuditLog.1.Action</li> + </ul> + </p> + <p> + <b>Configuration </b><i>(where deviating from + JmsTransactionalStorage)</i><b>:</b> + <table border="1"> + <tr> + <th>attributes</th> + <th>description</th> + <th>default</th> + </tr> + </table> + </p> + + + + + + + + + + + + Implements a message log (<code>JdbcMessageLog</code>) or error store (<code>JdbcErrorStorage</code>) that uses database + table IBISSTORE. A <code>MessageStoreSender</code> and <code>MessageStoreListener</code> + pair implicitly includes a message log and an error store. + If you have a <code>MessageStoreSender</code> and <code>MessageStoreListener</code> + pair it is superfluous to add a <code>JdbcMessageLog</code> or <code>JdbcErrorStorage</code> + within the same sender pipe or the same receiver. + <br/><br/> + <b>Message log:</b> A message log writes messages in persistent storage for logging purposes. + When a message log appears in a receiver, it also ensures that the same message is only processed + once, even if a related pushing listener receives the same message multiple times. + <br/><br/> + <b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed. + Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders + offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled + back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When + this is done, the message is processed in the same way as messages received from the original source. + <br/><br/> + How does a message log or error store see duplicate messages? The message log or error store + always appears in combination with a sender or listener. This sender or listener determines + a key based on the sent or received message. Messages with the same key are considered to + be the same. + <br/><br/> + Storage structure is defined in /IAF_util/IAF_DatabaseChangelog.xml. If these database objects do not exist, + the Frank!Framework will try to create them. + <br/><br/> + N.B. Note on using XA transactions: + If transactions are used on Oracle, make sure that the database user can access the table SYS.DBA_PENDING_TRANSACTIONS. + If not, transactions present when the server goes down cannot be properly recovered, resulting in exceptions like: + <pre> + The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException + at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:508) + </pre> + + + + + + + + + + + + Implements a message log (<code>JmsMessageLog</code>) or error store (<code>JmsErrorStorage</code>) that uses JMS technology. + <br/><br/> + <b>Message log:</b> A message log writes messages in persistent storage for logging purposes. + When a message log appears in a receiver, it also ensures that the same message is only processed + once, even if a related pushing listener receives the same message multiple times. + <br/><br/> + <b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed. + Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders + offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled + back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When + this is done, the message is processed in the same way as messages received from the original source. + <br/><br/> + How does a message log or error store see duplicate messages? The message log or error store + always appears in combination with a sender or listener. This sender or listener determines + a key based on the sent or received message. Messages with the same key are considered to + be the same. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ErrorMessageFormatter that returns a fixed message with replacements. + + + + + + + + + + + + ErrorMessageFormatter that returns a soap fault message. + + + + + + + + + + + + Applies a XSLT-stylesheet to the standard error generated by an ErrorMessageFormatter. + + If the transformation does not succeed, this 'standard' error message is returned and an exception is logged. + + Hint: use <code>xpathExression="/errorMessage/@message"</code> for a single compact string as errormessage. + + + + + + + + + + + + + + + + + + + returned message + + + + + name of the file containing the resultmessage + + + + + + + + + + + + + + + + + + + + + + + + + + + URL to the stylesheet used to transform the output of the standard ErrorMessageFormatter + + + + + xPathExpression to use for transformation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to WsdlXmlValidator for API Management. + + The SOAP header can only contain the following schema (or it's empty): + <table border="1"> + <tr><th>element</th><th>level</th><th>mandatory</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>yes</td></tr> + <tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td>&nbsp;</td><td>yes</td></tr> + <tr><td>From</td><td>1</td><td>no</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>yes</td></tr> + <tr><td>ConversationId</td><td>2</td><td>yes</td></tr> + </table> + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd) + to the set of XSD's used for validation. + + + + + + + + + + + + FxF XML validator to be used with FxF3. When receiving files + (direction=receive) the message is validated against the + OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided + by Tibco) for all queues (every Ibis receiving FxF files has it's own + queue)). When sending files (direction=send) the message is validated against + the StartTransfer WSDL (ESB service provided by Tibco). + + + + + + + + + + + + <code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON. + + + + + + + + + + + + Pipe that validates the input message against a JSON Schema. + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation. + + Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply). + These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator. + Both the request and the reply are then validated by the inputValidator. + <p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p> + <table border="1"> + <tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr> + <tr><td>wsdl.${adapterName}.soapAction</td></tr> + <tr><td>wsdl.soapAction</td></tr> + </table> + + + + + + + + + + + + XmlValidator that will read the XSD's to use from a WSDL. As it extends the + SoapValidator is will also add the SOAP envelope XSD. + + + + + + + + + + + + Pipe that validates the input message against a XML Schema. + + + + + + + + + + + + <code>Pipe</code> that checks the well-formedness of the input message. + If <code>root</code> is given then this is also checked. + + + + + + + + + + + + + + + + + + + + indicates whether the message is multipart/form-data. If so, the wsdl only represents the first part, other parts are attachments. This attribute is only used for generating the 'real' wsdl which is available in the ibis console (../rest/webservices) Default: false + + + + + + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The WSDL to read the XSDs from + + + + + Name of the child element of the SOAP body, or a comma separated list of names to choose from (only one is allowed) (WSDL generator will use the first element) (use empty value to allow an empty SOAP body, for example to allow element x and an empty SOAP body use: x,). In case the request contains SOAPAction header and the WSDL contains an element specific to that SOAPAction, it will use that element as SOAP body. + + + + + Pairs of URI references which will be added to the WSDL + + + + + Creates <code>schemaLocation</code> attribute based on the WSDL and replaces the namespace of the soap body element + + + + + + + + + + + + + + + + + + + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the child element of the SOAP body, or a comma separated list of names to choose from (only one is allowed) (wsdl generator will use the first element) (use empty value to allow an empty soap body, for example to allow element x and an empty soap body use: x,) + + + + + + + + + + + + + + + + + + + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Only for JSON input: namespace of the resulting XML. Need only be specified when the namespace of root name is ambiguous in the schema + + + + + Default format of the result, that is used if the format cannot be found from outputFormatSessionKey or from inputFormatSessionKey (when validating responses and autoFormat=true) Default: XML + + + + + + + + Session key to retrieve outputFormat from Default: outputFormat + + + + + Session key to store the inputFormat in, to be able to set the outputformat when autoFormat=true. Can also be used to pass the value of an HTTP Accept header, to obtain a properly formatted response Default: Json2XmlValidator.inputFormat &lt;name of the pipe&gt; + + + + + If true, the format on 'output' is set to the same as the format of the input message on 'input'. The format of the input message is stored in and retrieved from the session variable specified by outputFormatSessionKey Default: true + + + + + If true assume arrays in JSON do not have the element containers like in XML Default: true + + + + + If true check that incoming JSON adheres to the specified syntax (compact or full), otherwise both types are accepted for conversion from JSON to XML Default: false + + + + + If true, assume that JSON contains/must contain a root element Default: false + + + + + If true, and converting from JSON to XML, parameter substitutions are searched for optional sub elements too. By default, only mandatory elements are searched for parameter substitutions. N.B. Currently this option might cause problems. Please try using more qualified parameters names (using '/') first Default: false + + + + + If true, and converting from JSON to XML, elements in JSON that are not found in the XML Schema are ignored Default: false + + + + + If true, an exception is thrown when a wildcard is found in the XML Schema when parsing an object. This often indicates that an element is not properly typed in the XML Schema, and could lead to ambuigities. Default: true + + + + + If true, all XML is allowed to be without namespaces. If no namespaces are detected (by the presence of the string 'xmlns') in the XML, the root namespace is added to the XML Default: false + + + + + If true, all XML that is generated is without a namespace set Default: false + + + + + If true, and converting to or from JSON, then the message root is the only rootValidation, ignoring root validations like for SOAP envelope and header set by descender classes like SoapValidator Default: true + + + + + Allow JSON input Default: true + + + + + + + + + + + + + + + + The filename of the schema on the classpath. It is not possible to specify a namespace using this attribute. (effectively the same as noNamespaceSchemaLocation) + An example value would be "xml/xsd/GetPartyDetail.xsd". + The value of the schema attribute is only used if the schemaLocation attribute and the noNamespaceSchemaLocation are not set. + + + + + + + Name of the root element, or a comma separated list of element names. The validation fails if the root element is not present in the list. N.B. for WSDL generation only the first element is used + + + + + + + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + + + + + + Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the root element + + + + + Name of the response root element + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If set, the processing continues directly at the forward of this pipe, without executing the pipe itself, if the input is empty Default: false + + + + + If set, this pipe is only executed when the value of parameter with name <code>ifParam</code> equals <code>ifValue</code> (otherwise this pipe is skipped) + + + + + See <code>ifParam</code> + + + + + Key of session variable to check if action must be executed. The pipe is only executed if the session variable exists and is not null + + + + + Value of session variable 'onlyIfSessionKey' to check if action must be executed. The pipe is only executed if the session variable has the specified value + + + + + Key of session variable to check if action must be executed. The pipe is not executed if the session variable exists and is not null + + + + + Value of session variable 'unlessSessionKey' to check if action must be executed. The pipe is not executed if the session variable has the specified value + + + + + + + + + + + + + + + + + + + + + + + + + + Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 + + + + + + + + + + + + + + + + + + + + + either 3.1 or 3.2 Default: 3.1 + + + + + + + + + + + + + + + + The JSON Schema to validate to + + + + + Prefix to element name to find subschema in schema Default: /definitions/ + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + + + + + + + + + + + + name of the root element + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to WsdlXmlValidator for API Management. + + The SOAP header can only contain the following schema (or it's empty): + <table border="1"> + <tr><th>element</th><th>level</th><th>mandatory</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>yes</td></tr> + <tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td>&nbsp;</td><td>yes</td></tr> + <tr><td>From</td><td>1</td><td>no</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>yes</td></tr> + <tr><td>ConversationId</td><td>2</td><td>yes</td></tr> + </table> + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd) + to the set of XSD's used for validation. + + + + + + + + + + + + FxF XML validator to be used with FxF3. When receiving files + (direction=receive) the message is validated against the + OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided + by Tibco) for all queues (every Ibis receiving FxF files has it's own + queue)). When sending files (direction=send) the message is validated against + the StartTransfer WSDL (ESB service provided by Tibco). + + + + + + + + + + + + <code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON. + + + + + + + + + + + + Pipe that validates the input message against a JSON Schema. + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation. + + Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply). + These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator. + Both the request and the reply are then validated by the inputValidator. + <p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p> + <table border="1"> + <tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr> + <tr><td>wsdl.${adapterName}.soapAction</td></tr> + <tr><td>wsdl.soapAction</td></tr> + </table> + + + + + + + + + + + + XmlValidator that will read the XSD's to use from a WSDL. As it extends the + SoapValidator is will also add the SOAP envelope XSD. + + + + + + + + + + + + Pipe that validates the input message against a XML Schema. + + + + + + + + + + + + <code>Pipe</code> that checks the well-formedness of the input message. + If <code>root</code> is given then this is also checked. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to SoapWrapperPipe for API Management. + <p> + <b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr> + </table> + </p><p> + <b>/xml/xsl/api/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr> + <tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>from_out</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + + + + + + + + + + + + Extension to SoapWrapperPipe for separate modes. + + <p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr> + <tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr> + <tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr> + <tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr> + <tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr> + <tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr> + <tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr> + <tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr> + <tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr> + </table></p> + <p> + <b>/xml/xsl/esb/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + <tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr> + <tr><td>Service</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>2</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>2</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>2</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>3</td><td>$operationName</td></tr> + <tr><td>Version</td><td>3</td><td>$operationVersion</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>businessDomain</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>service(Context)Version</td><td>1</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>applicationName</td><td>&nbsp;</td></tr> + <tr><td>applicationFunction</td><td>&nbsp;</td></tr> + <tr><td>messagingLayer</td><td>ESB</td></tr> + <tr><td>serviceLayer</td><td>&nbsp;</td></tr> + <tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + <tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/soapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>fixResultNamespace</td><td>false</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + FxF wrapper to be used with FxF3. When receiving files (direction=unwrap) + the message handed to the pipeline is the local filename extracted from an + ESB SOAP message. When sending files (direction=wrap) input should be a local + filename which will be wrapped into an ESB SOAP message. Please note: When + writing files which need to be send through FxF they should be written to + ${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be + available on the OTAP environment (define it in StageSpecifics_LOC.properties + only). Replace NNX00000 with the specific flowId and generate a unique + filename (files will automatically be cleaned after 30 days or any other + value specified by ${fxf.retention}). + + + + + + + + + + + + Pipe to wrap or unwrap a message from/into a SOAP Envelope. + + + + + + + + + + + + + + + + + + + + + + + + + Default: wrap + + + + + + + + Soap version to use Default: auto + + + + + + + + (only used when direction=<code>wrap</code>) Namespace of the soap envelope Default: auto determined from soapVersion + + + + + Key of session variable to store auto detected soapNamespace Default: If configured as Pipeline Input Wrapper or PipeLine Output Wrapper: soapNamespace + + + + + Key of session variable to store soap header Default: If configured as Pipeline Input Wrapper and direction=<code>unwrap</code>: soapHeader + + + + + The encodingStyle to be set in the soap header + + + + + The default for the namespace of the message sent. Identifies the service to be called. May be overriden by an actual namespace setting in the message to be sent + + + + + (only used when direction=<code>wrap</code>) Stylesheet to create the content of the soap header. As input for this stylesheet a dummy xml string is used. Note: outputType=<code>xml</code> and xsltVersion= + + + + + (only used when direction=<code>wrap</code>) Stylesheet to apply to the input message. Note: outputType=<code>xml</code> and xsltVersion=2 + + + + + (only used when direction=<code>unwrap</code>) If <code>true</code>, namespaces (and prefixes) in the content of the soap body are removed Default: false + + + + + (only used when direction=<code>unwrap</code> and <code>removeoutputnamespaces=false</code>) If <code>true</code>, unused namespaces in the content of the soap body are removed Default: true + + + + + (only used when direction=<code>wrap</code>) If not empty, this namespace is added to the root element in the soap body + + + + + If not empty, the root element in the soap body is changed to this value + + + + + (only used when direction=<code>unwrap</code>) If <code>false</code> and the soap body contains a soap fault, a PipeRunException is thrown Default: false + + + + + For direction=<code>unwrap</code> only: if true, allow unwrapped xml too Default: false + + + + + alias used to obtain credentials for authentication to WebServiceSecurity + + + + + Default username for WebServiceSecurity + + + + + Default password for WebServiceSecurity + + + + + If true, the password is sent digested; Otherwise it is sent in clear text Default: true + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default: REG + + + + + + + + <b>Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 + + + + + (only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion') Default: false + + + + + (only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code> Default: true + + + + + If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only) Default: false + + + + + (only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed Default: false + + + + + When the messagingLayer part of the destination has this value interpret it as P2P + + + + + When the messagingLayer part of the destination has this value interpret it as ESB + + + + + + + + + + + + + + + + The flowId of the file transfer when direction=wrap. When direction=unwrap the flowId will be extracted from the incoming message and added as a sessionKey to the pipeline. + + + + + specifies the output folder if transformFilename=<code>false</code> and direction=wrap + + + + + when <code>true</code> and direction=wrap, the input which is expected to be a local filename will be transformed to the filename as known on the IUF State machine. Default: true + + + + + + + + + + + either 3.1 or 3.2 Default: 3.1 + + + + + when set to <code>true</code>, the folder corresponding fxf.dir property will be created in case it does not exist Default: false + + + + + when set to <code>true</code>, ServerFileName from the input will be used as the filename Default: false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to SoapWrapperPipe for API Management. + <p> + <b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr> + </table> + </p><p> + <b>/xml/xsl/api/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr> + <tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>from_out</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + + + + + + + + + + + + Extension to SoapWrapperPipe for separate modes. + + <p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr> + <tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr> + <tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr> + <tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr> + <tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr> + <tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr> + <tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr> + <tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr> + <tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr> + </table></p> + <p> + <b>/xml/xsl/esb/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + <tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr> + <tr><td>Service</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>2</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>2</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>2</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>3</td><td>$operationName</td></tr> + <tr><td>Version</td><td>3</td><td>$operationVersion</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>businessDomain</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>service(Context)Version</td><td>1</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>applicationName</td><td>&nbsp;</td></tr> + <tr><td>applicationFunction</td><td>&nbsp;</td></tr> + <tr><td>messagingLayer</td><td>ESB</td></tr> + <tr><td>serviceLayer</td><td>&nbsp;</td></tr> + <tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + <tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/soapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>fixResultNamespace</td><td>false</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + FxF wrapper to be used with FxF3. When receiving files (direction=unwrap) + the message handed to the pipeline is the local filename extracted from an + ESB SOAP message. When sending files (direction=wrap) input should be a local + filename which will be wrapped into an ESB SOAP message. Please note: When + writing files which need to be send through FxF they should be written to + ${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be + available on the OTAP environment (define it in StageSpecifics_LOC.properties + only). Replace NNX00000 with the specific flowId and generate a unique + filename (files will automatically be cleaned after 30 days or any other + value specified by ${fxf.retention}). + + + + + + + + + + + + Pipe to wrap or unwrap a message from/into a SOAP Envelope. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A true multi-threaded Listener-class. + <br/> + + Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the + transacted attribute. If this is set to <code>true</code>, received messages are + committed or rolled back, possibly together with other actions, by the receiver or the pipeline. + In case of a failure, all actions within the transaction are rolled back. + + <p><b>Using jmsTransacted and acknowledgement</b><br/> + If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis. + IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within + the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to + other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the + message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct + (transactional) behaviour, transacted should be used instead of listener.transacted. +<p> + Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from + the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue + when the state of the Adapter equals the success state. + The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the + delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages. + In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode, + since a session has lower overhead in trying to prevent duplicate messages. + </p> + <p>The setting for listener.acknowledgeMode will only be processed if + the setting for listener.transacted as well as for + listener.jmsTransacted is false.</p> + + <p>If useReplyTo is set and a replyTo-destination is + specified in the message, the JmsListener sends the result of the processing + in the pipeline to this destination. Otherwise the result is sent using the (optionally) + specified Sender, that in turn sends the message to + whatever it is configured to.</p> + </p> + <p><b>Notice:</b> the JmsListener is ONLY capable of processing + <code>javax.jms.TextMessage</code>s <br/><br/> + </p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Manager that decides the handlers based on the content of a field in the specified + position in a record. The fields in the record are separated by a separator. + The value of the specified field is taken as key in the flow-table. + + + + + + + + + + + + Manager that decides the handlers based on the content of a field in the specified + position in a record. The fields in the record are of a fixed length. + The data beween the start position and end position is taken as key in the flow-table. + + + + + + + + + + + + + + + + + + + + position of field that identifies the recordtype (position of first field is 1) + + + + + separator that separates the fields in the record + + + + + + + + + + + + + + + + + + + + + Name of the manager + + + + + This manager is the initial manager, i.e. to be used for the first record Default: false + + + + + + + + + + + + + + Start position of the field in the record that identifies the recordtype (first character is 0) Default: 0 + + + + + If endposition &gt;= 0 then this field contains the endPosition of the recordtype field in the record; All characters beyond this position are ignored. Else, if endPosition &lt; 0 then it depends on the length of the recordkey in the flow Default: -1 + + + + + + + + + + + + + + + + + + + + + + + + + IReaderFactory that provides a reader that reads Delphi records containing Strings. + + + + + + + + + + + + Basic InputStreamReaderFactory. + + + + + + + + + + + + + + + + + + + separator placed between each string read Default: | + + + + + the maximum length of each string. each string is preceded by a one byte length indication. Default: 50 + + + + + the number of strings read for each record. 0 means file consists of one logical record Default: 0 + + + + + replacement character, used when separator is found in string read Default: _ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Translate a record using an outputFields description. + + + The outputFields description can contain the following functions: + + <table border="1"> + <tr><td>string(value)</td><td>inserts the value between the braces</td><td>string( Dit wordt geinsert inclusief spaties ervoor en erna. )</td></tr> + <tr><td>align(value,size,align,fillchar)</td><td>inserts the value aligned</td><td>align(test~10~left~ )</td></tr> + <tr><td>fill(size,fillchar)</td><td>insert size fillchars</td><td>fill(2,0)</td></tr> + <tr><td>now(outformat)</td><td>inserts the current date</td><td>now(dd MMM yyyy)</td></tr> + <tr><td>incopy(fieldnr)</td><td>simply inserts the value of the field</td><td>incopy(2)</td></tr> + <tr><td>substr(fieldnr,startindex,endindex)</td><td>insert part of the value of the field</td><td>substr(2,0,8)</td></tr> + <tr><td>lookup(fieldnr,orgvval=newval,...)</td><td>replace original value using lookup table</td><td>lookup(3,Debit=+,Credit=-)</td></tr> + <tr><td>indate(fieldnr,informat,outformat)</td><td>inserts an input datefield using a different format</td><td>indate(2~MMddYY~dd MMM yyyy)</td></tr> + <tr><td>inalign(fieldnr,size,align,fillchar)</td><td>inserts an input field</td><td>inalign(3~5~left~0)</td></tr> + <tr><td>if(fieldnr,comparator,compareval)</td><td>only output the next fields if condition is true. Comparator is EQ (is equal to), NE (is not equal to), SW (starts with) or NS (not starts with). Use "{..|..|..}" for multiple compareValues</td><td>if(1,eq,3)</td></tr> + <tr><td>elseif(fieldnr,comparator,compareval)</td><td>only output the next fields if condition is true. Comparator is EQ, NE, SW or NS</td><td>elseif(1,ne,4)</td></tr> + <tr><td>endif()</td><td>endmarker for if</td><td>endif()</td></tr> + </table> + + + + + + + + + + + + Translate a record into XML, then send it using a sender. + + + + + + + + + + + + Encapsulates a record in XML, optionally translates it using XSLT or XPath. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + semicolon separated list of output record field specifications (see table below) + + + + + optional separator to add between the fields + + + + + + + + + + + + + + + + + comma separated list of numbers of those fields that are compared with the previous record to determine if a prefix must be written. if any of these fields is not equal in both records, the record types are assumed to be different + + + + + Name of the recordhandler + + + + + Comma separated specification of field lengths. if neither this attribute nor <code>inputSeparator</code> is specified then the entire record is parsed + + + + + Separator that separates the fields in the input record. If neither this attribute nor <code>inputFields</code> is specified then the entire record is parsed + + + + + If set <code>true</code>, trailing spaces are removed from each field Default: false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + comma separated string with tagnames for the individual input fields (related using there positions). if you leave a tagname empty, the field is not xml-ized + + + + + Root tag for the generated xml document that will be send to the Sender Default: record + + + + + Name of stylesheet to transform an individual record + + + + + Alternatively: xpath-expression to create stylesheet from + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. One entry can be without a prefix, that will define the default namespace. + + + + + Only valid for <code>xpathExpression</code> Default: text + + + + + + + + Force the transformer generated from the xpath-expression to omit the xml declaration Default: true + + + + + String which ends the record and must be ignored + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ResultHandler that writes the transformed record to a BLOB. + + + + + + + + + + + + ResultHandler that writes the transformed record to a CLOB. + + + + + + + + + + + + Resulthandler that writes the transformed record to a file. + + + + + + + + + + + + Resulthandler that writes the transformed record to a String, that is passed to the next Pipe literally. + + + + + + + + + + + + ResultHandler that collects a number of records and sends them together to a sender. + + + + + + + + + + + + + + + + + + + + Column that contains the BLOB to be updated Default: 1 + + + + + controls whether blobdata is stored compressed in the database Default: true + + + + + Charset that is used to read and write BLOBs. This assumes the blob contains character data. + If blobCharset and blobSmartGet are not set, BLOBs are returned as bytes. Before version 7.6, blobs were base64 encoded after being read to accommodate for the fact that senders need to return a String. This is no longer the case + + + + + + + + + + + + + + + + The functional name of the object. + + + + + if set <code>true</code>, this resulthandler is the default for all flows that do not have a handler specified Default: false + + + + + When set <code>true</code>(default), every group of records, as indicated by RecordHandler.newRecordType is handled as a block. Default: true + + + + + + + + + The SQL query text + + + + + JNDI name of datasource to be used, can be configured via jmsRealm, too Default: jdbc.datasource.default + + + + + loads JNDI (and other) properties from a JmsRealm + + + + + + + + + + + string that is written before any data of results is written Default: &lt;document name=&quot;#name#&quot;&gt; + + + + + string that is written after all data of results is written Default: &lt;/document&gt; + + + + + string that is written before the start of each logical block, as defined in the flow Default: &lt;#name#&gt; + + + + + string that is written after the end of each logical block, as defined in the flow Default: &lt;/#name#&gt; + + + + + string that is replaced by name of block or name of stream in above strings Default: #name# + + + + + + + + + + + + + + + + Column that contains the CLOB to be updated Default: 1 + + + + + + + + + + + + + + + + Directory in which the resultfile must be stored + + + + + Directory to which the created file must be moved after finalization (is optional) + + + + + Name of the file is created using the messageformat. Params: 1=inputfilename, 2=extension of file, 3=current date + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Transforms between ascii-ADIOS and an XML representation of ADIOS. + + <p> + Sample xml:<br/> + <pre><code> + &lt;adios rekenbox="L76HB150"&gt; + &lt;rubriek naam="BER_VERZ_CD" waarde="COMBIFLEX_BELEGGING" /&gt; + &lt;rubriek naam="INBR_CD" waarde="NIEUWE_VERZEKERING" /&gt; + &lt;rubriek naam="PENS_DT_BEP_CD" waarde="DT_UIT_PENS_LFT" /&gt; + &lt;rubriek nummer="313" naam="AS_OPSL_PRD_TRM_PRM" index="3" recordnr="74" record="VUT_VERZEKERING" waarde="52.34" /&gt; + ... + &lt;/adios&gt; + </code></pre> + <br/> + For input, a 'naam' or a 'nummer'-attribute must be specified. If both are specified, their match is checked. + On output, 'nummer', 'naam' and 'waarde'-attributes are always present in each rubriek-element. + Where applicable 'index', 'recordnr', 'record' and 'recordindex' are present, too. + If sub-records exist, they are present with a 'sub' prefix to all attributes. + </p> + + + + + + + + + + + + Returns the amount of pages of a PDF file. + + + + + + + + + + + + Pipe to manage the ApiPrincipal handling + + + + + + + + + + + + Extension to SoapWrapperPipe for API Management. + <p> + <b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr> + </table> + </p><p> + <b>/xml/xsl/api/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr> + <tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>from_out</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + + + + + + + + + + + + Extension to WsdlXmlValidator for API Management. + + The SOAP header can only contain the following schema (or it's empty): + <table border="1"> + <tr><th>element</th><th>level</th><th>mandatory</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>yes</td></tr> + <tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td>&nbsp;</td><td>yes</td></tr> + <tr><td>From</td><td>1</td><td>no</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>yes</td></tr> + <tr><td>ConversationId</td><td>2</td><td>yes</td></tr> + </table> + + + + + + + + + + + + Pipe that performs base64 encoding and decoding. + + + + + + + + + + + + Pipe for transforming a (batch)file with records. Records in the file must be separated + with new line characters. + You can use the &lt;child&gt; tag to register RecordHandlers, RecordHandlerManagers, ResultHandlers + and RecordHandlingFlow elements. This is deprecated, however. Since 4.7 one should use &lt;manager&gt;, + &lt;recordHandler&gt;, &lt;resultHandler&gt; and &lt;flow&gt; + + For files containing only a single type of lines, a simpler configuration without managers and flows + can be specified. A single recordHandler with key="*" and (optional) a single resultHandler need to be specified. + Each line will be handled by this recordHandler and resultHandler. + + + + + + + + + + + + Pipe that iterates over the lines in a BLOB. + + + + + + + + + + + + Output bytes as specified by the input XML. + + Actions are taken on every field + tag found in the input XML. Every field tag should have a type attribute + that specifies the type of conversion that needs to be done on the string + specified by the value attribute. A value attribute also needs to be present + for every field tag. Currently two types of conversion are supported: + + <ul> + <li><code>GetBytesFromString</code>, a conversion from string to bytes as specified by java.lang.String.getBytes(String charsetName)</li> + <li><code>PackedDecimal</code>, a conversion from string to Packed-decimal</li> + </ul> + + An additional charset attribute is needed for a GetBytesFromString + conversion. An input XML that would encode the string &quot; TEST 1234 &quot; + into EBCDIC format would look like: + + <pre> + &lt;fields&gt; + &lt;field type=&quot;GetBytesFromString&quot; value=&quot; TEST 1234 &quot; charset=&quot;Cp037&quot;/&gt; + &lt;/fields&gt; + </pre> + + The Packed-decimal conversion has been implemented according to information + found in the following resources: + + <ul> + <li>A description as found at <a href="http://www.simotime.com/datapk01.htm">http://www.simotime.com/datapk01.htm</a></li> + <li>AS400PackedDecimal.java from jtopen_6_1_source.zip downloaded at <a href="http://jt400.sourceforge.net/">http://jt400.sourceforge.net/</a></li> + <li>The WebSphere Studio COBOL for Windows Programming Guide from <a href="http://www-1.ibm.com/support/docview.wss?uid=swg27005151">http://www-1.ibm.com/support/docview.wss?uid=swg27005151</a></li> + </ul> + + Some examples: + + <ul> + <li>The string +12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5C</li> + <li>The string -12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5D</li> + <li>The string 12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5F</li> + <li>The string 1234 will be translated to three bytes with the following hexadecimal representation: 01 23 4F</li> + </ul> + + The Packed-decimal is prefixed with zero's when the specified size is bigger + than the number of decimals. An exception is thrown when the specified size + is smaller than the number of decimals. + + An input XML that would generate a number of Packed-decimals could look like: + + <pre> + &lt;fields&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+67890&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-67890&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;67890&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+1&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-1&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+12&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-12&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+123&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-123&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-1234&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-12345&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+123456&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-123456&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+1234567&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-1234567&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;+12345678&quot; size=&quot;16&quot;/&gt; + &lt;field type=&quot;PackedDecimal&quot; value=&quot;-12345678&quot; size=&quot;16&quot;/&gt; + &lt;/fields&gt; + </pre> + + + + + + + + + + + + Pipe to calculate checksum on input. + + + + + + + + + + + + Pipe for deleting files. + + + + + + + + + + + + Pipe that iterates over the lines in a CLOB. + + + + + + + + + + + + Pipe that compares the two integer values. + If one of the parameters is missing then the input message will be used as the missing operand. + This pipe can be used in combination with IncreaseIntegerPipe to construct loops. + + + + + + + + + + + + Pipe that compares lexicographically two strings. + + + + + + + + + + + + Pipe to zip or unzip a message or file. + + + + + + + + + + + + Perform the call to a CoolGen proxy with pre- and post transformations. + + + + + + + + + + + + Selects an exitState, based on the number of received messages by this pipe. + + The exitState is the difference (subtraction) between the <code>divisor</code> and + the remainder of [number of received messages] modulus <code>divisor</code>. + This will always be an integer between 1 and <code>divisor</code>, inclusive. + + + + + + + + + + + + Pipe to check the the CredentialFactory (for testing only). + + + + + + + + + + + + Pipe that reads a CRL from an input stream and transforms it to an XML. + The steam is closed after reading. + + Example configuration: + <pre><code> + &lt;pipe + name="Read issuer" + className="nl.nn.adapterframework.pipes.FilePipe" + actions="read" + fileName="dir/issuer.cer" + preserveInput="true" + outputType="stream" + storeResultInSessionKey="issuer" + &gt; + &lt;forward name="success" path="Read CRL" /&gt; + &lt;/pipe&gt; + &lt;pipe + name="Read CRL" + className="nl.nn.adapterframework.pipes.FilePipe" + actions="read" + fileName="dir/CRL.crl" + outputType="stream" + &gt; + &lt;forward name="success" path="Transform CRL" /&gt; + &lt;/pipe&gt; + &lt;pipe + name="Transform CRL" + className="nl.nn.adapterframework.pipes.CrlPipe" + issuerSessionKey="issuer" + &gt; + &lt;forward name="success" path="EXIT" /&gt; + &lt;/pipe&gt; + </code></pre> + + + + + + + + + + + + Reads a message in CSV format, and turns it into XML. + + + + + + + + + + + + Pipe that sleeps for a specified time, which defaults to 5000 msecs. + Usefull for testing purposes. + + + + + + + + + + + + Kind of extension to EsbSoapWrapperPipe for real time destinations. + + + + + + + + + + + + Pipe that performs domain transforming on the basis of a database table. + + Every string which equals "%![DT{<code>label</code>,<code>valueIn</code>,<code>type</code>}]" will be replaced by <code>valueOut</code>. + + The field <code>type</code>, which is optional, indicates the format of <code>valueIn</code>. Currently the following types are supported: + + <ul> + <li><code>string</code> (default): the methode setString() is used</li> + <li><code>number</code>: the method setDouble() is used </li> + </ul> + + + + + + + + + + + + Returns simply the input message. + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd) + to the set of XSD's used for validation. + + + + + + + + + + + + Extension to SoapWrapperPipe for separate modes. + + <p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr> + <tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr> + <tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr> + <tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr> + <tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr> + <tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr> + <tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr> + <tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr> + <tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr> + <tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr> + <tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr> + <tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr> + </table></p> + <p> + <b>/xml/xsl/esb/soapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + <tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr> + <tr><td>Service</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>2</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>2</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>2</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>3</td><td>$operationName</td></tr> + <tr><td>Version</td><td>3</td><td>$operationVersion</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>businessDomain</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>service(Context)Version</td><td>1</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>applicationName</td><td>&nbsp;</td></tr> + <tr><td>applicationFunction</td><td>&nbsp;</td></tr> + <tr><td>messagingLayer</td><td>ESB</td></tr> + <tr><td>serviceLayer</td><td>&nbsp;</td></tr> + <tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + <tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapHeader.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>MessageHeader</td><td>0</td><td>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr> + <tr><td>MessageId</td><td>2</td><td>$messageId</td></tr> + <tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr> + <tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>fromId</td><td>property 'instance.name'</td></tr> + <tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr> + <tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr> + <tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/soapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>mode</td><td>copied from <code>mode</code></td></tr> + <tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr> + <tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>fixResultNamespace</td><td>false</td></tr> + </table> + </p> + <p> + <b>/xml/xsl/esb/bisSoapBody.xsl:</b> + <table border="1"> + <tr><th>element</th><th>level</th><th>value</th></tr> + <tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr> + <tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr> + <tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr> + <tr><td>Error</td><td>3</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>4</td><td>$errorCode</td></tr> + <tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode: + <table border="1"> + <tr><th>errorCode</th><th>errorText</th></tr> + <tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr> + <tr><td>ERR6003</td><td>Invalid Request Message</td></tr> + <tr><td>ERR6004</td><td>Invalid Backend system response</td></tr> + <tr><td>ERR6005</td><td>Backend system failure response</td></tr> + <tr><td>ERR6999</td><td>Unspecified Errors</td></tr> + </table> + </td></tr> + <tr><td>Service</td><td>4</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>5</td><td>$serviceName</td></tr> + <tr><td>Context</td><td>5</td><td>$serviceContext</td></tr> + <tr><td>Action</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Name</td><td>6</td><td>$operationName</td></tr> + <tr><td>Version</td><td>6</td><td>$operationVersion</td></tr> + <tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr> + <tr><td>Detail</td><td>5</td><td>&nbsp;</td></tr> + <tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr> + <tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr> + </table> + <b>Parameters:</b> + <table border="1"> + <tr><th>name</th><th>default</th></tr> + <tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr> + <tr><td>errorCode</td><td>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + </table> + </p> + + + + + + + + + + + + Pipe that performs translations between special characters and their xml equivalents. + <p>When direction=cdata2text all cdata nodes are converted to text nodes without any other translations.</p> + + + + + + + + + + + + Pipe that throws an exception, based on the input message. + + + + + + + + + + + + Produces a fixed result that does not depend on the input message. It may return the contents of a file + when <code>filename</code> or <code>filenameSessionKey</code> is specified. Otherwise the + value of attribute <code>returnString</code> is returned. + <br/><br/> + Using parameters and the attributes of this pipe, it is possible to substitute values. This pipe + performs the following steps: + <ol> + <li>During execution, this pipe first obtains a string based on attributes <code>returnString</code>, <code>filename</code> or <code>filenameSessionKey</code>.</li> + <li>The resulting string is transformed according to attributes <code>replaceFrom</code> and <code>replaceTo</code> if set. + Please note that the plain value of attribute <code>replaceFrom</code> is matched, no <code>${...}</code> here.</li> + <li>The resulting string is substituted based on the parameters of this pipe. This step depends on attribute <code>replaceFixedParams</code>. + Assume that there is a parameter with name <code>xyz</code>. If <code>replaceFixedParams</code> is <code>false</code>, then + each occurrence of <code>${xyz}</code> is replaced by the parameter's value. Otherwise, the text <code>xyz</code> + is substituted. See Parameter to see how parameter values are determined.</li> + <li>If attribute <code>substituteVars</code> is <code>true</code>, then expressions <code>${...}</code> are substituted using + system properties, pipelinesession variables and application properties. Please note that + no <code>${...}</code> patterns are left if the initial string came from attribute <code>returnString</code>, because + any <code>${...}</code> pattern in attribute <code>returnString</code> is substituted when the configuration is loaded.</li> + <li>If attribute <code>styleSheetName</code> is set, then the referenced XSLT stylesheet is applied to the resulting string.</li> + </ol> + <br/> + Many attributes of this pipe reference file names. If a file is referenced by a relative path, the path + is relative to the configuration's root directory. + + + + + + + + + + + + + + + + + + + + + Sends a message to a Sender for each child element of the input XML. + Input can be a String containing XML, a filename (set processFile true), an InputStream or a Reader. + + + + + + + + + + + + FxF wrapper to be used with FxF3. When receiving files (direction=unwrap) + the message handed to the pipeline is the local filename extracted from an + ESB SOAP message. When sending files (direction=wrap) input should be a local + filename which will be wrapped into an ESB SOAP message. Please note: When + writing files which need to be send through FxF they should be written to + ${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be + available on the OTAP environment (define it in StageSpecifics_LOC.properties + only). Replace NNX00000 with the specific flowId and generate a unique + filename (files will automatically be cleaned after 30 days or any other + value specified by ${fxf.retention}). + + + + + + + + + + + + FxF XML validator to be used with FxF3. When receiving files + (direction=receive) the message is validated against the + OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided + by Tibco) for all queues (every Ibis receiving FxF files has it's own + queue)). When sending files (direction=send) the message is validated against + the StartTransfer WSDL (ESB service provided by Tibco). + + + + + + + + + + + + Gets the contents of the pipeLineSession by a key specified by + <code>sessionKey</code>. + + + + + + + + + + + + Returns the LTPA token associated with the session. + + + + + + + + + + + + Returns the name of the user executing the request. + + + + + + + + + + + + Returns information about Tibco queues in a XML string. + <p> + If the parameter <code>queueName</code> is empty then + <ul><li>all Tibco queues including information about these queues are returned</li></ul> + else + <ul><li>one message on a specific Tibco queue including information about this message is returned (without removing it)</li></ul> + </p> + + + + + + + + + + + + Pipe that hashes the input message. + + + + + + + + + + + + Selects an exitState, based on the content-type of a httpServletRequest + object as input. + + + + + + + + + + + + Pipe that increases the integer value of a session variable. + Can be used in combination with CompareIntegerPipe to construct loops. + + + + + + + + + + + + Pipe that checks if the calling user has a specified role. + Uses the PipeLineSessions methods. + <p> + If the role is not specified by the role attribute, the input of + the pipe is used as role. + + N.B. The role itself must be specified by hand in the deployment descriptors web.xml and application.xml. + </p> + + + + + + + + + + + + Selects an exitState, based on if the input is a XML string. + + The input is a XML string if it, after removing leading white-space characters, starts with '&lt;'. + + + + + + + + + + + + <code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON. + + + + + + + + + + + + JSON is not aware of the element order. This pipe performs a <strong>best effort</strong> JSON to XML transformation. + If you wish to validate or add structure to the converted (xml) file, please use the Json2XmlValidator. + + + + + + + + + + + + Pipe that validates the input message against a JSON Schema. + + + + + + + + + + + + <code>Pipe</code> that checks the well-formedness of the input message. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, XML or text. + JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json. + The XSLT stylesheet or XPathExpression operates on these element. + + + + + + + + + + + + Transforms between ascii and an XML representation. + + <p> + Sample xml:<br/><code><pre> + &lt;CALCBOXMESSAGE&gt; + &lt;OPDRACHT&gt; + &lt;OPDRACHTSOORT&gt;ONTTREK_RISICO_EN_KOSTEN&lt;/OPDRACHTSOORT&gt; + &lt;BASISRENDEMENTSOORT&gt;NVT&lt;/BASISRENDEMENTSOORT&gt; + &lt;BEDRAG&gt;625&lt;/BEDRAG&gt; + &lt;DATUM&gt;20071201&lt;/DATUM&gt; + + ... + &lt;/CALCBOXMESSAGE&gt; + </pre></code> <br/> + + Sample ascii:<br/><code><pre> + OPDRACHT : #SAMENGESTELD + OPDRACHT.OPDRACHTSOORT :ONTTREK_RISICO_EN_KOSTEN + OPDRACHT.BASISRENDEMENTSOORT :NVT + OPDRACHT.BEDRAG :625 + OPDRACHT.DATUM :20071201 + + ... + EINDEREKENVERZOEK :EINDE + </pre></code> + </p> + + <p><b>Configuration:</b> + <table border="1"> + <tr><th>attributes</th><th>description</th><th>default</th></tr> + <tr><td>direction</td><td>transformation direction. Possible values + <ul> + <li>"Xml2Label": transform an XML file to ascii</li> + <li>"Label2Xml": transform an ascii file to XML</li> + </ul></td><td>Xml2Label</td></tr> + </table> + </p> + + + + + + + + + + + + Call Ladybug Test Tool to rerun the reports present in test storage (see Test tab in Ladybug) + + + + + + + + + + + + Call Larva Test Tool + + + + + + + + + + + + Pipe that returns the memberships of a userDN. + The input is a fullDn, of a user or a group. + <br/> + Sample result:<br/><code><pre> + &lt;ldap&gt; + &lt;entry name="CN=xxyyzz,OU=Users,DC=domain,DC=ext"&gt; + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name="memberOf" value="Extern"/&gt; + &lt;attribute name="departmentCode" value="358000"/&gt; + &lt;attribute name="organizationalHierarchy"&gt; + &lt;item value="ou=zzyyxx"/&gt; + &lt;item value="ou=OPS&amp;IT,ou=Group,ou=domain,o=ext"/&gt; + &lt;/attribute> + &lt;attribute name="givenName" value="Gerrit"/> + &lt;/attributes&gt; + &lt;/entry&gt; + &lt;entry&gt; .... &lt;/entry&gt; + ..... + &lt;/ldap&gt; + </pre></code> <br/> + + + + + + + + + + + + Pipe that checks if a specified dn exists as 'member' in another specified dn + in LDAP. + + + + + + + + + + + + + + + + + + + + + Pipe that stores all its parameter values in the ThreadContext, formerly known as Mapped Diagnostic Context (MDC), to be used in logging. + The input is passed through to the output. + + + + + + + + + + + + Pipe that sends a mail-message using a MailSender as its sender. + <br/> + Sample email.xml:<br/><code><pre> + &lt;email&gt; + &lt;recipients&gt; + &lt;recipient&gt;***@natned&lt;/recipient&gt; + &lt;recipient&gt;***@nn.nl&lt;/recipient&gt; + &lt;/recipients&gt; + &lt;from&gt;***@nn.nl&lt;/from&gt; + &lt;subject&gt;this is the subject&lt;/subject&gt; + &lt;message&gt;dit is de message&lt;/message&gt; + &lt;/email&gt; + </pre></code> <br/> + Notice: it must be valid XML. Therefore, especially the message element + must be plain text or be wrapped as CDATA.<br/><br/> + example:<br/><code><pre> + &lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt; + </pre></code><br/> + + + + + + + + + + + + <p>Performs various PGP (Pretty Good Privacy) actions such as Encrypt, Sign, Decrypt, Verify.</p> + <p>To use this pipe action parameter has to be set to one of the actions above.</p> + <p> + <strong>Note:</strong> When secret key is required in any of the actions, + the related public key should also be included in public keys. + </p> + + <p> + <strong>Note:</strong> For fields that require multiple input + (such as recipients, senders and publicKey -in certain actions-) + you can seperate multiple values with ";" (semicolon). + </p> + + + + + + + + + + + + Returns random password. + + + + + + + + + + + + Hash a password or validate a password against a hash using PasswordHash.java + from <a href="https://crackstation.net/hashing-security.htm">https://crackstation.net/hashing-security.htm</a>. + Input of the pipe is expected to be the password. In case hashSessionKey + isn't used a hash of the password is returned. In case hashSessionKey is used + it is validated against the hash in the session key which will determine + the forward to be used (success or failure). + + + + + + + + + + + + Converts files to pdf type. This pipe has two actions convert and combine. + With combine action you can attach files into main pdf file. + + + + + + + + + + + + Puts the input or the <code>value</code> in the PipeLineSession, under the key specified by + <code>sessionKey</code>. Additionally, stores parameter values in the PipeLineSession. + + + + + + + + + + + + Puts the system date/time under a key in the pipeLineSession. + + + + + + + + + + + + Perform a call to a RekenBox. + + The inputmessage is written to a temporary file and passed as inputfile to the rekenbox. The contents of the outputfile of the + rekenbox is returned as output message. The name of the rekenbox, as determined from the inputfile, is optionally written to + the pipeLineSession. + + + <p><b>Note:</b><br/> + The rekenbox-name is currently determined from the first 8 characters of the file, or up + to the first space (' ') or colon (':') character. Beware that if the first character of the + file is a newline character or something similar, less characters are available to pass the + rekenbox-name on. Especially if the inputmessages are constructed by means of an XSLT-stylesheet, + messages often start with a newline character. + </p> + + + + + + + + + + + + Remove specified cache key from cache with specified name. + + + + + + + + + + + + Removes a key specified by <code>sessionKey</code> + from the pipeLineSession. + + + + + + + + + + + + Replaces all occurrences of one string with another. + + + + + + + + + + + + Pipe that iterates over rows in in ResultSet. + + Each row is send passed to the sender in the same format a row is usually returned from a query. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Manager for SAP Logical Units of Work (LUWs). + Used to begin, commit or rollback LUWs. A SapLUWManager can be placed before a number + of SapSenders. The SapLUWManager and the SapSenders must each use the same value for + luwHandleSessionKey. By doing so, they use the same connection to SAP. This allows to + perform a commit on a number of actions.<br/> + The placement of the the first SapLUWManager is optionan: By specifying a new + luwHandleSessionKey a new handle is created implicitly.<br/> + To explicityly commit or rollback a set of actions, a SapLUWManager-pipe can be used, with + the action-attribute set apropriately. + + + + + + + + + + + + Pipe which scans TIBCO sources in Subversion and creates a report in xml. + + + + + + + + + + + + Sends a message to a Tibco queue. + + + + + + + + + + + + Plain extension to MessageSendingPipe that can be used directly in configurations. + Only extension is that the setters for listener and sender have been made public, and can therefore + be set from the configuration file. + + + + + + + + + + + + + + + + + + + + + Returns the number of bytes or characters in the input. + + + + + + + + + + + + Skip a number of bytes or characters from the input. + + + + + + + + + + + + XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation. + + Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply). + These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator. + Both the request and the reply are then validated by the inputValidator. + <p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p> + <table border="1"> + <tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr> + <tr><td>wsdl.${adapterName}.soapAction</td></tr> + <tr><td>wsdl.soapAction</td></tr> + </table> + + + + + + + + + + + + Pipe to wrap or unwrap a message from/into a SOAP Envelope. + + + + + + + + + + + + Sends a message to a Sender for each line of its input, that must be an InputStream. + + + + + + + + + + + + Stream an input stream to an output stream. + + + + + + + + + + + + Pipe for transforming a stream with records. Records in the stream must be separated with new line characters. + + For file containing only a single type of lines, a simpler configuration without managers and flows + can be specified. A single recordHandler with key="*" and (optional) a single resultHandler need to be specified. + Each line will be handled by this recordHandler and resultHandler. + + + + + + + + + + + + IteratingPipe that has Strings as items. + + + + + + + + + + + + Pipe for converting TEXT to XML. + + + + + + + + + + + + Breaks up the text input in blocks of a maximum length. + By default the maximum block length is 160 characters, to enable them to be send as SMS messages. + + + + + + + + + + + + Pipe that generates an UUID (Universally Unique Identifier). + + Only type <code>alphanumeric</code> guarantees a 100% unique identifier, type <code>numeric</code> has a 0.01% chance of exactly the same id in case of multiple calls on the same host within a few milliseconds. + + + + + + + + + + + + Assumes input to be the file name of a ZIP archive, and unzips it to a + directory and/or an XML message. + <br/> + The output of each unzipped item is returned in XML as follows when + collectFileContents is false: + <pre> + &lt;results count="num_of_items"&gt; + &lt;result item="1"&gt; + &lt;zipEntry&gt;name in ZIP archive of first item&lt;/zipEntry&gt; + &lt;fileName&gt;filename of first item&lt;/fileName&gt; + &lt;/result&gt; + &lt;result item="2"&gt; + &lt;zipEntry&gt;name in ZIP archive of second item&lt;/zipEntry&gt; + &lt;fileName&gt;filename of second item&lt;/fileName&gt; + &lt;/result&gt; + ... + &lt;/results&gt; + </pre> + + <br/> + The output of each unzipped item is returned in XML as follows when + collectFileContents is true: + <pre> + &lt;results count="num_of_items"&gt; + &lt;result item="1"&gt; + &lt;zipEntry&gt;name in ZIP archive of first item&lt;/zipEntry&gt; + &lt;fileContent&gt;content of first item&lt;/fileContent&gt; + &lt;/result&gt; + &lt;result item="2"&gt; + &lt;zipEntry&gt;name in ZIP archive of second item&lt;/zipEntry&gt; + &lt;fileContent&gt;content of second item&lt;/fileContent&gt; + &lt;/result&gt; + ... + &lt;/results&gt; + </pre> + <br/> + By default, this pipe takes care + to produce unique file names, as follows. When the filename within + the archive is: + <pre>&lt;basename&gt; + "." + &lt;extension&gt;</pre> + then the extracted filename (path omitted) becomes + <pre>&lt;basename&gt; + &lt;unique number&gt; + "." + &lt;extension&gt;</pre> + <br/> + + + + + + + + + + + + Generate WSDL of parent or specified adapter. + + + + + + + + + + + + XmlValidator that will read the XSD's to use from a WSDL. As it extends the + SoapValidator is will also add the SOAP envelope XSD. + + + + + + + + + + + + Perform an XQuery. + + + + + + + + + + + + Selects an forward, based on XPath evaluation + + + + + + + + + + + + Selects an exitState, based on either the content of the input message, by means + of a XSLT-stylesheet, the content of a session variable or, by default, by returning the name of the root-element. + + + + + + + + + + + + Pipe that validates the input message against a XML Schema. + + + + + + + + + + + + <code>Pipe</code> that checks the well-formedness of the input message. + If <code>root</code> is given then this is also checked. + + + + + + + + + + + + Perform an XSLT transformation with a specified stylesheet. + + + + + + + + + + + + Sends a message to a Sender for each entry of its input, that must be an ZipInputStream. The input of the pipe must be one of: + <ul> + <li>String refering to a filename</li> + <li>File</li> + <li>InputStream</li> + </ul> + The message sent each time to the sender is the filename of the entry found in the archive. + The contents of the archive is available as a Stream or a String in a session variable. + + <br/> + + + + + + + + + + + + Pipe that creates a ZIP archive (on action close). + <p> + A chain of zipWriterPipes can be used to create a ZIP archive. You can use the pipe with different actions (see specified below). + Action <code>CLOSE</code> will generate the ZIP archive which is returned as the pipe ouput. + </p> + + + + + + + + + + + + + + + + + + + + sets URL to the pascal file with label-constants generated by the ADIOS-utility. Default: nnrscons.pas + + + + + Transformation direction. Default: Adios2Xml + + + + + + + + Sets name of the rekenbox to be called + + + + + Name of the SessionKey to retrieve the rekenbox name from + + + + + Sets the name of the forward used when no conversion to XML was performed, because the input was already XML. Default: noconversion + + + + + + + + + + + + + + + + Charset to be used to encode the given input string Default: UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default: ENCODE + + + + + + + + Character encoding to be used to when reading input from strings for direction=encode or writing data for direction=decode. + + + + + (Only used when direction=encode) Defines separator between lines. Special values: <code>auto</code>: platform default, <code>dos</code>: crlf, <code>unix</code>: lf Default: auto + + + + + (Only used when direction=encode) Each line of encoded data will be at most of the given length (rounded down to nearest multiple of 4). If linelength &lt;= 0, then the output will not be divided into lines Default: 76 + + + + + + + + + + + If true, then this pipe can provide an OutputStream to the previous pipe, to write its output to. Can be used to switch this streaming off for debugging purposes Default: set by appconstant streaming.auto + + + + + + + + + + + + + + + + Directory in which the transformed file(s) is stored + + + + + Directory to which the inputfile is moved in case an error occurs + + + + + Number of copies held of a file with the same name. Backup files have a dot and a number suffixed to their name. If set to 0, no backups will be kept. Default: 5 + + + + + If set <code>true</code>, the destination file will be deleted if it already exists Default: false + + + + + If set <code>true</code>, the file processed will deleted after being processed, and not stored Default: false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If set <code>true</code> the original block is stored under the session key <code>originalBlock</code>. Default: false + + + + + If set to <code>false</code>, the inputstream is not closed after it has been used. Default: true + + + + + Characterset used for reading file or inputstream" Default: UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + Stylesheet to apply to each message, before sending it + + + + + Alternatively: xpath-expression to create stylesheet from + + + + + + Only valid for xpathexpression Default: text + + + + + + + + Force the transformer generated from the xpath-expression to omit the xml declaration Default: true + + + + + + + + + + + + + + + Controls multiline behaviour. When set to a value greater than 0, it specifies the number of rows send, in a one block, to the sender. Default: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + For asynchronous communication, the server side may either use the messageID or the correlationID + in the correlationID field of the reply message. Use this property to set the behaviour of the reply-listener. Default: CORRELATIONID + + + + + + + + Stylesheet to extract correlationid from message + + + + + XPath expression to extract correlationid from message + + + + + Namespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitions + + + + + Key of a PipelineSession-variable. If specified, the value of the PipelineSession variable is used as input for the XPathExpression or stylesheet, instead of the current input message + + + + + Stylesheet to extract label from message + + + + + XPath expression to extract label from message + + + + + Namespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitions + + + + + XPath expression to extract audit trail from message + + + + + Namespace defintions for auditTrailXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitions + + + + + Key of a PipelineSession-variable. If specified, the value of the PipelineSession variable is used as audit trail (instead of the default 'no audit trail) + + + + + If set <code>true</code>, the input of the Pipe is used to extract audit trail, correlationid and label (instead of the wrapped input) Default: true + + + + + Next to common usage in AbstractPipe, also strings in the error/logstore are masked + + + + + (Only used when hideRegex is not empty and only applies to error/logstore) Default: all + + + + + + + + If set <code>true</code>, the XML Well-Formedness of the result is checked Default: false + + + + + If set, besides the XML Well-Formedness the root element of the result is checked to be equal to the value set + + + + + The message (e.g. 'receiver timed out') that is returned when the time listening for a reply message + exceeds the timeout, or in other situations no reply message is received. + + + + + The number of times a processing attempt is retried after a timeout or an exception is caught or after an incorrect reply is received (see also <code>retryXPath</code>) Default: 0 + + + + + The starting number of seconds waited after an unsuccessful processing attempt before another processing attempt is made. Each next retry this interval is doubled with a upper limit of <code>retryMaxInterval</code> Default: 1 + + + + + The maximum number of seconds waited after an unsuccessful processing attempt before another processing attempt is made Default: 600 + + + + + XPath expression evaluated on each technical successful reply. Retry is done if condition returns true + + + + + Namespace defintions for retryXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitions + + + + + If the previous call was a timeout, the maximum time <i>in seconds</i> after this timeout to presume the current call is also a timeout. Default: 0 + + + + + If set, the pipe returns a message from a file, instead of doing the regular process + + + + + If not empty, a TimeoutException is thrown when the result equals this value (for testing purposes only) + + + + + If not empty, a PipeRunException is thrown when the result equals this value (for testing purposes only) + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + The SQL query text to be excecuted each time sendMessage() is called. When not set, the input message is taken as the query + + + + + JNDI name of datasource to be used, can be configured via jmsRealm, too Default: jdbc.datasource.default + + + + + Named parameters will be auto detected by default. Every string in the query which equals <code>?{paramname}</code> will be replaced by the value of the corresponding parameter. The parameters don't need to be in the correct order and unused parameters are skipped. + + + + + Remove trailing blanks from all result values. Default: true + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + When set <code>true</code>, exclusive row-level locks are obtained on all the rows identified by the select statement (e.g. by appending ' FOR UPDATE NOWAIT SKIP LOCKED' to the end of the query) Default: false + + + + + when set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1 + + + + + If true, then select queries are executed in a way that avoids taking locks, e.g. with isolation mode 'read committed' instead of 'repeatable read'. Default: false + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database Default: false + + + + + controls whether blobdata is stored compressed in the database Default: true + + + + + + + + + + + + + + + + Controls multiline behaviour. If set to a value greater than 0, it specifies the number of rows send in a block to the sender. Default: 0 (one line at a time, no prefix of suffix) + + + + + If <code>startPosition &gt;= 0</code>, this field contains the start position of the key in the current record (first character is 0); + A sequence of lines with the same key is put in one block and send to the sender. Cannot be used in combination with blockSize. Default: -1 + + + + + If <code>endPosition &gt;= startPosition</code>, this field contains the end position of the key in the current record Default: -1 + + + + + If <code>true</code>, all items in a block are sent at once. If set false, items are sent individually, potentially leveraging block enabled sending capabilities of the sender Default: true + + + + + If <code>combineBlocks = true</code>, this string is inserted at the start of each block. Requires <code>blockSize</code> or <code>startPosition</code> and <code>endPosition</code> to be set too. Default: &lt;block&gt; + + + + + If <code>combineBlocks = true</code>, this string is inserted at the end of the set of lines. Requires <code>blockSize</code> or <code>startPosition</code> and <code>endPosition</code> to be set too. Default: &lt;/block&gt; + + + + + This string is inserted at the start of each item + + + + + This string is appended at the end of each item + + + + + Escape XML characters in each item Default: false + + + + + + + + Stylesheet to apply to each message, before sending it + + + + + Alternatively: xpath-expression to create stylesheet from + + + + + + Only valid for xpathexpression Default: text + + + + + + + + Force the transformer generated from the xpath-expression to omit the xml declaration Default: true + + + + + + + + + + + + + + + + + + + + + + + + + + + + Character encoding to be used to encode message before calculating checksum. + + + + + Type of checksum to be calculated Default: MD5 + + + + + + + + + + + + + + + + + + + files that match this pattern will be deleted. parameters of the pipe are applied to this pattern. if this attribute is not set, the input of the pipe is interpreted as the file to be removed + + + + + session key that contains the pattern of files to be deleted, only used if filePattern is not set + + + + + time in milliseconds after last modification that must have passed at least before a file will be deleted (set to negative value to disable) Default: 0 + + + + + when <code>true</code>, files in subdirectories will be deleted, too Default: false + + + + + when <code>true</code>, empty subdirectories will be deleted, too Default: false + + + + + filter of files to delete. if not set and a directory is specified, all files in the directory are interpreted to be deleted + + + + + filter of files to be excluded for deletion + + + + + Minimal age of file <i>in milliseconds</i>, to avoid deleting a file while it is still being written (only used when wildcard is set) (set to 0 to disable) Default: 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + when set <code>true</code> the string values to compare are considered to be xml strings and before the actual compare both xml strings are transformed to a canonical form Default: false + + + + + + + + + + + + + + + + if <code>true</code> the pipe compresses, otherwise it decompress Default: false + + + + + required if result is a file, the pattern for the result filename. Can be set with variables e.g. {file}.{ext}.zip in this example the {file} and {ext} variables are resolved with sessionKeys with the same name + + + + + flag indicates whether the message is the content or the path to a file with the contents. for multiple files use ';' as delimiter Default: false + + + + + required if result is a file, the directory in which to store the result file + + + + + flag indicates whether the result must be written to the message or to a file (filename = message) Default: false + + + + + the pattern for the zipentry name in case a zipfile is read or written + + + + + + + + + + + + + + + + + + + + + CICS userId of account perform operation + + + + + Password corresponding with userId + + + + + Optional URL of XSLT-stylesheet to apply to message before calling proxy + + + + + Optional URL of XSLT-stylesheet to apply to result of proxy + + + + + Optional URL of XML-Schema of proxy input message. If specified it is used to validate the input message + + + + + + + + + + + + + + + + + Default: 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name of the sessionkey that holds a stream to the certificate of the issuer who signed the crl. the steam is closed after reading + + + + + + + + + + + + + + + + Specifies if the first line should be treated as header or as data Default: true + + + + + Comma separated list of header names. If set, then <code>fileContainsHeader</code> defaults to false. If not set, headers are taken from the first line + + + + + Character that separates fields Default: , + + + + + When set, character casing will be changed for the header + + + + + + + + Format the XML output in easy legible way + + + + + + + + + + + + + + + + The time <i>in milliseconds</i> the thread will be put to sleep Default: 5000 + + + + + + + + + + + + + + + + when <code>true</code>, a piperunexception is thrown. otherwise the output is only logged as an error (and returned in a xml string with 'error' tags) Default: true + + + + + timeout in seconds of obtaining a result Default: 30 + + + + + + + + + + + + + + + + + the name of the table that contains the mapping Default: mapping + + + + + the name of the column labels are stored in Default: label + + + + + the name of the column source values are stored in Default: valuein + + + + + the name of the column destination values are stored in Default: valueout + + + + + + + + + + + + + + + + + + + + + substring to start translation + + + + + substring to end translation + + + + + + + + + + when set <code>true</code> special characters in <code>substringstart</code> and <code>substringend</code> are first translated to their xml equivalents Default: false + + + + + + + + + + + + + + + + when <code>true</code>, a piperunexception is thrown. otherwise the output is only logged as an error (and no rollback is performed). Default: true + + + + + + + + + + + + + + + + Should values between ${ and } be resolved. If true, the search order of replacement values is: + system properties (1), pipelinesession variables (2), application properties (3). Default: false + + + + + Name of the file containing the result message. + + + + + Name of the session key containing the file name of the file containing the result message. + + + + + Returned message. + + + + + If set, every occurrence of this attribute's value is replaced by the value of <code>replaceTo</code>. + + + + + See <code>replaceFrom</code>. + + + + + File name of XSLT stylesheet to apply. + + + + + When set <code>true</code>, parameter replacement matches <code>name-of-parameter</code>, not <code>${name-of-parameter}</code> Default: false + + + + + + + + + + + + + + + + comma separated list of attachment properties to list + + + + + comma separated list of attachment properties not to list. When specified, 'onlyProperties' is ignored + + + + + + + + + + + + + + + + Element name (not an XPath-expression), qualified via attribute <code>namespaceDefs</code>, used to determine the 'root' of elements to be iterated over, i.e. the root of the set of child elements. + When empty, the pipe will iterate over each direct child element of the root + + + + + Element name (not an XPath-expression), qualified via attribute <code>namespaceDefs</code>, used to determine the type of elements to be iterated over, i.e. the element name of each of the child elements. + When empty, the pipe will iterate over any direct child element of the root or specified containerElement + + + + + XPath-expression used to determine the set of elements to be iterated over, i.e. the set of child elements. When empty, the effective value is \/*\/*, i.e. the pipe will iterate over each direct child element of the root. + Be aware that memory consumption appears to increase with file size when this attribute is used. When possible, use containerElement and/or targetElement instead. + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) XSLT processor 2.0 or 3.0 will be used, supporting XPath 2.0 or 3.0 respectively, otherwise an XSLT processor 1.0 (org.apache.xalan), supporting XPath 1.0. N.B. Be aware that setting this other than 1 might cause the input file being read as a whole in to memory, as XSLT Streaming is currently only supported by the XSLT Processor that is used for xsltVersion=1 Default: 1 + + + + + If set <code>true</code> namespaces (and prefixes) are removed from the items just before forwarding them to the sender. N.B. This takes place <strong>after</strong> the transformation for <code>elementXPathExpression</code> if that is specified + + + + + + + + + + + + + + + + Key of the session variable to retrieve the output message from. When left unspecified, the input message is used as the key of the session variable + + + + + <ul><li><code>string</code>: renders the contents</li><li><code>map</code>: converts a Map&lt;String, String&gt; object to a xml-string (&lt;items&gt;&lt;item name='...'&gt;...&lt;/item&gt;&lt;item name='...'&gt;...&lt;/item&gt;&lt;/items&gt;)</li></ul> Default: string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + URL or base of URL to be used. When multiple URLs are defined (comma separated list), the first URL is used of which the server has an active state + + + + + alias used to obtain credentials for authentication to host + + + + + username used in authentication to host + + + + + password used in authentication to host + + + + + when set to <code>true</code>, temporary queues are skipped Default: false + + + + + when set to <code>true</code>, the length of the queue message is returned instead of the queue message self (when parameter <code>queueName</code> is not empty) Default: false + + + + + + + + + + + + + + + + + Hash Algorithm to use Default: HmacSHA256 + + + + + + + + Character set to use for converting the secret from String to bytes Default: UTF-8 + + + + + Method to use for converting the hash from bytes to String Default: Base64 + + + + + + + + The secret to hash with. Only used if no parameter secret is configured. The secret is only used when there is no authAlias specified, by attribute or parameter + + + + + authAlias to retrieve the secret from (password field). Only used if no parameter authAlias is configured + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reference to the session variable whose value is to be increased + + + + + amount to increment the value. Can be set from the attribute or the parameter 'increment' Default: 1 + + + + + + + + + + + + + + + + the j2ee role to check. + + + + + + + + + + + + + + + + forward returned when <code>'true'</code> Default: then + + + + + forward returned when 'false' Default: else + + + + + return elseforward when input is empty (or thenforward) Default: true + + + + + + + + + + + + + + + + Direction of the transformation. Default: JSON2XML + + + + + + + + When direction is JSON2XML, it wraps a root element around the converted message. + When direction is XML2JSON, it includes the name of the root element as a key in the converted message. Default: TRUE when JSON2XML and FALSE when XML2JSON + + + + + Format the output in easy legible way (currently only for XML) + + + + + + + + + + + + + + + + + + + + + When <code>true</code>, the xml result of the transformation is converted back to json Default: true + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions Default: j=http://www.w3.org/2013/XSL/json + + + + + + + + If true, then this pipe will process the XSLT while streaming in a different thread. Can be used to switch streaming xslt off for debugging purposes Default: set by appconstant xslt.streaming.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheet + + + + + For xpathExpression only Default: text + + + + + + + + If set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text. + Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + + + + + + + + + If true, then this pipe will process the XSLT while streaming in a different thread. Can be used to switch streaming xslt off for debugging purposes Default: set by appconstant xslt.streaming.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheet + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some other use cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + If left empty, an the xpathExpression will match any namespace + + + + + For xpathExpression only Default: text + + + + + + + + If set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text. + Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + + + + + + + + + + + + sets transformation direction. Possible values + <ul> + <li>"Xml2Label": transform an XML file to ascii</li> + <li>"Label2Xml": transform an ascii file to XML</li> + </ul> + default: None + + + + + + + + + + + + + + + + whether or not to write results to the logfile (testtool4&lt;instance.name&gt;) Default: false + + + + + whether or not to write results to system out Default: false + + + + + Set to <code>true</code> when the pipeline is triggered by a user (e.g. using an http based listener + that will add a securityHandler session key) and you don't want the listener to check whether the user + is autorised and/or you want the enforce the roles as configured for the Ladybug Default: false + + + + + Set to <code>true</code> to enable Ladybug's report generator for the duration of the scheduled report runs + then revert it to its original setting Default: false + + + + + When set, reports with a full path (path + name) that matches with the specified regular expression are skipped. For example, \"/Unscheduled/.*\" or \".*SKIP\". + + + + + + + + + + + + + + + + Default: false + + + + + Default: false + + + + + The scenario sub directory to execute + + + + + the larva log level: one of [debug], [pipeline messages prepared for diff], [pipeline messages], [wrong pipeline messages prepared for diff], [wrong pipeline messages], [step passed/failed], [scenario passed/failed], [scenario failed], [totals], [error] Default: wrong pipeline messages + + + + + Default: 100ms + + + + + the larva timeout Default: 10000 + + + + + + + + + + + + + + + + + + + + + + + + + + + when <code>true</code>, the memberOf attribute is also searched in all the found members Default: true + + + + + + + + + + + Url to context to search in, e.g. 'ldaps://DOMAIN.EXT'. + + + + + Host part of ldapProviderUrl. Only used when ldapProviderUrl not specified + + + + + Port of ldapProviderUrl. Only used when ldapProviderUrl not specified + + + + + Indication to use ldap or ldaps in ldapProviderUrl. Only used when ldapProviderUrl not specified Default: false + + + + + BaseDN, e.g. CN=USERS,DC=DOMAIN,DC=EXT Default: false + + + + + Alias used to obtain credentials to connect to ldap server + + + + + Username used to obtain credentials to connect to ldap server + + + + + Password used to obtain credentials to connect to ldap server + + + + + + PipeForward used when an exception is caught + + + + + + + + + + + + + + + + The dn of the group to search in when the parameter dnSearchIn is not set + + + + + The dn of the member to search for when the parameter dnFind is not set + + + + + when <code>true</code>, the member attribute is also searched in all the found members Default: true + + + + + + + + + + + + + + + + the folder that serves as the root of this virtual filesystem + + + + + + + + + + + If parameter [action] is set, then the attribute action value will be overridden with the value of the parameter. + + + + + + + + Filename to operate on. If not set, the parameter filename is used. If that is not set either, the input is used + + + + + Destination for move, copy or rename. If not set, the parameter destination is used. If that is not set either, the input is used + + + + + Folder that is scanned for files when action=list. When not set, the root is scanned + + + + + If set <code>true</code>, the folder to create, write, move or copy the file to is created if it does not exist Default: false + + + + + If set <code>true</code>, for actions create, move, copy or rename, the destination file is overwritten if it already exists Default: false + + + + + For action=append: If set to a positive number, the file is rotated each day, and this number of files is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + For action=append: If set to a positive number, the file is rotated when it has reached the specified size, and the number of files specified in numberOfBackups is kept. Size is specified in plain bytes, suffixes like 'K', 'M' or 'G' are not recognized. The inputFolder must point to the directory where the file resides Default: 0 + + + + + For the actions write and append, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions move, copy, delete and list + + + + + Filter of files to be excluded when looking in inputFolder. Works with actions move, copy, delete and list + + + + + If set to <code>true</code> then the folder and the content of the non empty folder will be deleted. + + + + + If set to <code>true</code> then the system specific line separator will be appended to the file after executing the action. Works with actions write and append Default: false + + + + + Charset to be used for read and write action + + + + + If set to true then the folder will be deleted if it is empty after processing the action. Works with actions delete, readDelete and move + + + + + OutputFormat Default: XML + + + + + + + + + + + + + + + + + + + If set <code>true</code> the ThreadContext parameters will be exported from the current PipeLine up in the call tree. Default: false + + + + + + + + + + + + + + + + + + + + + Action to be taken when pipe is executed. + + + + + + + + Recipients to be used during encryption stage. If multiple, separate with ';' (semicolon) + + + + + Emails of the senders. This will be used to verify that all the senders have signed the given message. + If not set, and the action is verify; this pipe will validate that at least one person has signed. + For signing action, it needs to be set to the email that was used to generate the private key + "that is being used for this process. + + + + + Path to the private key. It will be used when signing or decrypting. + + + + + Password for the private key. + + + + + Path to the recipient's public key. It will be used for encryption and verification. + + + + + + + + + + + + + + + + whether the securerandom algorithm is to be used (slower) Default: true + + + + + the lowercase characters to use Default: ('a'..'z') + + + + + the uppercase characters to use Default: ('A'..'Z') + + + + + the numbers to use Default: ('0'..'9') + + + + + the signs to use Default: (;:_%$#@!&gt;&lt;) + + + + + the number of lowercase characters in the generated password Default: 2 + + + + + the number of digits in the generated password Default: 2 + + + + + the number of sign characters in the generated password Default: 2 + + + + + the number of uppercase characters in the generated password Default: 2 + + + + + + + + + + + + + + + + name of sessionkey that holds the hash which will be used to validate the password (input of the pipe) + + + + + + + + + + + + + + + + + + + + + + + session key that contains the document that the attachments will be attached to. Only used when action is set to 'combine' Default: defaultMainDocumentSessionKey + + + + + session key that contains the filename to be attached. Only used when the action is set to 'combine' Default: defaultFileNameToAttachSessionKey + + + + + fonts folder to load the fonts. If not set then a temporary folder will be created to extract fonts from fonts.zip everytime. Having fontsDirectory to be set will improve startup time + + + + + + charset to be used to decode the given input message in case the input is not binary but character stream Default: UTF-8 + + + + + aspose license location including the file name. It can also be used without license but there some restrictions on usage. If license is in resource, license attribute can be license file name. If the license is in somewhere in filesystem then it should be full path to file including filename and starting with file://// prefix. classloader.allowed.protocols property should contain 'file' protocol + + + + + when sets to false, converts the file including the attachments attached to the main file. when it is true, saves each attachment separately Default: false + + + + + directory to save resulting pdf files after conversion. If not set then a temporary directory will be created and the conversion results will be stored in that directory. + + + + + when set to true, external resources, such as stylesheets and images found in HTML pages, will be loaded from the internet Default: false + + + + + + + + + + + + + + + + Key of the session variable to store the input in + + + + + Value to store in the <code>pipeLineSession</code>. If not set, the input of the pipe is stored + + + + + + + + + + + + + + + + Key of session variable to store systemdate in Default: systemDate + + + + + Format to store date in Default: full ISO format: DateUtils.fullIsoFormat + + + + + Time zone to use for the formatter Default: the default time zone for the JVM + + + + + Set to a time <i>in milliseconds</i> to create a value that is different to the previous returned value by a PutSystemDateInSession pipe in + this virtual machine or <code>-1 to disable</code>. The thread will sleep for the specified time before recalculating a new value. Set the + timezone to a value without Daylight Saving Time (like GMT+1) to prevent this pipe to generate two equal value's when the clock is set back. + <b>note:</b> When you're looking for a GUID parameter for your XSLT it might be better to use + &lt;param name=&quot;guid&quot; pattern=&quot;{hostname}_{uid}&quot;/&gt;, see Parameter. Default: -1 + + + + + If <code>true</code>, the date/time returned will always be 2001-12-17 09:30:47 (for testing purposes only). It is overridden by the value of the pipelinesession key <code>stub4testtool.fixeddate</code> when it exists Default: false + + + + + If set to 'true' then current time stamp in millisecond will be stored in the sessionKey Default: false + + + + + + + + + + + + + + + + Fixed name of the rekenbox (or wrapper) to be called. If empty, the name is determined from the request + + + + + Directory on server where rekenbox-executable can be found + + + + + Rekenbox template directory on server + + + + + Directory on server where input and output files are (temporarily) stored + + + + + Format of commandline of rekenbox. Possible values + "straight": rekenbox is called like: rekenbox.exe inputFileName outputFileName templateDir + "switches": rekenbox is called like: rekenbox.exe /IinputFileName /UoutputFileName /PtemplateDir + "redirected": rekenbox is called like: rekenbox.exe inputFileName templateDir > outputFileName; (This method has not been fully tested) + + + + + Extension of rekenbox-executable + + + + + If <code>true</code>, input and output files are removed after the call to the rekenbox is finished + + + + + Key in pipeLineSession to store rekenbox name in + + + + + First part of filenames that communicate requests and replies to rekenbox + + + + + Maximal number that will be concatenated to dataFilenamePrefix + + + + + + + + + + + + + + + + Name of the cache from which items are to be removed + + + + + XPath expression to extract cache key from request message + + + + + Output type of xpath expression to extract cache key from request message, must be 'xml' or 'text' Default: text + + + + + + + + Namespace defintions for keyXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + + + + + Stylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messages + + + + + Session key to use as input for transformation of request message to key by keyXPath or keyStyleSheet + + + + + + + + + + + + + + + + name of the key of the entry in the <code>pipelinesession</code> to remove. if this key is empty the input message is interpretted as key. for multiple keys use ',' as delimiter + + + + + + + + + + + + + + + + Sets the string that is searched for. + + + + + Sets the string that will replace each of the occurrences of the find-string. + + + + + sets the string the representation in find and replace of the line separator + + + + + Replace all non XML chars (not in the <a href="http://www.w3.org/TR/2006/REC-xml-20060816/#NT-Char">character range as specified by the XML specification</a>) with replaceNonValidXmlCharacters Default: false + + + + + character that will replace each non valid xml character (empty string is also possible) (use &amp;#x00bf; for inverted question mark) Default: empty string + + + + + Whether to allow Unicode supplementary characters (like a smiley) during replaceNonValidXmlCharacters Default: false + + + + + + + + + + + + + + + + + + + + + Shared folder name in the samba server + + + + + the smb share username + + + + + the smb share password + + + + + alias used to obtain credentials for the smb share + + + + + in case the user account is bound to a domain + + + + + controls whether hidden files are seen or not Default: false + + + + + + + + + + + + + + + + + + Type of the authentication either 'NTLM' or 'SPNEGO'. + When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGO + + + + + + + + alias used to obtain credentials for the smb share + + + + + the smb share username + + + + + the smb share password + + + + + domain, in case the user account is bound to a domain + + + + + + Key Distribution Center, typically hosted on a domain controller. + Stored in <code>java.security.krb5.kdc</code> + + + + + Kerberos Realm, case sensitive. Typically upper case and the same as the domain name. + An Active Directory domain acts as a Kerberos Realm. + Stored in <code>java.security.krb5.realm</code> + + + + + + + + + + + + + + + + + + + + + Name of the SapSystem used by this object + + + + + One of: begin, commit, rollback, release + + + + + Session key under which information is stored + + + + + + + + + + + + + + + + + + + + + + + + + + + + + URL or base of URL to be used. When multiple URLs are defined (comma separated list), the first URL is used of which the server has an active state + + + + + alias used to obtain credentials for authentication to host + + + + + username used in authentication to host + + + + + password used in authentication to host + + + + + The name of the queue which is used for browsing one queue + + + + + Protocol of Tibco service to be called + + + + + + + + Maximum time in milliseconds to wait for a reply. 0 means no timeout. (Only for messageProtocol=RR) Default: 5000 + + + + + If empty then derived from queueName (if $messagingLayer='P2P' then '$applicationFunction' else '$operationName_$operationVersion) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Action to be taken when pipe is executed. Default: SIGN + + + + + + + + The signing algorithm Default: ALGORITHM_DEFAULT + + + + + Cryptography provider + + + + + if true, the signature is (expected to be) base64 encoded Default: true + + + + + Keystore to obtain signing key + + + + + Type of keystore, can be pkcs12 or pem Default: pkcs12 + + + + + + + + Alias used to obtain keystore password + + + + + Keystore password + + + + + Alias in keystore + + + + + Alias used to obtain keystoreAlias password + + + + + KeystoreAlias password + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + + + + + + + + + + + + + + + + + Number of bytes (for binary input) or characters (for character input) to skip. An empty byte array or string is returned when skip is larger then the length of the input Default: 0 + + + + + If length>=0 only these number of bytes (for binary input) or characters (for character input) is returned. Default: -1 + + + + + + + + + + + + + + + + If set, each record has to end with this string. If a line read doesn't end with this string more lines are added (including line separators) until the total record ends with the given string + + + + + Marks the start of a new record. If set, a new record is started when this line is read. + + + + + If set to <code>false</code>, the inputstream is not closed after it has been used Default: true + + + + + + + + + + + + + + + + (only used for parameter <code>httprequest</code>) when true the first part is not put in a session key but returned to the pipeline (as the result of this pipe) Default: false + + + + + (only used when <code>extractfirststringpart=true</code>) the session key to put the xml in with info about the stored parts Default: <code>multipartxml</code> + + + + + (only used for parameter <code>httprequest</code>) when true parts are checked for antivirus scan returncode. these antivirus scan parts have been added by another application (so the antivirus scan is not performed in this pipe). for each file part an antivirus scan part have been added by this other application (directly after this file part) Default: false + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) name of antivirus scan status parts Default: <code>antivirus_rc</code> + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) name of antivirus scan message parts Default: <code>antivirus_msg</code> + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) message of antivirus scan parts which indicates the antivirus scan passed Default: <code>pass</code> + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) when true and the antivirusfailed forward is specified and the antivirus scan did not pass, a soap fault is returned instead of only a plain error message Default: false + + + + + (only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) if not empty and the antivirusfailed forward is specified and the antivirus scan did not pass, the error message (or soap fault) is stored in this session key and the first string part is returned to the pipeline + + + + + + + + + + + + + + + + The xml tag to encapsulate the text in + + + + + Controls whether the lines of the input are places in separated &lt;line&gt; tags Default: false + + + + + Replace all non xml chars (not in the <a href="http://www.w3.org/tr/2006/rec-xml-20060816/#nt-char">character range as specified by the xml specification</a>) + with the inverted question mark (0x00bf) Default: true + + + + + Controls whether the text to encapsulate should be put in a cdata section Default: true + + + + + + + + + + + + + + + + Set the maximum number of characters of a block Default: 160 + + + + + If true, try to break up the message at spaces, instead of in the middle of words Default: false + + + + + + + + + + + + + + + + Format of generated string. Default: alphanumeric + + + + + + + + + + + + + + + + + + + Directory to extract the archive to + + + + + Sessionkey with a directory value to extract the archive to + + + + + If set <code>false</code>, only a small summary (count of items in zip) is returned Default: true + + + + + If set <code>true</code>, the contents of the files in the zip are returned in the result xml message of this pipe. Please note this can consume a lot of memory for large files or a large number of files Default: false + + + + + Comma separated list of file extensions. Files with an extension which is part of this list will be base64 encoded. All other files are assumed to have UTF-8 when reading it from the zip and are added as escaped xml with non-unicode-characters being replaced by inverted question mark appended with #, the character number and ; Default: false + + + + + If set <code>false</code>, a suffix is added to the original filename to be sure it is unique Default: false + + + + + If set <code>true</code>, the path of the zip entry will be preserved. Otherwise, the zip entries will be extracted to the root folder Default: false + + + + + If set <code>true</code>, validation of directory is ignored Default: false + + + + + + + + + + + + + + + + either parent (adapter of pipeline which contains this pipe) or input (name of adapter specified by input of pipe), adapter must be within the same Configuration Default: parent + + + + + + + + + + + + + + + + name of the file (resource) on the classpath to read the xquery from + + + + + name of the file on the file system to read the xquery from + + + + + + + + + + + + + + + + a string to compare the result of the xpathexpression (or the input-message itself) to. if not specified, a non-empty result leads to the 'then'-forward, an empty result to 'else'-forward + + + + + forward returned when <code>'true'</code> Default: then + + + + + forward returned when 'false' Default: else + + + + + xpath expression to be applied to the input-message. if not set, no transformation is done + + + + + regular expression to be applied to the input-message (ignored if xpathexpression is specified). the input-message matching the given regular expression leads to the 'then'-forward + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan) Default: 2 + + + + + namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. + + + + + controls namespace-awareness of XSLT transformation Default: true + + + + + + + + + + + + + + + + stylesheet may return a string representing the forward to look up Default: <i>a stylesheet that returns the name of the root-element</i> + + + + + xpath-expression that returns a string representing the forward to look up. It's possible to refer to a parameter (which e.g. contains a value from a sessionkey) by using the parameter name prefixed with $ + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + + + + + Forward returned when the pipename derived from the stylesheet could not be found. + + + + + Forward returned when the content, on which the switch is performed, is empty. if <code>emptyforwardname</code> is not specified, <code>notfoundforwardname</code> is used. + + + + + If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0 + + + + + Selected forward name will be stored in the specified session key. + + + + + Session key that will be used to get the forward name from. + + + + + controls namespace-awareness of XSLT transformation Default: true + + + + + + + + + + + + + + + + Session key used to store contents of each zip entry Default: zipdata + + + + + If set to <code>false</code>, a string containing the contents of the entry is placed under the session key, instead of the inputstream to the contents Default: true + + + + + If set to <code>false</code>, the inputstream is not closed after it has been used Default: true + + + + + Charset used when reading the contents of the entry (only used if streamingContents=false) Default: utf-8 + + + + + If set to <code>true</code>, a possible bytes order mark (BOM) at the start of the file is skipped (only used for encoding uft-8) Default: false + + + + + + + + + + + + + + + + Only for action='write': If set to <code>true</code>, the fields 'crc-32', 'compressed size' and 'uncompressed size' in the zip entry file header are set explicitly (note: compression ratio is zero) Default: false + + + + + + + + + + + Collectors must be opened before you can write content to them, after it's closed you can no longer write to it. Default: WRITE + + + + + + + + Session key used to refer to collection. Must be specified with another value if multiple CollectorPipes are active at the same time in the same session Default: collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1. This method first stores all database jobs that can are found in the Quartz Scheduler in a Map. + 2. It then loops through all records found in the database. + 3. If the job is found, remove it from the Map and compares it with the already existing scheduled job. + Only if they differ, it overwrites the current job. + If it is not present it add the job to the scheduler. + 4. Once it's looped through all the database jobs, loop through the remaining jobs in the Map. + Since they have been removed from the database, remove them from the Quartz Scheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the job + + + + + Description of the job + + + + + CRON expression that determines the frequency of execution. + Can <code>not</code> be used in combination with Interval. + + + + + Triggers the Job at the specified number of milliseconds. Keep cronExpression empty in order to use interval. + Value <code>0</code> may be used to run once at startup of the application. + A value of 0 in combination with function 'sendMessage' will set dependencyTimeout on the IbisLocalSender to -1 to keep waiting indefinitely instead of 60 seconds for the adapter to start. + + + + + Number of threads that may execute concurrently Default: 1 + + + + + Number of messages displayed in ibisconsole Default: 10 + + + + + + + + + + + + + + + + The number of seconds the database driver will wait for a statement to execute. If the limit is exceeded, a TimeoutException is thrown. 0 means no timeout Default: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The SQL query text to be executed + + + + + JNDI name of datasource to be used Default: jdbc.datasource.default + + + + + The number of seconds the database driver will wait for a statement to execute. If the limit is exceeded, a TimeoutException is thrown. 0 means no timeout Default: 0 + + + + + + + + + + + + + + + + + + + + + Configuration on which job operates + + + + + Adapter on which job operates + + + + + Receiver on which job operates + + + + + + + + + + + + + + + + + + + + + + + + + + JavaListener to send the message to + + + + + message to be send into the pipeline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IMonitorAdapter that uses a sender to send its message. + + + + + + + + + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A Trigger that starts its life with type = ALARM. The type of the trigger can be changed dynamically. + + + + + + + + + + + + A Trigger that starts its life with type = CLEARING. The type of the trigger can be changed dynamically. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shared HTTPSession, implements SharedResource so it can be set in the Configuration.xml + + + + + + + + + + + + + + + + + + + The functional name of the object. + + + + + + + + Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If the Configuration should automatically start all Adapters and Jobs. + + + + + Configurations should be wired through Spring, which in turn should call #setBeanName(String). + Once the ConfigurationContext has a name it should not be changed anymore, hence + super.setBeanName(String) only sets the name once. + If not created by Spring, the setIdCalled flag in AbstractRefreshableConfigApplicationContext wont be set, allowing the name to be updated. + + The DisplayName will always be updated, which is purely used for logging purposes. + + + + + + + + + + Renders the contents of the first node (in combination with xslt or xpath). Please note that + if there are child nodes, only the contents are returned, use <code>XML</code> if the xml tags are required + + + + + Renders an xml-nodeset as an xml-string (in combination with xslt or xpath). This will include the xml tags + + + + + Renders the CONTENTS of the first node as a nodeset + that can be used as such when passed as xslt-parameter (only for XSLT 1.0). + Please note that the nodeset may contain multiple nodes, without a common root node. + N.B. The result is the set of children of what you might expect it to be... + + + + + Renders XML as a DOM document; similar to <code>node</code> + with the distinction that there is always a common root node (required for XSLT 2.0) + + + + + Converts the result to a Date, by default using formatString <code>yyyy-MM-dd</code>. + When applied as a JDBC parameter, the method setDate() is used + + + + + Converts the result to a Date, by default using formatString <code>HH:mm:ss</code>. + When applied as a JDBC parameter, the method setTime() is used + + + + + Converts the result to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code>. + When applied as a JDBC parameter, the method setTimestamp() is used + + + + + Similar to <code>DATETIME</code>, except for the formatString that is <code>yyyy-MM-dd HH:mm:ss.SSS</code> by default + + + + + Converts the result from a XML formatted dateTime to a Date. + When applied as a JDBC parameter, the method setTimestamp() is used + + + + + Converts the result to a Number, using decimalSeparator and groupingSeparator. + When applied as a JDBC parameter, the method setDouble() is used + + + + + Converts the result to an Integer + + + + + Converts the result to a Boolean + + + + + Forces the parameter value to be treated as binary data (e.g. when using a SQL BLOB field). + When applied as a JDBC parameter, the method setBinaryStream() or setBytes() is used + + + + + Forces the parameter value to be treated as character data (e.g. when using a SQL CLOB field). + When applied as a JDBC parameter, the method setCharacterStream() or setString() is used + + + + + + + + + + + + + + + + + + + + + + + + + + + (Only for produces) Attempts to detect the MimeType as well as charset when not known + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fire & Forget protocol + + + + + Request-Reply protocol + + + + + + + + + + + + + + + + + + + + + + + auto or auto_acknowledge: Specifies that the session is to automatically acknowledge consumer receipt of + messages when message processing is complete. + + + + + client or client_acknowledge: Specifies that the consumer is to acknowledge all messages delivered in this session. + The Frank application will acknowledge all messages processed correctly. The skipping of the acknowledgement of messages + processed in error will cause them to be redelivered, thus providing an automatic retry. + + + + + dups or dups_ok_acknowledge: Specifies that the session is to "lazily" acknowledge the + delivery of messages to the consumer. "Lazy" means that the consumer can delay the acknowledgment + of messages to the server until a convenient time; meanwhile the server might redeliver messages. + This mode reduces the session overhead. If JMS fails, the consumer may receive duplicate messages. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clear + + + + + Safe(SSL protocol only) + + + + + Confidential(SSL protocol only) + + + + + Private + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + list files in a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + + + + + show info about a single file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + + + + + read a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + + + + + like <code>read</code>, but deletes the file after it has been read + + + + + move a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to a folder specified by attribute <code>destination</code> or parameter <code>destination</code> + + + + + copy a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to a folder specified by attribute <code>destination</code> or parameter <code>destination</code> + + + + + delete a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + + + + + create a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + + + + + remove a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + + + + + Creates file and writes contents, specified by parameter <code>contents</code> or input message, to a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message. + At least one of the parameters must be specified. The missing parameter defaults to the input message. For streaming operation, the parameter <code>filename</code> must be specified. + + + + + (only for filesystems that support 'append') append contents, specified by parameter <code>contents</code> or input message, to a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message. + At least one of the parameters must be specified. The missing parameter defaults to the input message. For streaming operation, the parameter <code>filename</code> must be specified. + + + + + create empty file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + + + + + change the name of a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to the value specified by attribute <code>destination</code> or parameter <code>destination</code> + + + + + (for MailFileSystems only:) forward an existing file, specified by parameter <code>contents</code> or input message, to a file, to an email address specified by attribute <code>destination</code> or parameter <code>destination</code> + + + + + Specific to FileSystemSenderWithAttachments + + + + + + + + + Create a document + + + + + Delete a document + + + + + Get the content of a document (and optional the properties) + + + + + Perform a query that returns properties + + + + + Update the properties of an existing document + + + + + Get the (meta)data of a folder or document + + + + + Determine action based on the incoming CmisEvent + + + + + + + + + + + + + + + + For queries that return data + + + + + For queries that update a BLOB + + + + + For queries that update a CLOB + + + + + To execute Oracle PL/SQL package + + + + + For queries that return no data + + + + + + + + + + + + + + + Fire & Forget protocol + + + + + Request-Reply protocol + + + + + + + + + use the generated messageId as the correlationId in the selector for response messages + + + + + set the correlationId of the pipeline as the correlationId of the message sent, and use that as the correlationId in the selector for response messages + + + + + do not automatically set the correlationId of the message sent, but use use the value found in that header after sending the message as the selector for response messages + + + + + + + + + The input message is sent unchanged as character data, like text, XML or JSON, with possibly parameter data appended + + + + + The input message is sent unchanged as binary data + + + + + Yields a x-www-form-urlencoded form entity + + + + + Yields a multipart/form-data form entity + + + + + Yields a MTOM multipart/related form entity + + + + + + + + + + + + + + + + + + + + + + + + + + + Read the contents of an entry. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>optional xml-inputmessage containing attributes to be returned</li> + </ul> + + + + + Create an attribute or an entry. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to create</li> + <li>xml-inputmessage containing attributes to create</li> + </ul> + + + + + Update an attribute or an entry. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to update</li> + <li>xml-inputmessage containing attributes to update</li> + <li>optional parameter 'newEntryName', new RDN of entry</li> + </ul> + + + + + Delete an attribute or an entry. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to delete</li> + <li>when manipulationSubject is set to attribute: xml-inputmessage containing attributes to be deleted</li> + </ul> + + + + + Search for an entry in the direct children of the specified root. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>parameter 'filterExpression', specifying the entries searched for</li> + <li>optional attribute 'attributesReturned' containing attributes to be returned</li> + </ul> + + + + + Search for an entry in the complete tree below the specified root. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>parameter 'filterExpression', specifying the entries searched for</li> + <li>optional attribute 'attributesReturned' containing attributes to be returned</li> + </ul> + + + + + Get a list of the direct children of the specifed root. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>optional attribute 'attributesReturned' containing attributes to be returned</li> + </ul> + + + + + Get a copy of the complete tree below the specified root. Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of entry to read</li> + <li>optional attribute 'attributesReturned' containing attributes to be returned</li> + </ul> + + + + + Check username and password against LDAP specifying principal and credential using parameters. Configuration requirements: + <ul> + <li>parameter 'principal', resolving to RDN of user who's password should be verified</li> + <li>parameter 'credentials', password to verify</li> + </ul> + + + + + Typical user change-password operation (one of the two methods to modify the unicodePwd attribute in AD (http://support.microsoft.com/kb/263991)). Configuration requirements: + <ul> + <li>parameter 'entryName', resolving to RDN of user who's password should be changed</li> + <li>parameter 'oldPassword', current password, will be encoded as required by Active Directory (a UTF-16 encoded Unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server. It's advised to set attribute hidden to true for parameter.</li> + <li>parameter 'newPassword', new password, will be encoded as required by Active Directory (a UTF-16 encoded Unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server. It's advised to set attribute hidden to true for parameter.</li> + </ul> + + + + + + + + + + + + + + + + + + + + + + to mask the entire string + + + + + to only mask the first half of the string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Don't stop the receiver when an error occurs. + + + + + If an error occurs (eg. connection is lost) the receiver will be stopped and marked as ERROR + Once every <code>recover.adapters.interval</code> it will be attempted to (re-) start the receiver. + + + + + Stop the receiver when an error occurs. + + + + + + + + + + + + + + + Support a current transaction; create a new one if none exists. + + + + + Support a current transaction; execute non-transactionally if none exists. + + + + + Support a current transaction; throw an exception if no current transaction exists. + + + + + Create a new transaction, suspending the current transaction if one exists. + + + + + Do not support a current transaction; rather always execute non-transactionally. + + + + + Do not support a current transaction; throw an exception if a current transaction exists. + + + + + + + + + Temporary + + + + + Permanent + + + + + + + + + + + No wrapping or unwrapping will be done + + + + + Try to auto-detect the value + + + + + + + + + + + + + + + ifsa2tibco + + + + + Regular + + + + + Business Integration Services + + + + + + + + + + + + + + + + + + + + + + + + + + + + Transform an Adios-XML file to ASCII-Adios + + + + + Transform an ASCII-Adios file to Adios-XML + + + + + + + + + + + + + + + + + + + + + + + + + Gzip format; also used when direction is compress and resultIsContent=<code>true</code> + or when direction is decompress and messageIsContent=<code>true</code> + + + + + Zip format; also used when direction is compress and resultIsContent=<code>false</code> + or when direction is decompress and messageIsContent=<code>false</code> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Encrypts the given input. Requires the publicKey to be set to recipients public key, and recipients to be set to recipients email addresses. + + + + + Encrypts and then signs the given input. On top of the requirements for Encrypt action, signing requires senders to bet set for user's email; and secretKey & secretPassword to be set to private key's path and it's password (password is optional, if private key does not have protection). + + + + + Decrypts the given input. Requires secretKey and secretPassword to bet set to private key's path and it's password. Just like signing, password is not required, if private key does not have protection. + + + + + Decrypts and verifies the given input. On top of the requirements for Decrypt action, verification expects list of senders' email's and corresponding public keys. However, sender emails does not have to be set, and in that case, this pipe will only validate that someone signed the input. + + + + + + + + + + + + + + + Request-Reply + + + + + Fire & Forget + + + + + + + + + signs the input + + + + + verifies a signature + + + + + + + + + the UUID will not have a fixed length which will be about 42 + + + + + a UUID with fixed length 31 will be generated + + + + + + + + + To initiate a new collection + + + + + Add an item to to an existing collection + + + + + Combination of WRITE and CLOSE: Add an item to to an existing collection, then finalize the collection + + + + + Finalize the collection + + + + + + + + + No logging + + + + + Logs information from adapter level messages + + + + + Logs information from pipe messages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Folder that is scanned for files. If not set, the root is scanned + + + + + Folder where files are stored <i>while</i> being processed + + + + + Folder where files are stored <i>after</i> being processed + + + + + Folder where files are stored <i>after</i> being processed, in case the exit-state was not equal to <code>success</code> + + + + + Folder where messages from the error folder can be put on Hold, temporarily + + + + + Folder where a copy of every file that is received is stored + + + + + If set to <code>true</code>, the folders to look for files and to move files to when being processed and after being processed are created if they are specified and do not exist Default: false + + + + + If set <code>true</code>, the file processed will be deleted after being processed, and not stored Default: false + + + + + Number of copies held of a file with the same name. Backup files have a dot and a number suffixed to their name. If set to 0, no backups will be kept. Default: 0 + + + + + If set <code>true</code>, the destination file will be deleted if it already exists Default: false + + + + + If <code>true</code>, the file modification time is used in addition to the filename to determine if a file has been seen before Default: false + + + + + Minimal age of file <i>in milliseconds</i>, to avoid receiving a file while it is still being written Default: 1000 + + + + + Key of Property to use as messageId. If not set, the filename of the file as it was received in the inputFolder is used as the messageId Default: for MailFileSystems: Message-ID + + + + + If set <code>true</code>, no browsers for process folders are generated Default: false + + + + + Filter of files to look for in inputFolder e.g. '*.inp'. + + + + + Filter of files to be excluded when looking in inputFolder. + + + + + If set, an XML with all message properties is provided under this key + + + + + Name of the JMS destination (queue or topic) to use for sending replies. If <code>useReplyTo</code>=<code>true</code>, + the sender specified reply destination takes precedence over this one. + + + + + Value of the JMSType field of the reply message Default: not set by application + + + + + Controls mode that reply messages are sent with Default: NON_PERSISTENT + + + + + + + + Sets the priority that is used to deliver the reply message. Ranges from 0 to 9. Effectively the default priority is set by JMS to 4, <code>-1</code> means not set and thus uses the JMS default Default: -1 + + + + + Time <i>in milliseconds</i> after which the reply-message will expire Default: 0 + + + + + + + + sessionKey to store the SOAP header of the incoming message Default: soapHeader + + + + + Type of the messageing destination. + This function also sets the <code>useTopicFunctions</code> field, + that controls whether Topic functions are used or Queue functions. Default: QUEUE + + + + + + + + If not transacted, the way the application informs the JMS provider that it has successfully received a message. Default: auto + + + + + + + + Only applicable for topics Default: DURABLE + + + + + + + + Used when destinationType = QUEUE. + The JNDI-name of the queueConnectionFactory to use to connect to a <code>queue</code> if #isTransacted() returns <code>false</code>. + The corresponding connection factory should be configured not to support XA transactions. + + + + + Used when destinationType = TOPIC. + The JNDI-name of the connection factory to use to connect to a <i>topic</i> if #isTransacted() returns <code>false</code>. + The corresponding connection factory should be configured not to support XA transactions. + + + + + Transform the value of the correlationid to a hexadecimal value if it starts with id: (preserving the id: part). + Useful when sending messages to MQ which expects this value to be in hexadecimal format when it starts with id:, otherwise generating the error: MQJMS1044: String is not a valid hexadecimal number Default: false + + + + + Prefix to check before executing correlationIdToHex. If empty (and correlationIdToHex equals true) all correlationid's are transformed, this is useful in case you want the entire correlationId to be transformed (for example when the receiving party doesn't allow characters like a colon to be present in the correlationId). Default: id: + + + + + The time <i>in milliseconds</i> it takes for the message to expire. If the message is not consumed before, it will be lost. Must be a positive value for request/reply type of messages, 0 disables the expiry timeout Default: 0 + + + + + If set (>=0) and the length of the correlationId exceeds this maximum length, the correlationId is trimmed from the left side of a string to this maximum length Default: -1 + + + + + If set, the value of this attribute is used as a selector to filter messages. Default: 0 (unlimited) + + + + + If set <code>false</code>, the destinationName is used directly instead of performing a JNDI lookup Default: true + + + + + maps to the field context.security_authentication + + + + + username to connect to context, maps to context.security_credentials + + + + + class to use as initial context factory + + + + + Sets the value of providerURL + + + + + maps to the field context.security_protocol + + + + + maps to the field context.url_pkg_prefixes + + + + + username to connect to context, maps to context.security_principal + + + + + authentication alias, may be used to override principal and credential-settings + + + + + + + when true, then PollingListener container will execute getRawMessage() only when hasRawMessageAvailable() has returned true. This avoids rolling back a lot of XA transactions, that appears to be problematic on MS SQL Server Default: true + + + + + (only used when <code>peekUntransacted</code>=<code>true</code>) peek query to determine if the select query should be executed. Peek queries are, unlike select queries, executed without a transaction and without a rowlock Default: selectQuery + + + + + + JNDI name of datasource to be used, can be configured via jmsRealm, too Default: jdbc.datasource.default + + + + + informs the sender that the obtained connection is from a pool (and thus connections are reused and never closed) Default: true + + + + + Alias of the table, that can be used in selectCondition Default: t + + + + + (optional) Comma separated list of fields determining the order in which messages are processed + + + + + (optional) Maximum length of strings to be stored in commentField, or -1 for unlimited Default: 1000 + + + + + Additional condition for a row to belong to this TableListener. Impacts all process states + + + + + Index of the field in the ImportParameterList of the RFC function that contains the correlationId Default: 0 + + + + + Name of the field in the ImportParameterList of the RFC function that contains the correlationId + + + + + Index of the field in the ImportParameterList of the RFC function that contains the whole request message contents Default: 0 + + + + + Name of the field in the ImportParameterList of the RFC function that contains the whole request message contents + + + + + Index of the field in the ExportParameterList of the RFC function that contains the whole reply message contents Default: 0 + + + + + Name of the field in the ExportParameterList of the RFC function that contains the whole reply message contents + + + + + Controls wheter the returned package content is db2 format or xml format. + Possible values: + <ul> + <li>select:</li> xml content s expected + <li><i>anything else</i>:</li> db2 content is expected + </ul> + + + + + When <code>true</code>, the value of the first column of the first row (or the startrow) is returned as the only result, as a simple non-xml value Default: false + + + + + When <code>true</code> and <code>scalar</code> is also <code>true</code>, but returns no value, one of the following is returned: + <ul> + <li>'[absent]' no row is found</li> + <li>'[null]' a row is found, but the value is a SQL-NULL</li> + <li>'[empty]' a row is found, but the value is a empty string</li> + </ul> Default: false + + + + + Value used in result as contents of fields that contain no value (sql-null) Default: <i>empty string</i> + + + + + Query that can be used to obtain result of side-effect of update-query, like generated value of sequence. Example: SELECT mysequence.currval FROM dual + + + + + Named parameters will be auto detected by default. Every string in the query which equals <code>?{paramname}</code> will be replaced by the value of the corresponding parameter. The parameters don't need to be in the correct order and unused parameters are skipped. + + + + + when <code>true</code>, the result contains besides the returned rows also includes a header with information about the fetched fields Default: application default (true) + + + + + Remove trailing blanks from all result values. Default: true + + + + + When <code>true</code>, the result of sendMessage is the reply of the request. Default: true + + + + + When set to <code>false</code>, the Outputstream is not closed after BLOB or CLOB has been written to it Default: true + + + + + Charset used when reading a stream (that is e.g. going to be written to a BLOB or CLOB). When empty, the stream is copied directly to the BLOB, without conversion + + + + + If true and scalar=false, multiline indented XML is produced Default: false + + + + + Parameter that is used, if specified and not empty, to determine the destination. Overrides the <code>destination</code> attribute + + + + + Name of the queue the reply is expected on. This value is sent in the JMSReplyTo-header with the message. Default: a dynamically generated temporary destination + + + + + (Only used when <code>synchronous</code>=<code>true</code> and <code>replyToName</code> is set). Indicates whether the server uses the correlationId from the pipeline, the correlationId from the message or the messageId in the correlationId field of the reply. This requires the sender to have set the correlationId at the time of sending. Default: MESSAGEID + + + + + + + + Value of the JMSType field Default: not set by application + + + + + Sets the priority that is used to deliver the message. Ranges from 0 to 9. Defaults to -1, meaning not set. Effectively the default priority is set by JMS to 4 Default: -1 + + + + + SOAP encoding style URI + + + + + SOAP service namespace URI + + + + + Name of parameter containing SOAP header Default: soapHeader + + + + + session key to store SOAP header of reply Default: replySoapHeader + + + + + A list of JMS headers of the response to add to the PipeLineSession + + + + + When set larger than 0 and used as a child of an IteratingPipe, then the database calls are made in batches of this size. Only for queryType=other. Default: 0 + + + + + Parameter that is used to obtain URL; overrides url-attribute. Default: url + + + + + The HTTP Method used to execute the request Default: <code>GET</code> + + + + + + + + Content-Type (superset of mimetype + charset) of the request, for <code>POST</code>, <code>PUT</code> and <code>PATCH</code> methods Default: text/html, when postType=<code>RAW</code> + + + + + Charset of the request. Typically only used on <code>PUT</code> and <code>POST</code> requests. Default: UTF-8 + + + + + Comma separated list of parameter names which should be set as HTTP headers + + + + + Comma separated list of parameter names that should not be added as request or body parameter, or as HTTP header, if they are empty. Set to '*' for this behaviour for all parameters + + + + + If <code>true</code>, the HTML response is transformed to XHTML Default: false + + + + + If set, the status code of the HTTP response is put in the specified sessionKey and the (error or okay) response message is returned. + Setting this property has a side effect. If a 4xx or 5xx result code is returned and if the configuration does not implement + the specific forward for the returned HTTP result code, then the success forward is followed instead of the exception forward. + + + + + + The maximum number of concurrent connections Default: 10 + + + + + The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 + + + + + Endpoint to obtain OAuth accessToken. If <code>authAlias</code> or <code>username</code>( and <code>password</code>) are specified, + then a PasswordGrant is used, otherwise a ClientCredentials grant. The obtained accessToken will be added to the regular requests + in an HTTP Header 'Authorization' with a 'Bearer' prefix. + + + + + If set to a non-negative value, then determines the time (in seconds) after which the token will be refreshed. Otherwise the token + will be refreshed when it is half way its lifetime as defined by the <code>expires_in</code> clause of the token response, + or when the regular server returns a 401 status with a challenge. + If not specified, and the accessTokens lifetime is not found in the token response, the accessToken will not be refreshed preemptively. Default: -1 + + + + + Alias used to obtain client_id and client_secret for authentication to <code>tokenEndpoint</code> + + + + + Client_id used in authentication to <code>tokenEndpoint</code> + + + + + Client_secret used in authentication to <code>tokenEndpoint</code> + + + + + Space or comma separated list of scope items requested for accessToken, e.g. <code>read write</code>. Only used when <code>tokenEndpoint</code> is specified + + + + + if set true, clientId and clientSecret will be added as Basic Authentication header to the tokenRequest, instead of as request parameters + + + + + Proxy host + + + + + Proxy port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy username + + + + + Proxy password + + + + + Proxy realm + + + + + Create a pre-emptive login context for the proxy connection(s). + + + + + Disables the use of cookies, making the sender completely stateless Default: false + + + + + resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + + + + + Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Type of truststore Default: jks + + + + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true + + + + + If true, besides http status code 200 (OK) also the code 301 (MOVED_PERMANENTLY), 302 (MOVED_TEMPORARILY) and 307 (TEMPORARY_REDIRECT) are considered successful Default: false + + + + + Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true + + + + + Used when StaleChecking=<code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms + + + + + Maximum Time to Live for connections in the pool. No connection will be re-used past its timeToLive value. Default: 900 s + + + + + Maximum Time for connection to stay idle in the pool. Connections that are idle longer will periodically be evicted from the pool Default: 10 s + + + + + Secure socket protocol (such as 'SSL' and 'TLS') to use when a SSLContext object is generated. Default: SSL + + + + + If set <code>true</code> the input is written to the log file, at DEBUG level Default: false + + + + + userId on the smtphost + + + + + value of the subject: header if not specified in message itself + + + + + value of the from: header if not specified in message itself + + + + + When this name is used, it will be followed by a number which is equal to the node's position Default: attachment + + + + + when messageType is not specified defaultMessageType will be used Default: text/plain + + + + + when messageBase64 is not specified defaultMessageBase64 will be used Default: false + + + + + NDR return address when mail cannot be delivered. This adds a Return-Path header Default: MAIL FROM attribute + + + + + Comma separated list of domains to which mails can be send, domains not on the list are filtered out. Empty allows all domains + + + + + Optional identifier for this storage, to be able to share the physical storage between a number of receivers and pipes. + + + + + Possible values are <code>E</code> (error store), <code>M</code> (message store), <code>L</code> (message log for Pipe) or <code>A</code> (message log for Receiver).<br/> + Receiver will always set type to <code>E</code> for errorStorage and always set type to <code>A</code> for messageLog. SenderPipe will set type to <code>L</code> for messageLog (when type isn't specified).<br/> + See MessageStoreSender for type <code>M</code>. Default: <code>E</code> for errorStorage on Receiver<br/><code>A</code> for messageLog on Receiver<br/><code>L</code> for messageLog on Pipe + + + + + The name of the column slotids are stored in Default: SLOTID + + + + + The name of the column types are stored in Default: TYPE + + + + + The name of the column that stores the hostname of the server Default: HOST + + + + + The name of the sequence used to generate the primary key, for DBMSes that use sequences, like Oracle Default: seq_ibisstore + + + + + If set to <code>true</code>, checks are performed if the table exists and is properly created Default: false + + + + + The type of the column message themselves are stored in + + + + + The type of the column that contains the primary key of the table + + + + + The type of the column the timestamps are stored in + + + + + The type of the columns messageId and correlationId, slotId and comments are stored in. N.B. <code>(100)</code> is appended for id's, <code>(1000)</code> is appended for comments. + + + + + The time (in days) to keep the record in the database before making it eligible for deletion by a cleanup process. when set to -1, the record will live on forever Default: 30 + + + + + Schema owner to be used to check the database Default: &lt;current_schema&gt; (only for oracle) + + + + + If set to <code>true</code>, the full message is stored with the log. Can be set to <code>false</code> to reduce table size, by avoiding to store the full message Default: true + + + + + Timeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default) + + + + + The <code>transactionAttribute</code> declares transactional behavior of execution. It applies both to database transactions and XA transactions. + The pipeline uses this to start a new transaction or suspend the current one when required. + For developers: it is equal to <a href=\"https://docs.oracle.com/javaee/7/tutorial/transactions003.htm\">EJB transaction attribute</a>. + Possible values for transactionAttribute: + <table border=\"1\"> + <tr><th>transactionAttribute</th><th>callers Transaction</th><th>Pipeline excecuted in Transaction</th></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Required</td> <td>none</td><td>T2</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">RequiresNew</td> <td>none</td><td>T2</td></tr> + <tr><td>T1</td> <td>T2</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Mandatory</td> <td>none</td><td>error</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">NotSupported</td><td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>none</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Supports</td> <td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>T1</td></tr> + <tr><td colspan=\"1\" rowspan=\"2\">Never</td> <td>none</td><td>none</td></tr> + <tr><td>T1</td> <td>error</td></tr> + </table> Default: Supports + + + + + + + + If set, input is taken from this session key, instead of regular input + + + + + If set, this fixed value is taken as input, instead of regular input + + + + + If set and the input is empty, this fixed value is taken as input + + + + + If set <code>true</code>, the result of the pipe is replaced with the original input (i.e. the input before configured replacements of <code>getInputFromSessionKey</code>, <code>getInputFromFixedValue</code> or <code>emptyInputReplacement</code>) + + + + + If set, the pipe result is copied to a session key that has the name defined by this attribute. The + pipe result is still written as the output message as usual. + + + + + The maximum number of threads that may messages simultaneously. + A value of 0 indicates an unlimited number of threads. Default: 0 + + + + + If set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment) + + + + + If set, the character data in this element is stored under a session key and in the message replaced by a reference to this session key: {sessionkey: + <code>elementToMoveSessionKey</code> + } + + + + + (Only used when <code>elementToMove</code> is set) Name of the session key under which the character data is stored Default: ref_ + the name of the element + + + + + Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. 'adapter;pipeline;pipe') + + + + + If durationThreshold >=0 and the duration of the message processing exceeded the value specified (in milliseconds) the message is logged informatory to be analyzed Default: -1 + + + + + + If set <code>true</code>, compacted messages in the result are restored to their original format (see also #setElementToMove(java.lang.String)) + + + + + + when set to <code>true</code> a record is written to the security log when the pipe has finished successfully + + + + + (only used when <code>writeToSecLog=true</code>) comma separated list of keys of session variables that is appended to the security log record + + + + + when set, the value in AppConstants is overwritten (for this pipe only) + + + + + Regular expression to mask strings in the log. For example, the regular expression <code>(?&lt;=&lt;password&gt;).*?(?=&lt;/password&gt;)</code> + will replace every character between keys '&lt;password&gt;' and '&lt;/password&gt;'. <b>note:</b> this feature is used at adapter level, + so one pipe affects all pipes in the pipeline (and multiple values in different pipes are merged) + + + + + Identical to the <code>soapBody</code> attribute except that it's used for the output message instead of the input message. For more information see <a href=\"#note1\">note 1</a> + + + + + Name of the child element of the SOAP header, or a comma separated list of names to choose from (only one is allowed) (wsdl generator will use the first element) (use empty value to allow an empty soap header, for example to allow element x and an empty soap header use: x,) + + + + + Can be used when the SOAP header element exists multiple times + + + + + SOAP envelope XSD version to use Default: 1.1 + + + + + + + + Allow plain XML, without a SOAP Envelope, too. Be aware that setting this true inhibits the capability to test for exit specific response roots in SOAP messages Default: false + + + + + Ignore namespaces in the input message which are unknown. If the XSD used has elementFormDefault=unqualified, it is necessary to set this to true. Be aware, however, that + this will inhibit the validator to detect validation failures of namespaceless subelements of the SoapBody. Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + + + + + Pairs of URI references (one for the namespace name, and one for a hint as to the location of a schema document defining names for that namespace name).<br/> + The syntax is the same as for schemaLocation attributes in instance documents: e.g, "http://www.example.com file%20name.xsd".<br/> + The user can specify more than one XML Schema in the list.<br/> + <b>Note</b> that spaces are considered separators for this attributed. This means that, for example, spaces in filenames should be escaped to %20. + + + + + A uri reference as a hint as to the location of a schema document with no target namespace. + + + + + Name of the response root element, or a comma separated list of element names. The validation fails if the root element is not present in the list. N.B. for WSDL generation only the first element is used + + + + + Enable full schema grammar constraint checking, including checking which + may be time-consuming or memory intensive. Currently, particle unique + attribution constraint checking and particle derivation restriction + checking are controlled by this option. + <p> + see property + http://apache.org/xml/features/validation/schema-full-checking + </p> Default: <code>false</code> + + + + + Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: false + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason + + + + + If set <code>true</code>, the input is assumed to be the name of the file to be validated. Otherwise the input itself is validated Default: false + + + + + If set <code>true</code>, the namespace from schemalocation is added to the schema document as targetnamespace Default: false + + + + + Comma separated list of schemaLocations which are excluded from an import or include in the schema document + + + + + If set <code>true</code>, the comparison for importedSchemaLocationsToIgnore is done on base filename without any path Default: false + + + + + Comma separated list of namespaces which are excluded from an import or include in the schema document + + + + + If set <code>true</code>, send warnings to logging and console about syntax problems in the configured schema('s). + Alternatively, warnings can be switched off using suppression properties XSD_VALIDATION_WARNINGS_SUPPRESS_KEY, XSD_VALIDATION_ERROR_SUPPRESS_KEY and XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY Default: true + + + + + If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false + + + + + If set to <code>1.0</code>, Xerces's previous XML Schema factory will be used, which would make all XSD 1.1 features illegal. The default behaviour can also be set with <code>xsd.processor.version</code> property. Default: <code>1.1</code> + + + + + Key of session variable to store the name of the root element + + + + + Key of session variable to store the namespace of the root element + + + + + Session key for retrieving a schema + + + + + Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + + + + + Key of session variable to store number of items processed, i.e. the position or index in the set of items to be processed. When handling the first item, the value will be 1. + + + + + The maximum number of items returned. The (default) value of 0 means unlimited, all available items will be returned. Special forward maxItemsReached can be configured to follow Default: 0 + + + + + Expression evaluated on each result and forwards to [stopConditionMet] forward if configured. + Iteration stops if condition returns anything other than an empty result. To test for the root element to have an attribute 'finished' with the value 'yes', the expression <code>*[@finished='yes']</code> can be used. + This can be used if the condition to stop can be derived from the item result. To stop after a maximum number of items has been processed, use <code>maxItems</code>. + Previous versions documented that <code>position()=2</code> could be used. This is not working as expected; Use maxItems instead + + + + + When <code>true</code> ignore any exception thrown by executing sender Default: false + + + + + Controls whether all the results of each iteration will be collected in one result message. If set <code>false</code>, only a small summary is returned. + Setting this attributes to <code>false</code> is often required to enable processing of very large files. N.B. Remember in such a case that setting transactionAttribute to NotSupported might be necessary too Default: true + + + + + Postprocess each partial result, to remove the xml-declaration, as this is not allowed inside an xml-document Default: false + + + + + When <code>true</code> the input is added to the result in an input element Default: false + + + + + When <code>true</code> duplicate input elements are removed, i.e. they are handled only once Default: false + + + + + When set <code>true</code>, the calls for all items are done in parallel (a new thread is started for each call). when collectresults set <code>true</code>, this pipe will wait for all calls to finish before results are collected and pipe result is returned Default: false + + + + + Maximum number of child threads that may run in parallel simultaneously (combined total of all threads calling this pipe). Use <code>0</code> for unlimited threads Default: 0 + + + + + + + + + + + + + + + If defined and empty or false, then this element and all its children are ignored + + + + + + + + + + + + + diff --git a/src/main/configurations/Translate/Configuration_GeefLijstZaakdocumenten_Lv01.xml b/src/main/configurations/Translate/Configuration_GeefLijstZaakdocumenten_Lv01.xml index be86d99b0..47a1c5ad1 100644 --- a/src/main/configurations/Translate/Configuration_GeefLijstZaakdocumenten_Lv01.xml +++ b/src/main/configurations/Translate/Configuration_GeefLijstZaakdocumenten_Lv01.xml @@ -41,9 +41,9 @@ + + elementXPathExpression="/ZgwZaakInformatieObjecten/ZgwZaakInformatieObject"> diff --git a/src/main/configurations/Translate/Configuration_SetResultaatAndStatus.xml b/src/main/configurations/Translate/Configuration_SetResultaatAndStatus.xml index 47869aa89..629564862 100644 --- a/src/main/configurations/Translate/Configuration_SetResultaatAndStatus.xml +++ b/src/main/configurations/Translate/Configuration_SetResultaatAndStatus.xml @@ -364,10 +364,10 @@ + + elementXPathExpression="ZgwStatussen/ZgwStatus"> diff --git a/src/main/java/nl/nn/adapterframework/parameters/Parameter.java b/src/main/java/nl/nn/adapterframework/parameters/Parameter.java index 05ec3e836..924eb95b3 100644 --- a/src/main/java/nl/nn/adapterframework/parameters/Parameter.java +++ b/src/main/java/nl/nn/adapterframework/parameters/Parameter.java @@ -15,6 +15,9 @@ */ package nl.nn.adapterframework.parameters; +import static nl.nn.adapterframework.functional.FunctionalUtil.logValue; +import static nl.nn.adapterframework.util.StringUtil.hide; + import java.io.IOException; import java.text.DateFormat; import java.text.DecimalFormat; @@ -27,7 +30,6 @@ import java.util.Base64; import java.util.Date; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -38,6 +40,7 @@ import javax.xml.transform.dom.DOMResult; import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.context.ApplicationContext; import org.w3c.dom.Document; @@ -64,7 +67,6 @@ import nl.nn.adapterframework.util.DateUtils; import nl.nn.adapterframework.util.DomBuilderException; import nl.nn.adapterframework.util.EnumUtils; -import nl.nn.adapterframework.util.LogUtil; import nl.nn.adapterframework.util.Misc; import nl.nn.adapterframework.util.StringUtil; import nl.nn.adapterframework.util.TransformerPool; @@ -110,8 +112,8 @@ * @ff.parameters Parameters themselves can have parameters too, for instance if a XSLT transformation is used, that transformation can have parameters. */ public class Parameter implements IConfigurable, IWithParameters { - protected Logger log = LogUtil.getLogger(this); - private @Getter ClassLoader configurationClassLoader = Thread.currentThread().getContextClassLoader(); + private static final Logger LOG = LogManager.getLogger(Parameter.class); + private final @Getter ClassLoader configurationClassLoader = Thread.currentThread().getContextClassLoader(); private @Getter @Setter ApplicationContext applicationContext; public static final String TYPE_DATE_PATTERN="yyyy-MM-dd"; @@ -290,13 +292,13 @@ public void configure() throws ConfigurationException { if (paramList!=null) { paramList.configure(); } - OutputType outputType=getType() == ParameterType.XML || getType()==ParameterType.NODE || getType()==ParameterType.DOMDOC ? OutputType.XML : OutputType.TEXT; - boolean includeXmlDeclaration=false; + OutputType outputType = getType() == ParameterType.XML || getType() == ParameterType.NODE || getType() == ParameterType.DOMDOC ? OutputType.XML : OutputType.TEXT; + boolean includeXmlDeclaration = false; - transformerPool=TransformerPool.configureTransformer0(this, getNamespaceDefs(), getXpathExpression(),getStyleSheetName(), outputType,includeXmlDeclaration,paramList,getXsltVersion()); + transformerPool = TransformerPool.configureTransformer0(this, getNamespaceDefs(), getXpathExpression(), getStyleSheetName(), outputType, includeXmlDeclaration, paramList, getXsltVersion()); } else { - if (paramList!=null && StringUtils.isEmpty(getPattern())) { - throw new ConfigurationException("Parameter ["+getName()+"] can only have parameters itself if a styleSheetName, xpathExpression or pattern is specified"); + if (paramList != null && StringUtils.isEmpty(getPattern())) { + throw new ConfigurationException("Parameter [" + getName() + "] can only have parameters itself if a styleSheetName, xpathExpression or pattern is specified"); } } if (isRemoveNamespaces()) { @@ -305,8 +307,8 @@ public void configure() throws ConfigurationException { if (StringUtils.isNotEmpty(getSessionKeyXPath())) { tpDynamicSessionKey = TransformerPool.configureTransformer(this, getNamespaceDefs(), getSessionKeyXPath(), null, OutputType.TEXT,false,null); } - if(getType()==null) { - log.info("parameter ["+getName()+" has no type. Setting the type to ["+ParameterType.STRING+"]"); + if (getType() == null) { + LOG.info("parameter [{} has no type. Setting the type to [{}]", this::getType, ()->ParameterType.STRING); setType(ParameterType.STRING); } if(StringUtils.isEmpty(getFormatString())) { @@ -417,7 +419,7 @@ public boolean consumesSessionVariable(String sessionKey) { */ public Object getValue(ParameterValueList alreadyResolvedParameters, Message message, PipeLineSession session, boolean namespaceAware) throws ParameterException { Object result = null; - if (log.isDebugEnabled()) log.debug("Calculating value for Parameter ["+getName()+"]"); + LOG.debug("Calculating value for Parameter [{}]", this::getName); if (!configured) { throw new ParameterException("Parameter ["+getName()+"] not configured"); } @@ -453,8 +455,7 @@ public Object getValue(ParameterValueList alreadyResolvedParameters, Message mes // larva can produce the sourceObject as list List items = (List) sourceObject; XmlBuilder itemsXml = new XmlBuilder("items"); - for (Iterator it = items.iterator(); it.hasNext();) { - String item = it.next(); + for (String item : items) { XmlBuilder itemXml = new XmlBuilder("item"); itemXml.setValue(item); itemsXml.addSubElement(itemXml); @@ -464,8 +465,7 @@ public Object getValue(ParameterValueList alreadyResolvedParameters, Message mes // larva can produce the sourceObject as map Map items = (Map) sourceObject; XmlBuilder itemsXml = new XmlBuilder("items"); - for (Iterator it = items.keySet().iterator(); it.hasNext();) { - String item = it.next(); + for (String item : items.keySet()) { XmlBuilder itemXml = new XmlBuilder("item"); itemXml.addAttribute("name", item); itemXml.setValue(items.get(item)); @@ -478,19 +478,19 @@ public Object getValue(ParameterValueList alreadyResolvedParameters, Message mes sourceMsg = Message.asMessage(sourceMsg.getContext().get(getContextKey())); } if (!sourceMsg.isEmpty()) { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] using sessionvariable ["+requestedSessionKey+"] as source for transformation"); + LOG.debug("Parameter [{}] using sessionvariable [{}] as source for transformation", this::getName, ()-> requestedSessionKey); source = sourceMsg.asSource(); } else { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] sessionvariable ["+requestedSessionKey+"] empty, no transformation will be performed"); + LOG.debug("Parameter [{}] sessionvariable [{}] empty, no transformation will be performed", this::getName, ()-> requestedSessionKey); } } } else if (StringUtils.isNotEmpty(getPattern())) { String sourceString = formatPattern(alreadyResolvedParameters, session); if (StringUtils.isNotEmpty(sourceString)) { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] using pattern ["+getPattern()+"] as source for transformation"); + LOG.debug("Parameter [{}] using pattern [{}] as source for transformation", this::getName, this::getPattern); source = XmlUtils.stringToSourceForSingleUse(sourceString, namespaceAware); } else { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] pattern ["+getPattern()+"] empty, no transformation will be performed"); + LOG.debug("Parameter [{}] pattern [{}] empty, no transformation will be performed", this::getName, this::getPattern); } } else { if (StringUtils.isNotEmpty(getContextKey())) { @@ -532,17 +532,17 @@ public Object getValue(ParameterValueList alreadyResolvedParameters, Message mes * N.B. this order differs from transformed parameters. */ if (StringUtils.isNotEmpty(requestedSessionKey)) { - result=session.get(requestedSessionKey); + result = session.get(requestedSessionKey); if (result instanceof Message && StringUtils.isNotEmpty(getContextKey())) { result = ((Message)result).getContext().get(getContextKey()); } - if (log.isDebugEnabled() && (result==null || - result instanceof String && ((String)result).isEmpty() || - result instanceof Message && ((Message)result).isEmpty())) { - log.debug("Parameter ["+getName()+"] session variable ["+requestedSessionKey+"] is empty"); + if (LOG.isDebugEnabled() && (result == null || + ((result instanceof String) && ((String) result).isEmpty()) || + ((result instanceof Message) && ((Message) result).isEmpty()))) { + LOG.debug("Parameter [{}] session variable [{}] is empty", this::getName, () -> requestedSessionKey); } } else if (StringUtils.isNotEmpty(getPattern())) { - result=formatPattern(alreadyResolvedParameters, session); + result = formatPattern(alreadyResolvedParameters, session); } else if (getValue()!=null) { result = getValue(); String strResult = result.toString(); @@ -607,14 +607,15 @@ public Object getValue(ParameterValueList alreadyResolvedParameters, Message mes } if (result instanceof Message) { //we just need to check if the message is null or not! - if(Message.isNull((Message)result)) { + if (Message.isNull((Message)result)) { result = null; - } else if(((Message)result).asObject() instanceof String) { //Used by getMinLength and getMaxLength - result = (String) ((Message) result).asObject(); + } else if (((Message)result).asObject() instanceof String) { //Used by getMinLength and getMaxLength + result = ((Message) result).asObject(); } } if (result != null && !"".equals(result)) { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] resolved to ["+(isHidden()?hide(result.toString()):result)+"]"); + final Object finalResult = result; + LOG.debug("Parameter [{}] resolved to [{}]", this::getName, ()-> isHidden() ? hide(finalResult.toString()) : finalResult); } else { // if result is empty then return specified default value Object valueByDefault=null; @@ -648,20 +649,23 @@ public Object getValue(ParameterValueList alreadyResolvedParameters, Message mes } if (valueByDefault!=null) { result = valueByDefault; - log.debug("Parameter ["+getName()+"] resolved to defaultvalue ["+(isHidden()?hide(result.toString()):result)+"]"); + final Object finalResult = result; + LOG.debug("Parameter [{}] resolved to default value [{}]", this::getName, ()-> isHidden() ? hide(finalResult.toString()) : finalResult); } } if (result instanceof String) { if (getMinLength()>=0 && getType()!=ParameterType.NUMBER) { - if (((String)result).length()=0) { - if (((String)result).length()>getMaxLength()) { - log.debug("Trimming parameter ["+getName()+"] because length ["+((String)result).length()+"] exceeds maxLength ["+getMaxLength()+"]" ); - result = ((String)result).substring(0, getMaxLength()); + final String stringResult = (String) result; + if (stringResult.length() > getMaxLength()) { + LOG.debug("Trimming parameter [{}] because length [{}] exceeds maxLength [{}]", this::getName, stringResult::length, this::getMaxLength); + result = stringResult.substring(0, getMaxLength()); } } } @@ -670,16 +674,16 @@ public Object getValue(ParameterValueList alreadyResolvedParameters, Message mes } if (result instanceof Number) { if (getMinInclusiveString()!=null && ((Number)result).floatValue() < minInclusive.floatValue()) { - log.debug("Replacing parameter ["+getName()+"] because value ["+result+"] falls short of minInclusive ["+getMinInclusiveString()+"]" ); + LOG.debug("Replacing parameter [{}] because value [{}] falls short of minInclusive [{}]", this::getName, logValue(result), this::getMinInclusiveString); result = minInclusive; } if (getMaxInclusiveString()!=null && ((Number)result).floatValue() > maxInclusive.floatValue()) { - log.debug("Replacing parameter ["+getName()+"] because value ["+result+"] exceeds maxInclusive ["+getMaxInclusiveString()+"]" ); + LOG.debug("Replacing parameter [{}] because value [{}] exceeds maxInclusive [{}]", this::getName, logValue(result), this::getMaxInclusiveString); result = maxInclusive; } } if (getType()==ParameterType.NUMBER && getMinLength()>=0 && (result+"").length()finalResult.getClass().getName(), ()-> finalResult); } catch (DomBuilderException | TransformerException | IOException | SAXException e) { throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to XML nodeset",e); } @@ -717,8 +722,9 @@ private Object getValueAsType(Object request, boolean namespaceAware) throws Par if(requestObject instanceof Document) { return requestObject; } - result=XmlUtils.buildDomDocument(requestMessage.asInputSource(), namespaceAware); - if (log.isDebugEnabled()) log.debug("final result ["+result.getClass().getName()+"]["+result+"]"); + result = XmlUtils.buildDomDocument(requestMessage.asInputSource(), namespaceAware); + final Object finalResult = result; + LOG.debug("final result [{}][{}]", ()->finalResult.getClass().getName(), ()-> finalResult); } catch (DomBuilderException | TransformerException | IOException | SAXException e) { throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to XML document",e); } @@ -726,59 +732,66 @@ private Object getValueAsType(Object request, boolean namespaceAware) throws Par case DATE: case DATETIME: case TIMESTAMP: - case TIME: - if(requestObject instanceof Date) { + case TIME: { + if (requestObject instanceof Date) { return requestObject; } - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] to Date using formatString ["+getFormatString()+"]" ); + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] to Date using formatString [{}]", this::getName, () -> finalRequestMessage, this::getFormatString); DateFormat df = new SimpleDateFormat(getFormatString()); try { result = df.parseObject(requestMessage.asString()); } catch (ParseException e) { - throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to Date using formatString ["+getFormatString()+"]",e); + throw new ParameterException("Parameter [" + getName() + "] could not parse result [" + requestMessage + "] to Date using formatString [" + getFormatString() + "]", e); } break; - case XMLDATETIME: - if(requestObject instanceof Date) { + } + case XMLDATETIME: { + if (requestObject instanceof Date) { return requestObject; } - log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] from XML dateTime to Date" ); + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] from XML dateTime to Date", this::getName, () -> finalRequestMessage); result = DateUtils.parseXmlDateTime(requestMessage.asString()); break; - case NUMBER: - if(requestObject instanceof Number) { + } + case NUMBER: { + if (requestObject instanceof Number) { return requestObject; } - log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] to number decimalSeparator ["+decimalFormatSymbols.getDecimalSeparator()+"] groupingSeparator ["+decimalFormatSymbols.getGroupingSeparator()+"]" ); + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] to number decimalSeparator [{}] groupingSeparator [{}]", this::getName, ()->finalRequestMessage, decimalFormatSymbols::getDecimalSeparator, decimalFormatSymbols::getGroupingSeparator); DecimalFormat decimalFormat = new DecimalFormat(); decimalFormat.setDecimalFormatSymbols(decimalFormatSymbols); try { - Number n = decimalFormat.parse(requestMessage.asString()); - result = n; + result = decimalFormat.parse(requestMessage.asString()); } catch (ParseException e) { - throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to number decimalSeparator ["+decimalFormatSymbols.getDecimalSeparator()+"] groupingSeparator ["+decimalFormatSymbols.getGroupingSeparator()+"]",e); + throw new ParameterException("Parameter [" + getName() + "] could not parse result [" + requestMessage + "] to number decimalSeparator [" + decimalFormatSymbols.getDecimalSeparator() + "] groupingSeparator [" + decimalFormatSymbols.getGroupingSeparator() + "]", e); } break; - case INTEGER: - if(requestObject instanceof Integer) { + } + case INTEGER: { + if (requestObject instanceof Integer) { return requestObject; } - log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] to integer" ); + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] to integer", this::getName, ()->finalRequestMessage); try { - Integer i = Integer.parseInt(requestMessage.asString()); - result = i; + result = Integer.parseInt(requestMessage.asString()); } catch (NumberFormatException e) { - throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to integer",e); + throw new ParameterException("Parameter [" + getName() + "] could not parse result [" + requestMessage + "] to integer", e); } break; - case BOOLEAN: - if(requestObject instanceof Boolean) { + } + case BOOLEAN: { + if (requestObject instanceof Boolean) { return requestObject; } - log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] to boolean" ); - Boolean i = Boolean.parseBoolean(requestMessage.asString()); - result = i; + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] to boolean", this::getName, ()->finalRequestMessage); + result = Boolean.parseBoolean(requestMessage.asString()); break; + } default: break; } @@ -789,21 +802,8 @@ private Object getValueAsType(Object request, boolean namespaceAware) throws Par return result; } - private String hide(String string) { - String hiddenString; - if (string == null) { - hiddenString = null; - } else { - hiddenString = ""; - for (int i = 0; i < string.length(); i++) { - hiddenString = hiddenString + "*"; - } - } - return hiddenString; - } - private String formatPattern(ParameterValueList alreadyResolvedParameters, PipeLineSession session) throws ParameterException { - int startNdx = -1; + int startNdx; int endNdx = 0; // replace the named parameter with numbered parameters @@ -818,7 +818,7 @@ private String formatPattern(ParameterValueList alreadyResolvedParameters, PipeL break; } else { - formatPattern.append(pattern.substring(endNdx, startNdx)); + formatPattern.append(pattern, endNdx, startNdx); } int tmpEndNdx = pattern.indexOf("}", startNdx); endNdx = pattern.indexOf(",", startNdx); @@ -914,7 +914,7 @@ private Object getValueForFormatting(ParameterValueList alreadyResolvedParameter try { fixedDateTime = df.parse(PutSystemDateInSession.FIXEDDATETIME); } catch (ParseException e) { - throw new ParameterException("Could not parse FIXEDDATETIME [" + fixedDateTime + "]", e); + throw new ParameterException("Could not parse FIXEDDATETIME [" + PutSystemDateInSession.FIXEDDATETIME + "]", e); } } substitutionValue = preFormatDateType(fixedDateTime, formatType, formatString); @@ -951,7 +951,7 @@ private Object getValueForFormatting(ParameterValueList alreadyResolvedParameter @Override public String toString() { - return "Parameter name=["+name+"] defaultValue=["+defaultValue+"] sessionKey=["+sessionKey+"] sessionKeyXPath=["+sessionKeyXPath+"] xpathExpression=["+xpathExpression+ "] type=["+type+ "] value=["+value+ "]"; + return "Parameter name=[" + name + "] defaultValue=[" + defaultValue + "] sessionKey=[" + sessionKey + "] sessionKeyXPath=[" + sessionKeyXPath + "] xpathExpression=[" + xpathExpression + "] type=[" + type + "] value=[" + value + "]"; } private TransformerPool getTransformerPool() { @@ -1023,7 +1023,7 @@ public void setXslt2(boolean b) { } /** - * Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of + * Namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of * prefix=namespaceuri-definitions. One entry can be without a prefix, that will define the default namespace. */ public void setNamespaceDefs(String namespaceDefs) { @@ -1054,8 +1054,8 @@ public void setDefaultValueMethods(String string) { /** * Value of parameter is determined using substitution and formatting, following MessageFormat syntax with named parameters. The expression can contain references * to session-variables or other parameters using {name-of-parameter} and is formatted using java.text.MessageFormat. - *
If for instance fname is a parameter or session variable that resolves to eric, then the pattern - * 'hi {fname}, hoe gaat het?' resolves to 'hi eric, hoe gaat het?'.
+ *
If for instance fname is a parameter or session variable that resolves to Eric, then the pattern + * 'Hi {fname}, how do you do?' resolves to 'Hi Eric, do you do?'.
* The following predefined reference can be used in the expression too:
    *
  • {now}: the current system time
  • *
  • {uid}: an unique identifier, based on the IP address and java.rmi.server.UID
  • diff --git a/src/main/java/nl/nn/adapterframework/parameters/Parameter.java-orig b/src/main/java/nl/nn/adapterframework/parameters/Parameter.java-orig index 5f0a65cb5..5d24eec47 100644 --- a/src/main/java/nl/nn/adapterframework/parameters/Parameter.java-orig +++ b/src/main/java/nl/nn/adapterframework/parameters/Parameter.java-orig @@ -1,5 +1,5 @@ /* - Copyright 2013, 2016, 2019, 2020 Nationale-Nederlanden, 2021, 2022 WeAreFrank! + Copyright 2013, 2016, 2019, 2020 Nationale-Nederlanden, 2021-2023 WeAreFrank! Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -15,6 +15,9 @@ */ package nl.nn.adapterframework.parameters; +import static nl.nn.adapterframework.functional.FunctionalUtil.logValue; +import static nl.nn.adapterframework.util.StringUtil.hide; + import java.io.IOException; import java.text.DateFormat; import java.text.DecimalFormat; @@ -25,17 +28,16 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.StringTokenizer; +import java.util.stream.Collectors; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import javax.xml.transform.dom.DOMResult; -import nl.nn.adapterframework.util.UUIDUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.context.ApplicationContext; import org.w3c.dom.Document; @@ -59,10 +61,11 @@ import nl.nn.adapterframework.util.CredentialFactory; import nl.nn.adapterframework.util.DateUtils; import nl.nn.adapterframework.util.DomBuilderException; import nl.nn.adapterframework.util.EnumUtils; -import nl.nn.adapterframework.util.LogUtil; import nl.nn.adapterframework.util.Misc; +import nl.nn.adapterframework.util.StringUtil; import nl.nn.adapterframework.util.TransformerPool; import nl.nn.adapterframework.util.TransformerPool.OutputType; +import nl.nn.adapterframework.util.UUIDUtil; import nl.nn.adapterframework.util.XmlBuilder; import nl.nn.adapterframework.util.XmlUtils; @@ -101,8 +104,8 @@ import nl.nn.adapterframework.util.XmlUtils; * @ff.parameters Parameters themselves can have parameters too, for instance if a XSLT transformation is used, that transformation can have parameters. */ public class Parameter implements IConfigurable, IWithParameters { - protected Logger log = LogUtil.getLogger(this); - private @Getter ClassLoader configurationClassLoader = Thread.currentThread().getContextClassLoader(); + private static final Logger LOG = LogManager.getLogger(Parameter.class); + private final @Getter ClassLoader configurationClassLoader = Thread.currentThread().getContextClassLoader(); private @Getter @Setter ApplicationContext applicationContext; public static final String TYPE_DATE_PATTERN="yyyy-MM-dd"; @@ -152,6 +155,13 @@ public class Parameter implements IConfigurable, IWithParameters { private List defaultValueMethodsList; + @Getter + private ParameterMode mode = ParameterMode.INPUT; + + public enum ParameterMode { + INPUT, OUTPUT, INOUT + } + public enum ParameterType { /** Renders the contents of the first node (in combination with xslt or xpath). Please note that * if there are child nodes, only the contents are returned, use XML if the xml tags are required */ @@ -274,13 +284,13 @@ public class Parameter implements IConfigurable, IWithParameters { if (paramList!=null) { paramList.configure(); } - OutputType outputType=getType() == ParameterType.XML || getType()==ParameterType.NODE || getType()==ParameterType.DOMDOC ? OutputType.XML : OutputType.TEXT; - boolean includeXmlDeclaration=false; + OutputType outputType = getType() == ParameterType.XML || getType() == ParameterType.NODE || getType() == ParameterType.DOMDOC ? OutputType.XML : OutputType.TEXT; + boolean includeXmlDeclaration = false; - transformerPool=TransformerPool.configureTransformer0(this, getNamespaceDefs(), getXpathExpression(),getStyleSheetName(), outputType,includeXmlDeclaration,paramList,getXsltVersion()); + transformerPool = TransformerPool.configureTransformer0(this, getNamespaceDefs(), getXpathExpression(), getStyleSheetName(), outputType, includeXmlDeclaration, paramList, getXsltVersion()); } else { - if (paramList!=null && StringUtils.isEmpty(getPattern())) { - throw new ConfigurationException("Parameter ["+getName()+"] can only have parameters itself if a styleSheetName, xpathExpression or pattern is specified"); + if (paramList != null && StringUtils.isEmpty(getPattern())) { + throw new ConfigurationException("Parameter [" + getName() + "] can only have parameters itself if a styleSheetName, xpathExpression or pattern is specified"); } } if (isRemoveNamespaces()) { @@ -289,8 +299,8 @@ public class Parameter implements IConfigurable, IWithParameters { if (StringUtils.isNotEmpty(getSessionKeyXPath())) { tpDynamicSessionKey = TransformerPool.configureTransformer(this, getNamespaceDefs(), getSessionKeyXPath(), null, OutputType.TEXT,false,null); } - if(getType()==null) { - log.info("parameter ["+getName()+" has no type. Setting the type to ["+ParameterType.STRING+"]"); + if (getType() == null) { + LOG.info("parameter [{} has no type. Setting the type to [{}]", this::getType, ()->ParameterType.STRING); setType(ParameterType.STRING); } if(StringUtils.isEmpty(getFormatString())) { @@ -350,16 +360,11 @@ public class Parameter implements IConfigurable, IWithParameters { } } - private ListgetDefaultValueMethodsList() { - if (defaultValueMethodsList==null) { - defaultValueMethodsList = new LinkedList<>(); - if (StringUtils.isNotEmpty(getDefaultValueMethods())) { - StringTokenizer stringTokenizer = new StringTokenizer(getDefaultValueMethods(), ", "); - while (stringTokenizer.hasMoreTokens()) { - String token = stringTokenizer.nextToken(); - defaultValueMethodsList.add(EnumUtils.parse(DefaultValueMethods.class, token)); - } - } + private List getDefaultValueMethodsList() { + if (defaultValueMethodsList == null) { + defaultValueMethodsList = StringUtil.splitToStream(getDefaultValueMethods(), ", ") + .map(token -> EnumUtils.parse(DefaultValueMethods.class, token)) + .collect(Collectors.toList()); } return defaultValueMethodsList; } @@ -406,7 +411,7 @@ public class Parameter implements IConfigurable, IWithParameters { */ public Object getValue(ParameterValueList alreadyResolvedParameters, Message message, PipeLineSession session, boolean namespaceAware) throws ParameterException { Object result = null; - if (log.isDebugEnabled()) log.debug("Calculating value for Parameter ["+getName()+"]"); + LOG.debug("Calculating value for Parameter [{}]", this::getName); if (!configured) { throw new ParameterException("Parameter ["+getName()+"] not configured"); } @@ -442,8 +447,7 @@ public class Parameter implements IConfigurable, IWithParameters { // larva can produce the sourceObject as list List items = (List) sourceObject; XmlBuilder itemsXml = new XmlBuilder("items"); - for (Iterator it = items.iterator(); it.hasNext();) { - String item = it.next(); + for (String item : items) { XmlBuilder itemXml = new XmlBuilder("item"); itemXml.setValue(item); itemsXml.addSubElement(itemXml); @@ -453,8 +457,7 @@ public class Parameter implements IConfigurable, IWithParameters { // larva can produce the sourceObject as map Map items = (Map) sourceObject; XmlBuilder itemsXml = new XmlBuilder("items"); - for (Iterator it = items.keySet().iterator(); it.hasNext();) { - String item = it.next(); + for (String item : items.keySet()) { XmlBuilder itemXml = new XmlBuilder("item"); itemXml.addAttribute("name", item); itemXml.setValue(items.get(item)); @@ -467,19 +470,19 @@ public class Parameter implements IConfigurable, IWithParameters { sourceMsg = Message.asMessage(sourceMsg.getContext().get(getContextKey())); } if (!sourceMsg.isEmpty()) { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] using sessionvariable ["+requestedSessionKey+"] as source for transformation"); + LOG.debug("Parameter [{}] using sessionvariable [{}] as source for transformation", this::getName, ()-> requestedSessionKey); source = sourceMsg.asSource(); } else { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] sessionvariable ["+requestedSessionKey+"] empty, no transformation will be performed"); + LOG.debug("Parameter [{}] sessionvariable [{}] empty, no transformation will be performed", this::getName, ()-> requestedSessionKey); } } } else if (StringUtils.isNotEmpty(getPattern())) { String sourceString = formatPattern(alreadyResolvedParameters, session); if (StringUtils.isNotEmpty(sourceString)) { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] using pattern ["+getPattern()+"] as source for transformation"); + LOG.debug("Parameter [{}] using pattern [{}] as source for transformation", this::getName, this::getPattern); source = XmlUtils.stringToSourceForSingleUse(sourceString, namespaceAware); } else { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] pattern ["+getPattern()+"] empty, no transformation will be performed"); + LOG.debug("Parameter [{}] pattern [{}] empty, no transformation will be performed", this::getName, this::getPattern); } } else { if (StringUtils.isNotEmpty(getContextKey())) { @@ -521,17 +524,17 @@ public class Parameter implements IConfigurable, IWithParameters { * N.B. this order differs from transformed parameters. */ if (StringUtils.isNotEmpty(requestedSessionKey)) { - result=session.get(requestedSessionKey); + result = session.get(requestedSessionKey); if (result instanceof Message && StringUtils.isNotEmpty(getContextKey())) { result = ((Message)result).getContext().get(getContextKey()); } - if (log.isDebugEnabled() && (result==null || - result instanceof String && ((String)result).isEmpty() || - result instanceof Message && ((Message)result).isEmpty())) { - log.debug("Parameter ["+getName()+"] session variable ["+requestedSessionKey+"] is empty"); + if (LOG.isDebugEnabled() && (result == null || + ((result instanceof String) && ((String) result).isEmpty()) || + ((result instanceof Message) && ((Message) result).isEmpty()))) { + LOG.debug("Parameter [{}] session variable [{}] is empty", this::getName, () -> requestedSessionKey); } } else if (StringUtils.isNotEmpty(getPattern())) { - result=formatPattern(alreadyResolvedParameters, session); + result = formatPattern(alreadyResolvedParameters, session); } else if (getValue()!=null) { result = getValue(); } else { @@ -552,14 +555,15 @@ public class Parameter implements IConfigurable, IWithParameters { } if (result instanceof Message) { //we just need to check if the message is null or not! - if(Message.isNull((Message)result)) { + if (Message.isNull((Message)result)) { result = null; - } else if(((Message)result).asObject() instanceof String) { //Used by getMinLength and getMaxLength - result = (String) ((Message) result).asObject(); + } else if (((Message)result).asObject() instanceof String) { //Used by getMinLength and getMaxLength + result = ((Message) result).asObject(); } } if (result != null && !"".equals(result)) { - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] resolved to ["+(isHidden()?hide(result.toString()):result)+"]"); + final Object finalResult = result; + LOG.debug("Parameter [{}] resolved to [{}]", this::getName, ()-> isHidden() ? hide(finalResult.toString()) : finalResult); } else { // if result is empty then return specified default value Object valueByDefault=null; @@ -593,20 +597,23 @@ public class Parameter implements IConfigurable, IWithParameters { } if (valueByDefault!=null) { result = valueByDefault; - log.debug("Parameter ["+getName()+"] resolved to defaultvalue ["+(isHidden()?hide(result.toString()):result)+"]"); + final Object finalResult = result; + LOG.debug("Parameter [{}] resolved to default value [{}]", this::getName, ()-> isHidden() ? hide(finalResult.toString()) : finalResult); } } if (result instanceof String) { if (getMinLength()>=0 && getType()!=ParameterType.NUMBER) { - if (((String)result).length()=0) { - if (((String)result).length()>getMaxLength()) { - log.debug("Trimming parameter ["+getName()+"] because length ["+((String)result).length()+"] exceeds maxLength ["+getMaxLength()+"]" ); - result = ((String)result).substring(0, getMaxLength()); + final String stringResult = (String) result; + if (stringResult.length() > getMaxLength()) { + LOG.debug("Trimming parameter [{}] because length [{}] exceeds maxLength [{}]", this::getName, stringResult::length, this::getMaxLength); + result = stringResult.substring(0, getMaxLength()); } } } @@ -615,16 +622,16 @@ public class Parameter implements IConfigurable, IWithParameters { } if (result instanceof Number) { if (getMinInclusiveString()!=null && ((Number)result).floatValue() < minInclusive.floatValue()) { - log.debug("Replacing parameter ["+getName()+"] because value ["+result+"] falls short of minInclusive ["+getMinInclusiveString()+"]" ); + LOG.debug("Replacing parameter [{}] because value [{}] falls short of minInclusive [{}]", this::getName, logValue(result), this::getMinInclusiveString); result = minInclusive; } if (getMaxInclusiveString()!=null && ((Number)result).floatValue() > maxInclusive.floatValue()) { - log.debug("Replacing parameter ["+getName()+"] because value ["+result+"] exceeds maxInclusive ["+getMaxInclusiveString()+"]" ); + LOG.debug("Replacing parameter [{}] because value [{}] exceeds maxInclusive [{}]", this::getName, logValue(result), this::getMaxInclusiveString); result = maxInclusive; } } if (getType()==ParameterType.NUMBER && getMinLength()>=0 && (result+"").length()finalResult.getClass().getName(), ()-> finalResult); } catch (DomBuilderException | TransformerException | IOException | SAXException e) { throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to XML nodeset",e); } @@ -662,8 +670,9 @@ public class Parameter implements IConfigurable, IWithParameters { if(requestObject instanceof Document) { return requestObject; } - result=XmlUtils.buildDomDocument(requestMessage.asInputSource(), namespaceAware); - if (log.isDebugEnabled()) log.debug("final result ["+result.getClass().getName()+"]["+result+"]"); + result = XmlUtils.buildDomDocument(requestMessage.asInputSource(), namespaceAware); + final Object finalResult = result; + LOG.debug("final result [{}][{}]", ()->finalResult.getClass().getName(), ()-> finalResult); } catch (DomBuilderException | TransformerException | IOException | SAXException e) { throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to XML document",e); } @@ -671,59 +680,66 @@ public class Parameter implements IConfigurable, IWithParameters { case DATE: case DATETIME: case TIMESTAMP: - case TIME: - if(requestObject instanceof Date) { + case TIME: { + if (requestObject instanceof Date) { return requestObject; } - if (log.isDebugEnabled()) log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] to Date using formatString ["+getFormatString()+"]" ); + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] to Date using formatString [{}]", this::getName, () -> finalRequestMessage, this::getFormatString); DateFormat df = new SimpleDateFormat(getFormatString()); try { result = df.parseObject(requestMessage.asString()); } catch (ParseException e) { - throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to Date using formatString ["+getFormatString()+"]",e); + throw new ParameterException("Parameter [" + getName() + "] could not parse result [" + requestMessage + "] to Date using formatString [" + getFormatString() + "]", e); } break; - case XMLDATETIME: - if(requestObject instanceof Date) { + } + case XMLDATETIME: { + if (requestObject instanceof Date) { return requestObject; } - log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] from XML dateTime to Date" ); + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] from XML dateTime to Date", this::getName, () -> finalRequestMessage); result = DateUtils.parseXmlDateTime(requestMessage.asString()); break; - case NUMBER: - if(requestObject instanceof Number) { + } + case NUMBER: { + if (requestObject instanceof Number) { return requestObject; } - log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] to number decimalSeparator ["+decimalFormatSymbols.getDecimalSeparator()+"] groupingSeparator ["+decimalFormatSymbols.getGroupingSeparator()+"]" ); + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] to number decimalSeparator [{}] groupingSeparator [{}]", this::getName, ()->finalRequestMessage, decimalFormatSymbols::getDecimalSeparator, decimalFormatSymbols::getGroupingSeparator); DecimalFormat decimalFormat = new DecimalFormat(); decimalFormat.setDecimalFormatSymbols(decimalFormatSymbols); try { - Number n = decimalFormat.parse(requestMessage.asString()); - result = n; + result = decimalFormat.parse(requestMessage.asString()); } catch (ParseException e) { - throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to number decimalSeparator ["+decimalFormatSymbols.getDecimalSeparator()+"] groupingSeparator ["+decimalFormatSymbols.getGroupingSeparator()+"]",e); + throw new ParameterException("Parameter [" + getName() + "] could not parse result [" + requestMessage + "] to number decimalSeparator [" + decimalFormatSymbols.getDecimalSeparator() + "] groupingSeparator [" + decimalFormatSymbols.getGroupingSeparator() + "]", e); } break; - case INTEGER: - if(requestObject instanceof Integer) { + } + case INTEGER: { + if (requestObject instanceof Integer) { return requestObject; } - log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] to integer" ); + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] to integer", this::getName, ()->finalRequestMessage); try { - Integer i = Integer.parseInt(requestMessage.asString()); - result = i; + result = Integer.parseInt(requestMessage.asString()); } catch (NumberFormatException e) { - throw new ParameterException("Parameter ["+getName()+"] could not parse result ["+requestMessage+"] to integer",e); + throw new ParameterException("Parameter [" + getName() + "] could not parse result [" + requestMessage + "] to integer", e); } break; - case BOOLEAN: - if(requestObject instanceof Boolean) { + } + case BOOLEAN: { + if (requestObject instanceof Boolean) { return requestObject; } - log.debug("Parameter ["+getName()+"] converting result ["+requestMessage+"] to boolean" ); - Boolean i = Boolean.parseBoolean(requestMessage.asString()); - result = i; + Message finalRequestMessage = requestMessage; + LOG.debug("Parameter [{}] converting result [{}] to boolean", this::getName, ()->finalRequestMessage); + result = Boolean.parseBoolean(requestMessage.asString()); break; + } default: break; } @@ -734,36 +750,23 @@ public class Parameter implements IConfigurable, IWithParameters { return result; } - private String hide(String string) { - String hiddenString; - if (string == null) { - hiddenString = null; - } else { - hiddenString = ""; - for (int i = 0; i < string.length(); i++) { - hiddenString = hiddenString + "*"; - } - } - return hiddenString; - } - private String formatPattern(ParameterValueList alreadyResolvedParameters, PipeLineSession session) throws ParameterException { - int startNdx = -1; + int startNdx; int endNdx = 0; // replace the named parameter with numbered parameters - StringBuffer formatPattern = new StringBuffer(); - List params = new ArrayList(); + StringBuilder formatPattern = new StringBuilder(); + List params = new ArrayList<>(); int paramPosition = 0; - while(endNdx != -1) { + while(true) { // get name of parameter in pattern to be substituted startNdx = pattern.indexOf("{", endNdx); if (startNdx == -1) { formatPattern.append(pattern.substring(endNdx)); break; } - else if (endNdx != -1) { - formatPattern.append(pattern.substring(endNdx, startNdx)); + else { + formatPattern.append(pattern, endNdx, startNdx); } int tmpEndNdx = pattern.indexOf("}", startNdx); endNdx = pattern.indexOf(",", startNdx); @@ -773,7 +776,6 @@ public class Parameter implements IConfigurable, IWithParameters { if (endNdx == -1) { throw new ParameterException(new ParseException("Bracket is not closed", startNdx)); } - //String substitutionName = pattern.substring(startNdx + 1, endNdx); String substitutionPattern = pattern.substring(startNdx + 1, tmpEndNdx); // get value @@ -837,42 +839,52 @@ public class Parameter implements IConfigurable, IWithParameters { } if (substitutionValue == null) { String namelc=name.toLowerCase(); - if ("now".equals(name.toLowerCase())) { - substitutionValue = preFormatDateType(new Date(), formatType, formatString); - } else if ("uid".equals(namelc)) { - substitutionValue = UUIDUtil.createSimpleUUID(); - } else if ("uuid".equals(namelc)) { - substitutionValue = UUIDUtil.createRandomUUID(); - } else if ("hostname".equals(namelc)) { - substitutionValue = Misc.getHostname(); - } else if ("fixeddate".equals(namelc)) { - if (!ConfigurationUtils.isConfigurationStubbed(configurationClassLoader)) { - throw new ParameterException("Parameter pattern [" + name + "] only allowed in stub mode"); - } - Object fixedDateTime = session.get(PutSystemDateInSession.FIXEDDATE_STUB4TESTTOOL_KEY); - if (fixedDateTime==null) { - DateFormat df = new SimpleDateFormat(DateUtils.FORMAT_GENERICDATETIME); - try { - fixedDateTime = df.parse(PutSystemDateInSession.FIXEDDATETIME); - } catch (ParseException e) { - throw new ParameterException("Could not parse FIXEDDATETIME ["+fixedDateTime+"]", e); + switch (namelc) { + case "now": + substitutionValue = preFormatDateType(new Date(), formatType, formatString); + break; + case "uid": + substitutionValue = UUIDUtil.createSimpleUUID(); + break; + case "uuid": + substitutionValue = UUIDUtil.createRandomUUID(); + break; + case "hostname": + substitutionValue = Misc.getHostname(); + break; + case "fixeddate": + if (!ConfigurationUtils.isConfigurationStubbed(configurationClassLoader)) { + throw new ParameterException("Parameter pattern [" + name + "] only allowed in stub mode"); } - } - substitutionValue = preFormatDateType(fixedDateTime, formatType, formatString); - } else if ("fixeduid".equals(namelc)) { - if (!ConfigurationUtils.isConfigurationStubbed(configurationClassLoader)) { - throw new ParameterException("Parameter pattern [" + name + "] only allowed in stub mode"); - } - substitutionValue = FIXEDUID; - } else if ("fixedhostname".equals(namelc)) { - if (!ConfigurationUtils.isConfigurationStubbed(configurationClassLoader)) { - throw new ParameterException("Parameter pattern [" + name + "] only allowed in stub mode"); - } - substitutionValue = FIXEDHOSTNAME; - } else if ("username".equals(namelc)) { - substitutionValue=cf!=null?cf.getUsername():""; - } else if ("password".equals(namelc)) { - substitutionValue=cf!=null?cf.getPassword():""; + Object fixedDateTime = session.get(PutSystemDateInSession.FIXEDDATE_STUB4TESTTOOL_KEY); + if (fixedDateTime == null) { + DateFormat df = new SimpleDateFormat(DateUtils.FORMAT_GENERICDATETIME); + try { + fixedDateTime = df.parse(PutSystemDateInSession.FIXEDDATETIME); + } catch (ParseException e) { + throw new ParameterException("Could not parse FIXEDDATETIME [" + PutSystemDateInSession.FIXEDDATETIME + "]", e); + } + } + substitutionValue = preFormatDateType(fixedDateTime, formatType, formatString); + break; + case "fixeduid": + if (!ConfigurationUtils.isConfigurationStubbed(configurationClassLoader)) { + throw new ParameterException("Parameter pattern [" + name + "] only allowed in stub mode"); + } + substitutionValue = FIXEDUID; + break; + case "fixedhostname": + if (!ConfigurationUtils.isConfigurationStubbed(configurationClassLoader)) { + throw new ParameterException("Parameter pattern [" + name + "] only allowed in stub mode"); + } + substitutionValue = FIXEDHOSTNAME; + break; + case "username": + substitutionValue = cf != null ? cf.getUsername() : ""; + break; + case "password": + substitutionValue = cf != null ? cf.getPassword() : ""; + break; } } if (substitutionValue == null) { @@ -887,7 +899,7 @@ public class Parameter implements IConfigurable, IWithParameters { @Override public String toString() { - return "Parameter name=["+name+"] defaultValue=["+defaultValue+"] sessionKey=["+sessionKey+"] sessionKeyXPath=["+sessionKeyXPath+"] xpathExpression=["+xpathExpression+ "] type=["+type+ "] value=["+value+ "]"; + return "Parameter name=[" + name + "] defaultValue=[" + defaultValue + "] sessionKey=[" + sessionKey + "] sessionKeyXPath=[" + sessionKeyXPath + "] xpathExpression=[" + xpathExpression + "] type=[" + type + "] value=[" + value + "]"; } private TransformerPool getTransformerPool() { @@ -959,7 +971,7 @@ public class Parameter implements IConfigurable, IWithParameters { } /** - * Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of + * Namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of * prefix=namespaceuri-definitions. One entry can be without a prefix, that will define the default namespace. */ public void setNamespaceDefs(String namespaceDefs) { @@ -990,8 +1002,8 @@ public class Parameter implements IConfigurable, IWithParameters { /** * Value of parameter is determined using substitution and formatting, following MessageFormat syntax with named parameters. The expression can contain references * to session-variables or other parameters using {name-of-parameter} and is formatted using java.text.MessageFormat. - *
    If for instance fname is a parameter or session variable that resolves to eric, then the pattern - * 'hi {fname}, hoe gaat het?' resolves to 'hi eric, hoe gaat het?'.
    + *
    If for instance fname is a parameter or session variable that resolves to Eric, then the pattern + * 'Hi {fname}, how do you do?' resolves to 'Hi Eric, do you do?'.
    * The following predefined reference can be used in the expression too:
      *
    • {now}: the current system time
    • *
    • {uid}: an unique identifier, based on the IP address and java.rmi.server.UID
    • @@ -1097,4 +1109,18 @@ public class Parameter implements IConfigurable, IWithParameters { hidden = b; } + /** + * Set the mode of the parameter, which determines if the parameter is an INPUT, OUTPUT, or INOUT. + * This parameter only has effect for {@link nl.nn.adapterframework.jdbc.StoredProcedureQuerySender}. + * An OUTPUT parameter does not need to have a value specified, but does need to have the type specified. + * Parameter values will not be updated, but output values will be put into the result of the + * {@link nl.nn.adapterframework.jdbc.StoredProcedureQuerySender}. + * + * If not specified, the default is INPUT. + * + * @param mode INPUT, OUTPUT or INOUT. + */ + public void setMode(ParameterMode mode) { + this.mode = mode; + } }