Releases: Permafrost/TundraTN
v0.0.38
The changes included in this release are as follows:
- update
./code/jars/Tundra.jar
library with same version used by Tundra v0.0.38, required for compatibility between the two packages Tundra and TundraTN
To install, download TundraTN-v0.0.38.zip
, copy to IntegrationServer/replicate/instances/<instance>/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.38.
v0.0.37
The changes included in this release are as follows:
- add
tundra.tn.document.duplicate:content
for checking for duplicates using a SHA-512 message digest of the document content - add
tundra.tn.document.duplicate:key
service to calculate a unique key for duplicate detection for a given document - add
tundra.tn.queue:expedite
to deliver queued documents on a given queue immediately rather than waiting for the next scheduled delivery time - add
tundra.tn.support.queue:restart
for restarting queue processing - add
tundra.tn.support.system:export
for exporting all the document attribute, document type, profile, delivery queue, and routing rule components as a stable and therefore comparable JSON string - change
permafrost.tundra.lang.BaseException
and sub-classes to no longer implementSerializable
interface as it is not required - change
tundra.tn.content:recognize
to work around issue with Trading Networks suppressing loss of network or database connection errors at time of resolving the extracted sender and/or receiver and instead defaulting to the Unknown profile, the work around checks if the recognized bizdoc is an XML document type and has been recognized with an Unknown sender and/or receiver, and if so it then attempts to re-resolve the sender and/or receiver using the TundraTN in-memory profile cache and hence removing the reliance on the network / database at the time of resolution - change
tundra.tn.content:route
to automatically log the transport info as a content part when top-level service is invoked externally - change
tundra.tn.document.attribute.string.transformer.find:all
,tundra.tn.document.attribute.string.transformer.find:any
, andtundra.tn.document.attribute.string.transformer.find:none
to be implemented in Java to improve performance, and fix to correctly treat the providedarg
input argument as a regular expression pattern rather than a literal as per the existing service documentation - change
tundra.tn.document.attribute.string.transformer.match:all
,tundra.tn.document.attribute.string.transformer.match:any
, andtundra.tn.document.attribute.string.transformer.match:none
to be implemented in Java to improve performance, and fix to correctly treat the providedarg
input argument as a regular expression pattern rather than a literal as per the existing service documentation - change
tundra.tn.document.attribute:merge
to attempt to automatically parse datetime and number strings when settingDATETIME
,DATETIME LIST
,NUMBER
, andNUMBER LIST
attribute values using strings - change
tundra.tn.document.attribute:merge
to try parsing number attribute string values first usingjava.math.BigDecimal
and if that fails then try usingjava.text.DecimalFormat
- change
tundra.tn.document:route
to normalize attributes before persisting by removing any attributes which are not defined or not active in Trading Networks, and by reformatting any datetime or number attributes to have the expected format required by Trading Networks - change
tundra.tn.exception:handle
to prefix error message summary with "Document processing failed" - change
tundra.tn.profile:get
,tundra.tn.profile:list
, andtundra.tn.profile:self
to includeDisplayName
in output document - change
tundra.tn.queue:each
andtundra.tn.content:route
to set and clear the start time on worker threads when using a thread pool to process tasks and routes - change
tundra.tn.queue:each
and dependent services to log when a retry has been requested for the task against the related bizdoc - change
tundra.tn.queue:each
and dependent services to support new input parameter$expedite?
which whentrue
will run the queue's associated scheduled task immediately when new queued tasks are detected - change
tundra.tn.queue:each
and dependent services to support optionally invoking a$service.exhausted
service when and if all task retries are exhausted at the time of exhaustion - change
tundra.tn.queue:each
and dependent services to support the delegate bizdoc processing service requesting a task to be retried without throwing an exception which allows a task to be retried for reasons other than errors, and for the retry to be requested by the service processing the task - change
tundra.tn.queue:each
to reduce contention on DeliveryJob table: regularly cache the set of queues with currentlyQUEUED
tasks to replace the need for queues to individually poll theDeliveryJob
table to determine whether there are tasks to be processed - change
tundra.tn.support:shutdown
to also clear TN profile cache - change
tundra.tn:deliver
to use a content part name for delivery responses consistent with other diagnostic content parts such as thetundra.tn:receive
transport info content part - change
tundra.tn:process
to include$content.part
and$content.length
in pipeline when$parse?
isfalse
and therefore the bizdoc content part is included in the pipeline as$content
as an input stream when invoking$service
- change
tundra.tn:receive
to supportxmlStream
andxmlBytes
inputs if the XML format is different to the default node format - change
tundra.tn:receive
to usetundra.tn.content:recognize
instead ofWmTN/wm.tn.doc:recognize
, so that it benefits from the previously commited work around to the issue with Trading Networks suppressing loss of network or database connection errors at time of resolving the extracted sender and/or receiver and defaulting to the Unknown profile, with this change messages received viatundra.tn:receive
will more robustly recognize the sender and/or receiver in the face of network or database connectivity loss - change
tundra.tn:receive
,tundra.tn.content:route
, andtundra.tn.document:route
to correct the charset parameter on theBizDocEnvelope
content part content type from the incorrect Trading Networks default of "UTF8" to the correct canonical name of "UTF-8" where applicable - change thread names used by TundraTN thread pools for clarity, simplicity, and consistency with Tundra
- change TundraTN profile cache to be non-lazy and cache all profiles at startup
- fix
tundra.tn.content:recognize
to not throwClassCastException
, work aroundjava.lang.ClassCastException
thrown bywm.tn.doc:recognize
when attempting to recognize an XML document while the pipeline contains a$document
variable whose value is NOT an instance of the classorg.w3c.dom.Node
by removing all$document
variables from the pipeline before callingwm.tn.doc:recognize
- fix
tundra.tn.content:recognize
to to support content encoding not being specified for an XML content stream, rather than throwing ajava.lang.NullPointerException
- fix
tundra.tn.content:recognize
to use the pipeline when serializingIData
document content so that additional variables can be specified to influence the serialization - fix
tundra.tn.content:route
to always log which service routed the document rather than only logging when the route is successful (does not throw an exception) - fix
tundra.tn.content:route
to correctly formatDATETIME
attribute values using thejava.sql.Timestamp.toString()
format - fix
tundra.tn.content:route
to correctly handle routing acom.wm.lang.xml.Document
node object that usesCRLF
(carriage return followed by line feed) line endings to not encode theCR
character as the entity
- fix
tundra.tn.content:route
to correctly run route on current thread when deferred routing is enabled but for whatever reason the route was unable to be submitted to the deferred routing thread executor, rather than waiting forever for the route to finish - fix
tundra.tn.document.attribute:merge
to reformat all existing as well as new attributes that are being saved against theBizDoc
object to ensure attribute values are in the format expected by the methodBizDocStore.updateAttributes()
, this works around an issue with webMethods 10.11 where an MWS user-initiatedBizDoc
route, such as reprocessing a document in MWS, incorrectly formatsDATETIME
attribute values as Unix milliseconds string, rather than the expected JDBC datetime string format, which then causes the following exception to be thrown while routing if the processing callstundra.tn.document.attribute:merge
, which then calls the methodBizDocStore.updateAttributes()
to save the merged attribute changes to the database:com.wm.app.tn.db.DatastoreException: BizDocStore.updateAttributes (0) java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
- fix
tundra.tn.queue:each
and dependent services to not interrupt processing thread when queue processor is using a concurrency of 1 (or in other words is executing tasks with the processing thread) when queue processing is being stopped / shutdown, to avoid interrupting in-flight tasks as most tasks do not support interruption gracefully - fix
tundra.tn:process
to no longer include$content.part
in pipeline when$parse?
isfalse
to avoid clashing with existing userland code that callstundra.tn.document.content:add
using the deprecated input argument name$part
- fix compatibility with webMethods 10.7 by removing log4j dependency
- rename
tundra.tn.document.duplicate:check
totundra.tn.document.duplicate:identity
(note that the old name can still be used and is redirected to the new name for backwards compatibility)
To install, download TundraTN-v0.0.37.zip
, copy to IntegrationServer/replicate/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.37.
v0.0.36
The changes included in this release are as follows:
- add
tundra.tn.document.attribute.datetime.transformer:add
services for parsing a datetime string and then adding a specified duration - add
tundra.tn.document.attribute.datetime.transformer:subtract
services for parsing a datetime string and then subtracting a specified duration - change
README.md
to recommend using git reset rather than git checkout - change
tundra.tn.content:route
to correct the charset parameter on the content part's content type from the incorrect Trading Networks default ofUTF8
to the correct canonical name ofUTF-8
where applicable - change
tundra.tn.profile.delivery:get
implementation to Java for improved performance - change
tundra.tn.queue:each
$error.threshold
backoff strategy to use an exponential backoff up to the specified$retry.wait
to reduce the number of retries - change
tundra.tn.queue:each
$error.threshold
to be used to successively back off/slow task processing if the number of continuously failing tasks exceeds the threshold - change
tundra.tn.queue:each
to improve performance when ordered is true and the queue contains a large number of queued tasks - change
tundra.tn.queue:each
to monitor queue and scheduler status of all queues currently being processed from a dedicated thread, and if disabled/suspended to automatically stop the associated queue processing - change
tundra.tn.support.deliver.destination:normalize
to throw exception when a named delivery method is specifed but does not exist on the receiver's partner profile - change
tundra.tn.support:amend
to use new input variable names when callingtundra.content:amend
- change
tundra.tn:deliver
to include$destination.unresolved
in the input pipeline when$service
is called containing the original value of$destination
prior to it being resolved to a URI - change
tundra.tn:deliver
to include the delivery result returned by the call toTundra/tundra.content:deliver
in the pipeline when invoking the$finally
service (thetundra.content:deliver
protocol implementation services can now return a protocol-specific$response
and$response.context
, which this change makes available for further processing by the$finally
service if required; for example, an HTTP delivery is implemented with theTundra/tundra.content.deliver:http
service, which now returns the HTTP response body in$response
and the HTTP return status and headers in the$response.context
document) - change
tundra.tn:process
and dependent services to support optional variable substitution on the pipeline prior to invoking the given service - change
tundra.tn:split
to not include double quotes in relationship description when relating original to translated documents - change
tundra.tn:translate
to not include double quotes in relationship description when relating original to translated documents - change route and queue related logging to support being written to different configured log target files, which can be configured in the
Tundra
package configuration sectionfeature/log/target
- fix
tundra.tn.document:parse
to infer default namespace prefix by inspecting the root node prefix on the document type'srecordBlueprint
(previously the prefixns
was assumed for the default namespace) - fix
tundra.tn.document:parse
to provide derived namespace prefixes from the default Trading Networksprefix0
prefix in the following order of precedence: (1) declared root node prefix on the document type'srecordBlueprint
, (2) default Integration Serverns
prefix, or (3) default Trading Networksprefix0
prefix - fix
tundra.tn.queue:each
andtundra.tn.document:route
to use current thread for service invocations (previously these services were using a separate thread for service invocation to work aroundjava.lang.NullPointerException
being thrown due to anInvokeState
race condition, which has now been fixed) - fix
tundra.tn:deliver
to handle$destination
URI variable substitution using URI template or percent-delimited variable formats more consistently by only attempting to parse the URI after substitution has been attempted - fix
tundra.tn:derive
amendment keys to support normalizing namespace prefixes against namespace declarations - fix
tundra.tn:enqueue
log message when queuing condition evaluates to false to correctly substitute variables in the logged message
To install, download TundraTN-v0.0.36.zip
, copy to IntegrationServer/replicate/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.36.
v0.0.35
The changes included in this release are as follows:
- add
tundra.tn.document.attribute.string.transformer.profile:find
to lookup a partner profile internal ID given an external ID (this is a replacement for the built-inFN_PARTNER_LOOKUP
function for extracting sender and receiver profiles for a document which is more resilient to short database outages by using an in-memory cache of external IDs) - add
tundra.tn.document.attribute:merge
for creating or updating attributes on a given bizdoc - add
tundra.tn.document:enqueue
for enqueuing aBizDocEnvelope
to a given Trading Networks queue - add
tundra.tn.document:route
for routing aBizDocEnvelope
to Trading Networks - add
tundra.tn.queue:interrupt
for interrupting currently running TundraTN queue processing - add
tundra.tn.rule:disable
for disabling a given rule - add
tundra.tn.rule:enable
for enabling a given rule - add
tundra.tn.rule:execute
for executing the given rule against a given bizdoc - add
tundra.tn.rule:get
for returning a rule associated with a given identity or name - add
tundra.tn.rule:list
for returning the list of all defined rules - add
tundra.tn.rule:match
for returning the first rule whose criteria matches the given bizdoc - add
tundra.tn.rule:normalize
for normalizing a given rule to be aRoutingRule
object - change
tundra.tn.content:recognize
implementation to Java for easier reuse by other components and better performance - change
tundra.tn.content:route
implementation to Java for easier reuse by other components and better performance - change
tundra.tn.document.attribute.number.transformer.priority:imminence
implementation to Java for better performance - change
tundra.tn.document.attribute.number.transformer.priority:imminence
implementation to use double-based maths instead of BigDecimal to improve performance - change
tundra.tn.document.attribute.string.transformer.uri:decode
to use newtundra.uri:decode
input and output parameters - change
tundra.tn.document.attribute.string.transformer.uri:encode
to use newtundra.uri:encode
input and output parameters - change
tundra.tn.document.attribute
services related to datetimes to support newseconds
named pattern which is the seconds since the unix epoch - change
tundra.tn.document.content:add
to use consistent parameter names - change
tundra.tn.document.content:exists
to use consistent parameter names - change
tundra.tn.document.content:get
implementation to Java for better performance - change
tundra.tn.document.content:get
to return$content.length
- change
tundra.tn.document.content:remove
implementation to Java for better performance - change
tundra.tn.document.content:remove
to use consistent parameter names - change
tundra.tn.document.derivative:exists
implementation to Java for better performance - change
tundra.tn.document.duplicate:check
implementation to Java for better performance - change
tundra.tn.document.error:exists
implementation to Java for better performance - change
tundra.tn.document.namespace:get
implementation to Java for better performance - change
tundra.tn.document.schema:get
implementation to Java for better performance - change
tundra.tn.document.status:set
implementation to Java for better performance - change
tundra.tn.document.status:set
to support setting the system status as well as the user status - change
tundra.tn.document.type.schema:get
implementation to Java for better performance - change
tundra.tn.document.type:get
implementation to Java for better performance - change
tundra.tn.document.type:normalize
implementation to Java for better performance - change
tundra.tn.document:add
implementation to Java for better performance - change
tundra.tn.document:exists
implementation to Java for better performance - change
tundra.tn.document:normalize
to not useBizDocEnvelope
document reference for bizdoc input and output to make it clearer that the input bizdoc can be a subset only containing anInternalID
, and so the output bizdoc does not appear duplicated in a caller's pipeline - change
tundra.tn.document:parse
implementation to Java for better performance - change
tundra.tn.document:relate
implementation to Java for better performance - change
tundra.tn.document:reroute
implementation to Java for better performance - change
tundra.tn.document:reroute
to support the dedicated deferred routing thread pool feature when enabled - change
tundra.tn.exception:handle
to include a partial stack trace in activity log full message to help with error diagnosis - change
tundra.tn.exception:handle
to include class name in activity log message summary - change
tundra.tn.exception:handle
to set the exception message summary to the string representation of the exception if the exception message itself is empty - change
tundra.tn.profile.cache:clear
implementation to Java for better performance - change
tundra.tn.profile.cache:list
implementation to Java for better performance - change
tundra.tn.profile.cache:refresh
implementation to Java for better performance - change
tundra.tn.profile.cache:seed
implementation to Java for better performance - change
tundra.tn.queue.each
to only start processing if the current size of the delivery queue is greater than 0 - change
tundra.tn.queue:each
and dependent services to support specifying$error.threshold
input which will terminate queue processing if the number of tasks that continuously fail is equal to or greater than the given threshold - change
tundra.tn.queue:each
implementation to Java for better performance - change
tundra.tn.queue:each
to improve performance when retrieving queued tasks and$concurrency
> 1 by not fetching tasks that are already submitted to the queue processing thread pool for execution - change
tundra.tn.queue:each
to only check the delivery queue and scheduler status once a second to improve performance - change
tundra.tn.queue:each
to support task prioritization usingMessage Priority
bizdoc attribute - change
tundra.tn.support.document.transport:log
implementation to Java for better performance - change
tundra.tn.support.document:parse
to remove double quotes from activity log statements - change
tundra.tn.support:receive
to use newtundra.gzip:decompress
andtundra.zip:decompress
inputs - change
tundra.tn:connect
to use newtundra.service:respond
input argument names - change
tundra.tn:deliver
file
delivery to set the last modified datetime to theContent Updated
attribute value if it exists - change
tundra.tn:deliver
response content part name to be consistent withtundra.tn:receive
transport content part name - change
tundra.tn:deliver
to includetundra.system:reflect
$system
document in the pipeline when variable substition is performed - change
tundra.tn:discard
to use newtundra.service:respond
input argument names - change
tundra.tn:enqueue
to usetundra.tn.document:enqueue
for its implementation - change
tundra.tn:log
implementation to Java for better performance - change
tundra.tn:receive
to mergeJMSMessage/header
andJMSMessage/properties
if they exist intoTN_parms
- change
tundra.tn:receive
to support receiving content as aJMSMessage
- change
tundra.tn:reject
to use newtundra.service:respond
input argument names - change
tundra.tn:retrieve
to set theContent Created
andContent Updated
attributes on the resulting bizdoc when the retrieval protocol supports providing these values - change tundra.tn.exception:handle to include HTTP request context including the headers and a reference to the added response content part in the Trading Networks activity log
- deprecate
tundra.tn.queue:clear
, usetundra.tn.queue:status
instead - fix
BizDocEnvelope
processing services to work correctly when content, attributes, or activity log is not persisted for the document being processed - fix
tundra.tn.content:recognize
to handle non-UTF-8 character encodings correctly by providing the encoding in the current invoke state's content info which is used bywm.tn.doc:handleLargeDoc
- fix
tundra.tn.content:recognize
to ignore current invoke state content info as it relates to the intially received content rather than subsequent content being recognized - fix
tundra.tn.document.namespace:get
to insert thens
prefix before theprefix0
prefix in the returned$namespace
document so that theWmPublic/pub.xml:*
services use thens
prefix (because it appears first in the namespace declarations) when parsing or serializing XML content - fix
tundra.tn.document:parse
to allow pipeline to contain additional settings for the parser - fix
tundra.tn.document:route
to log the transport content part when required - fix
tundra.tn.profile:get
to allow unspecified fields in theDeliveryMethods
document in the returned profile structure - fix
tundra.tn.profile:list
to allow unspecified fields in theDeliveryMethods
document in the returned profile structure - fix
tundra.tn.profile:self
to allow unspecified fields in theDeliveryMethods
document in the returned profile structure - fix
tundra.tn.queue:each
$daemonize?
to work correctly whentrue
on Integration Server 9.x and higher - fix
tundra.tn.queue:each
to ensure tasks are only processed once when$concurrency
> 1, and ordering by creation time works correctly - fix
tundra.tn.queue:each
to not throwNullPointerException
caused by race condition by invoking service on separateServiceThread
allocated from the Integration Server thread pool - fix
tundra.tn.queue:each
to respect explicitly setting$retry.limit
to zero as an override of the receiver profile's retry settings to provide a per-queue way of disabling retries - fix
tundra.tn.reliable:deliver
to allow$destination
to be optional - fix `tundra.tn.support.document:rou...
v0.0.34
The changes included in this release are as follows:
- add
tundra.tn.document.attribute.datetime.transformer:constant
for setting a datetime attribute to a constant value via a document type attribute transformation - add
tundra.tn.document.attribute.number.transformer.priority:imminence
for assigning a message priority based on imminence of the extracted datetime values to current time - add
tundra.tn.document.attribute.number.transformer:constant
for setting a number attribute to a constant value via a document type attribute transformation - add
tundra.tn.document.attribute.string.transformer:constant
for setting a string attribute to a constant value via a document type attribute transformation - add new experimental deferred routing feature to
tundra.tn:receive
andtundra.tn.content:route
for deferring execution of asynchronous processing rules to a dedicated fixed size thread pool, thereby constraining the compute resources required for bizdoc processing; disabled by default, this feature can be enabled via the package configuration./config/package.hjson
file - change
tundra.tn.content:route
to not include any$attributes
specified that do not exist or are not active in Trading Networks on the routed document - change
tundra.tn.document.error:exists
to be implemented in Java for 10x performance improvement - change
tundra.tn.queue:each
and dependent queue processing services to exit their processing loops if the task scheduler is paused or stopped on the server instance on which it is running - change
tundra.tn.queue:each
and dependent queue processing services to reduce contention on the DeliveryJob table of Trading Networks delivery queues by caching in memory which queues have queued tasks for 500ms and first checking this cache to determine whether to continue whenever a queue's scheduled task runs, which improves TN queue performance and reduces the impact on the database when there are many queues scheduled with short polling intervals such as every 1 second - change
tundra.tn.support.document.strict:check
to be implemented in Java for 2x performance improvement - change
tundra.tn.support.service:ensure
to set thread priority to value in$bizdoc/Attributes/Thread Priority
, so that bizdocs with this attribute set can be processed at a higher or lower priority than normal if desired - change
tundra.tn:amend
,tundra.tn:derive
, and dependent services to support document amendments which canmerge
,create
,update
, ordelete
key value pairs - change
tundra.tn:deliver
to perform variable substitution both before and after the invocation of$service
if specified - change
tundra.tn:enqueue
to set bizdoc attributeQueued?
totrue
- change
tundra.tn:process
to not refetch bizdoc after service invocation, as it is no longer required for checking if the user status was changed by the invoked service - change
tundra.tn:receive
to return the HTTP headerX-Response-ID
set to the value of the internal ID of the resulting bizdoc - change
tundra.tn:retrieve
to include the following extracted attributes on routed documents:Content Archive
,Content Name
,Content Source
- fix
tundra.tn.support.document.strict:check
to support duplicate document activity log message on v9.9+ - fix
tundra.tn:branch
handling ofenqueue
action to work correctly when$branches/action/enqueue/$queues
is specified - fix
tundra.tn:branch
to correctly map$content.type.input
and$content.type.output
input arguments for thesplit
andtranslate
actions - fix
tundra.tn:branch
to not callpub.flow:savePipelineToFile
- fix
tundra.tn:receive
so that it responds with an HTTP 409 Conflict response when a duplicate is detected by Trading Networks on v9.9+ - fix
tundra.tn:receive
to not overwrite the extractedDocumentID
on XML documents with the value in the URI query string parameterid
nor the HTTP headerMessage-ID
. If noDocumentID
is extracted when the message is recognized, it will default to the following values in order of precedence: (1) the URL query string parameterid
if specified, (2) the HTTP headerMessage-ID
if specified, (3) a newly generated UUID
To install, download TundraTN-v0.0.34.zip
, copy to IntegrationServer/replicate/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.34.
v0.0.33
The changes included in this release are as follows:
- add
tundra.tn.document:reroute
for reprocessing a given bizdoc, and changetundra.tn:reroute
to use this new service for its implementation - change
tundra.tn.document:get
to support optionally throwing an exception if no bizdoc exists with the specified identity - change
tundra.tn.document:normalize
to support optionally throwing an exception if the given bizdoc does not exist - fix
tundra.tn.document:get
service comment to remove incorrect statement about thrown an exception if the bizdoc is not found - fix
tundra.tn:derive
to includeOriginalSenderID
andOriginalReceiverID
values in derived copies
To install, download TundraTN-v0.0.33.zip
, copy to IntegrationServer/replicate/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.33.
v0.0.32
The changes included in this release are as follows:
- fix
tundra.tn.schema:splitter
service comment typo - fix
tundra.tn.support.document.transport:log
to correctly create a content part name which is also a valid file name on all major operating systems - fix
tundra.tn:chain
service comment typo - fix
tundra.tn:derive
to correctly set the user status to done on the processed bizdoc if it was reprocessed and not previously ignored - fix
tundra.tn:process
service comment typo - fix
tundra.tn:receive
to log transport info when receiving a non-Unknown document from a disallowed/spoofing sender
To install, download TundraTN-v0.0.32.zip
, copy to IntegrationServer/replicate/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.32.
v0.0.31
The changes included in this release are as follows:
- add
tundra.tn.document.duplicate:check
for checking if a document is a duplicate where the uniqueness criteria is the document type, sender, receiver, and document ID - change
tundra.tn.content:route
to include route duration in activity log - change
tundra.tn.document.attribute.number.transformer
services to usetundra.document:uncase
rather than the deprecatedtundra.document.key:lowercase
service - change
tundra.tn.queue:each
to always wait at least 10ms between successive polls of a queue - change
tundra.tn.queue:each
to not throw ajava.util.ConcurrentModificationException
when competing with another thread or process for the head of the queue to support horizontal scaling of queue processing across multiple processes and servers - change
tundra.tn.queue:each
to retry polling an empty queue after 500ms once if the immediately previous poll contained tasks to be processed, to improve performance when processing a queue at the same time tasks are being enqueued - change
tundra.tn.queue:each
to truncate the transport status message logged against queued tasks to 512 characters to reduceserver.log
noise - change
tundra.tn.schema:translator
to declare optional$attributes
output parameter for setting attribute values on the resulting translated document - change
tundra.tn.support.document:derive
to include derive duration in activity log - change
tundra.tn.support.document:route
to include route duration in activity log when route fails strictness check - change
tundra.tn.support.document:route
to not use a ULID for transport info content name suffix as current datetime provides sufficient uniqueness - change
tundra.tn.support.service:reliable
to usetundra.service:invoke
rather thantundra.service:ensure
for simpler implementation and better performance when the invocation of$reliable.service
throws an error - change
tundra.tn.support:deliver
to not use a ULID for deliver response content name suffix as current datetime provides sufficient uniqueness - change
tundra.tn.support:derive
to usetundra.service:invoke
rather thantundra.service:ensure
for better performance when an error occurs - change
tundra.tn.support:receive
to include route duration in activity log - change
tundra.tn:log
to truncate$summary
to 240 characters, and$message
to 1024 characters, before logging to reduceserver.log
noise - change
tundra.tn:receive
to support sender, receiver, id, and type query string values for XML as well as flat file content - fix
tundra.tn.queue:each
use ofjava.text.SimpleDateFormat
to be thread safe - fix
tundra.tn.queue:each
wait between retries to work correctly when$concurrency > 1
- fix
tundra.tn.support.deliver.destination:normalize
to correctly support query strings in non-mailto URIs
To install, download TundraTN-v0.0.31.zip
, copy to IntegrationServer/replicate/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.31.
v0.0.30
The changes included in this release are as follows:
- change
tundra.tn.document.attribute.number.transformer.duration:age
to use newtundra.datetime:format
input and output arguments - change
tundra.tn.document.attribute.number.transformer.duration:effective
to use newtundra.datetime:format
input and output arguments - change
tundra.tn.profile.cache:refresh
to remove deleted profiles from the cache - change
tundra.tn.schema:processor
to reflect support for$status.done
being returned by a processing service - change
tundra.tn:deliver
delivery logs to include theInternalID
andDocumentID
in the log context - change
tundra.tn:deliver
to support defaulting file names forfile
,ftp
,ftps
, andsftp
protocols for destinations that use variable substitution - change
tundra.tn:deliver
to supportsftp
delivery on Integration Server versions 9.0 and higher - change
tundra.tn:receive
to support the sender ID, receiver ID, document ID, and document type name for flat file content being provided via the URL query string parameterssender
,receiver
,id
, andtype
respectively - change
tundra.tn:receive
when receiving content that is not recognized to route as anUnknown
document for diagnostics and return an HTTP 406 Not Acceptable response to the client - change
tundra.tn:retrieve
to supportsftp
retrieval on Integration Server versions 9.0 and higher - change services dependent on
tundra.uri:decode
andtundra.uri:encode
to reflect changes in their input and output arguments - fix
tundra.tn.support.deliver.destination:normalize
to work correctly with change totundra.uri:emit
to support unadorned path strings and files - fix
tundra.tn.support.document:route
to defend against$type
variable in the pipeline when callingtundra.tn.profile:get
- fix
tundra.tn.support:access
to drop all variables before exiting - fix
tundra.tn.support:receive
to drop unnecessary$type
and$string
variables from the pipeline - fix
tundra.tn.support:shutdown
to not remove scheduled tasks for nodes other than the executing node - fix
tundra.tn:deliver
to support URI variable substitution specified with either literal unadorned%
delimiters, or the URI-encoded%25
delimiters - fix
tundra.tn:log
$summary
and$message
inputs to be text fields rather than pick lists - fix
tundra.tn:log
to not attempt to log against a bizdoc that is not persisted which causes a foreign key exception to be logged - fix
tundra.tn:receive
to correctly return an HTTP 403 Forbidden response when a partner attempts to route a document posing as another partner - fix
tundra.tn:translate
service comment to display correctly in Designer
To install, download TundraTN-v0.0.30.zip
, copy to IntegrationServer/replicate/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.30.
v0.0.29
The changes included in this release are as follows:
- add
tundra.tn.document.attribute.string.transformer.datetime.threshold:after
for comparing extracted datetime strings with a threshold datetime calculated from the current datetime plus a specified duration - add
tundra.tn.document.attribute.string.transformer.datetime.threshold:before
for comparing extracted datetime strings with a threshold datetime calculated from the current datetime plus a specified duration - add
tundra.tn.document.attribute.string.transformer.datetime.threshold:equal
for comparing extracted datetime strings with a threshold datetime calculated from the current datetime plus a specified duration - add
tundra.tn:connect
to allow a client to test connecting to and authenticating with Integration Server - add
tundra.tn.document.attribute.string.transformer.uuid:generate
for assigning a newly generatedUUID
to an extracted attribute - change
tundra.tn.content:recognize
to always use the defaultUTF-8
encoding when serializing the provided$content
to text to work around an issue wherewm.tn.doc:handleLargeDoc
does not correctly handle other character sets - change
tundra.tn.content:recognize
to be more memory efficient whenTN_parms/$contentLength
is specified - change
tundra.tn.content:recognize
to not recognize and instead return early if the given$content
is empty (has zero length) - change
tundra.tn.content:recognize
to supportjsonStream
objects - change
tundra.tn.content:recognize
to support new$content.identity
input argument which determines how aDocumentID
is assigned when it is not extracted - change
tundra.tn.content:route
to not route and instead return early if the given$content
is empty (has zero length) - change
tundra.tn.content:route
to not use a document reference for sender and receiver for more flexibility when working with these structures in Developer/Designer - change
tundra.tn.content:route
to silently support content handler inputs such asnode
orffdata
orjsonStream
, andiDocList
for SAP adapter listeners: if$content
is not specified, the first of these other arguments found will be used instead for routing - change
tundra.tn.content:route
to support new$content.identity
input argument which determines how aDocumentID
is assigned when it is not extracted - change
tundra.tn.document.content:get
to return$part
content part name for the content returned - change
tundra.tn.document:get
to not use a document reference for sender and receiver for more flexibility when working with these structures in Developer/Designer - change
tundra.tn.document:normalize
to not use a document reference for sender and receiver for more flexibility when working with these structures in Developer/Designer - change
tundra.tn.profile:get
to support$refresh?
input argument for optionally refreshing profiles from the database - change
tundra.tn.profile:list
to support$refresh?
input argument for optionally refreshing profiles from the database - change
tundra.tn.profile:self
to support$refresh?
input argument for optionally refreshing profiles from the database - change
tundra.tn.support.queue:each
to not restart retrying job completion when completing a delivery job fails after the maximum number of retries - change
tundra.tn.support.queue:registration
to not remove existing registrations if they already exist - change
tundra.tn:chain
,tundra.tn:deliver
,tundra.tn:derive
,tundra.tn:process
,tundra.tn:split
, andtundra.tn:translate
to specify the previous user status required when updating user status toDONE
to ensure if the status is updated by another service or thread it is not overwritten - change
tundra.tn:enqueue
$queue
input to be a pick list that includes the valueReceiver's Queue
for convenience - change
tundra.tn:enqueue
service comment to clarify that when$queues/force?
input argument is false, the document will not be requeued if there is already an existing task with a status ofDELIVERING
orDONE
for the same queue - change
tundra.tn:enqueue
success activity log message to be consistent with the other Tundra bizdoc processing services - change
tundra.tn:log
to drop unused variables - change
tundra.tn:log
to label the call stack asService
in logged diagnostics - change
tundra.tn:receive
to usetundra.service:invoke
instead oftundra.service:ensure
for a simpler implementation - change
tundra.tn:receive
to usetundra.support.receive:respond
for handling the response to the request - change
tundra.tn:retrieve
to support FTP and FTPS file retrieval - change
tundra.tn:retrieve
to support new$content.identity
input argument which determines how aDocumentID
is assigned when it is not extracted - change
tundra.tn:retrieve
to use$content.length
when provided by content processing service forTN_parms/$contentLength
to allow for more memory efficient routing of large content - change activity log messages to only use double quotes where necessary, such as when including a description that could include whitespace in a message; service names and internal document IDs are no longer quoted
- change tundra.tn.exception:handle attached content part names to all be consistent using the format
<service>_<content>_<datetime>_<ulid>
, which ensures the content part names are legal filenames, which then supports exporting the transaction content via My webMethods correctly - change
tundra.tn:deliver
attached content part names to all be consistent using the format<service>_<content>_<datetime>_<ulid>
, which ensures the content part names are legal filenames, which then supports exporting the transaction content via My webMethods correctly - change
tundra.tn:receive
attached content part names to all be consistent using the format<service>_<content>_<datetime>_<ulid>
, which ensures the content part names are legal filenames, which then supports exporting the transaction content via My webMethods correctly - deprecate
tundra.tn.document.attribute.string.transformer.id:generate
, usetundra.tn.document.attribute.string.transformer.uuid:generate
instead - fix
tundra.tn.content:recognize
to drop rather than return undeclared flags output argument - fix
tundra.tn.document.attribute
transformer services to always returnnewValues
even when the input values list is null or does not exist; this fixes the following exception from being logged by Trading Networks:java.lang.Exception: Custom transformation service <service> for the attribute <attribute> did not return "newValues" in the pipeline.
- fix
tundra.tn:amend
to include a$pipeline
input and to drop$status.silence?
- fix
tundra.tn:deliver
to convert Trading Network's default use of the non-canonicalUTF8
character set name to beUTF-8
- fix
tundra.tn:receive
service comment formatting in Designer - fix
tundra.tn:receive
to correctly handle large XML documents - fix exception handling to not include recursive object references to avoid stack overflow errors when serializing
To install, download TundraTN-v0.0.29.zip
, copy to IntegrationServer/replicate/inbound
, and install the release via the package management web page.
Requires Tundra v0.0.29.