MapGuide RFC 139 - Update version number to 3.0 and remove various cruft and deprecated APIs
This page contains a change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.
Status
RFC Template Version | (1.0) |
Submission Date | 1 July 2014 |
Last Modified | 25 July 2014 |
Author | Jackie Ng |
RFC Status | Adopted |
Implementation Status | Implemented |
Proposed Milestone | 3.0 |
Assigned PSC guide(s) | (when determined) |
Voting History | (vote date) |
+1 | Jackie,Crispin,Zac |
+0 | |
-0 | |
-1 | |
no vote | Haris,Kevin,Gordon,Trevor |
Overview
This RFC proposes to set the version number of the next MapGuide release to be 3.0 and remove several deprecated APIs in the process
Motivation
MapGuide has several bits of accumulated cruft that have existed for a while now:
- Clunky MgMap APIs
- MgCreateSdfParams superceded by MgFileFeatureSourceParams
- DWF eMap support that requires old and specific versions of Autodesk Design Review / DWF viewer plugin to properly consume these APIs and services
- MapGuideDotNetApi.dll as a type-forwarding wrapper assembly to ensure old MapGuide applications that referenced MapGuideDotNetApi.dll did not break due to the assembly split in RFC 68.
Users and developers have had several years of releases to move to non-deprecated alternatives. This cruft should be safe to remove now.
To best communicate the removal of this cruft, we should also bump the version number to 3.0.
Proposed Solution
Set the base version number in MapGuide to 3.0.0.0
Ensure that any doxygen content for APIs introduced in this development cycle are set to \since 3.0
Demote the following list of deprecated APIs from PUBLISHED_API. Such APIs may still be accessible from C++ code:
MgMap::MgMap(); MgMap::Create(MgResourceService*, MgResourceIdentifier*, CREFSTRING); MgMap::Open(MgResourceService*, CREFSTRING); MgMap::Save(MgResourceService*);
Remove these methods and classes
class MgCreateSdfParams; MgMappingService::GenerateMap(MgMap*, CREFSTRING, MgDwfVersion*); MgMappingService::GenerateMapUpdate(MgMap*, INT32, CREFSTRING, MgDwfVersion*);
Update Oem build process to not build the DWF EMap toolkit.
Remove EMap renderers from the Renderers project.
Remove the MapGuideDotNetApi project in the web tier. Since the .net assembly split, MapGuideDotNetApi.dll is just a thin type-forwarding assembly that's there so that old MapGuide applications that were built against MapGuideDotNetApi.dll did not break. Being a 3.0 release, we can break free from this cruft and expect .net applications to reference the split assemblies individually.
Remove the following operations from the mapagent:
GETMAP GETMAPUPDATE
Remove all eMap-related files from the AJAX viewer code.
Check and update our various .net/Java/PHP code in web tier and samples to ensure that none of the above deprecated APIs are being used.
The following list of deprecated APIs are spared from the chopping block in this RFC
MgFeatureService::DescribeSchema(MgResourceIdentifier*, CREFSTRING); MgFeatureService::DescribeSchemaAsXml(MgResourceIdentifier*, CREFSTRING); MgSpatialContextReader::IsActive();
These changes have been carried out in the v30 sandbox. Upon adoption of this RFC, this sandbox will be merged into trunk.
Implications
Applications using the above deprecated APIs will have to migrate their code to use the suggested alternatives.
.net applications that were built against MapGuideDotNetApi will have to reference the split .net assemblies and be re-compiled.
This RFC removes DWF eMap support from the MapGuide viewer and its APIs. Affected users should migrate to the current client viewer offerings.
Test Plan
Run existing test suite to ensure no breakages
Funding / Resources
Community