User: Inputs or selects Java code or a whole project to be upgraded.
System: Generates new Java code that supports the newer version of
the language and built-in library, and it is functionally the same as the
older code. Also generates required changes to build and configuration
files.