Dashboard

Reverting to DBCP 1.4 since the snapshot build had a new bug.

Created the class PoolableConnection in the dbcp package so we can "override" the jar without recompiling it.

Backporting the fix for https://issues.apache.org/jira/browse/DBCP-391 into the 1.4 release.

This fix actually introduced a new bug that was only fixed on the DBCP2 branch at revision 1568674.

Therefore I've also backported the fix for the new bug as well. It will (probably) work.

If we ever update the DBCP jar or switch to a different connection pool then this class will need to be removed.

Issue: MIRTH-3262

    • -0
    • +157
    /trunk/server/src/org/apache/commons/dbcp/PoolableConnection.java
  1. /trunk/server/src/org/apache/commons/dbcp
Added map variables to the 'toFormattedString()' method and verified the keys show up within the message browser.

Issue: MIRTH-3380

Renamed 'Channel Name:' label to 'Channel Id:'

Issue: MIRTH-2961

Removed getEngineExecutor and now performing the same tasks inline.

submitHaltTasks is no longer synchronized on the entire method. Instead it will shutdown the executor once outside the synchronized block and once within. This allows us to halt tasks even if the something else is holding the synchronized lock, such as restoring server configuration.

Added a helper method shutdownExecutor since the same thing is being done multiple times.

haltChannels now uses executePostMethodAbortPending so we don't run out of connections if multiple channels need to be halted.

Issue: MIRTH-3393

Fixed a comment that was still referencing organization name.
Removed organization name from server settings.
Added null checks to account for channel migration.

Issue: MIRTH-3380

Updated underlying source code variables to be more clear. Also added null checks for inserting variables from within the table.

Issue: MIRTH-3380

No longer creating the default truststore on startup. Removed truststore properties for new installations.

Issue: MIRTH-3414

Changed the description on the log4j migration to more generic.

Issue: MIRTH-3179

Added ability to inject map variables in the channel writer.

A metadata variable table was added to the channel writer which allows the user to input map keys, and a list was added to the VmDispatcherProperties to store the values from the table. The VmDispatcher attempts to replace each key by doing an ordered lookup across all maps. If the value is found, it is injected into the source map, otherwise it is ignored.

Issue: MIRTH-3380

Committed the correct version of log4j properties that changes the shutdown logging to undeploy.

Committed migration code to log recovery task properties.

Issue: MIRTH-3179

Messages are now logged on channel startup if and only if messages are being recovered for a channel.

This is done by setting a boolean flag to determine if a logging message has already occurred and checking whether or not the dao returns messages to be recovered. If logging has not occurred and there are messages to recover, a log statement will be sent to the dashboard.

If at the end of the process the boolean flag was found to be true, a message will be written to the dashboard stating that the process has completed.

log4j properties were also modified to reflect info logging for the RecoveryTask

Issue: MIRTH-3179

MIRTH-3404: Added a Database Tasks server settings panel. A new servlet and controller interface for this were added as well. Only one database task may be executed at a time. For now, three tasks were added, to drop the OLD_CHANNEL, OLD_MESSAGE, and OLD_ATTACHMENT tables.
Easy peasy

Issue: MIRTH-3159

Fixed bug where a connection would leak in JdbcDao if a SQLException occurred during a rollback. In the future though we shouldn't even be performing this rollback all the time. It should only be when an exception has occurred.

Issue: MIRTH-3412

Updated dbcp from 1.4 to the latest snapshot build of 1.5. The latest build fixes a bug where connections are not released back to the pool when network connectivity is lost. This appeared to happen primarily with Postgres. If an official build of 1.5 is released we should upgrade to that instead.

In the future we may want to upgrade to dbcp2 which will require all users to be on Java7.

Issue: MIRTH-3262

MIRTH-3393

Implemented a TaskHandler system that allows callbacks when using the new Channel Task system. If tasks are submitted it is now possible to be notified immediately when each task starts, completes, errors, or is cancelled.

Calling get() on the Futures returned by ChannelUtil tasks will once again throw an exception if the task itself threw an exception. This utilizes the ErrorTaskHandler to retrieve any errors that may have occurred.

Logging exceptions and cancellations is now handled by the LoggingTaskHandler.

ChannelTask implementations now implement execute(), an abstract method on ChannelTask, instead of call() directly. This allows the task handler callback methods to be injected before and after execute().

MIRTH-3409: The Web Service Sender is now caching all WSDLs in the definition tree, not just the main WSDL. When the dispatch container is being created, the connector will recursively replace all import location attributes with file URLs, after manually requesting the dependency at that location.

MIRTH-3408: Temporary files are now correctly being cleaned up when Web Service Senders are stopped or halted.

Channels that are deploying/undeploying will now be visible in the Dashboard page and can be halted. This means that the channel deploy and undeploy scripts can now be halted if they are stuck. Note that there is still no way to halt the global deploy and undeploy scripts.

No longer setting tags for connectors in dashboard statuses because only the channel one is checked against

Issue: MIRTH-2761

Made submitTasks public and added it to the EngineController interface so tasks can be submitted externally.

Issue: MIRTH-3393

Refactored the package and variable names for Channels and Connectors in DonkeyEngineController. Since we have Channel and Connector in two different packages (model and donkey), we have always referenced the donkey channel and connectors fully qualified. However since we are in DonkeyEngineController, it makes more sense to reference the Donkey channels directly and the model channels fully qualified.

We always refer to the donkey channel/connector as channel and connector. These are the actual channel and connectors that are deployed. We always reference the model channel and connectors as the "model". Therefore we've renamed all references to the donkey channels as just "channel" and all references to the model channels as "channelModel" which is more in line with how we normally refer them. Likewise for "connector" and "connectorModel".

Renamed convertToDonkeyChannel to createChannelFromModel to better describe what is happening. We aren't actually converting anything since both the channel and model still exist.

Issue: MIRTH-3393

Deploy task can now override the initial state and connectors to start of the channel being deployed.

Issue: MIRTH-3393

Changed the visiblities of some methods in DonkeyEngineController to allow tasks to be submitted by other Controllers. ChannelTask and ChannelFuture are now their own classes instead of subclasses of DEC.

Issue: MIRTH-3393

DonkeyEngineController no longer delegates channel tasks to channel. Since DEC has access to the Donkey Channels already, it now acts directly on the channel.

Issue: MIRTH-3393

Added relevant loggers to the Channel Log Levels array

Issue: MIRTH-3406

Forgot to commit the log4j.properties file

Issue: MIRTH-3401

MIRTH-2427: Made a small tweak so that only a single row can be selected in the source map table.
Fixed comments in global deploy and undeploy scripts to reflect what actually happens.

Issue: MIRTH-3185

Renamed Shutdown script to Undeploy Script and added the necessary migration code.

Issue: MIRTH-3401

  1. … 7 more files in changeset.