GitHub user prestona opened a pull request: https://github.com/apache/qpid-proton/pull/38
Reactor You can merge this pull request into a Git repository by running: $ git pull https://github.com/prestona/qpid-proton reactor Alternatively you can review and apply these changes as the patch at: https://github.com/apache/qpid-proton/pull/38.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #38 ---- commit e0187017456a4df58df2f1d04b1941d99eacbe10 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-04-17T13:33:11Z PROTON-881: Initial commit of proton-j reactor implementation commit 739005e7ca49b0e85873406ea4a6b9392252a1fe Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-04-17T14:34:53Z PROTON-881: Write an Echo example and get it working commit 88df5e7490183e01dfc8c63d2cfe3123286e604b Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-04-17T16:55:27Z PROTON-881: Add a Cat example. commit cd09de66362580f0c5ceab464d71c7ad4300b517 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-04-21T15:23:12Z PROTON-881: Add a Send example, and supporting changes in the reactor. commit 0ac98e76be51fbd890613518541364301b191cc2 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-04-22T20:35:36Z PROTON-881: Add Recv sample and required code changes / additions to the reactor commit b6e18b5a35da5865fe0ae5fd9e161a04170e9750 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-04-29T22:57:47Z PROTON-881: Rough first pass at a proton-j -> proton-c interop. test. This adds a Python test case which starts both a Python (proton-c) reactor and also spawns a JVM running a (proton-j) reactor. The expected outcome is that the proton-j reactor is able to send a message to the proton-c reactor. Right now, there are a lot of rough edges on both the Pyton and Java sides of this test case. commit 2e6f5cdd1754b266e81afbc49ae4333a75287d57 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-04-30T12:58:28Z PROTON-881: Tidy up proton-j to proton-c reactor interop tests commit 7faa7e2322c4782b9acc173194dc8bb1887a5a89 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-04-30T13:51:46Z PROTON-881: Only try interoperation tests with proton-j if proton-j has been built! commit 1eb41f603b0a4c5da9c686af1369837e7c6f2184 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-05-01T14:36:00Z PROTON-881: Add reactor interop tests that send messages from proton-c to proton-j commit 51529f675a11f49089e4a50a6bbced3955c26d63 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-05-01T14:55:07Z PROTON-881: Tidy up Selectable to remove bits of a c style record implementation commit 5748bb9880432bab64c42d34f4d7277163077427 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-05-02T21:30:40Z PROTON-881: Add error handling for "accept socket connection" path through Acceptor Adds error handling for various problems that can occur when accepting a connection (to a listening socket). Also adds unittests that cover these cases. commit e9d4a78d294f08e7eb1bd7a3f28bd3f97ce6b9df Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-05-04T20:01:19Z PROTON-881: Add reactor unit tests based on those in proton-c/src/tests/reactor.c commit d6c4ba7bb18d3b8ce02a8dcd52c0f1e569694bb7 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-05-04T20:57:53Z PROTON-881: Add code to release resources (e.g. sockets, selectors, etc.) The proton-j codebase does not, generally, implement cleanup logic in the same way as proton-c (explicit reference counting) and for some resources (such as sockets, selectors, etc.) cannot always way for garbage collection to finalize objects. This commit adds a 'free' method to a number of classes. Calling this closes any Java resources held by the class. The reactor also has a 'free' method, which frees both the reactor and any children that the reactor has. commit 46b9d848999e993f238b37c9a0598035ccd64b27 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-05-07T00:21:41Z PROTON-881: tidy up comments and TODO's Remove TODO's if they were already done, downgrade some TODO's to comments (if they were simply observations), and remove some comments that consisted of proton-c code - pasted in as a reference. commit bfb5dcd379f8e4dad0ea879bdc2207297e180a36 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-07T00:33:05Z dummy commit commit a65760abe2642579ed6dea0aa89af40d56d4c310 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-07T06:32:20Z Merge branch 'reactor' of https://github.com/prestona/qpid-proton into proton-j-reactor commit 9daab5f836aacca3e0efde9ceff321784e4356aa Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-07T08:25:53Z PROTON-881: build the reactor interop test into the proton-j jar commit 20cdff183f7ce2c79012d5c7028eefc19a23ae28 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-07T08:27:26Z PROTON-877: workaround by forcing anonymous from the client commit 06c451f0aadd52278770c2691ff8396d4a9587e1 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-07T08:31:11Z PROTON-881: added a pom.xml for the reactor exampes commit f870333338b5ad62aef6867855f98fee08cca974 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-07T15:23:15Z PROTON-881: added Record attachments in favor of modifying endpoints to know about handlers commit ad0f0295700d43fb1788ded9bdb83ae998260d9b Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-10T10:37:42Z fixed version commit 5c7f59cf6949898f5cd54dbda4d72b487e385a44 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-11T14:11:39Z fixed version and launcher scripts commit 76cb49a87935f0659310286c25953efd6b66cfa7 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-11T17:05:00Z make the timer selectable read from the wakeup pipe commit 1cbba24d6caadf5431429196e8430ae1041dc5da Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-12T22:19:23Z added launcher script for examples; added null check to IOHandler.java commit 7115d0dfbda2a9130c03fc0171abe527ecc5f0c1 Author: Dominic Evans <dominic.ev...@uk.ibm.com> Date: 2015-05-13T12:27:04Z Replace localhost with 127.0.0.1 in interop tests The test was proving unrealiable when localhost resolved to IPv6 ::1 commit 09c190f2b18b4a19e21da891afbf7736e40fd923 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-14T15:44:02Z PROTON-881: added Extendable interface for things that support attachments and modified the reactor code to use it for handlers commit 2405ca0f1bd2cd7933cd335ead8de42fd2dc072c Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-15T18:32:54Z PROTON-881: added a README with a bit of explanation of the reactor processing model commit 3c3799238a7f834cf0848378ed704da3135fa491 Author: Rafael Schloming <r...@alum.mit.edu> Date: 2015-05-15T18:36:00Z PROTON-881: indent more for markdown commit 2d3cefc4562e2246a9007d500cf2885ad9b8adc6 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-05-18T22:07:22Z PROTON-881: make unittests check for Java I/O object leaks Implements something similar to pn_io so that the various Java I/O resources are created in a single place. Reactor unit tests are parameterized to run once with the reactor implementation returned from Proton.reactor() and once from a unittest extension of ReactorImpl which checks that all Java I/O resources, used by testcase, are closed. commit f9f46900b606c103cc6be48e892370896cfbae1e Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-06-15T21:49:43Z PROTON-881: Graceful handling of runtime exceptions thrown within handlers When a runtime (unchecked) exception is thrown from within a handler, the reactor now catches it and rethrows it as a HandlerException (which is also an unchecked exception). The HandlerException references the handler that threw the original exception and also chains the original exception as its "cause". ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---