Community
Participate
Working Groups
Mylyn currently supports three different Eclipse platform versions: 3.3, 3.4 and 3.5. With the Eclipse Galileo release support for Eclipse 3.6 will be added. Due to the way Mylyn's integrates with the platform it is not always possible to solely rely on API and a number of Mylyn plug-ins have been branched for Eclipse 3.3 to account for changes in the platform. In other places reflective code is used to make the implementation work across all supported Eclipse versions. The maintenance of branches, reflective code, multiple update sites and testing on different Eclipse versions imposes significant overhead on Mylyn committers. Feedback from the Mylyn community suggests that Eclipse 3.3 usage has decreased significantly and major Eclipse based product and distributions have moved to Eclipse 3.4 at this point. In order to reduce the maintenance overhead it is planned to end support for Eclipse 3.3 starting with Mylyn 3.3. In addition this will enable Mylyn to take advantage of platform enhancements added in Eclipse 3.4.
While we are still using Eclipse 3.3, we plan to upgrade at least 3.4.2 soon. Steffen, could you comment which 3.4 feature you are planning to use? Thanks, Jörg
(In reply to comment #1) > could you comment which 3.4 feature you are planning to use? Supporting Eclipse 3.3 means that we have code that looks like this: bc. informationControlCreator = new IInformationControlCreator() { @SuppressWarnings("deprecation") public IInformationControl createInformationControl(Shell shell) { try { // try reflection to access 3.4 APIs // DefaultInformationControl(Shell parent, ToolBarManager toolBarManager, IInformationPresenter presenter); return DefaultInformationControl.class.getConstructor(Shell.class, ToolBarManager.class, IInformationPresenter.class) .newInstance(shell, toolBarManager, new HtmlTextPresenter()); } catch (NoSuchMethodException e) { // no way with 3.3 to get V_SCROLL and a ToolBarManager return new DefaultInformationControl(shell, SWT.RESIZE, SWT.V_SCROLL | SWT.H_SCROLL, new HtmlTextPresenter()); } catch (Exception e) { throw new IllegalStateException(e); } } }; The code is tricky, ugly, and error-prone. Furthermore you can't use reflection to call a superclass constructor.
Created attachment 139649 [details] mylyn/context/zip
(In reply to comment #1) > Steffen, could you comment which 3.4 feature you are planning to use? You can find enhancements that are pending for Eclipse 3.4 by looking for the [e3.4] tag in our Bugzilla. In the long run we would like to take advantage of these 3.4 features: 222429: [e3.4] use colored label decorations in the Task List https://bugs.eclipse.org/bugs/show_bug.cgi?id=222429 237042: [e3.4] use secure storage to save passwords https://bugs.eclipse.org/bugs/show_bug.cgi?id=237042 In addition we use "// TODO e3.4 ..." comments in the code to mark pending refactorings (see David's comment 2).
Steffen: What's your recommendation here?
I am in favor of discontinuing Eclipse 3.3 support with the next Mylyn 3.3. release. Users on Eclipse 3.3 will be able to run on the 3.2.x stream for a while until they migrate to Eclipse 3.4 or later. All major Eclipse distributions have a 3.4 based version as far as I know.
+1
I have created branches for the 3.2.x service release stream: http://dev.eclipse.org/mhonarc/lists/mylyn-dev/msg00757.html The e_3_3_m_3_x branch will not be updated any further and the e3.3 weekly site will be removed with the next weekly build.
Support for the Eclipse 3.3 branch has ended. Those interested in extending the support should comment here, or seek commercial support for that branch, listed at: http://www.eclipse.org/mylyn/support/