finish complex changes for adding java support
java project
Merge branch 'feature/java/option/as/a/branch'