Author: chathura_ce
Date: Mon May 14 05:42:44 2007
New Revision: 537803

URL: http://svn.apache.org/viewvc?view=rev&rev=537803
Log:
Commiting a Class mediator sample implemented by Kasun.

Added:
    
webservices/synapse/trunk/java/modules/samples/src/main/java/samples/mediators/
    
webservices/synapse/trunk/java/modules/samples/src/main/java/samples/mediators/DiscountQuoteMediator.java
    webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_600.xml

Added: 
webservices/synapse/trunk/java/modules/samples/src/main/java/samples/mediators/DiscountQuoteMediator.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/samples/src/main/java/samples/mediators/DiscountQuoteMediator.java?view=auto&rev=537803
==============================================================================
--- 
webservices/synapse/trunk/java/modules/samples/src/main/java/samples/mediators/DiscountQuoteMediator.java
 (added)
+++ 
webservices/synapse/trunk/java/modules/samples/src/main/java/samples/mediators/DiscountQuoteMediator.java
 Mon May 14 05:42:44 2007
@@ -0,0 +1,86 @@
+package samples.mediators;
+
+
+import org.apache.synapse.MessageContext;
+import org.apache.synapse.Mediator;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.xml.namespace.QName;
+
+public class DiscountQuoteMediator implements Mediator {
+
+    private static final Log log = 
LogFactory.getLog(DiscountQuoteMediator.class);
+
+    private String discountFactor="10";
+
+    private String bonusFor="10";
+
+    private int bonusCount=0;
+
+    public DiscountQuoteMediator(){}
+
+    public boolean mediate(MessageContext mc) {
+
+        String price= 
mc.getEnvelope().getBody().getFirstElement().getFirstElement().
+                getFirstChildWithName(new 
QName("http://services.samples/xsd","last";)).getText();
+
+        //converting String properties into integers
+        int discount=Integer.parseInt(discountFactor);
+        int bonusNo=Integer.parseInt(bonusFor);
+        double currentPrice=Double.parseDouble(price);
+
+        //discounting factor is deducted from current price form every response
+        Double lastPrice = new Double(currentPrice - currentPrice * discount / 
100);
+
+        //Special discount of 5% offers for the first responses as set in the 
bonusFor property
+        if (bonusCount <= bonusNo) {
+            lastPrice = new Double(lastPrice.doubleValue() - 
lastPrice.doubleValue() * 0.05);
+        }
+
+        String discountedPrice = lastPrice.toString();
+
+        
mc.getEnvelope().getBody().getFirstElement().getFirstElement().getFirstChildWithName
+                (new 
QName("http://services.samples/xsd","last";)).setText(discountedPrice);
+
+        System.out.println("Quote value discounted.");
+        System.out.println("Original price: " + price);
+        System.out.println("Discounted price: " + discountedPrice);
+
+        return true;
+    }
+
+    public String getType() {
+        return null;
+    }
+
+    public void setTraceState(int traceState) {
+        traceState = 0;
+    }
+
+    public int getTraceState() {
+        return 0;
+    }
+
+    public void setDiscountFactor(String discount) {
+        discountFactor=discount;
+    }
+
+    public String getDiscountFactor() {
+        return discountFactor;
+    }
+
+    public void setBonusFor(String bonus){
+        bonusFor=bonus;
+    }
+
+    public String getBonusFor(){
+        return bonusFor;
+    }
+
+}
+

Added: 
webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_600.xml
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_600.xml?view=auto&rev=537803
==============================================================================
--- 
webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_600.xml 
(added)
+++ 
webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_600.xml 
Mon May 14 05:42:44 2007
@@ -0,0 +1,29 @@
+<definitions xmlns="http://ws.apache.org/ns/synapse";>
+
+    <sequence name="fault">
+        <makefault>
+            <code value="tns:Receiver" 
xmlns:tns="http://www.w3.org/2003/05/soap-envelope"/>
+            <reason value="Mediation failed."/>
+        </makefault>
+        <send/>
+    </sequence>
+
+    <sequence name="main" onError="fault">
+        <in>
+            <send>
+                <endpoint name="stockquote">
+                    <address 
uri="http://localhost:9000/soap/SimpleStockQuoteService"/>
+                </endpoint>
+            </send>
+        </in>
+        <out>
+            <class name="samples.mediators.DiscountQuoteMediator">
+                <property name="discountFactor" value="10"/>
+                <property name="bonusFor" value="5"/>
+            </class>
+            <send/>
+        </out>
+    </sequence>
+
+</definitions>
+



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to