You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2009/12/04 20:51:29 UTC

svn commit: r887334 - in /activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch: ./ internal/advanced/

Author: chirino
Date: Fri Dec  4 19:51:29 2009
New Revision: 887334

URL: http://svn.apache.org/viewvc?rev=887334&view=rev
Log:
merged PooledDispatchContext into DispatchContext

Removed:
    activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/PooledDispatchContext.java
Modified:
    activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/DispatchObserver.java
    activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/AdvancedDispatchSPI.java
    activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatchContext.java
    activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatcherThread.java
    activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/LoadBalancer.java
    activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/SimpleLoadBalancer.java

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/DispatchObserver.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/DispatchObserver.java?rev=887334&r1=887333&r2=887334&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/DispatchObserver.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/DispatchObserver.java Fri Dec  4 19:51:29 2009
@@ -19,7 +19,6 @@
 
 import org.apache.activemq.dispatch.internal.advanced.DispatchContext;
 import org.apache.activemq.dispatch.internal.advanced.Dispatcher;
-import org.apache.activemq.dispatch.internal.advanced.PooledDispatchContext;
 
 public interface DispatchObserver {
     
@@ -29,7 +28,7 @@
      * @param caller The calling dispatcher
      * @param context The context from which the dispatch is requested.
      */
-    public void onDispatch(Dispatcher caller, PooledDispatchContext context);
+    public void onDispatch(Dispatcher caller, DispatchContext context);
 
     /**
      * Must be called by the dispatcher when a {@link DispatchContext} is closed.

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/AdvancedDispatchSPI.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/AdvancedDispatchSPI.java?rev=887334&r1=887333&r2=887334&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/AdvancedDispatchSPI.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/AdvancedDispatchSPI.java Fri Dec  4 19:51:29 2009
@@ -39,7 +39,7 @@
     final AtomicLong globalQueuedRunnables = new AtomicLong();
 
     private final ThreadLocal<DispatcherThread> dispatcher = new ThreadLocal<DispatcherThread>();
-    private final ThreadLocal<PooledDispatchContext> dispatcherContext = new ThreadLocal<PooledDispatchContext>();
+    private final ThreadLocal<DispatchContext> dispatcherContext = new ThreadLocal<DispatchContext>();
     private final ArrayList<DispatcherThread> dispatchers = new ArrayList<DispatcherThread>();
 
     final AtomicInteger startCounter = new AtomicInteger();
@@ -115,11 +115,11 @@
         }
     }
 
-    public void setCurrentDispatchContext(PooledDispatchContext context) {
+    public void setCurrentDispatchContext(DispatchContext context) {
         dispatcherContext.set(context);
     }
 
-    public PooledDispatchContext getCurrentDispatchContext() {
+    public DispatchContext getCurrentDispatchContext() {
         return dispatcherContext.get();
     }
 

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatchContext.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatchContext.java?rev=887334&r1=887333&r2=887334&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatchContext.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatchContext.java Fri Dec  4 19:51:29 2009
@@ -2,6 +2,8 @@
 
 import java.util.concurrent.RejectedExecutionException;
 
+import org.apache.activemq.dispatch.DispatchObserver;
+
 
 /**
  * Returned to callers registered with this dispathcer. Used by the caller
@@ -11,6 +13,7 @@
  * threads.
  */
 public interface DispatchContext {
+    
     /**
      * Once registered with a dispatcher, this can be called to request
      * dispatch. The {@link Dispatchable} will remain in the dispatch queue
@@ -41,4 +44,25 @@
      * no longer be used. 
      */
     public void close(boolean sync);
+    
+    /**
+     * Called to transfer a {@link PooledDispatchContext} to a new
+     * Dispatcher.
+     */
+    public void setTargetQueue(Dispatcher newDispatcher);
+
+    /**
+     * Gets the dispatcher to which this PooledDispatchContext currently
+     * belongs
+     * 
+     * @return
+     */
+    public Dispatcher getTargetQueue();
+
+    /**
+     * Gets the execution tracker for the context.
+     * 
+     * @return the execution tracker for the context:
+     */
+    public DispatchObserver getExecutionTracker();    
 }
\ No newline at end of file

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatcherThread.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatcherThread.java?rev=887334&r1=887333&r2=887334&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatcherThread.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/DispatcherThread.java Fri Dec  4 19:51:29 2009
@@ -436,14 +436,14 @@
 
     }
 
-    private final PooledDispatchContext getCurrentDispatchContext() {
+    private final DispatchContext getCurrentDispatchContext() {
         return spi.getCurrentDispatchContext();
     }
 
     /**
      * 
      */
-    protected class PriorityDispatchContext extends LinkedNode<PriorityDispatchContext> implements PooledDispatchContext {
+    protected class PriorityDispatchContext extends LinkedNode<PriorityDispatchContext> implements DispatchContext {
         // The target:
         private final Runnable runnable;
         // The name of this context:
@@ -470,7 +470,7 @@
             this.name = name;
             this.currentOwner = (DispatcherThread) DispatcherThread.this;
             if (persistent && spi != null) {
-                this.tracker = spi.getLoadBalancer().createExecutionTracker((PooledDispatchContext) this);
+                this.tracker = spi.getLoadBalancer().createExecutionTracker((DispatchContext) this);
             } else {
                 this.tracker = null;
             }

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/LoadBalancer.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/LoadBalancer.java?rev=887334&r1=887333&r2=887334&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/LoadBalancer.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/LoadBalancer.java Fri Dec  4 19:51:29 2009
@@ -39,7 +39,7 @@
      * @param context
      * @return
      */
-    public DispatchObserver createExecutionTracker(PooledDispatchContext context);
+    public DispatchObserver createExecutionTracker(DispatchContext context);
 
     /**
      * Starts execution tracking

Modified: activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/SimpleLoadBalancer.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/SimpleLoadBalancer.java?rev=887334&r1=887333&r2=887334&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/SimpleLoadBalancer.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dispatcher/src/main/java/org/apache/activemq/dispatch/internal/advanced/SimpleLoadBalancer.java Fri Dec  4 19:51:29 2009
@@ -99,16 +99,16 @@
         dispatchers.remove(dispatcher);
     }
 
-    public DispatchObserver createExecutionTracker(PooledDispatchContext context) {
+    public DispatchObserver createExecutionTracker(DispatchContext context) {
         return new SimpleExecutionTracker(context);
     }
 
     private static class ExecutionStats {
-        final PooledDispatchContext target;
-        final PooledDispatchContext source;
+        final DispatchContext target;
+        final DispatchContext source;
         int count;
 
-        ExecutionStats(PooledDispatchContext source, PooledDispatchContext target) {
+        ExecutionStats(DispatchContext source, DispatchContext target) {
             this.target = target;
             this.source = source;
         }
@@ -119,14 +119,14 @@
     }
 
     private class SimpleExecutionTracker implements DispatchObserver {
-        private final HashMap<PooledDispatchContext, ExecutionStats> sources = new HashMap<PooledDispatchContext, ExecutionStats>();
-        private final PooledDispatchContext context;
+        private final HashMap<DispatchContext, ExecutionStats> sources = new HashMap<DispatchContext, ExecutionStats>();
+        private final DispatchContext context;
         private final AtomicInteger work = new AtomicInteger(0);
 
-        private PooledDispatchContext singleSource;
+        private DispatchContext singleSource;
         private Dispatcher currentOwner;
 
-        SimpleExecutionTracker(PooledDispatchContext context) {
+        SimpleExecutionTracker(DispatchContext context) {
             this.context = context;
             currentOwner = context.getTargetQueue();
         }
@@ -145,7 +145,7 @@
          * @return True if this method resulted in the dispatch request being
          *         assigned to another dispatcher.
          */
-        public void onDispatch(Dispatcher callingDispatcher, PooledDispatchContext callingContext) {
+        public void onDispatch(Dispatcher callingDispatcher, DispatchContext callingContext) {
 
             if (callingContext != null) {
                 // Make sure we are being called by another node: