Author: supun
Date: Wed May 12 08:06:03 2010
New Revision: 943403
URL: http://svn.apache.org/viewvc?rev=943403&view=rev
Log:
Improving ConditionaRouterMediator factories and serializers
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorSerializer.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorFactory.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorFactory.java?rev=943403&r1=943402&r2=943403&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorFactory.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorFactory.java
Wed May 12 08:06:03 2010
@@ -99,12 +99,18 @@ public class ConditionalRouterMediatorFa
}
OMElement conditionElem =
routeElem.getFirstChildWithName(CONDITION_Q);
+
+ if (conditionElem == null) {
+ handleException("Couldn't find the condition of the
conditional router");
+ return null;
+ }
+
try {
Evaluator evaluator =
EvaluatorFactoryFinder.getInstance().getEvaluator(
conditionElem.getFirstElement());
route.setEvaluator(evaluator);
- } catch (EvaluatorException ee) {
- throw new SynapseException("Couldn't build the condition
of the conditional router");
+ } catch (EvaluatorException ee) {
+ handleException("Couldn't build the condition of the
conditional router", ee);
}
OMElement targetElem =
routeElem.getFirstChildWithName(TARGET_Q);
Target target = TargetFactory.createTarget(targetElem);
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorSerializer.java?rev=943403&r1=943402&r2=943403&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorSerializer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConditionalRouterMediatorSerializer.java
Wed May 12 08:06:03 2010
@@ -21,6 +21,9 @@ package org.apache.synapse.config.xml;
import org.apache.axiom.om.OMElement;
import org.apache.synapse.Mediator;
+import org.apache.synapse.commons.evaluators.config.EvaluatorSerializerFinder;
+import org.apache.synapse.commons.evaluators.config.EvaluatorSerializer;
+import org.apache.synapse.commons.evaluators.EvaluatorException;
import org.apache.synapse.mediators.filters.router.ConditionalRouterMediator;
import org.apache.synapse.mediators.filters.router.Route;
@@ -52,6 +55,22 @@ public class ConditionalRouterMediatorSe
if (route.isBreakRouteExplicitlySet()) {
routeElem.addAttribute("breakRoute",
Boolean.toString(route.isBreakRoute()), nullNS);
}
+
+ if (route.getEvaluator() != null) {
+ EvaluatorSerializer evaluatorSerializer =
+ EvaluatorSerializerFinder.getInstance().getSerializer(
+ route.getEvaluator().getName());
+ if (evaluatorSerializer != null) {
+ OMElement conditionElement =
fac.createOMElement("condition", synNS);
+ try {
+ evaluatorSerializer.serialize(conditionElement,
route.getEvaluator());
+ } catch (EvaluatorException e) {
+ handleException("Cannot serialize the Evaluator", e);
+ }
+
+ routeElem.addChild(conditionElement);
+ }
+ }
if (route.getTarget() != null) {
routeElem.addChild(TargetSerializer.serializeTarget(route.getTarget()));
@@ -59,9 +78,6 @@ public class ConditionalRouterMediatorSe
handleException("Route in a conditional router has to have a
target");
}
- if (route.getEvaluator() != null) {
- // todo serialize the route evaluator
- }
conditionalRouterElem.addChild(routeElem);
}