Hello,

Regarding the 0.10 URL scheme I think that we have decided to base it
on:  https://wiki.108.redhat.com/wiki/index.php/AMQP:95:Proposal

So, the URL grammar is (if we replace amqp by qpid): 
qpid_url          = "qpid:" prot_addr_list ["/" future-parameters]
prot_addr_list    = [prot_addr ","]* prot_addr
prot_addr         = tcp_prot_addr | tls_prot_addr | future_prot_addr
tcp_prot_addr     = tcp_id tcp_addr
tcp_id            = "tcp:" | ""
tcp_addr          = [host [":" port] ]
host              = <as per http://www.apps.ietf.org/>
port              = number
tls_prot_addr     = tls_id tls_addr
tcp_id            = "tls:" | ""
tls_addr          = [host [":" port] ]
future_prot_addr  = future_prot_id future_prot_addr
future_prot_id    = <placeholder, must end in ":". Example "sctp:">
future_prot_addr  = <placeholder, protocl-specific address>
future_parameters = <placeholder, not used in failover addresses>

I think that we need to add some user options for specifying the key store 
location, the virtual host etc.. 
So following  http://www.apps.ietf.org/ I would extend the grammar with some 
user options like this: 

qpid_url          = "qpid:" [client_opts]* prot_addr_list ["/" 
future-parameters]
client_opts       = [client_opt ";"] client_opt "@"
client_opt        = prop "=" val
prop              = <as per http://www.apps.ietf.org/> i.e. string without 
reserved characters  
val               = <as per http://www.apps.ietf.org/> i.e. string without 
reserved characters  
prot_addr_list    = [prot_addr ","]* prot_addr
prot_addr         = tcp_prot_addr | tls_prot_addr | future_prot_addr
tcp_prot_addr     = tcp_id tcp_addr
tcp_id            = "tcp:" | ""
tcp_addr          = [host [":" port] ]
host              = <as per http://www.apps.ietf.org/>
port              = number
tls_prot_addr     = tls_id tls_addr
tcp_id            = "tls:" | ""
tls_addr          = [host [":" port] ]
future_prot_addr  = future_prot_id future_prot_addr
future_prot_id    = <placeholder, must end in ":". Example "sctp:">
future_prot_addr  = <placeholder, protocl-specific address>
future_parameters = <placeholder, not used in failover addresses>

For example we could use a very simple URL like: 
qpid:tcp:host1,tcp:host2
or a more complicated one like:
qpid:clientID=foo;username=bar;password=pass;[EMAIL 
PROTECTED]:host1:2345,keystorloc=/usr/local;[EMAIL PROTECTED]:host2:5555

What do you think about this scheme? 

Arnaud  

Reply via email to