Fair enough on URL encoding but as mentioned it is important to be able to 
escape, I agree with backslash option.

I would still like some form of prefix to the string to denote it is for kafka.

 E.g. kafka:: (if semicolon separators)

Sent from my iPad

> On 24 Oct 2017, at 17:27, Colin McCabe <cmcc...@apache.org> wrote:
> 
> Hi Clebert,
> 
> As some other people mentioned, a comma is probably not a great choice
> for the entry separator.  We have a lot of configuration values that
> already include commas.  How about using a semicolon instead?
> 
> You also need an escaping system in case someone needs a semicolon (or
> whatever) that is part of a configuration key or configuration value. 
> How about a simple backslash?  And then if you want a literal backslash,
> you put in two backslashes.
> 
>> On Thu, Oct 19, 2017, at 18:10, Michael André Pearce wrote:
>> Just another point to why I’d propose the below change to the string
>> format I propose , is an ability to encode the strings easily.
>> 
>> We should note that it’s quite typical for serializers to user a
>> schematic registry where one of their properties they will need to set
>> would be in some form like:
>> 
>> schema.registry.url=http://schema1:80,schema2:80/api
>> 
>> So being able to safely encode this is important. 
>> 
>> Sent from my iPhone
>> 
>>> On 20 Oct 2017, at 01:47, Michael André Pearce 
>>> <michael.andre.pea...@me.com> wrote:
>>> 
>>> Hi Clebert
>>> 
>>> Great kip!
>>> 
>>> Instead of ‘;’ to separate the host sections with the params section could 
>>> it be a ‘?’
>>> 
>>> And like wise ‘,’ param separator could this be ‘&’ (keep the ‘,’ for host 
>>> separator just makes easier to distinguish)
>>> 
>>> Also this was it makes it easier to encode params etc as can just re use 
>>> url encoders.
> 
> Please, no.  URL encoders will mangle a lot of things horribly (like
> less than signs, greater than signs, etc.)  We should not make this a
> URL or pseudo-URL (see the discussion above).  We should make it clear
> that this is not a URL.
> 
>> Invalid conversions would throw InvalidArgumentException (with a description 
>> of the invalid conversion)
>> Invalid parameters would throw InvalidArgumentException (with the name of 
>> the invalid parameter).
> 
> This will cause a lot of compatibility problems, right?  If I switch
> back and forth between two Kafka versions, they will support slightly
> different sets of configuration parameters.  It seems saner to simply
> ignore configuration parameters that we don't understand, like we do
> now.
> 
> best,
> Colin
> 
> 
>>> 
>>> Also as like many systems it typical to note what the connection string is 
>>> for with a prefix eg ‘kafka://‘
>>> 
>>> Just makes it obvious when an app has a list of connection strings in their 
>>> runtime properties which is for which technology.
>>> 
>>> Eg example connection string would be:
>>> 
>>> kafka://host1:port1,host2:port2?param1=value1&parm2=value2
>>> 
>>> Cheers
>>> Mike
>>> 
>>> Sent from my iPhone
>>> 
>>>> On 19 Oct 2017, at 19:29, Clebert Suconic <clebert.suco...@gmail.com> 
>>>> wrote:
>>>> 
>>>> Do I have to do anything here?
>>>> 
>>>> I wonder how long I need to wait before proposing the vote.
>>>> 
>>>> On Tue, Oct 17, 2017 at 1:17 PM, Clebert Suconic
>>>> <clebert.suco...@gmail.com> wrote:
>>>>> I had these updates in already... you just changed the names at the
>>>>> string.. but it was pretty much the same thing I think... I had taken
>>>>> you suggestions though.
>>>>> 
>>>>> 
>>>>> The Exceptions.. these would be implementation details... all I wanted
>>>>> to make sure is that users would get the name of the invalid parameter
>>>>> as part of a string on a message.
>>>>> 
>>>>> On Tue, Oct 17, 2017 at 3:15 AM, Satish Duggana
>>>>> <satish.dugg...@gmail.com> wrote:
>>>>>> You may need to update KIP with the details discussed in this thread in
>>>>>> proposed changes section.
>>>>>> 
>>>>>>>> My proposed format for the connection string would be:
>>>>>>>> IP1:host1,IP2:host2,...IPN:hostn;parameterName=value1;parameterName2=value2;...
>>>>>> parameterNameN=valueN
>>>>>> Format should be
>>>>>> host1:port1,host2:port2,…host:portn;param-name1=param-val1,..
>>>>>> 
>>>>>>>> Invalid conversions would throw InvalidArgumentException (with a
>>>>>> description of the invalid conversion)
>>>>>>>> Invalid parameters would throw InvalidArgumentException (with the name 
>>>>>>>> of
>>>>>> the invalid parameter).
>>>>>> 
>>>>>> Should throw IllegalArgumentException with respective message.
>>>>>> 
>>>>>> Thanks,
>>>>>> Satish.
>>>>>> 
>>>>>> On Tue, Oct 17, 2017 at 4:46 AM, Clebert Suconic 
>>>>>> <clebert.suco...@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> That works.
>>>>>>> 
>>>>>>>> On Mon, Oct 16, 2017 at 6:59 PM Ted Yu <yuzhih...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>> Can't you use IllegalArgumentException ?
>>>>>>>> 
>>>>>>>> Some example in current code base:
>>>>>>>> 
>>>>>>>> clients/src/main/java/org/apache/kafka/clients/Metadata.java:
>>>>>>>> throw new IllegalArgumentException("Max time to wait for metadata
>>>>>>> updates
>>>>>>>> should not be < 0 milliseconds");
>>>>>>>> 
>>>>>>>> On Mon, Oct 16, 2017 at 3:06 PM, Clebert Suconic <
>>>>>>>> clebert.suco...@gmail.com>
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> I updated the wiki with the list on the proposed arguments.
>>>>>>>>> 
>>>>>>>>> I also changed it to include a new Exception class that would be named
>>>>>>>>> InvalidParameterException (since I couldn't find an existing Exception
>>>>>>>>> class that I could reuse into this). (I could review the name or the
>>>>>>>>> exception of course.. just my current proposal)
>>>>>>>>> 
>>>>>>>>>> On Mon, Oct 16, 2017 at 5:55 PM, Jakub Scholz <ja...@scholz.cz> 
>>>>>>>>>> wrote:
>>>>>>>>>> Hi Clebert,
>>>>>>>>>> 
>>>>>>>>>> I think it would be good if this could cover not only KafkaConsumer
>>>>>>> and
>>>>>>>>>> KafkaProducer but also the AdminClient. So that all three can be
>>>>>>>>> configured
>>>>>>>>>> the same way.
>>>>>>>>>> 
>>>>>>>>>> The bootstrap servers are a list - you can provide multiple bootstrap
>>>>>>>>>> servers. Maybe you add an example of how that will be configured. I
>>>>>>>>> assume
>>>>>>>>>> it will be
>>>>>>>>>> "host:port,host2:port2;parameterName=value1;parameterName2=value2"
>>>>>>> but
>>>>>>>>> it
>>>>>>>>>> would be great to have it documented.
>>>>>>>>>> 
>>>>>>>>>> Thanks & Regards
>>>>>>>>>> Jakub
>>>>>>>>>> 
>>>>>>>>>> On Mon, Oct 16, 2017 at 11:30 PM, Clebert Suconic <
>>>>>>>>> clebert.suco...@gmail.com
>>>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>> I would like to start a discussion about KIP-209
>>>>>>>>>>> (https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>>>>>>>>>>> 209+-+Connection+String+Support)
>>>>>>>>>>> 
>>>>>>>>>>> This is an extension of my previous thread:
>>>>>>>>>>> http://mail-archives.apache.org/mod_mbox/kafka-dev/201710.
>>>>>>>>>>> mbox/%3cCAKF+bsoFbN13D-u20tUsP6G+aHX4BUNk=S8M4KyJxAt_
>>>>>>>>>>> oyv...@mail.gmail.com%3e
>>>>>>>>>>> 
>>>>>>>>>>> this could make the bootstrap of a consumer or producer similar to
>>>>>>>>>>> what users are already used when connecting into other systems,
>>>>>>> being
>>>>>>>>>>> a simple addition to Producer and Consumer, without breaking any
>>>>>>>>>>> previous client usage.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> Clebert Suconic
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> Clebert Suconic
>>>>>>>>> 
>>>>>>>> 
>>>>>>> --
>>>>>>> Clebert Suconic
>>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Clebert Suconic
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Clebert Suconic

Reply via email to