Dashboard

MIRTH-3835: Added a new ContextFactory userutil class, which can be used to retrieve the resource IDs, application classloader, and isolated (resource libraries only) classloader from within JavaScript.
MIRTH-2720: All threads now have appropriate names set, including the channel name/ID and connector name/ID when applicable. This includes virtually everywhere in Donkey, all receivers (listeners and polling connectors), all JavaScript task threads, all Jetty servlet threads, and some other miscellaneous threads.
  1. … 21 more files in changeset.
Another fix for the JSON token marker. Some string values were still being colored as keys. Hopefully this is the last of it...

Merge from trunk.

Issue: MIRTH-3781

Another fix for the JSON token marker. Some string values were still being colored as keys. Hopefully this is the last of it...

Issue: MIRTH-3781

MIRTH-3883: Added 3.3.2 to Version and ServerMigrator. Updated SQL creation scripts, mirth-build.properties, installer files and all extension metadata XML files.
  1. … 40 more files in changeset.
MIRTH-3167: Added the ability for the source queue to poll in multiple threads. When the max processing threads is greater than zero and the source queue is on, there will be multiple queue consumers all processing messages through the channel. The source queue now has a set of "checked out" message IDs similar to the destination queue, to prevent the same message being polled in multiple threads.
MIRTH-3786: The destination queue will now round-robin buckets up to the maximum queue threads set. When this number is reached, the hash function will be used from then on. This approach allows users with a discrete set of possible thread assignment values to ensure that no values will collide into the same queue thread.
MIRTH-3880: Fixed bug that caused the message browser to resize past the visible window when a very large response status message is set. The issue was that a card layout is being used, and the preferred size of the text field wasn't being honored. The response status now uses a text area with a scroll pane, so now it shouldn't matter how long the status message is, or even if the status message is multiple lines.

Merged from trunk.

MIRTH-3880: Fixed bug that caused the message browser to resize past the visible window when a very large response status message is set. The issue was that a card layout is being used, and the preferred size of the text field wasn't being honored. The response status now uses a text area with a scroll pane, so now it shouldn't matter how long the status message is, or even if the status message is multiple lines.
MIRTH-3798: Fixed bug where selecting multiple disabled channels and deploying would cause all channels to be deployed.
Added null checks to JSON token marker. The renderer is weird and sometimes repaints only parts of the JSON doc, resulting in exceptions being thrown.

Merge from trunk.

Issue: MIRTH-3781

Added null checks to JSON token marker. The renderer is weird and sometimes repaints only parts of the JSON doc, resulting in exceptions being thrown.

Issue: MIRTH-3781

Fixed issues with the JSON syntax highlighter that were causing object keys to be colored incorrectly. Also fixed highlighting for keywords at the end of lines.

Merge from trunk.

Issue: MIRTH-3781

Fixed issues with the JSON syntax highlighter that were causing object keys to be colored incorrectly. Also fixed highlighting for keywords at the end of lines.

Issue: MIRTH-3781

MIRTH-3852: Fixed bug where the select/deselect links didn't correctly set values in the tree table.

Merged from trunk.

MIRTH-3852: Fixed bug where the select/deselect links didn't correctly set values in the tree table.
MIRTH-3840: Added new connector plugin properties for HTTP authentication. There is a new Authenticator abstract class that gets extended for each type, and a provider/factory used by the HTTP/WS source connectors to create Authenticator implementations.

MIRTH-3841: Added Basic authentication mode. Properties include the realm and user/pass credentials. For the Web Service Listener, the previous credentials table has been moved here, and the properties will migrate as such to 3.4.

MIRTH-3842: Added Digest authentication mode. Users can set the realm, algorithms, quality-of-protection modes, opaque string, and actual user/pass credentials. An Authenticator implementation on the backend allows for all these options, much moreso than the stock Jetty authenticator allows.

MIRTH-3843: Added JavaScript authentication mode. Users have access to most things they are used to from the HTTP Listener source map, and can return an AuthenticationResult or boolean value to determine whether to accept or reject requests.

MIRTH-3844: Added custom Java class authentication mode. Users can set the class name and an optional map of properties that are passed into the constructor of the Authenticator implementation.

MIRTH-3845: Added OAuth token verification mode. Mirth Connect does *not* act as a resource server or resource owner here. It is more of a passthrough client that simply hits a verification endpoint, passing along the access token. Users can decide whether the access token is expected as a request header (e.g. Authorization) or a query parameter (e.g. auth_token). Upon request, the authenticator will perform a GET request to the verification endpoint, and based solely on the response code will either accept or reject the request. If rejected, the originating system is expected to request a new access token from the resource server and then submit a new request to the channel.

  1. /trunk/server/src/com/mirth/connect/plugins/httpauth
  2. … 35 more files in changeset.
MIRTH-3876

Merged from trunk - Rewrote logic in doRemoveAllMessages method where now it follows that you are either doing this from MessageBrowser or Dashboard page.

Issue: MIRTH-3876

Issue: MIRTH-3876

MIRTH-3876

Rewrote logic in doRemoveAllMessages method where now it follows that you are either doing this from MessageBrowser or Dashboard page.

Issue: MIRTH-3876

MIRTH-3798

ChannelStatisticsServlet now returns queued counts. getStatistics method has many options.

ChannelIds - Channels to get stats for, null/empty means all.

includeUndeployed - Option to include undeployed channels' stats.

include/exclude MetaDataIds - Can include or exclude connectors Ids.

aggregateStats - Stats for result will be aggregated to one ChannelStatistics object.

Issue: MIRTH-3798

MIRTH-3798

Fixed condition that didn't allow message count queries for undeployed channels. Donkey is checked first for performance.

Issue: MIRTH-3798

MIRTH-3798: Fixed issue in Swagger UI where multi formData parameters were not being encoded properly in the request URI.
    • -1
    • +1
    /trunk/server/public_api_html/index.html
MIRTH-3798: Fixed bug where retrieving code template libraries failed if the set of IDs passed in is immutable.
MIRTH-3798: Fixed bug where the includeUndeployed parameter wasn't working for the channel status list endpoint.
MIRTH-3798: Fixed bug where removing messages wasn't working. The remove endpoint that takes in a serialized MessageFilter object is now a POST request instead of a DELETE, since the latter doesn't allow entities.
MIRTH-3167: Channels now allow parallel message processing across multiple threads. A new feature, the maximum processing threads, has been added to the source connector settings. This determines the maximum number of "main message processing" threads to allow. By default and on migration it will be 1, which means that everything will behave exactly as it does currently. However if you set that value to something greater than 1, then messages coming from different sources can now process simultaneously. The channel process lock is now a semaphore, with a configurable number of permits. So if the permits are set to 2, then the first two dispatch threads will be able to process, but all others will block until one of the two permits is available.

There are obviously certain considerations to take into account when using this feature. Message order isn't guaranteed for one, and using the global / global channel map can cause collisions between messages.

MIRTH-3447: Channel statistics are now updated completely asynchronously from the actual channel processing threads. Donkey now has a dedicated thread that checks every second (interval is configurable), and if any stat diffs are present then it commits them to the database. This should improve performance in channels and the server in general, because there are far fewer statistics-related commits happening, and when they do happen it's not part of the same transactions as the message processing ones.

MIRTH-3869: All batch adaptors that support scripts now correctly check if the script is empty before attempting to do anything else.

MIRTH-3870: Added a batch adaptor/factory for JSON, so it should now correctly handle batch processing.

  1. … 81 more files in changeset.
MIRTH-3798: Updated Swagger UI to 2.1.4 which was just released.
    • -0
    • +53
    /trunk/server/public_api_html/lang/fr.js
    • -0
    • +2
    /trunk/server/public_api_html/lang/en.js
    • -4
    • +7
    /trunk/server/public_api_html/lang/ru.js
    • -0
    • +53
    /trunk/server/public_api_html/lang/ja.js
  1. … 10 more files in changeset.
MIRTH-3799

Added SystemServletInterface that we left out when Nick and Brent merged their branches. Also added a couple things to the getAbout method in Configuration Servlet.

Issue: MIRTH-3799

MIRTH-3633: Updated Jetty and all JSP/JSTL dependencies to 9.2.14. The servlet API version is now 3.1, so the web dashboard definition in web.xml has been updated, and taglibs are now referenced directly so it will play nicely with Ant Jasper compilation and embedded Jetty.
    • binary
    /trunk/server/lib/jetty/jetty-xml-9.2.14.v20151106.jar
    • binary
    /trunk/server/lib/javax/javax.mail-1.5.0.jar
    • binary
    /trunk/server/lib/jetty/jetty-continuation-9.2.14.v20151106.jar
    • binary
    /trunk/server/lib/jetty/jsp/ecj-3.6.jar
    • binary
    /trunk/server/lib/javax.json-1.0.4.jar
  1. … 53 more files in changeset.
All attributes that contained only the channel ID in the Events log now also display the channel name. For now this is being done by checking for keys containing 'channelID' within the AuthorizationController since this is just a fringe case, but we'll make the process more streamlined if we find more uses for this behavior in the future.

Issue: MIRTH-2468