Tony, Why native code for this? What does this do that NIO Direct Buffers can't do?
If not NIO, why not use an existing open source? Netty has a direct buffer wrapper. And there's the DirectMemory Apache Incubator [1] (that I know nothing about). If still not NIO, why not use memcached, redis or the equivalent? Just curious your thinking. Adam [1] http://directmemory.apache.org/ On Wed, Mar 25, 2015 at 11:52 PM, Tony Kurc <[email protected]> wrote: > I've gotten some work done on NIFI-455. I'm building a shared library in C, > and calling functions in that library using JNI. I've been working in a > separate repo (https://github.com/trkurc/offheap) for now as I'm > struggling > a bit with where native code should live in the source tree and how it > should be built and distributed. I'm hoping to get some suggestions.. I've > seen quite a bit of variety in the way other java projects include native > code such as (mixed into maven-friendly source tree, maven build with ant > run plugin with cmake and make) [1] (similar, but just with ant-run with > cmake) [2] (separate part of source tree with pom that invokes make via > executable plugin) [3]. > > Building and putting in the source tree is one issue. The next couple > integration steps are getting the shared library somewhere sensible and > setting up the environment to load, (and doing sensible things if the > shared library can't be found). > > If people have thoughts, or idioms that other projects use that we may be > able to borrow, I'd like to know! > > Tony > > [1] > > https://github.com/apache/hadoop/tree/3c9181722b05a9192f5440ea8f3f77231f84eac6/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src > [2] > > https://github.com/apache/hbase/tree/543c64d2e9d2fc608ef65cafd485a910d4b8d480/hbase-server/src/main/native/src > [3] > > https://github.com/apache/accumulo/tree/be4aade67b0f0711e25de9ac01552471b48a75af/server/native > > *parens included to improve groupin >
