Initial Commit for 3.5 from Google Project

Initial Commit for 3.5 from Google Project. Fixed some compilation
errors with Java Generics.