Dushan Sachinda Abeyruwan created SYNAPSE-890:
-------------------------------------------------

             Summary: Pattern attribute of the property mediator does not seem 
to work
                 Key: SYNAPSE-890
                 URL: https://issues.apache.org/jira/browse/SYNAPSE-890
             Project: Synapse
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.1
         Environment: Ubuntu 12.04
            Reporter: Dushan Sachinda Abeyruwan
            Priority: Critical
             Fix For: FUTURE


Steps to reproduce: 
================ 
1. Create a sequence like the following 
<sequence xmlns="http://ws.apache.org/ns/synapse"; name="main"> 
   <in> 
      <switch xmlns:ns="http://org.apache.synapse/xsd"; 
xmlns:ns3="http://org.apache.synapse/xsd"; xmlns:m0="http://services.samples"; 
source="//m0:getQuote/m0:request/m0:symbol"> 
         <case regex="IBM"> 
            <property name="symbol" value="Great stock - IBM" /> 
         </case> 
         <case regex="MSFT"> 
            <property name="symbol" value="Are you sure? - MSFT" /> 
         </case> 
         <default> 
            <property name="symbol" expression="fn11:concat('Normal Stock - ', 
//m0:getQuote/m0:request/m0:symbol)" scope="default" /> 
         </default> 
      </switch> 
      <property xmlns:ns="http://org.apache.synapse/xsd"; 
xmlns:ns3="http://org.apache.synapse/xsd"; xmlns:m0="http://services.samples"; 
name="MyProp" expression="//m0:getQuote/m0:request/m0:symbol" 
pattern="[a-zA-Z_0-9]" scope="default" /> 
      <log level="custom"> 
         <property xmlns:ns="http://org.apache.synapse/xsd"; 
xmlns:ns3="http://org.apache.synapse/xsd"; name="symbol" 
expression="get-property('symbol')" /> 
         <property xmlns:ns="http://org.apache.synapse/xsd"; 
xmlns:ns3="http://org.apache.synapse/xsd"; name="epr" 
expression="get-property('To')" /> 
         <property xmlns:ns="http://org.apache.synapse/xsd"; 
xmlns:ns3="http://org.apache.synapse/xsd"; name="customProperty" 
expression="get-property('MyProp')" /> 
      </log> 
      <send /> 
   </in> 
   <out> 
      <send /> 
   </out> 
</sequence> 

2. Note the following property mediator in the above sequence. I used pattern 
attribute in there to evaluate the result of xpath expression against a regex 
<property xmlns:ns="http://org.apache.synapse/xsd"; 
xmlns:ns3="http://org.apache.synapse/xsd"; xmlns:m0="http://services.samples"; 
name="MyProp" expression="//m0:getQuote/m0:request/m0:symbol" 
pattern="[a-zA-Z_0-9]" scope="default" /> 
According to the above regex, I should only set the property value if the Xpath 
expression result is alpha-numeric 

3. Send a request with the following payload (note the non-alpha numeric 
character) 
  <m0:getQuote xmlns:m0="http://services.samples";> 
            <m0:request> 
               <m0:symbol>%</m0:symbol> 
            </m0:request> 
         </m0:getQuote> 

4. Check the log mediator output (value of the customProperty) 
INFO - LogMediator symbol = Normal Stock - %, epr = 
http://localhost:9000/services/SimpleStockQuoteService, customProperty = % 



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to