make java a more loosely coupled dependency
Merge branch 'loose_java'