[NO ISSUE][OTH] Create getters getRunningJobCount and getEventListenersAsList

- user model changes: no
- storage format changes: no
- interface changes: yes

Details:
ActiveNotificationHandler.getEventListeners creates an array on every call.
This patch adds getEventListenersAsList that returns an unmodifiableList
of active listners without creating a new array.

Change-Id: I2b67d7bdfe6bca5f39a438f4110eecea5a3c98bf
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17835
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
Tested-by: Murtadha Hubail <mhubail@apache.org>
diff --git a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IActiveNotificationHandler.java b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IActiveNotificationHandler.java
index 60bfa69..1efd58e 100644
--- a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IActiveNotificationHandler.java
+++ b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IActiveNotificationHandler.java
@@ -19,6 +19,8 @@
  */
 package org.apache.asterix.active;
 
+import java.util.Collection;
+
 import org.apache.asterix.active.message.ActivePartitionMessage;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 
@@ -58,6 +60,11 @@
     IActiveEntityEventsListener[] getEventListeners();
 
     /**
+     * @return List of all the registered event listeners
+     */
+    Collection<IActiveEntityEventsListener> getEventListenersAsList();
+
+    /**
      * Lookup an event listener using the entity id
      *
      * @param entityId
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java
index 6b3581e..3c277d5 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.app.active;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -187,6 +188,11 @@
     }
 
     @Override
+    public synchronized Collection<IActiveEntityEventsListener> getEventListenersAsList() {
+        return Collections.unmodifiableCollection(entityEventListeners.values());
+    }
+
+    @Override
     public synchronized void registerListener(IActiveEntityEventsListener listener) throws HyracksDataException {
         if (suspended) {
             throw new RuntimeDataException(ErrorCode.ACTIVE_NOTIFICATION_HANDLER_IS_SUSPENDED);
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java
index a9ddee3..b2795d4 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/IJobManager.java
@@ -112,6 +112,11 @@
     Collection<JobRun> getRunningJobs();
 
     /**
+     * @return number of jobs that are currently running.
+     */
+    int getRunningJobsCount();
+
+    /**
      * @return all jobs that are currently waiting in the job queue.
      */
     Collection<JobRun> getPendingJobs();
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java
index 9850ee2..4882f4a 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/job/JobManager.java
@@ -264,6 +264,11 @@
     }
 
     @Override
+    public int getRunningJobsCount() {
+        return activeRunMap.size();
+    }
+
+    @Override
     public Collection<JobRun> getPendingJobs() {
         return jobQueue.jobs();
     }