From Fedora Project Wiki

Eclipse 3.4

Summary

Re-base to Eclipse 3.4 (Ganymede). What's new for this release? In addition to bug fixes and general improvements, there are some interesting new features. For example, there is the Equinox/p2 provisioning framework which replaces the old update manager. The new update manager is a lot easier for the end-user to update and maintain the workbench. In the JDT, multicore support has been added to ensure Eclipse is fast as possible for compiling Java code in the future. As well, a new feature called Plug-in Spy has been added which is a useful tool for plug-in developers to determine what plug-in supplies a selection class.

Owner

Current status

  • Targeted release: Fedora 10
  • Last updated: 2008-09-16 by Jeff Johnston
  • Percentage of completion: 100%
  • Outstanding issues:
    • tag build in koji
    • get p2 user UI working
    • get builds going on non-upstream platforms
    • get p2-ization stuff into package-build and eclipse-* %install sections
    • run tests
    • re-build icu4j, sat4j, tomcat5, and eclipse-*

Detailed Description

  • The Eclipse project releases its IDE and development platform once a year. The most recent release in June 2008 is version 3.4 also known as Ganymede. A lot of improvements and functional additions appear in 3.4.

Benefit to Fedora

The latest bells and whistles :)

Scope

See 452875

  • use p2
    • decide (with other distros and in consultation with upstream) about dropins location
    • update pdebuild.sh to generate p2 metadata
    • ensure our metadata is properly read by p2 if we're going to use the dropins approach for additional plugins
    • ensure our arch-specific/arch-independent split still worksmove everything in the SDK to %{_libdir}/eclipse
  • ensure we have all dependent packages updated and OSGi-ified a la Orbit
  • get sat4j reviewed
  • ensure secondary arches can still build and runppc64 works. I assume other arches will also work.

Test Plan

Automated upstream tests, daily usage, 3rd party plugin installation

User Experience

The user should see a seamless upgrade from eclipse-*-3.3.2 to eclipse-*-3.4.0. Unfortunately, 3rd party plugins users have installed (into ~/.eclipse) will probably no longer work without re-installation (see Eclipse.org bug 223434.

Dependencies

  • sat4j (Review RequestDone.)
  • OSGi-ifying: objectweb-asm (probably with a sub-package, objectweb-asm-eclipse or something)
    • get a mega-asm bundle from the multiple JARs we have in Fedora now
  • the rest of the dependencies from Eclipse 3.3 except Tomcat (actually, still need Tomcat for the servlet{,.jsp} API and jasper sub-packages)

JARs we'll need to have to be able to symlink

These are all the JARs in the source drop. The source ones will be generated by the build so ignore those.

JAR filename Containing package More info
com.ibm.icu_3.8.1.v20080530.jar icu4j Upgrade to 3.8.1?Done
com.jcraft.jsch_0.1.37.v200803061811.jar jsch Ensure we have the proper version and MANIFEST.MF data.Done
javax.servlet.jsp_2.0.0.v200806031607.jar tomcat5-servlet-2.4-api Ensure we have the proper MANIFEST.MF data.Done
javax.servlet_2.4.0.v200806031604.jar tomcat5-jsp-2.0-api Ensure we have the proper MANIFEST.MF data.Done
org.apache.ant_1.7.0.v200803061910/lib/* ant I think we're good here.
org.apache.commons.el_1.0.0.v200806031608.jar jakarta-commons-el Done
org.apache.commons.logging_1.0.4.v20080605-1930.jar jakarta-commons-logging Done
org.apache.jasper_5.5.17.v200806031609.jar tomcat5-jasper-eclipse We have 5.5.26 but upstream ships against 5.5.17. We may need to see if anything has a hard version requirement on 5.5.17. Done
org.apache.lucene.analysis_1.9.1.v20080530-1600.jar lucene Ensure 2.3.x we have in Fedora still works. Done
org.apache.lucene_1.9.1.v20080530-1600.jar lucene Ensure 2.3.x we have in Fedora still works. Done
org.eclipse.ecf.filetransfer_2.0.0.v20080611-1715.jar eclipse-ecf For now, build as part of SDK build. In the future, we can have an eclipse-ecf package which builds and owns these files. Parts of ECF other than the filetransfer stuff (which is all the SDK uses) have dependencies on things we don't have in Fedora (Smack version 2 -- upstream is porting to 3.x; ch.ethz.iks.r_osgi.remote; ch.ethz.iks.slp).
org.eclipse.ecf.identity_2.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.ecf.provider.filetransfer_2.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.ecf.ssl_1.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.ecf_2.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.osgi/osgi/osgi.cmpn.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.osgi/osgi/osgi.core.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.osgi/supplement/osgi/osgi.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.swt.tools/swttools.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.swt.win32.win32.x86/swt.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.swt/extra_jars/exceptions.jar internal to Eclipse Ensure unnecessary for build.
org.junit4/junit.jar junit4 No work needed.
org.junit_3.8.2.v20080602-1318/junit.jar junit No work needed.
org.mortbay.jetty_5.1.14.v200806031611.jar jetty Upgrade to 5.1.14? Verify new build has proper OSGi data in MANIFEST.MF.Done
org.objectweb.asm_3.1.0.v200803061910.jar objectweb-asm Need to get monolithic OSGi-ified JAR OR patch pde.api to use the multiple jars (and will have to add OSGi MANIFEST.MFs to them). The vast majority of the imports are included in asm-3.1.jar but two are in asm-tree-3.1.jar and one is in asm-util-3.1.jar. See this file for more details. Update 2008-07-07: Alexander Kurtakov has done the work to OSGi-ify asm-all.jar (which wasn't in Fedora). Patch application request. Done.
org.sat4j.core_2.0.0.v20080602.jar sat4j Review request Done
org.sat4j.pb_2.0.0.v20080602.jar sat4j Review request Done

Contingency Plan

  • Stick with Eclipse 3.3.2.

Documentation

Release Notes

We will need a release note stating that user-installed plugins from earlier releases will need to be re-installed for 3.4.

Comments and Discussion