This sounds reasonable to me
On 21 Jun 2012, at 18:36, Hadrian Zbarcea wrote:

> Sounds perfect. That's exactly what I had in mind. You are proposing the 
> extra setting, which I am perfectly fine with.
> 
> Thanks a bunch,
> Hadrian
> 
> On 06/21/2012 01:00 PM, Hiram Chirino wrote:
>> How about we add setting to the camel context which controls if the
>> 'UnsafeUriCharactersEncoder.encode' method is used or not?
>> 
>> That way folks that feel that their camel configurations MUST always use
>> valid URI syntax can enable it.  And the rest can continue to use the
>> current behavior.
>> 
>> Users are then in control.
>> 
>> On Thu, Jun 21, 2012 at 8:53 AM, Hadrian Zbarcea<hzbar...@gmail.com>  wrote:
>> 
>>> In theory yes, that's how it kinda worked for many years. In practice it
>>> fails for all sorts of edge cases. The code that actually could be very
>>> simple and clear is riddled with all sorts hacks. Look at the code.
>>> 
>>> Hadrian
>>> 
>>> 
>>> On 06/21/2012 07:46 AM, Henryk Konsek wrote:
>>> 
>>>> It seems that you want to force incompatibly between Camel 2.x and 3.0
>>>>> which is a NOT "a no brainer" for me.
>>>>> 
>>>> 
>>>> Good point. We will end up with ugly and backward incompatible URIs.
>>>> 
>>>> What about introducing "implicit URI encoding" term? Can't we just
>>>> assume that semi-URIs strings passed to the Camel DSLs are in fact
>>>> decoded URIs?
>>>> 
>>>> In such case:
>>>> 
>>>> import org.springframework.web.util.**UriUtils;
>>>> // Decoded URI passed to the component.
>>>> String decodedUri =
>>>> "file://inbox?expression=**backup/${date:now:yyyyMMdd}/${**file:name}";
>>>> // If we encode this URI we will end up with valid URI:
>>>> // file://inbox?expression=**backup/$%7Bdate:now:yyyyMMdd%**
>>>> 7D/$%7Bfile:name%7D
>>>> String encodedUri = UriUtils.encodeUri(decodedUri, "UTF-8");
>>>> 
>>>> Maybe we just could validate that URI passed to the component is valid
>>>> AFTER encoding it?
>>>> 
>>>> String decodedUriFromDsl = ...
>>>> String encodedUri = UriUtils.encodeUri(**decodedUriFromDsl, "UTF-8");
>>>> assertValidUri(encodedUri);
>>>> 
>>>> This will guarantee that Camel uses valid URIs but won't break
>>>> contract of many existing components.
>>>> 
>>>> 
>> 
>> 

Reply via email to