From 990e50c61d1b92dbd0e063fe6811783c2d479e42 Mon Sep 17 00:00:00 2001 From: clemenso Date: Tue, 28 Oct 2008 10:56:44 +0000 Subject: ProcessingContext removed old background imgs git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@125 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../bku/binding/BindingProcessorManagerImpl.java | 153 +++++++++++++-------- 1 file changed, 93 insertions(+), 60 deletions(-) (limited to 'bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManagerImpl.java') diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManagerImpl.java b/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManagerImpl.java index 11f5a160..cc1b7532 100644 --- a/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManagerImpl.java +++ b/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManagerImpl.java @@ -53,8 +53,9 @@ public class BindingProcessorManagerImpl implements BindingProcessorManager { private STALFactory stalFactory; private SLCommandInvoker commandInvokerClass; private ExecutorService executorService; - private Map bindingProcessorMap = Collections - .synchronizedMap(new HashMap()); + private Map contextMap = Collections.synchronizedMap(new HashMap()); +// private Map bindingProcessorMap = Collections +// .synchronizedMap(new HashMap()); /** * Container to hold a Future and Bindingprocessor object as map value. @@ -62,39 +63,39 @@ public class BindingProcessorManagerImpl implements BindingProcessorManager { * @author wbauer * @see BindingProcessorManagerImpl#bindingProcessorMap */ - static class MapEntityWrapper { - private Future future; - private BindingProcessor bindingProcessor; - - public MapEntityWrapper(Future future, BindingProcessor bindingProcessor) { - if ((bindingProcessor == null) || (future == null)) { - throw new NullPointerException("Argument must not be null"); - } - this.bindingProcessor = bindingProcessor; - this.future = future; - } - - public Future getFuture() { - return future; - } - - public BindingProcessor getBindingProcessor() { - return bindingProcessor; - } - - public int hashCode() { - return bindingProcessor.getId().hashCode(); - } - - public boolean equals(Object other) { - if (other instanceof MapEntityWrapper) { - MapEntityWrapper o = (MapEntityWrapper) other; - return (o.bindingProcessor.getId().equals(bindingProcessor.getId())); - } else { - return false; - } - } - } +// static class MapEntityWrapper { +// private Future future; +// private BindingProcessor bindingProcessor; +// +// public MapEntityWrapper(Future future, BindingProcessor bindingProcessor) { +// if ((bindingProcessor == null) || (future == null)) { +// throw new NullPointerException("Argument must not be null"); +// } +// this.bindingProcessor = bindingProcessor; +// this.future = future; +// } +// +// public Future getFuture() { +// return future; +// } +// +// public BindingProcessor getBindingProcessor() { +// return bindingProcessor; +// } +// +// public int hashCode() { +// return bindingProcessor.getId().hashCode(); +// } +// +// public boolean equals(Object other) { +// if (other instanceof MapEntityWrapper) { +// MapEntityWrapper o = (MapEntityWrapper) other; +// return (o.bindingProcessor.getId().equals(bindingProcessor.getId())); +// } else { +// return false; +// } +// } +// } /** * @@ -157,17 +158,24 @@ public class BindingProcessorManagerImpl implements BindingProcessorManager { public void shutdownNow() { log.info("Shutting down the BindingProcessorManager NOW!"); executorService.shutdownNow(); - log.debug("Number of binding prcessors currently managed: " - + bindingProcessorMap.size()); + log.debug("Number of binding contexts currently managed: " + + contextMap.size()); +// + bindingProcessorMap.size()); if (log.isDebugEnabled()) { - for (Iterator it = bindingProcessorMap.values() - .iterator(); it.hasNext();) { - MapEntityWrapper entry = it.next(); - log.debug(entry.getBindingProcessor().getId() + ": isDone: " - + entry.getFuture().isDone()); - log.debug(entry.getBindingProcessor().getId() + ": isCanceled: " - + entry.getFuture().isCancelled()); + for (ProcessingContext ctx : contextMap.values()) { + Id bpId = ctx.getBindingProcessor().getId(); + Future future = ctx.getFuture(); + log.debug(bpId + " cancelled: " + future.isCancelled()); + log.debug(bpId + " done: " + future.isDone()); } +// for (Iterator it = bindingProcessorMap.values() +// .iterator(); it.hasNext();) { +// MapEntityWrapper entry = it.next(); +// log.debug(entry.getBindingProcessor().getId() + ": isDone: " +// + entry.getFuture().isDone()); +// log.debug(entry.getBindingProcessor().getId() + ": isCanceled: " +// + entry.getFuture().isCancelled()); +// } } } @@ -216,17 +224,22 @@ public class BindingProcessorManagerImpl implements BindingProcessorManager { * @return the bindingprocessor object for this id or null if no * bindingprocessor was found. */ + @Override public BindingProcessor getBindingProcessor(Id aId) { - if (bindingProcessorMap.get(aId) != null) { - return bindingProcessorMap.get(aId).getBindingProcessor(); +// if (bindingProcessorMap.get(aId) != null) { +// return bindingProcessorMap.get(aId).getBindingProcessor(); + ProcessingContext ctx = contextMap.get(aId); + if (ctx != null) { + return ctx.getBindingProcessor(); } else { return null; } } - /** - * + /** + * */ + @Override public void setSTALFactory(STALFactory aStalFactory) { if (aStalFactory == null) { throw new NullPointerException("Cannot set STALFactory to null"); @@ -236,12 +249,17 @@ public class BindingProcessorManagerImpl implements BindingProcessorManager { /** * Causes the BindingProcessorManager to manage the provided BindingProcessor + * Creates a processing context, + * schedules the provided binding processor for processing and + * immediately returns the context. * * @param aBindingProcessor * must not be null */ - public void process(BindingProcessor aBindingProcessor) { - if (bindingProcessorMap.containsKey(aBindingProcessor.getId())) { + @Override + public ProcessingContext process(BindingProcessor aBindingProcessor) { + if (contextMap.containsKey(aBindingProcessor.getId())) { +// if (bindingProcessorMap.containsKey(aBindingProcessor.getId())) { log.fatal("Clashing ids, cannot process bindingprocessor with id:" + aBindingProcessor.getId()); throw new SLRuntimeException( @@ -250,8 +268,11 @@ public class BindingProcessorManagerImpl implements BindingProcessorManager { } log.debug("processing bindingprocessor: " + aBindingProcessor.getId()); Future f = executorService.submit(aBindingProcessor); - bindingProcessorMap.put(aBindingProcessor.getId(), new MapEntityWrapper(f, - aBindingProcessor)); + ProcessingContext ctx = new ProcessingContext(aBindingProcessor, f); + contextMap.put(aBindingProcessor.getId(), ctx); +// bindingProcessorMap.put(aBindingProcessor.getId(), new MapEntityWrapper(f, +// aBindingProcessor)); + return ctx; } @Override @@ -262,26 +283,38 @@ public class BindingProcessorManagerImpl implements BindingProcessorManager { @Override public void removeBindingProcessor(Id sessionId) { log.debug("Removing binding processor: " + sessionId); - MapEntityWrapper wrapper = bindingProcessorMap.get(sessionId); - if (wrapper == null) { + ProcessingContext ctx = contextMap.get(sessionId); + if (ctx == null) { return; } - Future f = wrapper.getFuture(); + Future f = ctx.getFuture(); + +// MapEntityWrapper wrapper = bindingProcessorMap.get(sessionId); +// if (wrapper == null) { +// return; +// } +// Future f = wrapper.getFuture(); if (!f.isDone()) { f.cancel(true); } - bindingProcessorMap.remove(sessionId); + contextMap.remove(sessionId); +// bindingProcessorMap.remove(sessionId); } @Override public Set getManagedIds() { Set result = new HashSet(); - synchronized (bindingProcessorMap) { - for (Iterator it = bindingProcessorMap.keySet().iterator(); it - .hasNext();) { - result.add(it.next()); + synchronized (contextMap) { + for (Id id : contextMap.keySet()) { + result.add(id); } } +// synchronized (bindingProcessorMap) { +// for (Iterator it = bindingProcessorMap.keySet().iterator(); it +// .hasNext();) { +// result.add(it.next()); +// } +// } return result; } } \ No newline at end of file -- cgit v1.2.3