Type inference without principal types

We are looking at adding type inference to Java from a software
engineering perspective.  When using the existing Java type system
unchanged, our planned inference algorithm does not yield principal types;
this may make inference more challenging.

What previous theoretical work is there on type inference in systems
(especially object-oriented) without principal types? 

Thank you,

Jonathan Aldrich