What is the proper procedure for distributing software updates using group policy's software installation feature?
For example, if I want to install Java, and Java 1.7u6 is already added as a package, should I:
A) Remove the Java 1.7u6 package (selecting the "allow users to continue to use" option), and add Java 1.7u7?
B) Add Java 1.7u7 and specify that it is an update to the existing 1.7u6 package? (Will this install the oldest version first, then install each update one after the other, or will it just install the latest package?)
Note that this question is geared toward the operation of the software installation feature of group policy, not specifically the behavior of the Java installers. This could easily apply to the installation of Adobe Flash, Adobe Reader, or any other common software applications with frequent updates.
The proper procedure is the one that meets your business needs and that you've tested to ensure nothing breaks.
In some cases, that means uninstalling old software first, in some cases that means upgrading, in some cases it means leaving the old version in, and in some cases, it means not installing a new version at all. Our legacy time keeping software, for example, reqiures a specific version of JRE5. So that's still installed on its server, and no newer Java versions. Some piece of HR software requires IE7, so our HR folks have IE7. Yet another piece of legacy junk in our environment won't work with anything newer than SQL Server 2000. So guess what's installed on one of our SQL servers? Yup, SQL 2000.
It all depends, and usually, you have restrictions you don't like that limit what options are available. But as long as you work within your constraints and test before you install, you're doing it "the right way."
Edit:
In response to your comment, and specific case, you can just install the newest Java. So long as the version it's replacing is new enough (I think >= JRE7u1), it will upgrade or uninstall the old version, rather than leaving all the old versions around, like it used to.
Java Runtime environments aren't upgrades, per se, they're all fully functional, stand-alone applications, and the version and update number indicate what version and revision of the code that runtime environment was built with. So there's no istalling older versions and then upgrading them. It installs the JRE it contains.
Test it first anyway, and make a note of any servers actively running a Java process that will require a reboot to complete the installation.