MIRTH-3510: Fixed NullPointerException that can happen when catching certain exceptions.
MIRTH-3504: Fixed issue that caused the client to parse responses with a different charset than the server used.
MIRTH-3493: Added additional information to the response status when an HL7 NACK occurs, which will be available in alert actions. An indicator of rejected/error is included, as well as MSA.3 and ERR.1, if present.
MIRTH-3492: Added the ability to configure the list of supported protocols and cipher suites for SSL connections. By default, SSLv3 is no longer supported as well.
MIRTH-3497: Added a check for stats enabled setting on server. Server will check both stats enabled setting and stats last sent time every 24 hours and whenever the server is started up. The "sending usage statistics" worker will now only appear on client if stats are enabled.
Changed the access modifier on the promptObjectMigration method to public within the Frame class. This method is now called from within the SettingsPanelServer, comparing the version of the server against the imported configuration file.
Issue: MIRTH-3317
Updated prompt to be more clear when migrating from older versions.
Issue: MIRTH-3317
MIRTH-3513: Added the ability to preserve order among destination queue messages while still using multiple queue threads. The way this works is with a Thread Assignment Variable. When acquiring a message from the queue, the variable (e.g. with the key "mrn") is retrieved from the standard map lookup sequence. That value is then hashed and reduced via modulo to one of the queue threads. Because the hash function used (MurmurHash3 32-bit) is deterministic, the same input (e.g. "12345") will always produce the same hash value, and therefore the same queue thread. Only the queue thread that has been calculated for that connector message will be allowed to acquire the message; other threads will skip over it in the buffer.
MIRTH-3492: Added SSLv2Hello to the list of enabled protocols, and the pseudo-cipher suite SCSV. Also made sure to use a LinkedHashSet in MirthSSLUtil so the same order is preserved, and added some debug logger statements.
MIRTH-3492: Split up the protocol list in mirth.properties into a client-specific list and server-specific list. This is because by default, Java enables a different set of protocols on the client side than it does on the server side.

In Java 7, TLSv1.1, TLSv1.2, and SSLv2Hello were not enabled by default on the client. According to the JSSE provider specifications, this is because some server don't implement forward-compatibility and cannot accept the newer formats. The SSLv2Hello protocol is only a pseudo protocol wrapper, but is also disabled by default because some newer servers choose to no longer accept the old ClientHello format.

In Java 8, TLSv1.1 and TLSv1.2 are enabled by default on the client, but SSLv2Hello is not.

Because of these discrepancies and because we want to allow for workarounds in case users are actually on older versions of Java, we split up the protocols list so users can override the defaults for the client and server separately.
MIRTH-3492: Added custom protocols / cipher suites support to e-mail connections as well (SMTP/IMAP/POP3). This applies to the SMTP Sender, alert e-mails, custom SMTPConnectionFactory e-mails from JavaScript, and the Email Reader extension.
The data type plugins are now cached and wrapped in a CaseInsensitiveMap. Retrieving the serializer now defers to this map.
Issue: MIRTH-3507
Filter rules and transformer steps now prompt a confirmation dialog upon changing selection.

The parent, BasePanel, container now has a method to determine if the underlying component has been modified. Each child class overrides this method to provide its own specific implementation. The FilterPane and TransformerPane now call out to this method within the BasePanel reference which defers to the appropriate implementation. Variables were updated to facilitate readability.
Issue: MIRTH-931
Moved the method call to set table values before the components are actually disabled.
Issue: MIRTH-2534
Updated the Http and Web Service connector properties for the header/query parameter maps to be of type <String, List<String>> instead of simply <String, String>. All relevant code (with the exception of migration) was updated to now account for this list, including the removal of the unique property constraint to allow duplicate keys. The headers/parameters are now wrapped in corresponding maps when being put into the response so that the user may perform typical key/value operations. Finally, headers were added to content mappings for the Web Service sender since it previously did not exist.
Issue: MIRTH-3449
The drop-down menu for the combobox within the 'Actions' table now grows dynamically to fit the size of the largest channel name. This is achieved by replacing the combobox in the cell editor with a MirthComboBox. The MirthComboBox now overrides the getSize method which determines the size of the drop-down if the autoResizeDropdown flag is explicitly set to true, otherwise it maintains the standard behavior.
Issue: MIRTH-3296
Removed the glorified valueOf method from the MessageBrowser to the StringUtil class and replaced all previous calls to use this one instead. The GlovalMapClient calls to the general String.valueOf method have also been replaced in lieu of this utility method.
Issue: MIRTH-3477
Updated the default regex expression to use an improved version provided by Nick.
Issue: MIRTH-3515
Provided a way to return channel ids/names, interchangeably, by adding additional methods to return the channel name
Issue: MIRTH-3292
A new TaskConstant was added so as to allow channel deployment from within the channel setup panel. The original task was split up to contain only logic that was pertinent to deploying channels in a general sense. Each individual deployment task now calls out to this general method after performing validation and acquiring a set of channel ids to deploy.
Issue: MIRTH-2740