Changes between Version 4 and Version 5 of MapGuideRfc101
- Timestamp:
- 09/20/10 08:43:13 (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MapGuideRfc101
v4 v5 10 10 ||RFC Template Version||(1.0)|| 11 11 ||Submission Date||1 July 2010)|| 12 ||Last Modified|| Rohit Razdan, 1 July2010||13 ||Author|| Rohit Razdan||12 ||Last Modified||Bruce Dechant, 20 September 2010|| 13 ||Author||Bruce Dechant|| 14 14 ||RFC Status||draft|| 15 15 ||Implementation Status||pending|| 16 16 ||Proposed Milestone||2.3|| 17 ||Assigned PSC guide(s)|| Trevor Wekel||17 ||Assigned PSC guide(s)||Bruce Dechant|| 18 18 ||'''Voting History'''|||| 19 19 ||+1|||| … … 25 25 == Overview == 26 26 27 This RFC proposes removal of Xerces from the MapGuide source tree and attendant upgrade to version 3.1.127 This RFC proposes upgrading Xerces to the latest version. 28 28 29 29 == Motivation == 30 MapGuide uses Xerces libraries to perform XML manipulation. However the XML source tree is hardcoded into the Mapguide source tree, with the even the version number being hardcoded in the make files. Not only is this inelegant, but it also makes any upgrade tough. In this RFC I propose to remove the Xerces from the MapGuide source tree and upgrade it to version 3.1.1. 30 31 MapGuide uses the Xerces libraries to perform XML manipulation. 32 The version used by MapGuide is 2.7.0 and the latest version at the time of this RFC is 3.1.1. 31 33 32 34 == Proposed Solution == 33 35 34 I propose to allow the user to install xerces-c++, and if already installed to use that existing installation with Mapguide. This involves two steps 35 36 * Modifying the configure file to include an option --with-xercesc=<install directory>. Default would be /usr . Using this option to configure the makefiles. These modules depend on xerces source code. 37 * ./Server/src/UnitTesting/ 38 * ./Server/src/Common/Manager/ 39 * ./Server/src/Services/Kml/ 40 * ./Server/src/Services/Feature/ 41 * ./Server/src/Services/Resource/ 42 * ./Server/src/Services/Rendering/ 43 * ./Server/src/Services/Site/ 44 * ./Server/src/Services/Drawing/ 45 * ./Server/src/Services/Mapping/ 46 * ./Server/src/Core/ 47 * ./Web/src/JavaApi/ 48 * ./Web/src/HttpHandler/ 49 * ./Web/src/WebApp/ 50 * ./Web/src/PhpApi/ 51 * ./Common/Foundation/ 52 * ./Common/PlatformBase/ 53 * ./Common/Geometry/ 54 * ./Common/MdfParser/ 55 * ./Common/MapGuideCommon/ 56 * ./Web/src/ApacheAgent/ 57 58 * Modifying the MapGuide code base for compatibility with Xerces 3.1.1. Xerces 3.1.1 introduces some major changes, both in terms of include files and also in terms of modifying the code to be compliant with DOM 3. Serializing classes like DOMWriter are not available and have been replaced with DOMLSSerializer. 59 60 //TODO : insert code changes here 36 Upgrade the existing Xerces library to the latest version. 61 37 62 38 == Implications == 63 In terms of changes, the changes look minor. However extensive testing would have to be done to make sure that the upgrade is not causing any unwanted effect. 39 40 Some of the MapGuide server's resource service codebase will need to be modified to use the NEW APIs of the upgraded library due to some of the methods being deprecated. The methods used are all internal and are not publically exposed. 41 64 42 == Test Plan == 65 43 66 Use standard MapGuide unit tests.44 Test existing functionality and stability. 67 45 68 46 == Funding/Resources == 47 AutoDesk 69 48 70 GSOC 49 == Future Plans == 50 51 Remove MapGuide's own copy of the source and allow the component to be installed/upgraded by the enduser.