You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by ru...@apache.org on 2007/03/06 13:45:01 UTC
svn commit: r515105 - in
/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse:
FaultHandler.java mediators/MediatorFaultHandler.java
Author: ruwan
Date: Tue Mar 6 04:45:00 2007
New Revision: 515105
URL: http://svn.apache.org/viewvc?view=rev&rev=515105
Log:
formated the Fault handlers for mediator
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java?view=diff&rev=515105&r1=515104&r2=515105
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java Tue Mar 6 04:45:00 2007
@@ -19,7 +19,18 @@
package org.apache.synapse;
+/**
+ * This is the generic interface for the fault handlers in synapse. In the synapse message context
+ * it has a stck of fault handlers and when ever a Synapse (Runtime) Exception has thrown this stack
+ * will be examined by one of the SynapseMR, ProxyServiceMR, or CallbackReceiver and faultStack
+ * will be poped to get the most relevant FaultHandler and execute the handleFault method.
+ */
public interface FaultHandler {
+ /**
+ * This will be executed to handle any Exceptions occured within the Synapse environment.
+ * @param synCtx SynapseMessageContext of which the fault occured message comprises
+ * @throws SynapseException in case there is a failure in the fault execution
+ */
public void handleFault(MessageContext synCtx) throws SynapseException;
}
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java?view=diff&rev=515105&r1=515104&r2=515105
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java Tue Mar 6 04:45:00 2007
@@ -23,24 +23,73 @@
import org.apache.synapse.SynapseException;
import org.apache.synapse.Mediator;
import org.apache.synapse.MessageContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+/**
+ * This implements the FaultHandler interface as a mediator fault handler. That is the fault handler is
+ * specified by a sequence and this handler implements the logic of handling the fault through the set
+ * of mediators present in the sequence.
+ *
+ * @see org.apache.synapse.FaultHandler
+ */
public class MediatorFaultHandler implements FaultHandler {
+ private static final Log log = LogFactory.getLog(MediatorFaultHandler.class);
+
+ /**
+ * Thsi holds the fault sequence for the mediator fault handler
+ */
private Mediator faultMediator = null;
+ /**
+ * Constructs the FaultHandler object for handling mediator faults
+ *
+ * @param faultMediator Mediator in which fault sequence is specified
+ */
public MediatorFaultHandler(Mediator faultMediator) {
+
this.faultMediator = faultMediator;
}
+ /**
+ * Implements the fault handling method for the mediators (basically sequences)
+ *
+ * @param synCtx Synapse Message Context of which mediation occurs
+ * @throws SynapseException in case there is a failure in the fault execution
+ * @see org.apache.synapse.FaultHandler#handleFault(org.apache.synapse.MessageContext)
+ */
public void handleFault(MessageContext synCtx) throws SynapseException {
- this.faultMediator.mediate(synCtx);
+
+ try {
+
+ log.debug("MediatorFaultHandler :: handleFault");
+
+ this.faultMediator.mediate(synCtx);
+
+ } catch (SynapseException syne) {
+
+ ((FaultHandler)(synCtx.getFaultStack().pop())).handleFault(synCtx);
+ }
}
+ /**
+ * Getter for the mediator describing the fault sequence
+ *
+ * @return Mediator specifying the fault sequence for mediator fault handler
+ */
public Mediator getFaultMediator() {
+
return faultMediator;
}
+ /**
+ * Setter of the mediator describing the fault sequence
+ *
+ * @param faultMediator Mediator specifying the fault sequence to be used by the handler
+ */
public void setFaultMediator(Mediator faultMediator) {
+
this.faultMediator = faultMediator;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org