-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/45389/
-----------------------------------------------------------

(Updated April 3, 2016, 11:34 p.m.)


Review request for qpid, Gordon Sim, Justin Ross, and Robbie Gemmell.


Changes
-------

I've re-factored the patch based on feedback.  In summary:

1) I've broken out the setting of the address from the creation of the reactor 
connection.  This was necessary as the Connector must change the connection's 
address in order to handle connection fail-over.

2) These APIs strictly belong to the Reactor class.  This should prevent using 
these new methods as part of the Connection API proper.

3) I haven't added the sanitizing of the outgoing hostname.  I'd like to keep 
that in its own patch in case we need to back it out/change it based on 
feedback.


Bugs: PROTON-1133
    https://issues.apache.org/jira/browse/PROTON-1133


Repository: qpid-proton-git


Description
-------

This involves a change to the Reactor API.

This patch implements a new API for creating outgoing connections via the 
Reactor class: pn_reactor_connection_to_url().  It is meant to replace the 
existing practice of creating a connection via pn_reactor_connection() then 
setting the transport address in the connection's hostname field.

Not 100% convinced this is appropriate.  It introduces a URL parameter to the 
Proton Connection object, where it may make better sense to associate the URL 
with the Transport instead (pn_reactor_transport_to_url()???).

The URL parameter is used by the Proton iohandler to create the socket 
connection.  If an application does not use the Proton iohandler (by overriding 
the reactor's global handler), then it is the responsiblity of whatever handler 
is being provided to use the URL to set up the socket connection.  This was 
also the case for the old method that used the connection's hostname setting, 
so this is not a behavioral change.


Diffs (updated)
-----

  
examples/java/reactor/src/main/java/org/apache/qpid/proton/example/reactor/Send.java
 22da720 
  examples/python/reactor/send.py c718780 
  examples/python/reactor/tornado-send.py 54b8618 
  proton-c/bindings/python/proton/reactor.py cda6248 
  proton-c/include/proton/reactor.h e91b169 
  proton-c/src/reactor/connection.c 4a57bfd 
  proton-c/src/tests/reactor.c 1e706e2 
  proton-j/src/main/java/org/apache/qpid/proton/reactor/Reactor.java 9d67d49 
  proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java 
40eddac 
  proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/ReactorImpl.java 
0eb126a 
  proton-j/src/test/java/org/apache/qpid/proton/reactor/ReactorTest.java 
10c591a 
  tests/java/org/apache/qpid/proton/ProtonJInterop.java 31306ef 
  tests/java/shim/creactor.py 95fd020 

Diff: https://reviews.apache.org/r/45389/diff/


Testing
-------

Updated unit tests and re-checked modified examples.


Thanks,

Kenneth Giusti

Reply via email to