A new task to export a single attachment as either binary or text now exists within the MessageBrowser and shows up when an attachment is selected. This is achieved by adding in a new AttachmentExportDialog, TaskConstant and Operation to facilitate this feature. Several operations are exposed within the MessageBrowser so as to retrieve the attachment ID as well as the mime type. By modifying both the Client and MessageObjectServlet, we are able to accommodate exporting attachments within the server.

A shared AttachmentWriter utility class was added to the server project which is responsible for creating and exporting the file attachment to either the server or local file system.

DICOM is currently unsupported as an attachment type, and as such will alert the user.

Issue: MIRTH-2501

Provided more tooltip detail and fixed validation when using the attachment output type.

Issue: MIRTH-2389

MIRTH-3553, MIRTH-3554: Wrapped Collections.singleton calls in a HashSet constructor so they can be modified. The Library resource plugin now checks if the current properties have a directory set before attempting to resolve URIs against the directory URI.
MIRTH-3554: A new set of plugin points have been added to allow shared resources for channels/connectors to be configured. There is a new "Resources" tab in the Settings view where resources can be added/modified. Each resource has a type, for example "Library", "Mirth Results", or "Database". The first resource cannot be removed, and by default it uses the Library type, and points to the custom-lib directory. Any new channel/connector created (as well as migrated channels/connectors) will use the custom-lib resource by default.

MIRTH-3553: The way Rhino context factories are created and used has been completely overhauled to allow isolated contexts with specific classloaders. This allows custom libraries to be included within Mirth Connect channels *without* a server restart. This applies not only to JavaScript contexts, but also to other places in Mirth Connect where custom libraries might be used, like the Web Service Listener, Database connectors, JMS connectors, and custom attachment handler. When a context factory change is detected, the associated script is automatically re-compiled with the new context (and new sealed/shared scope). A new ContextFactoryController has been added to take control of context factory creation/reloading; everything that needs a context factory will request it from the controller. The library resources added with MIRTH-3554 tie into the controller as well.

  1. … 96 more files in changeset.
Removing code that was deprecated in 3.0.0. Some of it (SerializerFactory) still remains as a courtesy because they are more difficult to migrate from, but will eventually be removed.

Issue: MIRTH-3456

The ErrorEvent object was updated to include a message Id within the constructor. All code that references this constructor have been updated to now include the message id when/where applicable.

The message Id was added to the DefaultAlertTriggerPane so that the variable is exposed to the user and available when creating alerts.

The actual message Id is put into the context for template variable replacement just before the alert gets triggered.

Issue: MIRTH-3520

  1. … 17 more files in changeset.
The document writer now has the option to output the content into an attachment, and as such, an option was added to the DocumentDispatcherProperties to determine whether or not an attachment should be created based off of the new GUI options added to the DocumentWriter.

The DocumentDispatcher will now always write the contents to a ByteArrayOutputStream. If a file option was selected, these bytes will then get written to an output file.

If an attachment option was selected, an attachment will get created from these bytes and stored with the message. If an attachment was generated, the Id will be stored in the response message.

The Base64Util was also updated to allow the creation of unchunked byte arrays.

Issue: MIRTH-2389

Disable Quartz update check.

Issue: MIRTH-3535

Fixed potential connection leak when stopping the data pruner, or if the initDataPruner query failed.

Issue: MIRTH-3547

The BasePanel getData implementation now cycles through the card layout to retrieve the appropriate script data based on the visible card.

An abstract method to get the generated script was added to the MirthEditorPanePlugin so that each individual rule/step can provide its own implementation, and several scripts had their generated content formatted for readability.

Tabbed panes were added to both the filter and transformer panes so as to display the aforementioned scripts. Functionality was provided to update the code tab when appropriate.

Issue: MIRTH-2128

When editing a channel or navigating away from the scripts tab, each script is now compiled, decompiled and checked against the relevant default script. The script tab label will update to reflect these total number of differences found by appending this number in between a set of parenthesis.

Issue: MIRTH-2661

Updating the WebAdmin classpath to not reference Java 6 directly. Instead it will use the workspace default.

Issue: MIRTH-3448

Bouncy Castle jars are now being signed with SHA1 digestalg to fix web start issues when building with Java 7.

Adding bcprov-ext and bcpkix to Client and CLI to replace functionality that was removed in the latest bcprov release (1.51)

Issue: MIRTH-3540

    • binary
    • binary
    • binary
    • binary
MIRTH-3501: Added the actual call to migrate3_2_0 in MigratableConverter.
Updated old jars within the Client and Command projects.

Issue: MIRTH-3540

    • binary
    • binary
    • binary
    • binary
MIRTH-3501: Adding migrate3_2_0 to the Migratable interface.
  1. … 54 more files in changeset.
The manifest update and jar signing tasks can now run in parallel. The number of threads can be specified by passing in the ant properties "manifest_thread_count" and "signjar_thread_count"

Moved ant related jars to a separate ant folder and excluded them from the build.

Issue: MIRTH-3544

    • binary
    • binary
Updated the conditional statement to call out to the appropriate StringUtils method.

Issue: MIRTH-2893

Removed the SSL reference from the classpath which was mistakingly added.

Issue: MIRTH-3540

Updated the jars to the most recent versions. Removed the lib references from the SSL plugin in lieu of adding them from the server resources. The ant build file and classpaths were cleaned up to reflect these changes. The deprecated DERObjectIdentifier was also replaced with the correct object within CertificateExtensions.

Issue: MIRTH-3540

    • binary
    • binary
    • binary
    • binary
    • binary
    • binary
Replaced deprecated certificate generation methods with their most recent implementations.

Issue: MIRTH-3540

    • binary
    • binary
Updated the conditional statement to store the processed response only when the response content is different.

Issue: MIRTH-3543

Email addresses are now validated using javax.mail. If the email address is invalid, an exception is thrown and the user prompted. We opted not to validate email addresses within alerts due to velocity replacement.

Issue: MIRTH-2893

    • binary
Fixed the casing for the deprecated annotation.

Issue: MIRTH-3449


In Channel.halt, added null check on channelExecutor before accessing it, in case it was never initialized because the channel had never been started.

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

Provided a way to return channel ids/names, interchangeably, by adding additional methods to return the channel name

Issue: MIRTH-3292

Updated the default regex expression to use an improved version provided by Nick.

Issue: MIRTH-3515

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

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