I had a look at your changes. Great job. Thanks a lot.
You're welcome. Xith3D could not go on using an obsolete version of JOGL.
I have a few questions though. Isn't it (potentially) slow to get an instanceof GL2 hundreds of times during one frame instead of once per method (store in local variable)?
No it is not slower as a GL2 instance is a GL instance (but a GL instance is not necessarily a GL2 instance).
As a first step, I don't store GL2 instances into a local variable, I start doing it after ES2 isolation. Keep in mind that JOGL 2.0 supports both OpenGL and OpenGL ES. When I separate which parts of the code requires GL2ES1 and which parts of the code will rather use GL2ES2, I can use local variables.
I don't unterstand the package and classname change. The new classes and methods seem to be fully compatible with GL(1). They just carry the 2-postfix. Why is that? Why didn't you simply improve the GL classes?
Profiles have been introduced in OpenGL quite recently, they were not supported in JOGL 1. GL instance for Backward compatible profiles are called GL*bc (GL3bc, GL4bc) whereas other don't have the suffix "bc". Mickael Bien explained that here:
http://michael-bien.com/mbien/category/3D+GraphicsGL contains only the common stuff. Best regards.