On 5/10/13 12:20 PM, Mike Matrigali wrote:
Just out of curiosity I was wondering what is the methodology for the
java 6 conversions going on. Are there any other tools being used
other than running the build on java 6 with no compatibility flags
and fixing the compile errors?
I assume that not all Container uses need to be changed to generics,
is that true?
Hi Mike,
We're kind of feeling our way forward here. It's a big codebase and,
unfortunately, not as tidily layered as we might hope. I'm trying to
make incremental progress without pulling on the whole ball of yarn at
once. I'm not aware of any tools which would speed this up.
The step we're on right now is converting the build to assume Java 6. My
last swing at that resulted in 10 lint diagnostics in the build. We
could live with those lint warnings if we don't want to convert to
generics. But I think we want a clean build and, going forward, I think
we also want the compile-time check that collections are correctly
typed. That's because we have seen problems in this area and I think
it's better to catch those errors at compile time.
I have removed the lint warnings from a couple packages. Most of the
changes to the source code fall into the following categories:
1) Privilege blocks need to be typed because the privilege machinery was
generified.
2) Vectors, Hashtables, and HashMaps need to be given type information.
So far, this has resulted in very few changes to source files. The
changes are localized to a few lines and don't appear to me to present
much of a hurdle to backporting. Right now, I'm expecting that the most
extensive changes will be in the class loader support.
Thanks,
-Rick