Releases: Permafrost/TundraTN
v0.0.38
The changes included in this release are as follows:
- update
./code/jars/Tundra.jarlibrary 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:contentfor checking for duplicates using a SHA-512 message digest of the document content - add
tundra.tn.document.duplicate:keyservice to calculate a unique key for duplicate detection for a given document - add
tundra.tn.queue:expediteto deliver queued documents on a given queue immediately rather than waiting for the next scheduled delivery time - add
tundra.tn.support.queue:restartfor restarting queue processing - add
tundra.tn.support.system:exportfor 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.BaseExceptionand sub-classes to no longer implementSerializableinterface as it is not required - change
tundra.tn.content:recognizeto 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:routeto 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:noneto be implemented in Java to improve performance, and fix to correctly treat the providedarginput 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:noneto be implemented in Java to improve performance, and fix to correctly treat the providedarginput argument as a regular expression pattern rather than a literal as per the existing service documentation - change
tundra.tn.document.attribute:mergeto attempt to automatically parse datetime and number strings when settingDATETIME,DATETIME LIST,NUMBER, andNUMBER LISTattribute values using strings - change
tundra.tn.document.attribute:mergeto try parsing number attribute string values first usingjava.math.BigDecimaland if that fails then try usingjava.text.DecimalFormat - change
tundra.tn.document:routeto 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:handleto prefix error message summary with "Document processing failed" - change
tundra.tn.profile:get,tundra.tn.profile:list, andtundra.tn.profile:selfto includeDisplayNamein output document - change
tundra.tn.queue:eachandtundra.tn.content:routeto set and clear the start time on worker threads when using a thread pool to process tasks and routes - change
tundra.tn.queue:eachand dependent services to log when a retry has been requested for the task against the related bizdoc - change
tundra.tn.queue:eachand dependent services to support new input parameter$expedite?which whentruewill run the queue's associated scheduled task immediately when new queued tasks are detected - change
tundra.tn.queue:eachand dependent services to support optionally invoking a$service.exhaustedservice when and if all task retries are exhausted at the time of exhaustion - change
tundra.tn.queue:eachand 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:eachto reduce contention on DeliveryJob table: regularly cache the set of queues with currentlyQUEUEDtasks to replace the need for queues to individually poll theDeliveryJobtable to determine whether there are tasks to be processed - change
tundra.tn.support:shutdownto also clear TN profile cache - change
tundra.tn:deliverto use a content part name for delivery responses consistent with other diagnostic content parts such as thetundra.tn:receivetransport info content part - change
tundra.tn:processto include$content.partand$content.lengthin pipeline when$parse?isfalseand therefore the bizdoc content part is included in the pipeline as$contentas an input stream when invoking$service - change
tundra.tn:receiveto supportxmlStreamandxmlBytesinputs if the XML format is different to the default node format - change
tundra.tn:receiveto usetundra.tn.content:recognizeinstead 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:receivewill 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:routeto correct the charset parameter on theBizDocEnvelopecontent 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:recognizeto not throwClassCastException, work aroundjava.lang.ClassCastExceptionthrown bywm.tn.doc:recognizewhen attempting to recognize an XML document while the pipeline contains a$documentvariable whose value is NOT an instance of the classorg.w3c.dom.Nodeby removing all$documentvariables from the pipeline before callingwm.tn.doc:recognize - fix
tundra.tn.content:recognizeto to support content encoding not being specified for an XML content stream, rather than throwing ajava.lang.NullPointerException - fix
tundra.tn.content:recognizeto use the pipeline when serializingIDatadocument content so that additional variables can be specified to influence the serialization - fix
tundra.tn.content:routeto 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:routeto correctly formatDATETIMEattribute values using thejava.sql.Timestamp.toString()format - fix
tundra.tn.content:routeto correctly handle routing acom.wm.lang.xml.Documentnode object that usesCRLF(carriage return followed by line feed) line endings to not encode theCRcharacter as the entity - fix
tundra.tn.content:routeto 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:mergeto reformat all existing as well as new attributes that are being saved against theBizDocobject 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-initiatedBizDocroute, such as reprocessing a document in MWS, incorrectly formatsDATETIMEattribute 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:eachand 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:processto no longer include$content.partin pipeline when$parse?isfalseto avoid clashing with existing userland code that callstundra.tn.document.content:addusing the deprecated input argument name$part - fix compatibility with webMethods 10.7 by removing log4j dependency
- rename
tundra.tn.document.duplicate:checktotundra.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:addservices for parsing a datetime string and then adding a specified duration - add
tundra.tn.document.attribute.datetime.transformer:subtractservices for parsing a datetime string and then subtracting a specified duration - change
README.mdto recommend using git reset rather than git checkout - change
tundra.tn.content:routeto correct the charset parameter on the content part's content type from the incorrect Trading Networks default ofUTF8to the correct canonical name ofUTF-8where applicable - change
tundra.tn.profile.delivery:getimplementation to Java for improved performance - change
tundra.tn.queue:each$error.thresholdbackoff strategy to use an exponential backoff up to the specified$retry.waitto reduce the number of retries - change
tundra.tn.queue:each$error.thresholdto be used to successively back off/slow task processing if the number of continuously failing tasks exceeds the threshold - change
tundra.tn.queue:eachto improve performance when ordered is true and the queue contains a large number of queued tasks - change
tundra.tn.queue:eachto 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:normalizeto throw exception when a named delivery method is specifed but does not exist on the receiver's partner profile - change
tundra.tn.support:amendto use new input variable names when callingtundra.content:amend - change
tundra.tn:deliverto include$destination.unresolvedin the input pipeline when$serviceis called containing the original value of$destinationprior to it being resolved to a URI - change
tundra.tn:deliverto include the delivery result returned by the call toTundra/tundra.content:deliverin the pipeline when invoking the$finallyservice (thetundra.content:deliverprotocol implementation services can now return a protocol-specific$responseand$response.context, which this change makes available for further processing by the$finallyservice if required; for example, an HTTP delivery is implemented with theTundra/tundra.content.deliver:httpservice, which now returns the HTTP response body in$responseand the HTTP return status and headers in the$response.contextdocument) - change
tundra.tn:processand dependent services to support optional variable substitution on the pipeline prior to invoking the given service - change
tundra.tn:splitto not include double quotes in relationship description when relating original to translated documents - change
tundra.tn:translateto 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
Tundrapackage configuration sectionfeature/log/target - fix
tundra.tn.document:parseto infer default namespace prefix by inspecting the root node prefix on the document type'srecordBlueprint(previously the prefixnswas assumed for the default namespace) - fix
tundra.tn.document:parseto provide derived namespace prefixes from the default Trading Networksprefix0prefix in the following order of precedence: (1) declared root node prefix on the document type'srecordBlueprint, (2) default Integration Servernsprefix, or (3) default Trading Networksprefix0prefix - fix
tundra.tn.queue:eachandtundra.tn.document:routeto use current thread for service invocations (previously these services were using a separate thread for service invocation to work aroundjava.lang.NullPointerExceptionbeing thrown due to anInvokeStaterace condition, which has now been fixed) - fix
tundra.tn:deliverto handle$destinationURI 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:deriveamendment keys to support normalizing namespace prefixes against namespace declarations - fix
tundra.tn:enqueuelog 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:findto lookup a partner profile internal ID given an external ID (this is a replacement for the built-inFN_PARTNER_LOOKUPfunction 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:mergefor creating or updating attributes on a given bizdoc - add
tundra.tn.document:enqueuefor enqueuing aBizDocEnvelopeto a given Trading Networks queue - add
tundra.tn.document:routefor routing aBizDocEnvelopeto Trading Networks - add
tundra.tn.queue:interruptfor interrupting currently running TundraTN queue processing - add
tundra.tn.rule:disablefor disabling a given rule - add
tundra.tn.rule:enablefor enabling a given rule - add
tundra.tn.rule:executefor executing the given rule against a given bizdoc - add
tundra.tn.rule:getfor returning a rule associated with a given identity or name - add
tundra.tn.rule:listfor returning the list of all defined rules - add
tundra.tn.rule:matchfor returning the first rule whose criteria matches the given bizdoc - add
tundra.tn.rule:normalizefor normalizing a given rule to be aRoutingRuleobject - change
tundra.tn.content:recognizeimplementation to Java for easier reuse by other components and better performance - change
tundra.tn.content:routeimplementation to Java for easier reuse by other components and better performance - change
tundra.tn.document.attribute.number.transformer.priority:imminenceimplementation to Java for better performance - change
tundra.tn.document.attribute.number.transformer.priority:imminenceimplementation to use double-based maths instead of BigDecimal to improve performance - change
tundra.tn.document.attribute.string.transformer.uri:decodeto use newtundra.uri:decodeinput and output parameters - change
tundra.tn.document.attribute.string.transformer.uri:encodeto use newtundra.uri:encodeinput and output parameters - change
tundra.tn.document.attributeservices related to datetimes to support newsecondsnamed pattern which is the seconds since the unix epoch - change
tundra.tn.document.content:addto use consistent parameter names - change
tundra.tn.document.content:existsto use consistent parameter names - change
tundra.tn.document.content:getimplementation to Java for better performance - change
tundra.tn.document.content:getto return$content.length - change
tundra.tn.document.content:removeimplementation to Java for better performance - change
tundra.tn.document.content:removeto use consistent parameter names - change
tundra.tn.document.derivative:existsimplementation to Java for better performance - change
tundra.tn.document.duplicate:checkimplementation to Java for better performance - change
tundra.tn.document.error:existsimplementation to Java for better performance - change
tundra.tn.document.namespace:getimplementation to Java for better performance - change
tundra.tn.document.schema:getimplementation to Java for better performance - change
tundra.tn.document.status:setimplementation to Java for better performance - change
tundra.tn.document.status:setto support setting the system status as well as the user status - change
tundra.tn.document.type.schema:getimplementation to Java for better performance - change
tundra.tn.document.type:getimplementation to Java for better performance - change
tundra.tn.document.type:normalizeimplementation to Java for better performance - change
tundra.tn.document:addimplementation to Java for better performance - change
tundra.tn.document:existsimplementation to Java for better performance - change
tundra.tn.document:normalizeto not useBizDocEnvelopedocument 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:parseimplementation to Java for better performance - change
tundra.tn.document:relateimplementation to Java for better performance - change
tundra.tn.document:rerouteimplementation to Java for better performance - change
tundra.tn.document:rerouteto support the dedicated deferred routing thread pool feature when enabled - change
tundra.tn.exception:handleto include a partial stack trace in activity log full message to help with error diagnosis - change
tundra.tn.exception:handleto include class name in activity log message summary - change
tundra.tn.exception:handleto set the exception message summary to the string representation of the exception if the exception message itself is empty - change
tundra.tn.profile.cache:clearimplementation to Java for better performance - change
tundra.tn.profile.cache:listimplementation to Java for better performance - change
tundra.tn.profile.cache:refreshimplementation to Java for better performance - change
tundra.tn.profile.cache:seedimplementation to Java for better performance - change
tundra.tn.queue.eachto only start processing if the current size of the delivery queue is greater than 0 - change
tundra.tn.queue:eachand dependent services to support specifying$error.thresholdinput 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:eachimplementation to Java for better performance - change
tundra.tn.queue:eachto 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:eachto only check the delivery queue and scheduler status once a second to improve performance - change
tundra.tn.queue:eachto support task prioritization usingMessage Prioritybizdoc attribute - change
tundra.tn.support.document.transport:logimplementation to Java for better performance - change
tundra.tn.support.document:parseto remove double quotes from activity log statements - change
tundra.tn.support:receiveto use newtundra.gzip:decompressandtundra.zip:decompressinputs - change
tundra.tn:connectto use newtundra.service:respondinput argument names - change
tundra.tn:deliverfiledelivery to set the last modified datetime to theContent Updatedattribute value if it exists - change
tundra.tn:deliverresponse content part name to be consistent withtundra.tn:receivetransport content part name - change
tundra.tn:deliverto includetundra.system:reflect$systemdocument in the pipeline when variable substition is performed - change
tundra.tn:discardto use newtundra.service:respondinput argument names - change
tundra.tn:enqueueto usetundra.tn.document:enqueuefor its implementation - change
tundra.tn:logimplementation to Java for better performance - change
tundra.tn:receiveto mergeJMSMessage/headerandJMSMessage/propertiesif they exist intoTN_parms - change
tundra.tn:receiveto support receiving content as aJMSMessage - change
tundra.tn:rejectto use newtundra.service:respondinput argument names - change
tundra.tn:retrieveto set theContent CreatedandContent Updatedattributes 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:statusinstead - fix
BizDocEnvelopeprocessing services to work correctly when content, attributes, or activity log is not persisted for the document being processed - fix
tundra.tn.content:recognizeto 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:recognizeto 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:getto insert thensprefix before theprefix0prefix in the returned$namespacedocument so that theWmPublic/pub.xml:*services use thensprefix (because it appears first in the namespace declarations) when parsing or serializing XML content - fix
tundra.tn.document:parseto allow pipeline to contain additional settings for the parser - fix
tundra.tn.document:routeto log the transport content part when required - fix
tundra.tn.profile:getto allow unspecified fields in theDeliveryMethodsdocument in the returned profile structure - fix
tundra.tn.profile:listto allow unspecified fields in theDeliveryMethodsdocument in the returned profile structure - fix
tundra.tn.profile:selfto allow unspecified fields in theDeliveryMethodsdocument in the returned profile structure - fix
tundra.tn.queue:each$daemonize?to work correctly whentrueon Integration Server 9.x and higher - fix
tundra.tn.queue:eachto ensure tasks are only processed once when$concurrency> 1, and ordering by creation time works correctly - fix
tundra.tn.queue:eachto not throwNullPointerExceptioncaused by race condition by invoking service on separateServiceThreadallocated from the Integration Server thread pool - fix
tundra.tn.queue:eachto respect explicitly setting$retry.limitto zero as an override of the receiver profile's retry settings to provide a per-queue way of disabling retries - fix
tundra.tn.reliable:deliverto allow$destinationto 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:constantfor setting a datetime attribute to a constant value via a document type attribute transformation - add
tundra.tn.document.attribute.number.transformer.priority:imminencefor assigning a message priority based on imminence of the extracted datetime values to current time - add
tundra.tn.document.attribute.number.transformer:constantfor setting a number attribute to a constant value via a document type attribute transformation - add
tundra.tn.document.attribute.string.transformer:constantfor setting a string attribute to a constant value via a document type attribute transformation - add new experimental deferred routing feature to
tundra.tn:receiveandtundra.tn.content:routefor 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.hjsonfile - change
tundra.tn.content:routeto not include any$attributesspecified that do not exist or are not active in Trading Networks on the routed document - change
tundra.tn.document.error:existsto be implemented in Java for 10x performance improvement - change
tundra.tn.queue:eachand 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:eachand 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:checkto be implemented in Java for 2x performance improvement - change
tundra.tn.support.service:ensureto 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, ordeletekey value pairs - change
tundra.tn:deliverto perform variable substitution both before and after the invocation of$serviceif specified - change
tundra.tn:enqueueto set bizdoc attributeQueued?totrue - change
tundra.tn:processto 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:receiveto return the HTTP headerX-Response-IDset to the value of the internal ID of the resulting bizdoc - change
tundra.tn:retrieveto include the following extracted attributes on routed documents:Content Archive,Content Name,Content Source - fix
tundra.tn.support.document.strict:checkto support duplicate document activity log message on v9.9+ - fix
tundra.tn:branchhandling ofenqueueaction to work correctly when$branches/action/enqueue/$queuesis specified - fix
tundra.tn:branchto correctly map$content.type.inputand$content.type.outputinput arguments for thesplitandtranslateactions - fix
tundra.tn:branchto not callpub.flow:savePipelineToFile - fix
tundra.tn:receiveso that it responds with an HTTP 409 Conflict response when a duplicate is detected by Trading Networks on v9.9+ - fix
tundra.tn:receiveto not overwrite the extractedDocumentIDon XML documents with the value in the URI query string parameteridnor the HTTP headerMessage-ID. If noDocumentIDis extracted when the message is recognized, it will default to the following values in order of precedence: (1) the URL query string parameteridif specified, (2) the HTTP headerMessage-IDif 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:reroutefor reprocessing a given bizdoc, and changetundra.tn:rerouteto use this new service for its implementation - change
tundra.tn.document:getto support optionally throwing an exception if no bizdoc exists with the specified identity - change
tundra.tn.document:normalizeto support optionally throwing an exception if the given bizdoc does not exist - fix
tundra.tn.document:getservice comment to remove incorrect statement about thrown an exception if the bizdoc is not found - fix
tundra.tn:deriveto includeOriginalSenderIDandOriginalReceiverIDvalues 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:splitterservice comment typo - fix
tundra.tn.support.document.transport:logto correctly create a content part name which is also a valid file name on all major operating systems - fix
tundra.tn:chainservice comment typo - fix
tundra.tn:deriveto correctly set the user status to done on the processed bizdoc if it was reprocessed and not previously ignored - fix
tundra.tn:processservice comment typo - fix
tundra.tn:receiveto 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:checkfor checking if a document is a duplicate where the uniqueness criteria is the document type, sender, receiver, and document ID - change
tundra.tn.content:routeto include route duration in activity log - change
tundra.tn.document.attribute.number.transformerservices to usetundra.document:uncaserather than the deprecatedtundra.document.key:lowercaseservice - change
tundra.tn.queue:eachto always wait at least 10ms between successive polls of a queue - change
tundra.tn.queue:eachto not throw ajava.util.ConcurrentModificationExceptionwhen 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:eachto 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:eachto truncate the transport status message logged against queued tasks to 512 characters to reduceserver.lognoise - change
tundra.tn.schema:translatorto declare optional$attributesoutput parameter for setting attribute values on the resulting translated document - change
tundra.tn.support.document:deriveto include derive duration in activity log - change
tundra.tn.support.document:routeto include route duration in activity log when route fails strictness check - change
tundra.tn.support.document:routeto not use a ULID for transport info content name suffix as current datetime provides sufficient uniqueness - change
tundra.tn.support.service:reliableto usetundra.service:invokerather thantundra.service:ensurefor simpler implementation and better performance when the invocation of$reliable.servicethrows an error - change
tundra.tn.support:deliverto not use a ULID for deliver response content name suffix as current datetime provides sufficient uniqueness - change
tundra.tn.support:deriveto usetundra.service:invokerather thantundra.service:ensurefor better performance when an error occurs - change
tundra.tn.support:receiveto include route duration in activity log - change
tundra.tn:logto truncate$summaryto 240 characters, and$messageto 1024 characters, before logging to reduceserver.lognoise - change
tundra.tn:receiveto support sender, receiver, id, and type query string values for XML as well as flat file content - fix
tundra.tn.queue:eachuse ofjava.text.SimpleDateFormatto be thread safe - fix
tundra.tn.queue:eachwait between retries to work correctly when$concurrency > 1 - fix
tundra.tn.support.deliver.destination:normalizeto 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:ageto use newtundra.datetime:formatinput and output arguments - change
tundra.tn.document.attribute.number.transformer.duration:effectiveto use newtundra.datetime:formatinput and output arguments - change
tundra.tn.profile.cache:refreshto remove deleted profiles from the cache - change
tundra.tn.schema:processorto reflect support for$status.donebeing returned by a processing service - change
tundra.tn:deliverdelivery logs to include theInternalIDandDocumentIDin the log context - change
tundra.tn:deliverto support defaulting file names forfile,ftp,ftps, andsftpprotocols for destinations that use variable substitution - change
tundra.tn:deliverto supportsftpdelivery on Integration Server versions 9.0 and higher - change
tundra.tn:receiveto 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, andtyperespectively - change
tundra.tn:receivewhen receiving content that is not recognized to route as anUnknowndocument for diagnostics and return an HTTP 406 Not Acceptable response to the client - change
tundra.tn:retrieveto supportsftpretrieval on Integration Server versions 9.0 and higher - change services dependent on
tundra.uri:decodeandtundra.uri:encodeto reflect changes in their input and output arguments - fix
tundra.tn.support.deliver.destination:normalizeto work correctly with change totundra.uri:emitto support unadorned path strings and files - fix
tundra.tn.support.document:routeto defend against$typevariable in the pipeline when callingtundra.tn.profile:get - fix
tundra.tn.support:accessto drop all variables before exiting - fix
tundra.tn.support:receiveto drop unnecessary$typeand$stringvariables from the pipeline - fix
tundra.tn.support:shutdownto not remove scheduled tasks for nodes other than the executing node - fix
tundra.tn:deliverto support URI variable substitution specified with either literal unadorned%delimiters, or the URI-encoded%25delimiters - fix
tundra.tn:log$summaryand$messageinputs to be text fields rather than pick lists - fix
tundra.tn:logto not attempt to log against a bizdoc that is not persisted which causes a foreign key exception to be logged - fix
tundra.tn:receiveto correctly return an HTTP 403 Forbidden response when a partner attempts to route a document posing as another partner - fix
tundra.tn:translateservice 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:afterfor 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:beforefor 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:equalfor comparing extracted datetime strings with a threshold datetime calculated from the current datetime plus a specified duration - add
tundra.tn:connectto allow a client to test connecting to and authenticating with Integration Server - add
tundra.tn.document.attribute.string.transformer.uuid:generatefor assigning a newly generatedUUIDto an extracted attribute - change
tundra.tn.content:recognizeto always use the defaultUTF-8encoding when serializing the provided$contentto text to work around an issue wherewm.tn.doc:handleLargeDocdoes not correctly handle other character sets - change
tundra.tn.content:recognizeto be more memory efficient whenTN_parms/$contentLengthis specified - change
tundra.tn.content:recognizeto not recognize and instead return early if the given$contentis empty (has zero length) - change
tundra.tn.content:recognizeto supportjsonStreamobjects - change
tundra.tn.content:recognizeto support new$content.identityinput argument which determines how aDocumentIDis assigned when it is not extracted - change
tundra.tn.content:routeto not route and instead return early if the given$contentis empty (has zero length) - change
tundra.tn.content:routeto not use a document reference for sender and receiver for more flexibility when working with these structures in Developer/Designer - change
tundra.tn.content:routeto silently support content handler inputs such asnodeorffdataorjsonStream, andiDocListfor SAP adapter listeners: if$contentis not specified, the first of these other arguments found will be used instead for routing - change
tundra.tn.content:routeto support new$content.identityinput argument which determines how aDocumentIDis assigned when it is not extracted - change
tundra.tn.document.content:getto return$partcontent part name for the content returned - change
tundra.tn.document:getto not use a document reference for sender and receiver for more flexibility when working with these structures in Developer/Designer - change
tundra.tn.document:normalizeto not use a document reference for sender and receiver for more flexibility when working with these structures in Developer/Designer - change
tundra.tn.profile:getto support$refresh?input argument for optionally refreshing profiles from the database - change
tundra.tn.profile:listto support$refresh?input argument for optionally refreshing profiles from the database - change
tundra.tn.profile:selfto support$refresh?input argument for optionally refreshing profiles from the database - change
tundra.tn.support.queue:eachto not restart retrying job completion when completing a delivery job fails after the maximum number of retries - change
tundra.tn.support.queue:registrationto 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:translateto specify the previous user status required when updating user status toDONEto ensure if the status is updated by another service or thread it is not overwritten - change
tundra.tn:enqueue$queueinput to be a pick list that includes the valueReceiver's Queuefor convenience - change
tundra.tn:enqueueservice 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 ofDELIVERINGorDONEfor the same queue - change
tundra.tn:enqueuesuccess activity log message to be consistent with the other Tundra bizdoc processing services - change
tundra.tn:logto drop unused variables - change
tundra.tn:logto label the call stack asServicein logged diagnostics - change
tundra.tn:receiveto usetundra.service:invokeinstead oftundra.service:ensurefor a simpler implementation - change
tundra.tn:receiveto usetundra.support.receive:respondfor handling the response to the request - change
tundra.tn:retrieveto support FTP and FTPS file retrieval - change
tundra.tn:retrieveto support new$content.identityinput argument which determines how aDocumentIDis assigned when it is not extracted - change
tundra.tn:retrieveto use$content.lengthwhen provided by content processing service forTN_parms/$contentLengthto 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:deliverattached 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:receiveattached 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:generateinstead - fix
tundra.tn.content:recognizeto drop rather than return undeclared flags output argument - fix
tundra.tn.document.attributetransformer services to always returnnewValueseven 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:amendto include a$pipelineinput and to drop$status.silence? - fix
tundra.tn:deliverto convert Trading Network's default use of the non-canonicalUTF8character set name to beUTF-8 - fix
tundra.tn:receiveservice comment formatting in Designer - fix
tundra.tn:receiveto 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.