what many application developers do while they migrate/upgrade to a new version of Java, they just fix the compilation issues with the deprecated APIs.
My question for them..what's the use if you are just upgrading to newer version and making use of any of the features or updates that it has provided you. The simple answer is not enough time to look into the feature in a maintenance project. We all should agree that is a fair case in most of our maintenance projects.
What is your take on this? Is this book answer the questions of an easy upgrade and jump start with new features of Java 7.
Whenever we upgrade existing applications to a new version of Java, our first step is migration. The goal during migration is to first get the application working as-is an not trying to use new features.
By migrating we lay out a platform, to start using the new language features for the enhancements that you might plan on your application. Unless there is a forcing need we dont have to go for refactoring the existing code to use the new features provided by the upgrade.
There is an old saying: "If something ain't broke, don't fix it." If a company is getting good use out of a previous version of Java, there is little need to upgrade (although that sucks for developers). The only considerations that I can see for obtaining a newer Java version are:
1) The new version fixes a security problem or other bug.
2) Oracle has "end-of-lifed" the Java version being used and this is a problem for the company using that version (e.g., there will be no more bug fixes).
3) A company wants to upgrade software using the current Java version and a newer Java version offers features (e.g., web services support) desirable for the upgrade.
There may be other considerations as well. You could make these points to your company management and see if they agree.
SCEA EE5, CSM, PMP, IBM OOAD with UML, SCDJWS, SCWCD, SCJP 1.5
Shiv, I completely agree with your reply.
As you said, mostly managers never want to go for an upgrade unless there is something that cannot be solved with the present release.
We are thinking of moving to Java 7 from java 6. I just wanted to make use of enhancements to multithreading and try-catch blocks.
Any suggestions from your end to jumpstart with new features while we upgrade to newer version.
Also thanks for refering to other post. That was an interesting read.
@Siva, If you upgrading to Java 7 from Java 6, the best place to start is, during your application bug fixes and enhancements you can re-factor the existing try-catch to try with resources which generates efficient byte codes and also provides cleaner way of handling resources closing. But beware that the re-factoring that you do must not have any heavy regression testing need on the application, so don't try to update the code in common modules unless needed.
With respect to mutli-threading there is not much need for enhancement in your application unless you have used any custom class loaders. Even if you have custom classloaders I would say adhere to an acyclic class loader delegation model to avoid the deadlock issue which is what is fixed in Java 7.