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]