Platform/Core Component Planning Details

Remove Dependancy on Xerces (bugs 37696, 36112)


  • Create new XML plug-in containing the XML Pull APIs.
  • Remove plug-in dependancies from org.eclipse.core.runtime and org.eclipse.core.resources.
  • Add new dependancy to new XML plug-in.
  • Replace org.eclipse.core.internal.plugins.PluginParser with a new parser using the new APIs.
  • Replace org.eclipse.core.internal.resources.WorkspaceDescriptionReader with new reader based on new APIs.
  • Replace org.eclipse.core.internal.resources.ProjectDescriptionReader with new reader based on new APIs.
  • Determine interaction with bootstrap process. Things to consider include creating the bootstrap classloader, update/install, and org.eclipes.core.internal.boot.PlatformConfiguration.
  • Check test suites.
  • Verify new work by completely removing the Xerces plug-in from the environment. (is this possible with the other plug-ins' dependancies?
  • Educate Platform/UI and other teams in SDK who rely on Xerces with knowledge of new APIs. Note that most teams have updated the bug report with explanations of their usage.

Current Status

October 20, 2003

  • Since Eclipse now requires a 1.4 VM, we have decided to program against the JAXP APIs for now rather than including a new XML Parser (like XML Pull) in the SDK.
  • Perhaps in the future we will switch to a highly performant parser in the Core Runtime to parse plugin.xml files.
  • Message sent to mailing list and newsgroup.
  • Core has removed their dependancy on Xerces and programmed against JAXP.
  • Other plug-ins in the SDK are following suit.

September 2, 2003

  • Still waiting for approval before moving on.

July 21, 2003

  • We are awaiting to see if we can get approval to include an XML Pull implementation in the SDK download
  • Working out licensing issues with the developers of a particular XML Pull implementation. (inconsistencies between code and web site)
  • Have asked for the teams in the SDK to indicate where they use XML in their code. Almost every single Eclipse team has replied that they use XML somewhere in their code! Still need to review these uses and plan for migration.

Milestone Plans

3.0 M5 - November 21, 2003

  • Remove dependancy on Xerces for all SDK plug-ins.
  • Remove Xerces plug-in from SDK download? Need approval from PMC before this can happen.

3.0 M4 - October 10, 2003

  • Get the code released into the repository. Still waiting on approval before this can be done.

3.0 M3 - August 29, 2003

  • Continue towards completing the above outlined tasks.
  • Hope to have approval for XML Pull use shortly after 3.0 M2 and then will be able to release new code into HEAD.

3.0 M2 - July 18, 2003

  • Goal is to complete all of the above work.
  • We don't envision having all teams converted to new APIs but should at least be educated on how to convert their code. It is up to the individual teams to 1) determine whether or not they want to convert their code and 2) to actually change their code.
  • Note that although all plug-ins in the SDK are not required to convert their parsing, it is necessary that at least the plug-ins defined to be a part of the Rich Client Platform (RCP) perform this transformation. Reducing the size of the XML plug-in shipped with the RCP (3M for Xerces vs 25K for XmlPull) is a big big win.