Re: Can simple() be made to compare strings in a case insensitive way?
This thread was more than a year old, but just want to share the way I handled this issue. .choice() .when().simple("${body.filter} == null || ${body.filter.filterBy?.*equalsIgnoreCase*('department')}”) Since we already having a option, why we need new operator? -- View this message in context: http://camel.465427.n5.nabble.com/Can-simple-be-made-to-compare-strings-in-a-case-insensitive-way-tp5767732p5786084.html Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Can simple() be made to compare strings in a case insensitive way?
Hi I logged a ticket https://issues.apache.org/jira/browse/CAMEL-8832 We can still consider other alternatives for the operation symbols. On Tue, Jun 2, 2015 at 11:23 PM, Pontus Ullgren ullg...@gmail.com wrote: I would rather see a new operator than changing the behaviour of == On Tue, 2 Jun 2015 at 09:44 Claus Ibsen claus.ib...@gmail.com wrote: Hi Yeah I am not sure if end users would be surprised if we change == to be case insensitive for strings? Or we could consider having =~ as an alternative comparison operator (although =~ may not be though as insensitive operator?) If we have a new operator or change the default behavior it would have the performance benefit to avoid the reflection method invocation that a .toLowerCase() would require. Any thoughts in the community ? On Mon, Jun 1, 2015 at 7:52 PM, s.marjanovic slavisa.marjanovic...@gmail.com wrote: Hello Andrew, I managed to find the same information as you posted in the example, although without the ? part. Great tip about that, thanks. Regards, Slavisa -- View this message in context: http://camel.465427.n5.nabble.com/Can-simple-be-made-to-compare-strings-in-a-case-insensitive-way-tp5767732p5767756.html Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen - Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8 http://hawt.io/fabric8: http://fabric8.io/ -- Claus Ibsen - Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/
Re: Can simple() be made to compare strings in a case insensitive way?
Hi Yeah I am not sure if end users would be surprised if we change == to be case insensitive for strings? Or we could consider having =~ as an alternative comparison operator (although =~ may not be though as insensitive operator?) If we have a new operator or change the default behavior it would have the performance benefit to avoid the reflection method invocation that a .toLowerCase() would require. Any thoughts in the community ? On Mon, Jun 1, 2015 at 7:52 PM, s.marjanovic slavisa.marjanovic...@gmail.com wrote: Hello Andrew, I managed to find the same information as you posted in the example, although without the ? part. Great tip about that, thanks. Regards, Slavisa -- View this message in context: http://camel.465427.n5.nabble.com/Can-simple-be-made-to-compare-strings-in-a-case-insensitive-way-tp5767732p5767756.html Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen - Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/
Re: Can simple() be made to compare strings in a case insensitive way?
I would rather see a new operator than changing the behaviour of == On Tue, 2 Jun 2015 at 09:44 Claus Ibsen claus.ib...@gmail.com wrote: Hi Yeah I am not sure if end users would be surprised if we change == to be case insensitive for strings? Or we could consider having =~ as an alternative comparison operator (although =~ may not be though as insensitive operator?) If we have a new operator or change the default behavior it would have the performance benefit to avoid the reflection method invocation that a .toLowerCase() would require. Any thoughts in the community ? On Mon, Jun 1, 2015 at 7:52 PM, s.marjanovic slavisa.marjanovic...@gmail.com wrote: Hello Andrew, I managed to find the same information as you posted in the example, although without the ? part. Great tip about that, thanks. Regards, Slavisa -- View this message in context: http://camel.465427.n5.nabble.com/Can-simple-be-made-to-compare-strings-in-a-case-insensitive-way-tp5767732p5767756.html Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen - Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8 http://hawt.io/fabric8: http://fabric8.io/
Can simple() be made to compare strings in a case insensitive way?
Hello, Is there a way to make simple() perform string comparison in a case insensitive way ? The use case is described below: .setProperty(Service, ns.xpath(/MyMessage/Service, String.class)) .choice() .when().simple(${property.Service} == 'myService') If the value of /MyMessage/Service is myService, simple() will evaluate to true, but if /MyMessage/Service is myservice it will evaluate to false. I can think of a number of hacks for this but I'd like to hear what is the camel recommended way to deal with a situation like this. Thanks, Slavisa -- View this message in context: http://camel.465427.n5.nabble.com/Can-simple-be-made-to-compare-strings-in-a-case-insensitive-way-tp5767732.html Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Can simple() be made to compare strings in a case insensitive way?
Slavisa, Since the value you are comparing against is a String, you can call the toLowerCase method to convert test to lowercase and compare against that. In your example, it would be: .when().simple(“${property.Service?.toLowerCase()} == ‘myservice’) The ? is added to ensure the value is not null before performing actions on the object. - Andy -- Andrew Block On June 1, 2015 at 5:34:53 AM, s.marjanovic (slavisa.marjanovic...@gmail.com) wrote: Hello, Is there a way to make simple() perform string comparison in a case insensitive way ? The use case is described below: .setProperty(Service, ns.xpath(/MyMessage/Service, String.class)) .choice() .when().simple(${property.Service} == 'myService') If the value of /MyMessage/Service is myService, simple() will evaluate to true, but if /MyMessage/Service is myservice it will evaluate to false. I can think of a number of hacks for this but I'd like to hear what is the camel recommended way to deal with a situation like this. Thanks, Slavisa -- View this message in context: http://camel.465427.n5.nabble.com/Can-simple-be-made-to-compare-strings-in-a-case-insensitive-way-tp5767732.html Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Can simple() be made to compare strings in a case insensitive way?
Hello Andrew, I managed to find the same information as you posted in the example, although without the ? part. Great tip about that, thanks. Regards, Slavisa -- View this message in context: http://camel.465427.n5.nabble.com/Can-simple-be-made-to-compare-strings-in-a-case-insensitive-way-tp5767732p5767756.html Sent from the Camel - Users mailing list archive at Nabble.com.