Skip to content

Releases: Permafrost/TundraTN

v0.0.38

03 Jul 01:18
Compare
Choose a tag to compare
v0.0.38 Pre-release
Pre-release

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

12 Oct 01:23
Compare
Choose a tag to compare
v0.0.37 Pre-release
Pre-release

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 implement Serializable 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, and tundra.tn.document.attribute.string.transformer.find:none to be implemented in Java to improve performance, and fix to correctly treat the provided arg 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, and tundra.tn.document.attribute.string.transformer.match:none to be implemented in Java to improve performance, and fix to correctly treat the provided arg 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 setting DATETIME, DATETIME LIST, NUMBER, and NUMBER LIST attribute values using strings
  • change tundra.tn.document.attribute:merge to try parsing number attribute string values first using java.math.BigDecimal and if that fails then try using java.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, and tundra.tn.profile:self to include DisplayName in output document
  • change tundra.tn.queue:each and tundra.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 when true 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 currently QUEUED tasks to replace the need for queues to individually poll the DeliveryJob 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 the tundra.tn:receive transport info content part
  • change tundra.tn:process to include $content.part and $content.length in pipeline when $parse? is false 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 support xmlStream and xmlBytes inputs if the XML format is different to the default node format
  • change tundra.tn:receive to use tundra.tn.content:recognize instead of WmTN/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 via tundra.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, and tundra.tn.document:route to correct the charset parameter on the BizDocEnvelope 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 throw ClassCastException, work around java.lang.ClassCastException thrown by wm.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 class org.w3c.dom.Node by removing all $document variables from the pipeline before calling wm.tn.doc:recognize
  • fix tundra.tn.content:recognize to to support content encoding not being specified for an XML content stream, rather than throwing a java.lang.NullPointerException
  • fix tundra.tn.content:recognize to use the pipeline when serializing IData 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 format DATETIME attribute values using the java.sql.Timestamp.toString() format
  • fix tundra.tn.content:route to correctly handle routing a com.wm.lang.xml.Document node object that uses CRLF (carriage return followed by line feed) line endings to not encode the CR character as the entity &#13;
  • 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 the BizDoc object to ensure attribute values are in the format expected by the method BizDocStore.updateAttributes(), this works around an issue with webMethods 10.11 where an MWS user-initiated BizDoc route, such as reprocessing a document in MWS, incorrectly formats DATETIME 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 calls tundra.tn.document.attribute:merge, which then calls the method BizDocStore.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? is false to avoid clashing with existing userland code that calls tundra.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 to tundra.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

01 Jul 07:26
Compare
Choose a tag to compare
v0.0.36 Pre-release
Pre-release

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 of UTF8 to the correct canonical name of UTF-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 calling tundra.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 to Tundra/tundra.content:deliver in the pipeline when invoking the $finally service (the tundra.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 the Tundra/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 section feature/log/target
  • fix tundra.tn.document:parse to infer default namespace prefix by inspecting the root node prefix on the document type's recordBlueprint (previously the prefix ns was assumed for the default namespace)
  • fix tundra.tn.document:parse to provide derived namespace prefixes from the default Trading Networks prefix0 prefix in the following order of precedence: (1) declared root node prefix on the document type's recordBlueprint, (2) default Integration Server ns prefix, or (3) default Trading Networks prefix0 prefix
  • fix tundra.tn.queue:each and tundra.tn.document:route to use current thread for service invocations (previously these services were using a separate thread for service invocation to work around java.lang.NullPointerException being thrown due to an InvokeState 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

03 Jul 07:19
Compare
Choose a tag to compare
v0.0.35 Pre-release
Pre-release

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-in FN_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 a BizDocEnvelope to a given Trading Networks queue
  • add tundra.tn.document:route for routing a BizDocEnvelope 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 a RoutingRule 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 new tundra.uri:decode input and output parameters
  • change tundra.tn.document.attribute.string.transformer.uri:encode to use new tundra.uri:encode input and output parameters
  • change tundra.tn.document.attribute services related to datetimes to support new seconds 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 use BizDocEnvelope document reference for bizdoc input and output to make it clearer that the input bizdoc can be a subset only containing an InternalID, 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 using Message 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 new tundra.gzip:decompress and tundra.zip:decompress inputs
  • change tundra.tn:connect to use new tundra.service:respond input argument names
  • change tundra.tn:deliver file delivery to set the last modified datetime to the Content Updated attribute value if it exists
  • change tundra.tn:deliver response content part name to be consistent with tundra.tn:receive transport content part name
  • change tundra.tn:deliver to include tundra.system:reflect $system document in the pipeline when variable substition is performed
  • change tundra.tn:discard to use new tundra.service:respond input argument names
  • change tundra.tn:enqueue to use tundra.tn.document:enqueue for its implementation
  • change tundra.tn:log implementation to Java for better performance
  • change tundra.tn:receive to merge JMSMessage/header and JMSMessage/properties if they exist into TN_parms
  • change tundra.tn:receive to support receiving content as a JMSMessage
  • change tundra.tn:reject to use new tundra.service:respond input argument names
  • change tundra.tn:retrieve to set the Content Created and Content 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, use tundra.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 by wm.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 the ns prefix before the prefix0 prefix in the returned $namespace document so that the WmPublic/pub.xml:* services use the ns 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 the DeliveryMethods document in the returned profile structure
  • fix tundra.tn.profile:list to allow unspecified fields in the DeliveryMethods document in the returned profile structure
  • fix tundra.tn.profile:self to allow unspecified fields in the DeliveryMethods document in the returned profile structure
  • fix tundra.tn.queue:each $daemonize? to work correctly when true 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 throw NullPointerException caused by race condition by invoking service on separate ServiceThread 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...
Read more

v0.0.34

06 Aug 07:51
Compare
Choose a tag to compare
v0.0.34 Pre-release
Pre-release

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 and tundra.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 can merge, create, update, or delete 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 attribute Queued? to true
  • 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 header X-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 of enqueue 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 the split and translate actions
  • fix tundra.tn:branch to not call pub.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 extracted DocumentID on XML documents with the value in the URI query string parameter id nor the HTTP header Message-ID. If no DocumentID is extracted when the message is recognized, it will default to the following values in order of precedence: (1) the URL query string parameter id if specified, (2) the HTTP header Message-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

30 Aug 11:29
Compare
Choose a tag to compare
v0.0.33 Pre-release
Pre-release

The changes included in this release are as follows:

  • add tundra.tn.document:reroute for reprocessing a given bizdoc, and change tundra.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 include OriginalSenderID and OriginalReceiverID 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

21 Apr 04:17
Compare
Choose a tag to compare
v0.0.32 Pre-release
Pre-release

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

09 Jan 03:57
Compare
Choose a tag to compare
v0.0.31 Pre-release
Pre-release

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 use tundra.document:uncase rather than the deprecated tundra.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 a java.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 reduce server.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 use tundra.service:invoke rather than tundra.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 use tundra.service:invoke rather than tundra.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 reduce server.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 of java.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

06 Nov 10:18
Compare
Choose a tag to compare
v0.0.30 Pre-release
Pre-release

The changes included in this release are as follows:

  • change tundra.tn.document.attribute.number.transformer.duration:age to use new tundra.datetime:format input and output arguments
  • change tundra.tn.document.attribute.number.transformer.duration:effective to use new tundra.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 the InternalID and DocumentID in the log context
  • change tundra.tn:deliver to support defaulting file names for file, ftp, ftps, and sftp protocols for destinations that use variable substitution
  • change tundra.tn:deliver to support sftp 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 parameters sender, receiver, id, and type respectively
  • change tundra.tn:receive when receiving content that is not recognized to route as an Unknown document for diagnostics and return an HTTP 406 Not Acceptable response to the client
  • change tundra.tn:retrieve to support sftp retrieval on Integration Server versions 9.0 and higher
  • change services dependent on tundra.uri:decode and tundra.uri:encode to reflect changes in their input and output arguments
  • fix tundra.tn.support.deliver.destination:normalize to work correctly with change to tundra.uri:emit to support unadorned path strings and files
  • fix tundra.tn.support.document:route to defend against $type variable in the pipeline when calling tundra.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

16 Sep 02:25
Compare
Choose a tag to compare
v0.0.29 Pre-release
Pre-release

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 generated UUID to an extracted attribute
  • change tundra.tn.content:recognize to always use the default UTF-8 encoding when serializing the provided $content to text to work around an issue where wm.tn.doc:handleLargeDoc does not correctly handle other character sets
  • change tundra.tn.content:recognize to be more memory efficient when TN_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 support jsonStream objects
  • change tundra.tn.content:recognize to support new $content.identity input argument which determines how a DocumentID 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 as node or ffdata or jsonStream, and iDocList 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 a DocumentID 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, and tundra.tn:translate to specify the previous user status required when updating user status to DONE 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 value Receiver'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 of DELIVERING or DONE 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 as Service in logged diagnostics
  • change tundra.tn:receive to use tundra.service:invoke instead of tundra.service:ensure for a simpler implementation
  • change tundra.tn:receive to use tundra.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 a DocumentID is assigned when it is not extracted
  • change tundra.tn:retrieve to use $content.length when provided by content processing service for TN_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, use tundra.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 return newValues 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-canonical UTF8 character set name to be UTF-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.