Author: hiranya
Date: Tue May 31 02:04:27 2016
New Revision: 1746209

URL: http://svn.apache.org/viewvc?rev=1746209&view=rev
Log:
Implementing deactivate sequence for forwarding jobs; Applied patch from 
SYNAPSE-1020

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingJob.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingProcessorConstants.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingJob.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingJob.java?rev=1746209&r1=1746208&r2=1746209&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingJob.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingJob.java
 Tue May 31 02:04:27 2016
@@ -158,7 +158,7 @@ public class ForwardingJob implements St
 
                                 if (maxDeliverAttempts > 0) {
                                     if(processor.getSendAttemptCount() >= 
maxDeliverAttempts) {
-                                        processor.deactivate();
+                                        deactivate(processor, messageContext, 
parameters);
                                     }
                                 }
                                 errorStop = true;
@@ -199,7 +199,7 @@ public class ForwardingJob implements St
                             if (maxDeliverAttempts > 0) {
                                 processor.incrementSendAttemptCount();
                                 if (processor.getSendAttemptCount() >= 
maxDeliverAttempts) {
-                                    processor.deactivate();
+                                    deactivate(processor, messageContext, 
parameters);
                                 }
                             }
                             errorStop = true;
@@ -260,4 +260,19 @@ public class ForwardingJob implements St
         }
     }
 
+    private void deactivate(ScheduledMessageForwardingProcessor processor,
+                            MessageContext msgContext, Map<String, Object> 
parameters) {
+        processor.deactivate();
+        if (parameters != null && 
parameters.get(ForwardingProcessorConstants.DEACTIVATE_SEQUENCE) != null) {
+            if (msgContext != null) {
+                String seq = (String) 
parameters.get(ForwardingProcessorConstants.DEACTIVATE_SEQUENCE);
+                Mediator mediator = msgContext.getSequence(seq);
+                if (mediator != null) {
+                    mediator.mediate(msgContext);
+                } else {
+                    log.warn("Deactivate sequence: " + seq + " does not 
exist");
+                }
+            }
+        }
+    }
 }

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingProcessorConstants.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingProcessorConstants.java?rev=1746209&r1=1746208&r2=1746209&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingProcessorConstants.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/message/processors/forward/ForwardingProcessorConstants.java
 Tue May 31 02:04:27 2016
@@ -55,5 +55,9 @@ public final class ForwardingProcessorCo
      */
     public static final String FAULT_SEQUENCE = 
"message.processor.fault.sequence";
 
+    /**
+     * used for forward in case of scheduled message processor deactivation
+     */
+    public static final String DEACTIVATE_SEQUENCE = 
"message.processor.deactivate.sequence";
 
 }


Reply via email to