MIRTH-3325, MIRTH-3306, MIRTH-1861, MIRTH-3326, MIRTH-2282: Added migration code for various HTTP issues.
MIRTH-3328: ConnectionTestResponse now stores the connection info separately so that connector service extensions can use it without parsing the message directly.
MIRTH-2504: The Web Service Sender now allows users to override endpoint addresses. It works essentially the same way the service and port combo boxes do, except that only one location URI would (should) actually be defined in the WSDL.

Created a DataPrunerController abstract class along with a DefaultDataPrunerController implementation. DataPrunerService now delegates commands to DataPrunerController. The previous logic in DataPrunerService has been moved into DefaultDataPrunerController.

Added a temporary hard-coded check in DataPrunerController.getInstance() to use a ClusterDataPrunerController implementation if it is available. This will be removed when MIRTH-3351 is completed.

Also removed the pruner isRunning check when the stop method is invoked since the running boolean is already checked in the DataPruner.stop() method.

Removed number formatting from Original Id and Import Id columns in message browser

Issue: MIRTH-3347



Renamed Response Settings to Source Settings and Moved the Process Batch and Batch Response options into Source Settings. Whether batch is supported is now determined by the connector via the canBatch method on SourceConnectorPropertiesInterface.

Batch Response options are First and Last, which indicates whether the response from the first or last message in the batch will be used.

Added migration code for batch properties.

Updated method for bolding group headers on the DataTypePropertiesPanel so it will work even for a group with no properties.

  1. … 20 more files in changeset.
MIRTH-3375: The Web Service Sender now correctly follows HTTP redirections when the request URI scheme changes (i.e from HTTP to HTTPS or vice versa).
MIRTH-3374: Fixed bug that caused JavaScript Readers to continue to dispatch messages even after the poll gets terminated.
MIRTH-3377: Missed the socket factory registration when switching to HttpComponents.
MIRTH-3329: The File Reader / Writer have been modified to check for and use connector type decorations.
MIRTH-3379: The File Reader / Writer connectors now support custom configuration classes similar to how HTTP and Web Service work.
Response Validation is now available on all destination connectors.

Queue/Retry settings have been renamed to Destination Settings. A new option "Validate Response" has been added to Destination Settings. Process HL7 ACK has been removed from the TCP Sender.

Validate Response can be disabled by connectors via the canValidateResponse method in DestinationConnectorPropertiesInterface

Each dispatcher can now indicate to Donkey whether its response should be validated through the Response object.

The response validator is now stored on the destination connector instead of on the data type

Issue: MIRTH-2560

  1. … 37 more files in changeset.
MIRTH-1790: The WSDL URL is always first normalized with the username/password, so that retrieving the definition map will work when basic authentication is used.
MIRTH-3377: The Web Service Sender is now using HttpComponents instead of HttpClient to make the initial GET request for the WSDL when creating the service dispatch.
MIRTH-3329: The Web Service Listener now correctly updates the WSDL URL when a connector type decoration is supplied.
MIRTH-3328: Changed how connector settings panels interact with extension connector services. The abstract panel now has a dedicated invokeConnectorService method which invokes the service method in a SwingWorker and returns the result (if any) to the handlePluginConnectorServiceResponse method in ConnectorPanel. Both the HTTP Sender and Web Service Sender have been updated to use this new method on invocation.

MIRTH-1790: The Web Service connector service now always takes in the properties object rather than a map. Also certain code has been refactored into isolated methods.

Added an option to enable/disable remote side checking on the TCP Sender when Keep Connection Open is turned on. When migrating this option will be set enabled. New channels will have this disabled by default. Performing this check causes a 100ms delay if the connection was not closed. By not doing it we can greatly improve performance when keeping the connection open. The message may error if the remote side closed the connection but enabling queueing will handle these cases.

Issue: MIRTH-3341

Added a confirmation dialog when redeploying all channels.

Issue: MIRTH-2020

ACKGenerator methods are now static and the constructor has been deprecated.

Issue: MIRTH-3338

Updated references of Mirth server to Mirth Connect server instead.


MIRTH-3329: Fixed bug that caused connector type decorations to be applied to the destination table even if the source tab is currently selected.
MIRTH-3278: Requests are no longer sent to the server when there are no channels or connectors affected.
Updated everything to version 3.1.0.

Added migrate3_1_0 method to the Migratable interface, and also to all implementations.

Added call to migrate3_1_0 in MigratableConverter.

Added V3_1_0 to the Version enum.

Added 3.1.0 to the switch statement in ServerMigrator.

Updated all creation SQL scripts to insert version 3.1.0.

Updated mirth-build.properties to pass in 3.1.0.

Updated all plugin/connector metadata files to use 3.1.0 for the mirthVersion

Issue: MIRTH-3325

  1. … 104 more files in changeset.
MIRTH-3329: The HTTP Listener URL now shows "HTTPS" if a connector type decoration is provided.
Always perform the look ahead to determine if the batch is complete.

Issue: MIRTH-2132


Added batch support for connectors other than File Reader and TCP Listener.


Added an option to check for the last message in a batch which will add a "batchComplete" value in the sourceMap. In order to achieve this, we perform a look ahead for to see if another message exists in the batch before processing the current one.


Added an option to use either the response from either the first or last message in a batch as the response that is send back to the source system.

  1. … 16 more files in changeset.
MIRTH-3320: When the server is started, it will check if it has been 24 hours since data was last sent. After the first check, it will automatically attempt to send stats every 24 hours. The client will also check to send stats every time a user logs in. If so, the client will receive the usage data from the server and attempt to send this data to the Update Servlet.

MIRTH-3332: Added a Purgable interface to determine the stats for the usage document. 

Added a Usage Servlet and Usage Controller so client can fetch usage document from server.

Server generates usage data and serializes it into a JSON document.

MIRTH-3265: The UpdateClient has been updated to reference the new HTTP libraries.


    • binary
  1. … 84 more files in changeset.

Added an additional hardcoded reference in DefaultControllerFactory.createEngineController() to com.mirth.connect.plugins.appliance.ApplianceClusterEngineController.

MIRTH-3330: The HTTP Sender now allows dispatching via HTTPS. Trusted certificates only include those in cacerts, and no support for client / two-way auth, hostname verification, or any other advanced SSL/certificate management is included by default. Warning tool-tips and popup panels are shown in the destination settings when HTTPS is used.

Updated the framework for batch support so batch properties are stored and retrieved from data types instead of on individual connectors. Removed the batch properties from File Reader and TCP Listener and moved them to BatchProperties. Each data type that wants to support batch now needs to implement BatchProperties and call super in the get and set propertis methods. Currently only HL7V2 and Delimited are implementing this.

Batch messages should now be dispatched with dispatchBatchMessage instead of dispatchRawMessage. Doing this explicitly instead of implicitly within dispatchRawMessage makes handling responses much easier.

Now storing a batch adaptor factory on the source connector instead of a batch adaptor on the data types. The factory will generate a new batch adaptor for each message. Batch scripts will be added via the factory on deploy and removed by JavaScriptUtil when all the other channel scripts are removed.


For batch support that caches the entire message in memory and retrieves the individual messages from the cached message, as well as streaming from a Java Reader object, stopping the channel will now finish all of the messages in the batch. Streaming batch from TCP currently does not finish all of the messages in the batch when the channel is stopped because of difficulties when the connection is kept open. Halting a channel will still stop the batch immediately.


Added "batchId" to the source map which indicates the message Id of the first message in the batch. This can be used to correlate which messages came from the same batch.


Added "batchSequenceId" to the source map which is a sequence starting from 1 that orders the messages within a batch.

  1. … 51 more files in changeset.