Java Producer Provider

First pass at adding java producer functionality.  

A lot still needs to be cleaned up
Doesn't look like `#push_single` is used anywhere, can probably be deleted