[BZ 1026088] handle topology changes for cluster sizes > 4
log execution time for loading storage node composites
 [BZ 1018179] include support for JDG -> InfinispanServer name change.
[BZ 1028622] Increase the timer run interval to 90 seconds after an initial wait of 30 seconds. This will reduce the possibility of having subsequent runs wait on the credentials process to finish.
BZ 1029157 - fix the agent connectivity test page
adding more debug logging of query execution times
Test page for Hibernate queries was broken, as were the admin links on
all the Test pages.  Fixed.
[846451] Users with just Resource Group access cannot access alerts on their Groups
A tangential but important fix to seeing the group alert def details when
not logged in as an admin user.
BZ 903402 - take into account a missing Windows drive letter. We have to be careful since our resource keys are based on some of these paths so we can't blindly set them to their real aboslute forms now. but I think these changes are unobtrusive (have no real effect on RHQ when running on non-Windows platforms and will only affect things when the paths are just missing their drive letters, which is what the BZ is targeting)
[BZ 1029095] Fix the session reattachment for overlord.
Add debug logging to AvailabilityExecutor
BZ 913672 - Prevent a NPE if no previous stats are available.
Minor agent logging changes

Make AvailabilityExecutor verbose only when trace level is enabled
Prevent HTTP Client from flooding logs when debug mode is enabled
[1029553] Recovery alerts involving availability may not fire in HA environment
Convert avail duration condition checking from quartz job to EJB Timer to
ensure that the the job executes on the HA server initiating the job.  This
server presumably still serves the relevant agent and therefore is the
server which should have its global cache updated immediately upon firing
of the alert, in order to quickly get recovery alert conditions into the
global cache.

The only downside is that loss of the server (in an HA env) will mean loss
of the avail duration check, and potential alert.  In a non-HA env the issue
is moot because there would be no where to execute the quartz job as well.
[874726] Provide timeline view across multiple resources
Added a Timeline portlet.  This is not a very robust solution for the
bug, at least given the current impl of the TimelineView.
I'm leaving it a NEW.  But it's something.
for dev builds only, when you do a dbsetup, we'll now add two new users (password same as username):
anon (with absolutely no permissions) and dev (with only "inventory manager" global permission).
only execute one query for unacknowledged alerts

StorageNodeManagerBean.getStorageNodeComposites() previously made separate
query for for unacked alerts for each storage node. I have added a new method
to fetch the unacked alerts in a single query. There was also a subtle bug in
the method findResourcesWithAlertsToStorageNodeMap. It is supposed to return a
map of ids of all storage node resources (or descendants) that have alert defs.
The map however included the resource ids of the entire storage node resource
hierarchy. The problem was with this code,

if (resource.getAlertDefinitions() != null) {
    resourceIdsToStorageNodeMap.put(resource.getId(), initialStorageNode.getId());
}

getAlertDefinitions() is always non-null. I have changed that check to be a call
to isEmpty().
getStorageNodeComposites() requires MANAGE_SETTINGS permission

Adding the required permission also allows for a significant performance gain.
Prior to this commit, MeasurementDataManagerBean.getMeasurementAggregate was
invoked to fetch the load metrics. Each call incurred the additional overhead
of two queries - one to load the schedule and the other to ensure the subject
has access to view the schedule's data.

Because we now require MANAGE_SETTINGS permission, we do not need to check each
schedule. This allows us to fetch the data directly from MetricsServer and
provides a considerable speed up.
fetch storage node load metric data asynchronously

Fetching the metric data asynchronously improves overall throughput for loading
metric data. The improvent gets larger as the number of nodes increases and/or
as the load on the system increases.
Commenting out the unused metrics in the getLoadAsync because this method should fetch the data as fast as possible; fixing one edge case, when no schedules were found on the associated resource