From 0e1f8e4f31c27897f745bcdd04d558e7626622a7 Mon Sep 17 00:00:00 2001 From: MLenterman Date: Fri, 19 Jul 2024 10:15:46 +0000 Subject: [PATCH] build(dependencies): bump f!f version to 8.2.0-20240711.042331 --- Dockerfile | 2 +- docker-compose.zaakbrug.dev.yml | 2 +- frank-runner.properties | 2 +- src/main/FrankConfig.xsd | 1602 ++++++++++++++--------- src/main/configurations/FrankConfig.xsd | 1602 ++++++++++++++--------- 5 files changed, 1939 insertions(+), 1271 deletions(-) diff --git a/Dockerfile b/Dockerfile index bc68382dc..ac10ca863 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # 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 -ARG FF_VERSION=8.1.0-20240404.042328 +ARG FF_VERSION=8.2.0-20240711.042331 FROM docker.io/frankframework/frankframework:${FF_VERSION} as ff-base # Copy dependencies diff --git a/docker-compose.zaakbrug.dev.yml b/docker-compose.zaakbrug.dev.yml index 9ae6064c1..3a7f7f84d 100644 --- a/docker-compose.zaakbrug.dev.yml +++ b/docker-compose.zaakbrug.dev.yml @@ -17,7 +17,7 @@ services: build: context: . args: - FF_VERSION: ${FF_VERSION:-8.1.0-20240404.042328} + FF_VERSION: ${FF_VERSION:-8.2.0-20240711.042331} image: wearefrank/zaakbrug:${ZAAKBRUG_VERSION:-latest} container_name: zaakbrug.dev environment: diff --git a/frank-runner.properties b/frank-runner.properties index 3f023f1a7..745d605b0 100644 --- a/frank-runner.properties +++ b/frank-runner.properties @@ -1,4 +1,4 @@ classloader.type=ScanningDirectoryClassLoader # Keep in sync with version in Dockerfile. Detailed instructions can be found in CONTRIBUTING.md. -ff.version=8.1.0-20240404.042328 \ No newline at end of file +ff.version=8.2.0-20240711.042331 \ No newline at end of file diff --git a/src/main/FrankConfig.xsd b/src/main/FrankConfig.xsd index d2917c351..8b5f8c138 100644 --- a/src/main/FrankConfig.xsd +++ b/src/main/FrankConfig.xsd @@ -1,5 +1,5 @@ - + Container of Adapters that belong together. @@ -41,7 +41,12 @@ - An Adapter receives a specific type of messages and processes them. It has Receivers + The Adapter is the central manager in the framework. It has knowledge of both + Receivers as well as the PipeLine and statistics. + The Adapter is the class that is responsible for configuring, initializing and + accessing/activating Receivers, Pipelines, statistics etc. + <br/> + 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), @@ -294,7 +299,7 @@ - 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; + Regular expression to mask strings in the errorStore/logStore and logfiles. 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; @@ -329,77 +334,31 @@ - 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. + Placeholder class to allow legacy configuration notations <code>&lt;param type='number' /&gt;</code> in the new Frank!Config XSD. + <p> + The attribute <code>type</code> has been removed in favor of explicit ParameterTypes such as: <code>NumberParameter</code>, <code>DateParameter</code> and <code>BooleanParameter</code>. + Using the new elements enables the use of auto-completion for the specified type. - + - - - 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 target data type of the parameter, related to the database or XSLT stylesheet to which the parameter is applied. Default: STRING - - - 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. + Name of the parameter + + + + URL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable. @@ -426,44 +385,9 @@ 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 <code>session-variables</code> or other <code>parameters</code> using the {name-of-parameter} and is formatted using java.text.MessageFormat. - <br/><b>NB: When referencing other <code>parameters</code> these MUST be defined before the parameter using pattern substitution.</b> - <br/> - <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 @@ -479,65 +403,11 @@ 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 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 - StoredProcedureQuerySender. - <b/> - If not specified, the default is INPUT. - - - - - + + + + + @@ -924,7 +794,8 @@ - time (with suffix 'd', 'h', 'm' or 's' in milliseconds) that must have passed at least before a file will be deleted Default: 30d + Minimum amount of time (with suffix 'd', 'h', 'm' or 's') that must have passed before a file will be deleted. + You may only use one suffix! Default: 30d @@ -1124,7 +995,7 @@ - + @@ -1136,6 +1007,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the parameter + + + + + + + + + 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 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> + + + + + + + + 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 + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + Separate the integer part from the fractional part of a number. Default: system default + + + + + In the United States, the comma is typically used for the grouping separator; however, several publication standards follow international standards in using either a space or a thin space character. Default: system default + + + + + 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 + + + + + + + @@ -1143,7 +1187,7 @@ 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 + for all ApiListeners in all configurations combined. You can find them in the Frank!Console under main menu item Webservices, heading Available ApiListeners. <p> The generated OpenAPI specifications have <code>servers</code> and <code>paths</code> objects and @@ -1151,19 +1195,19 @@ <p> It is possible to automatically generate eTags over the listener result. This can be controlled by globally setting the property <code>api.etag.enabled</code> or by setting the attribute <code>updateEtag="true"</code>. - When enabled the listener will respond to the 'if-match', 'if-none-match' headers and may return status code 304. + When enabled the listener will respond to the <code>If-Match</code>, <code>If-None-Match</code> headers and may return status code 304. <p> - In order to make eTags work across multiple nodes you must configure Memcached to store the eTags. + In order to enable eTags for multiple nodes you must configure Memcached to store the eTags. The following properties will need to be set: <ul> - <li>etag.cache.server=ip or hostname:port</li> - <li>etag.cache.type=memcached</li> + <li><code>etag.cache.server=ip or hostname:port</code></li> + <li><code>etag.cache.type=memcached</code></li> </ul> In case authentication, is required the following application properties can be used: <ul> - <li>etag.cache.username</li> - <li>etag.cache.password</li> - <li>etag.cache.authalias</li> + <li><code>etag.cache.username</code></li> + <li><code>etag.cache.password</code></li> + <li><code>etag.cache.authalias</code></li> </ul> @@ -1339,7 +1383,7 @@ <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 - javax.jms.TextMessages and javax.jms.BytesMessage<br/><br/> + jakarta.jms.TextMessages and jakarta.jms.BytesMessage<br/><br/> </p> @@ -1444,7 +1488,7 @@ 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/> + <code>jakarta.jms.TextMessage</code>s <br/><br/> </p> @@ -1494,7 +1538,7 @@ whatever it is configured to.</p> <p><b>Notice:</b> the JmsListener is ONLY capable of processing - javax.jms.TextMessages and javax.jms.BytesMessage<br/><br/> + jakarta.jms.TextMessages and jakarta.jms.BytesMessage<br/><br/> </p> @@ -1625,19 +1669,22 @@ - + - HTTP method(s) to listen to, separated by comma Default: GET + HTTP method(s) to listen to. Inside XML Configurations: for multiple values, use a comma as separator. Default: GET + + + - URI pattern to register this listener on, eq. `/my-listener/{something}/here` + URI pattern to register this listener on, eq. <code>/my-listener/{something}/here</code> - The required contentType on requests, if it doesn't match a 415 Unsupported Media Type is replied Default: ANY + The required contentType on requests, if it doesn't match a <code>415 Unsupported Media Type</code> is replied. Default: ANY @@ -1645,7 +1692,8 @@ - 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 contentType on response. When <code>ANY</code> the response will determine the content-type when it's known and will never calculate it. If no match is found <code>*&#47;*</code> will be used. + When <code>DETECT</code> the framework attempts to detect the MimeType (as well as charset) when not known. Default: ANY @@ -1664,7 +1712,7 @@ - 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> + Enables security for this listener. If you wish to use the application servers authorization roles [AUTHROLE], you need to enable them globally for all ApiListeners with the <code>servlet.ApiListenerServlet.securityRoles=IbisTester,IbisWebService</code> property Default: <code>NONE</code> @@ -1672,7 +1720,7 @@ - Only active when AuthenticationMethod=AUTHROLE. Comma separated list of authorization roles which are granted for this service, eq. IbisTester,IbisObserver", ""}) + Only active when AuthenticationMethod=AUTHROLE. Comma separated list of authorization roles which are granted for this service, eq. <code>IbisTester,IbisObserver</code> @@ -1702,7 +1750,7 @@ - Session key that provides the Content-Disposition header in the response + Session key that provides the <code>Content-Disposition</code> header in the response @@ -1717,7 +1765,7 @@ - Header to extract JWT from + Header to extract JWT from Default: <code>Authorization</code> @@ -1727,22 +1775,22 @@ - Comma separated key value pairs to exactly match with JWT payload. e.g. "sub=UnitTest, aud=test" + Comma separated key value pairs to exactly match with JWT payload. e.g. <code>sub=UnitTest, aud=test</code> - Comma separated key value pairs to one-of match with JWT payload. e.g. "appid=a,appid=b" + Comma separated key value pairs to one-of match with JWT payload. e.g. <code>appid=a,appid=b</code> - Claim name which specifies the role + Claim name which specifies the role (maps to <code>IsUserInRolePipe</code>) - Claim name which specifies the principal name (maps to GetPrincipalPipe) + Claim name which specifies the principal name (maps to <code>GetPrincipalPipe</code>) @@ -1914,7 +1962,7 @@ - + @@ -2709,29 +2757,30 @@ - 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. + Field containing the status of the message. + <b>NB: For optimal performance, an index should exist that starts with this field, followed by all fields that are used with a fixed value in the select condition, and end with the <code>orderField</code>. - (optional) Field used to store the date and time of the last change of the statusField + (optional) Field used to store the date and time of the last change of the <code>statusField</code> - (optional) Field used to store the reason of the last change of the statusField + (optional) Field used to store the reason of the last change of the <code>statusField</code> - (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. + (optional) Value of <code>statusField</code> 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 <code>statusField</code> indicating the processing of the row resulted in an error @@ -2741,12 +2790,12 @@ - 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 <code>statusField</code> indicating is being processed. Can be left emtpy if database has <code>SKIP LOCKED</code> functionality and the <code>transactionAttribute</code> of the <code>Receiver</code> can be (and is) set to <code>Required</code> or <code>RequiresNew</code>. - Value of status field indicating message is on Hold, temporarily + Value of <code>statusField</code> indicating message is on Hold, temporarily @@ -2818,17 +2867,18 @@ - 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 + Field containing the status of the message. + <b>NB: For optimal performance, an index should exist that starts with this field, followed by all fields that are used with a fixed value in the select condition, and end with the <code>orderField</code>. 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 date and time of the last change of the <code>statusField</code> Default: MESSAGEDATE - (optional) Field used to store the reason of the last change of the statusField Default: COMMENTS + (optional) Field used to store the reason of the last change of the <code>statusField</code> Default: COMMENTS @@ -2843,7 +2893,7 @@ - Value of statusField indicating the processing of the row resulted in an error Default: <code>E</code> + Value of <code>statusField</code> indicating the processing of the row resulted in an error Default: <code>E</code> @@ -2980,11 +3030,6 @@ 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 @@ -3023,6 +3068,12 @@ If set to true the ibis will automatically create an etag Default: false + + + Uses an JsonPipe to convert the json-input to xml, and xml-output to json. + Use with caution, a properly configured Input/Output-wrapper can do much more and is more robust! Default: true + + @@ -3338,7 +3389,7 @@ - + @@ -3424,7 +3475,7 @@ - If <code>true</code>, the the cache is reloaded after the JVM restarts Default: false + If <code>true</code>, the cache is stored on disk and survives configuration reloads & JVM restarts. Default: false @@ -3525,7 +3576,16 @@ - Sender to work with Amazon S3. + Sender to work with the Amazon S3 Filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom user-metadata on S3 files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> @@ -3901,8 +3961,7 @@ - Requires the net.bankid.merchant.library V1.06+. - Compile with Java 1.7+ + Requires the net.bankid.merchant.library V1.2.9 @@ -3932,15 +3991,15 @@ - Sender used to run JavaScript code using J2V8 + Sender used to run JavaScript code using `JavascriptEngine` implementations. <p> - 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 + 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. </p> <p> - The result of the javascript function should be of type String, or directly convertible to String from a primitive type + The result of the Javascript function should be of type String, or directly convertible to String from a primitive type or an array of primitive types / strings, as the output of the sender will be of type String. </p> <p> @@ -4076,6 +4135,18 @@ + + Sender to work with the server local filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom extended attributes on files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> + @@ -4414,7 +4485,7 @@ 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. + while the original sender will return its result to the pipeline. <p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p> @@ -4447,7 +4518,7 @@ </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 + have a corresponding IParameter entry. Output parameters should have {@code mode="OUTPUT"}, or {@code mode="INOUT"} depending on how the stored procedure is defined. </p> <p> @@ -4531,31 +4602,19 @@ - + - Sender that sends a message via a WebService based on NTLM authentication. + Sender that sends a message via a WebService. - + - - - Sender that sends a message via a WebService. - - - - - - - - - - + XCom client voor het versturen van files via XCom. @@ -4837,7 +4896,7 @@ - + @@ -4875,7 +4934,7 @@ - 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 <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: false @@ -4936,6 +4995,14 @@ + + + Filter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLY + + + + + @@ -4962,7 +5029,8 @@ - The connection timeout in seconds Default: 10 + READ_TIMEOUT timeout in MS. + Defaults to 10000, inherited from HttpSender#setTimeout. Default: 10000 @@ -5202,7 +5270,7 @@ - + @@ -5423,7 +5491,7 @@ - + @@ -5921,7 +5989,7 @@ - + @@ -5950,7 +6018,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -6015,7 +6083,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -6116,11 +6184,6 @@ 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 @@ -6189,7 +6252,11 @@ - + + + + + This is the contract number for iDIN the Merchant received from its Acquirer after registration, @@ -6264,7 +6331,7 @@ 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 @@ -6285,6 +6352,13 @@ + + + + + Load configuration from XML. Attributes may overwrite this 'default'. + + @@ -6297,7 +6371,7 @@ - + @@ -6393,7 +6467,7 @@ - the name of the JavaScript engine to be used. Default: J2V8 + the name of the JavaScript engine to use. Default: J2V8 @@ -6654,7 +6728,7 @@ - + @@ -6727,7 +6801,13 @@ - Optional base folder, that serves as root for all other folders + Path to the folder that serves as the root of this virtual filesystem. All specifications of folders or files are relative to this root. + When the root is left unspecified, absolute paths to files and folders can be used + + + + + Whether the LocalFileSystem tries to create the root folder if it doesn't exist yet. @@ -6823,7 +6903,7 @@ - + @@ -6837,10 +6917,17 @@ 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> + + + Set the slotId, an identifier to keep separate the messages inserted + by different MessageStoreSenders. + <br/> + This field should be set. + + - @@ -6866,7 +6953,15 @@ - + + + Set the slotId, an identifier to keep separate the messages inserted + by different JdbcTransactionalStorage instances. + <br/> + This field is optional, unless the attribute #onlyStoreWhenMessageIdUnique is + set to {@code true}. + + @@ -6968,7 +7063,14 @@ - 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; + Regular expression to mask strings in the errorStore/logStore. + Every character between to the strings in this expression will be replaced by a '*'. + <br/> + 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; + <br/> + When no hideRegex is configured on the errorStore / logStore but is configured on the org.frankframework.receivers.Receiver#setHideRegex(String), + then the Receiver's hideRegex is used for the errorStore / logStore. @@ -7053,7 +7155,7 @@ - + @@ -7075,7 +7177,7 @@ NetStorage action to be used - + @@ -7142,7 +7244,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -7471,7 +7573,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -7851,64 +7953,6 @@ - - - - - - - - - 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 - - - - - - - @@ -8000,7 +8044,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -8209,15 +8253,9 @@ - - - - - - @@ -8318,7 +8356,7 @@ - + @@ -8347,7 +8385,16 @@ - Sender to work with Amazon S3. + Sender to work with the Amazon S3 Filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom user-metadata on S3 files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> @@ -8723,8 +8770,7 @@ - Requires the net.bankid.merchant.library V1.06+. - Compile with Java 1.7+ + Requires the net.bankid.merchant.library V1.2.9 @@ -8754,15 +8800,15 @@ - Sender used to run JavaScript code using J2V8 + Sender used to run JavaScript code using `JavascriptEngine` implementations. <p> - 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 + 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. </p> <p> - The result of the javascript function should be of type String, or directly convertible to String from a primitive type + The result of the Javascript function should be of type String, or directly convertible to String from a primitive type or an array of primitive types / strings, as the output of the sender will be of type String. </p> <p> @@ -8898,6 +8944,18 @@ + + Sender to work with the server local filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom extended attributes on files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> + @@ -9236,7 +9294,7 @@ 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. + while the original sender will return its result to the pipeline. <p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p> @@ -9269,7 +9327,7 @@ </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 + have a corresponding IParameter entry. Output parameters should have {@code mode="OUTPUT"}, or {@code mode="INOUT"} depending on how the stored procedure is defined. </p> <p> @@ -9353,18 +9411,6 @@ - - - Sender that sends a message via a WebService based on NTLM authentication. - - - - - - - - - Sender that sends a message via a WebService. @@ -9730,7 +9776,14 @@ - 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; + Regular expression to mask strings in the errorStore/logStore. + Every character between to the strings in this expression will be replaced by a '*'. + <br/> + 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; + <br/> + When no hideRegex is configured on the errorStore / logStore but is configured on the org.frankframework.receivers.Receiver#setHideRegex(String), + then the Receiver's hideRegex is used for the errorStore / logStore. @@ -9987,7 +10040,7 @@ - + @@ -10157,7 +10210,7 @@ - + @@ -10723,7 +10776,7 @@ - + @@ -10883,7 +10936,7 @@ - + @@ -11290,6 +11343,11 @@ If true, the password is sent digested; Otherwise it is sent in clear text Default: true + + + For direction=<code>wrap</code> only: When false, adds an XML declaration to the output message. Default: true + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. @@ -11428,7 +11486,7 @@ - + @@ -11738,7 +11796,7 @@ - + @@ -11757,7 +11815,7 @@ - + @@ -11808,7 +11866,7 @@ 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/> + <code>jakarta.jms.TextMessage</code>s <br/><br/> </p> @@ -12499,8 +12557,149 @@ - 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 + This Pipe opens and returns a file from the classpath. The filename is a mandatory parameter to use. You can + provide this by using the <code>filename</code> attribute or with a <code>param</code> element to be able to + use a sessionKey for instance. + + <h2>Migrating from deprecated features</h2> + The FixedResultPipe was a jack of all trades. You could use it to read a file (only text) and/or use + a 'resultString' to find / replace values in. The following migrations are available: + + <h3>For using a 'resultString'</h3> + You can use the EchoPipe for a static value. This looked like this before: + + <pre> + {@code + <pipe name="HelloWorld" className="org.frankframework.pipes.FixedResult" returnString="Hello World"> + <forward name="success" path="EXIT"/> + </pipe> + } + </pre> + Becomes: + <pre> + {@code + <pipe name="HelloWorld" className="org.frankframework.pipes.EchoPipe" getInputFromFixedValue="Hello World"> + <forward name="success" path="EXIT"/> + </pipe> + } + </pre> + + <h3>For replacing a value</h3> + You can use the ReplacerPipe to replace a value in multiple ways. First, when you need to replace a placeholder with a parameter. + This looked like: + <pre> + {@code + <pipe name="make unique message" className="org.frankframework.pipes.FixedResultPipe" + returnString="&lt;msg mid=&quot;MID&quot; action=&quot;ACTION&quot; /&gt;" replaceFixedParams="true"> + <param name="MID" sessionKey="mid" /> + <param name="ACTION" xpathExpression="request/@action" /> + </pipe> + } + </pre> + + And can now be written like this (note the ?{..} syntax): + <pre> + {@code + <pipe name="make unique message" className="org.frankframework.pipes.ReplacerPipe" + getInputFromFixedValue="&lt;msg mid=&quot;?{MID}&quot; action=&quot;?{ACTION}&quot; /&gt;"> + <param name="MID" sessionKey="mid" /> + <param name="ACTION" xpathExpression="request/@action" /> + </pipe> + } + </pre> + + When you need to replace a fixed value use the ReplacerPipe with find and replace. This looked like this: + <pre> + {@code + <FixedResultPipe name="InputValidateError" + filename="ManageFileSystem/xml/ErrorMessage.xml" + replaceFrom="%reasonCode" replaceTo="NOT_WELL_FORMED_XML"> + <forward name="success" path="EXIT" /> + </FixedResultPipe> + } + </pre> + + And now should be solved like this: + <pre> + {@code + <FixedResultPipe name="InputValidateError" + filename="ManageFileSystem/xml/ErrorMessage.xml"> + <forward name="success" path="replaceReasonCode" /> + </FixedResultPipe> + <ReplacerPipe name="replaceReasonCode" + find="%reasonCode" + replace="NOT_WELL_FORMED_XML"> + <forward name="success" path="EXIT" /> + </ReplacerPipe> + } + </pre> + This is also an example of now using two pipes to achieve the same result. Each pipe has its own responsibility. + + <h2>More complex configurations</h2> + In some cases, a combination of the above is needed to achieve what worked before. In some cases, FixedResultPipe + was also used to store information in the session. For example, a port of configuration in the JMS listener sender configuration looked like this: + <pre> + {@code + <CompareStringPipe name="compareIdAndCid" > + <param name="operand1" sessionKey="id"/> + <param name="operand2" sessionKey="cid"/> + <forward name="equals" path="IdAndCidSame" /> + <forward name="lessthan" path="IdAndCidDifferent" /> + <forward name="greaterthan" path="IdAndCidDifferent" /> + </CompareStringPipe> + <FixedResultPipe name="IdAndCidSame" returnString="true" storeResultInSessionKey="IdAndCidSame"> + <forward name="success" path="displayKeys" /> + </FixedResultPipe> + <FixedResultPipe name="IdAndCidDifferent" returnString="false" storeResultInSessionKey="IdAndCidSame"> + <forward name="success" path="displayKeys" /> + </FixedResultPipe> + + <pipe name="displayKeys" className="org.frankframework.pipes.FixedResultPipe" + returnString="branch [BRANCH] Orignal Id [MID] cid [CID] id=cid [SAME]" replaceFixedParams="true"> + <param name="BRANCH" sessionKey="originalMessage" xpathExpression="*&#47;@branch" /> + <param name="MID" sessionKey="id" /> + <param name="CID" sessionKey="cid" /> + <param name="SAME" sessionKey="IdAndCidSame" /> + <forward name="success" path="EXIT" /> + </pipe> + } + </pre> + + Was rewritten to the following: + <pre> + {@code + <CompareStringPipe name="compareIdAndCid" > + <param name="operand1" sessionKey="id"/> + <param name="operand2" sessionKey="cid"/> + <forward name="equals" path="IdAndCidSame" /> + <forward name="lessthan" path="IdAndCidDifferent" /> + <forward name="greaterthan" path="IdAndCidDifferent" /> + </CompareStringPipe> + + <PutInSessionPipe name="IdAndCidSame" value="true" sessionKey="IdAndCidSame"> + <forward name="success" path="putOriginalMessageInSession" /> + </PutInSessionPipe> + <PutInSessionPipe name="IdAndCidDifferent" value="false" sessionKey="IdAndCidSame"> + <forward name="success" path="putOriginalMessageInSession" /> + </PutInSessionPipe> + + <PutInSessionPipe name="putOriginalMessageInSession" sessionKey="incomingMessage"/> + + <pipe name="displayKeys" className="org.frankframework.pipes.ReplacerPipe" + getInputFromFixedValue="branch [?{BRANCH}] Original Id [?{MID}] cid [?{CID}] id=cid [?{SAME}]"> + <param name="BRANCH" sessionKey="originalMessage" xpathExpression="*&#47;@branch" /> + <param name="MID" sessionKey="id" /> + <param name="CID" sessionKey="cid" /> + <param name="SAME" sessionKey="IdAndCidSame" /> + <forward name="success" path="EXIT" /> + </pipe> + } + </pre> + <p> + + <h2>The features/documentation of the deprecated features</h2> + 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 @@ -12508,11 +12707,13 @@ <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> + 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> + 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 @@ -12646,19 +12847,6 @@ - - - Selects an exitState, based on the content-type of a httpServletRequest - object as input. - - - - - - - - - Pipe that increases the integer value of a session variable. @@ -12897,6 +13085,21 @@ + + Pipe to work with the server local filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom extended attributes on files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> + <p> + If extended attributes actually can be written depends on the underlying OS / filesystem. + </p> + @@ -12984,7 +13187,7 @@ - Returns random password. + Generates a random password. @@ -13101,8 +13304,18 @@ - Replaces all occurrences of one string with another. - Optionally strips or replaces XML non-printable characters. + This Pipe is used to replace values in a few ways. The following steps are performed: + <ol> + <li>If <code>find</code> is provided, it will be replaced by <code>replace</code></li> + <li>The resulting string is substituted based on the parameters of this pipe. It will replace values in the input enclosed + with ?{}, for instance: ?{parameterOne}, with parameters of this pipe. If a parameter for the given value is not found, it + will not be replaced and the '?{parameterOne}' value will remain in the output. + <p> + See Parameter to see how parameter values are determined.</li> + <p> + <li>If attribute <code>substituteVars</code> is <code>true</code>, then expressions <code>${...}</code> are substituted using + system properties, session variables and application properties. Please note that no <code>${...}</code> patterns are left in the input. </li> + </ol> @@ -13239,7 +13452,7 @@ - Skip a number of bytes or characters from the input. + Skip a number of bytes or characters from the input message. @@ -13439,7 +13652,7 @@ - Selects an forward, based on XPath evaluation + Selects a forward, based on XPath evaluation @@ -13667,7 +13880,11 @@ 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. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + + Only valid for xpathexpression Default: text @@ -14004,7 +14221,11 @@ 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. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + + Only valid for xpathexpression Default: text @@ -14096,29 +14317,14 @@ 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 + flag indicates whether the result must be written to the message or to a file (filename = message) Default: true when outputDirectory is not set. @@ -14345,47 +14551,11 @@ - - - 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 - - @@ -14575,19 +14745,6 @@ - - - - - - - - - - - - - @@ -14633,7 +14790,7 @@ - forward returned when <code>'true'</code> Default: then + forward returned when <code>true</code> Default: then @@ -14969,10 +15126,13 @@ 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 + + + @@ -15102,7 +15262,13 @@ - the folder that serves as the root of this virtual filesystem + Path to the folder that serves as the root of this virtual filesystem. All specifications of folders or files are relative to this root. + When the root is left unspecified, absolute paths to files and folders can be used + + + + + Whether the LocalFileSystem tries to create the root folder if it doesn't exist yet. @@ -15136,7 +15302,7 @@ - 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 <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: false @@ -15197,6 +15363,14 @@ + + + Filter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLY + + + + + @@ -15300,49 +15474,44 @@ - - - whether the securerandom algorithm is to be used (slower) Default: true - - - the lowercase characters to use Default: ('a'..'z') + The lowercase characters to use. Default: ('a'..'z') - the uppercase characters to use Default: ('A'..'Z') + The uppercase characters to use. Default: ('A'..'Z') - the numbers to use Default: ('0'..'9') + The numbers to use. Default: ('0'..'9') - the signs to use Default: (;:_%$#@!&gt;&lt;) + The signs to use. Default: (;:_%$#@!&gt;&lt;) - the number of lowercase characters in the generated password Default: 2 + The number of lowercase characters in the generated password. Default: 2 - the number of digits 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 sign characters in the generated password. Default: 2 - the number of uppercase characters in the generated password Default: 2 + The number of uppercase characters in the generated password. Default: 2 @@ -15658,7 +15827,7 @@ Sets the string that will replace each of the occurrences of the find-string. Newlines can be represented - * by the #setLineSeparatorSymbol(String). + * by the #setLineSeparatorSymbol(String). @@ -15669,11 +15838,11 @@ Replace all characters that are non-printable according to the XML specification with - the value specified in #setReplaceNonXmlChar(String). + the value specified in #setNonXmlReplacementCharacter(String). <p> - <b>NB:</b> This will only replace or remove characters considered non-printable. This - will not check if a given character is valid in the particular way it is used. Thus it will - not remove or replace, for instance, a single {@code '&'} character. + <b>NB:</b> This will only replace or remove characters considered non-printable. This + will not check if a given character is valid in the particular way it is used. Thus it will + not remove or replace, for instance, a single {@code '&'} character. </p> <p> See also: @@ -15684,9 +15853,9 @@ </p> 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 + character that will replace each non-valid xml character (empty string is also possible) (use &amp;#x00bf; for inverted question mark) Default: empty string @@ -15694,6 +15863,11 @@ Whether to allow Unicode supplementary characters (like a smiley) during replaceNonValidXmlCharacters Default: false + + + Should properties (values between <code>${</code> and <code>}</code>) be resolved. Default: false + + @@ -16030,7 +16204,7 @@ - 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 + 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 than the length of the input. Default: 0 @@ -16288,17 +16462,17 @@ - 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 + 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 output is <code>true</code> Default: then - forward returned when 'false' Default: else + forward returned when output is <code>false</code> Default: else @@ -16308,7 +16482,8 @@ - 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 + Regular expression to be applied to the input-message (ignored if <code>xpathExpression</code> is specified). + The input-message <b>fully</b> matching the given regular expression leads to the 'then'-forward @@ -16318,7 +16493,7 @@ - namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. + namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. @@ -16413,11 +16588,6 @@ 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 - - @@ -16479,6 +16649,15 @@ + + + + + + + + + @@ -16515,15 +16694,6 @@ - - - - - - - - - 1. This method first stores all database jobs that can are found in the Quartz Scheduler in a Map. @@ -16562,11 +16732,37 @@ - + - - + + + + + + + + + + + Configuration on which job operates + + + + + Adapter on which job operates + + + + + Receiver on which job operates + + + + + + + @@ -16612,6 +16808,11 @@ + + + + + @@ -16670,37 +16871,6 @@ - - - - - - - - - - - - - - Configuration on which job operates - - - - - Adapter on which job operates - - - - - Receiver on which job operates - - - - - - - @@ -16935,7 +17105,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -17016,100 +17186,6 @@ - - - - - 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 - - - - - Used for StoredProcedure OUT parameters when the database type is a {@code CURSOR} or java.sql.JDBCType#REF_CURSOR. - See also org.frankframework.jdbc.StoredProcedureQuerySender. - <br/> - DEPRECATED: Type LIST can also be used in larva test to Convert a List to an xml-string (&lt;items&gt;&lt;item&gt;...&lt;/item&gt;&lt;item&gt;...&lt;/item&gt;&lt;/items&gt;) - - - - @@ -17117,6 +17193,15 @@ + + + + + + + + + @@ -17131,11 +17216,7 @@ - - - (Only for produces) Attempts to detect the MimeType as well as charset when not known - - + @@ -17144,6 +17225,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17186,7 +17309,7 @@ - Automatically determine the type of the outgoing javax.jms.Message based + Automatically determine the type of the outgoing jakarta.jms.Message based on the value of Message#isBinary(). @@ -17416,6 +17539,13 @@ + + + + + + + @@ -17570,9 +17700,17 @@ + + + + + + + + @@ -17719,7 +17857,7 @@ - + @@ -17826,6 +17964,100 @@ + + + + + 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 + + + + + Used for StoredProcedure OUT parameters when the database type is a {@code CURSOR} or java.sql.JDBCType#REF_CURSOR. + See also org.frankframework.jdbc.StoredProcedureQuerySender. + <br/> + DEPRECATED: Type LIST can also be used in larva test to Convert a List to an xml-string (&lt;items&gt;&lt;item&gt;...&lt;/item&gt;&lt;item&gt;...&lt;/item&gt;&lt;/items&gt;) + + + + @@ -17980,6 +18212,20 @@ + + + + + + + + + + + + + + @@ -18101,7 +18347,7 @@ - + @@ -18138,6 +18384,102 @@ + + + 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. + + + + + 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 <code>session-variables</code> or other <code>parameters</code> using the {name-of-parameter} and is formatted using java.text.MessageFormat. + <br/><b>NB: When referencing other <code>parameters</code> these MUST be defined before the parameter using pattern substitution.</b> + <br/> + <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>. + + + + + If set <code>true</code> pattern elements that cannot be resolved to a parameter or sessionKey are silently resolved to an empty string + + + + + 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 + + + + + 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 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 + StoredProcedureQuerySender. + <b/> + If not specified, the default is INPUT. + + + + + Folder that is scanned for files. If not set, the root is scanned @@ -18262,7 +18604,7 @@ - The JMS javax.jms.Message class for the outgoing message. + The JMS jakarta.jms.Message class for the outgoing message. Currently supported are MessageClass#TEXT for JMS TextMessage, MessageClass#BYTES for JMS BytesMessage, or MessageClass#AUTO for auto-determination based on whether the input Message is binary or character. @@ -18460,7 +18802,7 @@ - Controls wheter the returned package content is db2 format or xml format. + Controls if the returned package content is db2 format or xml format. Possible values: <ul> <li>select:</li> xml content s expected @@ -18899,11 +19241,6 @@ 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/> @@ -19089,7 +19426,9 @@ 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) + so a {@code hideRegex} set on one pipe affects all pipes in the pipeline (and multiple values in different pipes are combined into a single regex). + The regular expressions are matched against part of the log lines. See int) + with {@code mode = 0} for how regular expressions are matched and replaced. @@ -19227,11 +19566,6 @@ 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. diff --git a/src/main/configurations/FrankConfig.xsd b/src/main/configurations/FrankConfig.xsd index d2917c351..8b5f8c138 100644 --- a/src/main/configurations/FrankConfig.xsd +++ b/src/main/configurations/FrankConfig.xsd @@ -1,5 +1,5 @@ - + Container of Adapters that belong together. @@ -41,7 +41,12 @@ - An Adapter receives a specific type of messages and processes them. It has Receivers + The Adapter is the central manager in the framework. It has knowledge of both + Receivers as well as the PipeLine and statistics. + The Adapter is the class that is responsible for configuring, initializing and + accessing/activating Receivers, Pipelines, statistics etc. + <br/> + 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), @@ -294,7 +299,7 @@ - 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; + Regular expression to mask strings in the errorStore/logStore and logfiles. 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; @@ -329,77 +334,31 @@ - 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. + Placeholder class to allow legacy configuration notations <code>&lt;param type='number' /&gt;</code> in the new Frank!Config XSD. + <p> + The attribute <code>type</code> has been removed in favor of explicit ParameterTypes such as: <code>NumberParameter</code>, <code>DateParameter</code> and <code>BooleanParameter</code>. + Using the new elements enables the use of auto-completion for the specified type. - + - - - 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 target data type of the parameter, related to the database or XSLT stylesheet to which the parameter is applied. Default: STRING - - - 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. + Name of the parameter + + + + URL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable. @@ -426,44 +385,9 @@ 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 <code>session-variables</code> or other <code>parameters</code> using the {name-of-parameter} and is formatted using java.text.MessageFormat. - <br/><b>NB: When referencing other <code>parameters</code> these MUST be defined before the parameter using pattern substitution.</b> - <br/> - <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 @@ -479,65 +403,11 @@ 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 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 - StoredProcedureQuerySender. - <b/> - If not specified, the default is INPUT. - - - - - + + + + + @@ -924,7 +794,8 @@ - time (with suffix 'd', 'h', 'm' or 's' in milliseconds) that must have passed at least before a file will be deleted Default: 30d + Minimum amount of time (with suffix 'd', 'h', 'm' or 's') that must have passed before a file will be deleted. + You may only use one suffix! Default: 30d @@ -1124,7 +995,7 @@ - + @@ -1136,6 +1007,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the parameter + + + + + + + + + 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 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> + + + + + + + + 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 + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + Separate the integer part from the fractional part of a number. Default: system default + + + + + In the United States, the comma is typically used for the grouping separator; however, several publication standards follow international standards in using either a space or a thin space character. Default: system default + + + + + 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 + + + + + + + @@ -1143,7 +1187,7 @@ 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 + for all ApiListeners in all configurations combined. You can find them in the Frank!Console under main menu item Webservices, heading Available ApiListeners. <p> The generated OpenAPI specifications have <code>servers</code> and <code>paths</code> objects and @@ -1151,19 +1195,19 @@ <p> It is possible to automatically generate eTags over the listener result. This can be controlled by globally setting the property <code>api.etag.enabled</code> or by setting the attribute <code>updateEtag="true"</code>. - When enabled the listener will respond to the 'if-match', 'if-none-match' headers and may return status code 304. + When enabled the listener will respond to the <code>If-Match</code>, <code>If-None-Match</code> headers and may return status code 304. <p> - In order to make eTags work across multiple nodes you must configure Memcached to store the eTags. + In order to enable eTags for multiple nodes you must configure Memcached to store the eTags. The following properties will need to be set: <ul> - <li>etag.cache.server=ip or hostname:port</li> - <li>etag.cache.type=memcached</li> + <li><code>etag.cache.server=ip or hostname:port</code></li> + <li><code>etag.cache.type=memcached</code></li> </ul> In case authentication, is required the following application properties can be used: <ul> - <li>etag.cache.username</li> - <li>etag.cache.password</li> - <li>etag.cache.authalias</li> + <li><code>etag.cache.username</code></li> + <li><code>etag.cache.password</code></li> + <li><code>etag.cache.authalias</code></li> </ul> @@ -1339,7 +1383,7 @@ <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 - javax.jms.TextMessages and javax.jms.BytesMessage<br/><br/> + jakarta.jms.TextMessages and jakarta.jms.BytesMessage<br/><br/> </p> @@ -1444,7 +1488,7 @@ 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/> + <code>jakarta.jms.TextMessage</code>s <br/><br/> </p> @@ -1494,7 +1538,7 @@ whatever it is configured to.</p> <p><b>Notice:</b> the JmsListener is ONLY capable of processing - javax.jms.TextMessages and javax.jms.BytesMessage<br/><br/> + jakarta.jms.TextMessages and jakarta.jms.BytesMessage<br/><br/> </p> @@ -1625,19 +1669,22 @@ - + - HTTP method(s) to listen to, separated by comma Default: GET + HTTP method(s) to listen to. Inside XML Configurations: for multiple values, use a comma as separator. Default: GET + + + - URI pattern to register this listener on, eq. `/my-listener/{something}/here` + URI pattern to register this listener on, eq. <code>/my-listener/{something}/here</code> - The required contentType on requests, if it doesn't match a 415 Unsupported Media Type is replied Default: ANY + The required contentType on requests, if it doesn't match a <code>415 Unsupported Media Type</code> is replied. Default: ANY @@ -1645,7 +1692,8 @@ - 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 contentType on response. When <code>ANY</code> the response will determine the content-type when it's known and will never calculate it. If no match is found <code>*&#47;*</code> will be used. + When <code>DETECT</code> the framework attempts to detect the MimeType (as well as charset) when not known. Default: ANY @@ -1664,7 +1712,7 @@ - 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> + Enables security for this listener. If you wish to use the application servers authorization roles [AUTHROLE], you need to enable them globally for all ApiListeners with the <code>servlet.ApiListenerServlet.securityRoles=IbisTester,IbisWebService</code> property Default: <code>NONE</code> @@ -1672,7 +1720,7 @@ - Only active when AuthenticationMethod=AUTHROLE. Comma separated list of authorization roles which are granted for this service, eq. IbisTester,IbisObserver", ""}) + Only active when AuthenticationMethod=AUTHROLE. Comma separated list of authorization roles which are granted for this service, eq. <code>IbisTester,IbisObserver</code> @@ -1702,7 +1750,7 @@ - Session key that provides the Content-Disposition header in the response + Session key that provides the <code>Content-Disposition</code> header in the response @@ -1717,7 +1765,7 @@ - Header to extract JWT from + Header to extract JWT from Default: <code>Authorization</code> @@ -1727,22 +1775,22 @@ - Comma separated key value pairs to exactly match with JWT payload. e.g. "sub=UnitTest, aud=test" + Comma separated key value pairs to exactly match with JWT payload. e.g. <code>sub=UnitTest, aud=test</code> - Comma separated key value pairs to one-of match with JWT payload. e.g. "appid=a,appid=b" + Comma separated key value pairs to one-of match with JWT payload. e.g. <code>appid=a,appid=b</code> - Claim name which specifies the role + Claim name which specifies the role (maps to <code>IsUserInRolePipe</code>) - Claim name which specifies the principal name (maps to GetPrincipalPipe) + Claim name which specifies the principal name (maps to <code>GetPrincipalPipe</code>) @@ -1914,7 +1962,7 @@ - + @@ -2709,29 +2757,30 @@ - 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. + Field containing the status of the message. + <b>NB: For optimal performance, an index should exist that starts with this field, followed by all fields that are used with a fixed value in the select condition, and end with the <code>orderField</code>. - (optional) Field used to store the date and time of the last change of the statusField + (optional) Field used to store the date and time of the last change of the <code>statusField</code> - (optional) Field used to store the reason of the last change of the statusField + (optional) Field used to store the reason of the last change of the <code>statusField</code> - (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. + (optional) Value of <code>statusField</code> 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 <code>statusField</code> indicating the processing of the row resulted in an error @@ -2741,12 +2790,12 @@ - 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 <code>statusField</code> indicating is being processed. Can be left emtpy if database has <code>SKIP LOCKED</code> functionality and the <code>transactionAttribute</code> of the <code>Receiver</code> can be (and is) set to <code>Required</code> or <code>RequiresNew</code>. - Value of status field indicating message is on Hold, temporarily + Value of <code>statusField</code> indicating message is on Hold, temporarily @@ -2818,17 +2867,18 @@ - 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 + Field containing the status of the message. + <b>NB: For optimal performance, an index should exist that starts with this field, followed by all fields that are used with a fixed value in the select condition, and end with the <code>orderField</code>. 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 date and time of the last change of the <code>statusField</code> Default: MESSAGEDATE - (optional) Field used to store the reason of the last change of the statusField Default: COMMENTS + (optional) Field used to store the reason of the last change of the <code>statusField</code> Default: COMMENTS @@ -2843,7 +2893,7 @@ - Value of statusField indicating the processing of the row resulted in an error Default: <code>E</code> + Value of <code>statusField</code> indicating the processing of the row resulted in an error Default: <code>E</code> @@ -2980,11 +3030,6 @@ 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 @@ -3023,6 +3068,12 @@ If set to true the ibis will automatically create an etag Default: false + + + Uses an JsonPipe to convert the json-input to xml, and xml-output to json. + Use with caution, a properly configured Input/Output-wrapper can do much more and is more robust! Default: true + + @@ -3338,7 +3389,7 @@ - + @@ -3424,7 +3475,7 @@ - If <code>true</code>, the the cache is reloaded after the JVM restarts Default: false + If <code>true</code>, the cache is stored on disk and survives configuration reloads & JVM restarts. Default: false @@ -3525,7 +3576,16 @@ - Sender to work with Amazon S3. + Sender to work with the Amazon S3 Filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom user-metadata on S3 files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> @@ -3901,8 +3961,7 @@ - Requires the net.bankid.merchant.library V1.06+. - Compile with Java 1.7+ + Requires the net.bankid.merchant.library V1.2.9 @@ -3932,15 +3991,15 @@ - Sender used to run JavaScript code using J2V8 + Sender used to run JavaScript code using `JavascriptEngine` implementations. <p> - 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 + 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. </p> <p> - The result of the javascript function should be of type String, or directly convertible to String from a primitive type + The result of the Javascript function should be of type String, or directly convertible to String from a primitive type or an array of primitive types / strings, as the output of the sender will be of type String. </p> <p> @@ -4076,6 +4135,18 @@ + + Sender to work with the server local filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom extended attributes on files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> + @@ -4414,7 +4485,7 @@ 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. + while the original sender will return its result to the pipeline. <p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p> @@ -4447,7 +4518,7 @@ </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 + have a corresponding IParameter entry. Output parameters should have {@code mode="OUTPUT"}, or {@code mode="INOUT"} depending on how the stored procedure is defined. </p> <p> @@ -4531,31 +4602,19 @@ - + - Sender that sends a message via a WebService based on NTLM authentication. + Sender that sends a message via a WebService. - + - - - Sender that sends a message via a WebService. - - - - - - - - - - + XCom client voor het versturen van files via XCom. @@ -4837,7 +4896,7 @@ - + @@ -4875,7 +4934,7 @@ - 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 <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: false @@ -4936,6 +4995,14 @@ + + + Filter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLY + + + + + @@ -4962,7 +5029,8 @@ - The connection timeout in seconds Default: 10 + READ_TIMEOUT timeout in MS. + Defaults to 10000, inherited from HttpSender#setTimeout. Default: 10000 @@ -5202,7 +5270,7 @@ - + @@ -5423,7 +5491,7 @@ - + @@ -5921,7 +5989,7 @@ - + @@ -5950,7 +6018,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -6015,7 +6083,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -6116,11 +6184,6 @@ 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 @@ -6189,7 +6252,11 @@ - + + + + + This is the contract number for iDIN the Merchant received from its Acquirer after registration, @@ -6264,7 +6331,7 @@ 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 @@ -6285,6 +6352,13 @@ + + + + + Load configuration from XML. Attributes may overwrite this 'default'. + + @@ -6297,7 +6371,7 @@ - + @@ -6393,7 +6467,7 @@ - the name of the JavaScript engine to be used. Default: J2V8 + the name of the JavaScript engine to use. Default: J2V8 @@ -6654,7 +6728,7 @@ - + @@ -6727,7 +6801,13 @@ - Optional base folder, that serves as root for all other folders + Path to the folder that serves as the root of this virtual filesystem. All specifications of folders or files are relative to this root. + When the root is left unspecified, absolute paths to files and folders can be used + + + + + Whether the LocalFileSystem tries to create the root folder if it doesn't exist yet. @@ -6823,7 +6903,7 @@ - + @@ -6837,10 +6917,17 @@ 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> + + + Set the slotId, an identifier to keep separate the messages inserted + by different MessageStoreSenders. + <br/> + This field should be set. + + - @@ -6866,7 +6953,15 @@ - + + + Set the slotId, an identifier to keep separate the messages inserted + by different JdbcTransactionalStorage instances. + <br/> + This field is optional, unless the attribute #onlyStoreWhenMessageIdUnique is + set to {@code true}. + + @@ -6968,7 +7063,14 @@ - 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; + Regular expression to mask strings in the errorStore/logStore. + Every character between to the strings in this expression will be replaced by a '*'. + <br/> + 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; + <br/> + When no hideRegex is configured on the errorStore / logStore but is configured on the org.frankframework.receivers.Receiver#setHideRegex(String), + then the Receiver's hideRegex is used for the errorStore / logStore. @@ -7053,7 +7155,7 @@ - + @@ -7075,7 +7177,7 @@ NetStorage action to be used - + @@ -7142,7 +7244,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -7471,7 +7573,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -7851,64 +7953,6 @@ - - - - - - - - - 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 - - - - - - - @@ -8000,7 +8044,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -8209,15 +8253,9 @@ - - - - - - @@ -8318,7 +8356,7 @@ - + @@ -8347,7 +8385,16 @@ - Sender to work with Amazon S3. + Sender to work with the Amazon S3 Filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom user-metadata on S3 files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> @@ -8723,8 +8770,7 @@ - Requires the net.bankid.merchant.library V1.06+. - Compile with Java 1.7+ + Requires the net.bankid.merchant.library V1.2.9 @@ -8754,15 +8800,15 @@ - Sender used to run JavaScript code using J2V8 + Sender used to run JavaScript code using `JavascriptEngine` implementations. <p> - 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 + 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. </p> <p> - The result of the javascript function should be of type String, or directly convertible to String from a primitive type + The result of the Javascript function should be of type String, or directly convertible to String from a primitive type or an array of primitive types / strings, as the output of the sender will be of type String. </p> <p> @@ -8898,6 +8944,18 @@ + + Sender to work with the server local filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom extended attributes on files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> + @@ -9236,7 +9294,7 @@ 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. + while the original sender will return its result to the pipeline. <p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p> @@ -9269,7 +9327,7 @@ </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 + have a corresponding IParameter entry. Output parameters should have {@code mode="OUTPUT"}, or {@code mode="INOUT"} depending on how the stored procedure is defined. </p> <p> @@ -9353,18 +9411,6 @@ - - - Sender that sends a message via a WebService based on NTLM authentication. - - - - - - - - - Sender that sends a message via a WebService. @@ -9730,7 +9776,14 @@ - 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; + Regular expression to mask strings in the errorStore/logStore. + Every character between to the strings in this expression will be replaced by a '*'. + <br/> + 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; + <br/> + When no hideRegex is configured on the errorStore / logStore but is configured on the org.frankframework.receivers.Receiver#setHideRegex(String), + then the Receiver's hideRegex is used for the errorStore / logStore. @@ -9987,7 +10040,7 @@ - + @@ -10157,7 +10210,7 @@ - + @@ -10723,7 +10776,7 @@ - + @@ -10883,7 +10936,7 @@ - + @@ -11290,6 +11343,11 @@ If true, the password is sent digested; Otherwise it is sent in clear text Default: true + + + For direction=<code>wrap</code> only: When false, adds an XML declaration to the output message. Default: true + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. @@ -11428,7 +11486,7 @@ - + @@ -11738,7 +11796,7 @@ - + @@ -11757,7 +11815,7 @@ - + @@ -11808,7 +11866,7 @@ 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/> + <code>jakarta.jms.TextMessage</code>s <br/><br/> </p> @@ -12499,8 +12557,149 @@ - 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 + This Pipe opens and returns a file from the classpath. The filename is a mandatory parameter to use. You can + provide this by using the <code>filename</code> attribute or with a <code>param</code> element to be able to + use a sessionKey for instance. + + <h2>Migrating from deprecated features</h2> + The FixedResultPipe was a jack of all trades. You could use it to read a file (only text) and/or use + a 'resultString' to find / replace values in. The following migrations are available: + + <h3>For using a 'resultString'</h3> + You can use the EchoPipe for a static value. This looked like this before: + + <pre> + {@code + <pipe name="HelloWorld" className="org.frankframework.pipes.FixedResult" returnString="Hello World"> + <forward name="success" path="EXIT"/> + </pipe> + } + </pre> + Becomes: + <pre> + {@code + <pipe name="HelloWorld" className="org.frankframework.pipes.EchoPipe" getInputFromFixedValue="Hello World"> + <forward name="success" path="EXIT"/> + </pipe> + } + </pre> + + <h3>For replacing a value</h3> + You can use the ReplacerPipe to replace a value in multiple ways. First, when you need to replace a placeholder with a parameter. + This looked like: + <pre> + {@code + <pipe name="make unique message" className="org.frankframework.pipes.FixedResultPipe" + returnString="&lt;msg mid=&quot;MID&quot; action=&quot;ACTION&quot; /&gt;" replaceFixedParams="true"> + <param name="MID" sessionKey="mid" /> + <param name="ACTION" xpathExpression="request/@action" /> + </pipe> + } + </pre> + + And can now be written like this (note the ?{..} syntax): + <pre> + {@code + <pipe name="make unique message" className="org.frankframework.pipes.ReplacerPipe" + getInputFromFixedValue="&lt;msg mid=&quot;?{MID}&quot; action=&quot;?{ACTION}&quot; /&gt;"> + <param name="MID" sessionKey="mid" /> + <param name="ACTION" xpathExpression="request/@action" /> + </pipe> + } + </pre> + + When you need to replace a fixed value use the ReplacerPipe with find and replace. This looked like this: + <pre> + {@code + <FixedResultPipe name="InputValidateError" + filename="ManageFileSystem/xml/ErrorMessage.xml" + replaceFrom="%reasonCode" replaceTo="NOT_WELL_FORMED_XML"> + <forward name="success" path="EXIT" /> + </FixedResultPipe> + } + </pre> + + And now should be solved like this: + <pre> + {@code + <FixedResultPipe name="InputValidateError" + filename="ManageFileSystem/xml/ErrorMessage.xml"> + <forward name="success" path="replaceReasonCode" /> + </FixedResultPipe> + <ReplacerPipe name="replaceReasonCode" + find="%reasonCode" + replace="NOT_WELL_FORMED_XML"> + <forward name="success" path="EXIT" /> + </ReplacerPipe> + } + </pre> + This is also an example of now using two pipes to achieve the same result. Each pipe has its own responsibility. + + <h2>More complex configurations</h2> + In some cases, a combination of the above is needed to achieve what worked before. In some cases, FixedResultPipe + was also used to store information in the session. For example, a port of configuration in the JMS listener sender configuration looked like this: + <pre> + {@code + <CompareStringPipe name="compareIdAndCid" > + <param name="operand1" sessionKey="id"/> + <param name="operand2" sessionKey="cid"/> + <forward name="equals" path="IdAndCidSame" /> + <forward name="lessthan" path="IdAndCidDifferent" /> + <forward name="greaterthan" path="IdAndCidDifferent" /> + </CompareStringPipe> + <FixedResultPipe name="IdAndCidSame" returnString="true" storeResultInSessionKey="IdAndCidSame"> + <forward name="success" path="displayKeys" /> + </FixedResultPipe> + <FixedResultPipe name="IdAndCidDifferent" returnString="false" storeResultInSessionKey="IdAndCidSame"> + <forward name="success" path="displayKeys" /> + </FixedResultPipe> + + <pipe name="displayKeys" className="org.frankframework.pipes.FixedResultPipe" + returnString="branch [BRANCH] Orignal Id [MID] cid [CID] id=cid [SAME]" replaceFixedParams="true"> + <param name="BRANCH" sessionKey="originalMessage" xpathExpression="*&#47;@branch" /> + <param name="MID" sessionKey="id" /> + <param name="CID" sessionKey="cid" /> + <param name="SAME" sessionKey="IdAndCidSame" /> + <forward name="success" path="EXIT" /> + </pipe> + } + </pre> + + Was rewritten to the following: + <pre> + {@code + <CompareStringPipe name="compareIdAndCid" > + <param name="operand1" sessionKey="id"/> + <param name="operand2" sessionKey="cid"/> + <forward name="equals" path="IdAndCidSame" /> + <forward name="lessthan" path="IdAndCidDifferent" /> + <forward name="greaterthan" path="IdAndCidDifferent" /> + </CompareStringPipe> + + <PutInSessionPipe name="IdAndCidSame" value="true" sessionKey="IdAndCidSame"> + <forward name="success" path="putOriginalMessageInSession" /> + </PutInSessionPipe> + <PutInSessionPipe name="IdAndCidDifferent" value="false" sessionKey="IdAndCidSame"> + <forward name="success" path="putOriginalMessageInSession" /> + </PutInSessionPipe> + + <PutInSessionPipe name="putOriginalMessageInSession" sessionKey="incomingMessage"/> + + <pipe name="displayKeys" className="org.frankframework.pipes.ReplacerPipe" + getInputFromFixedValue="branch [?{BRANCH}] Original Id [?{MID}] cid [?{CID}] id=cid [?{SAME}]"> + <param name="BRANCH" sessionKey="originalMessage" xpathExpression="*&#47;@branch" /> + <param name="MID" sessionKey="id" /> + <param name="CID" sessionKey="cid" /> + <param name="SAME" sessionKey="IdAndCidSame" /> + <forward name="success" path="EXIT" /> + </pipe> + } + </pre> + <p> + + <h2>The features/documentation of the deprecated features</h2> + 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 @@ -12508,11 +12707,13 @@ <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> + 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> + 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 @@ -12646,19 +12847,6 @@ - - - Selects an exitState, based on the content-type of a httpServletRequest - object as input. - - - - - - - - - Pipe that increases the integer value of a session variable. @@ -12897,6 +13085,21 @@ + + Pipe to work with the server local filesystem. + <p> + In addition to regular parameters for filesystem senders, it is possible + to set custom extended attributes on files by prefixing parameter names with + FileAttribute.. + This prefix will be not be part of the actual metadata property name. + </p> + <p> + The string value of these parameters will be used as value of the custom metadata attribute. + </p> + <p> + If extended attributes actually can be written depends on the underlying OS / filesystem. + </p> + @@ -12984,7 +13187,7 @@ - Returns random password. + Generates a random password. @@ -13101,8 +13304,18 @@ - Replaces all occurrences of one string with another. - Optionally strips or replaces XML non-printable characters. + This Pipe is used to replace values in a few ways. The following steps are performed: + <ol> + <li>If <code>find</code> is provided, it will be replaced by <code>replace</code></li> + <li>The resulting string is substituted based on the parameters of this pipe. It will replace values in the input enclosed + with ?{}, for instance: ?{parameterOne}, with parameters of this pipe. If a parameter for the given value is not found, it + will not be replaced and the '?{parameterOne}' value will remain in the output. + <p> + See Parameter to see how parameter values are determined.</li> + <p> + <li>If attribute <code>substituteVars</code> is <code>true</code>, then expressions <code>${...}</code> are substituted using + system properties, session variables and application properties. Please note that no <code>${...}</code> patterns are left in the input. </li> + </ol> @@ -13239,7 +13452,7 @@ - Skip a number of bytes or characters from the input. + Skip a number of bytes or characters from the input message. @@ -13439,7 +13652,7 @@ - Selects an forward, based on XPath evaluation + Selects a forward, based on XPath evaluation @@ -13667,7 +13880,11 @@ 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. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + + Only valid for xpathexpression Default: text @@ -14004,7 +14221,11 @@ 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. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace. + + Only valid for xpathexpression Default: text @@ -14096,29 +14317,14 @@ 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 + flag indicates whether the result must be written to the message or to a file (filename = message) Default: true when outputDirectory is not set. @@ -14345,47 +14551,11 @@ - - - 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 - - @@ -14575,19 +14745,6 @@ - - - - - - - - - - - - - @@ -14633,7 +14790,7 @@ - forward returned when <code>'true'</code> Default: then + forward returned when <code>true</code> Default: then @@ -14969,10 +15126,13 @@ 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 + + + @@ -15102,7 +15262,13 @@ - the folder that serves as the root of this virtual filesystem + Path to the folder that serves as the root of this virtual filesystem. All specifications of folders or files are relative to this root. + When the root is left unspecified, absolute paths to files and folders can be used + + + + + Whether the LocalFileSystem tries to create the root folder if it doesn't exist yet. @@ -15136,7 +15302,7 @@ - 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 <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: false @@ -15197,6 +15363,14 @@ + + + Filter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLY + + + + + @@ -15300,49 +15474,44 @@ - - - whether the securerandom algorithm is to be used (slower) Default: true - - - the lowercase characters to use Default: ('a'..'z') + The lowercase characters to use. Default: ('a'..'z') - the uppercase characters to use Default: ('A'..'Z') + The uppercase characters to use. Default: ('A'..'Z') - the numbers to use Default: ('0'..'9') + The numbers to use. Default: ('0'..'9') - the signs to use Default: (;:_%$#@!&gt;&lt;) + The signs to use. Default: (;:_%$#@!&gt;&lt;) - the number of lowercase characters in the generated password Default: 2 + The number of lowercase characters in the generated password. Default: 2 - the number of digits 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 sign characters in the generated password. Default: 2 - the number of uppercase characters in the generated password Default: 2 + The number of uppercase characters in the generated password. Default: 2 @@ -15658,7 +15827,7 @@ Sets the string that will replace each of the occurrences of the find-string. Newlines can be represented - * by the #setLineSeparatorSymbol(String). + * by the #setLineSeparatorSymbol(String). @@ -15669,11 +15838,11 @@ Replace all characters that are non-printable according to the XML specification with - the value specified in #setReplaceNonXmlChar(String). + the value specified in #setNonXmlReplacementCharacter(String). <p> - <b>NB:</b> This will only replace or remove characters considered non-printable. This - will not check if a given character is valid in the particular way it is used. Thus it will - not remove or replace, for instance, a single {@code '&'} character. + <b>NB:</b> This will only replace or remove characters considered non-printable. This + will not check if a given character is valid in the particular way it is used. Thus it will + not remove or replace, for instance, a single {@code '&'} character. </p> <p> See also: @@ -15684,9 +15853,9 @@ </p> 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 + character that will replace each non-valid xml character (empty string is also possible) (use &amp;#x00bf; for inverted question mark) Default: empty string @@ -15694,6 +15863,11 @@ Whether to allow Unicode supplementary characters (like a smiley) during replaceNonValidXmlCharacters Default: false + + + Should properties (values between <code>${</code> and <code>}</code>) be resolved. Default: false + + @@ -16030,7 +16204,7 @@ - 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 + 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 than the length of the input. Default: 0 @@ -16288,17 +16462,17 @@ - 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 + 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 output is <code>true</code> Default: then - forward returned when 'false' Default: else + forward returned when output is <code>false</code> Default: else @@ -16308,7 +16482,8 @@ - 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 + Regular expression to be applied to the input-message (ignored if <code>xpathExpression</code> is specified). + The input-message <b>fully</b> matching the given regular expression leads to the 'then'-forward @@ -16318,7 +16493,7 @@ - namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. + namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. @@ -16413,11 +16588,6 @@ 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 - - @@ -16479,6 +16649,15 @@ + + + + + + + + + @@ -16515,15 +16694,6 @@ - - - - - - - - - 1. This method first stores all database jobs that can are found in the Quartz Scheduler in a Map. @@ -16562,11 +16732,37 @@ - + - - + + + + + + + + + + + Configuration on which job operates + + + + + Adapter on which job operates + + + + + Receiver on which job operates + + + + + + + @@ -16612,6 +16808,11 @@ + + + + + @@ -16670,37 +16871,6 @@ - - - - - - - - - - - - - - Configuration on which job operates - - - - - Adapter on which job operates - - - - - Receiver on which job operates - - - - - - - @@ -16935,7 +17105,7 @@ - Timeout in ms of obtaining a connection/result. 0 means no timeout Default: 10000 + Timeout in ms of obtaining a connection/result. Default: 10000 @@ -17016,100 +17186,6 @@ - - - - - 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 - - - - - Used for StoredProcedure OUT parameters when the database type is a {@code CURSOR} or java.sql.JDBCType#REF_CURSOR. - See also org.frankframework.jdbc.StoredProcedureQuerySender. - <br/> - DEPRECATED: Type LIST can also be used in larva test to Convert a List to an xml-string (&lt;items&gt;&lt;item&gt;...&lt;/item&gt;&lt;item&gt;...&lt;/item&gt;&lt;/items&gt;) - - - - @@ -17117,6 +17193,15 @@ + + + + + + + + + @@ -17131,11 +17216,7 @@ - - - (Only for produces) Attempts to detect the MimeType as well as charset when not known - - + @@ -17144,6 +17225,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17186,7 +17309,7 @@ - Automatically determine the type of the outgoing javax.jms.Message based + Automatically determine the type of the outgoing jakarta.jms.Message based on the value of Message#isBinary(). @@ -17416,6 +17539,13 @@ + + + + + + + @@ -17570,9 +17700,17 @@ + + + + + + + + @@ -17719,7 +17857,7 @@ - + @@ -17826,6 +17964,100 @@ + + + + + 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 + + + + + Used for StoredProcedure OUT parameters when the database type is a {@code CURSOR} or java.sql.JDBCType#REF_CURSOR. + See also org.frankframework.jdbc.StoredProcedureQuerySender. + <br/> + DEPRECATED: Type LIST can also be used in larva test to Convert a List to an xml-string (&lt;items&gt;&lt;item&gt;...&lt;/item&gt;&lt;item&gt;...&lt;/item&gt;&lt;/items&gt;) + + + + @@ -17980,6 +18212,20 @@ + + + + + + + + + + + + + + @@ -18101,7 +18347,7 @@ - + @@ -18138,6 +18384,102 @@ + + + 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. + + + + + 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 <code>session-variables</code> or other <code>parameters</code> using the {name-of-parameter} and is formatted using java.text.MessageFormat. + <br/><b>NB: When referencing other <code>parameters</code> these MUST be defined before the parameter using pattern substitution.</b> + <br/> + <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>. + + + + + If set <code>true</code> pattern elements that cannot be resolved to a parameter or sessionKey are silently resolved to an empty string + + + + + 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 + + + + + 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 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 + StoredProcedureQuerySender. + <b/> + If not specified, the default is INPUT. + + + + + Folder that is scanned for files. If not set, the root is scanned @@ -18262,7 +18604,7 @@ - The JMS javax.jms.Message class for the outgoing message. + The JMS jakarta.jms.Message class for the outgoing message. Currently supported are MessageClass#TEXT for JMS TextMessage, MessageClass#BYTES for JMS BytesMessage, or MessageClass#AUTO for auto-determination based on whether the input Message is binary or character. @@ -18460,7 +18802,7 @@ - Controls wheter the returned package content is db2 format or xml format. + Controls if the returned package content is db2 format or xml format. Possible values: <ul> <li>select:</li> xml content s expected @@ -18899,11 +19241,6 @@ 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/> @@ -19089,7 +19426,9 @@ 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) + so a {@code hideRegex} set on one pipe affects all pipes in the pipeline (and multiple values in different pipes are combined into a single regex). + The regular expressions are matched against part of the log lines. See int) + with {@code mode = 0} for how regular expressions are matched and replaced. @@ -19227,11 +19566,6 @@ 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.