| 1 | |
| 2 | = !MapGuide RFC 139 - Update version number to 3.0 and remove various cruft and deprecated APIs = |
| 3 | |
| 4 | This page contains a change request (RFC) for the !MapGuide Open Source project. |
| 5 | More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. |
| 6 | |
| 7 | |
| 8 | == Status == |
| 9 | |
| 10 | ||RFC Template Version||(1.0)|| |
| 11 | ||Submission Date||1 July 2014|| |
| 12 | ||Last Modified|||| |
| 13 | ||Author||Jackie Ng|| |
| 14 | ||RFC Status||draft|| |
| 15 | ||Implementation Status||Pending|| |
| 16 | ||Proposed Milestone||3.0|| |
| 17 | ||Assigned PSC guide(s)||(when determined)|| |
| 18 | ||'''Voting History'''||(vote date)|| |
| 19 | ||+1|||| |
| 20 | ||+0|||| |
| 21 | ||-0|||| |
| 22 | ||-1|||| |
| 23 | ||no vote|| || |
| 24 | |
| 25 | == Overview == |
| 26 | |
| 27 | 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 |
| 28 | |
| 29 | == Motivation == |
| 30 | |
| 31 | MapGuide has several bits of accumulated cruft that have existed for a while now: |
| 32 | |
| 33 | * Clunky MgMap APIs |
| 34 | * MgCreateSdfParams superceded by MgFileFeatureSourceParams |
| 35 | * DWF eMap support that requires old and specific versions of Autodesk Design Review / DWF viewer plugin to properly consume these APIs and services |
| 36 | * 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. |
| 37 | |
| 38 | Users and developers have had several years of releases to move to non-deprecated alternatives. This cruft should be safe to remove now. |
| 39 | |
| 40 | To best communicate the removal of this cruft, we should also bump the version number to 3.0. |
| 41 | |
| 42 | == Proposed Solution == |
| 43 | |
| 44 | Set the base version number in MapGuide to 3.0.0.0 |
| 45 | |
| 46 | Ensure that any doxygen content for APIs introduced in this development cycle are set to `\since 3.0` |
| 47 | |
| 48 | Demote the following list of deprecated APIs from PUBLISHED_API. Such APIs may still be accessible from C++ code: |
| 49 | {{{ |
| 50 | MgMap::MgMap(); |
| 51 | MgMap::Open(MgResourceService*, CREFSTRING); |
| 52 | MgMap::Save(MgResourceService*); |
| 53 | }}} |
| 54 | |
| 55 | Remove these methods and classes |
| 56 | {{{ |
| 57 | class MgCreateSdfParams; |
| 58 | MgMappingService::GenerateMap(MgMap*, CREFSTRING, MgDwfVersion*); |
| 59 | MgMappingService::GenerateMapUpdate(MgMap*, INT32, CREFSTRING, MgDwfVersion*); |
| 60 | }}} |
| 61 | |
| 62 | Update Oem build process to not build the DWF EMap toolkit. |
| 63 | |
| 64 | Remove EMap renderers from the Renderers project. |
| 65 | |
| 66 | Remove the MapGuideDotNetApi project in the web tier. Since the [http://trac.osgeo.org/mapguide/wiki/MapGuideRfc68 .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. |
| 67 | |
| 68 | Remove the following operations from the mapagent: |
| 69 | {{{ |
| 70 | GETMAP |
| 71 | GETMAPUPDATE |
| 72 | }}} |
| 73 | |
| 74 | Remove all eMap-related files from the AJAX viewer code. |
| 75 | |
| 76 | 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. |
| 77 | |
| 78 | The following list of deprecated APIs are spared from the chopping block in this RFC |
| 79 | {{{ |
| 80 | MgFeatureService::DescribeSchema(MgResourceIdentifier*, CREFSTRING); |
| 81 | MgFeatureService::DescribeSchemaAsXml(MgResourceIdentifier*, CREFSTRING); |
| 82 | MgSpatialContextReader::IsActive(); |
| 83 | }}} |
| 84 | |
| 85 | == Implications == |
| 86 | |
| 87 | Applications using the above deprecated APIs will have to migrate their code to use the suggested alternatives. |
| 88 | |
| 89 | .net applications that were built against MapGuideDotNetApi will have to reference the split .net assemblies and be re-compiled. |
| 90 | |
| 91 | This RFC removes DWF eMap support from the MapGuide viewer and its APIs. Affected users should migrate to the current client viewer offerings. |
| 92 | |
| 93 | == Test Plan == |
| 94 | |
| 95 | Run existing test suite to ensure no breakages |
| 96 | |
| 97 | == Funding / Resources == |
| 98 | |
| 99 | Community |