The count on the "Script" tab now updates when issuing a save in addition to the original functionality.

Issue: MIRTH-2661

MIRTH-1717: Fixed bug where carriage returns right before other control characters wouldn't be correctly inserted into the document.

Updated the JMS Listener UI so that when JNDI is enabled, the destination type: queue/topic and durable checkbox remain enabled, since these values are used by the listener even with JNDI. The JMS Sender still disables these options with JNDI enabled since they are still not used by the Sender.

MIRTH-1717: Tweaked the find/replace dialog so that when a search gets wrapped, the result label shows "wrapped".
MIRTH-1717: MirthRSyntaxTextArea now stores all of its shortcut key mappings, find/replace properties, and toggle options as an OS user preference node. The actions / popup menu item have been overhauled to support dynamic changes in accelerators, and a new section to the Administrator settings view has been added to change the shortcut keys. Places that use MirthRSyntaxTextArea now correctly update everything so that if you make a change (accelerator/toggle/find/replace), it will affect all such text areas across the application.

Deprecated methods now show up in the auto-completion list with a strikeout style. Any userutil methods that had the "//TODO" comment were changed so that the comment was above the actual Javadoc comment, otherwise the parser wouldn't detect the Javadoc comment.

  1. … 40 more files in changeset.
MIRTH-1717: For some reason ever since 3.0.0 the Database Reader's URL/username/password labels have been mixed up, but since the text of the labels was "correct", nobody noticed. Since we moved to MigLayout and laid out the labels by their respecting variable names, it exposed the fact that the text was incorrect.
Fixed NullPointerException when archiving if no source encoded content exists. In this case we should not bother trying to set the destination raw

Issue: MIRTH-3581


Added null check for protocol element in AlertAction.migrate3_2_0() and corrected variable name.


Migrate alert action model for 3.2.0. Protocol names (email, channel) are no longer all caps.


Updating JdbcDao so that it is now possible to retrieve multiple messages and their content with a single query for each table (d_m, d_mm, d_mc, d_mcm) rather than needing to do a query for each message. This significantly improves the performance of the archiver even more and now there is actually a benefit of having an archiver block size. Setting a new default to 50.


Unreverting the block size changes (adding it back).

    • -2
    • +15
MIRTH-1717: Remove errant Yo.
MIRTH-1717: Committing RTextAreaBase in preparation for overriding.
    • -0
    • +1241
MIRTH-1717: Overrode the InsertBreakAction being put into the action map, so that our text area can immediately update the UI after displaying line breaks. This way when inserting a CRLF, the ending text won't look squashed until you mouse-over it or move the caret.

Fixed a null pointer error that occurs while using Java 8.

Issue: MIRTH-3578


The getContent method on the Content class has been made to be abstract. The contents of this method were removed and instead injected into the MessageWriterVfs' extractContent method.

The changes made to MapContent were reverted back to its original state.

The getContent method on the ConnectorMessage class was removed altogether since we're directly getting the map content from the merged connector message instead.

The MessageWriterVfs has been modified to now serialize map content, and in the case of sent content, will now correctly handle encrypted data before deserializing it as a ConnectorProperties object.

Issue: MIRTH-3488

MIRTH-1717: Added changes that override the RSyntaxTextArea code.

JavaScriptParser: Fixed a "bug" where our scripts containing "return;" would always show error syntax highlights.

The Rest: Added the ability for the text area document to differentiate between CR and LF line breaks.

Couple things I missed in the last commit:

RTextArea: Made the clearMarkAllHighlights method public so I can call it from outside.

RTATextTransferHandler: Modified the handleReaderImport method so that line breaks aren't normalized to LF.

MIRTH-1717: Completely overhauled the JavaScript text editor to be more freaking awesome. Things included:

* Better whitespace / control character displays

* Line wrapping

* Code folding (any curly brace section)

* Tab / Shift+Tab multi-selected lines

* Auto-indentation within functions / loops / etc.

* Better Find/Replace functionality, more options, Find Next shortcut key

* Auto-completion for code / functions / classes / variables / etc. This scans our userutil package and automatically generates completion references for all the classes and methods within.

  1. … 84 more files in changeset.
HikariCP is now the default connection pool used by Donkey. To switch back to DBCP, add "database.pool=dbcp" to mirth.properties

Issue: MIRTH-3537

Reverting the block size changes. Due to MIRTH-3581 there is currently no need for an archiver block size. Only one message will be cached at a time. In the future there are still ways we can reincorporate block size into the new algorithm, but there is no need to have the UI until that time.

Issue: MIRTH-3531


The algorithm used to archive messages has been updated. We are now only caching a single message at any given time which means heap usage should not be an issue anymore. Furthermore, the batching query when used with a low limit incurs a lot of overhead and dramatically slows down archiving. Therefore we are now running the batching query for archiving with the same limit as if only the pruner was running (100000). This only retrieves message Ids and received dates. Then for each message Id we retrieve the message and content and write the message out immediately. So far it seems that it can save a significant amount of time if there are lots of messages stored for a given channel


Fixed the number of mesages archived not being set on the ServerEvent


The stats for message and content pruned in the ServerEvent should be correct now. The previous commit of swapping the order of deletion did not account for this


Pending messages will no longer be pruned/archived

    • -10
    • +2
    • -0
    • +6

Fixed an issue where deleting all rules/steps or configuring a new channel did not properly remove or update the 'Generated Script' tab.

Issue: MIRTH-2128


A new class, Content, was added, and now the MapContent, MessageContent and ErorrContent classes are subclassed with this as their parent. All shared code has been moved into Content. A static method exists to return exported content types, eventually called by the MessageWriterVfs.

The ExportFormat class has been updated to now take in a string identifying the connectorType.

The MessageExportPanel has additional content types added to its model for exporting.

Issue: MIRTH-3488


The MirthTreeTable will now persist the order of columns in addition to saving its sorted order.

The table has a mouseListener registered on the tableHeader which is responsible for saving the sorted order of columns. Except for any metaDataColumns (applicable only to the MessageBrowser), the column order is saved in a map, serialized as XML and stored within a preference node. If a new column is added to the panel, the column ordering will be reset to its default order, otherwise column ordering will be restored from this map.

The MessageBrowser has been updated to now persist the order of columns. MetaDataColumn preferences will only persist across the same session. Logging out and back in will reset these columns to their default states.

The DashBoard panel has also been updated to persist column ordering since the underlying component is the same MirthTreeTable.

Issue: MIRTH-3024


Moved the interrupted check outside of runDeleteQueries/runDelete so that it is not possible to interrupt the deletes for a given range. This ensures that messages are fully deleted before the pruner stops to avoid leaving any orphaned records for SQL Server and Derby


Only add the message Id to contentMessageIds if it is not added to messageIds. This way content is not pruned independently if its going to be pruned with the whole message anyway.


Swapped the order that messages and content are pruned so that whole messages are pruned first. This ensures that usually the oldest messages will be pruned first.


A best effort attempt has been made to now catch SOAPFault Exceptions. If an error occurs while trying to set the exception as the response data, nothing is done which is consistent with the current functionality.

Issue: MIRTH-1982


The generated script panel was moved to a global scope so that it can be dynamically added or removed on the fly. There now exists a reference to the last selected tab as well as a boolean reference to toggle the generated script panel's visibility. The background color was also made to be consistent with other disabled components, indicating this panel is read only.

The changeListener on the tabbed pane was replaced with a mouseListener as it was interfering with the table's listSelectionListener, and light refactoring was done to bring the variable names more in line with the generated script's title.

When either a javascript or external script type is selected, the generated script panel will now be removed from view. If the selected tab goes from a rule/step to the generated script, the flag is set indicating the panel should automatically switch back to the script view. This will only happen if the script panel is still visible.

Issue: MIRTH-2128


Updated the conditionals to check whether the field is blank and made them consistent for the both panels.

Issue: MIRTH-2893


The MirthTable now has a Preference object to persist the sorted order of columns and uses a prefix, along with a designated key, in order to retrieve the associated settings. An additional constructor has been added that takes in this prefix and instantiates the preferences. The sorterChanged event was overridden to now serialize the column order if a prefix has been provided (the prefix assumes that the changes should be persisted). The setModel function was also overridden so as to allow the persisted settings to be restored, and finally a restoreDefaults method was implemented to reset the settings back to their original state.

The ChannelPanel's channelTable is now created using a prefix. The stipulation to sort columns by via the name has been removed to allow the above functionality. The exposed restoreDefault method is now called out within the "Restore Default" menu item.

The MirthTreeTable's implementation to provide the same functionality differs slightly in that it instead uses methods exposed by the SortableTreeTable. An additional constructor was also added which takes in a prefix, determining whether or not settings should be persisted. A method has been created, saveSortOrder, which takes in the index of the sorted column, persisting the index and the actual sort order retrieved from the parent class. Finally, the class now has a public method to restore the settings to their original state.

The DashboardPanel now has a right click context menu for the column headers. This was added to provide a way to restore defaults and clear out the user preferences. Each time the columns sorted, the statusTable saves the sorted order. When the table is built for the first time, the persisted settings are deserialized and applied to the corresponding column.

Issue: MIRTH-1461


A new method was added to the AttachmentHandler to allow for outbound replacements. This method is implemented by each child class and is used within the MirthAttachmentHandler.

The RegexAttachmentHandler now contains an additional map to store outbound replacements. Its implementation of the above method takes the byte content, turns it into a string using the designated charset, does the replacements, and sends back the replaced string's byte contents.

The RegexAttachmentDialog was rebuilt using MigLayout to now provide a spot to enter outbound replacements. All NetBeans code has been removed including the generated form.

Issue: MIRTH-3023


Committing migration code.

Issue: MIRTH-3449