Monday, November 18, 2019

WSO2Demo2(Addition of Two variables)

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="Demo2"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <property expression="//Value1/text()"
                   name="Value1"
                   scope="default"
                   type="INTEGER"/>
         <property expression="//Value2/text()"
                   name="Value2"
                   scope="default"
                   type="INTEGER"/>
         <property expression="//operation"
                   name="operation"
                   scope="default"
                   type="STRING"/>
         <script language="js">var value1 = parseInt(mc.getProperty("Value1"));
            var value2 = parseInt(mc.getProperty("Value2"));
            var result = value1 + value2;
            mc.setProperty("Result", result);</script>
         <log>
            <property expression="get-property('Result')" name="RESULT"/>
         </log>
         <payloadFactory media-type="xml">
            <format>
               <Response>$1</Response>
            </format>
            <args>
               <arg evaluator="xml" expression="get-property('Result')"/>
            </args>
         </payloadFactory>
         <respond/>
      </inSequence>
      <outSequence/>
      <faultSequence/>
   </target>
   <description/>
</proxy>

-------------------------------------------------------------------------------------------------------------------------

switch:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="Addition"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <property expression="//Value1/text()"
                   name="Value1"
                   scope="default"
                   type="INTEGER"/>
         <property expression="//Value2/text()"
                   name="Value2"
                   scope="default"
                   type="INTEGER"/>
         <property expression="//operation"
                   name="operation"
                   scope="default"
                   type="STRING"/>
         <log description="before payload" level="full" separator=","/>
         <switch source="get-property('operation')">
            <case regex="Addition">
               <script language="js">var value1 = parseInt(mc.getProperty("Value1"));
            var value2 = parseInt(mc.getProperty("Value2"));
            var result = value1 + value2;
            mc.setProperty("Result", result);</script>
               <log>
                  <property expression="get-property('Result')" name="RESULT"/>
               </log>
               <payloadFactory media-type="xml">
                  <format>
                     <RESULT>$1</RESULT>
                  </format>
                  <args>
                     <arg evaluator="xml" expression="get-property('Result')"/>
                  </args>
               </payloadFactory>
               <log/>
            </case>
            <case regex="Sub">
               <script language="js">var value1 = parseInt(mc.getProperty("Value1"));
            var value2 = parseInt(mc.getProperty("Value2"));
            var result = value1 - value2;
            mc.setProperty("Result", result);</script>
               <log>
                  <property expression="get-property('Result')" name="RESULT"/>
               </log>
               <payloadFactory media-type="xml">
                  <format>
                     <RESULT>$1</RESULT>
                  </format>
                  <args>
                     <arg evaluator="xml" expression="get-property('Result')"/>
                  </args>
               </payloadFactory>
               <log/>
            </case>
            <case regex="Mul">
               <script language="js">var value1 = parseInt(mc.getProperty("Value1"));
            var value2 = parseInt(mc.getProperty("Value2"));
            var result = value1 * value2;
            mc.setProperty("Result", result);</script>
               <log>
                  <property expression="get-property('Result')" name="RESULT"/>
               </log>
               <payloadFactory media-type="xml">
                  <format>
                     <RESULT>$1</RESULT>
                  </format>
                  <args>
                     <arg evaluator="xml" expression="get-property('Result')"/>
                  </args>
               </payloadFactory>
               <log/>
            </case>
            <case regex="Div">
               <script language="js">var value1 = parseInt(mc.getProperty("Value1"));
            var value2 = parseInt(mc.getProperty("Value2"));
            var result = value1 / value2;
            mc.setProperty("Result", result);</script>
               <log>
                  <property expression="get-property('Result')" name="RESULT"/>
               </log>
               <payloadFactory media-type="xml">
                  <format>
                     <RESULT>$1</RESULT>
                  </format>
                  <args>
                     <arg evaluator="xml" expression="get-property('Result')"/>
                  </args>
               </payloadFactory>
               <log/>
            </case>
            <default>
               <log description="NO_OPERATION_FOUND"/>
               <respond/>
            </default>
         </switch>
         <respond/>
      </inSequence>
      <outSequence/>
      <faultSequence/>
   </target>
   <description/>
</proxy>
                                                             

No comments:

Post a Comment