convert source code generation to java proxy implementation, ensure cache works