Hi there.
I recently read about your project and like the direction it is taking. Currently, I am a committer to another incubator project, Kalumet, and have been a long-time contributor to the Karaf and Camel projects. After talking with a few of the Accumulo project members, it looks like the most immediate hurdle is growing the user community. I believe I can help with that. Making associations between incubator projects and top-level-projects has been a proven mechanism to pique developer interest and garner more dedicated contributors and commiters. Because of the wide integration of Camel and NOSQL databases, creating a Camel component for interaction with Accumulo seems like a no-brainer. In order to help grow the Accumulo community, tonight I began writing a camel-accumulo component. This will allow Camel users to route files to Accumulo in the same manner as they currently route files to HDFS . For some background, Camel is the open-source implementation of Enterprise Integration Patterns. Most modern ESB's use OSGI and Camel to perform routing and orchestration of data through endpoints. Camel has been written to allow various technologies to create Camel Components that folks can use when they define the route that a given file or data will be processed through. In this model, users would define a "route" in Camel that contains various Accumulo endpoints for reading, writing, or mutating data persisted through Accumulo. To make this work, I need to define a URI that folks will use. Would you folks be able to help me define the URI and URL parameters? Right now, I'm using the URI "accum". For the first iteration of this component, I'm thinking it would be simplest to create an endpoint folks could write a single re cord to. Then, follow it up with a scan, and mutate components. Once these are done, I'd like to do the batch-versions of these operations. In Camel, an endpoint usually looks similar to a web-service endpoint: URI://location/service ?[arg1=value1][&arg<x>=value<x>] With this in mind, I'm thinking the following would be the minimally acceptable Camel-Accumulo endpoint for simplistic write operations: accum://location /write ?zookeeperName=value&\ tableName=value& \ userName=value&\ password=value&\ userPrivs=value&\ scanAuths=value&\ debug=value Does this contain a c omplete listing of the properties? A m I missing anything, did I put something in that's not needed, or are there other options a user should be able to pass in? Also, is the URI of "accum" ok for this camel component? Because Camel is written to play nicely inside of OSGI (like Karaf/Felix), the .jar files this camel component relies on should be bundle-ized. This shouldn't be too hard to do, and as a Karaf contributor, I've done this with hundreds of third party .jar files. Basically, we would replace the maven-jar-plugin with a light implementation of the maven-bundle-plugin along with some fairly generic attributes. If you folks would like, I can do this for you on a seperate branch so that you can test it. Mike Van Committer - ASF Kalumet Contributor - ASF Karaf, Camel
