From 6165eff51cc9c6ace42f74bac93a6568bc80da45 Mon Sep 17 00:00:00 2001 From: ymlam Date: Fri, 26 Aug 2016 05:17:34 +0000 Subject: [PATCH] Move POST processing to Broadcast.doPost method. --- src/altk/comm/engine/CommEngine.java | 53 ++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/src/altk/comm/engine/CommEngine.java b/src/altk/comm/engine/CommEngine.java index f27c875..5c7e2b4 100644 --- a/src/altk/comm/engine/CommEngine.java +++ b/src/altk/comm/engine/CommEngine.java @@ -205,9 +205,17 @@ public abstract class CommEngine extends HttpServlet */ protected abstract String getPropertiesContextName(); - @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) + { + Broadcast broadcast = mkBroadcast(); + broadcast.doPost(request, response, this); + } + + //@Override + // TODO Not used - delete + @Deprecated + protected void doPost_good(HttpServletRequest request, HttpServletResponse response) { myException = null; try @@ -548,7 +556,48 @@ public abstract class CommEngine extends HttpServlet abstract protected void initChild(); /** - * Indirectly invoked by serlet container during destruction of servlet. + * Indirectly invoked by servlet container during destruction of servlet. */ abstract protected void destroyChild(); + + public PostBack getPostBack(String postBackURL, String broadcastType) + { + if (postBackURL == null) return null; + + PostBack postBack = postBackMap.get(postBackURL); + if (postBack != null) return postBack; + + postBack = new PostBack(postBackURL, broadcastType + "_status", + postbackMaxQueueSize, postbackSenderPoolSize, postbackMaxBatchSize); + postBackMap.put(postBackURL, postBack); + return postBack; + } + + public EngineResources getResources() + { + return resources; + } + + public void addBroadcast(String broadcastId, Broadcast broadcast) + { + if (broadcastId == null) broadcastId = "Unknown" + unknownBroadcastIdNdx++; + broadcasts.put(broadcastId, broadcast); + + } + + /** + * If broadcast has no id, one will be created for it. + * @param broadcast + */ + public void installBroadcast(Broadcast broadcast) + { + String broadcastId = broadcast.getBroadcastId(); + if (broadcastId == null) broadcastId = "Unknown" + unknownBroadcastIdNdx++; + broadcasts.put(broadcastId, broadcast); + } + + public int getServiceThreadPoolSize() + { + return serviceThreadPoolSize; + } }