MIRTH-3649: Fixed bug where creating database connections in JavaScript using custom library resources did not always work. DatabaseConnectionFactory will now attempt to create a Driver instance and use that as necessary. If custom libraries aren't being used, or they don't contain the driver class, then everything will default to DriverManager (how it was working before). Similar changes were made to the Database Reader/Writer. They will attempt to create a custom driver, and if that doesn't work, default to DriverManager.

What this means is that not only will DatabaseConnectionFactory work correctly in JavaScript, but also you can now use multiple versions of the same database driver in different channels/connectors. Before they would have conflicted because of the way DriverManager works, but CustomDriver eschews that nightmare of a class completely.

MIRTH-3614: The Web Service Sender will now submit a task to an executor if the socket timeout is 0. Then when the connector is halted, it will shutdown the executor (interrupting all tasks), and log an error to indicate a possible thread leak. This way, the dispatch thread is actually interruptible now, so the connector can actually be halted.
MIRTH-3761: Changed the default value for the Binary MIME Types field. Also increased its width.

A new config option has been added to mirth.properties so as to control channel deployment upon server startup. All existing configurations will be migrated to true (deploy channels on startup). If channels are disabled upon startup, a message will be sent to the server log to inform the user.

Issue: MIRTH-3720


Tooltips have been updated to be more generic.

Issue: MIRTH-3695


The new polling settings have been applied to the Data Pruner.

The AdvancedPollingSettingsDialog, PollingSettingsPanel and DataPrunerPanels have been modified to accommodate the above. The DataPrunerPanel is now written in MigLayout and has been modified to account for the new polling properties.

The PollConnectorJobHandler now takes in a boolean to flag that dictates if the handler is being used within a connector. The configureJob now takes in an identity and the scheduleJob method has been modified to allow starting the scheduler. The getNextFireTime method now performs different checks based on the trigger type so as to return an accurate time.

The DefaultDataPrunerController now delegates to a PollConnectorJobHandler when configuring the scheduler and any triggers. All relevant code has been updated to take advantage of this code.

Data pruner properties have been added to migration and server restoration blocks.

Issue: MIRTH-841

-Column Delimiter, Record Delimiter, Quote Character, and Escape Character can now be more than 1 character for delimited serialization and deserialization.

-Renamed Quote Character property to Quote Token.

-Renamed Escape Character property to Escape Token.

-Renamed all "quoteChar" and "quoteEscapeChar" variables and methods to "quoteToken" and "quoteEscapeToken", respectively.

-Updated migrate3_3_0 methods for the delimited properties classes to change above elements to new node name.

-Updated Delimited properties' descriptions to reflect the >1 character changes.

-Modified the DelimitedReader's column reading method (getColumnValue()) to be more... "analyze first, eat later" since we now need to read more than one character at a time.

-The old code was kinda like, "Eat current character. Taste if it's a delimiter/quote/escape character. If so, then regurgitate it (ungetChar), take a picture of it, and then eat it again." (Why!!!!!!!!!!!!!!!!)

-The new code is more like, "Look at the next character(s). See if it is a delimiter/quote/escape token. If so, take a picture of it, and then eat it." Something like that.

-Added a whole lotta comments to DelimitedReader to make it far more readable.

-Removed the ungetChar() method from DelimitedReader since it isn't being used anymore.

Issue: MIRTH-1838

Modified usage stats to include client specs, which for now is just the JVM version. Since the server attempts to send usage stats before the client, the server will cache the specs of the most recently logged into Administrator whenever a user logs on to improve the chances of usage stats including client specs. However, if no one has logged on since the server last started, client stats will be null if sent by the server.

Issue: MIRTH-3656

MIRTH-1892: Fixed bug where update results fail to deserialize on the client/CLI side because ControllerExceptions are used.
MIRTH-1892, MIRTH-1529: Rewrote the code template libraries panel in the Set Dependencies dialog. It's now a tree-table with check boxes only on the library nodes. Users can select library or code template nodes, and a description will show up in a text pane below the table.
MIRTH-1892, MIRTH-3759: Changes to the code text area will now automatically update the description in the tree-table. Also the auto-generation button changes text based on whether a JSDoc comment already exists or not.
MIRTH-1892: Code template names are now only unique within specific libraries, the concept of the Unassigned library has been completely removed, and because of that code templates now require a parent library in order to create/import.

The Cache has been changed, since now there's a special case for code template names. It will now throw UnsupportedOperationExceptions when you try to retrieve an object by name.

Other issues this affects: MIRTH-1547, MIRTH-1276, MIRTH-1529, MIRTH-1210, MIRTH-1067, MIRTH-1623, MIRTH-3651, MIRTH-3019, MIRTH-2557, MIRTH-2635, MIRTH-1059, MIRTH-3758, MIRTH-3759, MIRTH-3760, MIRTH-3762, MIRTH-3763

    • -1
    • +1
  1. … 11 more files in changeset.
MIRTH-3769: Fixed bug where importing a connector doesn't update the selected resource IDs.
MIRTH-3768: Fixed bug where connector plugin properties would get set back to defaults when the destination table is first loading.

The status capitalization is now consistent with the MC Dashboard. No bonus points were awarded this time.

Issue: MIRTH-3197


The channelId and channelName should now be available within all connectors. These variables have been added to the ValueReplacerConnectorMessage as well as the ValueReplacer and is now a required argument when doing any velocity replacement.

Issue: MIRTH-1763

  1. … 22 more files in changeset.

Drag and drop functionality has been restored on the MessageBrowser. Dragging a selected row will now copy+paste all the data from enabled columns onto the selected target.

Issue: MIRTH-3190


The binding is now configurable on the WebServiceListener. Users have the ability to select from three available options. If default is selected, then any annotations defined on a custom webservice will be used, otherwise it will default to SOAP v 1.1, also the migrated setting.

A Binding enum was added under the server connectors and made available in the shared jar. This Binding property is now present on all WebServiceReceiverProperties. The actual WebServiceReceiver will set this value when creating/publishing the endpoint.

Issue: MIRTH-2242

    • -0
    • +34
Extension page's Version columns are now adjustable. Max: 150, Preferred: 100, Min: 75

Issue: MIRTH-3646

-Separated pretty print logic into a SwingWorker so that MC no longer hangs when a DTD causes the pretty printing to be slow. The unpretty, original message will be loaded first and then updated once pretty printing is done.

-Fixed pretty print logic to use Transformers the correct way. Transformers are not thread-safe, so each pretty print job must create its own Transformer. Each Transformer now uses a single reusable Template that contains the pretty print properties, thus making the process of creating multiple Transformers significantly less expensive. Yay!

-SwingWorkers are cancelled once a new row is selected.

-Updated Message Browser to not attempt to load a document if it's null.

Issue: MIRTH-3405

No longer using jcif's canWrite() method since it's pretty much useless. It only checks the "read only" file attribute instead of a file's ACL. The only way to tell if you can write to a directory is to actually try and open it for writing with new SmbFileOutputStream. If the file is created with no exceptions, the Test Write is considered successful. This temporary file is always immediately deleted, but if the delete fails, a warning is logged.

Issue: MIRTH-1113

MIRTH-1892, MIRTH-3762: Added Rhino to the CLI classpath since the code template commands now use it.
    • binary
Added the JAI ImageIO jar to Client to allow the viewing of TIFF attachments in Message Browser.

Issue: MIRTH-2130

    • binary
-Added 1.7.6 Rhino jars.

-Removed 1.7R5 development snapshot jars.

-Updated modified Rhino classes to reflect 1.7.6 changes.

Issue: MIRTH-3606

    • binary
    • binary
MIRTH-1892: Fixed bug where the library properties can appear to be overwritten when saving.
MIRTH-3764: Migrators now always set auto-commit to true before returning a connection. This ensures that even if migration code disables auto-commit for other reasons, it won't affect the connection used by subsequent migration code.

Corrected migration code to be in the proper order.

Issue: MIRTH-841


PollingConnectors have now been improved to create schedules which run from the hour as opposed to from start/deploy time. Users can now exclude/include certain weekdays or define a discrete day of month and define active time ranges when using an interval. The user now also has the option to schedule polling to occur at a specific time of the day also on certain weekdays or on a particular day of the month. If none of these options fit the users needs, there is now a "Cron" option which will run schedules based on any defined, valid expressions.

The PollConnector has been changed to take advantage of the Quartz library, and the PollConnectorTask has also been converted from a TimerTask to an InterruptableJob. All of the previous operations were migrated to use the Quartz equivalence to keep the functionality in tact.

There is now a PollConnectorJobHandler class which is used to configure the JobDetail and Scheduler that's used in the actual PollConnector. The PollConnectorJobHandler also has a reference to the new TriggerFactory class whose purpose it is to create job triggers.

The TriggerFactory takes a set of properties and will build the appropriate schedules and return the Trigger associated with the properties, either a daily interval trigger, a daily time trigger or a list of cron triggers.

The new PollConnectorJobFactory class has been created to facilitate in the creation of new jobs, taking in a reference to the current polling connector. This factory will return a PollConnectorJob which has the express purpose of calling poll on the PollConnector. A DummyJob has also been added so that the client may create dummy triggers to calculate next-scheduled polling times.

A new CronProperty, PollingType and PollConnectorPropertiesAdvanced model were added to the Donkey project to store additional properties used in creating Triggers, and the PollConnectorProperties now has a reference to these advanced properties.

On the client side, the PollingSettingsPanel has been reworked and created in MigLayout. The three scheduling types will now dynamically hide/show the appropriate properties based on the selection within the combobox. When interval/time is selected and the advanced properties button clicked, a new AdvancedPollingSettingsDialog will appear which stores the weekly, day of month and active time configurations.

Issue: MIRTH-841

    • binary
    • binary
  1. … 6 more files in changeset.
MIRTH-1892, MIRTH-3651: Made a couple changes to the code template controller to ensure that when libraries are retrieved, the code templates within are always sorted in a consistent order.
MIRTH-1892, MIRTH-3758: Fixed NPE that was happening when creating a new library while a search filter was in effect.