With the advent of the Common Navigator Framework CNF in release 3.2 it is now time to start the end of life process for the ResourceNavigator (RN).
With the 3.5 release CNF has nearly all of the capabilities of the RN, with the following exceptions (please add to the list if I missed anything):
- [CommonNavigator] add the same sorting in Project Explorer that was in Navigator - 208801
Here is the plan for end of life for the RN:
- Notify everyone of the RN end of life (3.5M6)
- Deprecate the RN APIs (3.5M6)
- Implement remaining RN functionality (above - 3.5M7 or 3.6 early)
- Make sure no SDK perspectives include the RN in their default layout (3.5M6)
I agree with the end goal (eventual complete replacement of RN with CNF), and deprecating the Java API in 3.5 certainly makes sense. However, withdrawing the Navigator's view contribution in 3.5 seems to be a big change at this point in the release cycle. There will be many perspectives out there that still contain the Navigator, and products targeting 3.5 that for whatever reason will still using it in their app layouts. Although it was never intended for use in RCP apps, I know there are quite a few RCP applications out there that use it (or at least used to). My suggestion for an orderly death would be:
- Deprecate all APIs immediately but leave everything in place. - Make sure none of the SDK perspectives contain the Navigator in their
- Advertise that it is deprecated and encourage people to move to CNF - Immediately after the 3.5 release, split the navigator view and APIs out
of org.eclipse.ui.ide into a separate plug-in.
- At some point remove this plug-in from the platform feature (perhaps in
3.6, or else in 4.0). org.eclipse.ui.ide version would need to bump to 4.0 at this point.
This way the view is still available for people who still need it for whatever reason. And, with the slightly higher bar of having it in a separate bundle outside the platform, there will be strong incentive for people to move to the Project Explorer.
Note there are likely bits and pieces of API outside the navigator API package that will also need deprecating. IPageLayout.ID_RES_NAV comes to mind, for example.