See comments in line. On Wed, Jan 12, 2011 at 2:17 PM, indika kumara <indika.k...@gmail.com>wrote:
> +1 , Although I have not tested, I believed that the regular expression > itself can express what charith needed (though you may need code changes > because of Java API). > Can you show a solid example of what you say? AFAIK its a limitation is Regex. http://www.wellho.net/mouth/943_Matching-within-multiline-strings-and-ignoring-case-in-regular-expressions.html >From my point of view, trying to expose the JAVA API in the synapse API is > not good. The synapse API is high level than Java and targets for high level > users. Yes . i know that having too many attributes is confusing But what i do not see is whats wrong with having the attribute 'flag' in this context . Its readable and does make sence for people who use it. (*DOTALL mode , MUTILINE , etc mode are quite standered modes in some languages *) <filter source="." regex=".*connection.*" flag="DOTALL , CASE_INSENSITIVE" > > > Problem -> Solution -> programing model -> synapse API -> implementation's > language API .... on in other direction. > > Thanks, > > Indika > > > > On Wed, Jan 12, 2011 at 2:37 PM, Hiranya Jayathilaka <hiranya...@gmail.com > > wrote: > >> Yeah I also don't like adding a new XML attribute for this. Also the >> syntax ('|' as a separator) is not very XML friendly. >> >> Agreed here we can use comma (',') to separate But i don't see any usability issue with this new attribute <filter source="." regex=".*connection.*" flag="DOTALL , CASE_INSENSITIVE" I also don't think case sensitivity needs to be a flag. Such constraints can >> be specified in the regex itself AFAIK. >> >> AFAIK it can't can you send a pointer for this ? Example : say i want to match the regex .*Hello.* in case insensitive way. So in that case how filter mediator specify it ? In regular expression ? ( thease flags are wel kown ones when it comes to regex compilers :)) Ok there we can use a regex with all case combination of world "Hello" sperated with a pipe but thats a pain :) thanks, Charith > Thanks, >> Hiranya >> >> >> On Wed, Jan 12, 2011 at 1:46 PM, indika kumara <indika.k...@gmail.com>wrote: >> >>> Hi Charith, >>> >>> Is it a limitation in Java or regular expression? We usually try to >>> reduce the number of attributes( from the language's perspective). >>> >>> Thanks, >>> >>> Indika >>> >>> >>> On Wed, Jan 12, 2011 at 1:33 PM, Charith Wickramarachchi < >>> charith.dhanus...@gmail.com> wrote: >>> >>>> >>>> >>>> On Wed, Jan 12, 2011 at 12:47 PM, indika kumara >>>> <indika.k...@gmail.com>wrote: >>>> >>>>> +1 for the idea. BTW, Is there any way to do this without introducing a >>>>> new attribute? i.e only using the regex. >>>>> >>>>> >>>> Hi Indika, >>>> >>>> We need to have the flags at the time we compile the regex >>>> >>>> ex : >>>> Pattern pattern = Pattern.compile(patternStr, Pattern.MULTILINE | >>>> Pattern.CASE_INSENSITIVE); >>>> >>>> So we need to configure the flags some how. Alternative is having them >>>> in the properties file but IMO that will reduce the flexibility. >>>> I dont think having a new attribute is a problem since this change is >>>> backward compatible (its a optional attribute) >>>> >>>> thanks, >>>> Charith >>>> >>>> >>>> >>>> >>>> Thanks, >>>>> >>>>> Indika >>>>> >>>>> >>>>> On Wed, Jan 12, 2011 at 12:26 PM, Charith Wickramarachchi < >>>>> charith.dhanus...@gmail.com> wrote: >>>>> >>>>>> Hi , >>>>>> >>>>>> If we look at the current Synapse filter mediator it does not support >>>>>> regex based filtering for multi-line Strings. >>>>>> IMO having that feature is useful since there are scenarios where we >>>>>> need to do reg-ex filtering in multi-line Strings in message. >>>>>> >>>>>> So as a solution to that i thought of introducing flag support to the >>>>>> Filter mediator with the regex matching. So users can optionally >>>>>> configure >>>>>> flags like >>>>>> MULTILINE , DOTALL , CASE_INSENSITIVE with the filter mediator. >>>>>> >>>>>> And also they will be able to use the combination of flags >>>>>> >>>>>> ex : >>>>>> DOTALL | CASE_INSENSITIVE >>>>>> >>>>>> after introducing this example filter mediator will look like this >>>>>> >>>>>> <filter source="." regex=".*connection.*" flag="DOTALL | >>>>>> CASE_INSENSITIVE" xmlns:m="http://www.webserviceX.NET/"> >>>>>> >>>>>> you can find more information in [1] >>>>>> >>>>>> I'm going of introduce following flags which i think is useful. >>>>>> >>>>>> - MULTILINE >>>>>> - DOTALL >>>>>> - UNIX_LINES >>>>>> - CASE_INSENSITIVE >>>>>> >>>>>> If devs are ok i'll go head and add this feature to trunk. >>>>>> >>>>>> [1] >>>>>> http://www.javamex.com/tutorials/regular_expressions/multiline.shtml >>>>>> >>>>>> thanks, >>>>>> Charith >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Charith Dhanushka Wickramarachchi >>>>>> http://charithwiki.blogspot.com/ >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> Charith Dhanushka Wickramarachchi >>>> http://charithwiki.blogspot.com/ >>>> >>>> >>> >> >> >> -- >> Hiranya Jayathilaka >> Senior Software Engineer; >> WSO2 Inc.; http://wso2.org >> E-mail: hira...@wso2.com; Mobile: +94 77 633 3491 >> Blog: http://techfeast-hiranya.blogspot.com >> > > -- Charith Dhanushka Wickramarachchi http://charithwiki.blogspot.com/