You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by Rafael Schloming <rh...@alum.mit.edu> on 2014/01/07 19:30:10 UTC

Re: improving cross language maintainability

So far there has been some good discussion on this thread. I can certainly
appreciate the frustration that has been expressed, specifically around
under defined APIs, and confusion regarding the various components of
proton. I believe there are steps we can take to improve both of those
situations. I've created additional components in JIRA for tracking changes
across bindings, and I'm currently working on some content describing
proton's overall architecture and how messenger and engine fit within it
and relate to each other.

That said, no amount of documentation or JIRA usage will help with the
issues I raised in my original post. In particular making even small code
changes requires touching too many different parts: (C code, Java impl,
Java API, JNI binding, C shim, Java shim, and python tests). As a first
step towards improving this I'd like to reiterate my proposal of removing
the JNI binding for the following reasons:

  - It is experiencing significant bit rot.
  - It is not currently used outside of testing.
  - It only provides a minimal amount of additional coverage (some 19 or so
tests as compared to the 266 tests already in the shared python test suite).
  - It is a significant maintenance burden as it covers the entire engine
API rather than just messenger.
  - It is unlikely to ever be of production value, because a JNI layer
designed for testing an existing C library has fundamentally different
requirements than a JNI layer designed to improve the performance of an
existing Java library.

--Rafael