[
https://issues.apache.org/jira/browse/PROTON-1004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14935271#comment-14935271
]
Gordon Sim commented on PROTON-1004:
------------------------------------
Proposal:
Perhaps the behaviour can be made less confusing by adding a couple of
explicitly named arguments to the create_sender/create_receiver calls,
specifically: url - through which a url is passed, and connection - through
which a connection to use is passed.
The following would then be valid:
{noformat}
conn = event.container.connect(amqp://myhost:8888/xyz, heartbeat=8)
event.container.create_sender(url=amqp://myhost:8888/xyz, connection=conn)
{noformat}
and would establish a link to the node xyz, using the connection first
established. The same could be done by:
{noformat}
conn = event.container.connect(amqp://myhost:8888/xyz, heartbeat=8)
event.container.create_sender(target=xyz, connection=conn)
{noformat}
As before you could skip the explicit connect step if desired:
{noformat}
event.container.create_sender(url=amqp://myhost:8888/xyz)
{noformat}
In which case a new connection would be established based on the details
specified in the url.
This would not change any current use cases, but introducing the explicit names
would I think make things clearer and could be emphasised in the docs. The
first positional (un-named) arg would be treated as it is now, either as a
connection or as a url, depending on type.
Thoughts?
> Inconsistency in container.create_sender
> ----------------------------------------
>
> Key: PROTON-1004
> URL: https://issues.apache.org/jira/browse/PROTON-1004
> Project: Qpid Proton
> Issue Type: Bug
> Components: python-binding
> Affects Versions: 0.10
> Reporter: Ted Ross
> Assignee: Gordon Sim
>
> For URL = "localhost:5672/examples"
> Using the API in two different ways:
> {noformat}
> def on_start(self, event):
> event.container.create_sender(URL)
> {noformat}
> Yields an attach with the following target:
> [address="examples", durable=0, timeout=0, dynamic=false]
> But this variation yields something different:
> {noformat}
> def on_start(self, event):
> conn = event.container.connect(URL, heartbeat=8)
> event.container.create_sender(conn, URL)
> {noformat}
> yields:
> [address="localhost:5672/examples", durable=0, timeout=0, dynamic=false]
> The attach targets should be consistent across these examples. I believe the
> first example is the correct one.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)