As part of Google App Engine 1.7.5 release on February 13, 2013, we introduced Preview support of App Engine Java 7 runtime. In early April, Google will commence upgrading our internal applications from Java 6 to Java 7. In conjunction with this effort, we highly recommend that all of our App Engine customers begin testing and eventually migrate their applications to Java 7 runtime within the next couple of months.
Please find below some additional technical information to assist with testing and migrating your application to Java 7 environment:
Java 6 and Java 7 Compatibility
In general, Java 7 runtime is backwards compatible with Java 6, and will run all pre-existing Java applications that did not rely on implementation-specific functionality. Please refer to the
Oracle white paper on Java 7 and Java 6 compatibility for additional details.
Procedure for Testing
For all your Java App Engine applications, here are the steps for testing in the new Java 7 environment.
1. App Engine can support multiple live versions of a given application. It is best to create a new version of your app and deploy it to a Java 7 runtime.
2. You can deploy to a new Java 7 runtime with one of the following steps:
a) Recompile your Java Application with a full JDK 7 compiler. You can test it with the GAE 1.7.5 SDK, and when ready, use the regular appcfg SDK tool that will detect that the Java byte code is Java 7 compliant and will use a Java7 runtime for this application version.
b) If you are still compiling your Java application with a JDK 6 compiler, you can deploy to the Java 7 runtime by adding the --use_java7 flag to the appcfg SDK tool.
3. Assuming you have your default application version still running with a Java 6 runtime and a new version running in Java 7, you can use the Google App Engine Traffic Splitting feature to slowly ramp up traffic on the new Java 7 runtime. Consider starting with 5%, then increase gradually to 10%, 20%, and so on as your app is behaving as expected. See our
Traffic Splitting document for more information about this tool.
Thanks for spending the time to make sure your application is Java 7 ready now. Only a very few incompatible behaviors may have to be fixed in your applications.