Hi All, Currently quite a bit of options can be configured via the Java Connection URL, which tends to make it ungainly and quite error prone. If we are to think in terms of a "Connection String" instead of a "Connection URL" , then I believe we could come up with a more simpler solution.
Therefore I'd like to make the following proposals. 1) Introduce a simple scheme for a "Connection String" ( inspired by the new addressing format) 2) Also allow the ability to specify the config using a property file. * I hate having to specify user/pass when the auth mech (ex kerberos) is not even using it. Therefore it should be optional ! 1. 0 Connection String --------------------------- 1.1 Examples "tcp://localhost" "tcp://localhost:8672; {ssl: true, sasl-mech : EXTERNAL, ssl-trust-store : ~/cert.jks ..} " "tcp://host1.example.com; {user: bob, pass: nuts} , tcp://host2.example.com; {user: ding, pass: dong} ..." 1.2 Syntax <broker> [ ; <options> ] [ , <broker> [ ; <options> ]] * Where broker is:: <protocol>:// [ host [ ":" port ] ] (protocol = {tcp|vm|rdma} Where options is:: { <key> : <value>, ... } And values may be: - numbers - single, double, or non quoted strings - maps (dictionaries) - lists 2.0 Config file ----------------- Example JNDI prop file connection.my-connection = "tcp://localhost; {id : 1}" connection.my-con = "tcp://host1.example.com; {id: 2} , tcp://host2.example.com; {id: 2}, tcp://host3.example.com; {id: 3}" =========Connection.properties========= con id : 1 { ssl: true sasl-mech : EXTERNAL ssl-trust-store : ~/cert.jks ssl-key-store : ~/keys.jks ssl-verify-hostname : true } con id : 1 { sasl-mech : GSSAPI sasl-hostname : host1.example.com sasl-protocol : qpidd sasl-encryption : true tcp-nodelay : true } con id : 3 { user : ding pass : dong tcp-nodelay : true } ================================== Connection.properties can be loaded from the classpath or specified as an option in the connection string. (You could also trivially have a connection property file per connection). Comments and suggestions are most welcomed ! Regards, Rajith Attapattu Red Hat http://rajith.2rlabs.com/ --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:dev-subscr...@qpid.apache.org