Changes between Version 4 and Version 5 of MapGuideRfc101


Ignore:
Timestamp:
Sep 20, 2010, 8:43:13 AM (14 years ago)
Author:
brucedechant
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc101

    v4 v5  
    1010||RFC Template Version||(1.0)||
    1111||Submission Date||1 July 2010)||
    12 ||Last Modified||Rohit Razdan, 1 July 2010||
    13 ||Author||Rohit Razdan||
     12||Last Modified||Bruce Dechant, 20 September 2010||
     13||Author||Bruce Dechant||
    1414||RFC Status||draft||
    1515||Implementation Status||pending||
    1616||Proposed Milestone||2.3||
    17 ||Assigned PSC guide(s)||Trevor Wekel||
     17||Assigned PSC guide(s)||Bruce Dechant||
    1818||'''Voting History'''||||
    1919||+1||||
     
    2525== Overview ==
    2626
    27 This RFC proposes removal of Xerces from the MapGuide source tree and attendant upgrade to version 3.1.1
     27This RFC proposes upgrading Xerces to the latest version.
    2828
    2929== 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
     31MapGuide uses the Xerces libraries to perform XML manipulation.
     32The version used by MapGuide is 2.7.0 and the latest version at the time of this RFC is 3.1.1.
    3133
    3234== Proposed Solution ==
    3335
    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
     36Upgrade the existing Xerces library to the latest version.
    6137
    6238== 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
     40Some 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
    6442== Test Plan ==
    6543
    66 Use standard MapGuide unit tests.
     44Test existing functionality and stability.
    6745
    6846== Funding/Resources ==
     47AutoDesk
    6948
    70 GSOC
     49== Future Plans ==
     50
     51Remove MapGuide's own copy of the source and allow the component to be installed/upgraded by the enduser.