We are using Pega 7.2 running on Java 1.6. We would like to upgrade our version of Java to Java 7 or Java 8. According to documentation, this configuration is supported. Our question is regarding development during the process of the Java upgrade. What happens if we develop in an environment running Java 8, but promote the code to our Production environment running Java 1.6? Will Pega compilation and run time be different? Are there any know issues or do you foresee any problems with developing Pega code in one version of Java and promoting it to a region with a different version of Java? Do you have any suggestions for the best way to update our version of Java?
Java 7 and Java 8 have deprecated some prior Java functionality.
You can find documentation on oracle’s site with a search for “deprecated in java 7”
Java 7 and 8 also introduced new features that are not in Java 1.6, so if you have any jar files, function rules, or custom java steps in activities, be sure not to take advantage of these newer language features until you have a consistent environment.
For most of the Pega Rules you should not see a problem, as they will be reassembled on the production system.
I suggest testing in a similar (java 1.6) preproduction environment if you have to temporarily have different releases of Java in development and Production, but you should move to keep these consistent as soon as practical.
I don't think there is a specific recommendation to use one over the other for Pega 7.2. I would choose whichever version works best for your entire stack. And going back to your original question, you aren't migrating Pega bytecode generated in one environment into another, but the records that cause the bytecode to be generated. The actual generation is done by the system at first use. The only time I am aware of that moving Pega code developed on one version of Java to a system running another one might have a problem is if you are writing custom java inside those rules (so most likely a java step in an activity). In that case, if the code you wrote won't work in the new JRE, you will need to rework your code.
In most cases I try to keep my Java as current as possible due to security fixes that are available, and Oracle will maintain that release longer. You could also then skip the 7 to 8 upgrade in the future if you can do it now. Of course you will wish to make sure your database drivers and Web application container support Java 8 as well.