diff --git a/src/main/java/altk/comm/engine/Broadcast.java b/src/main/java/altk/comm/engine/Broadcast.java
index db8193b..2f78172 100644
--- a/src/main/java/altk/comm/engine/Broadcast.java
+++ b/src/main/java/altk/comm/engine/Broadcast.java
@@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
+import altk.comm.engine.Job.JobStatus;
import altk.comm.engine.exception.BroadcastError;
import altk.comm.engine.exception.BroadcastException;
import altk.comm.engine.exception.EngineException;
@@ -79,6 +80,9 @@ public abstract class Broadcast
private Integer transactions;
private Integer serviceActivityCount;
+
+ /** Running count of successful jobs */
+ private int successCount;
public static enum BroadcastState
@@ -812,7 +816,7 @@ public abstract class Broadcast
/**
* Defaults to current state
- * @return
+ * @return XML string
*/
protected String mkStatusReport()
{
@@ -851,14 +855,26 @@ public abstract class Broadcast
}
}
statusBf.append("" + transactions + "");
+ statusBf.append("" + successCount + "");
statusBf.append("" + topLevelTag + ">\r\n");
+ statusBf.append(additionalStatusXML());
String statusReport = statusBf.toString();
return statusReport;
}
+ /**
+ * Derived class may add additional status in a broadcast status XML posted back to portal,
+ * by returning an XML tag which will be included immediately in the top-level tag
+ * of the broadcast status.
+ */
+ protected String additionalStatusXML()
+ {
+ return "";
+ }
+
protected void onExpire()
{
}
@@ -1148,7 +1164,8 @@ public abstract class Broadcast
}
/**
- * Sets jobStatus in job, and post job report.
+ * Constructs job report for given job, and posts report in postback queue.
+ * If job status is SUCCESS, then the class attribute successCount in incremented by 1..
* Optionally reschedules job.
* If no rescheduling, then decrement number of remainingJobs,
* @param job
@@ -1162,6 +1179,7 @@ public abstract class Broadcast
JobReport report = mkJobReport();
report.initBase(job, broadcastId, launchRecordId, activityRecordIdParamName, jobReportRootNodeName);
report.init(job);
+ if (job.jobStatus == JobStatus.SUCCESS) successCount++;
postback.queueReport(report.toString());
}
diff --git a/src/main/java/altk/comm/engine/CommEngine.java b/src/main/java/altk/comm/engine/CommEngine.java
index 0320f6b..3b2713e 100644
--- a/src/main/java/altk/comm/engine/CommEngine.java
+++ b/src/main/java/altk/comm/engine/CommEngine.java
@@ -29,8 +29,6 @@ public abstract class CommEngine extends HttpServlet
static final String REQUEST_TOP_ELEMENT_NAME_DEFAULT = "Request";
- private static final int SCHEDULER_THREAD_POOL_SIZE = 1;
-
private static final long DEAD_BROADCAST_VIEWING_PERIOD_DEFAULT = 60;
public static final String SERVICE_THREADPOOL_SIZE_KEY = "service_threadpool_size";
@@ -184,8 +182,7 @@ public abstract class CommEngine extends HttpServlet
}
// Set up periodic purge of stale broadcasts, based on deadBroadcastViewingMinutes
- String periodStr = config.getProperty("dead_broadcast_viewing_period",
- new Long(DEAD_BROADCAST_VIEWING_PERIOD_DEFAULT).toString());
+ String periodStr = config.getProperty("dead_broadcast_viewing_period", Long.toString(DEAD_BROADCAST_VIEWING_PERIOD_DEFAULT));
deadBroadcastViewingMinutes = Long.parseLong(periodStr);
CommonLogger.startup.info(String.format("Dead broadcast viewing period: %d minutes", deadBroadcastViewingMinutes));
diff --git a/src/main/java/altk/comm/engine/Postback.java b/src/main/java/altk/comm/engine/Postback.java
index 2fc7ffb..8dfbd28 100644
--- a/src/main/java/altk/comm/engine/Postback.java
+++ b/src/main/java/altk/comm/engine/Postback.java
@@ -10,7 +10,6 @@ import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
-import java.util.Queue;
import javax.net.ssl.SSLContext;
import javax.xml.parsers.DocumentBuilder;
@@ -89,8 +88,6 @@ public class Postback
protected int postedTransactions;
- private boolean shutdownWhenDone;
-
private static Logger myLogger = Logger.getLogger(Postback.class);
public enum PostbackStatus
@@ -430,16 +427,9 @@ public class Postback
return false;
}
- private boolean threadsShouldStop()
- {
- //return (shutdownWhenDone); // && postedTransactions == broadcast.transactions);
- return broadcast.postbackThreadsShouldStop();
- }
-
public void wrapup()
{
myLogger.debug("Wrapping up");
- shutdownWhenDone = true;
try
{