[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mapguide-commits
Subject:    [mapguide-commits] r9973 - in trunk/MgDev: . Bindings Bindings/src Bindings/src/Bindings Bindings/sr
From:       svn_mapguide () osgeo ! org
Date:       2022-10-10 10:00:53
Message-ID: 20221010100055.882F7128BD1 () trac ! osgeo ! org
[Download RAW message or body]

Author: jng
Date: 2022-10-10 03:00:53 -0700 (Mon, 10 Oct 2022)
New Revision: 9973

Added:
   trunk/MgDev/Bindings/CMakeLists.txt
   trunk/MgDev/Bindings/setup_linux_native_libs.cmd
   trunk/MgDev/Bindings/setup_test_data.cmd
   trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/CMakeLists.txt
   trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/CMakeLists.txt
   trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/CMakeLists.txt
   trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/CMakeLists.txt
   trunk/MgDev/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/build/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/linux-x64/
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/readme-win-x64.txt
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/build/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/linux-x64/
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/readme-win-x64.txt
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/build/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/linux-x64/
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/readme-win-x64.txt
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/build/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/linux-x64/
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/readme-win-x64.txt
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/build/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/linux-x64/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/readme-win-x64.txt
  trunk/MgDev/Bindings/src/SwigCommon/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/ExternalTests/StandardCatchTest.cs
  trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/ByteReaderReadByChunksTest.cs
  trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/Properties/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/Properties/launchSettings.json
  trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/Properties/launchSettings.json
  trunk/MgDev/Bindings/src/Test/Java/extlib/ant-contrib.jar
   trunk/MgDev/Bindings/src/Tools/ClassMapGen/Properties/
   trunk/MgDev/Bindings/src/Tools/ClassMapGen/classids.i
   trunk/MgDev/Bindings/src/Tools/MgTestAdmin/
   trunk/MgDev/nuget.config
Removed:
   trunk/MgDev/Bindings/nuget.config
   trunk/MgDev/Bindings/src/Bindings/Common/
   trunk/MgDev/Bindings/src/Managed/DotNet/MapGuideDotNetApi/custom/MgClassMap.cs
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/README.txt
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/README.txt
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/README.txt
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/README.txt
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/README.txt
  trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommonFull/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApiFull/
   trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/classmap_master.json
   trunk/MgDev/Bindings/src/Tools/Tools.sln
   trunk/MgDev/UnitTest/WebTier/DotNet/
   trunk/MgDev/UnitTest/WebTier/Java/
   trunk/MgDev/UnitTest/WebTier/Php/
   trunk/MgDev/nuget/
Modified:
   trunk/MgDev/
   trunk/MgDev/Bindings/
   trunk/MgDev/Bindings/TODO.txt
   trunk/MgDev/Bindings/src/
   trunk/MgDev/Bindings/src/Bindings/Bindings.sln
   trunk/MgDev/Bindings/src/Bindings/CMakeLists.txt
   trunk/MgDev/Bindings/src/Bindings/DotNet/CMakeLists.txt
   trunk/MgDev/Bindings/src/Bindings/DotNet/DotNetUnmanagedApi.vcxproj
   trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/FoundationApi.vcxproj
   trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/FoundationApiGen.xml
   trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/GeometryApi.vcxproj
   trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/GeometryApiGen.xml
   trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/MapGuideCommonApi.vcxproj
   trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/MapGuideCommonApiGen.xml
   trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/PlatformBaseApi.vcxproj
   trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/PlatformBaseApiGen.xml
   trunk/MgDev/Bindings/src/Bindings/DotNet/README.md
   trunk/MgDev/Bindings/src/Bindings/DotNet/Web/WebApi.vcxproj
   trunk/MgDev/Bindings/src/Bindings/DotNet/Web/WebApiGen.xml
   trunk/MgDev/Bindings/src/Bindings/DotNet/dotnetcore.i
   trunk/MgDev/Bindings/src/Bindings/DotNet/dotnetcore_split.i
   trunk/MgDev/Bindings/src/Bindings/Java/JavaApi.vcxproj
   trunk/MgDev/Bindings/src/Bindings/Java/README.md
   trunk/MgDev/Bindings/src/Bindings/Java/java.i
   trunk/MgDev/Bindings/src/Bindings/MapGuideApi/MapGuideApiGen.xml
   trunk/MgDev/Bindings/src/Bindings/Php/PhpClassMap.cpp
   trunk/MgDev/Bindings/src/Bindings/Php/php.i
   trunk/MgDev/Bindings/src/CMakeLists.txt
   trunk/MgDev/Bindings/src/IMake/
   trunk/MgDev/Bindings/src/IMake/CMakeLists.txt
   trunk/MgDev/Bindings/src/IMake/IMake.cpp
   trunk/MgDev/Bindings/src/IMake/IMake.vcxproj
   trunk/MgDev/Bindings/src/Managed/DotNet/Common/MgClassMap.cs
   trunk/MgDev/Bindings/src/Managed/DotNet/MapGuideDotNetApi/MapGuideDotNetApi.csproj
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/OSGeo.MapGuide.Foundation.csproj
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/custom/ManagedException.cs
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/OSGeo.MapGuide.Geometry.csproj
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/OSGeo.MapGuide.MapGuideCommon.csproj
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/OSGeo.MapGuide.PlatformBase.csproj
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/OSGeo.MapGuide.Web.csproj
  trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/custom/EntryPoint.cs
   trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide/
   trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide/ObjectFactory.java
   trunk/MgDev/Bindings/src/Test/
   trunk/MgDev/Bindings/src/Test/DotNet/
   trunk/MgDev/Bindings/src/Test/DotNet/FullFramework.sln
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/TestCommon.csproj
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/TestResult.cs
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/MapTests.cs
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/MapGuideTestExecutorCollection.cs
  trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/TestMapGuideApi.csproj
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/Program.cs
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/TestMisc.csproj
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/TestMiscFull.csproj
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/Program.cs
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/Properties/launchSettings.json
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/TestRunner.csproj
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/
   trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/TestRunnerFull.csproj
   trunk/MgDev/Bindings/src/Test/Java/
   trunk/MgDev/Bindings/src/Test/Java/build.xml
   trunk/MgDev/Bindings/src/Test/Java/src/org/osgeo/mapguide/test/common/TestResult.java
  trunk/MgDev/Bindings/src/Test/Java/src/org/osgeo/mapguide/test/platform/operations/resource/SetResourceData.java
  trunk/MgDev/Bindings/src/Tools/ClassMapGen/
   trunk/MgDev/Bindings/src/Tools/ClassMapGen/ClassMapGen.csproj
   trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/Templates/dotnet.txt
   trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/Templates/java.txt
   trunk/MgDev/Bindings/src/Tools/ClassMapGen/Program.cs
   trunk/MgDev/Bindings/src/Tools/PhpPostProcess/
   trunk/MgDev/Bindings/src/Tools/PhpPostProcess/PhpPostProcess.csproj
   trunk/MgDev/Bindings/src/Tools/StampVer/
   trunk/MgDev/Bindings/src/Tools/StampVer/StampVer.csproj
   trunk/MgDev/Bindings/src/Tools/SwigPrepare/
   trunk/MgDev/Bindings/src/Tools/SwigPrepare/SwigPrepare.csproj
   trunk/MgDev/CMakeLists.txt
   trunk/MgDev/Common/CMakeLists.txt
   trunk/MgDev/Common/Foundation/CMakeLists.txt
   trunk/MgDev/Common/Foundation/Data/NamedCollection.h
   trunk/MgDev/Common/Foundation/Foundation.h
   trunk/MgDev/Common/Foundation/System/ClassFactory.cpp
   trunk/MgDev/Common/Foundation/System/DisposableCollection.h
   trunk/MgDev/Common/Foundation/System/FoundationClassId.h
   trunk/MgDev/Common/Foundation/System/Stream.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGridGeneric.h
   trunk/MgDev/Common/Geometry/GeometryClassId.h
   trunk/MgDev/Common/MapGuideCommon/Controller/Controller.h
   trunk/MgDev/Common/MapGuideCommon/Controller/DwfController.h
   trunk/MgDev/Common/MapGuideCommon/Controller/HtmlController.h
   trunk/MgDev/Common/MapGuideCommon/Resources/mapguide_en.res
   trunk/MgDev/Common/MapGuideCommon/Services/Command.cpp
   trunk/MgDev/Common/MapGuideCommon/Services/ConnectionProperties.h
   trunk/MgDev/Common/MapGuideCommon/Services/PrintLayout.h
   trunk/MgDev/Common/MapGuideCommon/Services/ServerConnection.h
   trunk/MgDev/Common/MapGuideCommon/Services/ServerInformation.h
   trunk/MgDev/Common/MapGuideCommon/Services/SqlResult.h
   trunk/MgDev/Common/MapGuideCommon/System/CryptographyManager.h
   trunk/MgDev/Common/MapGuideCommon/System/MapGuideCommonClassId.h
   trunk/MgDev/Common/MapGuideCommon/System/MapGuideCommonFactory.cpp
   trunk/MgDev/Common/PlatformBase/Data/Margin.h
   trunk/MgDev/Common/PlatformBase/Data/Point3D.h
   trunk/MgDev/Common/PlatformBase/Data/SerializableCollection.h
   trunk/MgDev/Common/PlatformBase/Data/Size2D.h
   trunk/MgDev/Common/PlatformBase/Data/Vector3D.h
   trunk/MgDev/Common/PlatformBase/Services/FeatureSet.h
   trunk/MgDev/Common/PlatformBase/Services/LockFeatures.h
   trunk/MgDev/Common/PlatformBase/Services/LongTransactionData.h
   trunk/MgDev/Common/PlatformBase/Services/PlatformBaseClassId.h
   trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/MapView.h
   trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/MapViewportBase.h
   trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutBase.h
   trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutElementBase.h
  trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutElementCollection.h
  trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutServiceBase.h
  trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PropertyMapping.h
   trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PropertyMappingCollection.h
  trunk/MgDev/Common/PlatformBase/Services/ServiceRegistry.cpp
   trunk/MgDev/Common/PlatformBase/Services/SpatialContextData.h
   trunk/MgDev/Common/PlatformBase/Services/Transaction.h
   trunk/MgDev/Common/PlatformBase/Services/UnlockFeatures.h
   trunk/MgDev/Common/PlatformBase/Services/Warnings.h
   trunk/MgDev/Oem/oem.sln
   trunk/MgDev/Server/src/Common/Manager/LoadBalanceManager.cpp
   trunk/MgDev/Server/src/Common/Manager/ServiceManager.cpp
   trunk/MgDev/Server/src/Core/OperationThread.cpp
   trunk/MgDev/Server/src/Services/Resource/ServerResourceService.cpp
   trunk/MgDev/UnitTest/TestData/FeatureService/FeatureServiceTest.dump
   trunk/MgDev/UnitTest/TestData/ResourceService/ResourceServiceTest.dump
   trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/BuildingOutlines.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/BuildingOutlines.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/CityLimits.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/CityLimits.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicLines.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicLines.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Islands.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Islands.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/LandUse.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/LandUse.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Parcels.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Parcels.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Rail.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Rail.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/RoadCenterLines.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/RoadCenterLines.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Soils.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Soils.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Trees.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Trees.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/VotingDistricts.FeatureSource_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/VotingDistricts.FeatureSource_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Aqua.ApplicationDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Aqua.ApplicationDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/LimeGold.ApplicationDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/LimeGold.ApplicationDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Maroon.ApplicationDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Maroon.ApplicationDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Slate.ApplicationDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Slate.ApplicationDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/SlateCommercial.ApplicationDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/SlateCommercial.ApplicationDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/TurquoiseYellow.ApplicationDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/TurquoiseYellow.ApplicationDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Buildings.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Buildings.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/CityLimits.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/CityLimits.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Districts.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Districts.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Hydrography.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Hydrography.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Islands.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Islands.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Parcels.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Parcels.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Roads.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Roads.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Soils.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Soils.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Tracks.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Tracks.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Trees.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/Trees.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Buildings.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Buildings.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/CityLimits.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/CityLimits.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Districts.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Districts.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Hydrography.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Hydrography.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Islands.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Islands.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Parcels.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Parcels.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Roads.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Roads.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Soils.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Soils.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Tracks.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Tracks.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Trees.LayerDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/Trees.LayerDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layers_Advanced/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/AdvancedStylization.WebLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/AdvancedStylization.WebLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganAsp.WebLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganAsp.WebLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganAspTiled.WebLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganAspTiled.WebLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganJsp.WebLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganJsp.WebLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganJspTiled.WebLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganJspTiled.WebLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganMap.PrintLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganMap.PrintLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganPhp.WebLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganPhp.WebLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganPhpTiled.WebLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganPhpTiled.WebLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganV26.WebLayout_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/SheboyganV26.WebLayout_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Layouts/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Maps/Sheboygan.MapDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Maps/Sheboygan.MapDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Maps/SheboyganCommercial.MapDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Maps/SheboyganCommercial.MapDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Maps/Sheboygan_Advanced.MapDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Maps/Sheboygan_Advanced.MapDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Maps/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/MapsTiled/Sheboygan.MapDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/MapsTiled/Sheboygan.MapDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/MapsTiled/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/BasicSymbols.SymbolLibrary_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/BasicSymbols.SymbolLibrary_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/Logos.SymbolLibrary_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/Logos.SymbolLibrary_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/Rail.SymbolDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/Rail.SymbolDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/Trees.SymbolDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/Trees.SymbolDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Symbols/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/TileSets/Sheboygan.TileSetDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/TileSets/Sheboygan.TileSetDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/TileSets/SheboyganXYZ.TileSetDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/TileSets/SheboyganXYZ.TileSetDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/TileSets/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/MapAdvancedText.WatermarkDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/MapAdvancedText.WatermarkDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/MapCommercialText.WatermarkDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/MapCommercialText.WatermarkDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/MapText.WatermarkDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/MapText.WatermarkDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/MapTiledText.WatermarkDefinition_CONTENT.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/MapTiledText.WatermarkDefinition_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Watermarks/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/_HEADER.xml
  trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/MgResourcePackageManifest.xml
   trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/build.sh
   trunk/MgDev/Web/src/CMakeLists.txt
   trunk/MgDev/Web/src/DevHttpServer/main.cpp
   trunk/MgDev/Web/src/HttpHandler/HttpHandlerClassId.h
   trunk/MgDev/Web/src/WebApp/WebAppClassId.h
   trunk/MgDev/Web/src/WebApp/WebBufferCommand.h
   trunk/MgDev/Web/src/WebApp/WebCommand.h
   trunk/MgDev/Web/src/WebApp/WebCommandCollection.h
   trunk/MgDev/Web/src/WebApp/WebCommandWidget.h
   trunk/MgDev/Web/src/WebApp/WebContextMenu.h
   trunk/MgDev/Web/src/WebApp/WebFlyoutWidget.h
   trunk/MgDev/Web/src/WebApp/WebGetPrintablePageCommand.h
   trunk/MgDev/Web/src/WebApp/WebHelpCommand.h
   trunk/MgDev/Web/src/WebApp/WebInformationPane.h
   trunk/MgDev/Web/src/WebApp/WebInvokeScriptCommand.h
   trunk/MgDev/Web/src/WebApp/WebInvokeUrlCommand.h
   trunk/MgDev/Web/src/WebApp/WebMeasureCommand.h
   trunk/MgDev/Web/src/WebApp/WebPrintCommand.h
   trunk/MgDev/Web/src/WebApp/WebSearchCommand.h
   trunk/MgDev/Web/src/WebApp/WebSelectWithinCommand.h
   trunk/MgDev/Web/src/WebApp/WebSeparatorWidget.h
   trunk/MgDev/Web/src/WebApp/WebTaskBar.h
   trunk/MgDev/Web/src/WebApp/WebTaskBarWidget.h
   trunk/MgDev/Web/src/WebApp/WebTaskPane.h
   trunk/MgDev/Web/src/WebApp/WebToolbar.h
   trunk/MgDev/Web/src/WebApp/WebUiPane.h
   trunk/MgDev/Web/src/WebApp/WebUiSizablePane.h
   trunk/MgDev/Web/src/WebApp/WebUiTargetCommand.h
   trunk/MgDev/Web/src/WebApp/WebViewOptionsCommand.h
   trunk/MgDev/Web/src/WebApp/WebWidget.h
   trunk/MgDev/Web/src/WebApp/WebWidgetCollection.h
   trunk/MgDev/Web/src/WebTier.sln
   trunk/MgDev/cmake/modules/FindMapGuideThirdparty.cmake
Log:
Merged revision(s) 9771-9811 from sandbox/jng/vanilla_swig:
Update test data with changes from GitHub
........
- Add batch file to setup test data
- Update test runners to target netcoreapp3.1
- Add missing nuget packages for test projects
- Fix up MgObjectFactory to scan assemblies in the current AppDomain for the \
                requested .net type instead of just the current assembly
........
We are seeing messages now in caught .net MgException instances
........
Update TODO
........
Updated TODO.txt
........
Yes, the wrapper instability was due to stubbing ACE_Recursive_Thread_Mutex as an \
empty class which presumably changed the assumed class layout from what is actually \
compiled into the libraries we're trying to wrap, causing all sorts of access \
violations as a result. So revert back to leaking the ACE_Recursive_Thread_Mutex \
                header and add ACE to include paths of affected projects.
........
We can do better than "class not found". Identify the class id that we can't find a \
                class factory for and include it in the exception.
........
Although the .net test suite is not fully passing. It is running to completion \
                against the split assembly layout. Progress is Progress!
........
Fix up MgException result processing. This now reduces our test failure count to just \
                4
........
Fix one of the failures in the .net test runner. The failing test was exercising the \
linked tile set restriction which is no longer valid as of MGOS 4.0, so the expected \
outcome has been inverted (we now expect creating a MgMap against a MDF with a linked \
                tile set to *succeed* now, not fail)
........
Fix 2 more test failures in .net test runner. This is due to package tests with bad \
input failing on the wrong exception type (we replaced the package loading code from \
DWF Toolkit to minizip, which changed what exception was thrown for bad/invalid zip \
                files)
........
- Make IMake x64 only in line with other projects in the Bindings.sln
- Parameterize more of the IMake invocation in the pre-build events
- Activate XML documentation for the .net wrapper projects
- Add .net memory stats for the test runner
- Add new .net tests to exercise MgException handling in the classic way and through \
                the use of exception filters on the specific exception code
........
- Consolidate Tools.sln into Bindings.sln and update all tool projects to target \
                netcoreapp3.1
- Check in MgTestAdmin, which is an updated version of SQLiteGUI for test database \
                administration
- Add mapguide_en.res as file content for TestMisc and TestRunner projects
- Fix MgInitializeWebTier to throw any pending exception if stashed. This fixes our \
                remaining test failure on Windows due to missing mapguide_en.res file
........
Add byte reader piecemeal test
........
Fix up Java test runner to build and run properly (it is not passing, we'll deal with \
                that later)
........
- Fix up Java binding to reflect the new flattened exception hierarchy. The java \
                runner now runs to completion on windows with all tests passing.
- Implement java.lang.AutoCloseable for candidate classes with a close() method
- Update README.md for the .net binding
- Remove old webtier test code (as it is all superceded by the new test suite)
- Fix C++ stack order in .net ManagedException (.net is upwards, C++ was downwards)
........
Kill the legacy nuget package sources
........
Add .net test runner switch to skip main SQLite test suite and only run the auxiliary \
                tests
........
Add .targets file to our 5 .net projects to ensure native deps are copied out when \
                said project is consumed form a legacy (full) .net framework project.
........
Remove full versions of TestCommon and TestMapGuideApi as their netstandard2.0 \
                counterparts are already consumable by the full framework test runner
........
Rename Common to SwigCommon for better clarity (this houses common and \
                language-specific SWIG typemaps/modules)
........
Change mg_exception_callback to take the class id instead of class name (as we no \
longer need that because of the flattened exception hierarchy). Use this class id to \
locate the MgException proxy class without needing another P/Invoke back across the \
native boundary to call GetClassId() for it. 

As a result, for thrown exceptions, we only wear the P/Invoke cost of the \
mg_exception_callback and whatever overhead for marshaling a pointer and an int \
instead of a pointer and a string and avoid a redundant GetClassId() P/Invoke when \
                resolving the MgException proxy CLR type.
........
Due to java's strict package/directory 1:1 mapping requirement and javac's inability \
to accept glob expressions, it is actually difficult to move our non-autogen'd java \
classes to a sub package and still be able to compile everything from a single javac \
call. So instead we'll just bulk ignore all *.java files and hope that SVN will still \
                respect the .java files already checked in
........
Update IMake to re-map exception documentation to output MgException with every \
possible exception code.

Also fix bad pre-build in PlatformBaseApi that caused MgMdfParser.dll to not be \
                copied over, resulting in a nuget package with un-met native \
                dependencies.
........
Wall off class id inclusion behind a MG_CLASSIDGEN pre-processor flag
........
- Update ClassMapGen to run SWIG in XML mode as a pre-build. Use this SWIG XML file \
as the input for class map generation. This means we no longer need \
                classmap_master.json
- Move SwigCommon up one level
........
- Update .net test suite with a sanity check that all the class ids extracted by \
                ClassMapGen map to types that actually exist in our 5 .net assemblies
- Update MgClassMap template to do a name -> id reverse test to make sure that we \
                haven't accidentally double-registered the same type name under \
                different class ids
- Update ObjectFactory.java template to throw a better error if we cannot resolve a \
                java proxy class from the C++ pointer
- Add upstream dependent projects to Bindings.sln so we don't have to build said \
                projects in Server.sln or WebTier.sln first
- Check in regenerated class maps
- Delete classmap_master.json as that is no longer necessary
........
With the advent of generating class id maps automatically via SWIG's XML mode + \
ClassMapGen tool, it has revealed several inconsistencies in class id naming \
conventions that would've been brought up earlier had we not been using a heavily \
modified version of swig to read and generate this class id information previously.

This submission renames several sets of class ids to:

 1. Indicate it is not actually used by anything (these are prefixed with UNUSED_)
 2. Indicate it is used by a class that is not exposed to the public MapGuide API \
surface (these are prefixed with INTERNAL_)  3. Indicate it is used by a proxy class \
(these are prefixed with PROXY_)  4. Be consistent with the expecting naming \
convention of: <Library>_<Category>_<ClassName> or <Library>_<ClassName>

Our ClassMapGen tool is already written to only process class ids with this naming \
convention, thus adding the UNUSED_ or INTERNAL_ or PROXY_ prefix will result in \
these ids being skipped and not be written to the final class id mapping file in \
java/php/.net

All our exception class ids (with the exception (pun intended) of MgException) have \
been prefixed with UNUSED_. In the process of doing this, we inadvertently exposed \
several cases in the networking layer where we were catching exceptions and was still \
interrogating its type by class id instead of by the new GetExceptionCode() API. This \
may we be the cause of some site service failures we had to previously disable. Will \
                check up later on to see if this the case.
........
Remove legacy binding projects from WebTier.sln (actual files will be removed later). \
                Also fix up exception type testing in MgDevHttpServer
........
Remove SQLite projects from Oem (actual files to be removed later)
........
Confirmed that the .net/java bindings still generate, build and test passing after \
                upgrading to SWIG 4.0.2
........
Rework class map setup on .net so that it mirrors its java ObjectFactory counterpart, \
which is that we don't build a dictionary of class id -> class name, which then \
requires a class id -> class name -> .net type constructor lookup at runtime. 

Instead build a dictionary of class id -> .net type constructor. If we missed a \
class, it will manifest as an exception in MgClassMap's static ctor rather than fail \
later on.

By doing this, we have effectively replicated the class id sanity test (the act of \
successfully obtaining a .net type constructor *is* testing that said class exists in \
.net) and as a result that test is now redundant, so it has been removed from the \
.net test suite.

We also have a nice benefit of avoiding having to do repeated .net \
assembly/constructor lookups on every MgObjectFactory.CreateObject() invocation as \
                that is now all cached in the auto-generated MgClassMap.
........
Get Foundation .net glue library building on the Linux side
........
Get Geometry/PlatformBase/MapGuideCommon .net glue libraries building on the Linux \
                side
........
Get Web .net glue library building on the Linux side
........
Fix up linkages
........
Add setup script to help deploy MapGuide linux libraries to the right place for nuget \
                packaging
........
Fix incorrect dependency chain causing a clean build of Bindings.sln to fail
........
Fix up pre-build of Foundation and PlatformBase glue libs copying incorrect \
                dependencies
........
Move packages dir up one level
........
Our nuget packages were bloating up due to the .so symlinks being followed in the \
nuget package creation step resulting in effectively duplicate linux binaries being \
bundled. Upon further analysis, these .so symlinks are not necessary (phew!) as the \
glue library links against the version-suffixed .so files anyways, so tweak the linux \
                native lib setup script to not copy symlinks into the required \
                staging areas.
........


Index: trunk/MgDev
===================================================================
--- trunk/MgDev	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+packages
Modified: svn:mergeinfo
## -41,6 +41,6 ##
 /sandbox/jng/utfgrid:9179-9212
 /sandbox/jng/v30:8212-8227
 /sandbox/jng/v4:9511-9519
-/sandbox/jng/vanilla_swig:9757-9770
+/sandbox/jng/vanilla_swig:9757-9811
 /sandbox/jng/wfs_hits:9569-9577
 /sandbox/rfc94:5099-5163
\ No newline at end of property
Index: trunk/MgDev/Bindings
===================================================================
--- trunk/MgDev/Bindings	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings
___________________________________________________________________
Modified: svn:ignore
## -1 +1 ##
-packages
+linux-x64
Copied: trunk/MgDev/Bindings/CMakeLists.txt (from rev 9811, \
sandbox/jng/vanilla_swig/Bindings/CMakeLists.txt) \
                ===================================================================
--- trunk/MgDev/Bindings/CMakeLists.txt	                        (rev 0)
+++ trunk/MgDev/Bindings/CMakeLists.txt	2022-10-10 10:00:53 UTC (rev 9973)
@@ -0,0 +1 @@
+add_subdirectory(src)
\ No newline at end of file

Modified: trunk/MgDev/Bindings/TODO.txt
===================================================================
--- trunk/MgDev/Bindings/TODO.txt	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/TODO.txt	2022-10-10 10:00:53 UTC (rev 9973)
@@ -1,29 +1,48 @@
- - Check that .net error messages are being read \
(https://github.com/jumpinjackie/mapguide-api-bindings/issues/35) + - [x] Check that \
.net error messages are being read \
(https://github.com/jumpinjackie/mapguide-api-bindings/issues/35) + - [x] Explore \
whether our current instability is due to invalid class layout assumptions due to \
stubbing ACE_Recursive_Thread_Mutex to avoid leaking ACE headers + - [x] Generate XML \
documentation for our .net wrapper binding projects + - [ ] Make sure we can build \
debug bindings + - [x] Fix up inconsistent stack direction in C# exceptions (C++ call \
stack are printed downwards, C# call stack is printed upwards) + - [ ] Add memory \
leak test (ref: http://osgeo-org.1560.x6.nabble.com/Memory-Leak-in-Java-td5425579.html) \
and see if this still happens + - [x] Check in test case admin tool
+ - [x] Consolidate Tools.sln into Bindings.sln
+ - [ ] Relocate/remove existing test code
+ - [x] Move packages dir up to to top-level MgDev subdirectory and make sure \
                nuget.config sources from this dir
  - Split .net binding into the Foundation/Geometry/PlatformBase/MapGuideCommon/Web \
                layout \
                (https://github.com/jumpinjackie/mapguide-api-bindings/issues/18)
-   - [ ] Add CentOS 6 Dockerfile that
-      - Install SWIG and common libs tarball (from docker build system)
-      - Install same compilers/tools as the same docker image used to produce the \
                common libs tarball
-      - Generate and build the .net/Java SWIG glue libraries
-      - Copy the compiled libs out of the docker container and into the same native \
                library staging area for Java/.net
-   - [ ] Refactor current .net test suite to reference these nuget packages
-      - [ ] Verify test suite still passes (Windows)
+   - [x] Add .targets files to each C# project so that native dlls are copied \
properly when consumed by legacy .net framework applications/libraries +   - [x] \
Consolidate TestCommon and TestMapGuideApi .net projects to unified netstandard2.0 \
libraries +   - [x] Tidy mg_exception_callback to no longer take an exception class \
name argument (it is no longer used or necessary) +   - [x] Add sanity test for all \
class ids generated by ClassMapGen +   - Either
+      - ( ) Add CentOS 6 Dockerfile that
+        - Install SWIG and common libs tarball (from docker build system)
+        - Install same compilers/tools as the same docker image used to produce the \
common libs tarball +        - Generate and build the .net/Java SWIG glue libraries
+        - Copy the compiled libs out of the docker container and into the same \
native library staging area for Java/.net +      - (x) OR: Update our common libs \
dockerfile in (https://github.com/jumpinjackie/mapguide-fdo-docker-build) to perform \
the above tasks +   - [x] Refactor current .net test suite to reference these nuget \
packages +      - [x] Verify test suite still passes (Windows)
+      - [x] Verify test suite still passes (Windows, legacy .net Framework)
       - [ ] Verify test suite still passes (Linux)
+   - [ ] Remove monolithic binding upon verification of test suite across all \
                supported platforms
  - Automatic class id generation \
                (https://github.com/jumpinjackie/mapguide-api-bindings/issues/34)
-   - [ ] Add SWIG preprocessor that controls whether the class id header should be \
                included
-   - [ ] Run SWIG in XML mode to produce an XML of the MapGuide API surface
-   - [ ] Update ClassMapGen tool to generate class id files for .net/Java/PHP based \
on this XML file +   - [x] Add SWIG preprocessor that controls whether the class id \
header should be included +   - [x] Run SWIG in XML mode to produce an XML of the \
MapGuide API surface +   - [x] Update ClassMapGen tool to generate class id files for \
.net/Java/PHP based on this XML file + - [x] Because we've flattened the exception \
hierarchy, IMake needs to rewrite \exception directives to say in [Java/C#] that it \
                throws MgException with any of the following exception codes
  - Test Suite
-   - [ ] Sync up current test data under /UnitTest to match what is in GitHub repo
-   - [ ] Add test data setup script for .net/Java test suites to copy the synced up \
test data under /UnitTest to the location the test suite is expecting +   - [x] Sync \
up current test data under /UnitTest to match what is in GitHub repo +   - [x] Add \
test data setup script for .net/Java test suites to copy the synced up test data \
under /UnitTest to the location the test suite is expecting +   - [ ] Try using \
                beta/prerelease DockPanelSuite for MgTestAdmin
  - Java binding
-   - [ ] Re-shuffle MgBase64 and AppThrowable to a .internal package (so we can bulk \
                svn ignore *.java/*.class in the current dir where sources are \
                generated)
-   - [ ] Verify test suite still passes (Windows)
+   - [ ] Running javadoc against the generated sources produces many errors. See if \
we can fix them +   - [x] Verify test suite still passes (Windows)
    - [ ] Verify test suite still passes (Linux)
- - Migrate to SWIG 4.0.0 \
(https://github.com/jumpinjackie/mapguide-api-bindings/issues/36) + - [x] Migrate to \
                SWIG 4.0.2 \
                (https://github.com/jumpinjackie/mapguide-api-bindings/issues/36)
    - [ ] Check if we can get rid of custom .net wstring marshaler (presumably SWIG \
                4.0 has better support in this area)
  - PHP 7 binding (https://github.com/jumpinjackie/mapguide-api-bindings/issues/21)
    - [ ] Re-base work against PHP 7.4
-      - [ ] If this means we have to upgrade VS compiler from 2015, push an RFC to \
do that +      - [ ] If this means we have to upgrade VS compiler from 2015, just \
                upgrade this one project
    - [ ] Make sure downcasting still works (eg. MgSiteConnection::CreateService \
                returns an appropriate MgService-derived subclass and not MgService)
    - [ ] Make sure that our byte typemaps still work (test APIs that deal with \
                MgByteReader)
    - [ ] Make sure we can throw MgException
@@ -34,4 +53,39 @@
    - [ ] Put all the generated code under a OSGeo\MapGuide namespace
    - [ ] Get it building (Linux)
    - [ ] Verify test suite still passes (Windows)
-   - [ ] Verify test suite still passes (Linux)
\ No newline at end of file
+   - [ ] Verify test suite still passes (Linux)
+ - Fix up existing web apps
+   - [ ] mapviewerjava
+   - [ ] mapviewerphp
+   - [ ] schemareport
+   - [ ] mapadmin
+   - [ ] fusion
+   - [ ] mapviewernet
+     - If raw .aspx files cannot consume our netstandard2.0 package, convert this to \
a legacy ASP.net web forms project +        - Will require installer changes to \
properly register this ASP.net application +     - If the above is untenable, rewrite \
mapviewernet as a Razor Pages application +   - [ ] MapGuide Developer's Guide
+   - [ ] viewer samples (PHP)
+   - [ ] viewer samples (Java)
+   - [ ] viewer samples (.net)
+     - Give the .net viewer samples the same migration plan as mapviewernet
+ - Revise API documentation strategy
+   - [ ] Don't use doxygen. Instead use the appropriate docgen tool for the \
languages we support: +     - PHP: phpDocumentor (https://phpdoc.org/)
+     - Java: javadoc (part of the JDK)
+     - .net: docfx (https://dotnet.github.io/docfx/)
+   - [ ] Implement a static umbrella landing site that is the gateway to the 3 \
generated outputs + - mg-desktop
+   - [ ] Rename to MgPortable/mg-portable
+   - [ ] Add SWIG glue library that layers on top of the existing \
Foundation/Geometry/PlatformBase glue projects +   - [ ] Add new \
OSGeo.MapGuide.Portable .net project for the .net portion of the SWIG glue +   - [ ] \
Implement a sample asp.net core application that confirms the feasibility of using \
mg-portable for web applications in addition to desktop applications +   - Either: 
+     - ( ) Migrate the viewer winforms library to target .net 5.0
+     - ( ) Or maintain 2 versions of this library, a new .net 5.0 version of the \
library and a legacy full framework version +   - [ ] Port over Java binding
+ - Old code cleanup/consolidation
+   - [ ] Remove old IMake
+   - [ ] Remove old binding projects from WebTier
+   - [ ] Fold FoundationTest into mgserver test suite
+   - [ ] Remove SQLite and its related projects from Oem
\ No newline at end of file

Deleted: trunk/MgDev/Bindings/nuget.config
===================================================================
--- trunk/MgDev/Bindings/nuget.config	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/nuget.config	2022-10-10 10:00:53 UTC (rev 9973)
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
-    <packageSources>
-        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" \
                protocolVersion="3" />
-        <add key="local" value="packages/DotNet/Release" />
-    </packageSources>
-    <config>
-        <add key="globalPackagesFolder" value="packages/Installed" />
-    </config>
-</configuration>
\ No newline at end of file

Copied: trunk/MgDev/Bindings/setup_linux_native_libs.cmd (from rev 9811, \
sandbox/jng/vanilla_swig/Bindings/setup_linux_native_libs.cmd) \
                ===================================================================
--- trunk/MgDev/Bindings/setup_linux_native_libs.cmd	                        (rev 0)
+++ trunk/MgDev/Bindings/setup_linux_native_libs.cmd	2022-10-10 10:00:53 UTC (rev \
9973) @@ -0,0 +1,25 @@
+SET TARBALL=%1
+SET SOVER=4.0.0
+7z x %TARBALL% -so | 7z x -aoa -si -ttar -o"linux-x64"
+rem Foundation setup
+copy /Y /L linux-x64\lib64\libFoundationUnmanagedApi.so \
src\Managed\DotNet\OSGeo.MapGuide.Foundation\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libMgFoundation-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.Foundation\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libMgMdfModel-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.Foundation\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libACE.so.6.2.6 \
src\Managed\DotNet\OSGeo.MapGuide.Foundation\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libxerces-c-3.1.so \
src\Managed\DotNet\OSGeo.MapGuide.Foundation\runtimes\linux-x64\native +rem Geometry \
setup +copy /Y /L linux-x64\lib64\libGeometryUnmanagedApi.so \
src\Managed\DotNet\OSGeo.MapGuide.Geometry\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libMgGeometry-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.Geometry\runtimes\linux-x64\native +rem \
PlatformBase setup +copy /Y /L linux-x64\lib64\libPlatformBaseUnmanagedApi.so \
src\Managed\DotNet\OSGeo.MapGuide.PlatformBase\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libMgPlatformBase-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.PlatformBase\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libMgMdfParser-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.PlatformBase\runtimes\linux-x64\native +rem \
MapGuideCommon setup +copy /Y /L linux-x64\lib64\libMapGuideCommonUnmanagedApi.so \
src\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\runtimes\linux-x64\native +copy /Y \
/L linux-x64\lib64\libMgMapGuideCommon-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\runtimes\linux-x64\native +rem Web \
setup +copy /Y /L linux-x64\lib64\libWebUnmanagedApi.so \
src\Managed\DotNet\OSGeo.MapGuide.Web\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libMgWebApp-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.Web\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libMgWebSupport-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.Web\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\libMgHttpHandler-%SOVER%.so \
src\Managed\DotNet\OSGeo.MapGuide.Web\runtimes\linux-x64\native +copy /Y /L \
linux-x64\lib64\liblib_json.so \
src\Managed\DotNet\OSGeo.MapGuide.Web\runtimes\linux-x64\native \ No newline at end \
of file

Copied: trunk/MgDev/Bindings/setup_test_data.cmd (from rev 9811, \
sandbox/jng/vanilla_swig/Bindings/setup_test_data.cmd) \
                ===================================================================
--- trunk/MgDev/Bindings/setup_test_data.cmd	                        (rev 0)
+++ trunk/MgDev/Bindings/setup_test_data.cmd	2022-10-10 10:00:53 UTC (rev 9973)
@@ -0,0 +1 @@
+xcopy /S /Y /I ..\UnitTest\TestData src\TestData
\ No newline at end of file

Index: trunk/MgDev/Bindings/src
===================================================================
--- trunk/MgDev/Bindings/src	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src
___________________________________________________________________
Modified: svn:ignore
## -1,2 +1,3 ##
+TestData
 lib
 obj
Modified: trunk/MgDev/Bindings/src/Bindings/Bindings.sln
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/Bindings.sln	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/Bindings.sln	2022-10-10 10:00:53 UTC (rev 9973)
@@ -5,7 +5,14 @@
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DotNetUnmanagedApi", \
"DotNet\DotNetUnmanagedApi.vcxproj", "{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}"  \
ProjectSection(ProjectDependencies) = postProject \
+		{795B1B0E-4EC8-469D-B641-E26324266FBF} = {795B1B0E-4EC8-469D-B641-E26324266FBF} \
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44} = {78619D0E-D3F9-4DDF-B90E-F99CB03DFC44} \
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4} = {F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}  \
{B601F04C-0D42-4AFC-A092-B31185E2EA8C} = {B601F04C-0D42-4AFC-A092-B31185E2EA8C} \
+		{B797917B-6842-467C-8B14-E00B76A91247} = {B797917B-6842-467C-8B14-E00B76A91247} \
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425} = {A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425} \
+		{5287A594-4D4F-43FE-A281-E279AB708CF1} = {5287A594-4D4F-43FE-A281-E279AB708CF1} \
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0} = {D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}  \
EndProjectSection  EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IMake", \
"..\IMake\IMake.vcxproj", "{B601F04C-0D42-4AFC-A092-B31185E2EA8C}" @@ -40,6 +47,7 @@
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FoundationApi", \
"DotNet\Foundation\FoundationApi.vcxproj", "{73C62FF2-C188-4A61-929E-2F112D7E17AA}"  \
ProjectSection(ProjectDependencies) = postProject  \
{B601F04C-0D42-4AFC-A092-B31185E2EA8C} = {B601F04C-0D42-4AFC-A092-B31185E2EA8C} \
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425} = {A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}  \
EndProjectSection  EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OSGeo.MapGuide.Foundation", \
"..\Managed\DotNet\OSGeo.MapGuide.Foundation\OSGeo.MapGuide.Foundation.csproj", \
"{120AC2A9-5EBE-4512-9FF7-54EA04192196}" @@ -50,6 +58,7 @@
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GeometryApi", \
"DotNet\Geometry\GeometryApi.vcxproj", "{B994F673-EB8E-4C65-8884-B56AB8783115}"  \
ProjectSection(ProjectDependencies) = postProject  \
{B601F04C-0D42-4AFC-A092-B31185E2EA8C} = {B601F04C-0D42-4AFC-A092-B31185E2EA8C} \
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0} = {D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}  \
{73C62FF2-C188-4A61-929E-2F112D7E17AA} = {73C62FF2-C188-4A61-929E-2F112D7E17AA}  \
EndProjectSection  EndProject
@@ -60,6 +69,7 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PlatformBaseApi", \
"DotNet\PlatformBase\PlatformBaseApi.vcxproj", \
"{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}"  ProjectSection(ProjectDependencies) = \
postProject +		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4} = \
{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}  {B994F673-EB8E-4C65-8884-B56AB8783115} = \
{B994F673-EB8E-4C65-8884-B56AB8783115}  {73C62FF2-C188-4A61-929E-2F112D7E17AA} = \
{73C62FF2-C188-4A61-929E-2F112D7E17AA}  EndProjectSection
@@ -73,6 +83,7 @@
 	ProjectSection(ProjectDependencies) = postProject
 		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B} = {3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}
 		{B994F673-EB8E-4C65-8884-B56AB8783115} = {B994F673-EB8E-4C65-8884-B56AB8783115}
+		{5287A594-4D4F-43FE-A281-E279AB708CF1} = {5287A594-4D4F-43FE-A281-E279AB708CF1}
 		{73C62FF2-C188-4A61-929E-2F112D7E17AA} = {73C62FF2-C188-4A61-929E-2F112D7E17AA}
 	EndProjectSection
 EndProject
@@ -88,9 +99,12 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebApi", \
"DotNet\Web\WebApi.vcxproj", "{C83BF842-ABB1-4870-8003-11EF860E6741}"  \
ProjectSection(ProjectDependencies) = postProject \
+		{795B1B0E-4EC8-469D-B641-E26324266FBF} = {795B1B0E-4EC8-469D-B641-E26324266FBF}  \
{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B} = {3BAE3F0E-8F3F-404B-B29B-5881C16BD33B} \
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44} = {78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}  \
{B601F04C-0D42-4AFC-A092-B31185E2EA8C} = {B601F04C-0D42-4AFC-A092-B31185E2EA8C}  \
{B994F673-EB8E-4C65-8884-B56AB8783115} = {B994F673-EB8E-4C65-8884-B56AB8783115} \
+		{B797917B-6842-467C-8B14-E00B76A91247} = {B797917B-6842-467C-8B14-E00B76A91247}  \
{4A3F2DA2-F53F-48EE-9505-8285F3E089D4} = {4A3F2DA2-F53F-48EE-9505-8285F3E089D4}  \
{73C62FF2-C188-4A61-929E-2F112D7E17AA} = {73C62FF2-C188-4A61-929E-2F112D7E17AA}  \
{42FC41FD-742B-4AED-816E-C211F1B07F3F} = {42FC41FD-742B-4AED-816E-C211F1B07F3F} @@ \
-98,118 +112,352 @@  EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "split", "split", \
"{025034E6-A625-427B-AA99-5158095ED5F9}"  EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClassMapGen", \
"..\Tools\ClassMapGen\ClassMapGen.csproj", "{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}" \
+EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PhpPostProcess", \
"..\Tools\PhpPostProcess\PhpPostProcess.csproj", \
"{42199427-9825-4A45-A3D1-5C3090C57035}" +EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StampVer", \
"..\Tools\StampVer\StampVer.csproj", "{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}" \
+EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SwigPrepare", \
"..\Tools\SwigPrepare\SwigPrepare.csproj", "{27210DB6-811B-4D4E-A7E0-6488E5AFA733}" \
+EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MgTestAdmin", \
"..\Tools\MgTestAdmin\MgTestAdmin.csproj", "{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}" \
+EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wrap Dependencies", \
"Wrap Dependencies", "{8CF61B8E-3BE0-4F25-B663-DFB082A67F00}" +EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Geometry", \
"..\..\..\Common\Geometry\Geometry.vcxproj", "{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}" \
+EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", \
"..\..\..\Common\Foundation\Foundation.vcxproj", \
"{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}" +EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MapGuideCommon", \
"..\..\..\Common\MapGuideCommon\MapGuideCommon.vcxproj", \
"{5287A594-4D4F-43FE-A281-E279AB708CF1}" +EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MdfModel", \
"..\..\..\Common\MdfModel\MdfModel.vcxproj", "{C50254F2-654A-48DE-AF5B-20605AEF8D10}" \
+EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MdfParser", \
"..\..\..\Common\MdfParser\MdfParser.vcxproj", \
"{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}" +EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PlatformBase", \
"..\..\..\Common\PlatformBase\PlatformBase.vcxproj", \
"{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}" +EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HttpHandler", \
"..\..\..\Web\src\HttpHandler\HttpHandler.vcxproj", \
"{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}" +EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebApp", \
"..\..\..\Web\src\WebApp\WebApp.vcxproj", "{B797917B-6842-467C-8B14-E00B76A91247}" \
+EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebSupport", \
"..\..\..\Web\src\WebSupport\WebSupport.vcxproj", \
"{795B1B0E-4EC8-469D-B641-E26324266FBF}" +EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Security", \
"..\..\..\Common\Security\Security.vcxproj", "{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}" \
+EndProject  Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
 		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
 		Release|Any CPU = Release|Any CPU
 		Release|x64 = Release|x64
+		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}.Debug|x64.ActiveCfg = Debug|x64
 		{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}.Debug|x64.Build.0 = Debug|x64
+		{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}.Debug|x86.ActiveCfg = Debug|x64
 		{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}.Release|Any CPU.ActiveCfg = Release|x64
 		{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}.Release|x64.ActiveCfg = Release|x64
 		{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}.Release|x64.Build.0 = Release|x64
-		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|Any CPU.ActiveCfg = Debug|Win32
-		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|x64.ActiveCfg = Debug|Win32
-		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|x64.Build.0 = Debug|Win32
-		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|x64.Deploy.0 = Debug|Win32
-		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|Any CPU.ActiveCfg = Release|Win32
-		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x64.ActiveCfg = Release|Win32
-		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x64.Build.0 = Release|Win32
-		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x64.Deploy.0 = Release|Win32
+		{FDC09E9D-72BB-4C74-B88B-727D9D1D6C4E}.Release|x86.ActiveCfg = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|x64.ActiveCfg = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|x86.ActiveCfg = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|Any CPU.ActiveCfg = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x64.ActiveCfg = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x64.Build.0 = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x64.Deploy.0 = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x86.ActiveCfg = Release|x64
 		{696D2664-D17F-4357-8A19-2B5DC4B29962}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{696D2664-D17F-4357-8A19-2B5DC4B29962}.Debug|x64.ActiveCfg = Debug|x64
 		{696D2664-D17F-4357-8A19-2B5DC4B29962}.Debug|x64.Build.0 = Debug|x64
+		{696D2664-D17F-4357-8A19-2B5DC4B29962}.Debug|x86.ActiveCfg = Debug|x64
 		{696D2664-D17F-4357-8A19-2B5DC4B29962}.Release|Any CPU.ActiveCfg = Release|x64
 		{696D2664-D17F-4357-8A19-2B5DC4B29962}.Release|x64.ActiveCfg = Release|x64
 		{696D2664-D17F-4357-8A19-2B5DC4B29962}.Release|x64.Build.0 = Release|x64
+		{696D2664-D17F-4357-8A19-2B5DC4B29962}.Release|x86.ActiveCfg = Release|x64
 		{C02F44CB-D916-428D-A1A5-04E225A2A4EC}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{C02F44CB-D916-428D-A1A5-04E225A2A4EC}.Debug|x64.ActiveCfg = Debug|x64
 		{C02F44CB-D916-428D-A1A5-04E225A2A4EC}.Debug|x64.Build.0 = Debug|x64
+		{C02F44CB-D916-428D-A1A5-04E225A2A4EC}.Debug|x86.ActiveCfg = Debug|x64
 		{C02F44CB-D916-428D-A1A5-04E225A2A4EC}.Release|Any CPU.ActiveCfg = Release|x64
 		{C02F44CB-D916-428D-A1A5-04E225A2A4EC}.Release|x64.ActiveCfg = Release|x64
 		{C02F44CB-D916-428D-A1A5-04E225A2A4EC}.Release|x64.Build.0 = Release|x64
+		{C02F44CB-D916-428D-A1A5-04E225A2A4EC}.Release|x86.ActiveCfg = Release|x64
 		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Debug|x64.Build.0 = Debug|Any CPU
+		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Debug|x86.Build.0 = Debug|Any CPU
 		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Release|Any CPU.Build.0 = Release|Any CPU
 		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Release|x64.ActiveCfg = Release|Any CPU
 		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Release|x64.Build.0 = Release|Any CPU
+		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Release|x86.ActiveCfg = Release|Any CPU
+		{4A3F2DA2-F53F-48EE-9505-8285F3E089D4}.Release|x86.Build.0 = Release|Any CPU
 		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|x64.ActiveCfg = Debug|x64
 		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|x64.Build.0 = Debug|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|x86.ActiveCfg = Debug|x64
 		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|Any CPU.ActiveCfg = Release|x64
 		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|x64.ActiveCfg = Release|x64
 		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|x64.Build.0 = Release|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|x86.ActiveCfg = Release|x64
 		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Debug|x64.Build.0 = Debug|Any CPU
+		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Debug|x86.Build.0 = Debug|Any CPU
 		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Release|Any CPU.Build.0 = Release|Any CPU
 		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Release|x64.ActiveCfg = Release|Any CPU
 		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Release|x64.Build.0 = Release|Any CPU
+		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Release|x86.ActiveCfg = Release|Any CPU
+		{120AC2A9-5EBE-4512-9FF7-54EA04192196}.Release|x86.Build.0 = Release|Any CPU
 		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|x64.ActiveCfg = Debug|x64
 		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|x64.Build.0 = Debug|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|x86.ActiveCfg = Debug|x64
 		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|Any CPU.ActiveCfg = Release|x64
 		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|x64.ActiveCfg = Release|x64
 		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|x64.Build.0 = Release|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|x86.ActiveCfg = Release|x64
 		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Debug|x64.Build.0 = Debug|Any CPU
+		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Debug|x86.Build.0 = Debug|Any CPU
 		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Release|Any CPU.Build.0 = Release|Any CPU
 		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Release|x64.ActiveCfg = Release|Any CPU
 		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Release|x64.Build.0 = Release|Any CPU
+		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Release|x86.ActiveCfg = Release|Any CPU
+		{15A784CC-1DA1-4AF2-81EA-D9EABCD4B760}.Release|x86.Build.0 = Release|Any CPU
 		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|x64.ActiveCfg = Debug|x64
 		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|x64.Build.0 = Debug|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|x86.ActiveCfg = Debug|x64
 		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|Any CPU.ActiveCfg = Release|x64
 		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|x64.ActiveCfg = Release|x64
 		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|x64.Build.0 = Release|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|x86.ActiveCfg = Release|x64
 		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Debug|x64.Build.0 = Debug|Any CPU
+		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Debug|x86.Build.0 = Debug|Any CPU
 		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Release|Any CPU.Build.0 = Release|Any CPU
 		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Release|x64.ActiveCfg = Release|Any CPU
 		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Release|x64.Build.0 = Release|Any CPU
+		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Release|x86.ActiveCfg = Release|Any CPU
+		{80D0D30B-A9E1-464B-93ED-0EFEAD4EE102}.Release|x86.Build.0 = Release|Any CPU
 		{42FC41FD-742B-4AED-816E-C211F1B07F3F}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{42FC41FD-742B-4AED-816E-C211F1B07F3F}.Debug|x64.ActiveCfg = Debug|x64
 		{42FC41FD-742B-4AED-816E-C211F1B07F3F}.Debug|x64.Build.0 = Debug|x64
+		{42FC41FD-742B-4AED-816E-C211F1B07F3F}.Debug|x86.ActiveCfg = Debug|x64
 		{42FC41FD-742B-4AED-816E-C211F1B07F3F}.Release|Any CPU.ActiveCfg = Release|x64
 		{42FC41FD-742B-4AED-816E-C211F1B07F3F}.Release|x64.ActiveCfg = Release|x64
 		{42FC41FD-742B-4AED-816E-C211F1B07F3F}.Release|x64.Build.0 = Release|x64
+		{42FC41FD-742B-4AED-816E-C211F1B07F3F}.Release|x86.ActiveCfg = Release|x64
 		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Debug|x64.Build.0 = Debug|Any CPU
+		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Debug|x86.Build.0 = Debug|Any CPU
 		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Release|x64.ActiveCfg = Release|Any CPU
 		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Release|x64.Build.0 = Release|Any CPU
+		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Release|x86.ActiveCfg = Release|Any CPU
+		{B4C52243-CBA3-4FB7-BB22-4D44331D6058}.Release|x86.Build.0 = Release|Any CPU
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Debug|x64.Build.0 = Debug|Any CPU
+		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Debug|x86.Build.0 = Debug|Any CPU
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Release|Any CPU.Build.0 = Release|Any CPU
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Release|x64.ActiveCfg = Release|Any CPU
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Release|x64.Build.0 = Release|Any CPU
+		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Release|x86.ActiveCfg = Release|Any CPU
+		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE}.Release|x86.Build.0 = Release|Any CPU
 		{C83BF842-ABB1-4870-8003-11EF860E6741}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{C83BF842-ABB1-4870-8003-11EF860E6741}.Debug|x64.ActiveCfg = Debug|x64
 		{C83BF842-ABB1-4870-8003-11EF860E6741}.Debug|x64.Build.0 = Debug|x64
+		{C83BF842-ABB1-4870-8003-11EF860E6741}.Debug|x86.ActiveCfg = Debug|x64
 		{C83BF842-ABB1-4870-8003-11EF860E6741}.Release|Any CPU.ActiveCfg = Release|x64
 		{C83BF842-ABB1-4870-8003-11EF860E6741}.Release|x64.ActiveCfg = Release|x64
 		{C83BF842-ABB1-4870-8003-11EF860E6741}.Release|x64.Build.0 = Release|x64
+		{C83BF842-ABB1-4870-8003-11EF860E6741}.Release|x86.ActiveCfg = Release|x64
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Debug|x64.Build.0 = Debug|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Debug|x86.Build.0 = Debug|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Release|x64.ActiveCfg = Release|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Release|x64.Build.0 = Release|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Release|x86.ActiveCfg = Release|Any CPU
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4}.Release|x86.Build.0 = Release|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Debug|x64.Build.0 = Debug|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Debug|x86.Build.0 = Debug|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Release|Any CPU.Build.0 = Release|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Release|x64.ActiveCfg = Release|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Release|x64.Build.0 = Release|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Release|x86.ActiveCfg = Release|Any CPU
+		{42199427-9825-4A45-A3D1-5C3090C57035}.Release|x86.Build.0 = Release|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Debug|x64.Build.0 = Debug|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Debug|x86.Build.0 = Debug|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Release|x64.ActiveCfg = Release|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Release|x64.Build.0 = Release|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Release|x86.ActiveCfg = Release|Any CPU
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59}.Release|x86.Build.0 = Release|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Debug|x64.Build.0 = Debug|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Debug|x86.Build.0 = Debug|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Release|Any CPU.Build.0 = Release|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Release|x64.ActiveCfg = Release|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Release|x64.Build.0 = Release|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Release|x86.ActiveCfg = Release|Any CPU
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733}.Release|x86.Build.0 = Release|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Debug|x64.Build.0 = Debug|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Debug|x86.Build.0 = Debug|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Release|x64.ActiveCfg = Release|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Release|x64.Build.0 = Release|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Release|x86.ActiveCfg = Release|Any CPU
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF}.Release|x86.Build.0 = Release|Any CPU
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|x64.ActiveCfg = Debug|x64
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|x64.Build.0 = Debug|x64
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|x86.ActiveCfg = Debug|Win32
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|x86.Build.0 = Debug|Win32
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|Any CPU.ActiveCfg = Release|Win32
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|x64.ActiveCfg = Release|x64
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|x64.Build.0 = Release|x64
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|x86.ActiveCfg = Release|Win32
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|x86.Build.0 = Release|Win32
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|x64.ActiveCfg = Debug|x64
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|x64.Build.0 = Debug|x64
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|x86.ActiveCfg = Debug|Win32
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|x86.Build.0 = Debug|Win32
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|Any CPU.ActiveCfg = Release|Win32
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|x64.ActiveCfg = Release|x64
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|x64.Build.0 = Release|x64
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|x86.ActiveCfg = Release|Win32
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|x86.Build.0 = Release|Win32
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Debug|x64.ActiveCfg = Debug|x64
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Debug|x64.Build.0 = Debug|x64
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Debug|x86.ActiveCfg = Debug|Win32
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Debug|x86.Build.0 = Debug|Win32
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Release|Any CPU.ActiveCfg = Release|Win32
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Release|x64.ActiveCfg = Release|x64
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Release|x64.Build.0 = Release|x64
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Release|x86.ActiveCfg = Release|Win32
+		{5287A594-4D4F-43FE-A281-E279AB708CF1}.Release|x86.Build.0 = Release|Win32
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|x64.ActiveCfg = Debug|x64
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|x64.Build.0 = Debug|x64
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|x86.ActiveCfg = Debug|Win32
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|x86.Build.0 = Debug|Win32
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|Any CPU.ActiveCfg = Release|Win32
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|x64.ActiveCfg = Release|x64
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|x64.Build.0 = Release|x64
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|x86.ActiveCfg = Release|Win32
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|x86.Build.0 = Release|Win32
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|x64.ActiveCfg = Debug|x64
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|x64.Build.0 = Debug|x64
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|x86.ActiveCfg = Debug|Win32
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|x86.Build.0 = Debug|Win32
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|Any CPU.ActiveCfg = Release|Win32
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|x64.ActiveCfg = Release|x64
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|x64.Build.0 = Release|x64
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|x86.ActiveCfg = Release|Win32
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|x86.Build.0 = Release|Win32
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|x64.ActiveCfg = Debug|x64
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|x64.Build.0 = Debug|x64
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|x86.ActiveCfg = Debug|Win32
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|x86.Build.0 = Debug|Win32
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|Any CPU.ActiveCfg = Release|Win32
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|x64.ActiveCfg = Release|x64
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|x64.Build.0 = Release|x64
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|x86.ActiveCfg = Release|Win32
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|x86.Build.0 = Release|Win32
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Debug|x64.ActiveCfg = Debug|x64
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Debug|x64.Build.0 = Debug|x64
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Debug|x86.ActiveCfg = Debug|Win32
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Debug|x86.Build.0 = Debug|Win32
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Release|Any CPU.ActiveCfg = Release|Win32
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Release|x64.ActiveCfg = Release|x64
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Release|x64.Build.0 = Release|x64
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Release|x86.ActiveCfg = Release|Win32
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44}.Release|x86.Build.0 = Release|Win32
+		{B797917B-6842-467C-8B14-E00B76A91247}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{B797917B-6842-467C-8B14-E00B76A91247}.Debug|x64.ActiveCfg = Debug|x64
+		{B797917B-6842-467C-8B14-E00B76A91247}.Debug|x64.Build.0 = Debug|x64
+		{B797917B-6842-467C-8B14-E00B76A91247}.Debug|x86.ActiveCfg = Debug|Win32
+		{B797917B-6842-467C-8B14-E00B76A91247}.Debug|x86.Build.0 = Debug|Win32
+		{B797917B-6842-467C-8B14-E00B76A91247}.Release|Any CPU.ActiveCfg = Release|Win32
+		{B797917B-6842-467C-8B14-E00B76A91247}.Release|x64.ActiveCfg = Release|x64
+		{B797917B-6842-467C-8B14-E00B76A91247}.Release|x64.Build.0 = Release|x64
+		{B797917B-6842-467C-8B14-E00B76A91247}.Release|x86.ActiveCfg = Release|Win32
+		{B797917B-6842-467C-8B14-E00B76A91247}.Release|x86.Build.0 = Release|Win32
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Debug|x64.ActiveCfg = Debug|x64
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Debug|x64.Build.0 = Debug|x64
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Debug|x86.ActiveCfg = Debug|Win32
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Debug|x86.Build.0 = Debug|Win32
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Release|Any CPU.ActiveCfg = Release|Win32
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Release|x64.ActiveCfg = Release|x64
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Release|x64.Build.0 = Release|x64
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Release|x86.ActiveCfg = Release|Win32
+		{795B1B0E-4EC8-469D-B641-E26324266FBF}.Release|x86.Build.0 = Release|Win32
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|x64.ActiveCfg = Debug|x64
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|x64.Build.0 = Debug|x64
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|x86.ActiveCfg = Debug|Win32
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|x86.Build.0 = Debug|Win32
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|Any CPU.ActiveCfg = Release|Win32
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|x64.ActiveCfg = Release|x64
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|x64.Build.0 = Release|x64
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|x86.ActiveCfg = Release|Win32
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|x86.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -232,6 +480,21 @@
 		{0B90819D-4066-4D6C-87E6-3BE4D8F595DE} = {025034E6-A625-427B-AA99-5158095ED5F9}
 		{C83BF842-ABB1-4870-8003-11EF860E6741} = {025034E6-A625-427B-AA99-5158095ED5F9}
 		{025034E6-A625-427B-AA99-5158095ED5F9} = {A9257857-9844-4CEA-AF02-A7D8AB8F46AB}
+		{C266761B-BC19-4BD7-9EE8-3AE2CE7DE7A4} = {99132700-5CAD-4540-9939-7502C1A448EA}
+		{42199427-9825-4A45-A3D1-5C3090C57035} = {99132700-5CAD-4540-9939-7502C1A448EA}
+		{7A73A95F-DCCC-4880-BA8C-AE8D9D48FA59} = {99132700-5CAD-4540-9939-7502C1A448EA}
+		{27210DB6-811B-4D4E-A7E0-6488E5AFA733} = {99132700-5CAD-4540-9939-7502C1A448EA}
+		{096D661F-DEA7-4EAB-95BB-F6A0E0AF59FF} = {99132700-5CAD-4540-9939-7502C1A448EA}
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{5287A594-4D4F-43FE-A281-E279AB708CF1} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{78619D0E-D3F9-4DDF-B90E-F99CB03DFC44} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{B797917B-6842-467C-8B14-E00B76A91247} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{795B1B0E-4EC8-469D-B641-E26324266FBF} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B} = {8CF61B8E-3BE0-4F25-B663-DFB082A67F00}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {733BCCC2-0431-4AB7-ABB6-AAE81AB54C48}

Modified: trunk/MgDev/Bindings/src/Bindings/CMakeLists.txt
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/CMakeLists.txt	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Bindings/src/Bindings/CMakeLists.txt	2022-10-10 10:00:53 UTC (rev \
9973) @@ -1,12 +1,7 @@
-if (WITH_DOTNET)
-    add_subdirectory(DotNet)
-endif (WITH_DOTNET)
-if (WITH_JAVA)
-    add_subdirectory(Java)
-endif (WITH_JAVA)
-if (WITH_PHP)
-    add_subdirectory(Php)
-endif (WITH_PHP)
-# Needed for api binding generation
-file(COPY "Common" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
-file(COPY "MapGuideApi" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
\ No newline at end of file
+add_subdirectory(DotNet)
+#if (WITH_JAVA)
+#    add_subdirectory(Java)
+#endif (WITH_JAVA)
+#if (WITH_PHP)
+#    add_subdirectory(Php)
+#endif (WITH_PHP)
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/CMakeLists.txt
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/CMakeLists.txt	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/CMakeLists.txt	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -1,5 +1,3 @@
-project(MapGuideDotNetUnmanagedApi)
-
 include_directories(
     ${MG_COMMON_DIR}/MdfModel
     ${MG_COMMON_DIR}/Foundation
@@ -7,97 +5,16 @@
     ${MG_COMMON_DIR}/PlatformBase
     ${MG_COMMON_DIR}/MapGuideCommon
     ${ACE_INCLUDE_DIR}
-    ${MG_WEB_DIR}/HttpHandler
-    ${MG_WEB_DIR}/WebSupport
-    ${MG_WEB_DIR}/WebApp
+    ${MG_WEB_DIR}/src/HttpHandler
+    ${MG_WEB_DIR}/src/WebSupport
+    ${MG_WEB_DIR}/src/WebApp
     ${XERCESC_INCLUDE_DIR}
 )
 
-set(DotNetUnmanagedApi_SRCS
-    ${CMAKE_CURRENT_BINARY_DIR}/MgApi_wrap.cpp
-)
+add_subdirectory(Foundation)
+add_subdirectory(Geometry)
+add_subdirectory(PlatformBase)
+add_subdirectory(MapGuideCommon)
+add_subdirectory(Web)
 
-add_library(MapGuideDotNetUnmanagedApi${MG_VERSION_SUFFIX} SHARED \
                ${DotNetUnmanagedApi_SRCS})
-add_dependencies(MapGuideDotNetUnmanagedApi${MG_VERSION_SUFFIX} IMake)
-if (UNIX)
-    add_definitions(-DDOTNETCORE)
-endif (UNIX)
-if (MSVC)
-    add_definitions(-DSWIG_PUBLIC_API)
-    add_definitions(/bigobj)
-    set_target_properties(MapGuideDotNetUnmanagedApi${MG_VERSION_SUFFIX} PROPERTIES \
                RUNTIME_OUTPUT_DIRECTORY ${MG_DOTNET_OUTPUT_DIR} )
-    set_target_properties(MapGuideDotNetUnmanagedApi${MG_VERSION_SUFFIX} PROPERTIES \
                RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MG_DOTNET_OUTPUT_DIR} )
-    set_target_properties(MapGuideDotNetUnmanagedApi${MG_VERSION_SUFFIX} PROPERTIES \
                RUNTIME_OUTPUT_DIRECTORY_RELEASE ${MG_DOTNET_OUTPUT_DIR} )
-endif (MSVC)
-
-set(IMAKE_RELATIVE_RESOLUTION "-r ${CMAKE_CURRENT_SOURCE_DIR}")
-if (UNIX)
-    set(IMAKE_RELATIVE_RESOLUTION "-a")
-endif (UNIX)
-
-set(SWIG_DOTNET_DEFS "")
-if (WIN32)
-    set(SWIG_DOTNET_DEFS "-DWIN32")
-endif (WIN32)
-
-message(STATUS "Using IMake at: ${IMAKE_TOOL}")
-add_custom_command(OUTPUT ${DotNetUnmanagedApi_SRCS}
-    COMMAND ${CMAKE_COMMAND} -E echo Removing: ${MG_DOTNET_PROJECT_DIR}/*.cs
-    COMMAND ${CMAKE_COMMAND} -E remove -f 
-            ${MG_DOTNET_PROJECT_DIR}/*.cs
-    COMMAND ${CMAKE_COMMAND} -E echo Regenerating: \
                ${MG_DOTNET_PROJECT_DIR}/Constants.cs
-    COMMAND ${IMAKE_TOOL} -p \
                ${CMAKE_CURRENT_BINARY_DIR}/../MapGuideApi/Constants.xml 
-            -l "C#"
-            ${IMAKE_RELATIVE_RESOLUTION}
-            -o ${MG_DOTNET_PROJECT_DIR}/Constants.cs
-            -t
-    COMMAND ${CMAKE_COMMAND} -E copy
-            ${CMAKE_CURRENT_BINARY_DIR}/dotnetcore.i
-            ${CMAKE_CURRENT_BINARY_DIR}/language.i
-    COMMAND ${IMAKE_TOOL} -p \
                ${CMAKE_CURRENT_BINARY_DIR}/../MapGuideApi/MapGuideApiGen.xml
-            -l "C#"
-            ${IMAKE_RELATIVE_RESOLUTION}
-            -o ${CMAKE_CURRENT_BINARY_DIR}
-    COMMAND ${CMAKE_COMMAND} -E echo Running SWIG [DotNet]. Output Dir: \
                ${MG_DOTNET_PROJECT_DIR}
-    COMMAND ${SWIG_TOOL} -c++ -csharp 
-            ${SWIG_DOTNET_DEFS} -DDOTNETCORE -DSWIG_CSHARP_NO_EXCEPTION_HELPER
-            -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER
-            -namespace OSGeo.MapGuide
-            -nodefaultctor -nodefaultdtor
-            -module MapGuideDotNetUnmanagedApi
-            -o "${CMAKE_CURRENT_BINARY_DIR}/MgApi_wrap.cpp"
-            -outdir "${MG_DOTNET_PROJECT_DIR}" 
-            "${CMAKE_CURRENT_BINARY_DIR}/MapGuideApi.i"
-    COMMAND ${CMAKE_COMMAND} -E remove -f 
-            ${MG_DOTNET_PROJECT_DIR}/MapGuideDotNetUnmanagedApi.cs
-)
-
-target_link_libraries(MapGuideDotNetUnmanagedApi${MG_VERSION_SUFFIX}
-    ${ACE_LIBRARY}
-    ${MG_FOUNDATION_LIBRARY}
-    ${MG_GEOMETRY_LIBRARY}
-    ${MG_PLATFORMBASE_LIBRARY}
-    ${MG_COMMON_LIBRARY}
-    ${MG_HTTPHANDLER_LIBRARY}
-    ${MG_WEBAPP_LIBRARY}
-    ${MG_MDFMODEL_LIBRARY}
-    ${MG_MDFPARSER_LIBRARY}
-    ${MG_WEBSUPPORT_LIBRARY}
-    #MgFoundation${MG_VERSION_SUFFIX}
-    #MgGeometry${MG_VERSION_SUFFIX}
-    #MgPlatformBase${MG_VERSION_SUFFIX}
-    #MgMapGuideCommon${MG_VERSION_SUFFIX}
-    #MgHttpHandler${MG_VERSION_SUFFIX}
-    #MgMdfModel${MG_VERSION_SUFFIX}
-    #MgMdfParser${MG_VERSION_SUFFIX}
-    ${XERCESC_LIBRARIES}
-    #MgWebApp${MG_VERSION_SUFFIX}
-)
-
-# Only needed for Linux
-if (UNIX)
-    file(COPY "InitializeWebTier.cpp" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
-    install( TARGETS MapGuideDotNetUnmanagedApi${MG_VERSION_SUFFIX} DESTINATION \
                ${MG_DOTNET_OUTPUT_DIR})
-endif (UNIX)
-
-file(COPY "dotnetcore.i" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
\ No newline at end of file
+file(COPY "dotnetcore_split.i" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/DotNetUnmanagedApi.vcxproj
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/DotNetUnmanagedApi.vcxproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/DotNetUnmanagedApi.vcxproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -57,9 +57,9 @@
     <PreBuildEvent>
       <Command>del /Q "$(ProjectDir)..\..\Managed\DotNet\MapGuideDotNetApi\*.cs"
 if exist "$(ProjectDir)MapGuideApi_Properties.i" del /Q \
                "$(ProjectDir)MapGuideApi_Properties.i"
-"..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)..\MapGuideApi\Constants.xml" -l C# \
-o "$(ProjectDir)..\..\Managed\DotNet\MapGuideDotNetApi\Constants.cs" -t \
+"..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\Constants.xml" -l C# -o \
"$(ProjectDir)..\..\Managed\DotNet\MapGuideDotNetApi\Constants.cs" -t  copy \
                "$(ProjectDir)dotnetcore.i" "$(ProjectDir)language.i"
-"..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)..\MapGuideApi\MapGuideApiGen.xml" -l \
C# +"..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\MapGuideApiGen.xml" -l C#  \
"..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module MapGuideDotNetUnmanagedApi -o "$(ProjectDir)MgApi_wrap.cpp" \
-outdir "$(ProjectDir)..\..\Managed\DotNet\MapGuideDotNetApi" MapGuideApi.i  del /Q \
..\..\Managed\DotNet\MapGuideDotNetApi\MapGuideDotNetUnmanagedApi.cs  </Command>
@@ -66,7 +66,7 @@
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\Web\src\HttpHandler;..\..\..\..\Web\s \
rc\WebApp;..\..\..\..\Web\src\WebSupport;..\..\..\..\Common\MdfModel;..\..\..\..\Commo \
n\Foundation;..\..\..\..\Common\Geometry;..\..\..\..\Common\PlatformBase;..\..\..\..\C \
ommon\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + \
<AdditionalIncludeDirectories>..\..\..\..\Web\src\HttpHandler;..\..\..\..\Web\src\WebA \
pp;..\..\..\..\Web\src\WebSupport;..\..\..\..\Common\MdfModel;..\..\..\..\Common\Found \
ation;..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\Common\Geometry;..\..\..\..\Common\ \
PlatformBase;..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -94,9 +94,9 @@
     <PreBuildEvent>
       <Command>del /Q "$(ProjectDir)..\..\Managed\DotNet\MapGuideDotNetApi\*.cs"
 if exist "$(ProjectDir)MapGuideApi_Properties.i" del /Q \
                "$(ProjectDir)MapGuideApi_Properties.i"
-"..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)..\MapGuideApi\Constants.xml" -l C# \
-o "$(ProjectDir)..\..\Managed\DotNet\MapGuideDotNetApi\Constants.cs" -t \
+"..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\Constants.xml" -l C# -o \
"$(ProjectDir)..\..\Managed\DotNet\MapGuideDotNetApi\Constants.cs" -t  copy \
                "$(ProjectDir)dotnetcore.i" "$(ProjectDir)language.i"
-"..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)..\MapGuideApi\MapGuideApiGen.xml" -l \
C# +"..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\MapGuideApiGen.xml" -l C#  \
"..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module MapGuideDotNetUnmanagedApi -o "$(ProjectDir)MgApi_wrap.cpp" \
-outdir "$(ProjectDir)..\..\Managed\DotNet\MapGuideDotNetApi" MapGuideApi.i  del /Q \
..\..\Managed\DotNet\MapGuideDotNetApi\MapGuideDotNetUnmanagedApi.cs  </Command>
@@ -103,7 +103,7 @@
     </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\Web\src\HttpHandler;..\..\..\..\Web\s \
rc\WebApp;..\..\..\..\Web\src\WebSupport;..\..\..\..\Common\MdfModel;..\..\..\..\Commo \
n\Foundation;..\..\..\..\Common\Geometry;..\..\..\..\Common\PlatformBase;..\..\..\..\C \
ommon\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + \
<AdditionalIncludeDirectories>..\..\..\..\Web\src\HttpHandler;..\..\..\..\Web\src\WebA \
pp;..\..\..\..\Web\src\WebSupport;..\..\..\..\Common\MdfModel;..\..\..\..\Common\Found \
ation;..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\Common\Geometry;..\..\..\..\Common\ \
PlatformBase;..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_WIN64;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

Copied: trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/CMakeLists.txt (from rev \
9811, sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/Foundation/CMakeLists.txt)
 ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/CMakeLists.txt	               \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/CMakeLists.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1,79 @@
+project(FoundationUnmanagedApi)
+
+set(FoundationUnmanagedApi_SRCS
+    ${CMAKE_CURRENT_BINARY_DIR}/FoundationUnmanagedApi_wrap.cpp
+)
+
+file(COPY "InitializeLibrary.i" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+
+add_library(FoundationUnmanagedApi SHARED ${FoundationUnmanagedApi_SRCS})
+add_dependencies(FoundationUnmanagedApi IMake)
+if (UNIX)
+    add_definitions(-DDOTNETCORE)
+    # NOTE: We don't care where this source is generated because the C# source is \
only built on windows +    set(MG_DOTNET_PROJECT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+    set_target_properties(FoundationUnmanagedApi PROPERTIES INSTALL_RPATH "$ORIGIN")
+endif (UNIX)
+if (MSVC)
+    add_definitions(-DSWIG_PUBLIC_API)
+    add_definitions(/bigobj)
+    set_target_properties(FoundationUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY \
${MG_DOTNET_OUTPUT_DIR} ) +    set_target_properties(FoundationUnmanagedApi \
PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MG_DOTNET_OUTPUT_DIR} ) +    \
set_target_properties(FoundationUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${MG_DOTNET_OUTPUT_DIR} ) +endif (MSVC)
+
+set(IMAKE_RELATIVE_RESOLUTION "-r ${CMAKE_CURRENT_SOURCE_DIR}")
+if (UNIX)
+    set(IMAKE_RELATIVE_RESOLUTION "-a")
+endif (UNIX)
+
+set(SWIG_DOTNET_DEFS "")
+if (WIN32)
+    set(SWIG_DOTNET_DEFS "-DWIN32")
+endif (WIN32)
+
+message(STATUS "Using IMake at: ${IMAKE_TOOL}")
+add_custom_command(OUTPUT ${FoundationUnmanagedApi_SRCS}
+    COMMAND ${CMAKE_COMMAND} -E echo Removing: ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E remove -f 
+            ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E echo Regenerating: \
${MG_DOTNET_PROJECT_DIR}/Constants.cs +    COMMAND ${IMAKE_TOOL} -p \
${CMAKE_CURRENT_SOURCE_DIR}/FoundationConstants.xml  +            -l "C#"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+            -t
+    COMMAND ${CMAKE_COMMAND} -E copy
+            ${CMAKE_CURRENT_BINARY_DIR}/../dotnetcore_split.i
+            ${CMAKE_CURRENT_BINARY_DIR}/language.i
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/FoundationApiGen.xml
+            -l "C#"
+            -x "FoundationApi"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${CMAKE_CURRENT_BINARY_DIR}
+    COMMAND ${CMAKE_COMMAND} -E echo Running SWIG [DotNet]. Output Dir: \
${MG_DOTNET_PROJECT_DIR} +    COMMAND ${SWIG_EXECUTABLE} -c++ -csharp 
+            ${SWIG_DOTNET_DEFS} -DDOTNETCORE -DSWIG_CSHARP_NO_EXCEPTION_HELPER
+            -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER
+            -namespace OSGeo.MapGuide
+            -nodefaultctor -nodefaultdtor
+            -module FoundationUnmanagedApi
+            -o "${CMAKE_CURRENT_BINARY_DIR}/FoundationUnmanagedApi_wrap.cpp"
+            -outdir "${MG_DOTNET_PROJECT_DIR}" 
+            "${CMAKE_CURRENT_BINARY_DIR}/FoundationApi.i"
+)
+
+target_link_libraries(FoundationUnmanagedApi
+    ${ACE_LIBRARY}
+    MgFoundation${MG_VERSION_SUFFIX}
+    #MgGeometry${MG_VERSION_SUFFIX}
+    #MgPlatformBase${MG_VERSION_SUFFIX}
+    #MgMapGuideCommon${MG_VERSION_SUFFIX}
+    #MgHttpHandler${MG_VERSION_SUFFIX}
+    #MgMdfModel${MG_VERSION_SUFFIX}
+    #MgMdfParser${MG_VERSION_SUFFIX}
+    #MgWebApp${MG_VERSION_SUFFIX}
+    ${XERCESC_LIBRARIES}
+)
+
+install( TARGETS FoundationUnmanagedApi DESTINATION ${LIB_INSTALL_DIR} COMPONENT \
${MG_COMPONENT} ) \ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/FoundationApi.vcxproj
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/FoundationApi.vcxproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/FoundationApi.vcxproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -57,19 +57,20 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\*.cs"  if exist \
"$(ProjectDir)FoundationApi_Properties.i" del /Q \
                "$(ProjectDir)FoundationApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)FoundationConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\Constants.cs" -t \
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)FoundationConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\Constants.cs" -t  \
                copy "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)FoundationApiGen.xml" -l C# -x \
"FoundationApi" +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)FoundationApiGen.xml" -l C# -x "FoundationApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module FoundationUnmanagedApi -o \
"$(ProjectDir)FoundationUnmanagedApi_wrap.cpp" -outdir \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation" FoundationApi.i  del \
/Q ..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\FoundationUnmanagedApi.cs  copy \
/Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\ACE*.*" \
"$(TargetDir)\native\"  copy /Y \
"$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\xerces-c*.*" \
                "$(TargetDir)\native\"
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgFoundation*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgMdfModel*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgFoundation*.*" \
"$(TargetDir)\native\"  </Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\.. \
\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfMo \
del;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Com \
mon\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\. \
.\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfM \
odel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\ \
..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -97,19 +98,20 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\*.cs"  if exist \
"$(ProjectDir)FoundationApi_Properties.i" del /Q \
                "$(ProjectDir)FoundationApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)FoundationConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\Constants.cs" -t \
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)FoundationConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\Constants.cs" -t  \
                copy "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)FoundationApiGen.xml" -l C# -x \
"FoundationApi" +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)FoundationApiGen.xml" -l C# -x "FoundationApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module FoundationUnmanagedApi -o \
"$(ProjectDir)FoundationUnmanagedApi_wrap.cpp" -outdir \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation" FoundationApi.i  del \
/Q ..\..\..\Managed\DotNet\OSGeo.MapGuide.Foundation\FoundationUnmanagedApi.cs  copy \
/Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\ACE*.*" \
"$(TargetDir)\native\"  copy /Y \
"$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\xerces-c*.*" \
                "$(TargetDir)\native\"
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgFoundation*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgMdfModel*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgFoundation*.*" \
"$(TargetDir)\native\"  </Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\.. \
\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfMo \
del;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Com \
mon\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\. \
.\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfM \
odel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\ \
..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_WIN64;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/FoundationApiGen.xml
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/FoundationApiGen.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Foundation/FoundationApiGen.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -53,7 +53,9 @@
   %include "FoundationApi_Properties.i" //.net property wrappers
   %include "language.i"   //typemaps specific for each language
   %include "InitializeLibrary.i"
+#if defined(CLASSIDGEN)
   %include "../../../../../Common/Foundation/System/FoundationClassId.h"
+#endif
 
 #if defined(PHPSWIG)
   // We force UTF-8 encoding for PHP

Copied: trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/CMakeLists.txt (from rev \
9811, sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/Geometry/CMakeLists.txt) \
                ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/CMakeLists.txt	                 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/CMakeLists.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1,70 @@
+project(GeometryUnmanagedApi)
+
+set(GeometryUnmanagedApi_SRCS
+    ${CMAKE_CURRENT_BINARY_DIR}/GeometryUnmanagedApi_wrap.cpp
+)
+
+add_library(GeometryUnmanagedApi SHARED ${GeometryUnmanagedApi_SRCS})
+add_dependencies(GeometryUnmanagedApi IMake)
+if (UNIX)
+    add_definitions(-DDOTNETCORE)
+    # NOTE: We don't care where this source is generated because the C# source is \
only built on windows +    set(MG_DOTNET_PROJECT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+    set_target_properties(GeometryUnmanagedApi PROPERTIES INSTALL_RPATH "$ORIGIN")
+endif (UNIX)
+if (MSVC)
+    add_definitions(-DSWIG_PUBLIC_API)
+    add_definitions(/bigobj)
+    set_target_properties(GeometryUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY \
${MG_DOTNET_OUTPUT_DIR} ) +    set_target_properties(GeometryUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MG_DOTNET_OUTPUT_DIR} ) +    \
set_target_properties(GeometryUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${MG_DOTNET_OUTPUT_DIR} ) +endif (MSVC)
+
+set(IMAKE_RELATIVE_RESOLUTION "-r ${CMAKE_CURRENT_SOURCE_DIR}")
+if (UNIX)
+    set(IMAKE_RELATIVE_RESOLUTION "-a")
+endif (UNIX)
+
+set(SWIG_DOTNET_DEFS "")
+if (WIN32)
+    set(SWIG_DOTNET_DEFS "-DWIN32")
+endif (WIN32)
+
+message(STATUS "Using IMake at: ${IMAKE_TOOL}")
+add_custom_command(OUTPUT ${GeometryUnmanagedApi_SRCS}
+    COMMAND ${CMAKE_COMMAND} -E echo Removing: ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E remove -f 
+            ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E echo Regenerating: \
${MG_DOTNET_PROJECT_DIR}/Constants.cs +    COMMAND ${IMAKE_TOOL} -p \
${CMAKE_CURRENT_SOURCE_DIR}/GeometryConstants.xml  +            -l "C#"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+            -t
+    COMMAND ${CMAKE_COMMAND} -E copy
+            ${CMAKE_CURRENT_BINARY_DIR}/../dotnetcore_split.i
+            ${CMAKE_CURRENT_BINARY_DIR}/language.i
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/GeometryApiGen.xml
+            -l "C#"
+            -x "GeometryApi"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${CMAKE_CURRENT_BINARY_DIR}
+    COMMAND ${CMAKE_COMMAND} -E echo Running SWIG [DotNet]. Output Dir: \
${MG_DOTNET_PROJECT_DIR} +    COMMAND ${SWIG_EXECUTABLE} -c++ -csharp 
+            ${SWIG_DOTNET_DEFS} -DDOTNETCORE -DSWIG_CSHARP_NO_EXCEPTION_HELPER
+            -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER
+            -namespace OSGeo.MapGuide
+            -nodefaultctor -nodefaultdtor
+            -module GeometryUnmanagedApi
+            -o "${CMAKE_CURRENT_BINARY_DIR}/GeometryUnmanagedApi_wrap.cpp"
+            -outdir "${MG_DOTNET_PROJECT_DIR}" 
+            "${CMAKE_CURRENT_BINARY_DIR}/GeometryApi.i"
+)
+
+target_link_libraries(GeometryUnmanagedApi
+    ${ACE_LIBRARY}
+    MgGeometry${MG_VERSION_SUFFIX}
+    ${XERCESC_LIBRARIES}
+)
+
+install( TARGETS GeometryUnmanagedApi DESTINATION ${LIB_INSTALL_DIR} COMPONENT \
${MG_COMPONENT} ) \ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/GeometryApi.vcxproj
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/GeometryApi.vcxproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/GeometryApi.vcxproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -57,9 +57,9 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\*.cs"  if exist \
"$(ProjectDir)GeometryApi_Properties.i" del /Q \
                "$(ProjectDir)GeometryApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)GeometryConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\Constants.cs" -t \
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)GeometryConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\Constants.cs" -t  copy \
                "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)GeometryApiGen.xml" -l C# -x \
"GeometryApi" +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)GeometryApiGen.xml" -l C# -x "GeometryApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module GeometryUnmanagedApi -o \
"$(ProjectDir)GeometryUnmanagedApi_wrap.cpp" -outdir \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry" GeometryApi.i  del /Q \
..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\GeometryUnmanagedApi.cs  </Command>
@@ -66,7 +66,7 @@
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\.. \
\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfMo \
del;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Com \
mon\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\. \
.\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfM \
odel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\ \
..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -94,18 +94,18 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\*.cs"  if exist \
"$(ProjectDir)GeometryApi_Properties.i" del /Q \
                "$(ProjectDir)GeometryApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)GeometryConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\Constants.cs" -t \
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)GeometryConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\Constants.cs" -t  copy \
                "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)GeometryApiGen.xml" -l C# -x \
"GeometryApi" +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)GeometryApiGen.xml" -l C# -x "GeometryApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module GeometryUnmanagedApi -o \
"$(ProjectDir)GeometryUnmanagedApi_wrap.cpp" -outdir \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry" GeometryApi.i  del /Q \
..\..\..\Managed\DotNet\OSGeo.MapGuide.Geometry\GeometryUnmanagedApi.cs  copy /Y \
"$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\GEOS*.*" \
                "$(TargetDir)\native\"
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgGeometry*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgGeometry*.*" \
"$(TargetDir)\native\"  </Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\.. \
\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfMo \
del;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Com \
mon\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\. \
.\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfM \
odel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\ \
..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_WIN64;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/GeometryApiGen.xml
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/GeometryApiGen.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Geometry/GeometryApiGen.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -56,7 +56,9 @@
   // IMPORTANT: Must %import dependencies *after* %include-ing language.i, otherwise
   // SWIG runtime glue code for $LANGUAGE isn't generated
   %import "../Foundation/FoundationApi.i"
+#if defined(MG_CLASSIDGEN)
   %include "../../../../../Common/Geometry/GeometryClassId.h"
+#endif
 
 #if defined(PHPSWIG)
   // We force UTF-8 encoding for PHP

Copied: trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/CMakeLists.txt (from \
rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/MapGuideCommon/CMakeLists.txt)
 ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/CMakeLists.txt	           \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/CMakeLists.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1,70 @@
+project(MapGuideCommonUnmanagedApi)
+
+set(MapGuideCommonUnmanagedApi_SRCS
+    ${CMAKE_CURRENT_BINARY_DIR}/MapGuideCommonUnmanagedApi_wrap.cpp
+)
+
+add_library(MapGuideCommonUnmanagedApi SHARED ${MapGuideCommonUnmanagedApi_SRCS})
+add_dependencies(MapGuideCommonUnmanagedApi IMake)
+if (UNIX)
+    add_definitions(-DDOTNETCORE)
+    # NOTE: We don't care where this source is generated because the C# source is \
only built on windows +    set(MG_DOTNET_PROJECT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+    set_target_properties(MapGuideCommonUnmanagedApi PROPERTIES INSTALL_RPATH \
"$ORIGIN") +endif (UNIX)
+if (MSVC)
+    add_definitions(-DSWIG_PUBLIC_API)
+    add_definitions(/bigobj)
+    set_target_properties(MapGuideCommonUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY ${MG_DOTNET_OUTPUT_DIR} ) +    \
set_target_properties(MapGuideCommonUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MG_DOTNET_OUTPUT_DIR} ) +    \
set_target_properties(MapGuideCommonUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${MG_DOTNET_OUTPUT_DIR} ) +endif (MSVC)
+
+set(IMAKE_RELATIVE_RESOLUTION "-r ${CMAKE_CURRENT_SOURCE_DIR}")
+if (UNIX)
+    set(IMAKE_RELATIVE_RESOLUTION "-a")
+endif (UNIX)
+
+set(SWIG_DOTNET_DEFS "")
+if (WIN32)
+    set(SWIG_DOTNET_DEFS "-DWIN32")
+endif (WIN32)
+
+message(STATUS "Using IMake at: ${IMAKE_TOOL}")
+add_custom_command(OUTPUT ${MapGuideCommonUnmanagedApi_SRCS}
+    COMMAND ${CMAKE_COMMAND} -E echo Removing: ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E remove -f 
+            ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E echo Regenerating: \
${MG_DOTNET_PROJECT_DIR}/Constants.cs +    COMMAND ${IMAKE_TOOL} -p \
${CMAKE_CURRENT_SOURCE_DIR}/MapGuideCommonConstants.xml  +            -l "C#"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+            -t
+    COMMAND ${CMAKE_COMMAND} -E copy
+            ${CMAKE_CURRENT_BINARY_DIR}/../dotnetcore_split.i
+            ${CMAKE_CURRENT_BINARY_DIR}/language.i
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/MapGuideCommonApiGen.xml
+            -l "C#"
+            -x "MapGuideCommonApi"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${CMAKE_CURRENT_BINARY_DIR}
+    COMMAND ${CMAKE_COMMAND} -E echo Running SWIG [DotNet]. Output Dir: \
${MG_DOTNET_PROJECT_DIR} +    COMMAND ${SWIG_EXECUTABLE} -c++ -csharp 
+            ${SWIG_DOTNET_DEFS} -DDOTNETCORE -DSWIG_CSHARP_NO_EXCEPTION_HELPER
+            -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER
+            -namespace OSGeo.MapGuide
+            -nodefaultctor -nodefaultdtor
+            -module MapGuideCommonUnmanagedApi
+            -o "${CMAKE_CURRENT_BINARY_DIR}/MapGuideCommonUnmanagedApi_wrap.cpp"
+            -outdir "${MG_DOTNET_PROJECT_DIR}" 
+            "${CMAKE_CURRENT_BINARY_DIR}/MapGuideCommonApi.i"
+)
+
+target_link_libraries(MapGuideCommonUnmanagedApi
+    ${ACE_LIBRARY}
+    MgMapGuideCommon${MG_VERSION_SUFFIX}
+    ${XERCESC_LIBRARIES}
+)
+
+install( TARGETS MapGuideCommonUnmanagedApi DESTINATION ${LIB_INSTALL_DIR} COMPONENT \
${MG_COMPONENT} ) \ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/MapGuideCommonApi.vcxproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/MapGuideCommonApi.vcxproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/MapGuideCommonApi.vcxproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -57,17 +57,17 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\*.cs"  if exist \
"$(ProjectDir)MapGuideCommonApi_Properties.i" del /Q \
                "$(ProjectDir)MapGuideCommonApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)MapGuideCommonConstants.xml" -l C# \
-o "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\Constants.cs" \
-t +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)MapGuideCommonConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\Constants.cs" -t  \
                copy "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)MapGuideCommonApiGen.xml" -l C# -x \
"MapGuideCommonApi" +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)MapGuideCommonApiGen.xml" -l C# -x "MapGuideCommonApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module MapGuideCommonUnmanagedApi -o \
"$(ProjectDir)MapGuideCommonUnmanagedApi_wrap.cpp" -outdir \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon" \
MapGuideCommonApi.i  del /Q \
                ..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\MapGuideCommonUnmanagedApi.cs
                
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgMapGuideCommon*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgMapGuideCommon*.*" \
"$(TargetDir)\native\"  </Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\.. \
\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfMo \
del;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Com \
mon\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\. \
.\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfM \
odel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\ \
..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -95,17 +95,17 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\*.cs"  if exist \
"$(ProjectDir)MapGuideCommonApi_Properties.i" del /Q \
                "$(ProjectDir)MapGuideCommonApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)MapGuideCommonConstants.xml" -l C# \
-o "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\Constants.cs" \
-t +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)MapGuideCommonConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\Constants.cs" -t  \
                copy "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)MapGuideCommonApiGen.xml" -l C# -x \
"MapGuideCommonApi" +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)MapGuideCommonApiGen.xml" -l C# -x "MapGuideCommonApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module MapGuideCommonUnmanagedApi -o \
"$(ProjectDir)MapGuideCommonUnmanagedApi_wrap.cpp" -outdir \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon" \
MapGuideCommonApi.i  del /Q \
                ..\..\..\Managed\DotNet\OSGeo.MapGuide.MapGuideCommon\MapGuideCommonUnmanagedApi.cs
                
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgMapGuideCommon*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgMapGuideCommon*.*" \
"$(TargetDir)\native\"  </Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\.. \
\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfMo \
del;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Com \
mon\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\. \
.\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfM \
odel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\ \
..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_WIN64;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/MapGuideCommonApiGen.xml
 ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/MapGuideCommonApiGen.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/MapGuideCommon/MapGuideCommonApiGen.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -58,7 +58,9 @@
   %import "../Foundation/FoundationApi.i"
   %import "../Geometry/GeometryApi.i"
   %import "../PlatformBase/PlatformBaseApi.i"
+#if defined(MG_CLASSIDGEN)
   %include "../../../../../Common/MapGuideCommon/System/MapGuideCommonClassId.h"
+#endif
 
 #if defined(PHPSWIG)
   // We force UTF-8 encoding for PHP

Copied: trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/CMakeLists.txt (from \
rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/PlatformBase/CMakeLists.txt)
 ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/CMakeLists.txt	             \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/CMakeLists.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1,70 @@
+project(PlatformBaseUnmanagedApi)
+
+set(PlatformBaseUnmanagedApi_SRCS
+    ${CMAKE_CURRENT_BINARY_DIR}/PlatformBaseUnmanagedApi_wrap.cpp
+)
+
+add_library(PlatformBaseUnmanagedApi SHARED ${PlatformBaseUnmanagedApi_SRCS})
+add_dependencies(PlatformBaseUnmanagedApi IMake)
+if (UNIX)
+    add_definitions(-DDOTNETCORE)
+    # NOTE: We don't care where this source is generated because the C# source is \
only built on windows +    set(MG_DOTNET_PROJECT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+    set_target_properties(PlatformBaseUnmanagedApi PROPERTIES INSTALL_RPATH \
"$ORIGIN") +endif (UNIX)
+if (MSVC)
+    add_definitions(-DSWIG_PUBLIC_API)
+    add_definitions(/bigobj)
+    set_target_properties(PlatformBaseUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY ${MG_DOTNET_OUTPUT_DIR} ) +    \
set_target_properties(PlatformBaseUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MG_DOTNET_OUTPUT_DIR} ) +    \
set_target_properties(PlatformBaseUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${MG_DOTNET_OUTPUT_DIR} ) +endif (MSVC)
+
+set(IMAKE_RELATIVE_RESOLUTION "-r ${CMAKE_CURRENT_SOURCE_DIR}")
+if (UNIX)
+    set(IMAKE_RELATIVE_RESOLUTION "-a")
+endif (UNIX)
+
+set(SWIG_DOTNET_DEFS "")
+if (WIN32)
+    set(SWIG_DOTNET_DEFS "-DWIN32")
+endif (WIN32)
+
+message(STATUS "Using IMake at: ${IMAKE_TOOL}")
+add_custom_command(OUTPUT ${PlatformBaseUnmanagedApi_SRCS}
+    COMMAND ${CMAKE_COMMAND} -E echo Removing: ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E remove -f 
+            ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E echo Regenerating: \
${MG_DOTNET_PROJECT_DIR}/Constants.cs +    COMMAND ${IMAKE_TOOL} -p \
${CMAKE_CURRENT_SOURCE_DIR}/PlatformBaseConstants.xml  +            -l "C#"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+            -t
+    COMMAND ${CMAKE_COMMAND} -E copy
+            ${CMAKE_CURRENT_BINARY_DIR}/../dotnetcore_split.i
+            ${CMAKE_CURRENT_BINARY_DIR}/language.i
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/PlatformBaseApiGen.xml
+            -l "C#"
+            -x "PlatformBaseApi"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${CMAKE_CURRENT_BINARY_DIR}
+    COMMAND ${CMAKE_COMMAND} -E echo Running SWIG [DotNet]. Output Dir: \
${MG_DOTNET_PROJECT_DIR} +    COMMAND ${SWIG_EXECUTABLE} -c++ -csharp 
+            ${SWIG_DOTNET_DEFS} -DDOTNETCORE -DSWIG_CSHARP_NO_EXCEPTION_HELPER
+            -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER
+            -namespace OSGeo.MapGuide
+            -nodefaultctor -nodefaultdtor
+            -module PlatformBaseUnmanagedApi
+            -o "${CMAKE_CURRENT_BINARY_DIR}/PlatformBaseUnmanagedApi_wrap.cpp"
+            -outdir "${MG_DOTNET_PROJECT_DIR}" 
+            "${CMAKE_CURRENT_BINARY_DIR}/PlatformBaseApi.i"
+)
+
+target_link_libraries(PlatformBaseUnmanagedApi
+    ${ACE_LIBRARY}
+    MgPlatformBase${MG_VERSION_SUFFIX}
+    ${XERCESC_LIBRARIES}
+)
+
+install( TARGETS PlatformBaseUnmanagedApi DESTINATION ${LIB_INSTALL_DIR} COMPONENT \
${MG_COMPONENT} ) \ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/PlatformBaseApi.vcxproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/PlatformBaseApi.vcxproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/PlatformBaseApi.vcxproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -57,19 +57,18 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\*.cs"  if exist \
"$(ProjectDir)PlatformBaseApi_Properties.i" del /Q \
                "$(ProjectDir)PlatformBaseApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)PlatformBaseConstants.xml" -l C# \
-o "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\Constants.cs" -t \
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)PlatformBaseConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\Constants.cs" -t  \
                copy "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)PlatformBaseApiGen.xml" -l C# -x \
"PlatformBaseApi" +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)PlatformBaseApiGen.xml" -l C# -x "PlatformBaseApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module PlatformBaseUnmanagedApi -o \
"$(ProjectDir)PlatformBaseUnmanagedApi_wrap.cpp" -outdir \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase" PlatformBaseApi.i  \
del /Q ..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\PlatformBaseUnmanagedApi.cs
                
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgMdfModel*.*" \
                "$(TargetDir)\native\"
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgMdfParser*.*" \
                "$(TargetDir)\native\"
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgPlatformBase*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgMdfParser*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgPlatformBase*.*" \
"$(TargetDir)\native\"  </Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\.. \
\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfMo \
del;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Com \
mon\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\. \
.\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfM \
odel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\ \
..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -97,19 +96,18 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\*.cs"  if exist \
"$(ProjectDir)PlatformBaseApi_Properties.i" del /Q \
                "$(ProjectDir)PlatformBaseApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)PlatformBaseConstants.xml" -l C# \
-o "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\Constants.cs" -t \
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)PlatformBaseConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\Constants.cs" -t  \
                copy "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)PlatformBaseApiGen.xml" -l C# -x \
"PlatformBaseApi" +"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)PlatformBaseApiGen.xml" -l C# -x "PlatformBaseApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module PlatformBaseUnmanagedApi -o \
"$(ProjectDir)PlatformBaseUnmanagedApi_wrap.cpp" -outdir \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase" PlatformBaseApi.i  \
del /Q ..\..\..\Managed\DotNet\OSGeo.MapGuide.PlatformBase\PlatformBaseUnmanagedApi.cs
                
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgMdfModel*.*" \
                "$(TargetDir)\native\"
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgMdfParser*.*" \
                "$(TargetDir)\native\"
-copy /Y "$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgPlatformBase*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgMdfParser*.*" \
"$(TargetDir)\native\" +copy /Y \
"$(ProjectDir)..\..\..\..\..\Common\bin\$(Configuration)64\MgPlatformBase*.*" \
"$(TargetDir)\native\"  </Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\.. \
\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfMo \
del;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Com \
mon\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\..\Web\src\HttpHandler;..\..\..\. \
.\..\..\Web\src\WebApp;..\..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfM \
odel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\ \
..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_WIN64;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/PlatformBaseApiGen.xml
 ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/PlatformBaseApiGen.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/PlatformBase/PlatformBaseApiGen.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -58,7 +58,9 @@
   // SWIG runtime glue code for $LANGUAGE isn't generated
   %import "../Foundation/FoundationApi.i"
   %import "../Geometry/GeometryApi.i"
+#if defined(MG_CLASSIDGEN)
   %include "../../../../../Common/PlatformBase/Services/PlatformBaseClassId.h"
+#endif
 
 #if defined(PHPSWIG)
   // We force UTF-8 encoding for PHP

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/README.md
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/README.md	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/README.md	2022-10-10 10:00:53 UTC (rev \
9973) @@ -5,16 +5,15 @@
 # Differences from the official .net binding
 
  * General
-    * This binding is back to being a monolithic assembly. A split assembly layout \
is not possible due to missing types in .net Core that made this possible in the full \
                framework (eg. AppDomain)
     * This assembly is not strong named.
     * In line with the .net core build system, the unit of consumption is a nuget \
                package.
-    * The nuget package is completely portable and self-contained. It contains both \
x86 and x64 windows binaries (and also includes a native interop binary for Ubuntu \
14.04 64-bit) and because it targets `netstandard2.0` it can be used in both .net \
Core and Full Framework. +    * The nuget package is completely portable and \
self-contained. It contains both x64 windows binaries and also includes native \
interop binaries for Linux x64 and because it targets `netstandard2.0` it can be used \
                in both .net Core and legacy .net "full" Framework (4.7.2 and \
                higher).
       * For full .net Framework, the package includes a MSBuild `.targets` file that \
will ensure that in the consuming project, the supporting windows binaries are copied \
                to the project's output directory
          * The project must be explicitly set to build for `x86` or `x64` (and not \
                `AnyCPU`) for supporting binaries to be copied.
-    * If you intend to develop/deploy your .net application on .net Core on Linux, \
the only supported Linux distro is the one that official MapGuide binaries are \
provided for: Ubuntu 14.04 64-bit. The nuget package includes the necessary native \
interop library. +    * If you intend to develop/deploy your .net application on .net \
Core on Linux, the only supported Linux distro is the one that official MapGuide \
binaries are provided for: Ubuntu 16.04 64-bit. The nuget package includes the \
necessary native interop library. You may attempt to deploy on other distros where \
                .net Core is supported at your own risk.
  * API
     * General
-       * The ```(IntPtr cPtr, bool memOwn)``` constructor signature is no longer \
public. This was always for SWIG internal use and should not be public.  +       * \
The ```(IntPtr cPtr, bool memOwn)``` constructor signature is no longer public except \
for types where it is being subclassed by types in other MapGuide assemblies. This \
                was always for SWIG internal use and should not be used by anyting \
                other than SWIG. 
     * MgColor
        * There is no overload that accepts ```System.Drawing.Color``` as a \
                parameter. (```System.Drawing``` does not exist in .net core)
     * MgStringCollection

Copied: trunk/MgDev/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt (from rev 9811, \
sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt) \
                ===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt	                      \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -0,0 +1,75 @@
+project(WebUnmanagedApi)
+
+set(WebUnmanagedApi_SRCS
+    ${CMAKE_CURRENT_BINARY_DIR}/WebUnmanagedApi_wrap.cpp
+)
+
+file(COPY "../InitializeWebTier.cpp" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+file(COPY "InitializeWebTier.i" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+
+add_library(WebUnmanagedApi SHARED ${WebUnmanagedApi_SRCS})
+add_dependencies(WebUnmanagedApi IMake)
+if (UNIX)
+    add_definitions(-DDOTNETCORE)
+    # NOTE: We don't care where this source is generated because the C# source is \
only built on windows +    set(MG_DOTNET_PROJECT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+    set_target_properties(WebUnmanagedApi PROPERTIES INSTALL_RPATH "$ORIGIN")
+endif (UNIX)
+if (MSVC)
+    add_definitions(-DSWIG_PUBLIC_API)
+    add_definitions(/bigobj)
+    set_target_properties(WebUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY \
${MG_DOTNET_OUTPUT_DIR} ) +    set_target_properties(WebUnmanagedApi PROPERTIES \
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MG_DOTNET_OUTPUT_DIR} ) +    \
set_target_properties(WebUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE \
${MG_DOTNET_OUTPUT_DIR} ) +endif (MSVC)
+
+set(IMAKE_RELATIVE_RESOLUTION "-r ${CMAKE_CURRENT_SOURCE_DIR}")
+if (UNIX)
+    set(IMAKE_RELATIVE_RESOLUTION "-a")
+endif (UNIX)
+
+set(SWIG_DOTNET_DEFS "")
+if (WIN32)
+    set(SWIG_DOTNET_DEFS "-DWIN32")
+endif (WIN32)
+
+message(STATUS "Using IMake at: ${IMAKE_TOOL}")
+add_custom_command(OUTPUT ${WebUnmanagedApi_SRCS}
+    COMMAND ${CMAKE_COMMAND} -E echo Removing: ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E remove -f 
+            ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E echo Regenerating: \
${MG_DOTNET_PROJECT_DIR}/Constants.cs +    COMMAND ${IMAKE_TOOL} -p \
${CMAKE_CURRENT_SOURCE_DIR}/WebConstants.xml  +            -l "C#"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+            -t
+    COMMAND ${CMAKE_COMMAND} -E copy
+            ${CMAKE_CURRENT_BINARY_DIR}/../dotnetcore_split.i
+            ${CMAKE_CURRENT_BINARY_DIR}/language.i
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/WebApiGen.xml
+            -l "C#"
+            -x "WebApi"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${CMAKE_CURRENT_BINARY_DIR}
+    COMMAND ${CMAKE_COMMAND} -E echo Running SWIG [DotNet]. Output Dir: \
${MG_DOTNET_PROJECT_DIR} +    COMMAND ${SWIG_EXECUTABLE} -c++ -csharp 
+            ${SWIG_DOTNET_DEFS} -DDOTNETCORE -DSWIG_CSHARP_NO_EXCEPTION_HELPER
+            -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER
+            -namespace OSGeo.MapGuide
+            -nodefaultctor -nodefaultdtor
+            -module WebUnmanagedApi
+            -o "${CMAKE_CURRENT_BINARY_DIR}/WebUnmanagedApi_wrap.cpp"
+            -outdir "${MG_DOTNET_PROJECT_DIR}" 
+            "${CMAKE_CURRENT_BINARY_DIR}/WebApi.i"
+)
+
+target_link_libraries(WebUnmanagedApi
+    ${ACE_LIBRARY}
+    MgWebApp${MG_VERSION_SUFFIX}
+    MgHttpHandler${MG_VERSION_SUFFIX}
+    MgWebSupport${MG_VERSION_SUFFIX}
+    ${XERCESC_LIBRARIES}
+)
+
+install( TARGETS WebUnmanagedApi DESTINATION ${LIB_INSTALL_DIR} COMPONENT \
${MG_COMPONENT} )

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/Web/WebApi.vcxproj
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Web/WebApi.vcxproj	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Web/WebApi.vcxproj	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -57,9 +57,9 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\*.cs"  if exist \
                "$(ProjectDir)WebApi_Properties.i" del /Q \
                "$(ProjectDir)WebApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)WebConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\Constants.cs" -t \
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)WebConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\Constants.cs" -t  copy \
                "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)WebApiGen.xml" -l C# -x "WebApi"
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)WebApiGen.xml" -l C# -x "WebApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module WebUnmanagedApi -o "$(ProjectDir)WebUnmanagedApi_wrap.cpp" \
-outdir "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web" WebApi.i  del /Q \
..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\WebUnmanagedApi.cs  copy /Y \
"$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgHttpHandler*.*" \
"$(TargetDir)\native\" @@ -70,7 +70,7 @@
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\Web\src\HttpHandler;..\..\..\..\.. \
\Web\src\WebApp;..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfModel;..\.. \
\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Common\Platf \
ormBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\Web\src\HttpHandler;..\..\..\..\. \
.\Web\src\WebApp;..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfModel;..\. \
.\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\..\Common \
\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -98,9 +98,9 @@
     <PreBuildEvent>
       <Command>if exist \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\*.cs" del /Q \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\*.cs"  if exist \
                "$(ProjectDir)WebApi_Properties.i" del /Q \
                "$(ProjectDir)WebApi_Properties.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)WebConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\Constants.cs" -t \
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)WebConstants.xml" -l C# -o \
"$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\Constants.cs" -t  copy \
                "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
-"..\..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)WebApiGen.xml" -l C# -x "WebApi"
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)WebApiGen.xml" -l C# -x "WebApi"  \
"..\..\..\Tools\swig\install\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 \
-DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER \
-DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor \
-nodefaultdtor -module WebUnmanagedApi -o "$(ProjectDir)WebUnmanagedApi_wrap.cpp" \
-outdir "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Web" WebApi.i  del /Q \
..\..\..\Managed\DotNet\OSGeo.MapGuide.Web\WebUnmanagedApi.cs  copy /Y \
"$(ProjectDir)..\..\..\..\..\Web\bin\$(Configuration)64\MgHttpHandler*.*" \
"$(TargetDir)\native\" @@ -111,7 +111,7 @@
     </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\..\Web\src\HttpHandler;..\..\..\..\.. \
\Web\src\WebApp;..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfModel;..\.. \
\..\..\..\Common\Foundation;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Common\Platf \
ormBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\..\Web\src\HttpHandler;..\..\..\..\. \
.\Web\src\WebApp;..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfModel;..\. \
.\..\..\..\Common\Foundation;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\..\Common \
\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Common\MapGuideCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_WIN64;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/Web/WebApiGen.xml
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Web/WebApiGen.xml	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Web/WebApiGen.xml	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -69,8 +69,10 @@
   %import "../MapGuideCommon/MapGuideCommonApi.i"
   
   %include "InitializeWebTier.i"
+#if defined(MG_CLASSIDGEN)
   %include "../../../../../Web/src/WebApp/WebAppClassId.h"
   %include "../../../../../Web/src/HttpHandler/HttpHandlerClassId.h"
+#endif
 
 #if defined(PHPSWIG)
   // We force UTF-8 encoding for PHP

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/dotnetcore.i
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/dotnetcore.i	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/dotnetcore.i	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -16,10 +16,10 @@
 //
 %include <wchar.i>
 %include "MapGuideApi_Properties.i"
-%include "../Common/DotNet/string.i"
-%include "../Common/DotNet/coreclr_compat.i"
-%include "../Common/DotNet/sugar.i"
-%include "../Common/DotNet/custom.i"
+%include "../../SwigCommon/DotNet/string.i"
+%include "../../SwigCommon/DotNet/coreclr_compat.i"
+%include "../../SwigCommon/DotNet/sugar.i"
+%include "../../SwigCommon/DotNet/custom.i"
 
 // Add default namespaces for all generated proxies
 %typemap(csimports) SWIGTYPE %{
@@ -42,7 +42,7 @@
 %ignore MgObject::GetClassId;
 %ignore MgObject::GetClassName;
 
-%include "../Common/refcount.i"
+%include "../../SwigCommon/refcount.i"
 
 // Have these collections implement the .net collection interfaces
 IMPLEMENT_LIST(MgClassDefinitionCollection, MgClassDefinition)
@@ -130,7 +130,7 @@
     xstring u16String;
     UnicodeString::UTF32toUTF16((const LCh*) $1.c_str(), u16String);
     $result = mg_string_callback((int)(u16String.length()+1)*sizeof(LCh));
-    XMLString::copyString((XMLCh*)$result, u16String.c_str());
+    MgUtil::copyString((XMLCh*)$result, u16String.c_str());
 }
 #endif
 #else

Modified: trunk/MgDev/Bindings/src/Bindings/DotNet/dotnetcore_split.i
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/dotnetcore_split.i	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/dotnetcore_split.i	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -15,10 +15,10 @@
 //  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 %include <wchar.i>
-%include "../../Common/DotNet/string.i"
-%include "../../Common/DotNet/coreclr_compat.i"
-%include "../../Common/DotNet/sugar.i"
-%include "../../Common/DotNet/custom.i"
+%include "../../../SwigCommon/DotNet/string.i"
+%include "../../../SwigCommon/DotNet/coreclr_compat.i"
+%include "../../../SwigCommon/DotNet/sugar.i"
+%include "../../../SwigCommon/DotNet/custom.i"
 
 // Add default namespaces for all generated proxies
 %typemap(csimports) SWIGTYPE %{
@@ -41,7 +41,7 @@
 %ignore MgObject::GetClassId;
 %ignore MgObject::GetClassName;
 
-%include "../../Common/refcount.i"
+%include "../../../SwigCommon/refcount.i"
 
 // Have these collections implement the .net collection interfaces
 IMPLEMENT_LIST(MgClassDefinitionCollection, MgClassDefinition)
@@ -129,7 +129,7 @@
     xstring u16String;
     UnicodeString::UTF32toUTF16((const LCh*) $1.c_str(), u16String);
     $result = mg_string_callback((int)(u16String.length()+1)*sizeof(LCh));
-    XMLString::copyString((XMLCh*)$result, u16String.c_str());
+    MgUtil::copyString((XMLCh*)$result, u16String.c_str());
 }
 #endif
 #else

Modified: trunk/MgDev/Bindings/src/Bindings/Java/JavaApi.vcxproj
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/Java/JavaApi.vcxproj	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/Java/JavaApi.vcxproj	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -38,10 +38,10 @@
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
     <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\packages\Java\$(Configuration)\x64\</OutDir>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\packages\Java\$(Configuration)\x64\</OutDir>
                
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\obj\$(Configuration)64\JavaApi\</IntDir>
                
     <LinkIncremental \
                Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
                
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\packages\Java\$(Configuration)\x64\</OutDir>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\packages\Java\$(Configuration)\x64\</OutDir>
                
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\obj\$(Configuration)64\JavaApi\</IntDir>
                
     <LinkIncremental \
                Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
                
     <CodeAnalysisRuleSet \
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 @@ -55,9 +55,9 @@
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <PreBuildEvent>
-      <Command>"..\..\IMake\Win32\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\Constants.xml" -l Java -o . -t +      \
<Command>"..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\Constants.xml" -l Java -o . -t  copy .\java.i \
                .\language.i
-"..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)..\MapGuideApi\MapGuideApiGen.xml" -l \
Java +"..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\MapGuideApiGen.xml" -l Java  \
"..\..\Tools\swig\install\swig.exe" -c++ -java -DJAVA -DWIN32 -package \
org.osgeo.mapguide -nodefaultctor -nodefaultdtor -module MapGuideJavaApi -o \
MgApi_wrap.cpp MapGuideApi.i  move /Y "$(ProjectDir)*.java" \
"$(ProjectDir)..\..\Managed\Java\org\osgeo\mapguide"  if exist \
"$(ProjectDir)..\..\Managed\Java\org\osgeo\mapguide\*.class" del \
"$(ProjectDir)..\..\Managed\Java\org\osgeo\mapguide\*.class"</Command> @@ -64,7 +64,7 \
@@  </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\Web\src\HttpHandler;..\..\..\..\Web\s \
rc\WebApp;..\..\..\..\Web\src\WebSupport;..\..\..\..\Common\MdfModel;..\..\..\..\Commo \
n\Foundation;..\..\..\..\Common\Geometry;..\..\..\..\Common\PlatformBase;..\..\..\..\C \
ommon\MapGuideCommon;$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\Web\src\HttpHandler;..\..\..\..\Web\ \
src\WebApp;..\..\..\..\Web\src\WebSupport;..\..\..\..\Common\MdfModel;..\..\..\..\Comm \
on\Foundation;..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\Common\Geometry;..\..\..\.. \
\Common\PlatformBase;..\..\..\..\Common\MapGuideCommon;$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;JAVA;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -92,17 +92,19 @@
 echo Building java classes...
 "$(JAVA_HOME)\bin\javac" -classpath . org\osgeo\mapguide\*.java
 echo Building JAR file
-"$(JAVA_HOME)\bin\jar" cf \
$(SolutionDir)..\..\packages\Java\Release\x64\MapGuideApi.jar \
org\osgeo\mapguide\*.class +"$(JAVA_HOME)\bin\jar" cf \
$(SolutionDir)..\..\..\packages\Java\Release\x64\MapGuideApi.jar \
org\osgeo\mapguide\*.class  echo Building -sources JAR file
-"$(JAVA_HOME)\bin\jar" cf  \
$(SolutionDir)..\..\packages\Java\Release\x64\MapGuideApi-sources.jar \
org\osgeo\mapguide\*.java +"$(JAVA_HOME)\bin\jar" cf  \
$(SolutionDir)..\..\..\packages\Java\Release\x64\MapGuideApi-sources.jar \
org\osgeo\mapguide\*.java +rem echo Building javadoc
+rem "$(JAVA_HOME)\bin\javadoc" -d \
$(SolutionDir)..\..\..\packages\Java\Release\x64\html org\osgeo\mapguide\*.java  \
popd</Command>  </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <PreBuildEvent>
-      <Command>"..\..\IMake\Win32\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\Constants.xml" -l Java -o . -t +      \
<Command>"..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\Constants.xml" -l Java -o . -t  copy .\java.i \
                .\language.i
-"..\..\IMake\Win32\IMake.exe" -p "$(ProjectDir)..\MapGuideApi\MapGuideApiGen.xml" -l \
Java +"..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p \
"$(ProjectDir)..\MapGuideApi\MapGuideApiGen.xml" -l Java  \
"..\..\Tools\swig\install\swig.exe" -c++ -java -DJAVA -DWIN32 -package \
org.osgeo.mapguide -nodefaultctor -nodefaultdtor -module MapGuideJavaApi -o \
MgApi_wrap.cpp MapGuideApi.i  move /Y *.java \
"$(ProjectDir)..\..\Managed\Java\org\osgeo\mapguide"  if exist \
"$(ProjectDir)..\..\Managed\Java\org\osgeo\mapguide\*.class" del \
"$(ProjectDir)..\..\Managed\Java\org\osgeo\mapguide\*.class"</Command> @@ -109,7 \
+111,7 @@  </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\..\Web\src\HttpHandler;..\..\..\..\Web\s \
rc\WebApp;..\..\..\..\Web\src\WebSupport;..\..\..\..\Common\MdfModel;..\..\..\..\Commo \
n\Foundation;..\..\..\..\Common\Geometry;..\..\..\..\Common\PlatformBase;..\..\..\..\C \
ommon\MapGuideCommon;$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>..\..\..\..\Web\src\HttpHandler;..\..\..\..\Web\ \
src\WebApp;..\..\..\..\Web\src\WebSupport;..\..\..\..\Common\MdfModel;..\..\..\..\Comm \
on\Foundation;..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\Common\Geometry;..\..\..\.. \
\Common\PlatformBase;..\..\..\..\Common\MapGuideCommon;$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
                
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;JAVA;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -138,9 +140,11 @@
 echo Building java classes...
 "$(JAVA_HOME)\bin\javac" -classpath . org\osgeo\mapguide\*.java
 echo Building JAR file
-"$(JAVA_HOME)\bin\jar" cf \
$(SolutionDir)..\..\packages\Java\Release\x64\MapGuideApi.jar \
org\osgeo\mapguide\*.class +"$(JAVA_HOME)\bin\jar" cf \
$(SolutionDir)..\..\..\packages\Java\Release\x64\MapGuideApi.jar \
org\osgeo\mapguide\*.class  echo Building -sources JAR file
-"$(JAVA_HOME)\bin\jar" cf  \
$(SolutionDir)..\..\packages\Java\Release\x64\MapGuideApi-sources.jar \
org\osgeo\mapguide\*.java +"$(JAVA_HOME)\bin\jar" cf  \
$(SolutionDir)..\..\..\packages\Java\Release\x64\MapGuideApi-sources.jar \
org\osgeo\mapguide\*.java +rem echo Building javadoc
+rem "$(JAVA_HOME)\bin\javadoc" -d \
$(SolutionDir)..\..\..\packages\Java\Release\x64\html org\osgeo\mapguide\*.java  \
popd</Command>  </PostBuildEvent>
   </ItemDefinitionGroup>

Modified: trunk/MgDev/Bindings/src/Bindings/Java/README.md
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/Java/README.md	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Bindings/src/Bindings/Java/README.md	2022-10-10 10:00:53 UTC (rev \
9973) @@ -7,15 +7,15 @@
 Reference `MapGuideApi.jar` like you would any other java jar library and make sure \
that the `java.library.path` of your root Java application contains the path to:  
  * `MapGuideJavaApi.dll` and supporting dlls on Windows
- * `libMapGuideJavaApi.so` on Linux. The zip package includes distro-specific builds \
of this library, make sure to use the correct library for your distro. All builds of \
this library have their RPATH set to `/usr/local/mapguideopensource-3.1.1/lib` and \
`/usr/local/mapguideopensource-3.1.1/webserverextensions/lib`, so any dependent \
libraries of `libMapGuideJavaApi.so` will be automatically detected and loaded \
assuming you have MapGuide Open Source 3.1.1 already installed. + * \
`libMapGuideJavaApi.so` on Linux. The zip package includes distro-specific builds of \
this library, make sure to use the correct library for your distro. All builds of \
this library have their RPATH set to `/usr/local/mapguideopensource-4.0.0/lib` and \
`/usr/local/mapguideopensource-4.0.0/webserverextensions/lib`, so any dependent \
libraries of `libMapGuideJavaApi.so` will be automatically detected and loaded \
assuming you have MapGuide Open Source 3.1.1 already installed.  
 # Overview of differences
 
-This wrapper is based on the `MapGuideJavaApiEx` variant of the official Java \
binding ([original RFC here](https://trac.osgeo.org/mapguide/wiki/MapGuideRfc129)), \
and carries most of its changes/differences: +This wrapper is based on and replaces \
the previous `MapGuideJavaApiEx` variant of the official Java binding ([original RFC \
here](https://trac.osgeo.org/mapguide/wiki/MapGuideRfc129)), and carries most of its \
changes/differences (detailed below to recap):  
 ## 1. Minimum Java version
 
-This binding was built with JDK 7
+This binding was built with JDK 8
 
 ## 2. `MgException`/`AppThrowable` is no longer a checked exception
 

Modified: trunk/MgDev/Bindings/src/Bindings/Java/java.i
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/Java/java.i	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/Java/java.i	2022-10-10 10:00:53 UTC (rev 9973)
@@ -15,9 +15,9 @@
 //  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-%include "../Common/Java/exception.i"
-%include "../Common/Java/monkey_patch.i"
-%include "../Common/Java/extensions.i"
+%include "../../SwigCommon/Java/exception.i"
+%include "../../SwigCommon/Java/monkey_patch.i"
+%include "../../SwigCommon/Java/extensions.i"
 
 //Required JNI bootstrap
 %pragma(java) jniclasscode=%{
@@ -40,7 +40,7 @@
 // These methods have to be invoked C-style
 %ignore MgObject::GetClassName;
 
-%include "../Common/refcount.i"
+%include "../../SwigCommon/refcount.i"
 
 %typemap(jni) STRINGPARAM "jstring"
 %typemap(jtype) STRINGPARAM "String"

Modified: trunk/MgDev/Bindings/src/Bindings/MapGuideApi/MapGuideApiGen.xml
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/MapGuideApi/MapGuideApiGen.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/MapGuideApi/MapGuideApiGen.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -63,6 +63,7 @@
 <SwigInline>
   %include "MapGuideApi_Doc.i" //translated doxygen fragments
   %include "language.i"   //typemaps specific for each language
+#if defined(MG_CLASSIDGEN)
   %include "../../../../Common/Foundation/System/FoundationClassId.h"
   %include "../../../../Common/Geometry/GeometryClassId.h"
   %include "../../../../Common/PlatformBase/Services/PlatformBaseClassId.h"
@@ -69,6 +70,7 @@
   %include "../../../../Common/MapGuideCommon/System/MapGuideCommonClassId.h"
   %include "../../../../Web/src/WebApp/WebAppClassId.h"
   %include "../../../../Web/src/HttpHandler/HttpHandlerClassId.h"
+#endif
 
 #if defined(PHPSWIG)
   // We force UTF-8 encoding for PHP
@@ -195,6 +197,7 @@
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h" \
                />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h" \
                />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h" \
/> +    <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h" \
                />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h" \
                />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemDictionary.h" \
                />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryUtility.h" \
/>

Modified: trunk/MgDev/Bindings/src/Bindings/Php/PhpClassMap.cpp
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/Php/PhpClassMap.cpp	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/Php/PhpClassMap.cpp	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -6,11 +6,7 @@
 
     classNameMap[20004] = "_p_MgAgfReaderWriter";
     classNameMap[20005] = "_p_MgAggregateGeometry";
-    classNameMap[1500] = "_p_MgApplicationException";
     classNameMap[20006] = "_p_MgArcSegment";
-    classNameMap[1501] = "_p_MgArgumentOutOfRangeException";
-    classNameMap[10500] = "_p_MgArrayTypeMismatchException";
-    classNameMap[30000] = "_p_MgAuthenticationFailedException";
     classNameMap[1005] = "_p_MgBatchPropertyCollection";
     classNameMap[10252] = "_p_MgBlobProperty";
     classNameMap[10253] = "_p_MgBooleanProperty";
@@ -20,22 +16,15 @@
     classNameMap[1251] = "_p_MgByteSource";
     classNameMap[11750] = "_p_MgClassDefinition";
     classNameMap[11780] = "_p_MgClassDefinitionCollection";
-    classNameMap[1502] = "_p_MgClassNotFoundException";
     classNameMap[10255] = "_p_MgClobProperty";
     classNameMap[10250] = "_p_MgColor";
-    classNameMap[1503] = "_p_MgConfigurationException";
-    classNameMap[1504] = "_p_MgConfigurationLoadFailedException";
-    classNameMap[1505] = "_p_MgConfigurationSaveFailedException";
-    classNameMap[30001] = "_p_MgConnectionFailedException";
-    classNameMap[30002] = "_p_MgConnectionNotOpenException";
     classNameMap[20003] = "_p_MgCoordinate";
+    classNameMap[20008] = "_p_MgCoordinateCollection";
     classNameMap[20009] = "_p_MgCoordinateIterator";
     classNameMap[20500] = "_p_MgCoordinateSystem";
     classNameMap[20504] = "_p_MgCoordinateSystemCatalog";
     classNameMap[20506] = "_p_MgCoordinateSystemCategory";
     classNameMap[20510] = "_p_MgCoordinateSystemCategoryDictionary";
-    classNameMap[21000] = "_p_MgCoordinateSystemComputationFailedException";
-    classNameMap[21001] = "_p_MgCoordinateSystemConversionFailedException";
     classNameMap[20507] = "_p_MgCoordinateSystemDatum";
     classNameMap[20512] = "_p_MgCoordinateSystemDatumDictionary";
     classNameMap[20511] = "_p_MgCoordinateSystemDictionary";
@@ -54,9 +43,11 @@
     classNameMap[20533] = "_p_MgCoordinateSystemGeodeticPath";
     classNameMap[20535] = "_p_MgCoordinateSystemGeodeticPathDictionary";
     classNameMap[20534] = "_p_MgCoordinateSystemGeodeticPathElement";
+    classNameMap[20546] = \
"_p_MgCoordinateSystemGeodeticStandaloneTransformDefParams";  classNameMap[20508] = \
"_p_MgCoordinateSystemGeodeticTransformation";  classNameMap[20536] = \
                "_p_MgCoordinateSystemGeodeticTransformDef";
     classNameMap[20540] = "_p_MgCoordinateSystemGeodeticTransformDefDictionary";
+    classNameMap[20541] = "_p_MgCoordinateSystemGeodeticTransformDefParams";
     classNameMap[20545] = "_p_MgCoordinateSystemGeodeticTransformGridFile";
     classNameMap[20532] = "_p_MgCoordinateSystemGridBase";
     classNameMap[20524] = "_p_MgCoordinateSystemGridBoundary";
@@ -67,15 +58,11 @@
     classNameMap[20525] = "_p_MgCoordinateSystemGridSpecification";
     classNameMap[20531] = "_p_MgCoordinateSystemGridTick";
     classNameMap[20528] = "_p_MgCoordinateSystemGridTickCollection";
-    classNameMap[21002] = "_p_MgCoordinateSystemInitializationFailedException";
-    classNameMap[21003] = "_p_MgCoordinateSystemLoadFailedException";
     classNameMap[20518] = "_p_MgCoordinateSystemMathComparator";
     classNameMap[20502] = "_p_MgCoordinateSystemMeasure";
-    classNameMap[21004] = "_p_MgCoordinateSystemMeasureFailedException";
     classNameMap[20522] = "_p_MgCoordinateSystemMgrs";
     classNameMap[20520] = "_p_MgCoordinateSystemProjectionInformation";
     classNameMap[20503] = "_p_MgCoordinateSystemTransform";
-    classNameMap[21005] = "_p_MgCoordinateSystemTransformFailedException";
     classNameMap[20519] = "_p_MgCoordinateSystemUnitInformation";
     classNameMap[20048] = "_p_MgCoordinateXY";
     classNameMap[20051] = "_p_MgCoordinateXYM";
@@ -93,41 +80,15 @@
     classNameMap[11751] = "_p_MgDataPropertyDefinition";
     classNameMap[11773] = "_p_MgDataReader";
     classNameMap[1256] = "_p_MgDateTime";
-    classNameMap[1506] = "_p_MgDateTimeException";
     classNameMap[10256] = "_p_MgDateTimeProperty";
-    classNameMap[30003] = "_p_MgDbException";
-    classNameMap[30004] = "_p_MgDbXmlException";
-    classNameMap[1507] = "_p_MgDecryptionException";
     classNameMap[11775] = "_p_MgDeleteFeatures";
-    classNameMap[1508] = "_p_MgDirectoryNotFoundException";
+    classNameMap[2251] = "_p_MgDisposable";
     classNameMap[1000] = "_p_MgDisposableCollection";
-    classNameMap[1509] = "_p_MgDivideByZeroException";
-    classNameMap[1510] = "_p_MgDomainException";
     classNameMap[10257] = "_p_MgDoubleProperty";
     classNameMap[30700] = "_p_MgDrawingService";
-    classNameMap[1511] = "_p_MgDuplicateDirectoryException";
-    classNameMap[1512] = "_p_MgDuplicateFileException";
-    classNameMap[30005] = "_p_MgDuplicateGroupException";
-    classNameMap[30006] = "_p_MgDuplicateNameException";
-    classNameMap[1513] = "_p_MgDuplicateObjectException";
-    classNameMap[30007] = "_p_MgDuplicateParameterException";
-    classNameMap[30008] = "_p_MgDuplicateRepositoryException";
-    classNameMap[10501] = "_p_MgDuplicateResourceDataException";
-    classNameMap[10502] = "_p_MgDuplicateResourceException";
-    classNameMap[30009] = "_p_MgDuplicateRoleException";
-    classNameMap[30010] = "_p_MgDuplicateServerException";
-    classNameMap[30011] = "_p_MgDuplicateSessionException";
-    classNameMap[30012] = "_p_MgDuplicateUserException";
-    classNameMap[30013] = "_p_MgDwfException";
-    classNameMap[30014] = "_p_MgDwfSectionNotFoundException";
-    classNameMap[30015] = "_p_MgDwfSectionResourceNotFoundException";
     classNameMap[30901] = "_p_MgDwfVersion";
-    classNameMap[10503] = "_p_MgEmptyFeatureSetException";
-    classNameMap[1514] = "_p_MgEncryptionException";
-    classNameMap[30016] = "_p_MgEndOfStreamException";
     classNameMap[20001] = "_p_MgEnvelope";
     classNameMap[1515] = "_p_MgException";
-    classNameMap[10504] = "_p_MgFdoException";
     classNameMap[11772] = "_p_MgFeatureAggregateOptions";
     classNameMap[11774] = "_p_MgFeatureCommandCollection";
     classNameMap[31001] = "_p_MgFeatureInformation";
@@ -137,20 +98,16 @@
     classNameMap[11778] = "_p_MgFeatureSchema";
     classNameMap[11779] = "_p_MgFeatureSchemaCollection";
     classNameMap[11754] = "_p_MgFeatureService";
-    classNameMap[10505] = "_p_MgFeatureServiceException";
     classNameMap[11786] = "_p_MgFileFeatureSourceParams";
-    classNameMap[1516] = "_p_MgFileIoException";
-    classNameMap[1517] = "_p_MgFileNotFoundException";
     classNameMap[20016] = "_p_MgGeometricEntity";
     classNameMap[11756] = "_p_MgGeometricPropertyDefinition";
-    classNameMap[20019] = "_p_MgGeometry";
+    classNameMap[11757] = "_p_MgGeometry";
     classNameMap[20020] = "_p_MgGeometryCollection";
     classNameMap[20021] = "_p_MgGeometryComponent";
-    classNameMap[21006] = "_p_MgGeometryException";
     classNameMap[20002] = "_p_MgGeometryFactory";
     classNameMap[11758] = "_p_MgGeometryProperty";
+    classNameMap[20054] = "_p_MgGeometrySimplifier";
     classNameMap[11785] = "_p_MgGeometryTypeInfo";
-    classNameMap[30018] = "_p_MgGroupNotFoundException";
     classNameMap[11782] = "_p_MgGwsFeatureReader";
     classNameMap[40000] = "_p_MgHttpHeader";
     classNameMap[40006] = "_p_MgHttpPrimitiveValue";
@@ -159,41 +116,11 @@
     classNameMap[40001] = "_p_MgHttpRequestParam";
     classNameMap[40005] = "_p_MgHttpResponse";
     classNameMap[40003] = "_p_MgHttpResult";
-    classNameMap[1518] = "_p_MgIndexOutOfRangeException";
     classNameMap[11776] = "_p_MgInsertFeatures";
     classNameMap[10258] = "_p_MgInt16Property";
     classNameMap[10259] = "_p_MgInt32Property";
     classNameMap[10260] = "_p_MgInt64Property";
     classNameMap[10000] = "_p_MgIntCollection";
-    classNameMap[1519] = "_p_MgInvalidArgumentException";
-    classNameMap[1520] = "_p_MgInvalidCastException";
-    classNameMap[21007] = "_p_MgInvalidCoordinateSystemException";
-    classNameMap[21008] = "_p_MgInvalidCoordinateSystemTypeException";
-    classNameMap[21009] = "_p_MgInvalidCoordinateSystemUnitsException";
-    classNameMap[30019] = "_p_MgInvalidDwfPackageException";
-    classNameMap[30020] = "_p_MgInvalidDwfSectionException";
-    classNameMap[30021] = "_p_MgInvalidFeatureSourceException";
-    classNameMap[30022] = "_p_MgInvalidIpAddressException";
-    classNameMap[30023] = "_p_MgInvalidLicenseException";
-    classNameMap[30024] = "_p_MgInvalidLogEntryException";
-    classNameMap[10507] = "_p_MgInvalidMapDefinitionException";
-    classNameMap[1522] = "_p_MgInvalidOperationException";
-    classNameMap[30026] = "_p_MgInvalidPasswordException";
-    classNameMap[30027] = "_p_MgInvalidPrintLayoutFontSizeUnitsException";
-    classNameMap[30028] = "_p_MgInvalidPrintLayoutPositionUnitsException";
-    classNameMap[30029] = "_p_MgInvalidPrintLayoutSizeUnitsException";
-    classNameMap[1523] = "_p_MgInvalidPropertyTypeException";
-    classNameMap[10508] = "_p_MgInvalidRepositoryNameException";
-    classNameMap[10509] = "_p_MgInvalidRepositoryTypeException";
-    classNameMap[10510] = "_p_MgInvalidResourceDataNameException";
-    classNameMap[10511] = "_p_MgInvalidResourceDataTypeException";
-    classNameMap[10512] = "_p_MgInvalidResourceNameException";
-    classNameMap[10513] = "_p_MgInvalidResourcePathException";
-    classNameMap[10514] = "_p_MgInvalidResourcePreProcessingTypeException";
-    classNameMap[10515] = "_p_MgInvalidResourceTypeException";
-    classNameMap[30031] = "_p_MgInvalidServerNameException";
-    classNameMap[1524] = "_p_MgInvalidStreamHeaderException";
-    classNameMap[1525] = "_p_MgIoException";
     classNameMap[31300] = "_p_MgKmlService";
     classNameMap[30501] = "_p_MgLayer";
     classNameMap[12003] = "_p_MgLayerBase";
@@ -200,17 +127,12 @@
     classNameMap[12002] = "_p_MgLayerCollection";
     classNameMap[12001] = "_p_MgLayerGroup";
     classNameMap[12004] = "_p_MgLayerGroupCollection";
-    classNameMap[10517] = "_p_MgLayerNotFoundException";
     classNameMap[30904] = "_p_MgLayout";
-    classNameMap[1526] = "_p_MgLengthException";
-    classNameMap[30032] = "_p_MgLicenseException";
-    classNameMap[30033] = "_p_MgLicenseExpiredException";
     classNameMap[20023] = "_p_MgLinearRing";
     classNameMap[20053] = "_p_MgLinearRingCollection";
     classNameMap[20024] = "_p_MgLinearSegment";
     classNameMap[20042] = "_p_MgLineString";
     classNameMap[20044] = "_p_MgLineStringCollection";
-    classNameMap[1527] = "_p_MgLogicException";
     classNameMap[11766] = "_p_MgLongTransactionReader";
     classNameMap[30500] = "_p_MgMap";
     classNameMap[12000] = "_p_MgMapBase";
@@ -218,6 +140,8 @@
     classNameMap[30900] = "_p_MgMappingService";
     classNameMap[30905] = "_p_MgMapPlot";
     classNameMap[30906] = "_p_MgMapPlotCollection";
+    classNameMap[20027] = "_p_MgMeasure";
+    classNameMap[31003] = "_p_MgMetatile";
     classNameMap[20029] = "_p_MgMultiCurvePolygon";
     classNameMap[20030] = "_p_MgMultiCurveString";
     classNameMap[20031] = "_p_MgMultiGeometry";
@@ -224,34 +148,21 @@
     classNameMap[20032] = "_p_MgMultiLineString";
     classNameMap[20033] = "_p_MgMultiPoint";
     classNameMap[20034] = "_p_MgMultiPolygon";
-    classNameMap[1528] = "_p_MgNotFiniteNumberException";
-    classNameMap[1529] = "_p_MgNotImplementedException";
-    classNameMap[1530] = "_p_MgNullArgumentException";
-    classNameMap[1531] = "_p_MgNullPropertyValueException";
-    classNameMap[1532] = "_p_MgNullReferenceException";
-    classNameMap[1533] = "_p_MgObjectNotFoundException";
+    classNameMap[2252] = "_p_MgObject";
     classNameMap[11759] = "_p_MgObjectPropertyDefinition";
-    classNameMap[30035] = "_p_MgOperationProcessingException";
-    classNameMap[1534] = "_p_MgOutOfMemoryException";
-    classNameMap[1535] = "_p_MgOutOfRangeException";
-    classNameMap[1536] = "_p_MgOverflowException";
     classNameMap[30604] = "_p_MgPackageStatusInformation";
     classNameMap[11788] = "_p_MgParameter";
     classNameMap[10004] = "_p_MgParameterCollection";
-    classNameMap[30036] = "_p_MgParameterNotFoundException";
-    classNameMap[30037] = "_p_MgPathTooLongException";
-    classNameMap[1537] = "_p_MgPlatformNotSupportedException";
     classNameMap[30902] = "_p_MgPlotSpecification";
     classNameMap[20000] = "_p_MgPoint";
     classNameMap[20045] = "_p_MgPointCollection";
     classNameMap[20035] = "_p_MgPolygon";
     classNameMap[20046] = "_p_MgPolygonCollection";
-    classNameMap[30039] = "_p_MgPortNotAvailableException";
-    classNameMap[30040] = "_p_MgPrintToScaleModeNotSelectedException";
+    classNameMap[20055] = "_p_MgPreparedGeometry";
     classNameMap[31400] = "_p_MgProfilingService";
     classNameMap[2000] = "_p_MgProperty";
     classNameMap[1002] = "_p_MgPropertyCollection";
-    classNameMap[2002] = "_p_MgPropertyDefinition";
+    classNameMap[10251] = "_p_MgPropertyDefinition";
     classNameMap[10001] = "_p_MgPropertyDefinitionCollection";
     classNameMap[11769] = "_p_MgRaster";
     classNameMap[11770] = "_p_MgRasterProperty";
@@ -260,32 +171,14 @@
     classNameMap[20037] = "_p_MgRegion";
     classNameMap[31002] = "_p_MgRenderingOptions";
     classNameMap[31000] = "_p_MgRenderingService";
-    classNameMap[30041] = "_p_MgRepositoryCreationFailedException";
-    classNameMap[30042] = "_p_MgRepositoryNotFoundException";
-    classNameMap[30043] = "_p_MgRepositoryNotOpenException";
-    classNameMap[30044] = "_p_MgRepositoryOpenFailedException";
     classNameMap[11526] = "_p_MgResource";
-    classNameMap[10518] = "_p_MgResourceBusyException";
-    classNameMap[10519] = "_p_MgResourceDataNotFoundException";
     classNameMap[11500] = "_p_MgResourceIdentifier";
-    classNameMap[10520] = "_p_MgResourceNotFoundException";
     classNameMap[11501] = "_p_MgResourceService";
-    classNameMap[1538] = "_p_MgResourcesException";
-    classNameMap[1539] = "_p_MgResourcesLoadFailedException";
-    classNameMap[1540] = "_p_MgResourceTagNotFoundException";
     classNameMap[20038] = "_p_MgRing";
-    classNameMap[30045] = "_p_MgRoleNotFoundException";
-    classNameMap[1541] = "_p_MgRuntimeException";
     classNameMap[30502] = "_p_MgSelection";
     classNameMap[12007] = "_p_MgSelectionBase";
     classNameMap[30607] = "_p_MgServerAdmin";
-    classNameMap[30046] = "_p_MgServerNotFoundException";
-    classNameMap[30047] = "_p_MgServerNotOnlineException";
     classNameMap[11251] = "_p_MgService";
-    classNameMap[10521] = "_p_MgServiceNotAvailableException";
-    classNameMap[10522] = "_p_MgServiceNotSupportedException";
-    classNameMap[30048] = "_p_MgSessionExpiredException";
-    classNameMap[30052] = "_p_MgSessionNotFoundException";
     classNameMap[10261] = "_p_MgSingleProperty";
     classNameMap[30605] = "_p_MgSite";
     classNameMap[30601] = "_p_MgSiteConnection";
@@ -292,24 +185,14 @@
     classNameMap[30608] = "_p_MgSiteInfo";
     classNameMap[11761] = "_p_MgSpatialContextReader";
     classNameMap[11762] = "_p_MgSqlDataReader";
-    classNameMap[1542] = "_p_MgStreamIoException";
     classNameMap[1003] = "_p_MgStringCollection";
     classNameMap[2001] = "_p_MgStringProperty";
     classNameMap[10003] = "_p_MgStringPropertyCollection";
-    classNameMap[1543] = "_p_MgSystemException";
-    classNameMap[1544] = "_p_MgTemporaryFileNotAvailableException";
-    classNameMap[1545] = "_p_MgThirdPartyException";
     classNameMap[31200] = "_p_MgTileService";
     classNameMap[11787] = "_p_MgTransaction";
-    classNameMap[30049] = "_p_MgUnauthorizedAccessException";
-    classNameMap[1547] = "_p_MgUnclassifiedException";
-    classNameMap[1548] = "_p_MgUnderflowException";
-    classNameMap[30056] = "_p_MgUnknownTileProviderException";
-    classNameMap[30057] = "_p_MgUnsupportedTileProviderException";
+    classNameMap[20039] = "_p_MgTransform";
     classNameMap[11777] = "_p_MgUpdateFeatures";
-    classNameMap[30050] = "_p_MgUriFormatException";
     classNameMap[30606] = "_p_MgUserInformation";
-    classNameMap[10523] = "_p_MgUserNotFoundException";
     classNameMap[11257] = "_p_MgWarnings";
     classNameMap[50005] = "_p_MgWebBufferCommand";
     classNameMap[50000] = "_p_MgWebCommand";
@@ -339,8 +222,6 @@
     classNameMap[50013] = "_p_MgWebWidget";
     classNameMap[50018] = "_p_MgWebWidgetCollection";
     classNameMap[20040] = "_p_MgWktReaderWriter";
-    classNameMap[1549] = "_p_MgXmlException";
-    classNameMap[1550] = "_p_MgXmlParserException";
 
 
     return classNameMap;

Modified: trunk/MgDev/Bindings/src/Bindings/Php/php.i
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/Php/php.i	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Bindings/Php/php.i	2022-10-10 10:00:53 UTC (rev 9973)
@@ -26,9 +26,9 @@
 #include "MapGuideCommon.h"
 %}
 
-%include "../Common/Php/pointer.i"
-%include "../Common/Php/exception.i"
-%include "../Common/Php/monkey_patch.i"
+%include "../../SwigCommon/Php/pointer.i"
+%include "../../SwigCommon/Php/exception.i"
+%include "../../SwigCommon/Php/monkey_patch.i"
 
 %runtime %{
 #if defined(_MSC_VER)
@@ -38,7 +38,7 @@
 #include "PhpClassMap.cpp"
 %}
 
-%include "../Common/refcount.i"
+%include "../../SwigCommon/refcount.i"
 
 // These methods have to be invoked C-style
 %ignore MgObject::GetClassId;

Modified: trunk/MgDev/Bindings/src/CMakeLists.txt
===================================================================
--- trunk/MgDev/Bindings/src/CMakeLists.txt	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/CMakeLists.txt	2022-10-10 10:00:53 UTC (rev 9973)
@@ -1,2 +1,19 @@
+set(MG_COMPONENT ${MG_COMPONENT_COMMON})
+set_install_subdir("")
+
+# Do not allow for the possibility of undefined symbols
+if( CMAKE_COMPILER_IS_GNUCXX )
+    if (NEED_LIBRT)
+        set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-as-needed -Wl,--no-undefined -lc \
-lrt ${CMAKE_SHARED_LINKER_FLAGS}") +    else (NEED_LIBRT)
+        set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed -Wl,--no-undefined -lc \
${CMAKE_SHARED_LINKER_FLAGS}") +    endif (NEED_LIBRT)
+endif( CMAKE_COMPILER_IS_GNUCXX )
+
+find_package(SWIG 4.0)
+set(IMAKE_TOOL ${CMAKE_CURRENT_BINARY_DIR}/IMake/IMake)
+
+file(COPY "SwigCommon" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+
 add_subdirectory(IMake)
 add_subdirectory(Bindings)
\ No newline at end of file

Index: trunk/MgDev/Bindings/src/IMake
===================================================================
--- trunk/MgDev/Bindings/src/IMake	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/IMake	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src/IMake
___________________________________________________________________
Modified: svn:ignore
## -1,3 +1,4 ##
+IMake.vcxproj.user
 Release
 Win32
-IMake.vcxproj.user
+x64
Modified: trunk/MgDev/Bindings/src/IMake/CMakeLists.txt
===================================================================
--- trunk/MgDev/Bindings/src/IMake/CMakeLists.txt	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/IMake/CMakeLists.txt	2022-10-10 10:00:53 UTC (rev 9973)
@@ -1,6 +1,6 @@
 project(IMake)
 include_directories(
-    ${TCLAP_INCLUDE}
+    ${TCLAP_INCLUDE_DIR}
 )
 
 set(IMake_SRCS

Modified: trunk/MgDev/Bindings/src/IMake/IMake.cpp
===================================================================
--- trunk/MgDev/Bindings/src/IMake/IMake.cpp	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/IMake/IMake.cpp	2022-10-10 10:00:53 UTC (rev 9973)
@@ -13,7 +13,7 @@
     java
 };
 
-static char version[] = "1.5.2";
+static char version[] = "1.5.3";
 static char EXTERNAL_API_DOCUMENTATION[] = "(NOTE: This API is not officially \
supported and may be subject to removal in a future release without warning. Use with \
caution.)";  
 static string module;
@@ -915,8 +915,8 @@
 
     if (exceptionParts.size() > 0) {
         for (size_t i = 0; i < exceptionParts.size(); i++) {
-            javaDoc.append(" * @exception ");
-            javaDoc.append(exceptionParts[i]);
+            javaDoc.append(" * @exception org.osgeo.mapguide.MgException with code \
"); +            javaDoc.append(Trim(exceptionParts[i]));
             javaDoc.append("\n");
         }
     }
@@ -1119,10 +1119,13 @@
                 {
                     csharpDoc.append("///<exception cref=\"");
                     csharpDoc.append(nspace);
-                    csharpDoc.append(".");
+                    csharpDoc.append(".MgException\">");
                     if (eelems.size() > 1) {
+                        csharpDoc.append("with code (<see cref=\"");
+                        csharpDoc.append(nspace);
+                        csharpDoc.append(".MgExceptionCodes.");
                         csharpDoc.append(eelems[0]);
-                        csharpDoc.append("\">");
+                        csharpDoc.append("\" />) ");
                         for (size_t j = 1; j < eelems.size(); j++) {
                             csharpDoc.append(" ");
                             csharpDoc.append(eelems[j]);

Modified: trunk/MgDev/Bindings/src/IMake/IMake.vcxproj
===================================================================
--- trunk/MgDev/Bindings/src/IMake/IMake.vcxproj	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/IMake/IMake.vcxproj	2022-10-10 10:00:53 UTC (rev 9973)
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="14.0" \
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  <ItemGroup \
                Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
+    <ProjectConfiguration Include="Debug|x64">
       <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
+      <Platform>x64</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
+    <ProjectConfiguration Include="Release|x64">
       <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
+      <Platform>x64</Platform>
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
@@ -16,12 +16,12 @@
     <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" \
Label="Configuration"> +  <PropertyGroup \
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">  \
<ConfigurationType>Application</ConfigurationType>  \
<PlatformToolset>v140</PlatformToolset>  <CharacterSet>MultiByte</CharacterSet>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" \
Label="Configuration"> +  <PropertyGroup \
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">  \
<ConfigurationType>Application</ConfigurationType>  \
<PlatformToolset>v140</PlatformToolset>  <CharacterSet>MultiByte</CharacterSet>
@@ -29,10 +29,10 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" \
Label="PropertySheets"> +  <ImportGroup \
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">  \
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" \
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" \
Label="LocalAppDataPlatform" />  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" \
Label="PropertySheets"> +  <ImportGroup \
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">  \
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" \
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" \
Label="LocalAppDataPlatform" />  </ImportGroup>
   <PropertyGroup Label="UserMacros" />
@@ -39,21 +39,20 @@
   <PropertyGroup>
     <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <OutDir>Win32\</OutDir>
-    <IntDir>Debug\</IntDir>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(Platform)\$(Configuration)\bin</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\obj</IntDir>
     <LinkIncremental>true</LinkIncremental>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <OutDir>Win32\</OutDir>
-    <IntDir>Release\</IntDir>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(Platform)\$(Configuration)\bin</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\obj</IntDir>
     <LinkIncremental>false</LinkIncremental>
   </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
                
-      <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -67,11 +66,11 @@
       <ProgramDatabaseFile>$(OutDir)IMake.pdb</ProgramDatabaseFile>
       <SubSystem>Console</SubSystem>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention />
-      <TargetMachine>MachineX86</TargetMachine>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@@ -87,8 +86,8 @@
       <OptimizeReferences>true</OptimizeReferences>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention />
-      <TargetMachine>MachineX86</TargetMachine>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
@@ -95,8 +94,8 @@
     <ClCompile Include="IMake.cpp" />
     <ClCompile Include="SimpleXmlParser.cpp" />
     <ClCompile Include="stdafx.cpp">
-      <PrecompiledHeader \
                Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
                
-      <PrecompiledHeader \
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
 +      <PrecompiledHeader \
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> +  \
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
  </ClCompile>
   </ItemGroup>
   <ItemGroup>

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/Common/MgClassMap.cs
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/Common/MgClassMap.cs	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/Common/MgClassMap.cs	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -2,360 +2,363 @@
 
 using System;
 using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
 
 namespace OSGeo.MapGuide
 {
     internal static class MgClassMap
     {
-        static Dictionary<int, string> classNameMap;
-        
+        static HashSet<string> assemblyNames;
+        static Dictionary<int, ConstructorInfo> classIdCtorMap;
+        static Dictionary<string, int> nameClassMap;
+
         static MgClassMap()
         {
-            classNameMap = new Dictionary<int, string>();
+            assemblyNames = new HashSet<string> 
+            {
+                "OSGeo.MapGuide.Foundation",
+                "OSGeo.MapGuide.Geometry",
+                "OSGeo.MapGuide.PlatformBase",
+                "OSGeo.MapGuide.MapGuideCommon",
+                "OSGeo.MapGuide.Web",
+                "OSGeo.MapGuide.Portable"
+            };
+
+            classIdCtorMap = new Dictionary<int, ConstructorInfo>();
+            var classNameMap = new Dictionary<int, string>();
+            nameClassMap = new Dictionary<string, int>();
             
-            classNameMap[20004] = "OSGeo.MapGuide.MgAgfReaderWriter";
-            classNameMap[20005] = "OSGeo.MapGuide.MgAggregateGeometry";
-            classNameMap[1500] = "OSGeo.MapGuide.MgApplicationException";
-            classNameMap[20006] = "OSGeo.MapGuide.MgArcSegment";
-            classNameMap[1501] = "OSGeo.MapGuide.MgArgumentOutOfRangeException";
-            classNameMap[10500] = "OSGeo.MapGuide.MgArrayTypeMismatchException";
-            classNameMap[30000] = "OSGeo.MapGuide.MgAuthenticationFailedException";
-            classNameMap[1005] = "OSGeo.MapGuide.MgBatchPropertyCollection";
-            classNameMap[10252] = "OSGeo.MapGuide.MgBlobProperty";
-            classNameMap[10253] = "OSGeo.MapGuide.MgBooleanProperty";
-            classNameMap[10254] = "OSGeo.MapGuide.MgByteProperty";
-            classNameMap[1250] = "OSGeo.MapGuide.MgByteReader";
-            classNameMap[1257] = "OSGeo.MapGuide.MgByteSink";
-            classNameMap[1251] = "OSGeo.MapGuide.MgByteSource";
-            classNameMap[11750] = "OSGeo.MapGuide.MgClassDefinition";
-            classNameMap[11780] = "OSGeo.MapGuide.MgClassDefinitionCollection";
-            classNameMap[1502] = "OSGeo.MapGuide.MgClassNotFoundException";
-            classNameMap[10255] = "OSGeo.MapGuide.MgClobProperty";
-            classNameMap[10250] = "OSGeo.MapGuide.MgColor";
-            classNameMap[1503] = "OSGeo.MapGuide.MgConfigurationException";
-            classNameMap[1504] = \
                "OSGeo.MapGuide.MgConfigurationLoadFailedException";
-            classNameMap[1505] = \
                "OSGeo.MapGuide.MgConfigurationSaveFailedException";
-            classNameMap[30001] = "OSGeo.MapGuide.MgConnectionFailedException";
-            classNameMap[30002] = "OSGeo.MapGuide.MgConnectionNotOpenException";
-            classNameMap[20003] = "OSGeo.MapGuide.MgCoordinate";
-            classNameMap[20009] = "OSGeo.MapGuide.MgCoordinateIterator";
-            classNameMap[20500] = "OSGeo.MapGuide.MgCoordinateSystem";
-            classNameMap[20504] = "OSGeo.MapGuide.MgCoordinateSystemCatalog";
-            classNameMap[20506] = "OSGeo.MapGuide.MgCoordinateSystemCategory";
-            classNameMap[20510] = \
                "OSGeo.MapGuide.MgCoordinateSystemCategoryDictionary";
-            classNameMap[21000] = \
                "OSGeo.MapGuide.MgCoordinateSystemComputationFailedException";
-            classNameMap[21001] = \
                "OSGeo.MapGuide.MgCoordinateSystemConversionFailedException";
-            classNameMap[20507] = "OSGeo.MapGuide.MgCoordinateSystemDatum";
-            classNameMap[20512] = \
                "OSGeo.MapGuide.MgCoordinateSystemDatumDictionary";
-            classNameMap[20511] = "OSGeo.MapGuide.MgCoordinateSystemDictionary";
-            classNameMap[20521] = \
                "OSGeo.MapGuide.MgCoordinateSystemDictionaryUtility";
-            classNameMap[20509] = "OSGeo.MapGuide.MgCoordinateSystemEllipsoid";
-            classNameMap[20513] = \
                "OSGeo.MapGuide.MgCoordinateSystemEllipsoidDictionary";
-            classNameMap[20514] = "OSGeo.MapGuide.MgCoordinateSystemEnum";
-            classNameMap[20515] = "OSGeo.MapGuide.MgCoordinateSystemEnumInteger32";
-            classNameMap[20501] = "OSGeo.MapGuide.MgCoordinateSystemFactory";
-            classNameMap[20516] = "OSGeo.MapGuide.MgCoordinateSystemFilter";
-            classNameMap[20517] = \
                "OSGeo.MapGuide.MgCoordinateSystemFilterInteger32";
-            classNameMap[20505] = \
                "OSGeo.MapGuide.MgCoordinateSystemFormatConverter";
-            classNameMap[20542] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticAnalyticalTransformDefParams";
                
-            classNameMap[20543] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticInterpolationTransformDefParams";
                
-            classNameMap[20544] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams";
                
-            classNameMap[20533] = "OSGeo.MapGuide.MgCoordinateSystemGeodeticPath";
-            classNameMap[20535] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticPathDictionary";
-            classNameMap[20534] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticPathElement";
-            classNameMap[20508] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformation";
-            classNameMap[20536] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDef";
-            classNameMap[20540] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDefDictionary";
-            classNameMap[20545] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformGridFile";
-            classNameMap[20532] = "OSGeo.MapGuide.MgCoordinateSystemGridBase";
-            classNameMap[20524] = "OSGeo.MapGuide.MgCoordinateSystemGridBoundary";
-            classNameMap[20529] = "OSGeo.MapGuide.MgCoordinateSystemGridLine";
-            classNameMap[20526] = \
                "OSGeo.MapGuide.MgCoordinateSystemGridLineCollection";
-            classNameMap[20530] = "OSGeo.MapGuide.MgCoordinateSystemGridRegion";
-            classNameMap[20527] = \
                "OSGeo.MapGuide.MgCoordinateSystemGridRegionCollection";
-            classNameMap[20525] = \
                "OSGeo.MapGuide.MgCoordinateSystemGridSpecification";
-            classNameMap[20531] = "OSGeo.MapGuide.MgCoordinateSystemGridTick";
-            classNameMap[20528] = \
                "OSGeo.MapGuide.MgCoordinateSystemGridTickCollection";
-            classNameMap[21002] = \
                "OSGeo.MapGuide.MgCoordinateSystemInitializationFailedException";
-            classNameMap[21003] = \
                "OSGeo.MapGuide.MgCoordinateSystemLoadFailedException";
-            classNameMap[20518] = "OSGeo.MapGuide.MgCoordinateSystemMathComparator";
-            classNameMap[20502] = "OSGeo.MapGuide.MgCoordinateSystemMeasure";
-            classNameMap[21004] = \
                "OSGeo.MapGuide.MgCoordinateSystemMeasureFailedException";
-            classNameMap[20522] = "OSGeo.MapGuide.MgCoordinateSystemMgrs";
-            classNameMap[20520] = \
                "OSGeo.MapGuide.MgCoordinateSystemProjectionInformation";
-            classNameMap[20503] = "OSGeo.MapGuide.MgCoordinateSystemTransform";
-            classNameMap[21005] = \
                "OSGeo.MapGuide.MgCoordinateSystemTransformFailedException";
-            classNameMap[20519] = \
                "OSGeo.MapGuide.MgCoordinateSystemUnitInformation";
-            classNameMap[20048] = "OSGeo.MapGuide.MgCoordinateXY";
-            classNameMap[20051] = "OSGeo.MapGuide.MgCoordinateXYM";
-            classNameMap[20049] = "OSGeo.MapGuide.MgCoordinateXYZ";
-            classNameMap[20050] = "OSGeo.MapGuide.MgCoordinateXYZM";
-            classNameMap[20010] = "OSGeo.MapGuide.MgCurve";
-            classNameMap[20011] = "OSGeo.MapGuide.MgCurvePolygon";
-            classNameMap[20047] = "OSGeo.MapGuide.MgCurvePolygonCollection";
-            classNameMap[20012] = "OSGeo.MapGuide.MgCurveRing";
-            classNameMap[20052] = "OSGeo.MapGuide.MgCurveRingCollection";
-            classNameMap[20013] = "OSGeo.MapGuide.MgCurveSegment";
-            classNameMap[20041] = "OSGeo.MapGuide.MgCurveSegmentCollection";
-            classNameMap[20014] = "OSGeo.MapGuide.MgCurveString";
-            classNameMap[20043] = "OSGeo.MapGuide.MgCurveStringCollection";
-            classNameMap[11751] = "OSGeo.MapGuide.MgDataPropertyDefinition";
-            classNameMap[11773] = "OSGeo.MapGuide.MgDataReader";
-            classNameMap[1256] = "OSGeo.MapGuide.MgDateTime";
-            classNameMap[1506] = "OSGeo.MapGuide.MgDateTimeException";
-            classNameMap[10256] = "OSGeo.MapGuide.MgDateTimeProperty";
-            classNameMap[30003] = "OSGeo.MapGuide.MgDbException";
-            classNameMap[30004] = "OSGeo.MapGuide.MgDbXmlException";
-            classNameMap[1507] = "OSGeo.MapGuide.MgDecryptionException";
-            classNameMap[11775] = "OSGeo.MapGuide.MgDeleteFeatures";
-            classNameMap[1508] = "OSGeo.MapGuide.MgDirectoryNotFoundException";
-            classNameMap[1000] = "OSGeo.MapGuide.MgDisposableCollection";
-            classNameMap[1509] = "OSGeo.MapGuide.MgDivideByZeroException";
-            classNameMap[1510] = "OSGeo.MapGuide.MgDomainException";
-            classNameMap[10257] = "OSGeo.MapGuide.MgDoubleProperty";
-            classNameMap[30700] = "OSGeo.MapGuide.MgDrawingService";
-            classNameMap[1511] = "OSGeo.MapGuide.MgDuplicateDirectoryException";
-            classNameMap[1512] = "OSGeo.MapGuide.MgDuplicateFileException";
-            classNameMap[30005] = "OSGeo.MapGuide.MgDuplicateGroupException";
-            classNameMap[30006] = "OSGeo.MapGuide.MgDuplicateNameException";
-            classNameMap[1513] = "OSGeo.MapGuide.MgDuplicateObjectException";
-            classNameMap[30007] = "OSGeo.MapGuide.MgDuplicateParameterException";
-            classNameMap[30008] = "OSGeo.MapGuide.MgDuplicateRepositoryException";
-            classNameMap[10501] = "OSGeo.MapGuide.MgDuplicateResourceDataException";
-            classNameMap[10502] = "OSGeo.MapGuide.MgDuplicateResourceException";
-            classNameMap[30009] = "OSGeo.MapGuide.MgDuplicateRoleException";
-            classNameMap[30010] = "OSGeo.MapGuide.MgDuplicateServerException";
-            classNameMap[30011] = "OSGeo.MapGuide.MgDuplicateSessionException";
-            classNameMap[30012] = "OSGeo.MapGuide.MgDuplicateUserException";
-            classNameMap[30013] = "OSGeo.MapGuide.MgDwfException";
-            classNameMap[30014] = "OSGeo.MapGuide.MgDwfSectionNotFoundException";
-            classNameMap[30015] = \
                "OSGeo.MapGuide.MgDwfSectionResourceNotFoundException";
-            classNameMap[30901] = "OSGeo.MapGuide.MgDwfVersion";
-            classNameMap[10503] = "OSGeo.MapGuide.MgEmptyFeatureSetException";
-            classNameMap[1514] = "OSGeo.MapGuide.MgEncryptionException";
-            classNameMap[30016] = "OSGeo.MapGuide.MgEndOfStreamException";
-            classNameMap[20001] = "OSGeo.MapGuide.MgEnvelope";
-            classNameMap[1515] = "OSGeo.MapGuide.MgException";
-            classNameMap[10504] = "OSGeo.MapGuide.MgFdoException";
-            classNameMap[11772] = "OSGeo.MapGuide.MgFeatureAggregateOptions";
-            classNameMap[11774] = "OSGeo.MapGuide.MgFeatureCommandCollection";
-            classNameMap[31001] = "OSGeo.MapGuide.MgFeatureInformation";
-            classNameMap[11764] = "OSGeo.MapGuide.MgFeatureProperty";
-            classNameMap[11771] = "OSGeo.MapGuide.MgFeatureQueryOptions";
-            classNameMap[11753] = "OSGeo.MapGuide.MgFeatureReader";
-            classNameMap[11778] = "OSGeo.MapGuide.MgFeatureSchema";
-            classNameMap[11779] = "OSGeo.MapGuide.MgFeatureSchemaCollection";
-            classNameMap[11754] = "OSGeo.MapGuide.MgFeatureService";
-            classNameMap[10505] = "OSGeo.MapGuide.MgFeatureServiceException";
-            classNameMap[11786] = "OSGeo.MapGuide.MgFileFeatureSourceParams";
-            classNameMap[1516] = "OSGeo.MapGuide.MgFileIoException";
-            classNameMap[1517] = "OSGeo.MapGuide.MgFileNotFoundException";
-            classNameMap[20016] = "OSGeo.MapGuide.MgGeometricEntity";
-            classNameMap[11756] = "OSGeo.MapGuide.MgGeometricPropertyDefinition";
-            classNameMap[20019] = "OSGeo.MapGuide.MgGeometry";
-            classNameMap[20020] = "OSGeo.MapGuide.MgGeometryCollection";
-            classNameMap[20021] = "OSGeo.MapGuide.MgGeometryComponent";
-            classNameMap[21006] = "OSGeo.MapGuide.MgGeometryException";
-            classNameMap[20002] = "OSGeo.MapGuide.MgGeometryFactory";
-            classNameMap[11758] = "OSGeo.MapGuide.MgGeometryProperty";
-            classNameMap[11785] = "OSGeo.MapGuide.MgGeometryTypeInfo";
-            classNameMap[30018] = "OSGeo.MapGuide.MgGroupNotFoundException";
-            classNameMap[11782] = "OSGeo.MapGuide.MgGwsFeatureReader";
-            classNameMap[40000] = "OSGeo.MapGuide.MgHttpHeader";
-            classNameMap[40006] = "OSGeo.MapGuide.MgHttpPrimitiveValue";
-            classNameMap[40004] = "OSGeo.MapGuide.MgHttpRequest";
-            classNameMap[40002] = "OSGeo.MapGuide.MgHttpRequestMetadata";
-            classNameMap[40001] = "OSGeo.MapGuide.MgHttpRequestParam";
-            classNameMap[40005] = "OSGeo.MapGuide.MgHttpResponse";
-            classNameMap[40003] = "OSGeo.MapGuide.MgHttpResult";
-            classNameMap[1518] = "OSGeo.MapGuide.MgIndexOutOfRangeException";
-            classNameMap[11776] = "OSGeo.MapGuide.MgInsertFeatures";
-            classNameMap[10258] = "OSGeo.MapGuide.MgInt16Property";
-            classNameMap[10259] = "OSGeo.MapGuide.MgInt32Property";
-            classNameMap[10260] = "OSGeo.MapGuide.MgInt64Property";
-            classNameMap[10000] = "OSGeo.MapGuide.MgIntCollection";
-            classNameMap[1519] = "OSGeo.MapGuide.MgInvalidArgumentException";
-            classNameMap[1520] = "OSGeo.MapGuide.MgInvalidCastException";
-            classNameMap[21007] = \
                "OSGeo.MapGuide.MgInvalidCoordinateSystemException";
-            classNameMap[21008] = \
                "OSGeo.MapGuide.MgInvalidCoordinateSystemTypeException";
-            classNameMap[21009] = \
                "OSGeo.MapGuide.MgInvalidCoordinateSystemUnitsException";
-            classNameMap[30019] = "OSGeo.MapGuide.MgInvalidDwfPackageException";
-            classNameMap[30020] = "OSGeo.MapGuide.MgInvalidDwfSectionException";
-            classNameMap[30021] = "OSGeo.MapGuide.MgInvalidFeatureSourceException";
-            classNameMap[30022] = "OSGeo.MapGuide.MgInvalidIpAddressException";
-            classNameMap[30023] = "OSGeo.MapGuide.MgInvalidLicenseException";
-            classNameMap[30024] = "OSGeo.MapGuide.MgInvalidLogEntryException";
-            classNameMap[10507] = "OSGeo.MapGuide.MgInvalidMapDefinitionException";
-            classNameMap[1522] = "OSGeo.MapGuide.MgInvalidOperationException";
-            classNameMap[30026] = "OSGeo.MapGuide.MgInvalidPasswordException";
-            classNameMap[30027] = \
                "OSGeo.MapGuide.MgInvalidPrintLayoutFontSizeUnitsException";
-            classNameMap[30028] = \
                "OSGeo.MapGuide.MgInvalidPrintLayoutPositionUnitsException";
-            classNameMap[30029] = \
                "OSGeo.MapGuide.MgInvalidPrintLayoutSizeUnitsException";
-            classNameMap[1523] = "OSGeo.MapGuide.MgInvalidPropertyTypeException";
-            classNameMap[10508] = "OSGeo.MapGuide.MgInvalidRepositoryNameException";
-            classNameMap[10509] = "OSGeo.MapGuide.MgInvalidRepositoryTypeException";
-            classNameMap[10510] = \
                "OSGeo.MapGuide.MgInvalidResourceDataNameException";
-            classNameMap[10511] = \
                "OSGeo.MapGuide.MgInvalidResourceDataTypeException";
-            classNameMap[10512] = "OSGeo.MapGuide.MgInvalidResourceNameException";
-            classNameMap[10513] = "OSGeo.MapGuide.MgInvalidResourcePathException";
-            classNameMap[10514] = \
                "OSGeo.MapGuide.MgInvalidResourcePreProcessingTypeException";
-            classNameMap[10515] = "OSGeo.MapGuide.MgInvalidResourceTypeException";
-            classNameMap[30031] = "OSGeo.MapGuide.MgInvalidServerNameException";
-            classNameMap[1524] = "OSGeo.MapGuide.MgInvalidStreamHeaderException";
-            classNameMap[1525] = "OSGeo.MapGuide.MgIoException";
-            classNameMap[31300] = "OSGeo.MapGuide.MgKmlService";
-            classNameMap[30501] = "OSGeo.MapGuide.MgLayer";
-            classNameMap[12003] = "OSGeo.MapGuide.MgLayerBase";
-            classNameMap[12002] = "OSGeo.MapGuide.MgLayerCollection";
-            classNameMap[12001] = "OSGeo.MapGuide.MgLayerGroup";
-            classNameMap[12004] = "OSGeo.MapGuide.MgLayerGroupCollection";
-            classNameMap[10517] = "OSGeo.MapGuide.MgLayerNotFoundException";
-            classNameMap[30904] = "OSGeo.MapGuide.MgLayout";
-            classNameMap[1526] = "OSGeo.MapGuide.MgLengthException";
-            classNameMap[30032] = "OSGeo.MapGuide.MgLicenseException";
-            classNameMap[30033] = "OSGeo.MapGuide.MgLicenseExpiredException";
-            classNameMap[20023] = "OSGeo.MapGuide.MgLinearRing";
-            classNameMap[20053] = "OSGeo.MapGuide.MgLinearRingCollection";
-            classNameMap[20024] = "OSGeo.MapGuide.MgLinearSegment";
-            classNameMap[20042] = "OSGeo.MapGuide.MgLineString";
-            classNameMap[20044] = "OSGeo.MapGuide.MgLineStringCollection";
-            classNameMap[1527] = "OSGeo.MapGuide.MgLogicException";
-            classNameMap[11766] = "OSGeo.MapGuide.MgLongTransactionReader";
-            classNameMap[30500] = "OSGeo.MapGuide.MgMap";
-            classNameMap[12000] = "OSGeo.MapGuide.MgMapBase";
-            classNameMap[12005] = "OSGeo.MapGuide.MgMapCollection";
-            classNameMap[30900] = "OSGeo.MapGuide.MgMappingService";
-            classNameMap[30905] = "OSGeo.MapGuide.MgMapPlot";
-            classNameMap[30906] = "OSGeo.MapGuide.MgMapPlotCollection";
-            classNameMap[20029] = "OSGeo.MapGuide.MgMultiCurvePolygon";
-            classNameMap[20030] = "OSGeo.MapGuide.MgMultiCurveString";
-            classNameMap[20031] = "OSGeo.MapGuide.MgMultiGeometry";
-            classNameMap[20032] = "OSGeo.MapGuide.MgMultiLineString";
-            classNameMap[20033] = "OSGeo.MapGuide.MgMultiPoint";
-            classNameMap[20034] = "OSGeo.MapGuide.MgMultiPolygon";
-            classNameMap[1528] = "OSGeo.MapGuide.MgNotFiniteNumberException";
-            classNameMap[1529] = "OSGeo.MapGuide.MgNotImplementedException";
-            classNameMap[1530] = "OSGeo.MapGuide.MgNullArgumentException";
-            classNameMap[1531] = "OSGeo.MapGuide.MgNullPropertyValueException";
-            classNameMap[1532] = "OSGeo.MapGuide.MgNullReferenceException";
-            classNameMap[1533] = "OSGeo.MapGuide.MgObjectNotFoundException";
-            classNameMap[11759] = "OSGeo.MapGuide.MgObjectPropertyDefinition";
-            classNameMap[30035] = "OSGeo.MapGuide.MgOperationProcessingException";
-            classNameMap[1534] = "OSGeo.MapGuide.MgOutOfMemoryException";
-            classNameMap[1535] = "OSGeo.MapGuide.MgOutOfRangeException";
-            classNameMap[1536] = "OSGeo.MapGuide.MgOverflowException";
-            classNameMap[30604] = "OSGeo.MapGuide.MgPackageStatusInformation";
-            classNameMap[11788] = "OSGeo.MapGuide.MgParameter";
-            classNameMap[10004] = "OSGeo.MapGuide.MgParameterCollection";
-            classNameMap[30036] = "OSGeo.MapGuide.MgParameterNotFoundException";
-            classNameMap[30037] = "OSGeo.MapGuide.MgPathTooLongException";
-            classNameMap[1537] = "OSGeo.MapGuide.MgPlatformNotSupportedException";
-            classNameMap[30902] = "OSGeo.MapGuide.MgPlotSpecification";
-            classNameMap[20000] = "OSGeo.MapGuide.MgPoint";
-            classNameMap[20045] = "OSGeo.MapGuide.MgPointCollection";
-            classNameMap[20035] = "OSGeo.MapGuide.MgPolygon";
-            classNameMap[20046] = "OSGeo.MapGuide.MgPolygonCollection";
-            classNameMap[30039] = "OSGeo.MapGuide.MgPortNotAvailableException";
-            classNameMap[30040] = \
                "OSGeo.MapGuide.MgPrintToScaleModeNotSelectedException";
-            classNameMap[31400] = "OSGeo.MapGuide.MgProfilingService";
-            classNameMap[2000] = "OSGeo.MapGuide.MgProperty";
-            classNameMap[1002] = "OSGeo.MapGuide.MgPropertyCollection";
-            classNameMap[2002] = "OSGeo.MapGuide.MgPropertyDefinition";
-            classNameMap[10001] = "OSGeo.MapGuide.MgPropertyDefinitionCollection";
-            classNameMap[11769] = "OSGeo.MapGuide.MgRaster";
-            classNameMap[11770] = "OSGeo.MapGuide.MgRasterProperty";
-            classNameMap[11768] = "OSGeo.MapGuide.MgRasterPropertyDefinition";
-            classNameMap[12006] = "OSGeo.MapGuide.MgReadOnlyLayerCollection";
-            classNameMap[20037] = "OSGeo.MapGuide.MgRegion";
-            classNameMap[31002] = "OSGeo.MapGuide.MgRenderingOptions";
-            classNameMap[31000] = "OSGeo.MapGuide.MgRenderingService";
-            classNameMap[30041] = \
                "OSGeo.MapGuide.MgRepositoryCreationFailedException";
-            classNameMap[30042] = "OSGeo.MapGuide.MgRepositoryNotFoundException";
-            classNameMap[30043] = "OSGeo.MapGuide.MgRepositoryNotOpenException";
-            classNameMap[30044] = "OSGeo.MapGuide.MgRepositoryOpenFailedException";
-            classNameMap[11526] = "OSGeo.MapGuide.MgResource";
-            classNameMap[10518] = "OSGeo.MapGuide.MgResourceBusyException";
-            classNameMap[10519] = "OSGeo.MapGuide.MgResourceDataNotFoundException";
-            classNameMap[11500] = "OSGeo.MapGuide.MgResourceIdentifier";
-            classNameMap[10520] = "OSGeo.MapGuide.MgResourceNotFoundException";
-            classNameMap[11501] = "OSGeo.MapGuide.MgResourceService";
-            classNameMap[1538] = "OSGeo.MapGuide.MgResourcesException";
-            classNameMap[1539] = "OSGeo.MapGuide.MgResourcesLoadFailedException";
-            classNameMap[1540] = "OSGeo.MapGuide.MgResourceTagNotFoundException";
-            classNameMap[20038] = "OSGeo.MapGuide.MgRing";
-            classNameMap[30045] = "OSGeo.MapGuide.MgRoleNotFoundException";
-            classNameMap[1541] = "OSGeo.MapGuide.MgRuntimeException";
-            classNameMap[30502] = "OSGeo.MapGuide.MgSelection";
-            classNameMap[12007] = "OSGeo.MapGuide.MgSelectionBase";
-            classNameMap[30607] = "OSGeo.MapGuide.MgServerAdmin";
-            classNameMap[30046] = "OSGeo.MapGuide.MgServerNotFoundException";
-            classNameMap[30047] = "OSGeo.MapGuide.MgServerNotOnlineException";
-            classNameMap[11251] = "OSGeo.MapGuide.MgService";
-            classNameMap[10521] = "OSGeo.MapGuide.MgServiceNotAvailableException";
-            classNameMap[10522] = "OSGeo.MapGuide.MgServiceNotSupportedException";
-            classNameMap[30048] = "OSGeo.MapGuide.MgSessionExpiredException";
-            classNameMap[30052] = "OSGeo.MapGuide.MgSessionNotFoundException";
-            classNameMap[10261] = "OSGeo.MapGuide.MgSingleProperty";
-            classNameMap[30605] = "OSGeo.MapGuide.MgSite";
-            classNameMap[30601] = "OSGeo.MapGuide.MgSiteConnection";
-            classNameMap[30608] = "OSGeo.MapGuide.MgSiteInfo";
-            classNameMap[11761] = "OSGeo.MapGuide.MgSpatialContextReader";
-            classNameMap[11762] = "OSGeo.MapGuide.MgSqlDataReader";
-            classNameMap[1542] = "OSGeo.MapGuide.MgStreamIoException";
-            classNameMap[1003] = "OSGeo.MapGuide.MgStringCollection";
-            classNameMap[2001] = "OSGeo.MapGuide.MgStringProperty";
-            classNameMap[10003] = "OSGeo.MapGuide.MgStringPropertyCollection";
-            classNameMap[1543] = "OSGeo.MapGuide.MgSystemException";
-            classNameMap[1544] = \
                "OSGeo.MapGuide.MgTemporaryFileNotAvailableException";
-            classNameMap[1545] = "OSGeo.MapGuide.MgThirdPartyException";
-            classNameMap[31200] = "OSGeo.MapGuide.MgTileService";
-            classNameMap[11787] = "OSGeo.MapGuide.MgTransaction";
-            classNameMap[30049] = "OSGeo.MapGuide.MgUnauthorizedAccessException";
-            classNameMap[1547] = "OSGeo.MapGuide.MgUnclassifiedException";
-            classNameMap[1548] = "OSGeo.MapGuide.MgUnderflowException";
-            classNameMap[30056] = "OSGeo.MapGuide.MgUnknownTileProviderException";
-            classNameMap[30057] = \
                "OSGeo.MapGuide.MgUnsupportedTileProviderException";
-            classNameMap[11777] = "OSGeo.MapGuide.MgUpdateFeatures";
-            classNameMap[30050] = "OSGeo.MapGuide.MgUriFormatException";
-            classNameMap[30606] = "OSGeo.MapGuide.MgUserInformation";
-            classNameMap[10523] = "OSGeo.MapGuide.MgUserNotFoundException";
-            classNameMap[11257] = "OSGeo.MapGuide.MgWarnings";
-            classNameMap[50005] = "OSGeo.MapGuide.MgWebBufferCommand";
-            classNameMap[50000] = "OSGeo.MapGuide.MgWebCommand";
-            classNameMap[50012] = "OSGeo.MapGuide.MgWebCommandCollection";
-            classNameMap[50015] = "OSGeo.MapGuide.MgWebCommandWidget";
-            classNameMap[50025] = "OSGeo.MapGuide.MgWebContextMenu";
-            classNameMap[50016] = "OSGeo.MapGuide.MgWebFlyoutWidget";
-            classNameMap[50009] = "OSGeo.MapGuide.MgWebGetPrintablePageCommand";
-            classNameMap[50011] = "OSGeo.MapGuide.MgWebHelpCommand";
-            classNameMap[50022] = "OSGeo.MapGuide.MgWebInformationPane";
-            classNameMap[50003] = "OSGeo.MapGuide.MgWebInvokeScriptCommand";
-            classNameMap[50004] = "OSGeo.MapGuide.MgWebInvokeUrlCommand";
-            classNameMap[50026] = "OSGeo.MapGuide.MgWebLayout";
-            classNameMap[50008] = "OSGeo.MapGuide.MgWebMeasureCommand";
-            classNameMap[50007] = "OSGeo.MapGuide.MgWebPrintCommand";
-            classNameMap[50002] = "OSGeo.MapGuide.MgWebSearchCommand";
-            classNameMap[50006] = "OSGeo.MapGuide.MgWebSelectWithinCommand";
-            classNameMap[50014] = "OSGeo.MapGuide.MgWebSeparatorWidget";
-            classNameMap[50023] = "OSGeo.MapGuide.MgWebTaskBar";
-            classNameMap[50017] = "OSGeo.MapGuide.MgWebTaskBarWidget";
-            classNameMap[50024] = "OSGeo.MapGuide.MgWebTaskPane";
-            classNameMap[50021] = "OSGeo.MapGuide.MgWebToolBar";
-            classNameMap[50019] = "OSGeo.MapGuide.MgWebUiPane";
-            classNameMap[50020] = "OSGeo.MapGuide.MgWebUiSizablePane";
-            classNameMap[50001] = "OSGeo.MapGuide.MgWebUiTargetCommand";
-            classNameMap[50010] = "OSGeo.MapGuide.MgWebViewOptionsCommand";
-            classNameMap[50013] = "OSGeo.MapGuide.MgWebWidget";
-            classNameMap[50018] = "OSGeo.MapGuide.MgWebWidgetCollection";
-            classNameMap[20040] = "OSGeo.MapGuide.MgWktReaderWriter";
-            classNameMap[1549] = "OSGeo.MapGuide.MgXmlException";
-            classNameMap[1550] = "OSGeo.MapGuide.MgXmlParserException";
+            if (HasAssemblyInAppDomain("OSGeo.MapGuide.Foundation")) {
+                classIdCtorMap[1000] = \
ResolveConstructor("OSGeo.MapGuide.MgDisposableCollection"); +                \
classIdCtorMap[1002] = ResolveConstructor("OSGeo.MapGuide.MgPropertyCollection"); +   \
classIdCtorMap[1003] = ResolveConstructor("OSGeo.MapGuide.MgStringCollection"); +     \
classIdCtorMap[1004] = \
ResolveConstructor("OSGeo.MapGuide.MgStringPropertyCollection"); +                \
classIdCtorMap[1005] = \
ResolveConstructor("OSGeo.MapGuide.MgBatchPropertyCollection"); +                \
classIdCtorMap[1250] = ResolveConstructor("OSGeo.MapGuide.MgByteReader"); +           \
classIdCtorMap[1251] = ResolveConstructor("OSGeo.MapGuide.MgByteSource"); +           \
classIdCtorMap[1256] = ResolveConstructor("OSGeo.MapGuide.MgDateTime"); +             \
classIdCtorMap[1257] = ResolveConstructor("OSGeo.MapGuide.MgByteSink"); +             \
classIdCtorMap[1515] = ResolveConstructor("OSGeo.MapGuide.MgException"); +            \
classIdCtorMap[2000] = ResolveConstructor("OSGeo.MapGuide.MgProperty"); +             \
classIdCtorMap[2001] = ResolveConstructor("OSGeo.MapGuide.MgStringProperty"); +       \
classIdCtorMap[2002] = ResolveConstructor("OSGeo.MapGuide.MgPropertyDefinition"); +   \
classIdCtorMap[2251] = ResolveConstructor("OSGeo.MapGuide.MgDisposable"); +           \
classIdCtorMap[2252] = ResolveConstructor("OSGeo.MapGuide.MgObject"); +            }
+            if (HasAssemblyInAppDomain("OSGeo.MapGuide.Geometry")) {
+                classIdCtorMap[20000] = \
ResolveConstructor("OSGeo.MapGuide.MgPoint"); +                classIdCtorMap[20001] \
= ResolveConstructor("OSGeo.MapGuide.MgEnvelope"); +                \
classIdCtorMap[20002] = ResolveConstructor("OSGeo.MapGuide.MgGeometryFactory"); +     \
classIdCtorMap[20003] = ResolveConstructor("OSGeo.MapGuide.MgCoordinate"); +          \
classIdCtorMap[20004] = ResolveConstructor("OSGeo.MapGuide.MgAgfReaderWriter"); +     \
classIdCtorMap[20005] = ResolveConstructor("OSGeo.MapGuide.MgAggregateGeometry"); +   \
classIdCtorMap[20006] = ResolveConstructor("OSGeo.MapGuide.MgArcSegment"); +          \
classIdCtorMap[20008] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateCollection"); \
+                classIdCtorMap[20009] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateIterator"); +                \
classIdCtorMap[20010] = ResolveConstructor("OSGeo.MapGuide.MgCurve"); +               \
classIdCtorMap[20011] = ResolveConstructor("OSGeo.MapGuide.MgCurvePolygon"); +        \
classIdCtorMap[20012] = ResolveConstructor("OSGeo.MapGuide.MgCurveRing"); +           \
classIdCtorMap[20013] = ResolveConstructor("OSGeo.MapGuide.MgCurveSegment"); +        \
classIdCtorMap[20014] = ResolveConstructor("OSGeo.MapGuide.MgCurveString"); +         \
classIdCtorMap[20016] = ResolveConstructor("OSGeo.MapGuide.MgGeometricEntity"); +     \
classIdCtorMap[20019] = ResolveConstructor("OSGeo.MapGuide.MgGeometry"); +            \
classIdCtorMap[20020] = ResolveConstructor("OSGeo.MapGuide.MgGeometryCollection"); +  \
classIdCtorMap[20021] = ResolveConstructor("OSGeo.MapGuide.MgGeometryComponent"); +   \
classIdCtorMap[20023] = ResolveConstructor("OSGeo.MapGuide.MgLinearRing"); +          \
classIdCtorMap[20024] = ResolveConstructor("OSGeo.MapGuide.MgLinearSegment"); +       \
classIdCtorMap[20027] = ResolveConstructor("OSGeo.MapGuide.MgMeasure"); +             \
classIdCtorMap[20029] = ResolveConstructor("OSGeo.MapGuide.MgMultiCurvePolygon"); +   \
classIdCtorMap[20030] = ResolveConstructor("OSGeo.MapGuide.MgMultiCurveString"); +    \
classIdCtorMap[20031] = ResolveConstructor("OSGeo.MapGuide.MgMultiGeometry"); +       \
classIdCtorMap[20032] = ResolveConstructor("OSGeo.MapGuide.MgMultiLineString"); +     \
classIdCtorMap[20033] = ResolveConstructor("OSGeo.MapGuide.MgMultiPoint"); +          \
classIdCtorMap[20034] = ResolveConstructor("OSGeo.MapGuide.MgMultiPolygon"); +        \
classIdCtorMap[20035] = ResolveConstructor("OSGeo.MapGuide.MgPolygon"); +             \
classIdCtorMap[20037] = ResolveConstructor("OSGeo.MapGuide.MgRegion"); +              \
classIdCtorMap[20038] = ResolveConstructor("OSGeo.MapGuide.MgRing"); +                \
classIdCtorMap[20039] = ResolveConstructor("OSGeo.MapGuide.MgTransform"); +           \
classIdCtorMap[20040] = ResolveConstructor("OSGeo.MapGuide.MgWktReaderWriter"); +     \
classIdCtorMap[20041] = \
ResolveConstructor("OSGeo.MapGuide.MgCurveSegmentCollection"); +                \
classIdCtorMap[20042] = ResolveConstructor("OSGeo.MapGuide.MgLineString"); +          \
classIdCtorMap[20043] = ResolveConstructor("OSGeo.MapGuide.MgCurveStringCollection"); \
+                classIdCtorMap[20044] = \
ResolveConstructor("OSGeo.MapGuide.MgLineStringCollection"); +                \
classIdCtorMap[20045] = ResolveConstructor("OSGeo.MapGuide.MgPointCollection"); +     \
classIdCtorMap[20046] = ResolveConstructor("OSGeo.MapGuide.MgPolygonCollection"); +   \
classIdCtorMap[20047] = \
ResolveConstructor("OSGeo.MapGuide.MgCurvePolygonCollection"); +                \
classIdCtorMap[20048] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateXY"); +        \
classIdCtorMap[20049] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateXYZ"); +       \
classIdCtorMap[20050] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateXYZM"); +      \
classIdCtorMap[20051] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateXYM"); +       \
classIdCtorMap[20052] = ResolveConstructor("OSGeo.MapGuide.MgCurveRingCollection"); + \
classIdCtorMap[20053] = ResolveConstructor("OSGeo.MapGuide.MgLinearRingCollection"); \
+                classIdCtorMap[20054] = \
ResolveConstructor("OSGeo.MapGuide.MgGeometrySimplifier"); +                \
classIdCtorMap[20055] = ResolveConstructor("OSGeo.MapGuide.MgPreparedGeometry"); +    \
classIdCtorMap[20500] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystem"); +    \
classIdCtorMap[20501] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemFactory"); +                \
classIdCtorMap[20502] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemMeasure"); +                \
classIdCtorMap[20503] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemTransform"); +                \
classIdCtorMap[20504] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemCatalog"); +                \
classIdCtorMap[20505] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemFormatConverter"); +             \
classIdCtorMap[20506] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemCategory"); +                \
classIdCtorMap[20507] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemDatum"); \
+                classIdCtorMap[20508] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformation"); +      \
classIdCtorMap[20509] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemEllipsoid"); +                \
classIdCtorMap[20510] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemCategoryDictionary"); +          \
classIdCtorMap[20511] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemDictionary"); +                \
classIdCtorMap[20512] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemDatumDictionary"); +             \
classIdCtorMap[20513] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemEllipsoidDictionary"); +         \
classIdCtorMap[20514] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemEnum"); \
+                classIdCtorMap[20515] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemEnumInteger32"); +               \
classIdCtorMap[20516] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemFilter"); +                \
classIdCtorMap[20517] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemFilterInteger32"); +             \
classIdCtorMap[20518] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemMathComparator"); +              \
classIdCtorMap[20519] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemUnitInformation"); +             \
classIdCtorMap[20520] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemProjectionInformation"); +       \
classIdCtorMap[20521] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemDictionaryUtility"); +           \
classIdCtorMap[20522] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemMgrs"); \
+                classIdCtorMap[20524] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridBoundary"); +                \
classIdCtorMap[20525] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridSpecification"); +           \
classIdCtorMap[20526] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridLineCollection"); +          \
classIdCtorMap[20527] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridRegionCollection"); +        \
classIdCtorMap[20528] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridTickCollection"); +          \
classIdCtorMap[20529] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridLine"); +                \
classIdCtorMap[20530] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridRegion"); +                \
classIdCtorMap[20531] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridTick"); +                \
classIdCtorMap[20532] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridBase"); +                \
classIdCtorMap[20533] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticPath"); +                \
classIdCtorMap[20534] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticPathElement"); +         \
classIdCtorMap[20535] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticPathDictionary"); +      \
classIdCtorMap[20536] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDef"); +        \
classIdCtorMap[20540] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDefDictionary");
 +                classIdCtorMap[20541] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDefParams"); +  \
classIdCtorMap[20542] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticAnalyticalTransformDefParams");
 +                classIdCtorMap[20543] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticInterpolationTransformDefParams");
 +                classIdCtorMap[20544] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams");
 +                classIdCtorMap[20545] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformGridFile"); +   \
classIdCtorMap[20546] = \
ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticStandaloneTransformDefParams");
 +            }
+            if (HasAssemblyInAppDomain("OSGeo.MapGuide.PlatformBase")) {
+                classIdCtorMap[10000] = \
ResolveConstructor("OSGeo.MapGuide.MgIntCollection"); +                \
classIdCtorMap[10001] = \
ResolveConstructor("OSGeo.MapGuide.MgPropertyDefinitionCollection"); +                \
classIdCtorMap[10003] = \
ResolveConstructor("OSGeo.MapGuide.MgStringPropertyCollection"); +                \
classIdCtorMap[10004] = ResolveConstructor("OSGeo.MapGuide.MgParameterCollection"); + \
classIdCtorMap[10250] = ResolveConstructor("OSGeo.MapGuide.MgColor"); +               \
classIdCtorMap[10251] = ResolveConstructor("OSGeo.MapGuide.MgPropertyDefinition"); +  \
classIdCtorMap[10252] = ResolveConstructor("OSGeo.MapGuide.MgBlobProperty"); +        \
classIdCtorMap[10253] = ResolveConstructor("OSGeo.MapGuide.MgBooleanProperty"); +     \
classIdCtorMap[10254] = ResolveConstructor("OSGeo.MapGuide.MgByteProperty"); +        \
classIdCtorMap[10255] = ResolveConstructor("OSGeo.MapGuide.MgClobProperty"); +        \
classIdCtorMap[10256] = ResolveConstructor("OSGeo.MapGuide.MgDateTimeProperty"); +    \
classIdCtorMap[10257] = ResolveConstructor("OSGeo.MapGuide.MgDoubleProperty"); +      \
classIdCtorMap[10258] = ResolveConstructor("OSGeo.MapGuide.MgInt16Property"); +       \
classIdCtorMap[10259] = ResolveConstructor("OSGeo.MapGuide.MgInt32Property"); +       \
classIdCtorMap[10260] = ResolveConstructor("OSGeo.MapGuide.MgInt64Property"); +       \
classIdCtorMap[10261] = ResolveConstructor("OSGeo.MapGuide.MgSingleProperty"); +      \
classIdCtorMap[12000] = ResolveConstructor("OSGeo.MapGuide.MgMapBase"); +             \
classIdCtorMap[12001] = ResolveConstructor("OSGeo.MapGuide.MgLayerGroup"); +          \
classIdCtorMap[12002] = ResolveConstructor("OSGeo.MapGuide.MgLayerCollection"); +     \
classIdCtorMap[12003] = ResolveConstructor("OSGeo.MapGuide.MgLayerBase"); +           \
classIdCtorMap[12004] = ResolveConstructor("OSGeo.MapGuide.MgLayerGroupCollection"); \
+                classIdCtorMap[12005] = \
ResolveConstructor("OSGeo.MapGuide.MgMapCollection"); +                \
classIdCtorMap[12006] = \
ResolveConstructor("OSGeo.MapGuide.MgReadOnlyLayerCollection"); +                \
classIdCtorMap[12007] = ResolveConstructor("OSGeo.MapGuide.MgSelectionBase"); +       \
classIdCtorMap[11251] = ResolveConstructor("OSGeo.MapGuide.MgService"); +             \
classIdCtorMap[11257] = ResolveConstructor("OSGeo.MapGuide.MgWarnings"); +            \
classIdCtorMap[11750] = ResolveConstructor("OSGeo.MapGuide.MgClassDefinition"); +     \
classIdCtorMap[11751] = \
ResolveConstructor("OSGeo.MapGuide.MgDataPropertyDefinition"); +                \
classIdCtorMap[11753] = ResolveConstructor("OSGeo.MapGuide.MgFeatureReader"); +       \
classIdCtorMap[11754] = ResolveConstructor("OSGeo.MapGuide.MgFeatureService"); +      \
classIdCtorMap[11756] = \
ResolveConstructor("OSGeo.MapGuide.MgGeometricPropertyDefinition"); +                \
classIdCtorMap[11757] = ResolveConstructor("OSGeo.MapGuide.MgGeometry"); +            \
classIdCtorMap[11758] = ResolveConstructor("OSGeo.MapGuide.MgGeometryProperty"); +    \
classIdCtorMap[11759] = \
ResolveConstructor("OSGeo.MapGuide.MgObjectPropertyDefinition"); +                \
classIdCtorMap[11761] = ResolveConstructor("OSGeo.MapGuide.MgSpatialContextReader"); \
+                classIdCtorMap[11762] = \
ResolveConstructor("OSGeo.MapGuide.MgSqlDataReader"); +                \
classIdCtorMap[11764] = ResolveConstructor("OSGeo.MapGuide.MgFeatureProperty"); +     \
classIdCtorMap[11766] = ResolveConstructor("OSGeo.MapGuide.MgLongTransactionReader"); \
+                classIdCtorMap[11768] = \
ResolveConstructor("OSGeo.MapGuide.MgRasterPropertyDefinition"); +                \
classIdCtorMap[11769] = ResolveConstructor("OSGeo.MapGuide.MgRaster"); +              \
classIdCtorMap[11770] = ResolveConstructor("OSGeo.MapGuide.MgRasterProperty"); +      \
classIdCtorMap[11771] = ResolveConstructor("OSGeo.MapGuide.MgFeatureQueryOptions"); + \
classIdCtorMap[11772] = \
ResolveConstructor("OSGeo.MapGuide.MgFeatureAggregateOptions"); +                \
classIdCtorMap[11773] = ResolveConstructor("OSGeo.MapGuide.MgDataReader"); +          \
classIdCtorMap[11774] = \
ResolveConstructor("OSGeo.MapGuide.MgFeatureCommandCollection"); +                \
classIdCtorMap[11775] = ResolveConstructor("OSGeo.MapGuide.MgDeleteFeatures"); +      \
classIdCtorMap[11776] = ResolveConstructor("OSGeo.MapGuide.MgInsertFeatures"); +      \
classIdCtorMap[11777] = ResolveConstructor("OSGeo.MapGuide.MgUpdateFeatures"); +      \
classIdCtorMap[11778] = ResolveConstructor("OSGeo.MapGuide.MgFeatureSchema"); +       \
classIdCtorMap[11779] = \
ResolveConstructor("OSGeo.MapGuide.MgFeatureSchemaCollection"); +                \
classIdCtorMap[11780] = \
ResolveConstructor("OSGeo.MapGuide.MgClassDefinitionCollection"); +                \
classIdCtorMap[11782] = ResolveConstructor("OSGeo.MapGuide.MgGwsFeatureReader"); +    \
classIdCtorMap[11785] = ResolveConstructor("OSGeo.MapGuide.MgGeometryTypeInfo"); +    \
classIdCtorMap[11786] = \
ResolveConstructor("OSGeo.MapGuide.MgFileFeatureSourceParams"); +                \
classIdCtorMap[11787] = ResolveConstructor("OSGeo.MapGuide.MgTransaction"); +         \
classIdCtorMap[11788] = ResolveConstructor("OSGeo.MapGuide.MgParameter"); +           \
classIdCtorMap[11500] = ResolveConstructor("OSGeo.MapGuide.MgResourceIdentifier"); +  \
classIdCtorMap[11501] = ResolveConstructor("OSGeo.MapGuide.MgResourceService"); +     \
classIdCtorMap[11526] = ResolveConstructor("OSGeo.MapGuide.MgResource"); +            \
} +            if (HasAssemblyInAppDomain("OSGeo.MapGuide.MapGuideCommon")) {
+                classIdCtorMap[30500] = ResolveConstructor("OSGeo.MapGuide.MgMap");
+                classIdCtorMap[30501] = \
ResolveConstructor("OSGeo.MapGuide.MgLayer"); +                classIdCtorMap[30502] \
= ResolveConstructor("OSGeo.MapGuide.MgSelection"); +                \
classIdCtorMap[30601] = ResolveConstructor("OSGeo.MapGuide.MgSiteConnection"); +      \
classIdCtorMap[30604] = \
ResolveConstructor("OSGeo.MapGuide.MgPackageStatusInformation"); +                \
classIdCtorMap[30605] = ResolveConstructor("OSGeo.MapGuide.MgSite"); +                \
classIdCtorMap[30606] = ResolveConstructor("OSGeo.MapGuide.MgUserInformation"); +     \
classIdCtorMap[30607] = ResolveConstructor("OSGeo.MapGuide.MgServerAdmin"); +         \
classIdCtorMap[30608] = ResolveConstructor("OSGeo.MapGuide.MgSiteInfo"); +            \
classIdCtorMap[30700] = ResolveConstructor("OSGeo.MapGuide.MgDrawingService"); +      \
classIdCtorMap[30900] = ResolveConstructor("OSGeo.MapGuide.MgMappingService"); +      \
classIdCtorMap[30901] = ResolveConstructor("OSGeo.MapGuide.MgDwfVersion"); +          \
classIdCtorMap[30902] = ResolveConstructor("OSGeo.MapGuide.MgPlotSpecification"); +   \
classIdCtorMap[30904] = ResolveConstructor("OSGeo.MapGuide.MgLayout"); +              \
classIdCtorMap[30905] = ResolveConstructor("OSGeo.MapGuide.MgMapPlot"); +             \
classIdCtorMap[30906] = ResolveConstructor("OSGeo.MapGuide.MgMapPlotCollection"); +   \
classIdCtorMap[31000] = ResolveConstructor("OSGeo.MapGuide.MgRenderingService"); +    \
classIdCtorMap[31001] = ResolveConstructor("OSGeo.MapGuide.MgFeatureInformation"); +  \
classIdCtorMap[31002] = ResolveConstructor("OSGeo.MapGuide.MgRenderingOptions"); +    \
classIdCtorMap[31003] = ResolveConstructor("OSGeo.MapGuide.MgMetatile"); +            \
classIdCtorMap[31200] = ResolveConstructor("OSGeo.MapGuide.MgTileService"); +         \
classIdCtorMap[31300] = ResolveConstructor("OSGeo.MapGuide.MgKmlService"); +          \
classIdCtorMap[31400] = ResolveConstructor("OSGeo.MapGuide.MgProfilingService"); +    \
} +            if (HasAssemblyInAppDomain("OSGeo.MapGuide.Web")) {
+                classIdCtorMap[50000] = \
ResolveConstructor("OSGeo.MapGuide.MgWebCommand"); +                \
classIdCtorMap[50001] = ResolveConstructor("OSGeo.MapGuide.MgWebUiTargetCommand"); +  \
classIdCtorMap[50002] = ResolveConstructor("OSGeo.MapGuide.MgWebSearchCommand"); +    \
classIdCtorMap[50003] = \
ResolveConstructor("OSGeo.MapGuide.MgWebInvokeScriptCommand"); +                \
classIdCtorMap[50004] = ResolveConstructor("OSGeo.MapGuide.MgWebInvokeUrlCommand"); + \
classIdCtorMap[50005] = ResolveConstructor("OSGeo.MapGuide.MgWebBufferCommand"); +    \
classIdCtorMap[50006] = \
ResolveConstructor("OSGeo.MapGuide.MgWebSelectWithinCommand"); +                \
classIdCtorMap[50007] = ResolveConstructor("OSGeo.MapGuide.MgWebPrintCommand"); +     \
classIdCtorMap[50008] = ResolveConstructor("OSGeo.MapGuide.MgWebMeasureCommand"); +   \
classIdCtorMap[50009] = \
ResolveConstructor("OSGeo.MapGuide.MgWebGetPrintablePageCommand"); +                \
classIdCtorMap[50010] = ResolveConstructor("OSGeo.MapGuide.MgWebViewOptionsCommand"); \
+                classIdCtorMap[50011] = \
ResolveConstructor("OSGeo.MapGuide.MgWebHelpCommand"); +                \
classIdCtorMap[50012] = ResolveConstructor("OSGeo.MapGuide.MgWebCommandCollection"); \
+                classIdCtorMap[50013] = \
ResolveConstructor("OSGeo.MapGuide.MgWebWidget"); +                \
classIdCtorMap[50014] = ResolveConstructor("OSGeo.MapGuide.MgWebSeparatorWidget"); +  \
classIdCtorMap[50015] = ResolveConstructor("OSGeo.MapGuide.MgWebCommandWidget"); +    \
classIdCtorMap[50016] = ResolveConstructor("OSGeo.MapGuide.MgWebFlyoutWidget"); +     \
classIdCtorMap[50017] = ResolveConstructor("OSGeo.MapGuide.MgWebTaskBarWidget"); +    \
classIdCtorMap[50018] = ResolveConstructor("OSGeo.MapGuide.MgWebWidgetCollection"); + \
classIdCtorMap[50019] = ResolveConstructor("OSGeo.MapGuide.MgWebUiPane"); +           \
classIdCtorMap[50020] = ResolveConstructor("OSGeo.MapGuide.MgWebUiSizablePane"); +    \
classIdCtorMap[50021] = ResolveConstructor("OSGeo.MapGuide.MgWebToolBar"); +          \
classIdCtorMap[50022] = ResolveConstructor("OSGeo.MapGuide.MgWebInformationPane"); +  \
classIdCtorMap[50023] = ResolveConstructor("OSGeo.MapGuide.MgWebTaskBar"); +          \
classIdCtorMap[50024] = ResolveConstructor("OSGeo.MapGuide.MgWebTaskPane"); +         \
classIdCtorMap[50025] = ResolveConstructor("OSGeo.MapGuide.MgWebContextMenu"); +      \
classIdCtorMap[50026] = ResolveConstructor("OSGeo.MapGuide.MgWebLayout"); +           \
classIdCtorMap[40000] = ResolveConstructor("OSGeo.MapGuide.MgHttpHeader"); +          \
classIdCtorMap[40001] = ResolveConstructor("OSGeo.MapGuide.MgHttpRequestParam"); +    \
classIdCtorMap[40002] = ResolveConstructor("OSGeo.MapGuide.MgHttpRequestMetadata"); + \
classIdCtorMap[40003] = ResolveConstructor("OSGeo.MapGuide.MgHttpResult"); +          \
classIdCtorMap[40004] = ResolveConstructor("OSGeo.MapGuide.MgHttpRequest"); +         \
classIdCtorMap[40005] = ResolveConstructor("OSGeo.MapGuide.MgHttpResponse"); +        \
classIdCtorMap[40006] = ResolveConstructor("OSGeo.MapGuide.MgHttpPrimitiveValue"); +  \
}  
+
+            //Sanity check that we haven't double registered the same type name \
under different +            //class ids (Only possible when class id is being \
accidentally reused in a base or  +            //derived C++ class)
+            foreach (var kvp in classNameMap)
+            {
+                if (nameClassMap.ContainsKey(kvp.Value))
+                {
+                    throw new Exception($"Failed sanity check. Type ({kvp.Value}) \
already registered with class id of ({kvp.Key})"); +                }
+
+                nameClassMap[kvp.Value] = kvp.Key;
+            }
         }
         
-        internal static string GetTypeName(int id)
+        internal static IEnumerable<int> ClassIds => classIdCtorMap.Keys;
+
+        internal static int? GetClassId(string typeName)
         {
-            return classNameMap.ContainsKey(id) ? classNameMap[id] : null;
+            return nameClassMap.ContainsKey(typeName) ? nameClassMap[typeName] : \
(int?)null;  }
+
+        internal static ConstructorInfo GetProxyConstructor(int classId)
+        {
+            return classIdCtorMap.ContainsKey(classId) ? classIdCtorMap[classId] : \
null; +        }
+
+        static bool HasAssemblyInAppDomain(string assemblyName)
+        {
+#if MONOLITHIC_ASSEMBLY
+            return true;
+#else
+            var assemblies = global::System.AppDomain.CurrentDomain.GetAssemblies();
+            foreach (var assem in assemblies)
+            {
+                var asmName = new \
global::System.Reflection.AssemblyName(assem.FullName); +                if \
(asmName.Name == assemblyName) +                {
+                    return true;
+                }
+            }
+            return false;
+#endif
+        }
+
+        static ConstructorInfo ResolveConstructor(string typeName)
+        {
+            var type = global::System.Type.GetType(typeName);
+            if (type == null)
+            {
+                // Find the specified class in the pre-defined assemblies
+                var assemblies = \
global::System.AppDomain.CurrentDomain.GetAssemblies(); +                foreach (var \
assem in assemblies) +                {
+                    var assemblyName = new \
global::System.Reflection.AssemblyName(assem.FullName); +                    if \
(assemblyNames.Contains(assemblyName.Name)) +                    {
+                        type = assem.GetType(typeName, false);
+                        if (type != null)
+                            break;
+                    }
+                }
+
+                // Fall back to finding the type in every assembly in the current \
appdomain +                foreach (var assem in \
global::System.AppDomain.CurrentDomain.GetAssemblies()) +                {
+                    type = assem.GetType(typeName, false);
+                    if (type != null)
+                        break;
+                }
+            }
+
+            if (type == null) //Shouldn't happen. But if it did, this would mean we \
didn't expose this class to SWIG +            {
+                throw new global::System.Exception("The type " + typeName + " does \
not exist in the list of loaded assemblies"); +            }
+            else
+            {
+                //The constructor we require has been assigned internal visibility \
by SWIG. We could change it to public, but the internal +                //visibility \
is the ideal one for purposes of encapulsation (this is internal use only). So \
instead of Activator.CreateInstance() +                //which does not work with \
internal constructors, we'll find the ctor ourselves and invoke it. +                \
var flags = global::System.Reflection.BindingFlags.NonPublic | \
global::System.Reflection.BindingFlags.Public | \
global::System.Reflection.BindingFlags.Instance; +                var ctors = \
type.GetTypeInfo().GetConstructors(flags); +                var ctor = \
ctors.FirstOrDefault(ci => +                {
+                    var parms = ci.GetParameters();
+                    if (parms.Length == 2)
+                    {
+                        return parms[0].ParameterType == \
typeof(global::System.IntPtr) +                            && parms[1].ParameterType \
== typeof(bool); +                    }
+                    return false;
+                });
+                if (ctor == null)
+                    throw new global::System.Exception("Could not find required \
constructor among " + ctors.Length + " constructors with signature (IntPtr, bool) on \
type: " + type.Name); +                    
+                return ctor;
+            }
+        }
     }
 }
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/MapGuideDotNetApi/MapGuideDotNetApi.csproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/MapGuideDotNetApi/MapGuideDotNetApi.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/MapGuideDotNetApi/MapGuideDotNetApi.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -4,6 +4,7 @@
     <PackageId>MapGuideDotNetApi</PackageId>
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <DebugType>portable</DebugType>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <Version>4.0.0.0</Version>
     <PackageProjectUrl>https://mapguide.osgeo.org/</PackageProjectUrl>
@@ -17,11 +18,14 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Release</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Release</OutputPath>
+    <DocumentationFile>..\..\..\..\..\packages\DotNet\Release\MapGuideDotNetApi.xml</DocumentationFile>
 +    <DefineConstants>TRACE;MONOLITHIC_ASSEMBLY</DefineConstants>
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Debug</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Debug</OutputPath>
+    <DefineConstants>MONOLITHIC_ASSEMBLY</DefineConstants>
   </PropertyGroup>
 
   <ItemGroup>
@@ -30,6 +34,10 @@
   </ItemGroup>
 
   <ItemGroup>
+    <Compile Include="..\Common\MgClassMap.cs" Link="MgClassMap.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
     <None Include="..\..\..\..\..\License.txt">
       <Pack>True</Pack>
       <PackagePath></PackagePath>

Deleted: trunk/MgDev/Bindings/src/Managed/DotNet/MapGuideDotNetApi/custom/MgClassMap.cs
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/MapGuideDotNetApi/custom/MgClassMap.cs	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/MapGuideDotNetApi/custom/MgClassMap.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,361 +0,0 @@
-// This file is autogenerated by ClassMapGen. DO NOT EDIT
-
-using System;
-using System.Collections.Generic;
-
-namespace OSGeo.MapGuide
-{
-    internal static class MgClassMap
-    {
-        static Dictionary<int, string> classNameMap;
-        
-        static MgClassMap()
-        {
-            classNameMap = new Dictionary<int, string>();
-            
-            classNameMap[20004] = "OSGeo.MapGuide.MgAgfReaderWriter";
-            classNameMap[20005] = "OSGeo.MapGuide.MgAggregateGeometry";
-            classNameMap[1500] = "OSGeo.MapGuide.MgApplicationException";
-            classNameMap[20006] = "OSGeo.MapGuide.MgArcSegment";
-            classNameMap[1501] = "OSGeo.MapGuide.MgArgumentOutOfRangeException";
-            classNameMap[10500] = "OSGeo.MapGuide.MgArrayTypeMismatchException";
-            classNameMap[30000] = "OSGeo.MapGuide.MgAuthenticationFailedException";
-            classNameMap[1005] = "OSGeo.MapGuide.MgBatchPropertyCollection";
-            classNameMap[10252] = "OSGeo.MapGuide.MgBlobProperty";
-            classNameMap[10253] = "OSGeo.MapGuide.MgBooleanProperty";
-            classNameMap[10254] = "OSGeo.MapGuide.MgByteProperty";
-            classNameMap[1250] = "OSGeo.MapGuide.MgByteReader";
-            classNameMap[1257] = "OSGeo.MapGuide.MgByteSink";
-            classNameMap[1251] = "OSGeo.MapGuide.MgByteSource";
-            classNameMap[11750] = "OSGeo.MapGuide.MgClassDefinition";
-            classNameMap[11780] = "OSGeo.MapGuide.MgClassDefinitionCollection";
-            classNameMap[1502] = "OSGeo.MapGuide.MgClassNotFoundException";
-            classNameMap[10255] = "OSGeo.MapGuide.MgClobProperty";
-            classNameMap[10250] = "OSGeo.MapGuide.MgColor";
-            classNameMap[1503] = "OSGeo.MapGuide.MgConfigurationException";
-            classNameMap[1504] = \
                "OSGeo.MapGuide.MgConfigurationLoadFailedException";
-            classNameMap[1505] = \
                "OSGeo.MapGuide.MgConfigurationSaveFailedException";
-            classNameMap[30001] = "OSGeo.MapGuide.MgConnectionFailedException";
-            classNameMap[30002] = "OSGeo.MapGuide.MgConnectionNotOpenException";
-            classNameMap[20003] = "OSGeo.MapGuide.MgCoordinate";
-            classNameMap[20009] = "OSGeo.MapGuide.MgCoordinateIterator";
-            classNameMap[20500] = "OSGeo.MapGuide.MgCoordinateSystem";
-            classNameMap[20504] = "OSGeo.MapGuide.MgCoordinateSystemCatalog";
-            classNameMap[20506] = "OSGeo.MapGuide.MgCoordinateSystemCategory";
-            classNameMap[20510] = \
                "OSGeo.MapGuide.MgCoordinateSystemCategoryDictionary";
-            classNameMap[21000] = \
                "OSGeo.MapGuide.MgCoordinateSystemComputationFailedException";
-            classNameMap[21001] = \
                "OSGeo.MapGuide.MgCoordinateSystemConversionFailedException";
-            classNameMap[20507] = "OSGeo.MapGuide.MgCoordinateSystemDatum";
-            classNameMap[20512] = \
                "OSGeo.MapGuide.MgCoordinateSystemDatumDictionary";
-            classNameMap[20511] = "OSGeo.MapGuide.MgCoordinateSystemDictionary";
-            classNameMap[20521] = \
                "OSGeo.MapGuide.MgCoordinateSystemDictionaryUtility";
-            classNameMap[20509] = "OSGeo.MapGuide.MgCoordinateSystemEllipsoid";
-            classNameMap[20513] = \
                "OSGeo.MapGuide.MgCoordinateSystemEllipsoidDictionary";
-            classNameMap[20514] = "OSGeo.MapGuide.MgCoordinateSystemEnum";
-            classNameMap[20515] = "OSGeo.MapGuide.MgCoordinateSystemEnumInteger32";
-            classNameMap[20501] = "OSGeo.MapGuide.MgCoordinateSystemFactory";
-            classNameMap[20516] = "OSGeo.MapGuide.MgCoordinateSystemFilter";
-            classNameMap[20517] = \
                "OSGeo.MapGuide.MgCoordinateSystemFilterInteger32";
-            classNameMap[20505] = \
                "OSGeo.MapGuide.MgCoordinateSystemFormatConverter";
-            classNameMap[20542] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticAnalyticalTransformDefParams";
                
-            classNameMap[20543] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticInterpolationTransformDefParams";
                
-            classNameMap[20544] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams";
                
-            classNameMap[20533] = "OSGeo.MapGuide.MgCoordinateSystemGeodeticPath";
-            classNameMap[20535] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticPathDictionary";
-            classNameMap[20534] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticPathElement";
-            classNameMap[20508] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformation";
-            classNameMap[20536] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDef";
-            classNameMap[20540] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDefDictionary";
-            classNameMap[20545] = \
                "OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformGridFile";
-            classNameMap[20532] = "OSGeo.MapGuide.MgCoordinateSystemGridBase";
-            classNameMap[20524] = "OSGeo.MapGuide.MgCoordinateSystemGridBoundary";
-            classNameMap[20529] = "OSGeo.MapGuide.MgCoordinateSystemGridLine";
-            classNameMap[20526] = \
                "OSGeo.MapGuide.MgCoordinateSystemGridLineCollection";
-            classNameMap[20530] = "OSGeo.MapGuide.MgCoordinateSystemGridRegion";
-            classNameMap[20527] = \
                "OSGeo.MapGuide.MgCoordinateSystemGridRegionCollection";
-            classNameMap[20525] = \
                "OSGeo.MapGuide.MgCoordinateSystemGridSpecification";
-            classNameMap[20531] = "OSGeo.MapGuide.MgCoordinateSystemGridTick";
-            classNameMap[20528] = \
                "OSGeo.MapGuide.MgCoordinateSystemGridTickCollection";
-            classNameMap[21002] = \
                "OSGeo.MapGuide.MgCoordinateSystemInitializationFailedException";
-            classNameMap[21003] = \
                "OSGeo.MapGuide.MgCoordinateSystemLoadFailedException";
-            classNameMap[20518] = "OSGeo.MapGuide.MgCoordinateSystemMathComparator";
-            classNameMap[20502] = "OSGeo.MapGuide.MgCoordinateSystemMeasure";
-            classNameMap[21004] = \
                "OSGeo.MapGuide.MgCoordinateSystemMeasureFailedException";
-            classNameMap[20522] = "OSGeo.MapGuide.MgCoordinateSystemMgrs";
-            classNameMap[20520] = \
                "OSGeo.MapGuide.MgCoordinateSystemProjectionInformation";
-            classNameMap[20503] = "OSGeo.MapGuide.MgCoordinateSystemTransform";
-            classNameMap[21005] = \
                "OSGeo.MapGuide.MgCoordinateSystemTransformFailedException";
-            classNameMap[20519] = \
                "OSGeo.MapGuide.MgCoordinateSystemUnitInformation";
-            classNameMap[20048] = "OSGeo.MapGuide.MgCoordinateXY";
-            classNameMap[20051] = "OSGeo.MapGuide.MgCoordinateXYM";
-            classNameMap[20049] = "OSGeo.MapGuide.MgCoordinateXYZ";
-            classNameMap[20050] = "OSGeo.MapGuide.MgCoordinateXYZM";
-            classNameMap[20010] = "OSGeo.MapGuide.MgCurve";
-            classNameMap[20011] = "OSGeo.MapGuide.MgCurvePolygon";
-            classNameMap[20047] = "OSGeo.MapGuide.MgCurvePolygonCollection";
-            classNameMap[20012] = "OSGeo.MapGuide.MgCurveRing";
-            classNameMap[20052] = "OSGeo.MapGuide.MgCurveRingCollection";
-            classNameMap[20013] = "OSGeo.MapGuide.MgCurveSegment";
-            classNameMap[20041] = "OSGeo.MapGuide.MgCurveSegmentCollection";
-            classNameMap[20014] = "OSGeo.MapGuide.MgCurveString";
-            classNameMap[20043] = "OSGeo.MapGuide.MgCurveStringCollection";
-            classNameMap[11751] = "OSGeo.MapGuide.MgDataPropertyDefinition";
-            classNameMap[11773] = "OSGeo.MapGuide.MgDataReader";
-            classNameMap[1256] = "OSGeo.MapGuide.MgDateTime";
-            classNameMap[1506] = "OSGeo.MapGuide.MgDateTimeException";
-            classNameMap[10256] = "OSGeo.MapGuide.MgDateTimeProperty";
-            classNameMap[30003] = "OSGeo.MapGuide.MgDbException";
-            classNameMap[30004] = "OSGeo.MapGuide.MgDbXmlException";
-            classNameMap[1507] = "OSGeo.MapGuide.MgDecryptionException";
-            classNameMap[11775] = "OSGeo.MapGuide.MgDeleteFeatures";
-            classNameMap[1508] = "OSGeo.MapGuide.MgDirectoryNotFoundException";
-            classNameMap[1000] = "OSGeo.MapGuide.MgDisposableCollection";
-            classNameMap[1509] = "OSGeo.MapGuide.MgDivideByZeroException";
-            classNameMap[1510] = "OSGeo.MapGuide.MgDomainException";
-            classNameMap[10257] = "OSGeo.MapGuide.MgDoubleProperty";
-            classNameMap[30700] = "OSGeo.MapGuide.MgDrawingService";
-            classNameMap[1511] = "OSGeo.MapGuide.MgDuplicateDirectoryException";
-            classNameMap[1512] = "OSGeo.MapGuide.MgDuplicateFileException";
-            classNameMap[30005] = "OSGeo.MapGuide.MgDuplicateGroupException";
-            classNameMap[30006] = "OSGeo.MapGuide.MgDuplicateNameException";
-            classNameMap[1513] = "OSGeo.MapGuide.MgDuplicateObjectException";
-            classNameMap[30007] = "OSGeo.MapGuide.MgDuplicateParameterException";
-            classNameMap[30008] = "OSGeo.MapGuide.MgDuplicateRepositoryException";
-            classNameMap[10501] = "OSGeo.MapGuide.MgDuplicateResourceDataException";
-            classNameMap[10502] = "OSGeo.MapGuide.MgDuplicateResourceException";
-            classNameMap[30009] = "OSGeo.MapGuide.MgDuplicateRoleException";
-            classNameMap[30010] = "OSGeo.MapGuide.MgDuplicateServerException";
-            classNameMap[30011] = "OSGeo.MapGuide.MgDuplicateSessionException";
-            classNameMap[30012] = "OSGeo.MapGuide.MgDuplicateUserException";
-            classNameMap[30013] = "OSGeo.MapGuide.MgDwfException";
-            classNameMap[30014] = "OSGeo.MapGuide.MgDwfSectionNotFoundException";
-            classNameMap[30015] = \
                "OSGeo.MapGuide.MgDwfSectionResourceNotFoundException";
-            classNameMap[30901] = "OSGeo.MapGuide.MgDwfVersion";
-            classNameMap[10503] = "OSGeo.MapGuide.MgEmptyFeatureSetException";
-            classNameMap[1514] = "OSGeo.MapGuide.MgEncryptionException";
-            classNameMap[30016] = "OSGeo.MapGuide.MgEndOfStreamException";
-            classNameMap[20001] = "OSGeo.MapGuide.MgEnvelope";
-            classNameMap[1515] = "OSGeo.MapGuide.MgException";
-            classNameMap[10504] = "OSGeo.MapGuide.MgFdoException";
-            classNameMap[11772] = "OSGeo.MapGuide.MgFeatureAggregateOptions";
-            classNameMap[11774] = "OSGeo.MapGuide.MgFeatureCommandCollection";
-            classNameMap[31001] = "OSGeo.MapGuide.MgFeatureInformation";
-            classNameMap[11764] = "OSGeo.MapGuide.MgFeatureProperty";
-            classNameMap[11771] = "OSGeo.MapGuide.MgFeatureQueryOptions";
-            classNameMap[11753] = "OSGeo.MapGuide.MgFeatureReader";
-            classNameMap[11778] = "OSGeo.MapGuide.MgFeatureSchema";
-            classNameMap[11779] = "OSGeo.MapGuide.MgFeatureSchemaCollection";
-            classNameMap[11754] = "OSGeo.MapGuide.MgFeatureService";
-            classNameMap[10505] = "OSGeo.MapGuide.MgFeatureServiceException";
-            classNameMap[11786] = "OSGeo.MapGuide.MgFileFeatureSourceParams";
-            classNameMap[1516] = "OSGeo.MapGuide.MgFileIoException";
-            classNameMap[1517] = "OSGeo.MapGuide.MgFileNotFoundException";
-            classNameMap[20016] = "OSGeo.MapGuide.MgGeometricEntity";
-            classNameMap[11756] = "OSGeo.MapGuide.MgGeometricPropertyDefinition";
-            classNameMap[20019] = "OSGeo.MapGuide.MgGeometry";
-            classNameMap[20020] = "OSGeo.MapGuide.MgGeometryCollection";
-            classNameMap[20021] = "OSGeo.MapGuide.MgGeometryComponent";
-            classNameMap[21006] = "OSGeo.MapGuide.MgGeometryException";
-            classNameMap[20002] = "OSGeo.MapGuide.MgGeometryFactory";
-            classNameMap[11758] = "OSGeo.MapGuide.MgGeometryProperty";
-            classNameMap[11785] = "OSGeo.MapGuide.MgGeometryTypeInfo";
-            classNameMap[30018] = "OSGeo.MapGuide.MgGroupNotFoundException";
-            classNameMap[11782] = "OSGeo.MapGuide.MgGwsFeatureReader";
-            classNameMap[40000] = "OSGeo.MapGuide.MgHttpHeader";
-            classNameMap[40006] = "OSGeo.MapGuide.MgHttpPrimitiveValue";
-            classNameMap[40004] = "OSGeo.MapGuide.MgHttpRequest";
-            classNameMap[40002] = "OSGeo.MapGuide.MgHttpRequestMetadata";
-            classNameMap[40001] = "OSGeo.MapGuide.MgHttpRequestParam";
-            classNameMap[40005] = "OSGeo.MapGuide.MgHttpResponse";
-            classNameMap[40003] = "OSGeo.MapGuide.MgHttpResult";
-            classNameMap[1518] = "OSGeo.MapGuide.MgIndexOutOfRangeException";
-            classNameMap[11776] = "OSGeo.MapGuide.MgInsertFeatures";
-            classNameMap[10258] = "OSGeo.MapGuide.MgInt16Property";
-            classNameMap[10259] = "OSGeo.MapGuide.MgInt32Property";
-            classNameMap[10260] = "OSGeo.MapGuide.MgInt64Property";
-            classNameMap[10000] = "OSGeo.MapGuide.MgIntCollection";
-            classNameMap[1519] = "OSGeo.MapGuide.MgInvalidArgumentException";
-            classNameMap[1520] = "OSGeo.MapGuide.MgInvalidCastException";
-            classNameMap[21007] = \
                "OSGeo.MapGuide.MgInvalidCoordinateSystemException";
-            classNameMap[21008] = \
                "OSGeo.MapGuide.MgInvalidCoordinateSystemTypeException";
-            classNameMap[21009] = \
                "OSGeo.MapGuide.MgInvalidCoordinateSystemUnitsException";
-            classNameMap[30019] = "OSGeo.MapGuide.MgInvalidDwfPackageException";
-            classNameMap[30020] = "OSGeo.MapGuide.MgInvalidDwfSectionException";
-            classNameMap[30021] = "OSGeo.MapGuide.MgInvalidFeatureSourceException";
-            classNameMap[30022] = "OSGeo.MapGuide.MgInvalidIpAddressException";
-            classNameMap[30023] = "OSGeo.MapGuide.MgInvalidLicenseException";
-            classNameMap[30024] = "OSGeo.MapGuide.MgInvalidLogEntryException";
-            classNameMap[10507] = "OSGeo.MapGuide.MgInvalidMapDefinitionException";
-            classNameMap[1522] = "OSGeo.MapGuide.MgInvalidOperationException";
-            classNameMap[30026] = "OSGeo.MapGuide.MgInvalidPasswordException";
-            classNameMap[30027] = \
                "OSGeo.MapGuide.MgInvalidPrintLayoutFontSizeUnitsException";
-            classNameMap[30028] = \
                "OSGeo.MapGuide.MgInvalidPrintLayoutPositionUnitsException";
-            classNameMap[30029] = \
                "OSGeo.MapGuide.MgInvalidPrintLayoutSizeUnitsException";
-            classNameMap[1523] = "OSGeo.MapGuide.MgInvalidPropertyTypeException";
-            classNameMap[10508] = "OSGeo.MapGuide.MgInvalidRepositoryNameException";
-            classNameMap[10509] = "OSGeo.MapGuide.MgInvalidRepositoryTypeException";
-            classNameMap[10510] = \
                "OSGeo.MapGuide.MgInvalidResourceDataNameException";
-            classNameMap[10511] = \
                "OSGeo.MapGuide.MgInvalidResourceDataTypeException";
-            classNameMap[10512] = "OSGeo.MapGuide.MgInvalidResourceNameException";
-            classNameMap[10513] = "OSGeo.MapGuide.MgInvalidResourcePathException";
-            classNameMap[10514] = \
                "OSGeo.MapGuide.MgInvalidResourcePreProcessingTypeException";
-            classNameMap[10515] = "OSGeo.MapGuide.MgInvalidResourceTypeException";
-            classNameMap[30031] = "OSGeo.MapGuide.MgInvalidServerNameException";
-            classNameMap[1524] = "OSGeo.MapGuide.MgInvalidStreamHeaderException";
-            classNameMap[1525] = "OSGeo.MapGuide.MgIoException";
-            classNameMap[31300] = "OSGeo.MapGuide.MgKmlService";
-            classNameMap[30501] = "OSGeo.MapGuide.MgLayer";
-            classNameMap[12003] = "OSGeo.MapGuide.MgLayerBase";
-            classNameMap[12002] = "OSGeo.MapGuide.MgLayerCollection";
-            classNameMap[12001] = "OSGeo.MapGuide.MgLayerGroup";
-            classNameMap[12004] = "OSGeo.MapGuide.MgLayerGroupCollection";
-            classNameMap[10517] = "OSGeo.MapGuide.MgLayerNotFoundException";
-            classNameMap[30904] = "OSGeo.MapGuide.MgLayout";
-            classNameMap[1526] = "OSGeo.MapGuide.MgLengthException";
-            classNameMap[30032] = "OSGeo.MapGuide.MgLicenseException";
-            classNameMap[30033] = "OSGeo.MapGuide.MgLicenseExpiredException";
-            classNameMap[20023] = "OSGeo.MapGuide.MgLinearRing";
-            classNameMap[20053] = "OSGeo.MapGuide.MgLinearRingCollection";
-            classNameMap[20024] = "OSGeo.MapGuide.MgLinearSegment";
-            classNameMap[20042] = "OSGeo.MapGuide.MgLineString";
-            classNameMap[20044] = "OSGeo.MapGuide.MgLineStringCollection";
-            classNameMap[1527] = "OSGeo.MapGuide.MgLogicException";
-            classNameMap[11766] = "OSGeo.MapGuide.MgLongTransactionReader";
-            classNameMap[30500] = "OSGeo.MapGuide.MgMap";
-            classNameMap[12000] = "OSGeo.MapGuide.MgMapBase";
-            classNameMap[12005] = "OSGeo.MapGuide.MgMapCollection";
-            classNameMap[30900] = "OSGeo.MapGuide.MgMappingService";
-            classNameMap[30905] = "OSGeo.MapGuide.MgMapPlot";
-            classNameMap[30906] = "OSGeo.MapGuide.MgMapPlotCollection";
-            classNameMap[20029] = "OSGeo.MapGuide.MgMultiCurvePolygon";
-            classNameMap[20030] = "OSGeo.MapGuide.MgMultiCurveString";
-            classNameMap[20031] = "OSGeo.MapGuide.MgMultiGeometry";
-            classNameMap[20032] = "OSGeo.MapGuide.MgMultiLineString";
-            classNameMap[20033] = "OSGeo.MapGuide.MgMultiPoint";
-            classNameMap[20034] = "OSGeo.MapGuide.MgMultiPolygon";
-            classNameMap[1528] = "OSGeo.MapGuide.MgNotFiniteNumberException";
-            classNameMap[1529] = "OSGeo.MapGuide.MgNotImplementedException";
-            classNameMap[1530] = "OSGeo.MapGuide.MgNullArgumentException";
-            classNameMap[1531] = "OSGeo.MapGuide.MgNullPropertyValueException";
-            classNameMap[1532] = "OSGeo.MapGuide.MgNullReferenceException";
-            classNameMap[1533] = "OSGeo.MapGuide.MgObjectNotFoundException";
-            classNameMap[11759] = "OSGeo.MapGuide.MgObjectPropertyDefinition";
-            classNameMap[30035] = "OSGeo.MapGuide.MgOperationProcessingException";
-            classNameMap[1534] = "OSGeo.MapGuide.MgOutOfMemoryException";
-            classNameMap[1535] = "OSGeo.MapGuide.MgOutOfRangeException";
-            classNameMap[1536] = "OSGeo.MapGuide.MgOverflowException";
-            classNameMap[30604] = "OSGeo.MapGuide.MgPackageStatusInformation";
-            classNameMap[11788] = "OSGeo.MapGuide.MgParameter";
-            classNameMap[10004] = "OSGeo.MapGuide.MgParameterCollection";
-            classNameMap[30036] = "OSGeo.MapGuide.MgParameterNotFoundException";
-            classNameMap[30037] = "OSGeo.MapGuide.MgPathTooLongException";
-            classNameMap[1537] = "OSGeo.MapGuide.MgPlatformNotSupportedException";
-            classNameMap[30902] = "OSGeo.MapGuide.MgPlotSpecification";
-            classNameMap[20000] = "OSGeo.MapGuide.MgPoint";
-            classNameMap[20045] = "OSGeo.MapGuide.MgPointCollection";
-            classNameMap[20035] = "OSGeo.MapGuide.MgPolygon";
-            classNameMap[20046] = "OSGeo.MapGuide.MgPolygonCollection";
-            classNameMap[30039] = "OSGeo.MapGuide.MgPortNotAvailableException";
-            classNameMap[30040] = \
                "OSGeo.MapGuide.MgPrintToScaleModeNotSelectedException";
-            classNameMap[31400] = "OSGeo.MapGuide.MgProfilingService";
-            classNameMap[2000] = "OSGeo.MapGuide.MgProperty";
-            classNameMap[1002] = "OSGeo.MapGuide.MgPropertyCollection";
-            classNameMap[2002] = "OSGeo.MapGuide.MgPropertyDefinition";
-            classNameMap[10001] = "OSGeo.MapGuide.MgPropertyDefinitionCollection";
-            classNameMap[11769] = "OSGeo.MapGuide.MgRaster";
-            classNameMap[11770] = "OSGeo.MapGuide.MgRasterProperty";
-            classNameMap[11768] = "OSGeo.MapGuide.MgRasterPropertyDefinition";
-            classNameMap[12006] = "OSGeo.MapGuide.MgReadOnlyLayerCollection";
-            classNameMap[20037] = "OSGeo.MapGuide.MgRegion";
-            classNameMap[31002] = "OSGeo.MapGuide.MgRenderingOptions";
-            classNameMap[31000] = "OSGeo.MapGuide.MgRenderingService";
-            classNameMap[30041] = \
                "OSGeo.MapGuide.MgRepositoryCreationFailedException";
-            classNameMap[30042] = "OSGeo.MapGuide.MgRepositoryNotFoundException";
-            classNameMap[30043] = "OSGeo.MapGuide.MgRepositoryNotOpenException";
-            classNameMap[30044] = "OSGeo.MapGuide.MgRepositoryOpenFailedException";
-            classNameMap[11526] = "OSGeo.MapGuide.MgResource";
-            classNameMap[10518] = "OSGeo.MapGuide.MgResourceBusyException";
-            classNameMap[10519] = "OSGeo.MapGuide.MgResourceDataNotFoundException";
-            classNameMap[11500] = "OSGeo.MapGuide.MgResourceIdentifier";
-            classNameMap[10520] = "OSGeo.MapGuide.MgResourceNotFoundException";
-            classNameMap[11501] = "OSGeo.MapGuide.MgResourceService";
-            classNameMap[1538] = "OSGeo.MapGuide.MgResourcesException";
-            classNameMap[1539] = "OSGeo.MapGuide.MgResourcesLoadFailedException";
-            classNameMap[1540] = "OSGeo.MapGuide.MgResourceTagNotFoundException";
-            classNameMap[20038] = "OSGeo.MapGuide.MgRing";
-            classNameMap[30045] = "OSGeo.MapGuide.MgRoleNotFoundException";
-            classNameMap[1541] = "OSGeo.MapGuide.MgRuntimeException";
-            classNameMap[30502] = "OSGeo.MapGuide.MgSelection";
-            classNameMap[12007] = "OSGeo.MapGuide.MgSelectionBase";
-            classNameMap[30607] = "OSGeo.MapGuide.MgServerAdmin";
-            classNameMap[30046] = "OSGeo.MapGuide.MgServerNotFoundException";
-            classNameMap[30047] = "OSGeo.MapGuide.MgServerNotOnlineException";
-            classNameMap[11251] = "OSGeo.MapGuide.MgService";
-            classNameMap[10521] = "OSGeo.MapGuide.MgServiceNotAvailableException";
-            classNameMap[10522] = "OSGeo.MapGuide.MgServiceNotSupportedException";
-            classNameMap[30048] = "OSGeo.MapGuide.MgSessionExpiredException";
-            classNameMap[30052] = "OSGeo.MapGuide.MgSessionNotFoundException";
-            classNameMap[10261] = "OSGeo.MapGuide.MgSingleProperty";
-            classNameMap[30605] = "OSGeo.MapGuide.MgSite";
-            classNameMap[30601] = "OSGeo.MapGuide.MgSiteConnection";
-            classNameMap[30608] = "OSGeo.MapGuide.MgSiteInfo";
-            classNameMap[11761] = "OSGeo.MapGuide.MgSpatialContextReader";
-            classNameMap[11762] = "OSGeo.MapGuide.MgSqlDataReader";
-            classNameMap[1542] = "OSGeo.MapGuide.MgStreamIoException";
-            classNameMap[1003] = "OSGeo.MapGuide.MgStringCollection";
-            classNameMap[2001] = "OSGeo.MapGuide.MgStringProperty";
-            classNameMap[10003] = "OSGeo.MapGuide.MgStringPropertyCollection";
-            classNameMap[1543] = "OSGeo.MapGuide.MgSystemException";
-            classNameMap[1544] = \
                "OSGeo.MapGuide.MgTemporaryFileNotAvailableException";
-            classNameMap[1545] = "OSGeo.MapGuide.MgThirdPartyException";
-            classNameMap[31200] = "OSGeo.MapGuide.MgTileService";
-            classNameMap[11787] = "OSGeo.MapGuide.MgTransaction";
-            classNameMap[30049] = "OSGeo.MapGuide.MgUnauthorizedAccessException";
-            classNameMap[1547] = "OSGeo.MapGuide.MgUnclassifiedException";
-            classNameMap[1548] = "OSGeo.MapGuide.MgUnderflowException";
-            classNameMap[30056] = "OSGeo.MapGuide.MgUnknownTileProviderException";
-            classNameMap[30057] = \
                "OSGeo.MapGuide.MgUnsupportedTileProviderException";
-            classNameMap[11777] = "OSGeo.MapGuide.MgUpdateFeatures";
-            classNameMap[30050] = "OSGeo.MapGuide.MgUriFormatException";
-            classNameMap[30606] = "OSGeo.MapGuide.MgUserInformation";
-            classNameMap[10523] = "OSGeo.MapGuide.MgUserNotFoundException";
-            classNameMap[11257] = "OSGeo.MapGuide.MgWarnings";
-            classNameMap[50005] = "OSGeo.MapGuide.MgWebBufferCommand";
-            classNameMap[50000] = "OSGeo.MapGuide.MgWebCommand";
-            classNameMap[50012] = "OSGeo.MapGuide.MgWebCommandCollection";
-            classNameMap[50015] = "OSGeo.MapGuide.MgWebCommandWidget";
-            classNameMap[50025] = "OSGeo.MapGuide.MgWebContextMenu";
-            classNameMap[50016] = "OSGeo.MapGuide.MgWebFlyoutWidget";
-            classNameMap[50009] = "OSGeo.MapGuide.MgWebGetPrintablePageCommand";
-            classNameMap[50011] = "OSGeo.MapGuide.MgWebHelpCommand";
-            classNameMap[50022] = "OSGeo.MapGuide.MgWebInformationPane";
-            classNameMap[50003] = "OSGeo.MapGuide.MgWebInvokeScriptCommand";
-            classNameMap[50004] = "OSGeo.MapGuide.MgWebInvokeUrlCommand";
-            classNameMap[50026] = "OSGeo.MapGuide.MgWebLayout";
-            classNameMap[50008] = "OSGeo.MapGuide.MgWebMeasureCommand";
-            classNameMap[50007] = "OSGeo.MapGuide.MgWebPrintCommand";
-            classNameMap[50002] = "OSGeo.MapGuide.MgWebSearchCommand";
-            classNameMap[50006] = "OSGeo.MapGuide.MgWebSelectWithinCommand";
-            classNameMap[50014] = "OSGeo.MapGuide.MgWebSeparatorWidget";
-            classNameMap[50023] = "OSGeo.MapGuide.MgWebTaskBar";
-            classNameMap[50017] = "OSGeo.MapGuide.MgWebTaskBarWidget";
-            classNameMap[50024] = "OSGeo.MapGuide.MgWebTaskPane";
-            classNameMap[50021] = "OSGeo.MapGuide.MgWebToolBar";
-            classNameMap[50019] = "OSGeo.MapGuide.MgWebUiPane";
-            classNameMap[50020] = "OSGeo.MapGuide.MgWebUiSizablePane";
-            classNameMap[50001] = "OSGeo.MapGuide.MgWebUiTargetCommand";
-            classNameMap[50010] = "OSGeo.MapGuide.MgWebViewOptionsCommand";
-            classNameMap[50013] = "OSGeo.MapGuide.MgWebWidget";
-            classNameMap[50018] = "OSGeo.MapGuide.MgWebWidgetCollection";
-            classNameMap[20040] = "OSGeo.MapGuide.MgWktReaderWriter";
-            classNameMap[1549] = "OSGeo.MapGuide.MgXmlException";
-            classNameMap[1550] = "OSGeo.MapGuide.MgXmlParserException";
-
-        }
-        
-        internal static string GetTypeName(int id)
-        {
-            return classNameMap.ContainsKey(id) ? classNameMap[id] : null;
-        }
-    }
-}
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/OSGeo.MapGuide.Foundation.csproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/OSGeo.MapGuide.Foundation.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/OSGeo.MapGuide.Foundation.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,9 +1,10 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <PackageId>OSGeo.MapGuide.Foundation</PackageId>
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <DebugType>portable</DebugType>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <Version>4.0.0.0</Version>
     <PackageProjectUrl>https://mapguide.osgeo.org/</PackageProjectUrl>
@@ -17,11 +18,12 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Release</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Release</OutputPath>
+    <DocumentationFile>..\..\..\..\..\packages\DotNet\Release\OSGeo.MapGuide.Foundation.xml</DocumentationFile>
  </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Debug</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Debug</OutputPath>
   </PropertyGroup>
 
   <ItemGroup>

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/custom/ManagedException.cs
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/custom/ManagedException.cs	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/custom/ManagedException.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -34,7 +34,10 @@
         private string mMessage;
         private string mStackTrace;
 
-        public ManagedException()
+        /// <summary>
+        /// Constructs a new instance of this exception
+        /// </summary>
+        protected ManagedException()
         {
             mIsWrapper = true;
             mMessage = string.Empty;
@@ -41,6 +44,7 @@
             mStackTrace = string.Empty;
         }
 
+        ///<inheritdoc/>
         public override string Message
         {
             get
@@ -49,6 +53,7 @@
             }
         }
 
+        ///<inheritdoc/>
         public override string StackTrace
         {
             get
@@ -66,6 +71,10 @@
                     //The "-" being a leftover, so replace "at-" with "at" as well \
                after re-joining.
                     //The reason we don't blindly replace "-" in the C++ stack is \
because we don't want to scramble any physical path  //that would also contain a "-"
+                    //
+                    //Also the C++ stack is in the opposite order to the managed one \
(managed goes up, C++ goes down), so we'll reverse the +                    //C++ one
+                    Array.Reverse(mgStackTrace);
                     string sanitizedStack = ("   at" + \
                string.Join(Environment.NewLine + "   at", \
                mgStackTrace)).Replace("at-", "at");
                     return string.Format("{0}{1}   ==== [C++ <-> .net] ===={1}{2}", \
sanitizedStack, Environment.NewLine, base.StackTrace);  }
@@ -76,6 +85,7 @@
             }
         }
 
+        ///<inheritdoc/>
         public override string ToString()
         {
             string className = this.GetType().ToString();

Deleted: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/README.txt
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/README.txt	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/README.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1 +0,0 @@
-All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Copied: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/readme-win-x64.txt \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/readme-win-x64.txt)
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/readme-win-x64.txt	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Foundation/runtimes/win-x64/native/readme-win-x64.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1 @@
+All unmanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/OSGeo.MapGuide.Geometry.csproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/OSGeo.MapGuide.Geometry.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/OSGeo.MapGuide.Geometry.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -4,6 +4,7 @@
     <PackageId>OSGeo.MapGuide.Geometry</PackageId>
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <DebugType>portable</DebugType>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <Version>4.0.0.0</Version>
     <PackageProjectUrl>https://mapguide.osgeo.org/</PackageProjectUrl>
@@ -17,11 +18,12 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Release</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Release</OutputPath>
+    <DocumentationFile>..\..\..\..\..\packages\DotNet\Release\OSGeo.MapGuide.Geometry.xml</DocumentationFile>
  </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Debug</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Debug</OutputPath>
   </PropertyGroup>
 
   <ItemGroup>

Deleted: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/README.txt
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/README.txt	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/README.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1 +0,0 @@
-All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Copied: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/readme-win-x64.txt \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/readme-win-x64.txt)
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/readme-win-x64.txt	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Geometry/runtimes/win-x64/native/readme-win-x64.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1 @@
+All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/OSGeo.MapGuide.MapGuideCommon.csproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/OSGeo.MapGuide.MapGuideCommon.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/OSGeo.MapGuide.MapGuideCommon.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -4,6 +4,7 @@
     <PackageId>OSGeo.MapGuide.MapGuideCommon</PackageId>
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <DebugType>portable</DebugType>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <Version>4.0.0.0</Version>
     <PackageProjectUrl>https://mapguide.osgeo.org/</PackageProjectUrl>
@@ -17,11 +18,12 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Release</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Release</OutputPath>
+    <DocumentationFile>..\..\..\..\..\packages\DotNet\Release\OSGeo.MapGuide.MapGuideCommon.xml</DocumentationFile>
  </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Debug</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Debug</OutputPath>
   </PropertyGroup>
 
   <ItemGroup>

Deleted: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/README.txt
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/README.txt	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/README.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1 +0,0 @@
-All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Copied: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/readme-win-x64.txt \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/readme-win-x64.txt)
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/readme-win-x64.txt	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.MapGuideCommon/runtimes/win-x64/native/readme-win-x64.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1 @@
+All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/OSGeo.MapGuide.PlatformBase.csproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/OSGeo.MapGuide.PlatformBase.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/OSGeo.MapGuide.PlatformBase.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -4,6 +4,7 @@
     <PackageId>OSGeo.MapGuide.PlatformBase</PackageId>
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <DebugType>portable</DebugType>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <Version>4.0.0.0</Version>
     <PackageProjectUrl>https://mapguide.osgeo.org/</PackageProjectUrl>
@@ -17,11 +18,12 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Release</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Release</OutputPath>
+    <DocumentationFile>..\..\..\..\..\packages\DotNet\Release\OSGeo.MapGuide.PlatformBase.xml</DocumentationFile>
  </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Debug</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Debug</OutputPath>
   </PropertyGroup>
 
     <ItemGroup>

Deleted: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/README.txt
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/README.txt	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/README.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1 +0,0 @@
-All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Copied: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/readme-win-x64.txt \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/readme-win-x64.txt)
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/readme-win-x64.txt	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/runtimes/win-x64/native/readme-win-x64.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1 @@
+All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/OSGeo.MapGuide.Web.csproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/OSGeo.MapGuide.Web.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/OSGeo.MapGuide.Web.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -4,6 +4,7 @@
     <PackageId>OSGeo.MapGuide.Web</PackageId>
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <DebugType>portable</DebugType>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <Version>4.0.0.0</Version>
     <PackageProjectUrl>https://mapguide.osgeo.org/</PackageProjectUrl>
@@ -17,7 +18,9 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
-    <OutputPath>..\..\..\..\packages\DotNet\Release</OutputPath>
+    <OutputPath>..\..\..\..\..\packages\DotNet\Release</OutputPath>
+    <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+    <DocumentationFile>..\..\..\..\..\packages\DotNet\Release\OSGeo.MapGuide.Web.xml</DocumentationFile>
  </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/custom/EntryPoint.cs
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/custom/EntryPoint.cs	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/custom/EntryPoint.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -36,6 +36,10 @@
         public static void MgInitializeWebTier(string configFile)
         {
             WebUnmanagedApiPINVOKE.MgInitializeWebTier(configFile);
+            // The above call is a direct P/Invoke call and not a wrapper call, so \
we have to make +            // sure to throw any pending exception if the native \
side stashed a pending exception +            if \
(WebUnmanagedApiPINVOKE.SWIGPendingException.Pending) +                throw \
WebUnmanagedApiPINVOKE.SWIGPendingException.Retrieve();  }
     }
 }
\ No newline at end of file

Deleted: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/README.txt
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/README.txt	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/README.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1 +0,0 @@
-All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Copied: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/readme-win-x64.txt \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/readme-win-x64.txt)
 ===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/readme-win-x64.txt	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Web/runtimes/win-x64/native/readme-win-x64.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1 @@
+All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Index: trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide
===================================================================
--- trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide	2022-10-10 10:00:53 UTC \
(rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide
___________________________________________________________________
Modified: svn:ignore
## -1 +1,2 ##
 *.class
+*.java
Modified: trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide/ObjectFactory.java
===================================================================
--- trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide/ObjectFactory.java	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Managed/Java/org/osgeo/mapguide/ObjectFactory.java	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -31,11 +31,7 @@
         {
             classMap.put(new Integer(20004), getSWIGCtor("MgAgfReaderWriter"));
             classMap.put(new Integer(20005), getSWIGCtor("MgAggregateGeometry"));
-            classMap.put(new Integer(1500), getSWIGCtor("MgApplicationException"));
             classMap.put(new Integer(20006), getSWIGCtor("MgArcSegment"));
-            classMap.put(new Integer(1501), \
                getSWIGCtor("MgArgumentOutOfRangeException"));
-            classMap.put(new Integer(10500), \
                getSWIGCtor("MgArrayTypeMismatchException"));
-            classMap.put(new Integer(30000), \
                getSWIGCtor("MgAuthenticationFailedException"));
             classMap.put(new Integer(1005), \
                getSWIGCtor("MgBatchPropertyCollection"));
             classMap.put(new Integer(10252), getSWIGCtor("MgBlobProperty"));
             classMap.put(new Integer(10253), getSWIGCtor("MgBooleanProperty"));
@@ -45,22 +41,15 @@
             classMap.put(new Integer(1251), getSWIGCtor("MgByteSource"));
             classMap.put(new Integer(11750), getSWIGCtor("MgClassDefinition"));
             classMap.put(new Integer(11780), \
                getSWIGCtor("MgClassDefinitionCollection"));
-            classMap.put(new Integer(1502), \
                getSWIGCtor("MgClassNotFoundException"));
             classMap.put(new Integer(10255), getSWIGCtor("MgClobProperty"));
             classMap.put(new Integer(10250), getSWIGCtor("MgColor"));
-            classMap.put(new Integer(1503), \
                getSWIGCtor("MgConfigurationException"));
-            classMap.put(new Integer(1504), \
                getSWIGCtor("MgConfigurationLoadFailedException"));
-            classMap.put(new Integer(1505), \
                getSWIGCtor("MgConfigurationSaveFailedException"));
-            classMap.put(new Integer(30001), \
                getSWIGCtor("MgConnectionFailedException"));
-            classMap.put(new Integer(30002), \
                getSWIGCtor("MgConnectionNotOpenException"));
             classMap.put(new Integer(20003), getSWIGCtor("MgCoordinate"));
+            classMap.put(new Integer(20008), getSWIGCtor("MgCoordinateCollection"));
             classMap.put(new Integer(20009), getSWIGCtor("MgCoordinateIterator"));
             classMap.put(new Integer(20500), getSWIGCtor("MgCoordinateSystem"));
             classMap.put(new Integer(20504), \
                getSWIGCtor("MgCoordinateSystemCatalog"));
             classMap.put(new Integer(20506), \
                getSWIGCtor("MgCoordinateSystemCategory"));
             classMap.put(new Integer(20510), \
                getSWIGCtor("MgCoordinateSystemCategoryDictionary"));
-            classMap.put(new Integer(21000), \
                getSWIGCtor("MgCoordinateSystemComputationFailedException"));
-            classMap.put(new Integer(21001), \
                getSWIGCtor("MgCoordinateSystemConversionFailedException"));
             classMap.put(new Integer(20507), \
                getSWIGCtor("MgCoordinateSystemDatum"));
             classMap.put(new Integer(20512), \
                getSWIGCtor("MgCoordinateSystemDatumDictionary"));
             classMap.put(new Integer(20511), \
getSWIGCtor("MgCoordinateSystemDictionary")); @@ -79,9 +68,11 @@
             classMap.put(new Integer(20533), \
                getSWIGCtor("MgCoordinateSystemGeodeticPath"));
             classMap.put(new Integer(20535), \
                getSWIGCtor("MgCoordinateSystemGeodeticPathDictionary"));
             classMap.put(new Integer(20534), \
getSWIGCtor("MgCoordinateSystemGeodeticPathElement")); +            classMap.put(new \
Integer(20546), getSWIGCtor("MgCoordinateSystemGeodeticStandaloneTransformDefParams"));
                
             classMap.put(new Integer(20508), \
                getSWIGCtor("MgCoordinateSystemGeodeticTransformation"));
             classMap.put(new Integer(20536), \
                getSWIGCtor("MgCoordinateSystemGeodeticTransformDef"));
             classMap.put(new Integer(20540), \
getSWIGCtor("MgCoordinateSystemGeodeticTransformDefDictionary")); +            \
classMap.put(new Integer(20541), \
                getSWIGCtor("MgCoordinateSystemGeodeticTransformDefParams"));
             classMap.put(new Integer(20545), \
                getSWIGCtor("MgCoordinateSystemGeodeticTransformGridFile"));
             classMap.put(new Integer(20532), \
                getSWIGCtor("MgCoordinateSystemGridBase"));
             classMap.put(new Integer(20524), \
getSWIGCtor("MgCoordinateSystemGridBoundary")); @@ -92,15 +83,11 @@
             classMap.put(new Integer(20525), \
                getSWIGCtor("MgCoordinateSystemGridSpecification"));
             classMap.put(new Integer(20531), \
                getSWIGCtor("MgCoordinateSystemGridTick"));
             classMap.put(new Integer(20528), \
                getSWIGCtor("MgCoordinateSystemGridTickCollection"));
-            classMap.put(new Integer(21002), \
                getSWIGCtor("MgCoordinateSystemInitializationFailedException"));
-            classMap.put(new Integer(21003), \
                getSWIGCtor("MgCoordinateSystemLoadFailedException"));
             classMap.put(new Integer(20518), \
                getSWIGCtor("MgCoordinateSystemMathComparator"));
             classMap.put(new Integer(20502), \
                getSWIGCtor("MgCoordinateSystemMeasure"));
-            classMap.put(new Integer(21004), \
                getSWIGCtor("MgCoordinateSystemMeasureFailedException"));
             classMap.put(new Integer(20522), getSWIGCtor("MgCoordinateSystemMgrs"));
             classMap.put(new Integer(20520), \
                getSWIGCtor("MgCoordinateSystemProjectionInformation"));
             classMap.put(new Integer(20503), \
                getSWIGCtor("MgCoordinateSystemTransform"));
-            classMap.put(new Integer(21005), \
                getSWIGCtor("MgCoordinateSystemTransformFailedException"));
             classMap.put(new Integer(20519), \
                getSWIGCtor("MgCoordinateSystemUnitInformation"));
             classMap.put(new Integer(20048), getSWIGCtor("MgCoordinateXY"));
             classMap.put(new Integer(20051), getSWIGCtor("MgCoordinateXYM"));
@@ -118,41 +105,15 @@
             classMap.put(new Integer(11751), \
                getSWIGCtor("MgDataPropertyDefinition"));
             classMap.put(new Integer(11773), getSWIGCtor("MgDataReader"));
             classMap.put(new Integer(1256), getSWIGCtor("MgDateTime"));
-            classMap.put(new Integer(1506), getSWIGCtor("MgDateTimeException"));
             classMap.put(new Integer(10256), getSWIGCtor("MgDateTimeProperty"));
-            classMap.put(new Integer(30003), getSWIGCtor("MgDbException"));
-            classMap.put(new Integer(30004), getSWIGCtor("MgDbXmlException"));
-            classMap.put(new Integer(1507), getSWIGCtor("MgDecryptionException"));
             classMap.put(new Integer(11775), getSWIGCtor("MgDeleteFeatures"));
-            classMap.put(new Integer(1508), \
getSWIGCtor("MgDirectoryNotFoundException")); +            classMap.put(new \
                Integer(2251), getSWIGCtor("MgDisposable"));
             classMap.put(new Integer(1000), getSWIGCtor("MgDisposableCollection"));
-            classMap.put(new Integer(1509), getSWIGCtor("MgDivideByZeroException"));
-            classMap.put(new Integer(1510), getSWIGCtor("MgDomainException"));
             classMap.put(new Integer(10257), getSWIGCtor("MgDoubleProperty"));
             classMap.put(new Integer(30700), getSWIGCtor("MgDrawingService"));
-            classMap.put(new Integer(1511), \
                getSWIGCtor("MgDuplicateDirectoryException"));
-            classMap.put(new Integer(1512), \
                getSWIGCtor("MgDuplicateFileException"));
-            classMap.put(new Integer(30005), \
                getSWIGCtor("MgDuplicateGroupException"));
-            classMap.put(new Integer(30006), \
                getSWIGCtor("MgDuplicateNameException"));
-            classMap.put(new Integer(1513), \
                getSWIGCtor("MgDuplicateObjectException"));
-            classMap.put(new Integer(30007), \
                getSWIGCtor("MgDuplicateParameterException"));
-            classMap.put(new Integer(30008), \
                getSWIGCtor("MgDuplicateRepositoryException"));
-            classMap.put(new Integer(10501), \
                getSWIGCtor("MgDuplicateResourceDataException"));
-            classMap.put(new Integer(10502), \
                getSWIGCtor("MgDuplicateResourceException"));
-            classMap.put(new Integer(30009), \
                getSWIGCtor("MgDuplicateRoleException"));
-            classMap.put(new Integer(30010), \
                getSWIGCtor("MgDuplicateServerException"));
-            classMap.put(new Integer(30011), \
                getSWIGCtor("MgDuplicateSessionException"));
-            classMap.put(new Integer(30012), \
                getSWIGCtor("MgDuplicateUserException"));
-            classMap.put(new Integer(30013), getSWIGCtor("MgDwfException"));
-            classMap.put(new Integer(30014), \
                getSWIGCtor("MgDwfSectionNotFoundException"));
-            classMap.put(new Integer(30015), \
                getSWIGCtor("MgDwfSectionResourceNotFoundException"));
             classMap.put(new Integer(30901), getSWIGCtor("MgDwfVersion"));
-            classMap.put(new Integer(10503), \
                getSWIGCtor("MgEmptyFeatureSetException"));
-            classMap.put(new Integer(1514), getSWIGCtor("MgEncryptionException"));
-            classMap.put(new Integer(30016), getSWIGCtor("MgEndOfStreamException"));
             classMap.put(new Integer(20001), getSWIGCtor("MgEnvelope"));
             classMap.put(new Integer(1515), getSWIGCtor("MgException"));
-            classMap.put(new Integer(10504), getSWIGCtor("MgFdoException"));
             classMap.put(new Integer(11772), \
                getSWIGCtor("MgFeatureAggregateOptions"));
             classMap.put(new Integer(11774), \
                getSWIGCtor("MgFeatureCommandCollection"));
             classMap.put(new Integer(31001), getSWIGCtor("MgFeatureInformation"));
@@ -162,20 +123,16 @@
             classMap.put(new Integer(11778), getSWIGCtor("MgFeatureSchema"));
             classMap.put(new Integer(11779), \
                getSWIGCtor("MgFeatureSchemaCollection"));
             classMap.put(new Integer(11754), getSWIGCtor("MgFeatureService"));
-            classMap.put(new Integer(10505), \
                getSWIGCtor("MgFeatureServiceException"));
             classMap.put(new Integer(11786), \
                getSWIGCtor("MgFileFeatureSourceParams"));
-            classMap.put(new Integer(1516), getSWIGCtor("MgFileIoException"));
-            classMap.put(new Integer(1517), getSWIGCtor("MgFileNotFoundException"));
             classMap.put(new Integer(20016), getSWIGCtor("MgGeometricEntity"));
             classMap.put(new Integer(11756), \
                getSWIGCtor("MgGeometricPropertyDefinition"));
-            classMap.put(new Integer(20019), getSWIGCtor("MgGeometry"));
+            classMap.put(new Integer(11757), getSWIGCtor("MgGeometry"));
             classMap.put(new Integer(20020), getSWIGCtor("MgGeometryCollection"));
             classMap.put(new Integer(20021), getSWIGCtor("MgGeometryComponent"));
-            classMap.put(new Integer(21006), getSWIGCtor("MgGeometryException"));
             classMap.put(new Integer(20002), getSWIGCtor("MgGeometryFactory"));
             classMap.put(new Integer(11758), getSWIGCtor("MgGeometryProperty"));
+            classMap.put(new Integer(20054), getSWIGCtor("MgGeometrySimplifier"));
             classMap.put(new Integer(11785), getSWIGCtor("MgGeometryTypeInfo"));
-            classMap.put(new Integer(30018), \
                getSWIGCtor("MgGroupNotFoundException"));
             classMap.put(new Integer(11782), getSWIGCtor("MgGwsFeatureReader"));
             classMap.put(new Integer(40000), getSWIGCtor("MgHttpHeader"));
             classMap.put(new Integer(40006), getSWIGCtor("MgHttpPrimitiveValue"));
@@ -184,41 +141,11 @@
             classMap.put(new Integer(40001), getSWIGCtor("MgHttpRequestParam"));
             classMap.put(new Integer(40005), getSWIGCtor("MgHttpResponse"));
             classMap.put(new Integer(40003), getSWIGCtor("MgHttpResult"));
-            classMap.put(new Integer(1518), \
                getSWIGCtor("MgIndexOutOfRangeException"));
             classMap.put(new Integer(11776), getSWIGCtor("MgInsertFeatures"));
             classMap.put(new Integer(10258), getSWIGCtor("MgInt16Property"));
             classMap.put(new Integer(10259), getSWIGCtor("MgInt32Property"));
             classMap.put(new Integer(10260), getSWIGCtor("MgInt64Property"));
             classMap.put(new Integer(10000), getSWIGCtor("MgIntCollection"));
-            classMap.put(new Integer(1519), \
                getSWIGCtor("MgInvalidArgumentException"));
-            classMap.put(new Integer(1520), getSWIGCtor("MgInvalidCastException"));
-            classMap.put(new Integer(21007), \
                getSWIGCtor("MgInvalidCoordinateSystemException"));
-            classMap.put(new Integer(21008), \
                getSWIGCtor("MgInvalidCoordinateSystemTypeException"));
-            classMap.put(new Integer(21009), \
                getSWIGCtor("MgInvalidCoordinateSystemUnitsException"));
-            classMap.put(new Integer(30019), \
                getSWIGCtor("MgInvalidDwfPackageException"));
-            classMap.put(new Integer(30020), \
                getSWIGCtor("MgInvalidDwfSectionException"));
-            classMap.put(new Integer(30021), \
                getSWIGCtor("MgInvalidFeatureSourceException"));
-            classMap.put(new Integer(30022), \
                getSWIGCtor("MgInvalidIpAddressException"));
-            classMap.put(new Integer(30023), \
                getSWIGCtor("MgInvalidLicenseException"));
-            classMap.put(new Integer(30024), \
                getSWIGCtor("MgInvalidLogEntryException"));
-            classMap.put(new Integer(10507), \
                getSWIGCtor("MgInvalidMapDefinitionException"));
-            classMap.put(new Integer(1522), \
                getSWIGCtor("MgInvalidOperationException"));
-            classMap.put(new Integer(30026), \
                getSWIGCtor("MgInvalidPasswordException"));
-            classMap.put(new Integer(30027), \
                getSWIGCtor("MgInvalidPrintLayoutFontSizeUnitsException"));
-            classMap.put(new Integer(30028), \
                getSWIGCtor("MgInvalidPrintLayoutPositionUnitsException"));
-            classMap.put(new Integer(30029), \
                getSWIGCtor("MgInvalidPrintLayoutSizeUnitsException"));
-            classMap.put(new Integer(1523), \
                getSWIGCtor("MgInvalidPropertyTypeException"));
-            classMap.put(new Integer(10508), \
                getSWIGCtor("MgInvalidRepositoryNameException"));
-            classMap.put(new Integer(10509), \
                getSWIGCtor("MgInvalidRepositoryTypeException"));
-            classMap.put(new Integer(10510), \
                getSWIGCtor("MgInvalidResourceDataNameException"));
-            classMap.put(new Integer(10511), \
                getSWIGCtor("MgInvalidResourceDataTypeException"));
-            classMap.put(new Integer(10512), \
                getSWIGCtor("MgInvalidResourceNameException"));
-            classMap.put(new Integer(10513), \
                getSWIGCtor("MgInvalidResourcePathException"));
-            classMap.put(new Integer(10514), \
                getSWIGCtor("MgInvalidResourcePreProcessingTypeException"));
-            classMap.put(new Integer(10515), \
                getSWIGCtor("MgInvalidResourceTypeException"));
-            classMap.put(new Integer(30031), \
                getSWIGCtor("MgInvalidServerNameException"));
-            classMap.put(new Integer(1524), \
                getSWIGCtor("MgInvalidStreamHeaderException"));
-            classMap.put(new Integer(1525), getSWIGCtor("MgIoException"));
             classMap.put(new Integer(31300), getSWIGCtor("MgKmlService"));
             classMap.put(new Integer(30501), getSWIGCtor("MgLayer"));
             classMap.put(new Integer(12003), getSWIGCtor("MgLayerBase"));
@@ -225,17 +152,12 @@
             classMap.put(new Integer(12002), getSWIGCtor("MgLayerCollection"));
             classMap.put(new Integer(12001), getSWIGCtor("MgLayerGroup"));
             classMap.put(new Integer(12004), getSWIGCtor("MgLayerGroupCollection"));
-            classMap.put(new Integer(10517), \
getSWIGCtor("MgLayerNotFoundException"));  classMap.put(new Integer(30904), \
                getSWIGCtor("MgLayout"));
-            classMap.put(new Integer(1526), getSWIGCtor("MgLengthException"));
-            classMap.put(new Integer(30032), getSWIGCtor("MgLicenseException"));
-            classMap.put(new Integer(30033), \
                getSWIGCtor("MgLicenseExpiredException"));
             classMap.put(new Integer(20023), getSWIGCtor("MgLinearRing"));
             classMap.put(new Integer(20053), getSWIGCtor("MgLinearRingCollection"));
             classMap.put(new Integer(20024), getSWIGCtor("MgLinearSegment"));
             classMap.put(new Integer(20042), getSWIGCtor("MgLineString"));
             classMap.put(new Integer(20044), getSWIGCtor("MgLineStringCollection"));
-            classMap.put(new Integer(1527), getSWIGCtor("MgLogicException"));
             classMap.put(new Integer(11766), \
getSWIGCtor("MgLongTransactionReader"));  classMap.put(new Integer(30500), \
getSWIGCtor("MgMap"));  classMap.put(new Integer(12000), getSWIGCtor("MgMapBase"));
@@ -243,6 +165,8 @@
             classMap.put(new Integer(30900), getSWIGCtor("MgMappingService"));
             classMap.put(new Integer(30905), getSWIGCtor("MgMapPlot"));
             classMap.put(new Integer(30906), getSWIGCtor("MgMapPlotCollection"));
+            classMap.put(new Integer(20027), getSWIGCtor("MgMeasure"));
+            classMap.put(new Integer(31003), getSWIGCtor("MgMetatile"));
             classMap.put(new Integer(20029), getSWIGCtor("MgMultiCurvePolygon"));
             classMap.put(new Integer(20030), getSWIGCtor("MgMultiCurveString"));
             classMap.put(new Integer(20031), getSWIGCtor("MgMultiGeometry"));
@@ -249,34 +173,21 @@
             classMap.put(new Integer(20032), getSWIGCtor("MgMultiLineString"));
             classMap.put(new Integer(20033), getSWIGCtor("MgMultiPoint"));
             classMap.put(new Integer(20034), getSWIGCtor("MgMultiPolygon"));
-            classMap.put(new Integer(1528), \
                getSWIGCtor("MgNotFiniteNumberException"));
-            classMap.put(new Integer(1529), \
                getSWIGCtor("MgNotImplementedException"));
-            classMap.put(new Integer(1530), getSWIGCtor("MgNullArgumentException"));
-            classMap.put(new Integer(1531), \
                getSWIGCtor("MgNullPropertyValueException"));
-            classMap.put(new Integer(1532), \
                getSWIGCtor("MgNullReferenceException"));
-            classMap.put(new Integer(1533), \
getSWIGCtor("MgObjectNotFoundException")); +            classMap.put(new \
                Integer(2252), getSWIGCtor("MgObject"));
             classMap.put(new Integer(11759), \
                getSWIGCtor("MgObjectPropertyDefinition"));
-            classMap.put(new Integer(30035), \
                getSWIGCtor("MgOperationProcessingException"));
-            classMap.put(new Integer(1534), getSWIGCtor("MgOutOfMemoryException"));
-            classMap.put(new Integer(1535), getSWIGCtor("MgOutOfRangeException"));
-            classMap.put(new Integer(1536), getSWIGCtor("MgOverflowException"));
             classMap.put(new Integer(30604), \
getSWIGCtor("MgPackageStatusInformation"));  classMap.put(new Integer(11788), \
                getSWIGCtor("MgParameter"));
             classMap.put(new Integer(10004), getSWIGCtor("MgParameterCollection"));
-            classMap.put(new Integer(30036), \
                getSWIGCtor("MgParameterNotFoundException"));
-            classMap.put(new Integer(30037), getSWIGCtor("MgPathTooLongException"));
-            classMap.put(new Integer(1537), \
                getSWIGCtor("MgPlatformNotSupportedException"));
             classMap.put(new Integer(30902), getSWIGCtor("MgPlotSpecification"));
             classMap.put(new Integer(20000), getSWIGCtor("MgPoint"));
             classMap.put(new Integer(20045), getSWIGCtor("MgPointCollection"));
             classMap.put(new Integer(20035), getSWIGCtor("MgPolygon"));
             classMap.put(new Integer(20046), getSWIGCtor("MgPolygonCollection"));
-            classMap.put(new Integer(30039), \
                getSWIGCtor("MgPortNotAvailableException"));
-            classMap.put(new Integer(30040), \
getSWIGCtor("MgPrintToScaleModeNotSelectedException")); +            classMap.put(new \
                Integer(20055), getSWIGCtor("MgPreparedGeometry"));
             classMap.put(new Integer(31400), getSWIGCtor("MgProfilingService"));
             classMap.put(new Integer(2000), getSWIGCtor("MgProperty"));
             classMap.put(new Integer(1002), getSWIGCtor("MgPropertyCollection"));
-            classMap.put(new Integer(2002), getSWIGCtor("MgPropertyDefinition"));
+            classMap.put(new Integer(10251), getSWIGCtor("MgPropertyDefinition"));
             classMap.put(new Integer(10001), \
getSWIGCtor("MgPropertyDefinitionCollection"));  classMap.put(new Integer(11769), \
                getSWIGCtor("MgRaster"));
             classMap.put(new Integer(11770), getSWIGCtor("MgRasterProperty"));
@@ -285,32 +196,14 @@
             classMap.put(new Integer(20037), getSWIGCtor("MgRegion"));
             classMap.put(new Integer(31002), getSWIGCtor("MgRenderingOptions"));
             classMap.put(new Integer(31000), getSWIGCtor("MgRenderingService"));
-            classMap.put(new Integer(30041), \
                getSWIGCtor("MgRepositoryCreationFailedException"));
-            classMap.put(new Integer(30042), \
                getSWIGCtor("MgRepositoryNotFoundException"));
-            classMap.put(new Integer(30043), \
                getSWIGCtor("MgRepositoryNotOpenException"));
-            classMap.put(new Integer(30044), \
getSWIGCtor("MgRepositoryOpenFailedException"));  classMap.put(new Integer(11526), \
                getSWIGCtor("MgResource"));
-            classMap.put(new Integer(10518), \
                getSWIGCtor("MgResourceBusyException"));
-            classMap.put(new Integer(10519), \
                getSWIGCtor("MgResourceDataNotFoundException"));
             classMap.put(new Integer(11500), getSWIGCtor("MgResourceIdentifier"));
-            classMap.put(new Integer(10520), \
                getSWIGCtor("MgResourceNotFoundException"));
             classMap.put(new Integer(11501), getSWIGCtor("MgResourceService"));
-            classMap.put(new Integer(1538), getSWIGCtor("MgResourcesException"));
-            classMap.put(new Integer(1539), \
                getSWIGCtor("MgResourcesLoadFailedException"));
-            classMap.put(new Integer(1540), \
getSWIGCtor("MgResourceTagNotFoundException"));  classMap.put(new Integer(20038), \
                getSWIGCtor("MgRing"));
-            classMap.put(new Integer(30045), \
                getSWIGCtor("MgRoleNotFoundException"));
-            classMap.put(new Integer(1541), getSWIGCtor("MgRuntimeException"));
             classMap.put(new Integer(30502), getSWIGCtor("MgSelection"));
             classMap.put(new Integer(12007), getSWIGCtor("MgSelectionBase"));
             classMap.put(new Integer(30607), getSWIGCtor("MgServerAdmin"));
-            classMap.put(new Integer(30046), \
                getSWIGCtor("MgServerNotFoundException"));
-            classMap.put(new Integer(30047), \
getSWIGCtor("MgServerNotOnlineException"));  classMap.put(new Integer(11251), \
                getSWIGCtor("MgService"));
-            classMap.put(new Integer(10521), \
                getSWIGCtor("MgServiceNotAvailableException"));
-            classMap.put(new Integer(10522), \
                getSWIGCtor("MgServiceNotSupportedException"));
-            classMap.put(new Integer(30048), \
                getSWIGCtor("MgSessionExpiredException"));
-            classMap.put(new Integer(30052), \
                getSWIGCtor("MgSessionNotFoundException"));
             classMap.put(new Integer(10261), getSWIGCtor("MgSingleProperty"));
             classMap.put(new Integer(30605), getSWIGCtor("MgSite"));
             classMap.put(new Integer(30601), getSWIGCtor("MgSiteConnection"));
@@ -317,24 +210,14 @@
             classMap.put(new Integer(30608), getSWIGCtor("MgSiteInfo"));
             classMap.put(new Integer(11761), getSWIGCtor("MgSpatialContextReader"));
             classMap.put(new Integer(11762), getSWIGCtor("MgSqlDataReader"));
-            classMap.put(new Integer(1542), getSWIGCtor("MgStreamIoException"));
             classMap.put(new Integer(1003), getSWIGCtor("MgStringCollection"));
             classMap.put(new Integer(2001), getSWIGCtor("MgStringProperty"));
             classMap.put(new Integer(10003), \
                getSWIGCtor("MgStringPropertyCollection"));
-            classMap.put(new Integer(1543), getSWIGCtor("MgSystemException"));
-            classMap.put(new Integer(1544), \
                getSWIGCtor("MgTemporaryFileNotAvailableException"));
-            classMap.put(new Integer(1545), getSWIGCtor("MgThirdPartyException"));
             classMap.put(new Integer(31200), getSWIGCtor("MgTileService"));
             classMap.put(new Integer(11787), getSWIGCtor("MgTransaction"));
-            classMap.put(new Integer(30049), \
                getSWIGCtor("MgUnauthorizedAccessException"));
-            classMap.put(new Integer(1547), getSWIGCtor("MgUnclassifiedException"));
-            classMap.put(new Integer(1548), getSWIGCtor("MgUnderflowException"));
-            classMap.put(new Integer(30056), \
                getSWIGCtor("MgUnknownTileProviderException"));
-            classMap.put(new Integer(30057), \
getSWIGCtor("MgUnsupportedTileProviderException")); +            classMap.put(new \
                Integer(20039), getSWIGCtor("MgTransform"));
             classMap.put(new Integer(11777), getSWIGCtor("MgUpdateFeatures"));
-            classMap.put(new Integer(30050), getSWIGCtor("MgUriFormatException"));
             classMap.put(new Integer(30606), getSWIGCtor("MgUserInformation"));
-            classMap.put(new Integer(10523), \
getSWIGCtor("MgUserNotFoundException"));  classMap.put(new Integer(11257), \
                getSWIGCtor("MgWarnings"));
             classMap.put(new Integer(50005), getSWIGCtor("MgWebBufferCommand"));
             classMap.put(new Integer(50000), getSWIGCtor("MgWebCommand"));
@@ -364,8 +247,6 @@
             classMap.put(new Integer(50013), getSWIGCtor("MgWebWidget"));
             classMap.put(new Integer(50018), getSWIGCtor("MgWebWidgetCollection"));
             classMap.put(new Integer(20040), getSWIGCtor("MgWktReaderWriter"));
-            classMap.put(new Integer(1549), getSWIGCtor("MgXmlException"));
-            classMap.put(new Integer(1550), getSWIGCtor("MgXmlParserException"));
 
         }
         catch(Exception e)
@@ -377,7 +258,13 @@
     private static Constructor getSWIGCtor(String className) throws \
ClassNotFoundException, Exception  {
         Constructor swigCtor = null;
-        Constructor[] cons = Class.forName("org.osgeo.mapguide." + \
className).getDeclaredConstructors(); +        String typeName = \
"org.osgeo.mapguide." + className; +        Class type = Class.forName(typeName);
+        if (type == null)
+        {
+            throw new Exception("Could not find proxy class: " + typeName);
+        }
+        Constructor[] cons = type.getDeclaredConstructors();
         for (int i = 0; i < cons.length; i++)
         {
             Class[] parameterTypes = cons[i].getParameterTypes();

Index: trunk/MgDev/Bindings/src/Test
===================================================================
--- trunk/MgDev/Bindings/src/Test	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Test
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+java_dist
Index: trunk/MgDev/Bindings/src/Test/DotNet
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Test/DotNet
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+.vs
Modified: trunk/MgDev/Bindings/src/Test/DotNet/FullFramework.sln
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/FullFramework.sln	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/FullFramework.sln	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -1,56 +1,70 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26124.0
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30709.132
 MinimumVisualStudioVersion = 15.0.26124.0
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMiscFull", \
"src\TestMiscFull\TestMiscFull.csproj", "{27285BB5-37B4-42DD-AB2C-CCD91824D044}"  \
                EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestCommonFull", \
"src\TestCommonFull\TestCommonFull.csproj", "{EB8713C5-0284-47C5-950A-90E4EB326669}" \
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestRunnerFull", \
"src\TestRunnerFull\TestRunnerFull.csproj", "{757BA8EB-065F-47A7-834D-025C1559E2A5}"  \
                EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMapGuideApiFull", \
"src\TestMapGuideApiFull\TestMapGuideApiFull.csproj", \
"{6584C02F-080F-425D-BE53-9F72F7BE2897}" \
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestCommon", \
"src\TestCommon\TestCommon.csproj", "{905BB3C2-4969-4AF3-8F4D-659DB683038C}"  \
                EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestRunnerFull", \
"src\TestRunnerFull\TestRunnerFull.csproj", "{757BA8EB-065F-47A7-834D-025C1559E2A5}" \
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMapGuideApi", \
"src\TestMapGuideApi\TestMapGuideApi.csproj", \
"{F3AEE349-3493-47C9-A1EF-607775FBCC3A}"  EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
 		Debug|x64 = Debug|x64
 		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
 		Release|x64 = Release|x64
 		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Debug|Any CPU.ActiveCfg = Debug|x86
 		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Debug|x64.ActiveCfg = Debug|x64
 		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Debug|x64.Build.0 = Debug|x64
 		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Debug|x86.ActiveCfg = Debug|x86
 		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Debug|x86.Build.0 = Debug|x86
+		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Release|Any CPU.ActiveCfg = Release|x86
 		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Release|x64.ActiveCfg = Release|x64
 		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Release|x64.Build.0 = Release|x64
 		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Release|x86.ActiveCfg = Release|x86
 		{27285BB5-37B4-42DD-AB2C-CCD91824D044}.Release|x86.Build.0 = Release|x86
-		{EB8713C5-0284-47C5-950A-90E4EB326669}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{EB8713C5-0284-47C5-950A-90E4EB326669}.Debug|x64.Build.0 = Debug|Any CPU
-		{EB8713C5-0284-47C5-950A-90E4EB326669}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{EB8713C5-0284-47C5-950A-90E4EB326669}.Debug|x86.Build.0 = Debug|Any CPU
-		{EB8713C5-0284-47C5-950A-90E4EB326669}.Release|x64.ActiveCfg = Release|Any CPU
-		{EB8713C5-0284-47C5-950A-90E4EB326669}.Release|x64.Build.0 = Release|Any CPU
-		{EB8713C5-0284-47C5-950A-90E4EB326669}.Release|x86.ActiveCfg = Release|Any CPU
-		{EB8713C5-0284-47C5-950A-90E4EB326669}.Release|x86.Build.0 = Release|Any CPU
-		{6584C02F-080F-425D-BE53-9F72F7BE2897}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{6584C02F-080F-425D-BE53-9F72F7BE2897}.Debug|x64.Build.0 = Debug|Any CPU
-		{6584C02F-080F-425D-BE53-9F72F7BE2897}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{6584C02F-080F-425D-BE53-9F72F7BE2897}.Debug|x86.Build.0 = Debug|Any CPU
-		{6584C02F-080F-425D-BE53-9F72F7BE2897}.Release|x64.ActiveCfg = Release|Any CPU
-		{6584C02F-080F-425D-BE53-9F72F7BE2897}.Release|x64.Build.0 = Release|Any CPU
-		{6584C02F-080F-425D-BE53-9F72F7BE2897}.Release|x86.ActiveCfg = Release|Any CPU
-		{6584C02F-080F-425D-BE53-9F72F7BE2897}.Release|x86.Build.0 = Release|Any CPU
+		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Debug|Any CPU.ActiveCfg = Debug|x86
 		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Debug|x64.ActiveCfg = Debug|x64
 		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Debug|x64.Build.0 = Debug|x64
 		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Debug|x86.ActiveCfg = Debug|x86
 		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Debug|x86.Build.0 = Debug|x86
+		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Release|Any CPU.ActiveCfg = Release|x86
 		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Release|x64.ActiveCfg = Release|x64
 		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Release|x64.Build.0 = Release|x64
 		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Release|x86.ActiveCfg = Release|x86
 		{757BA8EB-065F-47A7-834D-025C1559E2A5}.Release|x86.Build.0 = Release|x86
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Debug|x64.Build.0 = Debug|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Debug|x86.Build.0 = Debug|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Release|x64.ActiveCfg = Release|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Release|x64.Build.0 = Release|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Release|x86.ActiveCfg = Release|Any CPU
+		{905BB3C2-4969-4AF3-8F4D-659DB683038C}.Release|x86.Build.0 = Release|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Debug|x64.Build.0 = Debug|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Debug|x86.Build.0 = Debug|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Release|x64.ActiveCfg = Release|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Release|x64.Build.0 = Release|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Release|x86.ActiveCfg = Release|Any CPU
+		{F3AEE349-3493-47C9-A1EF-607775FBCC3A}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

Index: trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon	2022-10-10 10:00:53 UTC (rev \
9973)

Property changes on: trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+bin
+obj
Copied: trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/ExternalTests/StandardCatchTest.cs \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Test/DotNet/src/TestCommon/ExternalTests/StandardCatchTest.cs)
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/ExternalTests/StandardCatchTest.cs	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/ExternalTests/StandardCatchTest.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1,44 @@
+using OSGeo.MapGuide;
+using OSGeo.MapGuide.Test.Common;
+
+namespace TestCommon.ExternalTests
+{
+    public class StandardCatchTest : IExternalTest
+    {
+        public void Execute(IPlatformFactory factory, ITestLogger logger)
+        {
+            try
+            {
+                var resId = new MgResourceIdentifier("");
+                Assert.Fail("This should've thrown");
+            }
+            catch (MgException ex)
+            {
+                Assert.Equals(MgExceptionCodes.MgInvalidRepositoryTypeException, \
ex.GetExceptionCode()); +            }
+        }
+    }
+
+    public class CatchViaExceptionFilterTest : IExternalTest
+    {
+        public void Execute(IPlatformFactory factory, ITestLogger logger)
+        {
+            bool bHitCorrectCatchBlock = false;
+            try
+            {
+                var resId = new MgResourceIdentifier("");
+                Assert.Fail("This should've thrown");
+            }
+            catch (MgException ex) when (ex.GetExceptionCode() == \
MgExceptionCodes.MgInvalidRepositoryTypeException) +            {
+                //This is the block that should be hit
+                bHitCorrectCatchBlock = true;
+            }
+            catch (MgException ex) when (ex.GetExceptionCode() != \
MgExceptionCodes.MgInvalidRepositoryTypeException) +            {
+                Assert.Fail("Wrong exception filter triggered");
+            }
+            Assert.IsTrue(bHitCorrectCatchBlock);
+        }
+    }
+}

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/TestCommon.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/TestCommon.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/TestCommon.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -14,6 +14,8 @@
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="Microsoft.Data.SQLite" Version="2.0.1" />
+    <PackageReference Include="OSGeo.MapGuide.Foundation" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.Geometry" Version="4.0.0" />
     <PackageReference Include="OSGeo.MapGuide.PlatformBase" Version="4.0.0" />
   </ItemGroup>
 </Project>
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/TestResult.cs
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/TestResult.cs	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestCommon/TestResult.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -102,7 +102,7 @@
         public static TestResult FromMgException(MgException ex, NameValueCollection \
param)  {
             //Need to be lowercase to satisfy a PHP-ism. Ugh!
-            var res = new TestResult(ex.GetType().Name.ToLower(), "text/plain");
+            var res = new TestResult(ex.GetExceptionCode().ToLower(), "text/plain");
             res.IsException = true;
             res.FullExceptionDetails = ex.ToString();
             if (param != null)

Index: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi	2022-10-10 10:00:53 UTC \
(rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+bin
+obj
Copied: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/ByteReaderReadByChunksTest.cs \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/ByteReaderReadByChunksTest.cs)
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/ByteReaderReadByChunksTest.cs	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/ByteReaderReadByChunksTest.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1,92 @@
+using OSGeo.MapGuide;
+using OSGeo.MapGuide.Test.Common;
+using System;
+using System.Buffers;
+
+namespace TestMapGuideApi.ExternalTests
+{
+    public class ByteReaderReadByChunksTest : IExternalTest
+    {
+        public void Execute(IPlatformFactory factory, ITestLogger logger)
+        {
+            string testString = "abcd1234";
+            (int testLength, int expectedIterations, int expectedLastRead)[] \
testLengths = new[]  +            {
+                // 2 read size, 4 expected iterations, 2 bytes expected to be read \
on last iteration +                (2, 4, 2),
+                (3, 3, 2),
+                (4, 2, 4),
+            };
+            foreach (var (testLength, expectedIterations, expectedLastRead) in \
testLengths) +            {
+                var bytes = System.Text.Encoding.UTF8.GetBytes(testString);
+                var bs = new MgByteSource(bytes, bytes.Length);
+                var content = "";
+                var br = bs.GetReader();
+                byte[] buffer = new byte[testLength];
+                int read = br.Read(buffer, testLength);
+                int iterations = 0;
+                while (read > 0)
+                {
+                    var sbuf = System.Text.Encoding.UTF8.GetString(buffer);
+                    var expectedSubStr = testString.Substring(content.Length, read);
+                    //Console.WriteLine("Buffer: " + sbuf);
+                    Assert.Equals(expectedSubStr, sbuf);
+                    content += sbuf;
+                    read = br.Read(buffer, testLength);
+                    iterations++;
+                    if (iterations == expectedIterations) //Is last iteration?
+                    {
+                        Assert.Equals(expectedLastRead, read);
+                    }
+                }
+
+                Assert.Equals(expectedIterations, iterations);
+            }
+        }
+    }
+
+    // This test is same as above, but uses an ArrayPool instead of allocating a \
byte[] array +    public class ByteReaderReadByChunksNoAllocTest : IExternalTest
+    {
+        public void Execute(IPlatformFactory factory, ITestLogger logger)
+        {
+            string testString = "abcd1234";
+            (int testLength, int expectedIterations, int expectedLastRead)[] \
testLengths = new[] +            {
+                // 2 read size, 4 expected iterations, 2 bytes expected to be read \
on last iteration +                (2, 4, 2),
+                (3, 3, 2),
+                (4, 2, 4),
+            };
+            foreach (var (testLength, expectedIterations, expectedLastRead) in \
testLengths) +            {
+                var bytes = System.Text.Encoding.UTF8.GetBytes(testString);
+                var bs = new MgByteSource(bytes, bytes.Length);
+                var content = "";
+                var br = bs.GetReader();
+                var pool = ArrayPool<byte>.Shared;
+                var buffer = pool.Rent(testLength);
+                int read = br.Read(buffer, testLength);
+                int iterations = 0;
+                while (read > 0)
+                {
+                    var sbuf = System.Text.Encoding.UTF8.GetString(buffer, 0, \
testLength); +                    var expectedSubStr = \
testString.Substring(content.Length, read); +                    \
//Console.WriteLine("Buffer: " + sbuf); +                    \
Assert.Equals(expectedSubStr, sbuf); +                    content += sbuf;
+                    read = br.Read(buffer, testLength);
+                    iterations++;
+                    if (iterations == expectedIterations) //Is last iteration?
+                    {
+                        Assert.Equals(expectedLastRead, read);
+                    }
+                }
+
+                Assert.Equals(expectedIterations, iterations);
+                pool.Return(buffer);
+            }
+        }
+    }
+}

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/MapTests.cs
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/MapTests.cs	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/ExternalTests/MapTests.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -66,19 +66,38 @@
 
                 resSvc.SetResource(resMDF, contentMDF, null);
 
-                //This should throw because making a MgMap from a Map Defintion that \
                links to a XYZ tile set
-                //is not supported
-                MgMapBase map = factory.CreateMap(resMDF);
+                //As of MapGuide RFC 173 (adopted in MGOS 4.0), the tile set \
restriction has been +                //removed, meaning this operation should now be \
allowed +                MgMap map = factory.CreateMap(resMDF) as MgMap;
+                Assert.IsNotNull(map);
 
-                Assert.Fail("Expected MgUnsupportedTileProviderException to be \
thrown"); +                //Information in the linked tile set should surface \
through these new APIs +                Assert.Equals("XYZ", \
map.GetTileSetProvider()); +                Assert.Equals("PNG", \
map.GetTileFormat()); +                Assert.Equals(1, map.GetTilePixelRatio());
             }
             catch (MgException ex) when (ex.GetExceptionCode() == \
MgExceptionCodes.MgUnsupportedTileProviderException)  {
-
+                Assert.Fail("Creating a MgMap from a XYZ linked tile set should now \
be allowed!");  }
         }
     }
 
+    /*
+    This test case exercises the fix for the following reported issue:
+
+    MgMap fails to initialize properly from linked tile set if both coordinate \
systems match +
+        When attempting to view a Map Definition that is linked to a tile set in the \
AJAX Viewer,  +        the viewer will fail to load due to a null map extent.
+
+        The reason we have a null map extent is because when we initialize an MgMap? \
from a Map  +        Definition that links to a tile set, if both coordinate systems \
are the same, we are forgetting +        to set the map/data extents and center \
members, which results in a null map extent when retrieved. +
+        The AJAX viewers tries to set up the initial view based on the extent of the \
map, which given it +        is null in this case causes the viewer loading to fail.
+     */
     public class TestTicket2538 : ExternalTestBase
     {
         public override void Execute(IPlatformFactory factory, ITestLogger logger)

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/MapGuideTestExecutorCollection.cs
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/MapGuideTestExecutorCollection.cs	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/MapGuideTestExecutorCollection.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,11 +1,8 @@
-using OSGeo.MapGuide;
-using OSGeo.MapGuide.Test.Common;
+using OSGeo.MapGuide.Test.Common;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Linq;
 using System.Text;
-using System.Threading.Tasks;
 
 namespace OSGeo.MapGuide.Test
 {

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/TestMapGuideApi.csproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/TestMapGuideApi.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMapGuideApi/TestMapGuideApi.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -13,11 +13,17 @@
     <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
   </PropertyGroup>
   <ItemGroup>
+    <Compile Include="..\..\..\..\Managed\DotNet\Common\MgClassMap.cs" \
Link="MgClassMap.cs" /> +  </ItemGroup>
+  <ItemGroup>
     <ProjectReference Include="..\TestCommon\TestCommon.csproj" />
   </ItemGroup>
   <ItemGroup>
     <PackageReference Include="Microsoft.Data.SQLite" Version="2.0.1" />
+    <PackageReference Include="OSGeo.MapGuide.Foundation" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.Geometry" Version="4.0.0" />
     <PackageReference Include="OSGeo.MapGuide.MapGuideCommon" Version="4.0.0" />
     <PackageReference Include="OSGeo.MapGuide.Web" Version="4.0.0" />
+    <PackageReference Include="System.Buffers" Version="4.5.1" />
   </ItemGroup>
 </Project>
\ No newline at end of file

Index: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc	2022-10-10 10:00:53 UTC (rev \
9973)

Property changes on: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,3 ##
+obj
+bin
+Resources
Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/Program.cs
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/Program.cs	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/Program.cs	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -1,4 +1,6 @@
 using System;
+using System.IO;
+using System.Linq;
 using System.Runtime.InteropServices;
 using OSGeo.MapGuide;
 
@@ -6,13 +8,39 @@
 {
     class Program
     {
-        static void TestBody(string webConfigPath)
+        static void TestBody(string webConfigPath, string mentorDictionaryPath)
         {
-            MapGuideApi.MgInitializeWebTier(webConfigPath);
+            if (!Path.IsPathRooted(mentorDictionaryPath))
+                mentorDictionaryPath = \
Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, mentorDictionaryPath)); + \
Environment.SetEnvironmentVariable("MENTOR_DICTIONARY_PATH", mentorDictionaryPath, \
EnvironmentVariableTarget.Process); +
+            var csFactory = new MgCoordinateSystemFactory();
+            var csCat = csFactory.GetCatalog();
+            csCat.SetDictionaryDir(mentorDictionaryPath);
+            Console.WriteLine($"Using CS Library: {csFactory.GetBaseLibrary()}");
+            try
+            {
+                MapGuideApi.MgInitializeWebTier(webConfigPath);
+            }
+            catch (MgException ex)
+            {
+                OnException(ex);
+                return;
+            }
             Console.WriteLine("[dotnet]: Initialized");
-            var user = new MgUserInformation("Anonymous", "");
-            var conn = new MgSiteConnection();
-            conn.Open(user);
+            MgUserInformation user;
+            MgSiteConnection conn;
+            try
+            {
+                user = new MgUserInformation("Anonymous", "");
+                conn = new MgSiteConnection();
+                conn.Open(user);
+            }
+            catch (MgException ex)
+            {
+                OnException(ex);
+                return;
+            }
             // Create a session repository
             var site = conn.GetSite();
             var sessionID = site.CreateSession();
@@ -24,11 +52,20 @@
             var mappingService = \
(MgMappingService)conn.CreateService(MgServiceType.MappingService);  \
Console.WriteLine("[dotnet]: Created Mapping Service");  var resId = new \
MgResourceIdentifier("Library://UnitTest/"); +            var bExists = \
resourceService.ResourceExists(resId); +            if (!bExists)
+            {
+                var adminUser = new MgUserInformation("Administrator", "admin");
+                var aConn = new MgSiteConnection();
+                aConn.Open(adminUser);
+
+                var aResSvc = \
(MgResourceService)aConn.CreateService(MgServiceType.ResourceService); +              \
Console.WriteLine("[dotnet]: Creating folder because it doesn't exist"); +            \
aResSvc.SetResource(resId, null, null); +            }
             Console.WriteLine("[dotnet]: Enumeratin'");
             var resources = resourceService.EnumerateResources(resId, -1, "");
             Console.WriteLine(resources.ToString());
-            Console.WriteLine("[dotnet]: Coordinate System");
-            var csFactory = new MgCoordinateSystemFactory();
             Console.WriteLine("[dotnet]: CS Catalog");
             var catalog = csFactory.GetCatalog();
             Console.WriteLine("[dotnet]: Category Dictionary");
@@ -86,10 +123,7 @@
             }
             catch (MgException ex)
             {
-                Console.WriteLine("[dotnet]: MgException caught");
-                Console.WriteLine($"[dotnet]: MgException - Message: \
                {ex.GetExceptionMessage()}");
-                Console.WriteLine($"[dotnet]: MgException - Details: \
                {ex.GetDetails()}");
-                Console.WriteLine($"[dotnet]: MgException - Stack: \
{ex.GetStackTrace()}"); +                OnException(ex);
             }
             Console.WriteLine("[dotnet]: Trigger another exception");
             try
@@ -98,16 +132,46 @@
             }
             catch (MgException ex)
             {
-                Console.WriteLine("[dotnet]: MgException caught");
-                Console.WriteLine($"[dotnet]: MgException - Message: \
                {ex.GetExceptionMessage()}");
-                Console.WriteLine($"[dotnet]: MgException - Details: \
                {ex.GetDetails()}");
-                Console.WriteLine($"[dotnet]: MgException - Stack: \
{ex.GetStackTrace()}"); +                OnException(ex);
             }
+
+            Console.WriteLine("*********** ALL OK ****************");
         }
 
+        private static bool IsConstantClass(Type type)
+        {
+            if (type.IsClass)
+            {
+                var fields = type.GetFields(System.Reflection.BindingFlags.Public | \
System.Reflection.BindingFlags.Static | \
System.Reflection.BindingFlags.FlattenHierarchy); +                // IsLiteral \
determines if its value is written at  +                //   compile time and not \
changeable +                // IsInitOnly determines if the field can be set 
+                //   in the body of the constructor
+                // for C# a field which is readonly keyword would have both true 
+                //   but a const field would have only IsLiteral equal to true
+                var constants = fields.Where(fi => fi.IsLiteral && !fi.IsInitOnly);
+                return constants.Any();
+            }
+            return false;
+        }
+
+        static void OnException(MgException ex)
+        {
+            Console.WriteLine("[dotnet]: MgException caught");
+            Console.WriteLine($"[dotnet]: MgException - Message: \
{ex.GetExceptionMessage()}"); +            Console.WriteLine($"[dotnet]: MgException \
- Details: {ex.GetDetails()}"); +            Console.WriteLine($"[dotnet]: \
MgException - Stack:\n{ex.StackTrace}"); +        }
+
         static void Main(string[] args)
         {
+            if (args.Length != 2)
+            {
+                Console.WriteLine("Usage: TestMisc [path to webconfig.ini] [mentor \
dictionary path]"); +                Environment.Exit(1);
+            }
             string path = args[0];
+            string mentorPath = args[1];
             if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
             {
                 Console.WriteLine($"Running on Windows: {path}");
@@ -116,7 +180,7 @@
             {
                 Console.WriteLine($"Running on Linux: {path}");
             }
-            TestBody(path);
+            TestBody(path, mentorPath);
             //If you have built the .net SWIG glue wrapper with \
                REFCOUNTING_DIAGNOSTICS, then
             //you should be seeing a whole bunch of refcounting chatter, which is \
verification  //that we are actually releasing our unmanaged resources 

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/TestMisc.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/TestMisc.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMisc/TestMisc.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -2,13 +2,29 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
   </PropertyGroup>
 
   <ItemGroup>
+    <Compile Include="..\..\..\..\Managed\DotNet\Common\MgClassMap.cs" \
Link="MgClassMap.cs" /> +  </ItemGroup>
+
+  <ItemGroup>
     <PackageReference Include="CommandLineParser" Version="2.2.1" />
+    <PackageReference Include="OSGeo.MapGuide.Foundation" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.Geometry" Version="4.0.0" />
     <PackageReference Include="OSGeo.MapGuide.MapGuideCommon" Version="4.0.0" />
     <PackageReference Include="OSGeo.MapGuide.Web" Version="4.0.0" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="Resources\" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Content Include="..\..\..\..\..\..\Common\MapGuideCommon\Resources\mapguide_en.res" \
Link="Resources\mapguide_en.res"> +      \
<CopyToOutputDirectory>Always</CopyToOutputDirectory> +    </Content>
+  </ItemGroup>
+
 </Project>

Index: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull	2022-10-10 10:00:53 UTC \
(rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,3 ##
+obj
+bin
+Resources
Copied: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/Properties/launchSettings.json \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Test/DotNet/src/TestMiscFull/Properties/launchSettings.json)
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/Properties/launchSettings.json	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/Properties/launchSettings.json	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "TestMiscFull": {
+      "commandName": "Project",
+      "commandLineArgs": \
"..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\Web\\src\\webconfig.ini \
..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\Oem\\CsMap\\CsMapDev\\Dictionaries" +    }
+  }
+}
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/TestMiscFull.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/TestMiscFull.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestMiscFull/TestMiscFull.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -2,12 +2,29 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net461</TargetFramework>
+    <TargetFramework>net472</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    <Platforms>x64;x86</Platforms>
+    <Platforms>x64</Platforms>
   </PropertyGroup>
 
   <ItemGroup>
     <Compile Include="..\TestMisc\Program.cs" Link="Program.cs" />
   </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="OSGeo.MapGuide.Foundation" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.Geometry" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.MapGuideCommon" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.Web" Version="4.0.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Folder Include="Resources\" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Content Include="..\..\..\..\..\..\Common\MapGuideCommon\Resources\mapguide_en.res" \
Link="Resources\mapguide_en.res"> +      \
<CopyToOutputDirectory>Always</CopyToOutputDirectory> +    </Content>
+  </ItemGroup>
 </Project>

Index: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner	2022-10-10 10:00:53 UTC (rev \
9973)

Property changes on: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,3 ##
+bin
+obj
+Resources
Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/Program.cs
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/Program.cs	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/Program.cs	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -22,6 +22,12 @@
 
         [Option("log-path", Required = false, HelpText = "Custom log path. If not \
set, will default to UnitTests.log on the current directory")]  public string LogPath \
{ get; set; } +
+        [Option("admin-pass", Required = false, HelpText = "The MapGuide \
Administrator password", Default = "admin")] +        public string AdminPass { get; \
set; } +
+        [Option("skip-main-suite", Required = false, HelpText = "Indicate if the \
main suite should be skipped", Default = false)] +        public bool SkipMainSuite { \
get; set; }  }
 
 
@@ -68,6 +74,8 @@
         //Usage: MgTestRunner.exe <webconfig.ini path> <MENTOR_DICTIONARY_PATH> \
[test log path]  static int Main(string[] args)
         {
+            var memBefore = GC.GetTotalMemory(true);
+
             int exitCode = 0;
             Parser.Default.ParseArguments<Options>(args)
                 .WithParsed(opts =>
@@ -75,6 +83,20 @@
                     exitCode = Run(opts);
                 });
 
+            var memBeforeGC = GC.GetTotalMemory(false);
+
+            //If you have built the .net SWIG glue wrapper with \
REFCOUNTING_DIAGNOSTICS, then +            //you should be seeing a whole bunch of \
refcounting chatter, which is verification +            //that we are actually \
releasing our unmanaged resources  +            GC.Collect();
+            GC.WaitForPendingFinalizers();
+
+            var memAfterGC = GC.GetTotalMemory(true);
+
+            Console.WriteLine($"Total Memory (start): {memBefore} bytes");
+            Console.WriteLine($"Total Memory (before final GC): {memBeforeGC} \
bytes"); +            Console.WriteLine($"Total Memory (after final GC): {memAfterGC} \
bytes"); +
             return exitCode;
         }
 
@@ -106,16 +128,17 @@
             int failures = 0;
             using (var logger = new TestLoggerFile(logFile, false))
             {
-
                 logger.Write("Run started: {0}\n\n", DateTime.Now.ToString());
 
                 Environment.SetEnvironmentVariable("MENTOR_DICTIONARY_PATH", \
options.DictionaryPath, EnvironmentVariableTarget.Process);  
-                MgCoordinateSystemFactory csFactory = new \
MgCoordinateSystemFactory(); +                var csFactory = new \
MgCoordinateSystemFactory(); +                var csCatalog = csFactory.GetCatalog();
+                csCatalog.SetDictionaryDir(options.DictionaryPath);
                 Console.WriteLine($"Using CS Library: \
{csFactory.GetBaseLibrary()}");  
                 MapGuideApi.MgInitializeWebTier(options.WebConfigPath);
-                userInfo = new MgUserInformation("Administrator", "admin");
+                userInfo = new MgUserInformation("Administrator", \
options.AdminPass);  siteConn = new MgSiteConnection();
                 siteConn.Open(userInfo);
 
@@ -123,15 +146,18 @@
 
                 int testsRun = 0;
                 bool isEnterprise = false;
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/ResourceService/ResourceServiceTest.dump", ref testsRun, \
                logger, isEnterprise);
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/DrawingService/DrawingServiceTest.dump", ref testsRun, logger, \
                isEnterprise);
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/FeatureService/FeatureServiceTest.dump", ref testsRun, logger, \
                isEnterprise);
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/SiteService/SiteServiceTest.dump", ref testsRun, logger, \
                isEnterprise);
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/MappingService/MappingServiceTest.dump", ref testsRun, logger, \
                isEnterprise);
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/ServerAdmin/ServerAdminTest.dump", ref testsRun, logger, \
                isEnterprise);
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/MapLayer/MapLayerTest.dump", ref testsRun, logger, \
                isEnterprise);
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/WebLayout/WebLayoutTest.dump", ref testsRun, logger, \
                isEnterprise);
-                failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/Unicode/UnicodeTest.dump", ref testsRun, logger, isEnterprise); \
+                if (!options.SkipMainSuite) +                {
+                    failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/ResourceService/ResourceServiceTest.dump", ref testsRun, \
logger, isEnterprise); +                    failures += \
ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/DrawingService/DrawingServiceTest.dump", ref testsRun, logger, \
isEnterprise); +                    failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/FeatureService/FeatureServiceTest.dump", ref testsRun, logger, \
isEnterprise); +                    failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/SiteService/SiteServiceTest.dump", ref testsRun, logger, \
isEnterprise); +                    failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/MappingService/MappingServiceTest.dump", ref testsRun, logger, \
isEnterprise); +                    failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/ServerAdmin/ServerAdminTest.dump", ref testsRun, logger, \
isEnterprise); +                    failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/MapLayer/MapLayerTest.dump", ref testsRun, logger, \
isEnterprise); +                    failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/WebLayout/WebLayoutTest.dump", ref testsRun, logger, \
isEnterprise); +                    failures += ExecuteTest(ApiTypes.Platform, \
$"{TestDataRoot.Path}/Unicode/UnicodeTest.dump", ref testsRun, logger, isEnterprise); \
                +                }
                 //Run auxillary tests not part of the SQLite-defined suite
                 failures += CommonTests.Execute(factory, logger, ref testsRun);
                 failures += MapGuideTests.Execute(factory, logger, ref testsRun);

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/Properties/launchSettings.json
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/Properties/launchSettings.json	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/Properties/launchSettings.json	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -2,8 +2,8 @@
   "profiles": {
     "TestRunner": {
       "commandName": "Project",
-      "commandLineArgs": "--web-config-path \"C:\\Program \
Files\\OSGeo\\MapGuide\\Web\\www\\webconfig.ini\" --dictionary-path \"C:\\Program \
Files\\OSGeo\\MapGuide\\CS-Map\\Dictionaries\" --test-data-root \
                \"D:\\workspace\\mapguide-api-bindings\\src\\TestData\"",
-      "workingDirectory": \
"D:\\Workspace\\mapguide-api-bindings\\src\\Test\\DotNet\\src\\TestRunner" +      \
"commandLineArgs": "--web-config-path \
\"..\\..\\..\\..\\..\\..\\..\\..\\..\\Web\\src\\webconfig.ini\" --dictionary-path \
\"..\\..\\..\\..\\..\\..\\..\\..\\..\\Oem\\CsMap\\CsMapDev\\Dictionaries\" \
--test-data-root \"..\\..\\..\\..\\..\\..\\..\\TestData\"", +      "nativeDebugging": \
true  }
   }
 }
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/TestRunner.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/TestRunner.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunner/TestRunner.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -2,7 +2,7 @@
   <PropertyGroup>
     <Description>TestRunner Console Application</Description>
     <Authors>OSGeo</Authors>
-    <TargetFrameworks>netcoreapp2.1</TargetFrameworks>
+    <TargetFrameworks>netcoreapp3.1</TargetFrameworks>
     <AssemblyName>TestRunner</AssemblyName>
     <OutputType>Exe</OutputType>
     <PackageId>TestRunner</PackageId>
@@ -19,6 +19,16 @@
   </ItemGroup>
   <ItemGroup>
     <PackageReference Include="CommandLineParser" Version="2.2.1" />
+    <PackageReference Include="OSGeo.MapGuide.Foundation" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.Geometry" Version="4.0.0" />
     <PackageReference Include="OSGeo.MapGuide.Web" Version="4.0.0" />
   </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Resources\" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\..\..\..\Common\MapGuideCommon\Resources\mapguide_en.res" \
Link="Resources\mapguide_en.res"> +      \
<CopyToOutputDirectory>Always</CopyToOutputDirectory> +    </Content>
+  </ItemGroup>
 </Project>
\ No newline at end of file

Index: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull
===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull	2022-10-10 10:00:53 UTC \
(rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,3 ##
+bin
+obj
+Resources
Copied: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/Properties/launchSettings.json \
(from rev 9811, sandbox/jng/vanilla_swig/Bindings/src/Test/DotNet/src/TestRunnerFull/Properties/launchSettings.json)
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/Properties/launchSettings.json	 \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/Properties/launchSettings.json	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "TestRunnerFull": {
+      "commandName": "Project",
+      "commandLineArgs": "--web-config-path \
\"..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\Web\\src\\webconfig.ini\" --dictionary-path \
\"..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\Oem\\CsMap\\CsMapDev\\Dictionaries\" \
--test-data-root \"..\\..\\..\\..\\..\\..\\..\\..\\TestData\"" +    }
+  }
+}
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/TestRunnerFull.csproj
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/TestRunnerFull.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/DotNet/src/TestRunnerFull/TestRunnerFull.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -2,7 +2,7 @@
   <PropertyGroup>
     <Description>TestRunner Console Application (Full Framework)</Description>
     <Authors>OSGeo</Authors>
-    <TargetFramework>net461</TargetFramework>
+    <TargetFramework>net472</TargetFramework>
     <AssemblyName>TestRunnerFull</AssemblyName>
     <OutputType>Exe</OutputType>
     <PackageId>TestRunnerFull</PackageId>
@@ -13,10 +13,21 @@
     <Compile Include="..\TestRunner\Program.cs" Link="Program.cs" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\TestCommonFull\TestCommonFull.csproj" />
-    <ProjectReference Include="..\TestMapGuideApiFull\TestMapGuideApiFull.csproj" />
+    <PackageReference Include="CommandLineParser" Version="2.2.1" />
+    <PackageReference Include="OSGeo.MapGuide.Foundation" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.Geometry" Version="4.0.0" />
+    <PackageReference Include="OSGeo.MapGuide.Web" Version="4.0.0" />
   </ItemGroup>
   <ItemGroup>
-    <PackageReference Include="CommandLineParser" Version="2.2.1" />
+    <Folder Include="Resources\" />
   </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\..\..\..\Common\MapGuideCommon\Resources\mapguide_en.res" \
Link="Resources\mapguide_en.res"> +      \
<CopyToOutputDirectory>Always</CopyToOutputDirectory> +    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\TestCommon\TestCommon.csproj" />
+    <ProjectReference Include="..\TestMapGuideApi\TestMapGuideApi.csproj" />
+  </ItemGroup>
 </Project>
\ No newline at end of file

Index: trunk/MgDev/Bindings/src/Test/Java
===================================================================
--- trunk/MgDev/Bindings/src/Test/Java	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/Java	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Test/Java
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+build
+lib
Modified: trunk/MgDev/Bindings/src/Test/Java/build.xml
===================================================================
--- trunk/MgDev/Bindings/src/Test/Java/build.xml	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/Java/build.xml	2022-10-10 10:00:53 UTC (rev 9973)
@@ -1,8 +1,12 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <project name="MgUnitTest" default="dist" basedir=".">
   <description>MgUnitTest project file</description>
-  <!-- Must install ant-contrib 1.0b2 or higher -->
-  <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
+  <!-- Must install ant-contrib 1.0b2 or higher as we need this to write a custom \
webconfig.ini --> +  <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+    <classpath>
+      <pathelement location="extlib/ant-contrib.jar"/>
+    </classpath>
+  </taskdef>
   <condition property="unix">
     <os family="unix" />
   </condition>
@@ -16,16 +20,17 @@
   <property name="classpath" location="lib" />
   <property name="extlib" location="extlib" />
   <property name="build.target" location="64" />
-  <property name="binsrc.web" location="../../../Web/bin/release64" />
-  <property name="jarsrc.web" location="../../../Web/src/WEB-INF/lib" />
-  <property name="mapguide.res.src" \
                location="../../../Common/MapGuideCommon/Resources/mapguide_en.res" \
                />
-  <property name="mapguide.config.src" location="../../../Web/src/webconfig.ini" />
+  <property name="binsrc.common" location="../../../../Common/bin/Release64" />
+  <property name="binsrc.web" location="../../../../Web/bin/Release64" />
+  <property name="jarsrc.web" location="../../../packages/Java/Release/x64" />
+  <property name="mapguide.res.src" \
location="../../../../Common/MapGuideCommon/Resources/mapguide_en.res" /> +  \
<property name="mapguide.config.src" location="../../../../Web/src/webconfig.ini" />  \
<property name="mapguide.res" location="${dist}/Resources/mapguide_en.res" />  \
                <property name="mapguide.config" location="${dist}/webconfig.ini" />
-  <property name="mapguide.dictpath" location="../../../Oem/CsMap/Dictionaries" />
+  <property name="mapguide.dictpath" \
location="../../../../Oem/CsMap/CsMapDev/Dictionaries" />  <property \
name="unittest.logpath" location="${dist}/unittest.log" />  <!-- Linux-specific -->
-  <property name="mapguide.ldpath" \
location="/usr/local/mapguideopensource-3.0.0/lib:/usr/local/mapguideopensource-3.0.0/webserverextensions/lib" \
/> +  <property name="mapguide.ldpath" \
location="/usr/local/mapguideopensource-4.0.0/lib64:/usr/local/mapguideopensource-4.0.0/webserverextensions/lib64" \
/>  <path id="master-classpath">
     <fileset dir="${classpath}">
       <include name="*.jar" />
@@ -33,38 +38,54 @@
   </path>
   <target name="initwin" if="windows">
     <echo message="Init build environment for Windows" />
+    <echo message="  dist                = ${dist}" />
+    <echo message="  binsrc.common       = ${binsrc.common}" />
+    <echo message="  binsrc.web          = ${binsrc.web}" />
+    <echo message="  jarsrc.web          = ${jarsrc.web}" />
+    <echo message="  mapguide.res.src    = ${mapguide.res.src}" />
+    <echo message="  mapguide.config.src = ${mapguide.config.src}" />
+    <echo message="  mapguide.dictpath   = ${mapguide.dictpath}" />
     <!-- Create the time stamp -->
     <tstamp/>
     <!-- Create the build directory structure used by compile -->
     <mkdir dir="${build}"/>
     <!-- Copy required jars and dlls -->
+    <echo message="Copying files from ${jarsrc.web}" />
     <copy todir="${classpath}">
       <fileset dir="${jarsrc.web}">
-        <include name="**/MapGuideApi.jar" />
+        <include name="**/*.jar" />
+        <include name="**/*.dll" />
+        <include name="**/*.pdb" />
       </fileset>
     </copy>
+    <echo message="Copying support files from ${extlib}" />
     <copy todir="${classpath}">
       <fileset dir="${extlib}">
         <include name="**/sqlite4java.jar" />
       </fileset>
     </copy>
-    <condition property="binsrc.web" value="../../../Web/bin/release">
-      <equals arg1="${build.target}" arg2="32" />
-    </condition>
-    <condition property="binsrc.web" value="../../../Web/bin/release64">
-      <equals arg1="${build.target}" arg2="64" />
-    </condition>
     <echo message="Copying dlls from ${binsrc.web}" />
     <copy todir="${classpath}">
       <fileset dir="${binsrc.web}">
-        <include name="**/Mg*.dll" />
-        <include name="**/ACE.dll" />
-        <include name="**/GEOS.dll" />
-        <include name="**/lib_json.dll" />
-        <include name="**/MapGuideJavaApi.dll" />
-        <include name="**/xerces-c_3_1mg.dll" />
+        <include name="**/MgFoundation.*" />
+        <include name="**/MgGeometry.*" />
+        <include name="**/MgPlatformBase.*" />
+        <include name="**/MgMapGuideCommon.*" />
+        <include name="**/MgMdfModel.*" />
+        <include name="**/MgMdfParser.*" />
       </fileset>
     </copy>
+    <echo message="Copying dlls from ${binsrc.web}" />
+    <copy todir="${classpath}">
+      <fileset dir="${binsrc.web}">
+        <include name="**/MgHttpHandler*.*" />
+        <include name="**/MgWeb*.*" />
+        <include name="**/ACE.*" />
+        <include name="**/GEOS.*" />
+        <include name="**/lib_json.*" />
+        <include name="**/xerces-c_3_1mg.*" />
+      </fileset>
+    </copy>
   </target>
   <target name="initunix" if="unix">
     <echo message="Init build environment for Unix" />

Copied: trunk/MgDev/Bindings/src/Test/Java/extlib/ant-contrib.jar (from rev 9811, \
sandbox/jng/vanilla_swig/Bindings/src/Test/Java/extlib/ant-contrib.jar) \
=================================================================== (Binary files \
differ)

Modified: trunk/MgDev/Bindings/src/Test/Java/src/org/osgeo/mapguide/test/common/TestResult.java
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/Java/src/org/osgeo/mapguide/test/common/TestResult.java	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/Java/src/org/osgeo/mapguide/test/common/TestResult.java	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -148,7 +148,7 @@
     public static TestResult FromMgException(MgException ex)
     {
         //Need to be lowercase to satisfy a PHP-ism. Ugh!
-        TestResult result = new \
TestResult(CommonUtility.GetTypeName(ex).toLowerCase(), "text/plain"); +        \
TestResult result = new TestResult(ex.getExceptionCode().toLowerCase(), \
"text/plain");  result.IsException = true;
         return result;
     }

Modified: trunk/MgDev/Bindings/src/Test/Java/src/org/osgeo/mapguide/test/platform/operations/resource/SetResourceData.java
 ===================================================================
--- trunk/MgDev/Bindings/src/Test/Java/src/org/osgeo/mapguide/test/platform/operations/resource/SetResourceData.java	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Test/Java/src/org/osgeo/mapguide/test/platform/operations/resource/SetResourceData.java	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -41,15 +41,15 @@
             return TestResult.FromByteReader(null);
         }
         catch (MgException ex)
-        {
-            //HACK/FIXME: The test suite is passing paths with incorrect case to \
                this operation (presumably to exercise
-            //this operation in a Linux environment where case-sensitive paths \
                matter), but there's no way in my knowledge 
-            //to perform platform-specific verification of test results. So what we \
                have is an intentionally failing test 
-            //for a platform that has no means to verify that.
-            //
-            //As a workaround, when such bad paths are encountered (that should \
present themselves as thrown +        {
+            //HACK/FIXME: The test suite is passing paths with incorrect case to \
this operation (presumably to exercise +            //this operation in a Linux \
environment where case-sensitive paths matter), but there's no way in my knowledge  + \
//to perform platform-specific verification of test results. So what we have is an \
intentionally failing test  +            //for a platform that has no means to verify \
that. +            //
+            //As a workaround, when such bad paths are encountered (that should \
                present themselves as thrown
             //MgFileNotFoundException objects), return the result that is expected \
                on Windows: An empty result.
-            if (!CommonUtility.IsWindows() && (ex instanceof \
MgFileNotFoundException)) { +            if (!CommonUtility.IsWindows() && \
(ex.getExceptionCode() == MgExceptionCodes.MgFileNotFoundException)) {  return \
TestResult.FromByteReader(null);  } else {
                 return TestResult.FromMgException(ex);

Index: trunk/MgDev/Bindings/src/Tools/ClassMapGen
===================================================================
--- trunk/MgDev/Bindings/src/Tools/ClassMapGen	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/ClassMapGen	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Tools/ClassMapGen
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,3 ##
+bin
+obj
+classids_wrap.xml
Modified: trunk/MgDev/Bindings/src/Tools/ClassMapGen/ClassMapGen.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Tools/ClassMapGen/ClassMapGen.csproj	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/ClassMapGen/ClassMapGen.csproj	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -2,16 +2,18 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
+    <PackageReference Include="CommandLineParser" Version="2.8.0" />
+    <PackageReference Include="CoreCLR-NCalc" Version="2.2.92" />
+    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
   </ItemGroup>
 
   <ItemGroup>
-    <None Update="Data\classmap_master.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    <None Update="classids_wrap.xml">
+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>
     </None>
     <None Update="Data\Templates\dotnet.txt">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -23,5 +25,13 @@
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
   </ItemGroup>
+
+  <ItemGroup>
+    <Folder Include="Temp\" />
+  </ItemGroup>
+
+  <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
+    <Exec Command="&quot;..\..\Tools\swig\install\swig.exe&quot; -c++ -xml \
-nodefaultctor -nodefaultdtor -module MapGuideClassIds classids.i" /> +  </Target>
   
 </Project>

Modified: trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/Templates/dotnet.txt
===================================================================
--- trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/Templates/dotnet.txt	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/Templates/dotnet.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -2,23 +2,132 @@
 
 using System;
 using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
 
 namespace OSGeo.MapGuide
 {
     internal static class MgClassMap
     {
-        static Dictionary<int, string> classNameMap;
-        
+        static HashSet<string> assemblyNames;
+        static Dictionary<int, ConstructorInfo> classIdCtorMap;
+        static Dictionary<string, int> nameClassMap;
+
         static MgClassMap()
         {
-            classNameMap = new Dictionary<int, string>();
+            assemblyNames = new HashSet<string> 
+            {
+                "OSGeo.MapGuide.Foundation",
+                "OSGeo.MapGuide.Geometry",
+                "OSGeo.MapGuide.PlatformBase",
+                "OSGeo.MapGuide.MapGuideCommon",
+                "OSGeo.MapGuide.Web",
+                "OSGeo.MapGuide.Portable"
+            };
+
+            classIdCtorMap = new Dictionary<int, ConstructorInfo>();
+            var classNameMap = new Dictionary<int, string>();
+            nameClassMap = new Dictionary<string, int>();
             
 $CLASS_NAME_MAP_BODY$
+
+            //Sanity check that we haven't double registered the same type name \
under different +            //class ids (Only possible when class id is being \
accidentally reused in a base or  +            //derived C++ class)
+            foreach (var kvp in classNameMap)
+            {
+                if (nameClassMap.ContainsKey(kvp.Value))
+                {
+                    throw new Exception($"Failed sanity check. Type ({kvp.Value}) \
already registered with class id of ({kvp.Key})"); +                }
+
+                nameClassMap[kvp.Value] = kvp.Key;
+            }
         }
         
-        internal static string GetTypeName(int id)
+        internal static IEnumerable<int> ClassIds => classIdCtorMap.Keys;
+
+        internal static int? GetClassId(string typeName)
         {
-            return classNameMap.ContainsKey(id) ? classNameMap[id] : null;
+            return nameClassMap.ContainsKey(typeName) ? nameClassMap[typeName] : \
(int?)null;  }
+
+        internal static ConstructorInfo GetProxyConstructor(int classId)
+        {
+            return classIdCtorMap.ContainsKey(classId) ? classIdCtorMap[classId] : \
null; +        }
+
+        static bool HasAssemblyInAppDomain(string assemblyName)
+        {
+#if MONOLITHIC_ASSEMBLY
+            return true;
+#else
+            var assemblies = global::System.AppDomain.CurrentDomain.GetAssemblies();
+            foreach (var assem in assemblies)
+            {
+                var asmName = new \
global::System.Reflection.AssemblyName(assem.FullName); +                if \
(asmName.Name == assemblyName) +                {
+                    return true;
+                }
+            }
+            return false;
+#endif
+        }
+
+        static ConstructorInfo ResolveConstructor(string typeName)
+        {
+            var type = global::System.Type.GetType(typeName);
+            if (type == null)
+            {
+                // Find the specified class in the pre-defined assemblies
+                var assemblies = \
global::System.AppDomain.CurrentDomain.GetAssemblies(); +                foreach (var \
assem in assemblies) +                {
+                    var assemblyName = new \
global::System.Reflection.AssemblyName(assem.FullName); +                    if \
(assemblyNames.Contains(assemblyName.Name)) +                    {
+                        type = assem.GetType(typeName, false);
+                        if (type != null)
+                            break;
+                    }
+                }
+
+                // Fall back to finding the type in every assembly in the current \
appdomain +                foreach (var assem in \
global::System.AppDomain.CurrentDomain.GetAssemblies()) +                {
+                    type = assem.GetType(typeName, false);
+                    if (type != null)
+                        break;
+                }
+            }
+
+            if (type == null) //Shouldn't happen. But if it did, this would mean we \
didn't expose this class to SWIG +            {
+                throw new global::System.Exception("The type " + typeName + " does \
not exist in the list of loaded assemblies"); +            }
+            else
+            {
+                //The constructor we require has been assigned internal visibility \
by SWIG. We could change it to public, but the internal +                //visibility \
is the ideal one for purposes of encapulsation (this is internal use only). So \
instead of Activator.CreateInstance() +                //which does not work with \
internal constructors, we'll find the ctor ourselves and invoke it. +                \
var flags = global::System.Reflection.BindingFlags.NonPublic | \
global::System.Reflection.BindingFlags.Public | \
global::System.Reflection.BindingFlags.Instance; +                var ctors = \
type.GetTypeInfo().GetConstructors(flags); +                var ctor = \
ctors.FirstOrDefault(ci => +                {
+                    var parms = ci.GetParameters();
+                    if (parms.Length == 2)
+                    {
+                        return parms[0].ParameterType == \
typeof(global::System.IntPtr) +                            && parms[1].ParameterType \
== typeof(bool); +                    }
+                    return false;
+                });
+                if (ctor == null)
+                    throw new global::System.Exception("Could not find required \
constructor among " + ctors.Length + " constructors with signature (IntPtr, bool) on \
type: " + type.Name); +                    
+                return ctor;
+            }
+        }
     }
 }
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/Templates/java.txt
===================================================================
--- trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/Templates/java.txt	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/Templates/java.txt	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -40,7 +40,13 @@
     private static Constructor getSWIGCtor(String className) throws \
ClassNotFoundException, Exception  {
         Constructor swigCtor = null;
-        Constructor[] cons = Class.forName("org.osgeo.mapguide." + \
className).getDeclaredConstructors(); +        String typeName = \
"org.osgeo.mapguide." + className; +        Class type = Class.forName(typeName);
+        if (type == null)
+        {
+            throw new Exception("Could not find proxy class: " + typeName);
+        }
+        Constructor[] cons = type.getDeclaredConstructors();
         for (int i = 0; i < cons.length; i++)
         {
             Class[] parameterTypes = cons[i].getParameterTypes();

Deleted: trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/classmap_master.json
===================================================================
--- trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/classmap_master.json	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/ClassMapGen/Data/classmap_master.json	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,1114 +0,0 @@
-{
-    "Modules": [
-        {
-            "Name": "Foundation",
-            "Classes": {
-                "1500": "MgApplicationException",
-                "1501": "MgArgumentOutOfRangeException",
-                "1005": "MgBatchPropertyCollection",
-                "1250": "MgByteReader",
-                "1257": "MgByteSink",
-                "1251": "MgByteSource",
-                "1502": "MgClassNotFoundException",
-                "1503": "MgConfigurationException",
-                "1504": "MgConfigurationLoadFailedException",
-                "1505": "MgConfigurationSaveFailedException",
-                "1256": "MgDateTime",
-                "1506": "MgDateTimeException",
-                "1507": "MgDecryptionException",
-                "1508": "MgDirectoryNotFoundException",
-                "1000": "MgDisposableCollection",
-                "1509": "MgDivideByZeroException",
-                "1510": "MgDomainException",
-                "1511": "MgDuplicateDirectoryException",
-                "1512": "MgDuplicateFileException",
-                "1513": "MgDuplicateObjectException",
-                "1514": "MgEncryptionException",
-                "1515": "MgException",
-                "1516": "MgFileIoException",
-                "1517": "MgFileNotFoundException",
-                "1518": "MgIndexOutOfRangeException",
-                "1519": "MgInvalidArgumentException",
-                "1520": "MgInvalidCastException",
-                "1522": "MgInvalidOperationException",
-                "1523": "MgInvalidPropertyTypeException",
-                "1524": "MgInvalidStreamHeaderException",
-                "1525": "MgIoException",
-                "1526": "MgLengthException",
-                "1527": "MgLogicException",
-                "1528": "MgNotFiniteNumberException",
-                "1529": "MgNotImplementedException",
-                "1530": "MgNullArgumentException",
-                "1531": "MgNullPropertyValueException",
-                "1532": "MgNullReferenceException",
-                "1533": "MgObjectNotFoundException",
-                "1534": "MgOutOfMemoryException",
-                "1535": "MgOutOfRangeException",
-                "1536": "MgOverflowException",
-                "1537": "MgPlatformNotSupportedException",
-                "2000": "MgProperty",
-                "1002": "MgPropertyCollection",
-                "2002": "MgPropertyDefinition",
-                "1540": "MgResourceTagNotFoundException",
-                "1538": "MgResourcesException",
-                "1539": "MgResourcesLoadFailedException",
-                "1541": "MgRuntimeException",
-                "1542": "MgStreamIoException",
-                "1003": "MgStringCollection",
-                "2001": "MgStringProperty",
-                "1543": "MgSystemException",
-                "1544": "MgTemporaryFileNotAvailableException",
-                "1545": "MgThirdPartyException",
-                "1547": "MgUnclassifiedException",
-                "1548": "MgUnderflowException",
-                "1549": "MgXmlException",
-                "1550": "MgXmlParserException"
-            }
-        },
-        {
-            "Name": "Geometry",
-            "Classes": {
-                "20004": "MgAgfReaderWriter",
-                "20005": "MgAggregateGeometry",
-                "1500": "MgApplicationException",
-                "20006": "MgArcSegment",
-                "1501": "MgArgumentOutOfRangeException",
-                "1005": "MgBatchPropertyCollection",
-                "1250": "MgByteReader",
-                "1257": "MgByteSink",
-                "1251": "MgByteSource",
-                "1502": "MgClassNotFoundException",
-                "1503": "MgConfigurationException",
-                "1504": "MgConfigurationLoadFailedException",
-                "1505": "MgConfigurationSaveFailedException",
-                "20003": "MgCoordinate",
-                "20009": "MgCoordinateIterator",
-                "20500": "MgCoordinateSystem",
-                "20504": "MgCoordinateSystemCatalog",
-                "20506": "MgCoordinateSystemCategory",
-                "20510": "MgCoordinateSystemCategoryDictionary",
-                "21000": "MgCoordinateSystemComputationFailedException",
-                "21001": "MgCoordinateSystemConversionFailedException",
-                "20507": "MgCoordinateSystemDatum",
-                "20512": "MgCoordinateSystemDatumDictionary",
-                "20511": "MgCoordinateSystemDictionary",
-                "20521": "MgCoordinateSystemDictionaryUtility",
-                "20509": "MgCoordinateSystemEllipsoid",
-                "20513": "MgCoordinateSystemEllipsoidDictionary",
-                "20514": "MgCoordinateSystemEnum",
-                "20515": "MgCoordinateSystemEnumInteger32",
-                "20501": "MgCoordinateSystemFactory",
-                "20516": "MgCoordinateSystemFilter",
-                "20517": "MgCoordinateSystemFilterInteger32",
-                "20505": "MgCoordinateSystemFormatConverter",
-                "20542": "MgCoordinateSystemGeodeticAnalyticalTransformDefParams",
-                "20543": \
                "MgCoordinateSystemGeodeticInterpolationTransformDefParams",
-                "20544": \
                "MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams",
-                "20533": "MgCoordinateSystemGeodeticPath",
-                "20535": "MgCoordinateSystemGeodeticPathDictionary",
-                "20534": "MgCoordinateSystemGeodeticPathElement",
-                "20536": "MgCoordinateSystemGeodeticTransformDef",
-                "20540": "MgCoordinateSystemGeodeticTransformDefDictionary",
-                "20545": "MgCoordinateSystemGeodeticTransformGridFile",
-                "20508": "MgCoordinateSystemGeodeticTransformation",
-                "20532": "MgCoordinateSystemGridBase",
-                "20524": "MgCoordinateSystemGridBoundary",
-                "20529": "MgCoordinateSystemGridLine",
-                "20526": "MgCoordinateSystemGridLineCollection",
-                "20530": "MgCoordinateSystemGridRegion",
-                "20527": "MgCoordinateSystemGridRegionCollection",
-                "20525": "MgCoordinateSystemGridSpecification",
-                "20531": "MgCoordinateSystemGridTick",
-                "20528": "MgCoordinateSystemGridTickCollection",
-                "21002": "MgCoordinateSystemInitializationFailedException",
-                "21003": "MgCoordinateSystemLoadFailedException",
-                "20518": "MgCoordinateSystemMathComparator",
-                "20502": "MgCoordinateSystemMeasure",
-                "21004": "MgCoordinateSystemMeasureFailedException",
-                "20522": "MgCoordinateSystemMgrs",
-                "20520": "MgCoordinateSystemProjectionInformation",
-                "20503": "MgCoordinateSystemTransform",
-                "21005": "MgCoordinateSystemTransformFailedException",
-                "20519": "MgCoordinateSystemUnitInformation",
-                "20048": "MgCoordinateXY",
-                "20051": "MgCoordinateXYM",
-                "20049": "MgCoordinateXYZ",
-                "20050": "MgCoordinateXYZM",
-                "20010": "MgCurve",
-                "20011": "MgCurvePolygon",
-                "20047": "MgCurvePolygonCollection",
-                "20012": "MgCurveRing",
-                "20052": "MgCurveRingCollection",
-                "20013": "MgCurveSegment",
-                "20041": "MgCurveSegmentCollection",
-                "20014": "MgCurveString",
-                "20043": "MgCurveStringCollection",
-                "1256": "MgDateTime",
-                "1506": "MgDateTimeException",
-                "1507": "MgDecryptionException",
-                "1508": "MgDirectoryNotFoundException",
-                "1000": "MgDisposableCollection",
-                "1509": "MgDivideByZeroException",
-                "1510": "MgDomainException",
-                "1511": "MgDuplicateDirectoryException",
-                "1512": "MgDuplicateFileException",
-                "1513": "MgDuplicateObjectException",
-                "1514": "MgEncryptionException",
-                "20001": "MgEnvelope",
-                "1515": "MgException",
-                "1516": "MgFileIoException",
-                "1517": "MgFileNotFoundException",
-                "20016": "MgGeometricEntity",
-                "20019": "MgGeometry",
-                "20020": "MgGeometryCollection",
-                "20021": "MgGeometryComponent",
-                "21006": "MgGeometryException",
-                "20002": "MgGeometryFactory",
-                "1518": "MgIndexOutOfRangeException",
-                "1519": "MgInvalidArgumentException",
-                "1520": "MgInvalidCastException",
-                "21007": "MgInvalidCoordinateSystemException",
-                "21008": "MgInvalidCoordinateSystemTypeException",
-                "21009": "MgInvalidCoordinateSystemUnitsException",
-                "1522": "MgInvalidOperationException",
-                "1523": "MgInvalidPropertyTypeException",
-                "1524": "MgInvalidStreamHeaderException",
-                "1525": "MgIoException",
-                "1526": "MgLengthException",
-                "20042": "MgLineString",
-                "20044": "MgLineStringCollection",
-                "20023": "MgLinearRing",
-                "20053": "MgLinearRingCollection",
-                "20024": "MgLinearSegment",
-                "1527": "MgLogicException",
-                "20029": "MgMultiCurvePolygon",
-                "20030": "MgMultiCurveString",
-                "20031": "MgMultiGeometry",
-                "20032": "MgMultiLineString",
-                "20033": "MgMultiPoint",
-                "20034": "MgMultiPolygon",
-                "1528": "MgNotFiniteNumberException",
-                "1529": "MgNotImplementedException",
-                "1530": "MgNullArgumentException",
-                "1531": "MgNullPropertyValueException",
-                "1532": "MgNullReferenceException",
-                "1533": "MgObjectNotFoundException",
-                "1534": "MgOutOfMemoryException",
-                "1535": "MgOutOfRangeException",
-                "1536": "MgOverflowException",
-                "1537": "MgPlatformNotSupportedException",
-                "20000": "MgPoint",
-                "20045": "MgPointCollection",
-                "20035": "MgPolygon",
-                "20046": "MgPolygonCollection",
-                "2000": "MgProperty",
-                "1002": "MgPropertyCollection",
-                "2002": "MgPropertyDefinition",
-                "20037": "MgRegion",
-                "1540": "MgResourceTagNotFoundException",
-                "1538": "MgResourcesException",
-                "1539": "MgResourcesLoadFailedException",
-                "20038": "MgRing",
-                "1541": "MgRuntimeException",
-                "1542": "MgStreamIoException",
-                "1003": "MgStringCollection",
-                "2001": "MgStringProperty",
-                "1543": "MgSystemException",
-                "1544": "MgTemporaryFileNotAvailableException",
-                "1545": "MgThirdPartyException",
-                "1547": "MgUnclassifiedException",
-                "1548": "MgUnderflowException",
-                "20040": "MgWktReaderWriter",
-                "1549": "MgXmlException",
-                "1550": "MgXmlParserException"
-            }
-        },
-        {
-            "Name": "PlatformBase",
-            "Classes": {
-                "20004": "MgAgfReaderWriter",
-                "20005": "MgAggregateGeometry",
-                "1500": "MgApplicationException",
-                "20006": "MgArcSegment",
-                "1501": "MgArgumentOutOfRangeException",
-                "10500": "MgArrayTypeMismatchException",
-                "1005": "MgBatchPropertyCollection",
-                "10252": "MgBlobProperty",
-                "10253": "MgBooleanProperty",
-                "10254": "MgByteProperty",
-                "1250": "MgByteReader",
-                "1257": "MgByteSink",
-                "1251": "MgByteSource",
-                "11750": "MgClassDefinition",
-                "11780": "MgClassDefinitionCollection",
-                "1502": "MgClassNotFoundException",
-                "10255": "MgClobProperty",
-                "10250": "MgColor",
-                "1503": "MgConfigurationException",
-                "1504": "MgConfigurationLoadFailedException",
-                "1505": "MgConfigurationSaveFailedException",
-                "20003": "MgCoordinate",
-                "20009": "MgCoordinateIterator",
-                "20500": "MgCoordinateSystem",
-                "20504": "MgCoordinateSystemCatalog",
-                "20506": "MgCoordinateSystemCategory",
-                "20510": "MgCoordinateSystemCategoryDictionary",
-                "21000": "MgCoordinateSystemComputationFailedException",
-                "21001": "MgCoordinateSystemConversionFailedException",
-                "20507": "MgCoordinateSystemDatum",
-                "20512": "MgCoordinateSystemDatumDictionary",
-                "20511": "MgCoordinateSystemDictionary",
-                "20521": "MgCoordinateSystemDictionaryUtility",
-                "20509": "MgCoordinateSystemEllipsoid",
-                "20513": "MgCoordinateSystemEllipsoidDictionary",
-                "20514": "MgCoordinateSystemEnum",
-                "20515": "MgCoordinateSystemEnumInteger32",
-                "20501": "MgCoordinateSystemFactory",
-                "20516": "MgCoordinateSystemFilter",
-                "20517": "MgCoordinateSystemFilterInteger32",
-                "20505": "MgCoordinateSystemFormatConverter",
-                "20542": "MgCoordinateSystemGeodeticAnalyticalTransformDefParams",
-                "20543": \
                "MgCoordinateSystemGeodeticInterpolationTransformDefParams",
-                "20544": \
                "MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams",
-                "20533": "MgCoordinateSystemGeodeticPath",
-                "20535": "MgCoordinateSystemGeodeticPathDictionary",
-                "20534": "MgCoordinateSystemGeodeticPathElement",
-                "20536": "MgCoordinateSystemGeodeticTransformDef",
-                "20540": "MgCoordinateSystemGeodeticTransformDefDictionary",
-                "20545": "MgCoordinateSystemGeodeticTransformGridFile",
-                "20508": "MgCoordinateSystemGeodeticTransformation",
-                "20532": "MgCoordinateSystemGridBase",
-                "20524": "MgCoordinateSystemGridBoundary",
-                "20529": "MgCoordinateSystemGridLine",
-                "20526": "MgCoordinateSystemGridLineCollection",
-                "20530": "MgCoordinateSystemGridRegion",
-                "20527": "MgCoordinateSystemGridRegionCollection",
-                "20525": "MgCoordinateSystemGridSpecification",
-                "20531": "MgCoordinateSystemGridTick",
-                "20528": "MgCoordinateSystemGridTickCollection",
-                "21002": "MgCoordinateSystemInitializationFailedException",
-                "21003": "MgCoordinateSystemLoadFailedException",
-                "20518": "MgCoordinateSystemMathComparator",
-                "20502": "MgCoordinateSystemMeasure",
-                "21004": "MgCoordinateSystemMeasureFailedException",
-                "20522": "MgCoordinateSystemMgrs",
-                "20520": "MgCoordinateSystemProjectionInformation",
-                "20503": "MgCoordinateSystemTransform",
-                "21005": "MgCoordinateSystemTransformFailedException",
-                "20519": "MgCoordinateSystemUnitInformation",
-                "20048": "MgCoordinateXY",
-                "20051": "MgCoordinateXYM",
-                "20049": "MgCoordinateXYZ",
-                "20050": "MgCoordinateXYZM",
-                "20010": "MgCurve",
-                "20011": "MgCurvePolygon",
-                "20047": "MgCurvePolygonCollection",
-                "20012": "MgCurveRing",
-                "20052": "MgCurveRingCollection",
-                "20013": "MgCurveSegment",
-                "20041": "MgCurveSegmentCollection",
-                "20014": "MgCurveString",
-                "20043": "MgCurveStringCollection",
-                "11751": "MgDataPropertyDefinition",
-                "11773": "MgDataReader",
-                "1256": "MgDateTime",
-                "1506": "MgDateTimeException",
-                "10256": "MgDateTimeProperty",
-                "1507": "MgDecryptionException",
-                "11775": "MgDeleteFeatures",
-                "1508": "MgDirectoryNotFoundException",
-                "1000": "MgDisposableCollection",
-                "1509": "MgDivideByZeroException",
-                "1510": "MgDomainException",
-                "10257": "MgDoubleProperty",
-                "1511": "MgDuplicateDirectoryException",
-                "1512": "MgDuplicateFileException",
-                "1513": "MgDuplicateObjectException",
-                "10501": "MgDuplicateResourceDataException",
-                "10502": "MgDuplicateResourceException",
-                "10503": "MgEmptyFeatureSetException",
-                "1514": "MgEncryptionException",
-                "20001": "MgEnvelope",
-                "1515": "MgException",
-                "10504": "MgFdoException",
-                "11772": "MgFeatureAggregateOptions",
-                "11774": "MgFeatureCommandCollection",
-                "11764": "MgFeatureProperty",
-                "11771": "MgFeatureQueryOptions",
-                "11753": "MgFeatureReader",
-                "11778": "MgFeatureSchema",
-                "11779": "MgFeatureSchemaCollection",
-                "11754": "MgFeatureService",
-                "10505": "MgFeatureServiceException",
-                "11786": "MgFileFeatureSourceParams",
-                "1516": "MgFileIoException",
-                "1517": "MgFileNotFoundException",
-                "20016": "MgGeometricEntity",
-                "11756": "MgGeometricPropertyDefinition",
-                "20019": "MgGeometry",
-                "20020": "MgGeometryCollection",
-                "20021": "MgGeometryComponent",
-                "21006": "MgGeometryException",
-                "20002": "MgGeometryFactory",
-                "11758": "MgGeometryProperty",
-                "11785": "MgGeometryTypeInfo",
-                "11782": "MgGwsFeatureReader",
-                "1518": "MgIndexOutOfRangeException",
-                "11776": "MgInsertFeatures",
-                "10258": "MgInt16Property",
-                "10259": "MgInt32Property",
-                "10260": "MgInt64Property",
-                "10000": "MgIntCollection",
-                "1519": "MgInvalidArgumentException",
-                "1520": "MgInvalidCastException",
-                "21007": "MgInvalidCoordinateSystemException",
-                "21008": "MgInvalidCoordinateSystemTypeException",
-                "21009": "MgInvalidCoordinateSystemUnitsException",
-                "10507": "MgInvalidMapDefinitionException",
-                "1522": "MgInvalidOperationException",
-                "1523": "MgInvalidPropertyTypeException",
-                "10508": "MgInvalidRepositoryNameException",
-                "10509": "MgInvalidRepositoryTypeException",
-                "10510": "MgInvalidResourceDataNameException",
-                "10511": "MgInvalidResourceDataTypeException",
-                "10512": "MgInvalidResourceNameException",
-                "10513": "MgInvalidResourcePathException",
-                "10514": "MgInvalidResourcePreProcessingTypeException",
-                "10515": "MgInvalidResourceTypeException",
-                "1524": "MgInvalidStreamHeaderException",
-                "1525": "MgIoException",
-                "12003": "MgLayerBase",
-                "12002": "MgLayerCollection",
-                "12001": "MgLayerGroup",
-                "12004": "MgLayerGroupCollection",
-                "10517": "MgLayerNotFoundException",
-                "1526": "MgLengthException",
-                "20042": "MgLineString",
-                "20044": "MgLineStringCollection",
-                "20023": "MgLinearRing",
-                "20053": "MgLinearRingCollection",
-                "20024": "MgLinearSegment",
-                "1527": "MgLogicException",
-                "11766": "MgLongTransactionReader",
-                "12000": "MgMapBase",
-                "12005": "MgMapCollection",
-                "20029": "MgMultiCurvePolygon",
-                "20030": "MgMultiCurveString",
-                "20031": "MgMultiGeometry",
-                "20032": "MgMultiLineString",
-                "20033": "MgMultiPoint",
-                "20034": "MgMultiPolygon",
-                "1528": "MgNotFiniteNumberException",
-                "1529": "MgNotImplementedException",
-                "1530": "MgNullArgumentException",
-                "1531": "MgNullPropertyValueException",
-                "1532": "MgNullReferenceException",
-                "1533": "MgObjectNotFoundException",
-                "11759": "MgObjectPropertyDefinition",
-                "1534": "MgOutOfMemoryException",
-                "1535": "MgOutOfRangeException",
-                "1536": "MgOverflowException",
-                "11788": "MgParameter",
-                "10004": "MgParameterCollection",
-                "1537": "MgPlatformNotSupportedException",
-                "20000": "MgPoint",
-                "20045": "MgPointCollection",
-                "20035": "MgPolygon",
-                "20046": "MgPolygonCollection",
-                "2000": "MgProperty",
-                "1002": "MgPropertyCollection",
-                "2002": "MgPropertyDefinition",
-                "10001": "MgPropertyDefinitionCollection",
-                "11769": "MgRaster",
-                "11770": "MgRasterProperty",
-                "11768": "MgRasterPropertyDefinition",
-                "12006": "MgReadOnlyLayerCollection",
-                "20037": "MgRegion",
-                "11526": "MgResource",
-                "10518": "MgResourceBusyException",
-                "10519": "MgResourceDataNotFoundException",
-                "11500": "MgResourceIdentifier",
-                "10520": "MgResourceNotFoundException",
-                "11501": "MgResourceService",
-                "1540": "MgResourceTagNotFoundException",
-                "1538": "MgResourcesException",
-                "1539": "MgResourcesLoadFailedException",
-                "20038": "MgRing",
-                "1541": "MgRuntimeException",
-                "12007": "MgSelectionBase",
-                "11251": "MgService",
-                "10521": "MgServiceNotAvailableException",
-                "10522": "MgServiceNotSupportedException",
-                "10261": "MgSingleProperty",
-                "11761": "MgSpatialContextReader",
-                "11762": "MgSqlDataReader",
-                "1542": "MgStreamIoException",
-                "1003": "MgStringCollection",
-                "2001": "MgStringProperty",
-                "10003": "MgStringPropertyCollection",
-                "1543": "MgSystemException",
-                "1544": "MgTemporaryFileNotAvailableException",
-                "1545": "MgThirdPartyException",
-                "11787": "MgTransaction",
-                "1547": "MgUnclassifiedException",
-                "1548": "MgUnderflowException",
-                "11777": "MgUpdateFeatures",
-                "10523": "MgUserNotFoundException",
-                "11257": "MgWarnings",
-                "20040": "MgWktReaderWriter",
-                "1549": "MgXmlException",
-                "1550": "MgXmlParserException"
-            }
-        },
-        {
-            "Name": "MapGuideCommon",
-            "Classes": {
-                "20004": "MgAgfReaderWriter",
-                "20005": "MgAggregateGeometry",
-                "1500": "MgApplicationException",
-                "20006": "MgArcSegment",
-                "1501": "MgArgumentOutOfRangeException",
-                "10500": "MgArrayTypeMismatchException",
-                "30000": "MgAuthenticationFailedException",
-                "1005": "MgBatchPropertyCollection",
-                "10252": "MgBlobProperty",
-                "10253": "MgBooleanProperty",
-                "10254": "MgByteProperty",
-                "1250": "MgByteReader",
-                "1257": "MgByteSink",
-                "1251": "MgByteSource",
-                "11750": "MgClassDefinition",
-                "11780": "MgClassDefinitionCollection",
-                "1502": "MgClassNotFoundException",
-                "10255": "MgClobProperty",
-                "10250": "MgColor",
-                "1503": "MgConfigurationException",
-                "1504": "MgConfigurationLoadFailedException",
-                "1505": "MgConfigurationSaveFailedException",
-                "30001": "MgConnectionFailedException",
-                "30002": "MgConnectionNotOpenException",
-                "20003": "MgCoordinate",
-                "20009": "MgCoordinateIterator",
-                "20500": "MgCoordinateSystem",
-                "20504": "MgCoordinateSystemCatalog",
-                "20506": "MgCoordinateSystemCategory",
-                "20510": "MgCoordinateSystemCategoryDictionary",
-                "21000": "MgCoordinateSystemComputationFailedException",
-                "21001": "MgCoordinateSystemConversionFailedException",
-                "20507": "MgCoordinateSystemDatum",
-                "20512": "MgCoordinateSystemDatumDictionary",
-                "20511": "MgCoordinateSystemDictionary",
-                "20521": "MgCoordinateSystemDictionaryUtility",
-                "20509": "MgCoordinateSystemEllipsoid",
-                "20513": "MgCoordinateSystemEllipsoidDictionary",
-                "20514": "MgCoordinateSystemEnum",
-                "20515": "MgCoordinateSystemEnumInteger32",
-                "20501": "MgCoordinateSystemFactory",
-                "20516": "MgCoordinateSystemFilter",
-                "20517": "MgCoordinateSystemFilterInteger32",
-                "20505": "MgCoordinateSystemFormatConverter",
-                "20542": "MgCoordinateSystemGeodeticAnalyticalTransformDefParams",
-                "20543": \
                "MgCoordinateSystemGeodeticInterpolationTransformDefParams",
-                "20544": \
                "MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams",
-                "20533": "MgCoordinateSystemGeodeticPath",
-                "20535": "MgCoordinateSystemGeodeticPathDictionary",
-                "20534": "MgCoordinateSystemGeodeticPathElement",
-                "20536": "MgCoordinateSystemGeodeticTransformDef",
-                "20540": "MgCoordinateSystemGeodeticTransformDefDictionary",
-                "20545": "MgCoordinateSystemGeodeticTransformGridFile",
-                "20508": "MgCoordinateSystemGeodeticTransformation",
-                "20532": "MgCoordinateSystemGridBase",
-                "20524": "MgCoordinateSystemGridBoundary",
-                "20529": "MgCoordinateSystemGridLine",
-                "20526": "MgCoordinateSystemGridLineCollection",
-                "20530": "MgCoordinateSystemGridRegion",
-                "20527": "MgCoordinateSystemGridRegionCollection",
-                "20525": "MgCoordinateSystemGridSpecification",
-                "20531": "MgCoordinateSystemGridTick",
-                "20528": "MgCoordinateSystemGridTickCollection",
-                "21002": "MgCoordinateSystemInitializationFailedException",
-                "21003": "MgCoordinateSystemLoadFailedException",
-                "20518": "MgCoordinateSystemMathComparator",
-                "20502": "MgCoordinateSystemMeasure",
-                "21004": "MgCoordinateSystemMeasureFailedException",
-                "20522": "MgCoordinateSystemMgrs",
-                "20520": "MgCoordinateSystemProjectionInformation",
-                "20503": "MgCoordinateSystemTransform",
-                "21005": "MgCoordinateSystemTransformFailedException",
-                "20519": "MgCoordinateSystemUnitInformation",
-                "20048": "MgCoordinateXY",
-                "20051": "MgCoordinateXYM",
-                "20049": "MgCoordinateXYZ",
-                "20050": "MgCoordinateXYZM",
-                "20010": "MgCurve",
-                "20011": "MgCurvePolygon",
-                "20047": "MgCurvePolygonCollection",
-                "20012": "MgCurveRing",
-                "20052": "MgCurveRingCollection",
-                "20013": "MgCurveSegment",
-                "20041": "MgCurveSegmentCollection",
-                "20014": "MgCurveString",
-                "20043": "MgCurveStringCollection",
-                "11751": "MgDataPropertyDefinition",
-                "11773": "MgDataReader",
-                "1256": "MgDateTime",
-                "1506": "MgDateTimeException",
-                "10256": "MgDateTimeProperty",
-                "30003": "MgDbException",
-                "30004": "MgDbXmlException",
-                "1507": "MgDecryptionException",
-                "11775": "MgDeleteFeatures",
-                "1508": "MgDirectoryNotFoundException",
-                "1000": "MgDisposableCollection",
-                "1509": "MgDivideByZeroException",
-                "1510": "MgDomainException",
-                "10257": "MgDoubleProperty",
-                "30700": "MgDrawingService",
-                "1511": "MgDuplicateDirectoryException",
-                "1512": "MgDuplicateFileException",
-                "30005": "MgDuplicateGroupException",
-                "30006": "MgDuplicateNameException",
-                "1513": "MgDuplicateObjectException",
-                "30007": "MgDuplicateParameterException",
-                "30008": "MgDuplicateRepositoryException",
-                "10501": "MgDuplicateResourceDataException",
-                "10502": "MgDuplicateResourceException",
-                "30009": "MgDuplicateRoleException",
-                "30010": "MgDuplicateServerException",
-                "30011": "MgDuplicateSessionException",
-                "30012": "MgDuplicateUserException",
-                "30013": "MgDwfException",
-                "30014": "MgDwfSectionNotFoundException",
-                "30015": "MgDwfSectionResourceNotFoundException",
-                "30901": "MgDwfVersion",
-                "10503": "MgEmptyFeatureSetException",
-                "1514": "MgEncryptionException",
-                "30016": "MgEndOfStreamException",
-                "20001": "MgEnvelope",
-                "1515": "MgException",
-                "10504": "MgFdoException",
-                "11772": "MgFeatureAggregateOptions",
-                "11774": "MgFeatureCommandCollection",
-                "31001": "MgFeatureInformation",
-                "11764": "MgFeatureProperty",
-                "11771": "MgFeatureQueryOptions",
-                "11753": "MgFeatureReader",
-                "11778": "MgFeatureSchema",
-                "11779": "MgFeatureSchemaCollection",
-                "11754": "MgFeatureService",
-                "10505": "MgFeatureServiceException",
-                "11786": "MgFileFeatureSourceParams",
-                "1516": "MgFileIoException",
-                "1517": "MgFileNotFoundException",
-                "20016": "MgGeometricEntity",
-                "11756": "MgGeometricPropertyDefinition",
-                "20019": "MgGeometry",
-                "20020": "MgGeometryCollection",
-                "20021": "MgGeometryComponent",
-                "21006": "MgGeometryException",
-                "20002": "MgGeometryFactory",
-                "11758": "MgGeometryProperty",
-                "11785": "MgGeometryTypeInfo",
-                "30018": "MgGroupNotFoundException",
-                "11782": "MgGwsFeatureReader",
-                "1518": "MgIndexOutOfRangeException",
-                "11776": "MgInsertFeatures",
-                "10258": "MgInt16Property",
-                "10259": "MgInt32Property",
-                "10260": "MgInt64Property",
-                "10000": "MgIntCollection",
-                "1519": "MgInvalidArgumentException",
-                "1520": "MgInvalidCastException",
-                "21007": "MgInvalidCoordinateSystemException",
-                "21008": "MgInvalidCoordinateSystemTypeException",
-                "21009": "MgInvalidCoordinateSystemUnitsException",
-                "30019": "MgInvalidDwfPackageException",
-                "30020": "MgInvalidDwfSectionException",
-                "30021": "MgInvalidFeatureSourceException",
-                "30022": "MgInvalidIpAddressException",
-                "30023": "MgInvalidLicenseException",
-                "30024": "MgInvalidLogEntryException",
-                "10507": "MgInvalidMapDefinitionException",
-                "1522": "MgInvalidOperationException",
-                "30026": "MgInvalidPasswordException",
-                "30027": "MgInvalidPrintLayoutFontSizeUnitsException",
-                "30028": "MgInvalidPrintLayoutPositionUnitsException",
-                "30029": "MgInvalidPrintLayoutSizeUnitsException",
-                "1523": "MgInvalidPropertyTypeException",
-                "10508": "MgInvalidRepositoryNameException",
-                "10509": "MgInvalidRepositoryTypeException",
-                "10510": "MgInvalidResourceDataNameException",
-                "10511": "MgInvalidResourceDataTypeException",
-                "10512": "MgInvalidResourceNameException",
-                "10513": "MgInvalidResourcePathException",
-                "10514": "MgInvalidResourcePreProcessingTypeException",
-                "10515": "MgInvalidResourceTypeException",
-                "30031": "MgInvalidServerNameException",
-                "1524": "MgInvalidStreamHeaderException",
-                "1525": "MgIoException",
-                "31300": "MgKmlService",
-                "30501": "MgLayer",
-                "12003": "MgLayerBase",
-                "12002": "MgLayerCollection",
-                "12001": "MgLayerGroup",
-                "12004": "MgLayerGroupCollection",
-                "10517": "MgLayerNotFoundException",
-                "30904": "MgLayout",
-                "1526": "MgLengthException",
-                "30032": "MgLicenseException",
-                "30033": "MgLicenseExpiredException",
-                "20042": "MgLineString",
-                "20044": "MgLineStringCollection",
-                "20023": "MgLinearRing",
-                "20053": "MgLinearRingCollection",
-                "20024": "MgLinearSegment",
-                "1527": "MgLogicException",
-                "11766": "MgLongTransactionReader",
-                "30500": "MgMap",
-                "12000": "MgMapBase",
-                "12005": "MgMapCollection",
-                "30905": "MgMapPlot",
-                "30906": "MgMapPlotCollection",
-                "30900": "MgMappingService",
-                "20029": "MgMultiCurvePolygon",
-                "20030": "MgMultiCurveString",
-                "20031": "MgMultiGeometry",
-                "20032": "MgMultiLineString",
-                "20033": "MgMultiPoint",
-                "20034": "MgMultiPolygon",
-                "1528": "MgNotFiniteNumberException",
-                "1529": "MgNotImplementedException",
-                "1530": "MgNullArgumentException",
-                "1531": "MgNullPropertyValueException",
-                "1532": "MgNullReferenceException",
-                "1533": "MgObjectNotFoundException",
-                "11759": "MgObjectPropertyDefinition",
-                "30035": "MgOperationProcessingException",
-                "1534": "MgOutOfMemoryException",
-                "1535": "MgOutOfRangeException",
-                "1536": "MgOverflowException",
-                "30604": "MgPackageStatusInformation",
-                "11788": "MgParameter",
-                "10004": "MgParameterCollection",
-                "30036": "MgParameterNotFoundException",
-                "30037": "MgPathTooLongException",
-                "1537": "MgPlatformNotSupportedException",
-                "30902": "MgPlotSpecification",
-                "20000": "MgPoint",
-                "20045": "MgPointCollection",
-                "20035": "MgPolygon",
-                "20046": "MgPolygonCollection",
-                "30039": "MgPortNotAvailableException",
-                "30040": "MgPrintToScaleModeNotSelectedException",
-                "31400": "MgProfilingService",
-                "2000": "MgProperty",
-                "1002": "MgPropertyCollection",
-                "2002": "MgPropertyDefinition",
-                "10001": "MgPropertyDefinitionCollection",
-                "11769": "MgRaster",
-                "11770": "MgRasterProperty",
-                "11768": "MgRasterPropertyDefinition",
-                "12006": "MgReadOnlyLayerCollection",
-                "20037": "MgRegion",
-                "31002": "MgRenderingOptions",
-                "31000": "MgRenderingService",
-                "30041": "MgRepositoryCreationFailedException",
-                "30042": "MgRepositoryNotFoundException",
-                "30043": "MgRepositoryNotOpenException",
-                "30044": "MgRepositoryOpenFailedException",
-                "11526": "MgResource",
-                "10518": "MgResourceBusyException",
-                "10519": "MgResourceDataNotFoundException",
-                "11500": "MgResourceIdentifier",
-                "10520": "MgResourceNotFoundException",
-                "11501": "MgResourceService",
-                "1540": "MgResourceTagNotFoundException",
-                "1538": "MgResourcesException",
-                "1539": "MgResourcesLoadFailedException",
-                "20038": "MgRing",
-                "30045": "MgRoleNotFoundException",
-                "1541": "MgRuntimeException",
-                "30502": "MgSelection",
-                "12007": "MgSelectionBase",
-                "30607": "MgServerAdmin",
-                "30046": "MgServerNotFoundException",
-                "30047": "MgServerNotOnlineException",
-                "11251": "MgService",
-                "10521": "MgServiceNotAvailableException",
-                "10522": "MgServiceNotSupportedException",
-                "30048": "MgSessionExpiredException",
-                "30052": "MgSessionNotFoundException",
-                "10261": "MgSingleProperty",
-                "30605": "MgSite",
-                "30601": "MgSiteConnection",
-                "30608": "MgSiteInfo",
-                "11761": "MgSpatialContextReader",
-                "11762": "MgSqlDataReader",
-                "1542": "MgStreamIoException",
-                "1003": "MgStringCollection",
-                "2001": "MgStringProperty",
-                "10003": "MgStringPropertyCollection",
-                "1543": "MgSystemException",
-                "1544": "MgTemporaryFileNotAvailableException",
-                "1545": "MgThirdPartyException",
-                "31200": "MgTileService",
-                "11787": "MgTransaction",
-                "30049": "MgUnauthorizedAccessException",
-                "1547": "MgUnclassifiedException",
-                "1548": "MgUnderflowException",
-                "30056": "MgUnknownTileProviderException",
-                "30057": "MgUnsupportedTileProviderException",
-                "11777": "MgUpdateFeatures",
-                "30050": "MgUriFormatException",
-                "30606": "MgUserInformation",
-                "10523": "MgUserNotFoundException",
-                "11257": "MgWarnings",
-                "20040": "MgWktReaderWriter",
-                "1549": "MgXmlException",
-                "1550": "MgXmlParserException"
-            }
-        },
-        {
-            "Name": "Web",
-            "Classes": {
-                "20004": "MgAgfReaderWriter",
-                "20005": "MgAggregateGeometry",
-                "1500": "MgApplicationException",
-                "20006": "MgArcSegment",
-                "1501": "MgArgumentOutOfRangeException",
-                "10500": "MgArrayTypeMismatchException",
-                "30000": "MgAuthenticationFailedException",
-                "1005": "MgBatchPropertyCollection",
-                "10252": "MgBlobProperty",
-                "10253": "MgBooleanProperty",
-                "10254": "MgByteProperty",
-                "1250": "MgByteReader",
-                "1257": "MgByteSink",
-                "1251": "MgByteSource",
-                "11750": "MgClassDefinition",
-                "11780": "MgClassDefinitionCollection",
-                "1502": "MgClassNotFoundException",
-                "10255": "MgClobProperty",
-                "10250": "MgColor",
-                "1503": "MgConfigurationException",
-                "1504": "MgConfigurationLoadFailedException",
-                "1505": "MgConfigurationSaveFailedException",
-                "30001": "MgConnectionFailedException",
-                "30002": "MgConnectionNotOpenException",
-                "20003": "MgCoordinate",
-                "20009": "MgCoordinateIterator",
-                "20500": "MgCoordinateSystem",
-                "20504": "MgCoordinateSystemCatalog",
-                "20506": "MgCoordinateSystemCategory",
-                "20510": "MgCoordinateSystemCategoryDictionary",
-                "21000": "MgCoordinateSystemComputationFailedException",
-                "21001": "MgCoordinateSystemConversionFailedException",
-                "20507": "MgCoordinateSystemDatum",
-                "20512": "MgCoordinateSystemDatumDictionary",
-                "20511": "MgCoordinateSystemDictionary",
-                "20521": "MgCoordinateSystemDictionaryUtility",
-                "20509": "MgCoordinateSystemEllipsoid",
-                "20513": "MgCoordinateSystemEllipsoidDictionary",
-                "20514": "MgCoordinateSystemEnum",
-                "20515": "MgCoordinateSystemEnumInteger32",
-                "20501": "MgCoordinateSystemFactory",
-                "20516": "MgCoordinateSystemFilter",
-                "20517": "MgCoordinateSystemFilterInteger32",
-                "20505": "MgCoordinateSystemFormatConverter",
-                "20542": "MgCoordinateSystemGeodeticAnalyticalTransformDefParams",
-                "20543": \
                "MgCoordinateSystemGeodeticInterpolationTransformDefParams",
-                "20544": \
                "MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams",
-                "20533": "MgCoordinateSystemGeodeticPath",
-                "20535": "MgCoordinateSystemGeodeticPathDictionary",
-                "20534": "MgCoordinateSystemGeodeticPathElement",
-                "20536": "MgCoordinateSystemGeodeticTransformDef",
-                "20540": "MgCoordinateSystemGeodeticTransformDefDictionary",
-                "20545": "MgCoordinateSystemGeodeticTransformGridFile",
-                "20508": "MgCoordinateSystemGeodeticTransformation",
-                "20532": "MgCoordinateSystemGridBase",
-                "20524": "MgCoordinateSystemGridBoundary",
-                "20529": "MgCoordinateSystemGridLine",
-                "20526": "MgCoordinateSystemGridLineCollection",
-                "20530": "MgCoordinateSystemGridRegion",
-                "20527": "MgCoordinateSystemGridRegionCollection",
-                "20525": "MgCoordinateSystemGridSpecification",
-                "20531": "MgCoordinateSystemGridTick",
-                "20528": "MgCoordinateSystemGridTickCollection",
-                "21002": "MgCoordinateSystemInitializationFailedException",
-                "21003": "MgCoordinateSystemLoadFailedException",
-                "20518": "MgCoordinateSystemMathComparator",
-                "20502": "MgCoordinateSystemMeasure",
-                "21004": "MgCoordinateSystemMeasureFailedException",
-                "20522": "MgCoordinateSystemMgrs",
-                "20520": "MgCoordinateSystemProjectionInformation",
-                "20503": "MgCoordinateSystemTransform",
-                "21005": "MgCoordinateSystemTransformFailedException",
-                "20519": "MgCoordinateSystemUnitInformation",
-                "20048": "MgCoordinateXY",
-                "20051": "MgCoordinateXYM",
-                "20049": "MgCoordinateXYZ",
-                "20050": "MgCoordinateXYZM",
-                "20010": "MgCurve",
-                "20011": "MgCurvePolygon",
-                "20047": "MgCurvePolygonCollection",
-                "20012": "MgCurveRing",
-                "20052": "MgCurveRingCollection",
-                "20013": "MgCurveSegment",
-                "20041": "MgCurveSegmentCollection",
-                "20014": "MgCurveString",
-                "20043": "MgCurveStringCollection",
-                "11751": "MgDataPropertyDefinition",
-                "11773": "MgDataReader",
-                "1256": "MgDateTime",
-                "1506": "MgDateTimeException",
-                "10256": "MgDateTimeProperty",
-                "30003": "MgDbException",
-                "30004": "MgDbXmlException",
-                "1507": "MgDecryptionException",
-                "11775": "MgDeleteFeatures",
-                "1508": "MgDirectoryNotFoundException",
-                "1000": "MgDisposableCollection",
-                "1509": "MgDivideByZeroException",
-                "1510": "MgDomainException",
-                "10257": "MgDoubleProperty",
-                "30700": "MgDrawingService",
-                "1511": "MgDuplicateDirectoryException",
-                "1512": "MgDuplicateFileException",
-                "30005": "MgDuplicateGroupException",
-                "30006": "MgDuplicateNameException",
-                "1513": "MgDuplicateObjectException",
-                "30007": "MgDuplicateParameterException",
-                "30008": "MgDuplicateRepositoryException",
-                "10501": "MgDuplicateResourceDataException",
-                "10502": "MgDuplicateResourceException",
-                "30009": "MgDuplicateRoleException",
-                "30010": "MgDuplicateServerException",
-                "30011": "MgDuplicateSessionException",
-                "30012": "MgDuplicateUserException",
-                "30013": "MgDwfException",
-                "30014": "MgDwfSectionNotFoundException",
-                "30015": "MgDwfSectionResourceNotFoundException",
-                "30901": "MgDwfVersion",
-                "10503": "MgEmptyFeatureSetException",
-                "1514": "MgEncryptionException",
-                "30016": "MgEndOfStreamException",
-                "20001": "MgEnvelope",
-                "1515": "MgException",
-                "10504": "MgFdoException",
-                "11772": "MgFeatureAggregateOptions",
-                "11774": "MgFeatureCommandCollection",
-                "31001": "MgFeatureInformation",
-                "11764": "MgFeatureProperty",
-                "11771": "MgFeatureQueryOptions",
-                "11753": "MgFeatureReader",
-                "11778": "MgFeatureSchema",
-                "11779": "MgFeatureSchemaCollection",
-                "11754": "MgFeatureService",
-                "10505": "MgFeatureServiceException",
-                "11786": "MgFileFeatureSourceParams",
-                "1516": "MgFileIoException",
-                "1517": "MgFileNotFoundException",
-                "20016": "MgGeometricEntity",
-                "11756": "MgGeometricPropertyDefinition",
-                "20019": "MgGeometry",
-                "20020": "MgGeometryCollection",
-                "20021": "MgGeometryComponent",
-                "21006": "MgGeometryException",
-                "20002": "MgGeometryFactory",
-                "11758": "MgGeometryProperty",
-                "11785": "MgGeometryTypeInfo",
-                "30018": "MgGroupNotFoundException",
-                "11782": "MgGwsFeatureReader",
-                "40000": "MgHttpHeader",
-                "40006": "MgHttpPrimitiveValue",
-                "40004": "MgHttpRequest",
-                "40002": "MgHttpRequestMetadata",
-                "40001": "MgHttpRequestParam",
-                "40005": "MgHttpResponse",
-                "40003": "MgHttpResult",
-                "1518": "MgIndexOutOfRangeException",
-                "11776": "MgInsertFeatures",
-                "10258": "MgInt16Property",
-                "10259": "MgInt32Property",
-                "10260": "MgInt64Property",
-                "10000": "MgIntCollection",
-                "1519": "MgInvalidArgumentException",
-                "1520": "MgInvalidCastException",
-                "21007": "MgInvalidCoordinateSystemException",
-                "21008": "MgInvalidCoordinateSystemTypeException",
-                "21009": "MgInvalidCoordinateSystemUnitsException",
-                "30019": "MgInvalidDwfPackageException",
-                "30020": "MgInvalidDwfSectionException",
-                "30021": "MgInvalidFeatureSourceException",
-                "30022": "MgInvalidIpAddressException",
-                "30023": "MgInvalidLicenseException",
-                "30024": "MgInvalidLogEntryException",
-                "10507": "MgInvalidMapDefinitionException",
-                "1522": "MgInvalidOperationException",
-                "30026": "MgInvalidPasswordException",
-                "30027": "MgInvalidPrintLayoutFontSizeUnitsException",
-                "30028": "MgInvalidPrintLayoutPositionUnitsException",
-                "30029": "MgInvalidPrintLayoutSizeUnitsException",
-                "1523": "MgInvalidPropertyTypeException",
-                "10508": "MgInvalidRepositoryNameException",
-                "10509": "MgInvalidRepositoryTypeException",
-                "10510": "MgInvalidResourceDataNameException",
-                "10511": "MgInvalidResourceDataTypeException",
-                "10512": "MgInvalidResourceNameException",
-                "10513": "MgInvalidResourcePathException",
-                "10514": "MgInvalidResourcePreProcessingTypeException",
-                "10515": "MgInvalidResourceTypeException",
-                "30031": "MgInvalidServerNameException",
-                "1524": "MgInvalidStreamHeaderException",
-                "1525": "MgIoException",
-                "31300": "MgKmlService",
-                "30501": "MgLayer",
-                "12003": "MgLayerBase",
-                "12002": "MgLayerCollection",
-                "12001": "MgLayerGroup",
-                "12004": "MgLayerGroupCollection",
-                "10517": "MgLayerNotFoundException",
-                "30904": "MgLayout",
-                "1526": "MgLengthException",
-                "30032": "MgLicenseException",
-                "30033": "MgLicenseExpiredException",
-                "20042": "MgLineString",
-                "20044": "MgLineStringCollection",
-                "20023": "MgLinearRing",
-                "20053": "MgLinearRingCollection",
-                "20024": "MgLinearSegment",
-                "1527": "MgLogicException",
-                "11766": "MgLongTransactionReader",
-                "30500": "MgMap",
-                "12000": "MgMapBase",
-                "12005": "MgMapCollection",
-                "30905": "MgMapPlot",
-                "30906": "MgMapPlotCollection",
-                "30900": "MgMappingService",
-                "20029": "MgMultiCurvePolygon",
-                "20030": "MgMultiCurveString",
-                "20031": "MgMultiGeometry",
-                "20032": "MgMultiLineString",
-                "20033": "MgMultiPoint",
-                "20034": "MgMultiPolygon",
-                "1528": "MgNotFiniteNumberException",
-                "1529": "MgNotImplementedException",
-                "1530": "MgNullArgumentException",
-                "1531": "MgNullPropertyValueException",
-                "1532": "MgNullReferenceException",
-                "1533": "MgObjectNotFoundException",
-                "11759": "MgObjectPropertyDefinition",
-                "30035": "MgOperationProcessingException",
-                "1534": "MgOutOfMemoryException",
-                "1535": "MgOutOfRangeException",
-                "1536": "MgOverflowException",
-                "30604": "MgPackageStatusInformation",
-                "11788": "MgParameter",
-                "10004": "MgParameterCollection",
-                "30036": "MgParameterNotFoundException",
-                "30037": "MgPathTooLongException",
-                "1537": "MgPlatformNotSupportedException",
-                "30902": "MgPlotSpecification",
-                "20000": "MgPoint",
-                "20045": "MgPointCollection",
-                "20035": "MgPolygon",
-                "20046": "MgPolygonCollection",
-                "30039": "MgPortNotAvailableException",
-                "30040": "MgPrintToScaleModeNotSelectedException",
-                "31400": "MgProfilingService",
-                "2000": "MgProperty",
-                "1002": "MgPropertyCollection",
-                "2002": "MgPropertyDefinition",
-                "10001": "MgPropertyDefinitionCollection",
-                "11769": "MgRaster",
-                "11770": "MgRasterProperty",
-                "11768": "MgRasterPropertyDefinition",
-                "12006": "MgReadOnlyLayerCollection",
-                "20037": "MgRegion",
-                "31002": "MgRenderingOptions",
-                "31000": "MgRenderingService",
-                "30041": "MgRepositoryCreationFailedException",
-                "30042": "MgRepositoryNotFoundException",
-                "30043": "MgRepositoryNotOpenException",
-                "30044": "MgRepositoryOpenFailedException",
-                "11526": "MgResource",
-                "10518": "MgResourceBusyException",
-                "10519": "MgResourceDataNotFoundException",
-                "11500": "MgResourceIdentifier",
-                "10520": "MgResourceNotFoundException",
-                "11501": "MgResourceService",
-                "1540": "MgResourceTagNotFoundException",
-                "1538": "MgResourcesException",
-                "1539": "MgResourcesLoadFailedException",
-                "20038": "MgRing",
-                "30045": "MgRoleNotFoundException",
-                "1541": "MgRuntimeException",
-                "30502": "MgSelection",
-                "12007": "MgSelectionBase",
-                "30607": "MgServerAdmin",
-                "30046": "MgServerNotFoundException",
-                "30047": "MgServerNotOnlineException",
-                "11251": "MgService",
-                "10521": "MgServiceNotAvailableException",
-                "10522": "MgServiceNotSupportedException",
-                "30048": "MgSessionExpiredException",
-                "30052": "MgSessionNotFoundException",
-                "10261": "MgSingleProperty",
-                "30605": "MgSite",
-                "30601": "MgSiteConnection",
-                "30608": "MgSiteInfo",
-                "11761": "MgSpatialContextReader",
-                "11762": "MgSqlDataReader",
-                "1542": "MgStreamIoException",
-                "1003": "MgStringCollection",
-                "2001": "MgStringProperty",
-                "10003": "MgStringPropertyCollection",
-                "1543": "MgSystemException",
-                "1544": "MgTemporaryFileNotAvailableException",
-                "1545": "MgThirdPartyException",
-                "31200": "MgTileService",
-                "11787": "MgTransaction",
-                "30049": "MgUnauthorizedAccessException",
-                "1547": "MgUnclassifiedException",
-                "1548": "MgUnderflowException",
-                "30056": "MgUnknownTileProviderException",
-                "30057": "MgUnsupportedTileProviderException",
-                "11777": "MgUpdateFeatures",
-                "30050": "MgUriFormatException",
-                "30606": "MgUserInformation",
-                "10523": "MgUserNotFoundException",
-                "11257": "MgWarnings",
-                "50005": "MgWebBufferCommand",
-                "50000": "MgWebCommand",
-                "50012": "MgWebCommandCollection",
-                "50015": "MgWebCommandWidget",
-                "50025": "MgWebContextMenu",
-                "50016": "MgWebFlyoutWidget",
-                "50009": "MgWebGetPrintablePageCommand",
-                "50011": "MgWebHelpCommand",
-                "50022": "MgWebInformationPane",
-                "50003": "MgWebInvokeScriptCommand",
-                "50004": "MgWebInvokeUrlCommand",
-                "50026": "MgWebLayout",
-                "50008": "MgWebMeasureCommand",
-                "50007": "MgWebPrintCommand",
-                "50002": "MgWebSearchCommand",
-                "50006": "MgWebSelectWithinCommand",
-                "50014": "MgWebSeparatorWidget",
-                "50023": "MgWebTaskBar",
-                "50017": "MgWebTaskBarWidget",
-                "50024": "MgWebTaskPane",
-                "50021": "MgWebToolBar",
-                "50019": "MgWebUiPane",
-                "50020": "MgWebUiSizablePane",
-                "50001": "MgWebUiTargetCommand",
-                "50010": "MgWebViewOptionsCommand",
-                "50013": "MgWebWidget",
-                "50018": "MgWebWidgetCollection",
-                "20040": "MgWktReaderWriter",
-                "1549": "MgXmlException",
-                "1550": "MgXmlParserException"
-            }
-        }
-    ]
-}
\ No newline at end of file

Modified: trunk/MgDev/Bindings/src/Tools/ClassMapGen/Program.cs
===================================================================
--- trunk/MgDev/Bindings/src/Tools/ClassMapGen/Program.cs	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/ClassMapGen/Program.cs	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -4,6 +4,10 @@
 using System.Collections.Generic;
 using Newtonsoft.Json;
 using System.Text;
+using CommandLine;
+using System.Xml;
+using NCalc;
+using System.Collections.Concurrent;
 
 namespace ClassMapGen
 {
@@ -19,71 +23,53 @@
         public List<ModuleDef> Modules { get; set; }
     }
 
+    class Options
+    {
+        [Option("source-base", Required = true)]
+        public string SourceBase { get; set; }
+
+        [Option("swig-xml-file", Required = true)]
+        public string SwigXmlFile { get; set; }
+    }
+
     class Program
     {
-        static int Main(string[] args)
+        static int Run(Options opts)
         {
-            string srcBase = null;
-            if (args.Length == 1)
-            {
-                srcBase = args[0];
-            }
+            var srcBase = opts.SourceBase;
             if (!Directory.Exists(srcBase))
             {
                 Console.WriteLine($"ERROR: Source base directory not found: \
{srcBase}");  return 1;
             }
+            if (!File.Exists(opts.SwigXmlFile))
+            {
+                Console.WriteLine($"ERROR: SWIG xml file not found: \
{opts.SwigXmlFile}"); +                return 1;
+            }
 
             string phpOut = Path.Combine(srcBase, "Bindings/Php/PhpClassMap.cpp");
-            string dotNetOut = Path.Combine(srcBase, \
                "Bindings/DotNet/MapGuideDotNetApi/custom/MgClassMap.cs");
-            string javaOut = Path.Combine(srcBase, \
"Bindings/Java/org/osgeo/mapguide/ObjectFactory.java"); +            string dotNetOut \
= Path.Combine(srcBase, "Managed/DotNet/Common/MgClassMap.cs"); +            string \
javaOut = Path.Combine(srcBase, \
"Managed/Java/org/osgeo/mapguide/ObjectFactory.java");  
             var phpTpl = new \
                StringBuilder(File.ReadAllText("Data/Templates/php.txt"));
             var dotNetTpl = new \
                StringBuilder(File.ReadAllText("Data/Templates/dotnet.txt"));
             var javaTpl = new \
StringBuilder(File.ReadAllText("Data/Templates/java.txt"));  
-            MasterClassMap clsMap = \
JsonConvert.DeserializeObject<MasterClassMap>(File.ReadAllText("Data/classmap_master.json"));
 +            MasterClassMap clsMap = ReadFromSwigXml(opts.SwigXmlFile);
 
-            var foundation = clsMap.Modules.FirstOrDefault(m => m.Name == \
                "Foundation");
-            var geometry = clsMap.Modules.FirstOrDefault(m => m.Name == "Geometry");
-            var platform = clsMap.Modules.FirstOrDefault(m => m.Name == \
                "PlatformBase");
-            var mapguide = clsMap.Modules.FirstOrDefault(m => m.Name == \
                "MapGuideCommon");
-            var web = clsMap.Modules.FirstOrDefault(m => m.Name == "Web");
-
-            int foundationAdded = 0;
-            int geometryAdded = 0;
-            int platformAdded = 0;
-            int mapguideAdded = 0;
-            int webAdded = 0;
-
             var classMapMaster = new Dictionary<int, string>();
             var classMapMasterReverse = new SortedDictionary<string, int>();
+            var addedStats = new ConcurrentDictionary<string, int>();
 
-            foreach (var kvp in foundation.Classes)
+            foreach (var mod in clsMap.Modules)
             {
-                if (classMapMaster.TryAdd(kvp.Key, kvp.Value))
-                    foundationAdded++;
+                foreach (var kvp in mod.Classes)
+                {
+                    if (classMapMaster.TryAdd(kvp.Key, kvp.Value))
+                        addedStats.AddOrUpdate(mod.Name, k => 1, (k, cv) => cv + 1);
+                }
             }
-            foreach (var kvp in geometry.Classes)
-            {
-                if (classMapMaster.TryAdd(kvp.Key, kvp.Value))
-                    geometryAdded++;
-            }
-            foreach (var kvp in platform.Classes)
-            {
-                if (classMapMaster.TryAdd(kvp.Key, kvp.Value))
-                    platformAdded++;
-            }
-            foreach (var kvp in mapguide.Classes)
-            {
-                if (classMapMaster.TryAdd(kvp.Key, kvp.Value))
-                    mapguideAdded++;
-            }
-            foreach (var kvp in web.Classes)
-            {
-                if (classMapMaster.TryAdd(kvp.Key, kvp.Value))
-                    webAdded++;
-            }
 
             //Now populate reverse map
             foreach (var kvp in classMapMaster)
@@ -91,11 +77,10 @@
                 classMapMasterReverse[kvp.Value] = kvp.Key;
             }
 
-            Console.WriteLine($"Foundation: {foundationAdded} classes added");
-            Console.WriteLine($"Geometry: {geometryAdded} classes added");
-            Console.WriteLine($"PlatformBase: {platformAdded} classes added");
-            Console.WriteLine($"MapGuideCommon: {mapguideAdded} classes added");
-            Console.WriteLine($"Web: {webAdded} classes added");
+            foreach (var kvp in addedStats)
+            {
+                Console.WriteLine($"{kvp.Key}: {kvp.Value} classes added");
+            }
 
             Console.WriteLine($"Class map has {classMapMaster.Count} classes");
 
@@ -112,25 +97,32 @@
 
             phpTpl.Replace("$CLASS_NAME_MAP_BODY$", phpClassMaps.ToString());
 
-            var dotNetClassMaps = new StringBuilder();
-            
-            //.net
+            var javaClassMaps = new StringBuilder();
+
+            //Java
             foreach (var kvp in classMapMasterReverse)
             {
-                dotNetClassMaps.AppendLine($"{DOTNET_INDENT}classNameMap[{kvp.Value}] \
= \"OSGeo.MapGuide.{kvp.Key}\";"); +                \
javaClassMaps.AppendLine($"{JAVA_INDENT}classMap.put(new Integer({kvp.Value}), \
getSWIGCtor(\"{kvp.Key}\"));");  }
 
-            dotNetTpl.Replace("$CLASS_NAME_MAP_BODY$", dotNetClassMaps.ToString());
+            javaTpl.Replace("$CLASS_NAME_MAP_BODY$", javaClassMaps.ToString());
 
-            var javaClassMaps = new StringBuilder(); 
+            var dotNetClassMaps = new StringBuilder();
 
-            //Java
-            foreach (var kvp in classMapMasterReverse)
+            //.net
+            foreach (var mod in clsMap.Modules)
             {
-                javaClassMaps.AppendLine($"{JAVA_INDENT}classMap.put(new \
Integer({kvp.Value}), getSWIGCtor(\"{kvp.Key}\"));"); +                \
dotNetClassMaps.AppendLine($"{DOTNET_INDENT}if \
(HasAssemblyInAppDomain(\"OSGeo.MapGuide.{mod.Name}\")) {{"); +
+                foreach (var kvp in mod.Classes)
+                {
+                    dotNetClassMaps.AppendLine($"{DOTNET_INDENT}    \
classIdCtorMap[{kvp.Key}] = ResolveConstructor(\"OSGeo.MapGuide.{kvp.Value}\");"); +  \
} +
+                dotNetClassMaps.AppendLine($"{DOTNET_INDENT}}}");
             }
 
-            javaTpl.Replace("$CLASS_NAME_MAP_BODY$", javaClassMaps.ToString());
+            dotNetTpl.Replace("$CLASS_NAME_MAP_BODY$", dotNetClassMaps.ToString());
 
             File.WriteAllText(phpOut, phpTpl.ToString());
             Console.WriteLine($"Written: {phpOut}");
@@ -141,5 +133,188 @@
 
             return 0;
         }
+
+        private static MasterClassMap ReadFromSwigXml(string swigXmlFile)
+        {
+            var doc = new XmlDocument();
+            doc.Load(swigXmlFile);
+
+            var constantNodes = doc.GetElementsByTagName("constant");
+            var modFoundation = new ModuleDef
+            {
+                Name = "Foundation",
+                Classes = new Dictionary<int, string>()
+            };
+            var modGeometry = new ModuleDef
+            {
+                Name = "Geometry",
+                Classes = new Dictionary<int, string>()
+            };
+            var modPlatformBase = new ModuleDef
+            {
+                Name = "PlatformBase",
+                Classes = new Dictionary<int, string>()
+            };
+            var modMapGuideCommon = new ModuleDef
+            {
+                Name = "MapGuideCommon",
+                Classes = new Dictionary<int, string>()
+            };
+            var modWeb = new ModuleDef
+            {
+                Name = "Web",
+                Classes = new Dictionary<int, string>()
+            };
+
+            var modsByName = new Dictionary<string, ModuleDef>
+            {
+                { modFoundation.Name, modFoundation },
+                { modGeometry.Name, modGeometry },
+                { modPlatformBase.Name, modPlatformBase },
+                { modMapGuideCommon.Name, modMapGuideCommon },
+                { modWeb.Name, modWeb }
+            };
+
+            var clsMap = new MasterClassMap
+            {
+                Modules = new List<ModuleDef>
+                {
+                    modFoundation,
+                    modGeometry,
+                    modPlatformBase,
+                    modMapGuideCommon,
+                    modWeb
+                }
+            };
+
+            foreach (XmlNode cn in constantNodes)
+            {
+                var attrs = cn.FirstChild?.ChildNodes;
+                if (attrs != null)
+                {
+                    string name = null;
+                    string valueExpr = null;
+                    foreach (XmlNode attNode in attrs)
+                    {
+                        if (attNode.Name != "attribute")
+                        {
+                            continue;
+                        }
+
+                        var na = attNode.Attributes["name"]?.Value;
+                        var va = attNode.Attributes["value"]?.Value;
+                        if (na != null && na == "name" && va != null)
+                        {
+                            name = va;
+                        }
+                        if (na != null && na == "value" && va != null)
+                        {
+                            valueExpr = va;
+                        }
+                    }
+                    if (name != null && valueExpr != null)
+                    {
+                        Console.WriteLine("Checking symbol: " + name);
+                        // Name should be of the form: Module_Category_ClassName
+                        var qname = name.Split("_");
+                        if (IsCandidateConstant(modsByName, qname, out var modName, \
out var uqClassName)) +                        {
+                            // The class id value should be an arithmetic \
expression, evaluate it +                            var expr = new \
Expression(valueExpr); +                            var f = expr.ToLambda<int>();
+                            var classId = f.Invoke();
+
+                            var mod = modsByName[modName];
+                            var className = uqClassName;
+
+                            //Prefix "Mg" if not done already
+                            if (!className.StartsWith("Mg"))
+                                className = "Mg" + uqClassName;
+
+                            // Skip class ids for removed exception classes. The ids \
are remaining in the +                            // original headers so we don't try \
to reuse them for any new classes we add to the  +                            // \
MapGuide API in the future +                            if \
(className.EndsWith("Exception") && className != "MgException") +                     \
{ +                                continue;
+                            }
+
+                            mod.Classes.Add(classId, className);
+                            Console.WriteLine($"Found class id ({classId}) for \
class: {className}"); +                        }
+                    }
+                }
+            }
+
+            return clsMap;
+        }
+
+        private static bool IsCandidateConstant(Dictionary<string, ModuleDef> \
modsByName, string[] qname, out string modName, out string className) +        {
+            modName = "";
+            className = "";
+            bool isCandidate = false;
+            
+            if (qname.Length == 3)
+            {
+                if (modsByName.ContainsKey(qname[0]))
+                {
+                    modName = qname[0];
+                    className = qname[2];
+                    isCandidate = true;
+                }
+                else
+                {
+                    switch (qname[0])
+                    {
+                        case "HttpHandler":
+                            modName = "Web";
+                            className = qname[2];
+                            isCandidate = true;
+                            break;
+                        case "MapGuide":
+                            modName = "MapGuideCommon";
+                            className = qname[2];
+                            isCandidate = true;
+                            break;
+                    }
+                }
+            }
+
+
+            if (!isCandidate)
+            {
+                if (qname.Length == 2)
+                {
+                    switch (qname[0])
+                    {
+                        case "CoordinateSystem":
+                        case "Geometry":
+                            isCandidate = true;
+                            modName = "Geometry";
+                            className = qname[1];
+                            break;
+                        case "WebApp":
+                            isCandidate = true;
+                            modName = "Web";
+                            className = qname[1];
+                            break;
+                    }
+                }
+            }
+            return isCandidate;
+        }
+
+        static int Main(string[] args)
+        {
+            int exitCode = 0;
+            Parser.Default.ParseArguments<Options>(args)
+                .WithParsed(opts =>
+                {
+                    exitCode = Run(opts);
+                });
+
+            return exitCode;
+        }
     }
 }

Copied: trunk/MgDev/Bindings/src/Tools/ClassMapGen/classids.i (from rev 9811, \
sandbox/jng/vanilla_swig/Bindings/src/Tools/ClassMapGen/classids.i) \
                ===================================================================
--- trunk/MgDev/Bindings/src/Tools/ClassMapGen/classids.i	                        \
                (rev 0)
+++ trunk/MgDev/Bindings/src/Tools/ClassMapGen/classids.i	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -0,0 +1,6 @@
+%include "./../../../../Common/Foundation/System/FoundationClassId.h"
+%include "./../../../../Common/Geometry/GeometryClassId.h"
+%include "./../../../../Common/PlatformBase/Services/PlatformBaseClassId.h"
+%include "./../../../../Common/MapGuideCommon/System/MapGuideCommonClassId.h"
+%include "./../../../../Web/src/WebApp/WebAppClassId.h"
+%include "./../../../../Web/src/HttpHandler/HttpHandlerClassId.h"
\ No newline at end of file

Index: trunk/MgDev/Bindings/src/Tools/PhpPostProcess
===================================================================
--- trunk/MgDev/Bindings/src/Tools/PhpPostProcess	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/PhpPostProcess	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Tools/PhpPostProcess
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+bin
+obj
Modified: trunk/MgDev/Bindings/src/Tools/PhpPostProcess/PhpPostProcess.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Tools/PhpPostProcess/PhpPostProcess.csproj	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/PhpPostProcess/PhpPostProcess.csproj	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
     <LangVersion>latest</LangVersion>
   </PropertyGroup>
 

Index: trunk/MgDev/Bindings/src/Tools/StampVer
===================================================================
--- trunk/MgDev/Bindings/src/Tools/StampVer	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/StampVer	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Tools/StampVer
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+bin
+obj
Modified: trunk/MgDev/Bindings/src/Tools/StampVer/StampVer.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Tools/StampVer/StampVer.csproj	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/StampVer/StampVer.csproj	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
   </PropertyGroup>
 
 </Project>

Index: trunk/MgDev/Bindings/src/Tools/SwigPrepare
===================================================================
--- trunk/MgDev/Bindings/src/Tools/SwigPrepare	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/SwigPrepare	2022-10-10 10:00:53 UTC (rev 9973)

Property changes on: trunk/MgDev/Bindings/src/Tools/SwigPrepare
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+bin
+obj
Modified: trunk/MgDev/Bindings/src/Tools/SwigPrepare/SwigPrepare.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Tools/SwigPrepare/SwigPrepare.csproj	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/SwigPrepare/SwigPrepare.csproj	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
   </PropertyGroup>
 
 </Project>

Deleted: trunk/MgDev/Bindings/src/Tools/Tools.sln
===================================================================
--- trunk/MgDev/Bindings/src/Tools/Tools.sln	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Bindings/src/Tools/Tools.sln	2022-10-10 10:00:53 UTC (rev 9973)
@@ -1,79 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26124.0
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StampVer", \
                "StampVer\StampVer.csproj", "{00311DA9-58F4-4460-B44E-2B60900A9E10}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SwigPrepare", \
                "SwigPrepare\SwigPrepare.csproj", \
                "{63E7E7D7-1256-440B-8700-00D33E6DDDAE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClassMapGen", \
                "ClassMapGen\ClassMapGen.csproj", \
                "{505B50EF-9041-49AD-8B78-7EC6FE98D990}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhpPostProcess", \
                "PhpPostProcess\PhpPostProcess.csproj", \
                "{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Debug|x64 = Debug|x64
-		Debug|x86 = Debug|x86
-		Release|Any CPU = Release|Any CPU
-		Release|x64 = Release|x64
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Debug|x64.Build.0 = Debug|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Debug|x86.Build.0 = Debug|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Release|Any CPU.Build.0 = Release|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Release|x64.ActiveCfg = Release|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Release|x64.Build.0 = Release|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Release|x86.ActiveCfg = Release|Any CPU
-		{00311DA9-58F4-4460-B44E-2B60900A9E10}.Release|x86.Build.0 = Release|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Debug|x64.Build.0 = Debug|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Debug|x86.Build.0 = Debug|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Release|x64.ActiveCfg = Release|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Release|x64.Build.0 = Release|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Release|x86.ActiveCfg = Release|Any CPU
-		{63E7E7D7-1256-440B-8700-00D33E6DDDAE}.Release|x86.Build.0 = Release|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Debug|x64.Build.0 = Debug|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Debug|x86.Build.0 = Debug|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Release|Any CPU.Build.0 = Release|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Release|x64.ActiveCfg = Release|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Release|x64.Build.0 = Release|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Release|x86.ActiveCfg = Release|Any CPU
-		{505B50EF-9041-49AD-8B78-7EC6FE98D990}.Release|x86.Build.0 = Release|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Debug|x64.Build.0 = Debug|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Debug|x86.Build.0 = Debug|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Release|Any CPU.Build.0 = Release|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Release|x64.ActiveCfg = Release|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Release|x64.Build.0 = Release|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Release|x86.ActiveCfg = Release|Any CPU
-		{DE54CB22-B574-4BD4-AC6B-0AEF19B56A93}.Release|x86.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {5BB4C6B2-72AF-4F0A-8FB1-0575EBC08176}
-	EndGlobalSection
-EndGlobal

Modified: trunk/MgDev/CMakeLists.txt
===================================================================
--- trunk/MgDev/CMakeLists.txt	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/CMakeLists.txt	2022-10-10 10:00:53 UTC (rev 9973)
@@ -93,6 +93,7 @@
 set(MG_OEM_MINIZIP_INCLUDE_DIR "${MG_OEM_ROOT_DIR}/gd/zlib/contrib/minizip")
 set(MG_OEM_DWF_INCLUDE_DIR "${MG_OEM_ROOT_DIR}/DWFTK/develop/global/src")
 set(MG_COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Common")
+set(MG_WEB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Web")
 set(MG_SERVER_COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Server/src/Common")
 set(MG_SERVER_SERVICES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Server/src/Services")
 set(MG_SERVER_GWS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Server/src/Gws")
@@ -265,6 +266,7 @@
 if (NOT MG_COMMON_SUBSET_ONLY)
     add_subdirectory(UnitTest)
 endif (NOT MG_COMMON_SUBSET_ONLY)
+add_subdirectory(Bindings)
 
 if (WITH_DESKTOP)
     add_subdirectory(Desktop)

Modified: trunk/MgDev/Common/CMakeLists.txt
===================================================================
--- trunk/MgDev/Common/CMakeLists.txt	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/CMakeLists.txt	2022-10-10 10:00:53 UTC (rev 9973)
@@ -46,6 +46,11 @@
         DESTINATION ${MG_INSTALL_PREFIX}/include/Common
         FILES_MATCHING PATTERN *.h
     )
+    file(COPY "CoordinateSystem" DESTINATION ${CMAKE_CURRENT_BINARY_DIR} \
FILES_MATCHING PATTERN *.h) +    file(COPY "Foundation" DESTINATION \
${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN *.h) +    file(COPY "Geometry" \
DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN *.h) +    file(COPY \
"MapGuideCommon" DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN *.h) \
+    file(COPY "PlatformBase" DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING \
PATTERN *.h)  endif (NOT MG_COMMON_SUBSET_ONLY)
 
 configure_file(${CMAKE_MODULE_PATH}/../configs/ProductVersion.h.in \
${MG_AUTO_GENERATED_HEADER_DIR}/ProductVersion.h)

Modified: trunk/MgDev/Common/Foundation/CMakeLists.txt
===================================================================
--- trunk/MgDev/Common/Foundation/CMakeLists.txt	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/Foundation/CMakeLists.txt	2022-10-10 10:00:53 UTC (rev 9973)
@@ -19,7 +19,6 @@
     ${ACE_LIBRARY}
     ${XERCESC_LIBRARIES}
     MgMdfModel${MG_VERSION_SUFFIX}
-    MgMdfParser${MG_VERSION_SUFFIX}
 )
 
 set_target_properties(MgFoundation${MG_VERSION_SUFFIX} PROPERTIES INSTALL_RPATH \
"$ORIGIN")

Modified: trunk/MgDev/Common/Foundation/Data/NamedCollection.h
===================================================================
--- trunk/MgDev/Common/Foundation/Data/NamedCollection.h	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Common/Foundation/Data/NamedCollection.h	2022-10-10 10:00:53 UTC (rev \
9973) @@ -317,7 +317,7 @@
     bool m_bCheckDuplicate;
 
 CLASS_ID:
-    static const INT32 m_cls_id = Foundation_Collection_NamedCollection;
+    static const INT32 m_cls_id = INTERNAL_Foundation_Collection_NamedCollection;
 };
 /// \endcond
 

Modified: trunk/MgDev/Common/Foundation/Foundation.h
===================================================================
--- trunk/MgDev/Common/Foundation/Foundation.h	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/Foundation/Foundation.h	2022-10-10 10:00:53 UTC (rev 9973)
@@ -45,15 +45,14 @@
 // ignore warnings about using deprecated methods
 #pragma warning(disable: 4996)
 
-#ifdef SWIG_PUBLIC_API
-// ACE_Recursive_Thread_Mutex and ACE_thread_t are currently exposed as private \
                members of several 
-// classes thare are exported out to the public MapGuide API surface area \
(MgGuardDisposable/MgSiteManager) +// Unfortunately, we must leak this header out in \
a SWIG generation context as ACE_Recursive_Thread_Mutex  +// is a private and public \
member of several classes thare are exported out to the public MapGuide API  +// \
surface area (MgGuardDisposable/MgSiteManager)  //
-// Private members do not (at least for us) factor into the SWIG code generation \
                context, so for the
-// purpose of SWIG codegen, we can just stub these missing types
-typedef int ACE_thread_t;
-class ACE_Recursive_Thread_Mutex { };
-#endif
+// Every other ACE type/header however are internal implementation details that can \
be safely walled-off  +// with SWIG_PUBLIC_API or forward-declared away to reduce the \
ACE header surface area to this one single  +// header below
+#include "ace/Recursive_Thread_Mutex.h"
 
 #ifndef SWIG_PUBLIC_API
 #include "ace/Init_ACE.h"

Modified: trunk/MgDev/Common/Foundation/System/ClassFactory.cpp
===================================================================
--- trunk/MgDev/Common/Foundation/System/ClassFactory.cpp	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/Foundation/System/ClassFactory.cpp	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -57,7 +57,11 @@
     ClassCreatorFunc func = m_classCreators[classId];
     if (NULL == func)
     {
-        throw new MgException(MgExceptionCodes::MgClassNotFoundException, \
L"MgClassFactory.CreateMgObject", __LINE__, __WFILE__, NULL, L"", NULL); +        \
MgStringCollection args; +        STRING sClassId;
+        MgUtil::Int32ToString(classId, sClassId);
+        args.Add(sClassId);
+        throw new MgException(MgExceptionCodes::MgClassNotFoundException, \
L"MgClassFactory.CreateMgObject", __LINE__, __WFILE__, NULL, \
L"MgNoClassFactoryForId", &args);  }
 
     MgObject* obj = (*func)();

Modified: trunk/MgDev/Common/Foundation/System/DisposableCollection.h
===================================================================
--- trunk/MgDev/Common/Foundation/System/DisposableCollection.h	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Common/Foundation/System/DisposableCollection.h	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -250,7 +250,7 @@
     INT32          m_size;
 
 CLASS_ID:
-    static const INT32 m_cls_id = Foundation_Collection_Collection;
+    static const INT32 m_cls_id = Foundation_Collection_DisposableCollection;
 };
 /// \endcond
 

Modified: trunk/MgDev/Common/Foundation/System/FoundationClassId.h
===================================================================
--- trunk/MgDev/Common/Foundation/System/FoundationClassId.h	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/Foundation/System/FoundationClassId.h	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -24,8 +24,8 @@
 #define FOUNDATION_SYSTEM_ID              2250
 
 // Foundation Collection
-#define Foundation_Collection_Collection                     \
                FOUNDATION_COLLECTION_ID+0
-#define Foundation_Collection_NamedCollection                \
FOUNDATION_COLLECTION_ID+1 +#define Foundation_Collection_DisposableCollection        \
FOUNDATION_COLLECTION_ID+0 +#define INTERNAL_Foundation_Collection_NamedCollection    \
FOUNDATION_COLLECTION_ID+1  #define Foundation_Collection_PropertyCollection          \
FOUNDATION_COLLECTION_ID+2  #define Foundation_Collection_StringCollection            \
FOUNDATION_COLLECTION_ID+3  #define Foundation_Collection_StringPropertyCollection    \
FOUNDATION_COLLECTION_ID+4 @@ -32,72 +32,72 @@
 #define Foundation_Collection_BatchPropertyCollection        \
FOUNDATION_COLLECTION_ID+5  
 // Foundation Data
-#define Foundation_Data_ByteReader                        FOUNDATION_DATA_ID+0
-#define Foundation_Data_ByteSource                        FOUNDATION_DATA_ID+1
-#define Foundation_Data_ByteSourceFileImpl                FOUNDATION_DATA_ID+2
-#define Foundation_Data_ByteSourceImpl                    FOUNDATION_DATA_ID+3
-#define Foundation_Data_ByteSourceMemoryImpl              FOUNDATION_DATA_ID+4
-#define Foundation_Data_ByteSourceSocketStreamImpl        FOUNDATION_DATA_ID+5
-#define Foundation_Data_DateTime                          FOUNDATION_DATA_ID+6
-#define Foundation_Data_ByteSink                          FOUNDATION_DATA_ID+7
-#define Foundation_Data_Stream                            FOUNDATION_DATA_ID+8
+#define Foundation_Data_ByteReader                          FOUNDATION_DATA_ID+0
+#define Foundation_Data_ByteSource                          FOUNDATION_DATA_ID+1
+#define UNUSED_Foundation_Data_ByteSourceFileImpl           FOUNDATION_DATA_ID+2
+#define UNUSED_Foundation_Data_ByteSourceImpl               FOUNDATION_DATA_ID+3
+#define UNUSED_Foundation_Data_ByteSourceMemoryImpl         FOUNDATION_DATA_ID+4
+#define UNUSED_Foundation_Data_ByteSourceSocketStreamImpl   FOUNDATION_DATA_ID+5
+#define Foundation_Data_DateTime                            FOUNDATION_DATA_ID+6
+#define Foundation_Data_ByteSink                            FOUNDATION_DATA_ID+7
+#define INTERNAL_Foundation_Data_Stream                     FOUNDATION_DATA_ID+8
 
 // Foundation Exception
 //
 // NOTE: Although we removed these exceptions, we are keeping the ids in to prevent \
these ids from being  // accidentally used for new classes in the future
-#define Foundation_Exception_MgApplicationException                             \
                FOUNDATION_EXCEPTION_ID+0
-#define Foundation_Exception_MgArgumentOutOfRangeException                      \
                FOUNDATION_EXCEPTION_ID+1
-#define Foundation_Exception_MgClassNotFoundException                           \
                FOUNDATION_EXCEPTION_ID+2
-#define Foundation_Exception_MgConfigurationException                           \
                FOUNDATION_EXCEPTION_ID+3
-#define Foundation_Exception_MgConfigurationLoadFailedException                 \
                FOUNDATION_EXCEPTION_ID+4
-#define Foundation_Exception_MgConfigurationSaveFailedException                 \
                FOUNDATION_EXCEPTION_ID+5
-#define Foundation_Exception_MgDateTimeException                                \
                FOUNDATION_EXCEPTION_ID+6
-#define Foundation_Exception_MgDecryptionException                              \
                FOUNDATION_EXCEPTION_ID+7
-#define Foundation_Exception_MgDirectoryNotFoundException                       \
                FOUNDATION_EXCEPTION_ID+8
-#define Foundation_Exception_MgDivideByZeroException                            \
                FOUNDATION_EXCEPTION_ID+9
-#define Foundation_Exception_MgDomainException                                  \
                FOUNDATION_EXCEPTION_ID+10
-#define Foundation_Exception_MgDuplicateDirectoryException                      \
                FOUNDATION_EXCEPTION_ID+11
-#define Foundation_Exception_MgDuplicateFileException                           \
                FOUNDATION_EXCEPTION_ID+12
-#define Foundation_Exception_MgDuplicateObjectException                         \
                FOUNDATION_EXCEPTION_ID+13
-#define Foundation_Exception_MgEncryptionException                              \
                FOUNDATION_EXCEPTION_ID+14
-#define Foundation_Exception_MgException                                        \
                FOUNDATION_EXCEPTION_ID+15
-#define Foundation_Exception_MgFileIoException                                  \
                FOUNDATION_EXCEPTION_ID+16
-#define Foundation_Exception_MgFileNotFoundException                            \
                FOUNDATION_EXCEPTION_ID+17
-#define Foundation_Exception_MgIndexOutOfRangeException                         \
                FOUNDATION_EXCEPTION_ID+18
-#define Foundation_Exception_MgInvalidArgumentException                         \
                FOUNDATION_EXCEPTION_ID+19
-#define Foundation_Exception_MgInvalidCastException                             \
                FOUNDATION_EXCEPTION_ID+20
-#define Foundation_Exception_MgInvalidMimeTypeException                         \
                FOUNDATION_EXCEPTION_ID+21
-#define Foundation_Exception_MgInvalidOperationException                        \
                FOUNDATION_EXCEPTION_ID+22
-#define Foundation_Exception_MgInvalidPropertyTypeException                     \
                FOUNDATION_EXCEPTION_ID+23
-#define Foundation_Exception_MgInvalidStreamHeaderException                     \
                FOUNDATION_EXCEPTION_ID+24
-#define Foundation_Exception_MgIoException                                      \
                FOUNDATION_EXCEPTION_ID+25
-#define Foundation_Exception_MgLengthException                                  \
                FOUNDATION_EXCEPTION_ID+26
-#define Foundation_Exception_MgLogicException                                   \
                FOUNDATION_EXCEPTION_ID+27
-#define Foundation_Exception_MgNotFiniteNumberException                         \
                FOUNDATION_EXCEPTION_ID+28
-#define Foundation_Exception_MgNotImplementedException                          \
                FOUNDATION_EXCEPTION_ID+29
-#define Foundation_Exception_MgNullArgumentException                            \
                FOUNDATION_EXCEPTION_ID+30
-#define Foundation_Exception_MgNullPropertyValueException                       \
                FOUNDATION_EXCEPTION_ID+31
-#define Foundation_Exception_MgNullReferenceException                           \
                FOUNDATION_EXCEPTION_ID+32
-#define Foundation_Exception_MgObjectNotFoundException                          \
                FOUNDATION_EXCEPTION_ID+33
-#define Foundation_Exception_MgOutOfMemoryException                             \
                FOUNDATION_EXCEPTION_ID+34
-#define Foundation_Exception_MgOutOfRangeException                              \
                FOUNDATION_EXCEPTION_ID+35
-#define Foundation_Exception_MgOverflowException                                \
                FOUNDATION_EXCEPTION_ID+36
-#define Foundation_Exception_MgPlatformNotSupportedException                    \
                FOUNDATION_EXCEPTION_ID+37
-#define Foundation_Exception_MgResourcesException                               \
                FOUNDATION_EXCEPTION_ID+38
-#define Foundation_Exception_MgResourcesLoadFailedException                     \
                FOUNDATION_EXCEPTION_ID+39
-#define Foundation_Exception_MgResourceTagNotFoundException                     \
                FOUNDATION_EXCEPTION_ID+40
-#define Foundation_Exception_MgRuntimeException                                 \
                FOUNDATION_EXCEPTION_ID+41
-#define Foundation_Exception_MgStreamIoException                                \
                FOUNDATION_EXCEPTION_ID+42
-#define Foundation_Exception_MgSystemException                                  \
                FOUNDATION_EXCEPTION_ID+43
-#define Foundation_Exception_MgTemporaryFileNotAvailableException               \
                FOUNDATION_EXCEPTION_ID+44
-#define Foundation_Exception_MgThirdPartyException                              \
                FOUNDATION_EXCEPTION_ID+45
-#define Foundation_Exception_MgUnauthorizedAccessException                      \
                FOUNDATION_EXCEPTION_ID+46
-#define Foundation_Exception_MgUnclassifiedException                            \
                FOUNDATION_EXCEPTION_ID+47
-#define Foundation_Exception_MgUnderflowException                               \
                FOUNDATION_EXCEPTION_ID+48
-#define Foundation_Exception_MgXmlException                                     \
                FOUNDATION_EXCEPTION_ID+49
-#define Foundation_Exception_MgXmlParserException                               \
                FOUNDATION_EXCEPTION_ID+50
-#define Foundation_Exception_MgGridDensityException                             \
FOUNDATION_EXCEPTION_ID+51 +#define \
UNUSED_Foundation_Exception_MgApplicationException                             \
FOUNDATION_EXCEPTION_ID+0 +#define \
UNUSED_Foundation_Exception_MgArgumentOutOfRangeException                      \
FOUNDATION_EXCEPTION_ID+1 +#define \
UNUSED_Foundation_Exception_MgClassNotFoundException                           \
FOUNDATION_EXCEPTION_ID+2 +#define \
UNUSED_Foundation_Exception_MgConfigurationException                           \
FOUNDATION_EXCEPTION_ID+3 +#define \
UNUSED_Foundation_Exception_MgConfigurationLoadFailedException                 \
FOUNDATION_EXCEPTION_ID+4 +#define \
UNUSED_Foundation_Exception_MgConfigurationSaveFailedException                 \
FOUNDATION_EXCEPTION_ID+5 +#define UNUSED_Foundation_Exception_MgDateTimeException    \
FOUNDATION_EXCEPTION_ID+6 +#define UNUSED_Foundation_Exception_MgDecryptionException  \
FOUNDATION_EXCEPTION_ID+7 +#define \
UNUSED_Foundation_Exception_MgDirectoryNotFoundException                       \
FOUNDATION_EXCEPTION_ID+8 +#define \
UNUSED_Foundation_Exception_MgDivideByZeroException                            \
FOUNDATION_EXCEPTION_ID+9 +#define UNUSED_Foundation_Exception_MgDomainException      \
FOUNDATION_EXCEPTION_ID+10 +#define \
UNUSED_Foundation_Exception_MgDuplicateDirectoryException                      \
FOUNDATION_EXCEPTION_ID+11 +#define \
UNUSED_Foundation_Exception_MgDuplicateFileException                           \
FOUNDATION_EXCEPTION_ID+12 +#define \
UNUSED_Foundation_Exception_MgDuplicateObjectException                         \
FOUNDATION_EXCEPTION_ID+13 +#define UNUSED_Foundation_Exception_MgEncryptionException \
FOUNDATION_EXCEPTION_ID+14 +#define Foundation_Exception_MgException                  \
FOUNDATION_EXCEPTION_ID+15 +#define UNUSED_Foundation_Exception_MgFileIoException     \
FOUNDATION_EXCEPTION_ID+16 +#define \
UNUSED_Foundation_Exception_MgFileNotFoundException                            \
FOUNDATION_EXCEPTION_ID+17 +#define \
UNUSED_Foundation_Exception_MgIndexOutOfRangeException                         \
FOUNDATION_EXCEPTION_ID+18 +#define \
UNUSED_Foundation_Exception_MgInvalidArgumentException                         \
FOUNDATION_EXCEPTION_ID+19 +#define \
UNUSED_Foundation_Exception_MgInvalidCastException                             \
FOUNDATION_EXCEPTION_ID+20 +#define \
UNUSED_Foundation_Exception_MgInvalidMimeTypeException                         \
FOUNDATION_EXCEPTION_ID+21 +#define \
UNUSED_Foundation_Exception_MgInvalidOperationException                        \
FOUNDATION_EXCEPTION_ID+22 +#define \
UNUSED_Foundation_Exception_MgInvalidPropertyTypeException                     \
FOUNDATION_EXCEPTION_ID+23 +#define \
UNUSED_Foundation_Exception_MgInvalidStreamHeaderException                     \
FOUNDATION_EXCEPTION_ID+24 +#define UNUSED_Foundation_Exception_MgIoException         \
FOUNDATION_EXCEPTION_ID+25 +#define UNUSED_Foundation_Exception_MgLengthException     \
FOUNDATION_EXCEPTION_ID+26 +#define UNUSED_Foundation_Exception_MgLogicException      \
FOUNDATION_EXCEPTION_ID+27 +#define \
UNUSED_Foundation_Exception_MgNotFiniteNumberException                         \
FOUNDATION_EXCEPTION_ID+28 +#define \
UNUSED_Foundation_Exception_MgNotImplementedException                          \
FOUNDATION_EXCEPTION_ID+29 +#define \
UNUSED_Foundation_Exception_MgNullArgumentException                            \
FOUNDATION_EXCEPTION_ID+30 +#define \
UNUSED_Foundation_Exception_MgNullPropertyValueException                       \
FOUNDATION_EXCEPTION_ID+31 +#define \
UNUSED_Foundation_Exception_MgNullReferenceException                           \
FOUNDATION_EXCEPTION_ID+32 +#define \
UNUSED_Foundation_Exception_MgObjectNotFoundException                          \
FOUNDATION_EXCEPTION_ID+33 +#define \
UNUSED_Foundation_Exception_MgOutOfMemoryException                             \
FOUNDATION_EXCEPTION_ID+34 +#define UNUSED_Foundation_Exception_MgOutOfRangeException \
FOUNDATION_EXCEPTION_ID+35 +#define UNUSED_Foundation_Exception_MgOverflowException   \
FOUNDATION_EXCEPTION_ID+36 +#define \
UNUSED_Foundation_Exception_MgPlatformNotSupportedException                    \
FOUNDATION_EXCEPTION_ID+37 +#define UNUSED_Foundation_Exception_MgResourcesException  \
FOUNDATION_EXCEPTION_ID+38 +#define \
UNUSED_Foundation_Exception_MgResourcesLoadFailedException                     \
FOUNDATION_EXCEPTION_ID+39 +#define \
UNUSED_Foundation_Exception_MgResourceTagNotFoundException                     \
FOUNDATION_EXCEPTION_ID+40 +#define UNUSED_Foundation_Exception_MgRuntimeException    \
FOUNDATION_EXCEPTION_ID+41 +#define UNUSED_Foundation_Exception_MgStreamIoException   \
FOUNDATION_EXCEPTION_ID+42 +#define UNUSED_Foundation_Exception_MgSystemException     \
FOUNDATION_EXCEPTION_ID+43 +#define \
UNUSED_Foundation_Exception_MgTemporaryFileNotAvailableException               \
FOUNDATION_EXCEPTION_ID+44 +#define UNUSED_Foundation_Exception_MgThirdPartyException \
FOUNDATION_EXCEPTION_ID+45 +#define \
UNUSED_Foundation_Exception_MgUnauthorizedAccessException                      \
FOUNDATION_EXCEPTION_ID+46 +#define \
UNUSED_Foundation_Exception_MgUnclassifiedException                            \
FOUNDATION_EXCEPTION_ID+47 +#define UNUSED_Foundation_Exception_MgUnderflowException  \
FOUNDATION_EXCEPTION_ID+48 +#define UNUSED_Foundation_Exception_MgXmlException        \
FOUNDATION_EXCEPTION_ID+49 +#define UNUSED_Foundation_Exception_MgXmlParserException  \
FOUNDATION_EXCEPTION_ID+50 +#define \
UNUSED_Foundation_Exception_MgGridDensityException                             \
FOUNDATION_EXCEPTION_ID+51  
 // Foundation Property
 
@@ -108,4 +108,4 @@
 // Foundation System
 #define Foundation_System_Disposable                        FOUNDATION_SYSTEM_ID+1
 #define Foundation_System_Object                            FOUNDATION_SYSTEM_ID+2
-#define Foundation_System_CryptographyManager               FOUNDATION_SYSTEM_ID+3
+#define INTERNAL_Foundation_System_CryptographyManager               \
FOUNDATION_SYSTEM_ID+3

Modified: trunk/MgDev/Common/Foundation/System/Stream.h
===================================================================
--- trunk/MgDev/Common/Foundation/System/Stream.h	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/Foundation/System/Stream.h	2022-10-10 10:00:53 UTC (rev 9973)
@@ -88,7 +88,7 @@
 
 CLASS_ID:
 
-    static const INT32 m_cls_id = Foundation_Data_Stream;
+    static const INT32 m_cls_id = INTERNAL_Foundation_Data_Stream;
 };
 /// \endcond
 

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGridGeneric.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGridGeneric.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGridGeneric.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -30,7 +30,7 @@
     INT32 GetClassId(){return m_cls_id;};
 
 CLASS_ID:
-    static const INT32 m_cls_id = CoordinateSystem_CoordinateSystemGridGeneric;
+    static const INT32 m_cls_id = \
INTERNAL_CoordinateSystem_CoordinateSystemGridGeneric;  };
 
 #endif //_MGCOORDINATESYSTEMGRIDGENERIC_H_

Modified: trunk/MgDev/Common/Geometry/GeometryClassId.h
===================================================================
--- trunk/MgDev/Common/Geometry/GeometryClassId.h	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/Geometry/GeometryClassId.h	2022-10-10 10:00:53 UTC (rev 9973)
@@ -28,7 +28,7 @@
 #define Geometry_AgfReaderWriter                          GEOMETRY_ID+4
 #define Geometry_AggregateGeometry                        GEOMETRY_ID+5
 #define Geometry_ArcSegment                               GEOMETRY_ID+6
-#define Geometry_CloseInstruction                         GEOMETRY_ID+7
+#define UNUSED_Geometry_CloseInstruction                  GEOMETRY_ID+7
 #define Geometry_CoordinateCollection                     GEOMETRY_ID+8
 #define Geometry_CoordinateIterator                       GEOMETRY_ID+9
 #define Geometry_Curve                                    GEOMETRY_ID+10
@@ -36,10 +36,10 @@
 #define Geometry_CurveRing                                GEOMETRY_ID+12
 #define Geometry_CurveSegment                             GEOMETRY_ID+13
 #define Geometry_CurveString                              GEOMETRY_ID+14
-#define Geometry_GeometricDimension                       GEOMETRY_ID+15
+#define UNUSED_Geometry_GeometricDimension                GEOMETRY_ID+15
 #define Geometry_GeometricEntity                          GEOMETRY_ID+16
-#define Geometry_GeometricPathInstruction                 GEOMETRY_ID+17
-#define Geometry_GeometricPathIterator                    GEOMETRY_ID+18
+#define UNUSED_Geometry_GeometricPathInstruction          GEOMETRY_ID+17
+#define UNUSED_Geometry_GeometricPathIterator             GEOMETRY_ID+18
 #define Geometry_Geometry                                 GEOMETRY_ID+19
 #define Geometry_GeometryCollection                       GEOMETRY_ID+20
 #define Geometry_GeometryComponent                        GEOMETRY_ID+21
@@ -46,10 +46,10 @@
 //unused                                                  GEOMETRY_ID+22
 #define Geometry_LinearRing                               GEOMETRY_ID+23
 #define Geometry_LinearSegment                            GEOMETRY_ID+24
-#define Geometry_LinearString                             GEOMETRY_ID+25
-#define Geometry_LineToInstrution                         GEOMETRY_ID+26
+#define UNUSED_Geometry_LinearString                      GEOMETRY_ID+25
+#define UNUSED_Geometry_LineToInstrution                  GEOMETRY_ID+26
 #define Geometry_Measure                                  GEOMETRY_ID+27
-#define Geometry_MoveToInstruction                        GEOMETRY_ID+28
+#define UNUSED_Geometry_MoveToInstruction                 GEOMETRY_ID+28
 #define Geometry_MultiCurvePolygon                        GEOMETRY_ID+29
 #define Geometry_MultiCurveString                         GEOMETRY_ID+30
 #define Geometry_MultiGeometry                            GEOMETRY_ID+31
@@ -57,7 +57,7 @@
 #define Geometry_MultiPoint                               GEOMETRY_ID+33
 #define Geometry_MultiPolygon                             GEOMETRY_ID+34
 #define Geometry_Polygon                                  GEOMETRY_ID+35
-#define Geometry_QuadToInstruction                        GEOMETRY_ID+36
+#define UNUSED_Geometry_QuadToInstruction                 GEOMETRY_ID+36
 #define Geometry_Region                                   GEOMETRY_ID+37
 #define Geometry_Ring                                     GEOMETRY_ID+38
 #define Geometry_Transform                                GEOMETRY_ID+39
@@ -106,7 +106,7 @@
 #define CoordinateSystem_CoordinateSystemDictionaryUtility          \
GEOMETRY_COORDINATE_SYSTEM_ID+21  #define CoordinateSystem_CoordinateSystemMgrs       \
GEOMETRY_COORDINATE_SYSTEM_ID+22  
-#define CoordinateSystem_CoordinateSystemGridGeneric                \
GEOMETRY_COORDINATE_SYSTEM_ID+23 +#define \
INTERNAL_CoordinateSystem_CoordinateSystemGridGeneric                \
GEOMETRY_COORDINATE_SYSTEM_ID+23  #define \
CoordinateSystem_CoordinateSystemGridBoundary               \
GEOMETRY_COORDINATE_SYSTEM_ID+24  #define \
CoordinateSystem_CoordinateSystemGridSpecification          \
GEOMETRY_COORDINATE_SYSTEM_ID+25  #define \
CoordinateSystem_CoordinateSystemGridLineCollection         \
GEOMETRY_COORDINATE_SYSTEM_ID+26 @@ -122,9 +122,9 @@
 #define CoordinateSystem_CoordinateSystemGeodeticPathDictionary     \
GEOMETRY_COORDINATE_SYSTEM_ID+35  
 #define CoordinateSystem_CoordinateSystemGeodeticTransformDef                       \
                GEOMETRY_COORDINATE_SYSTEM_ID+36
-#define CoordinateSystem_CoordinateSystemGeodeticAnalyticalTransformDef             \
                GEOMETRY_COORDINATE_SYSTEM_ID+37
-#define CoordinateSystem_CoordinateSystemGeodeticInterpolationTransformDef          \
                GEOMETRY_COORDINATE_SYSTEM_ID+38
-#define CoordinateSystem_CoordinateSystemGeodeticMultipleRegressionTransformDef     \
GEOMETRY_COORDINATE_SYSTEM_ID+39 +#define \
UNUSED_CoordinateSystem_CoordinateSystemGeodeticAnalyticalTransformDef      \
GEOMETRY_COORDINATE_SYSTEM_ID+37 +#define \
UNUSED_CoordinateSystem_CoordinateSystemGeodeticInterpolationTransformDef   \
GEOMETRY_COORDINATE_SYSTEM_ID+38 +#define \
UNUSED_CoordinateSystem_CoordinateSystemGeodeticMultipleRegressionTransformDef     \
GEOMETRY_COORDINATE_SYSTEM_ID+39  #define \
CoordinateSystem_CoordinateSystemGeodeticTransformDefDictionary             \
GEOMETRY_COORDINATE_SYSTEM_ID+40  
 #define CoordinateSystem_CoordinateSystemGeodeticTransformDefParams                  \
GEOMETRY_COORDINATE_SYSTEM_ID+41 @@ -138,16 +138,13 @@
 //
 // NOTE: Although we removed these exceptions, we are keeping the ids in to prevent \
these ids from being  // accidentally used for new classes in the future
-#define Geometry_Exception_MgCoordinateSystemComputationFailedException     \
                GEOMETRY_EXCEPTION_ID+0
-#define Geometry_Exception_MgCoordinateSystemConversionFailedException      \
                GEOMETRY_EXCEPTION_ID+1
-#define Geometry_Exception_MgCoordinateSystemInitializationFailedException  \
                GEOMETRY_EXCEPTION_ID+2
-#define Geometry_Exception_MgCoordinateSystemLoadFailedException            \
                GEOMETRY_EXCEPTION_ID+3
-#define Geometry_Exception_MgCoordinateSystemMeasureFailedException         \
                GEOMETRY_EXCEPTION_ID+4
-#define Geometry_Exception_MgCoordinateSystemTransformFailedException       \
                GEOMETRY_EXCEPTION_ID+5
-#define Geometry_Exception_MgGeometryException                              \
                GEOMETRY_EXCEPTION_ID+6
-#define Geometry_Exception_MgInvalidCoordinateSystemException               \
                GEOMETRY_EXCEPTION_ID+7
-#define Geometry_Exception_MgInvalidCoordinateSystemTypeException           \
                GEOMETRY_EXCEPTION_ID+8
-#define Geometry_Exception_MgInvalidCoordinateSystemUnitsException          \
                GEOMETRY_EXCEPTION_ID+9
-
-
-
+#define UNUSED_Geometry_Exception_MgCoordinateSystemComputationFailedException     \
GEOMETRY_EXCEPTION_ID+0 +#define \
UNUSED_Geometry_Exception_MgCoordinateSystemConversionFailedException      \
GEOMETRY_EXCEPTION_ID+1 +#define \
UNUSED_Geometry_Exception_MgCoordinateSystemInitializationFailedException  \
GEOMETRY_EXCEPTION_ID+2 +#define \
UNUSED_Geometry_Exception_MgCoordinateSystemLoadFailedException            \
GEOMETRY_EXCEPTION_ID+3 +#define \
UNUSED_Geometry_Exception_MgCoordinateSystemMeasureFailedException         \
GEOMETRY_EXCEPTION_ID+4 +#define \
UNUSED_Geometry_Exception_MgCoordinateSystemTransformFailedException       \
GEOMETRY_EXCEPTION_ID+5 +#define UNUSED_Geometry_Exception_MgGeometryException        \
GEOMETRY_EXCEPTION_ID+6 +#define \
UNUSED_Geometry_Exception_MgInvalidCoordinateSystemException               \
GEOMETRY_EXCEPTION_ID+7 +#define \
UNUSED_Geometry_Exception_MgInvalidCoordinateSystemTypeException           \
GEOMETRY_EXCEPTION_ID+8 +#define \
UNUSED_Geometry_Exception_MgInvalidCoordinateSystemUnitsException          \
GEOMETRY_EXCEPTION_ID+9

Modified: trunk/MgDev/Common/MapGuideCommon/Controller/Controller.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Controller/Controller.h	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Controller/Controller.h	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -106,7 +106,7 @@
     MgEnvelope* ParseEnvelope(CREFSTRING strEnvelope);
 
 CLASS_ID:
-    static const INT32 m_cls_id = MapGuide_MapLayer_Controller;
+    static const INT32 m_cls_id = INTERNAL_MapGuide_MapLayer_Controller;
 
 protected:
     static const STRING     m_mapCmdSetViewCenterX;

Modified: trunk/MgDev/Common/MapGuideCommon/Controller/DwfController.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Controller/DwfController.h	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Controller/DwfController.h	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -117,7 +117,7 @@
     virtual void ApplyMapViewCommands(MgMap* map, MgPropertyCollection* \
mapViewCommands);  
 CLASS_ID:
-    static const INT32 m_cls_id = MapGuide_MapLayer_AdvController;
+    static const INT32 m_cls_id = INTERNAL_MapGuide_MapLayer_AdvController;
 
 private:
     typedef enum OperationType

Modified: trunk/MgDev/Common/MapGuideCommon/Controller/HtmlController.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Controller/HtmlController.h	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Controller/HtmlController.h	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -343,7 +343,7 @@
                                                                MgFeatureService* \
featureService);  
 CLASS_ID:
-    static const INT32 m_cls_id = MapGuide_MapLayer_ZcvController;
+    static const INT32 m_cls_id = INTERNAL_MapGuide_MapLayer_ZcvController;
 
 };
 

Modified: trunk/MgDev/Common/MapGuideCommon/Resources/mapguide_en.res
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Resources/mapguide_en.res	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Resources/mapguide_en.res	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -309,6 +309,7 @@
 MgMissingSchema                                       = No schema specified.
 MgMissingSrs                                          = No coordinate system \
specified.  MgNameNotFound                                        = The name was not \
found. +MgNoClassFactoryForId                                 = No registered class \
factory was found for class id: %1  MgNoDataFromRenderer                              \
= No data from renderer.  MgNoNameForObject                                     = No \
object found for name (%1)  MgNullArgument                                        = \
Null argument: %1

Modified: trunk/MgDev/Common/MapGuideCommon/Services/Command.cpp
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Services/Command.cpp	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Services/Command.cpp	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -121,7 +121,7 @@
 
     if (NULL != mgException)
     {
-        if (mgException->IsOfClass(MapGuide_Exception_MgConnectionFailedException))
+        if (mgException->GetExceptionCode() == \
MgExceptionCodes::MgConnectionFailedException)  {
             // The server didn't respond so it needs to be marked as unavailable in \
the list of servers.  // We will check to see if it can be made available later.
@@ -192,8 +192,8 @@
     if (NULL != mgException)
     {
         // Close the connection if the stream is corrupted or of newer version.
-        if (mgException->IsOfClass(Foundation_Exception_MgInvalidStreamHeaderException)
                
-         || mgException->IsOfClass(Foundation_Exception_MgStreamIoException))
+        if (mgException->GetExceptionCode() == \
MgExceptionCodes::MgInvalidStreamHeaderException || +            \
mgException->GetExceptionCode() == MgExceptionCodes::MgStreamIoException)  {
             connection->Close();
         }

Modified: trunk/MgDev/Common/MapGuideCommon/Services/ConnectionProperties.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Services/ConnectionProperties.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Services/ConnectionProperties.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -158,7 +158,7 @@
     INT32 m_port;
 
 CLASS_ID:
-    static const INT32 m_cls_id = MapGuide_Service_ConnectionProperties;
+    static const INT32 m_cls_id = INTERNAL_MapGuide_Service_ConnectionProperties;
 };
 
 #endif // MG_CONNECTION_PROPERTIES_H_

Modified: trunk/MgDev/Common/MapGuideCommon/Services/PrintLayout.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Services/PrintLayout.h	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Services/PrintLayout.h	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -209,7 +209,7 @@
     }
 
 CLASS_ID:
-    static const INT32 m_cls_id = MapGuide_MappingService_PrintLayout;
+    static const INT32 m_cls_id = INTERNAL_MapGuide_MappingService_PrintLayout;
 
 INTERNAL_API:
     /// Layout element constants

Modified: trunk/MgDev/Common/MapGuideCommon/Services/ServerConnection.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Services/ServerConnection.h	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Services/ServerConnection.h	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -213,7 +213,7 @@
     ///
     MgStreamHelper* GetMgStreamHelper();
 
-    static const INT32 m_cls_id = MapGuide_Service_ServerConnection;
+    static const INT32 m_cls_id = INTERNAL_MapGuide_Service_ServerConnection;
     static const time_t sm_kStaleTime;
     static ACE_Recursive_Thread_Mutex sm_mutex;
 

Modified: trunk/MgDev/Common/MapGuideCommon/Services/ServerInformation.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Services/ServerInformation.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Services/ServerInformation.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -427,7 +427,7 @@
 
 CLASS_ID:
 
-    static const INT32 m_cls_id = MapGuide_Service_ServerInformation;
+    static const INT32 m_cls_id = INTERNAL_MapGuide_Service_ServerInformation;
 };
 /// \endcond
 

Modified: trunk/MgDev/Common/MapGuideCommon/Services/SqlResult.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Services/SqlResult.h	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/Services/SqlResult.h	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -73,7 +73,7 @@
     Ptr<MgSqlDataReader>        m_reader;
 
 CLASS_ID:
-    static const INT32 m_cls_id = MapGuide_Service_SqlResult;
+    static const INT32 m_cls_id = INTERNAL_MapGuide_Service_SqlResult;
 
 };
 

Modified: trunk/MgDev/Common/MapGuideCommon/System/CryptographyManager.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/System/CryptographyManager.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/System/CryptographyManager.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -348,7 +348,7 @@
 
 CLASS_ID:
 
-    static const INT32 m_cls_id = Foundation_System_CryptographyManager;
+    static const INT32 m_cls_id = INTERNAL_Foundation_System_CryptographyManager;
 
 private:
 

Modified: trunk/MgDev/Common/MapGuideCommon/System/MapGuideCommonClassId.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/System/MapGuideCommonClassId.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/System/MapGuideCommonClassId.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -36,64 +36,64 @@
 //
 // NOTE: Although we removed these exceptions, we are keeping the ids in to prevent \
these ids from being  // accidentally used for new classes in the future
-#define MapGuide_Exception_MgAuthenticationFailedException              \
                MAPGUIDE_EXCEPTION_ID+0
-#define MapGuide_Exception_MgConnectionFailedException                  \
                MAPGUIDE_EXCEPTION_ID+1
-#define MapGuide_Exception_MgConnectionNotOpenException                 \
                MAPGUIDE_EXCEPTION_ID+2
-#define MapGuide_Exception_MgDbException                                \
                MAPGUIDE_EXCEPTION_ID+3
-#define MapGuide_Exception_MgDbXmlException                             \
                MAPGUIDE_EXCEPTION_ID+4
-#define MapGuide_Exception_MgDuplicateGroupException                    \
                MAPGUIDE_EXCEPTION_ID+5
-#define MapGuide_Exception_MgDuplicateNameException                     \
                MAPGUIDE_EXCEPTION_ID+6
-#define MapGuide_Exception_MgDuplicateParameterException                \
                MAPGUIDE_EXCEPTION_ID+7
-#define MapGuide_Exception_MgDuplicateRepositoryException               \
                MAPGUIDE_EXCEPTION_ID+8
-#define MapGuide_Exception_MgDuplicateRoleException                     \
                MAPGUIDE_EXCEPTION_ID+9
-#define MapGuide_Exception_MgDuplicateServerException                   \
                MAPGUIDE_EXCEPTION_ID+10
-#define MapGuide_Exception_MgDuplicateSessionException                  \
                MAPGUIDE_EXCEPTION_ID+11
-#define MapGuide_Exception_MgDuplicateUserException                     \
                MAPGUIDE_EXCEPTION_ID+12
-#define MapGuide_Exception_MgDwfException                               \
                MAPGUIDE_EXCEPTION_ID+13
-#define MapGuide_Exception_MgDwfSectionNotFoundException                \
                MAPGUIDE_EXCEPTION_ID+14
-#define MapGuide_Exception_MgDwfSectionResourceNotFoundException        \
                MAPGUIDE_EXCEPTION_ID+15
-#define MapGuide_Exception_MgEndOfStreamException                       \
                MAPGUIDE_EXCEPTION_ID+16
-#define MapGuide_Exception_MgEvaluationExpiredException                 \
                MAPGUIDE_EXCEPTION_ID+17
-#define MapGuide_Exception_MgGroupNotFoundException                     \
                MAPGUIDE_EXCEPTION_ID+18
-#define MapGuide_Exception_MgInvalidDwfPackageException                 \
                MAPGUIDE_EXCEPTION_ID+19
-#define MapGuide_Exception_MgInvalidDwfSectionException                 \
                MAPGUIDE_EXCEPTION_ID+20
-#define MapGuide_Exception_MgInvalidFeatureSourceException              \
                MAPGUIDE_EXCEPTION_ID+21
-#define MapGuide_Exception_MgInvalidIpAddressException                  \
                MAPGUIDE_EXCEPTION_ID+22
-#define MapGuide_Exception_MgInvalidLicenseException                    \
                MAPGUIDE_EXCEPTION_ID+23
-#define MapGuide_Exception_MgInvalidLogEntryException                   \
                MAPGUIDE_EXCEPTION_ID+24
-#define MapGuide_Exception_MgInvalidOperationVersionException           \
                MAPGUIDE_EXCEPTION_ID+25
-#define MapGuide_Exception_MgInvalidPasswordException                   \
                MAPGUIDE_EXCEPTION_ID+26
-#define MapGuide_Exception_MgInvalidPrintLayoutFontSizeUnitsException   \
                MAPGUIDE_EXCEPTION_ID+27
-#define MapGuide_Exception_MgInvalidPrintLayoutPositionUnitsException   \
                MAPGUIDE_EXCEPTION_ID+28
-#define MapGuide_Exception_MgInvalidPrintLayoutSizeUnitsException       \
                MAPGUIDE_EXCEPTION_ID+29
-#define MapGuide_Exception_MgInvalidSerialNumberException               \
                MAPGUIDE_EXCEPTION_ID+30
-#define MapGuide_Exception_MgInvalidServerNameException                 \
                MAPGUIDE_EXCEPTION_ID+31
-#define MapGuide_Exception_MgLicenseException                           \
                MAPGUIDE_EXCEPTION_ID+32
-#define MapGuide_Exception_MgLicenseExpiredException                    \
                MAPGUIDE_EXCEPTION_ID+33
-#define MapGuide_Exception_MgLogOpenFailedException                     \
                MAPGUIDE_EXCEPTION_ID+34
-#define MapGuide_Exception_MgOperationProcessingException               \
                MAPGUIDE_EXCEPTION_ID+35
-#define MapGuide_Exception_MgParameterNotFoundException                 \
                MAPGUIDE_EXCEPTION_ID+36
-#define MapGuide_Exception_MgPathTooLongException                       \
                MAPGUIDE_EXCEPTION_ID+37
-#define MapGuide_Exception_MgPermissionDeniedException                  \
                MAPGUIDE_EXCEPTION_ID+38
-#define MapGuide_Exception_MgPortNotAvailableException                  \
                MAPGUIDE_EXCEPTION_ID+39
-#define MapGuide_Exception_MgPrintToScaleModeNotSelectedException       \
                MAPGUIDE_EXCEPTION_ID+40
-#define MapGuide_Exception_MgRepositoryCreationFailedException          \
                MAPGUIDE_EXCEPTION_ID+41
-#define MapGuide_Exception_MgRepositoryNotFoundException                \
                MAPGUIDE_EXCEPTION_ID+42
-#define MapGuide_Exception_MgRepositoryNotOpenException                 \
                MAPGUIDE_EXCEPTION_ID+43
-#define MapGuide_Exception_MgRepositoryOpenFailedException              \
                MAPGUIDE_EXCEPTION_ID+44
-#define MapGuide_Exception_MgRoleNotFoundException                      \
                MAPGUIDE_EXCEPTION_ID+45
-#define MapGuide_Exception_MgServerNotFoundException                    \
                MAPGUIDE_EXCEPTION_ID+46
-#define MapGuide_Exception_MgServerNotOnlineException                   \
                MAPGUIDE_EXCEPTION_ID+47
-#define MapGuide_Exception_MgSessionExpiredException                    \
                MAPGUIDE_EXCEPTION_ID+48
-#define MapGuide_Exception_MgUnauthorizedAccessException                \
                MAPGUIDE_EXCEPTION_ID+49
-#define MapGuide_Exception_MgUriFormatException                         \
                MAPGUIDE_EXCEPTION_ID+50
-#define MapGuide_Exception_MgStylizeLayerFailedException                \
                MAPGUIDE_EXCEPTION_ID+51
-#define MapGuide_Exception_MgSessionNotFoundException                   \
                MAPGUIDE_EXCEPTION_ID+52
-#define MapGuide_Exception_MgUnsupportedProviderThreadModelException    \
                MAPGUIDE_EXCEPTION_ID+53
-#define MapGuide_Exception_MgAllProviderConnectionsUsedException        \
                MAPGUIDE_EXCEPTION_ID+54
-#define MapGuide_Exception_MgRasterTransformationNotSupportedException  \
                MAPGUIDE_EXCEPTION_ID+55
-#define MapGuide_Exception_MgUnknownTileProviderException               \
                MAPGUIDE_EXCEPTION_ID+56
-#define MapGuide_Exception_MgUnsupportedTileProviderException           \
MAPGUIDE_EXCEPTION_ID+57 +#define \
UNUSED_MapGuide_Exception_MgAuthenticationFailedException              \
MAPGUIDE_EXCEPTION_ID+0 +#define \
UNUSED_MapGuide_Exception_MgConnectionFailedException                  \
MAPGUIDE_EXCEPTION_ID+1 +#define \
UNUSED_MapGuide_Exception_MgConnectionNotOpenException                 \
MAPGUIDE_EXCEPTION_ID+2 +#define UNUSED_MapGuide_Exception_MgDbException              \
MAPGUIDE_EXCEPTION_ID+3 +#define UNUSED_MapGuide_Exception_MgDbXmlException           \
MAPGUIDE_EXCEPTION_ID+4 +#define UNUSED_MapGuide_Exception_MgDuplicateGroupException  \
MAPGUIDE_EXCEPTION_ID+5 +#define UNUSED_MapGuide_Exception_MgDuplicateNameException   \
MAPGUIDE_EXCEPTION_ID+6 +#define \
UNUSED_MapGuide_Exception_MgDuplicateParameterException                \
MAPGUIDE_EXCEPTION_ID+7 +#define \
UNUSED_MapGuide_Exception_MgDuplicateRepositoryException               \
MAPGUIDE_EXCEPTION_ID+8 +#define UNUSED_MapGuide_Exception_MgDuplicateRoleException   \
MAPGUIDE_EXCEPTION_ID+9 +#define UNUSED_MapGuide_Exception_MgDuplicateServerException \
MAPGUIDE_EXCEPTION_ID+10 +#define \
UNUSED_MapGuide_Exception_MgDuplicateSessionException                  \
MAPGUIDE_EXCEPTION_ID+11 +#define UNUSED_MapGuide_Exception_MgDuplicateUserException  \
MAPGUIDE_EXCEPTION_ID+12 +#define UNUSED_MapGuide_Exception_MgDwfException            \
MAPGUIDE_EXCEPTION_ID+13 +#define \
UNUSED_MapGuide_Exception_MgDwfSectionNotFoundException                \
MAPGUIDE_EXCEPTION_ID+14 +#define \
UNUSED_MapGuide_Exception_MgDwfSectionResourceNotFoundException        \
MAPGUIDE_EXCEPTION_ID+15 +#define UNUSED_MapGuide_Exception_MgEndOfStreamException    \
MAPGUIDE_EXCEPTION_ID+16 +#define \
UNUSED_MapGuide_Exception_MgEvaluationExpiredException                 \
MAPGUIDE_EXCEPTION_ID+17 +#define UNUSED_MapGuide_Exception_MgGroupNotFoundException  \
MAPGUIDE_EXCEPTION_ID+18 +#define \
UNUSED_MapGuide_Exception_MgInvalidDwfPackageException                 \
MAPGUIDE_EXCEPTION_ID+19 +#define \
UNUSED_MapGuide_Exception_MgInvalidDwfSectionException                 \
MAPGUIDE_EXCEPTION_ID+20 +#define \
UNUSED_MapGuide_Exception_MgInvalidFeatureSourceException              \
MAPGUIDE_EXCEPTION_ID+21 +#define \
UNUSED_MapGuide_Exception_MgInvalidIpAddressException                  \
MAPGUIDE_EXCEPTION_ID+22 +#define UNUSED_MapGuide_Exception_MgInvalidLicenseException \
MAPGUIDE_EXCEPTION_ID+23 +#define \
UNUSED_MapGuide_Exception_MgInvalidLogEntryException                   \
MAPGUIDE_EXCEPTION_ID+24 +#define \
UNUSED_MapGuide_Exception_MgInvalidOperationVersionException           \
MAPGUIDE_EXCEPTION_ID+25 +#define \
UNUSED_MapGuide_Exception_MgInvalidPasswordException                   \
MAPGUIDE_EXCEPTION_ID+26 +#define \
UNUSED_MapGuide_Exception_MgInvalidPrintLayoutFontSizeUnitsException   \
MAPGUIDE_EXCEPTION_ID+27 +#define \
UNUSED_MapGuide_Exception_MgInvalidPrintLayoutPositionUnitsException   \
MAPGUIDE_EXCEPTION_ID+28 +#define \
UNUSED_MapGuide_Exception_MgInvalidPrintLayoutSizeUnitsException       \
MAPGUIDE_EXCEPTION_ID+29 +#define \
UNUSED_MapGuide_Exception_MgInvalidSerialNumberException               \
MAPGUIDE_EXCEPTION_ID+30 +#define \
UNUSED_MapGuide_Exception_MgInvalidServerNameException                 \
MAPGUIDE_EXCEPTION_ID+31 +#define UNUSED_MapGuide_Exception_MgLicenseException        \
MAPGUIDE_EXCEPTION_ID+32 +#define UNUSED_MapGuide_Exception_MgLicenseExpiredException \
MAPGUIDE_EXCEPTION_ID+33 +#define UNUSED_MapGuide_Exception_MgLogOpenFailedException  \
MAPGUIDE_EXCEPTION_ID+34 +#define \
UNUSED_MapGuide_Exception_MgOperationProcessingException               \
MAPGUIDE_EXCEPTION_ID+35 +#define \
UNUSED_MapGuide_Exception_MgParameterNotFoundException                 \
MAPGUIDE_EXCEPTION_ID+36 +#define UNUSED_MapGuide_Exception_MgPathTooLongException    \
MAPGUIDE_EXCEPTION_ID+37 +#define \
UNUSED_MapGuide_Exception_MgPermissionDeniedException                  \
MAPGUIDE_EXCEPTION_ID+38 +#define \
UNUSED_MapGuide_Exception_MgPortNotAvailableException                  \
MAPGUIDE_EXCEPTION_ID+39 +#define \
UNUSED_MapGuide_Exception_MgPrintToScaleModeNotSelectedException       \
MAPGUIDE_EXCEPTION_ID+40 +#define \
UNUSED_MapGuide_Exception_MgRepositoryCreationFailedException          \
MAPGUIDE_EXCEPTION_ID+41 +#define \
UNUSED_MapGuide_Exception_MgRepositoryNotFoundException                \
MAPGUIDE_EXCEPTION_ID+42 +#define \
UNUSED_MapGuide_Exception_MgRepositoryNotOpenException                 \
MAPGUIDE_EXCEPTION_ID+43 +#define \
UNUSED_MapGuide_Exception_MgRepositoryOpenFailedException              \
MAPGUIDE_EXCEPTION_ID+44 +#define UNUSED_MapGuide_Exception_MgRoleNotFoundException   \
MAPGUIDE_EXCEPTION_ID+45 +#define UNUSED_MapGuide_Exception_MgServerNotFoundException \
MAPGUIDE_EXCEPTION_ID+46 +#define \
UNUSED_MapGuide_Exception_MgServerNotOnlineException                   \
MAPGUIDE_EXCEPTION_ID+47 +#define UNUSED_MapGuide_Exception_MgSessionExpiredException \
MAPGUIDE_EXCEPTION_ID+48 +#define \
UNUSED_MapGuide_Exception_MgUnauthorizedAccessException                \
MAPGUIDE_EXCEPTION_ID+49 +#define UNUSED_MapGuide_Exception_MgUriFormatException      \
MAPGUIDE_EXCEPTION_ID+50 +#define \
UNUSED_MapGuide_Exception_MgStylizeLayerFailedException                \
MAPGUIDE_EXCEPTION_ID+51 +#define \
UNUSED_MapGuide_Exception_MgSessionNotFoundException                   \
MAPGUIDE_EXCEPTION_ID+52 +#define \
UNUSED_MapGuide_Exception_MgUnsupportedProviderThreadModelException    \
MAPGUIDE_EXCEPTION_ID+53 +#define \
UNUSED_MapGuide_Exception_MgAllProviderConnectionsUsedException        \
MAPGUIDE_EXCEPTION_ID+54 +#define \
UNUSED_MapGuide_Exception_MgRasterTransformationNotSupportedException  \
MAPGUIDE_EXCEPTION_ID+55 +#define \
UNUSED_MapGuide_Exception_MgUnknownTileProviderException               \
MAPGUIDE_EXCEPTION_ID+56 +#define \
UNUSED_MapGuide_Exception_MgUnsupportedTileProviderException           \
MAPGUIDE_EXCEPTION_ID+57  
 
 // MapLayer API
@@ -100,22 +100,22 @@
 #define MapGuide_MapLayer_Map           MAPGUIDE_MAPLAYER_ID+0
 #define MapGuide_MapLayer_Layer         MAPGUIDE_MAPLAYER_ID+1
 #define MapGuide_MapLayer_Selection     MAPGUIDE_MAPLAYER_ID+2
-#define MapGuide_MapLayer_Controller    MAPGUIDE_MAPLAYER_ID+3
-#define MapGuide_MapLayer_AdvController MAPGUIDE_MAPLAYER_ID+4
-#define MapGuide_MapLayer_ZcvController MAPGUIDE_MAPLAYER_ID+5
+#define INTERNAL_MapGuide_MapLayer_Controller    MAPGUIDE_MAPLAYER_ID+3
+#define INTERNAL_MapGuide_MapLayer_AdvController MAPGUIDE_MAPLAYER_ID+4
+#define INTERNAL_MapGuide_MapLayer_ZcvController MAPGUIDE_MAPLAYER_ID+5
 
 
 //Basic Service functionality
-#define MapGuide_Service_ServerConnection               MAPGUIDE_SERVICE_ID+0
+#define INTERNAL_MapGuide_Service_ServerConnection      MAPGUIDE_SERVICE_ID+0
 #define MapGuide_Service_SiteConnection                 MAPGUIDE_SERVICE_ID+1
-#define MapGuide_Service_ConnectionProperties           MAPGUIDE_SERVICE_ID+2
-#define MapGuide_Service_ServerInformation              MAPGUIDE_SERVICE_ID+3
+#define INTERNAL_MapGuide_Service_ConnectionProperties  MAPGUIDE_SERVICE_ID+2
+#define INTERNAL_MapGuide_Service_ServerInformation     MAPGUIDE_SERVICE_ID+3
 #define MapGuide_Service_PackageStatusInformation       MAPGUIDE_SERVICE_ID+4
 #define MapGuide_Service_Site                           MAPGUIDE_SERVICE_ID+5
 #define MapGuide_Service_UserInformation                MAPGUIDE_SERVICE_ID+6
 #define MapGuide_Service_ServerAdmin                    MAPGUIDE_SERVICE_ID+7
 #define MapGuide_Service_SiteInfo                       MAPGUIDE_SERVICE_ID+8
-#define MapGuide_Service_SqlResult                      MAPGUIDE_SERVICE_ID+9
+#define INTERNAL_MapGuide_Service_SqlResult             MAPGUIDE_SERVICE_ID+9
 
 // Drawing Service
 #define MapGuide_DrawingService_DrawingService          MAPGUIDE_DRAWINGSERVICE_ID+0
@@ -124,7 +124,7 @@
 #define MapGuide_MappingService_MappingService                      \
MAPGUIDE_MAPPINGSERVICE_ID+0  #define MapGuide_MappingService_DwfVersion              \
MAPGUIDE_MAPPINGSERVICE_ID+1  #define MapGuide_MappingService_PlotSpecification       \
                MAPGUIDE_MAPPINGSERVICE_ID+2
-#define MapGuide_MappingService_PrintLayout                         \
MAPGUIDE_MAPPINGSERVICE_ID+3 +#define INTERNAL_MapGuide_MappingService_PrintLayout    \
MAPGUIDE_MAPPINGSERVICE_ID+3  #define MapGuide_MappingService_Layout                  \
MAPGUIDE_MAPPINGSERVICE_ID+4  #define MapGuide_MappingService_MapPlot                 \
MAPGUIDE_MAPPINGSERVICE_ID+5  #define MapGuide_MappingService_MapPlotCollection       \
MAPGUIDE_MAPPINGSERVICE_ID+6 @@ -136,9 +136,8 @@
 #define MapGuide_RenderingService_Metatile                          \
MAPGUIDE_RENDERINGSERVICE_ID+3  
 // Resource Service
-#define MapGuide_ResourceService_ResourceService                    \
MAPGUIDE_RESOURCESERVICE_ID+0 +#define PROXY_MapGuide_ResourceService_ResourceService \
MAPGUIDE_RESOURCESERVICE_ID+0  
-
 // Tile Service
 #define MapGuide_TileService_TileService                            \
MAPGUIDE_TILESERVICE_ID+0  

Modified: trunk/MgDev/Common/MapGuideCommon/System/MapGuideCommonFactory.cpp
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/System/MapGuideCommonFactory.cpp	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/MapGuideCommon/System/MapGuideCommonFactory.cpp	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -39,7 +39,7 @@
     fact->Register(MapGuide_MapLayer_Map, MgMap::CreateObject);
     fact->Register(MapGuide_MapLayer_Layer, MgLayer::CreateObject);
     fact->Register(MapGuide_MapLayer_Selection, MgSelection::CreateObject);
-    fact->Register(MapGuide_Service_ServerInformation, \
MgServerInformation::CreateObject); +    \
fact->Register(INTERNAL_MapGuide_Service_ServerInformation, \
                MgServerInformation::CreateObject);
     fact->Register(MapGuide_Service_PackageStatusInformation, \
                MgPackageStatusInformation::CreateObject);
     fact->Register(MapGuide_Service_UserInformation, \
MgUserInformation::CreateObject);  fact->Register(MapGuide_Service_SiteInfo, \
MgSiteInfo::CreateObject); @@ -49,14 +49,14 @@
     fact->Register(PlatformBase_FeatureService_SqlDataReader, \
                MgProxySqlDataReader::CreateObject);
     fact->Register(MapGuide_MappingService_DwfVersion, MgDwfVersion::CreateObject);
     fact->Register(MapGuide_MappingService_PlotSpecification, \
                MgPlotSpecification::CreateObject);
-    fact->Register(MapGuide_MappingService_PrintLayout, \
MgPrintLayout::CreateObject); +    \
fact->Register(INTERNAL_MapGuide_MappingService_PrintLayout, \
                MgPrintLayout::CreateObject);
     fact->Register(MapGuide_MappingService_Layout, MgLayout::CreateObject);
     fact->Register(MapGuide_MappingService_MapPlotCollection, \
                MgMapPlotCollection::CreateObject);
     fact->Register(MapGuide_RenderingService_FeatureInformation, \
                MgFeatureInformation::CreateObject);
     fact->Register(MapGuide_RenderingService_RenderingOptions, \
                MgRenderingOptions::CreateObject);
     fact->Register(MapGuide_RenderingService_Metatile, MgMetatile::CreateObject);
-    fact->Register(PlatformBase_FeatureService_FeatureTransaction, \
                MgProxyFeatureTransaction::CreateObject);
-    fact->Register(MapGuide_Service_SqlResult, MgSqlResult::CreateObject);
+    fact->Register(PlatformBase_FeatureService_Transaction, \
MgProxyFeatureTransaction::CreateObject); +    \
fact->Register(INTERNAL_MapGuide_Service_SqlResult, MgSqlResult::CreateObject);  
 
     MgServiceRegistry* registry = MgServiceRegistry::GetInstance();

Modified: trunk/MgDev/Common/PlatformBase/Data/Margin.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Data/Margin.h	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Data/Margin.h	2022-10-10 10:00:53 UTC (rev 9973)
@@ -167,7 +167,7 @@
     virtual void Dispose();
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_Data_Margin;
+    static const INT32 m_cls_id = INTERNAL_PlatformBase_Data_Margin;
 
 private:
     //-------------------------------------------------------

Modified: trunk/MgDev/Common/PlatformBase/Data/Point3D.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Data/Point3D.h	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Data/Point3D.h	2022-10-10 10:00:53 UTC (rev 9973)
@@ -233,7 +233,7 @@
     virtual void Dispose();
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_Data_Point3D;
+    static const INT32 m_cls_id = INTERNAL_PlatformBase_Data_Point3D;
 
 private:
     //-------------------------------------------------------

Modified: trunk/MgDev/Common/PlatformBase/Data/SerializableCollection.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Data/SerializableCollection.h	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Data/SerializableCollection.h	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -229,7 +229,7 @@
     Ptr<MgDisposableCollection> m_collection;
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_Collection_SerializableCollection;
+    static const INT32 m_cls_id = \
INTERNAL_PlatformBase_Collection_SerializableCollection;  };
 /// \endcond
 

Modified: trunk/MgDev/Common/PlatformBase/Data/Size2D.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Data/Size2D.h	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Data/Size2D.h	2022-10-10 10:00:53 UTC (rev 9973)
@@ -153,7 +153,7 @@
     virtual void Dispose();
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_Data_Size2D;
+    static const INT32 m_cls_id = INTERNAL_PlatformBase_Data_Size2D;
 
 private:
     //-------------------------------------------------------

Modified: trunk/MgDev/Common/PlatformBase/Data/Vector3D.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Data/Vector3D.h	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Common/PlatformBase/Data/Vector3D.h	2022-10-10 10:00:53 UTC (rev \
9973) @@ -233,7 +233,7 @@
     virtual void Dispose();
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_Data_Vector3D;
+    static const INT32 m_cls_id = INTERNAL_PlatformBase_Data_Vector3D;
 
 private:
     //-------------------------------------------------------

Modified: trunk/MgDev/Common/PlatformBase/Services/FeatureSet.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/FeatureSet.h	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/FeatureSet.h	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -255,7 +255,7 @@
     Ptr<MgClassDefinition>  m_classDefinition;
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_FeatureService_FeatureSet;
+    static const INT32 m_cls_id = INTERNAL_PlatformBase_FeatureService_FeatureSet;
 };
 /// \endcond
 

Modified: trunk/MgDev/Common/PlatformBase/Services/LockFeatures.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/LockFeatures.h	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/LockFeatures.h	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -140,7 +140,7 @@
     void Dispose();
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_FeatureService_LockFeatures;
+    static const INT32 m_cls_id = INTERNAL_PlatformBase_FeatureService_LockFeatures;
 
 private:
     STRING m_className;

Modified: trunk/MgDev/Common/PlatformBase/Services/LongTransactionData.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/LongTransactionData.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/LongTransactionData.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -81,7 +81,7 @@
     }
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_FeatureService_LongTransactionData;
+    static const INT32 m_cls_id = \
INTERNAL_PlatformBase_FeatureService_LongTransactionData;  };
 /// \endcond
 

Modified: trunk/MgDev/Common/PlatformBase/Services/PlatformBaseClassId.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PlatformBaseClassId.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PlatformBaseClassId.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -32,7 +32,9 @@
 // Platform Collection
 #define PlatformBase_Collection_IntCollection                       \
PLATFORMBASE_COLLECTION_ID+0  #define \
PlatformBase_Collection_PropertyDefinitionCollection        \
                PLATFORMBASE_COLLECTION_ID+1
-#define PlatformBase_Collection_SerializableCollection              \
PLATFORMBASE_COLLECTION_ID+2 +// This class has the markings of a class that should \
be in the MapGuide public API surface (usages +// of EXTERNAL_API), but it isn't so \
we'll treat as internal +#define \
INTERNAL_PlatformBase_Collection_SerializableCollection     \
PLATFORMBASE_COLLECTION_ID+2  #define \
PlatformBase_Collection_StringPropertyCollection            \
PLATFORMBASE_COLLECTION_ID+3  #define PlatformBase_Collection_ParameterCollection     \
PLATFORMBASE_COLLECTION_ID+4  
@@ -49,40 +51,40 @@
 #define PlatformBase_Property_Int32Property                         \
PLATFORMBASE_DATA_ID+9  #define PlatformBase_Property_Int64Property                   \
PLATFORMBASE_DATA_ID+10  #define PlatformBase_Property_SingleProperty                 \
                PLATFORMBASE_DATA_ID+11
-#define PlatformBase_Data_Point3D                                   \
                PLATFORMBASE_DATA_ID+12
-#define PlatformBase_Data_Vector3D                                  \
                PLATFORMBASE_DATA_ID+13
-#define PlatformBase_Data_Size2D                                    \
                PLATFORMBASE_DATA_ID+14
-#define PlatformBase_Data_Margin                                    \
PLATFORMBASE_DATA_ID+15 +#define INTERNAL_PlatformBase_Data_Point3D                   \
PLATFORMBASE_DATA_ID+12 +#define INTERNAL_PlatformBase_Data_Vector3D                  \
PLATFORMBASE_DATA_ID+13 +#define INTERNAL_PlatformBase_Data_Size2D                    \
PLATFORMBASE_DATA_ID+14 +#define INTERNAL_PlatformBase_Data_Margin                    \
PLATFORMBASE_DATA_ID+15  
 // Platform Exceptions
 //
 // NOTE: Although we removed these exceptions, we are keeping the ids in to prevent \
these ids from being  // accidentally used for new classes in the future
-#define PlatformBase_Exception_MgArrayTypeMismatchException                 \
                PLATFORMBASE_EXCEPTION_ID+0
-#define PlatformBase_Exception_MgDuplicateResourceDataException             \
                PLATFORMBASE_EXCEPTION_ID+1
-#define PlatformBase_Exception_MgDuplicateResourceException                 \
                PLATFORMBASE_EXCEPTION_ID+2
-#define PlatformBase_Exception_MgEmptyFeatureSetException                   \
                PLATFORMBASE_EXCEPTION_ID+3
-#define PlatformBase_Exception_MgFdoException                               \
                PLATFORMBASE_EXCEPTION_ID+4
-#define PlatformBase_Exception_MgFeatureServiceException                    \
                PLATFORMBASE_EXCEPTION_ID+5
-#define PlatformBase_Exception_MgInvalidLayerDefinitionException            \
                PLATFORMBASE_EXCEPTION_ID+6
-#define PlatformBase_Exception_MgInvalidMapDefinitionException              \
                PLATFORMBASE_EXCEPTION_ID+7
-#define PlatformBase_Exception_MgInvalidRepositoryNameException             \
                PLATFORMBASE_EXCEPTION_ID+8
-#define PlatformBase_Exception_MgInvalidRepositoryTypeException             \
                PLATFORMBASE_EXCEPTION_ID+9
-#define PlatformBase_Exception_MgInvalidResourceDataNameException           \
                PLATFORMBASE_EXCEPTION_ID+10
-#define PlatformBase_Exception_MgInvalidResourceDataTypeException           \
                PLATFORMBASE_EXCEPTION_ID+11
-#define PlatformBase_Exception_MgInvalidResourceNameException               \
                PLATFORMBASE_EXCEPTION_ID+12
-#define PlatformBase_Exception_MgInvalidResourcePathException               \
                PLATFORMBASE_EXCEPTION_ID+13
-#define PlatformBase_Exception_MgInvalidResourcePreProcessingTypeException  \
                PLATFORMBASE_EXCEPTION_ID+14
-#define PlatformBase_Exception_MgInvalidResourceTypeException               \
                PLATFORMBASE_EXCEPTION_ID+15
-#define PlatformBase_Exception_MgInvalidSymbolDefinitionException           \
                PLATFORMBASE_EXCEPTION_ID+16
-#define PlatformBase_Exception_MgLayerNotFoundException                     \
                PLATFORMBASE_EXCEPTION_ID+17
-#define PlatformBase_Exception_MgResourceBusyException                      \
                PLATFORMBASE_EXCEPTION_ID+18
-#define PlatformBase_Exception_MgResourceDataNotFoundException              \
                PLATFORMBASE_EXCEPTION_ID+19
-#define PlatformBase_Exception_MgResourceNotFoundException                  \
                PLATFORMBASE_EXCEPTION_ID+20
-#define PlatformBase_Exception_MgServiceNotAvailableException               \
                PLATFORMBASE_EXCEPTION_ID+21
-#define PlatformBase_Exception_MgServiceNotSupportedException               \
                PLATFORMBASE_EXCEPTION_ID+22
-#define PlatformBase_Exception_MgUserNotFoundException                      \
                PLATFORMBASE_EXCEPTION_ID+23
-#define PlatformBase_Exception_MgInvalidWatermarkDefinitionException            \
PLATFORMBASE_EXCEPTION_ID+24 +#define \
UNUSED_PlatformBase_Exception_MgArrayTypeMismatchException                 \
PLATFORMBASE_EXCEPTION_ID+0 +#define \
UNUSED_PlatformBase_Exception_MgDuplicateResourceDataException             \
PLATFORMBASE_EXCEPTION_ID+1 +#define \
UNUSED_PlatformBase_Exception_MgDuplicateResourceException                 \
PLATFORMBASE_EXCEPTION_ID+2 +#define \
UNUSED_PlatformBase_Exception_MgEmptyFeatureSetException                   \
PLATFORMBASE_EXCEPTION_ID+3 +#define UNUSED_PlatformBase_Exception_MgFdoException     \
PLATFORMBASE_EXCEPTION_ID+4 +#define \
UNUSED_PlatformBase_Exception_MgFeatureServiceException                    \
PLATFORMBASE_EXCEPTION_ID+5 +#define \
UNUSED_PlatformBase_Exception_MgInvalidLayerDefinitionException            \
PLATFORMBASE_EXCEPTION_ID+6 +#define \
UNUSED_PlatformBase_Exception_MgInvalidMapDefinitionException              \
PLATFORMBASE_EXCEPTION_ID+7 +#define \
UNUSED_PlatformBase_Exception_MgInvalidRepositoryNameException             \
PLATFORMBASE_EXCEPTION_ID+8 +#define \
UNUSED_PlatformBase_Exception_MgInvalidRepositoryTypeException             \
PLATFORMBASE_EXCEPTION_ID+9 +#define \
UNUSED_PlatformBase_Exception_MgInvalidResourceDataNameException           \
PLATFORMBASE_EXCEPTION_ID+10 +#define \
UNUSED_PlatformBase_Exception_MgInvalidResourceDataTypeException           \
PLATFORMBASE_EXCEPTION_ID+11 +#define \
UNUSED_PlatformBase_Exception_MgInvalidResourceNameException               \
PLATFORMBASE_EXCEPTION_ID+12 +#define \
UNUSED_PlatformBase_Exception_MgInvalidResourcePathException               \
PLATFORMBASE_EXCEPTION_ID+13 +#define \
UNUSED_PlatformBase_Exception_MgInvalidResourcePreProcessingTypeException  \
PLATFORMBASE_EXCEPTION_ID+14 +#define \
UNUSED_PlatformBase_Exception_MgInvalidResourceTypeException               \
PLATFORMBASE_EXCEPTION_ID+15 +#define \
UNUSED_PlatformBase_Exception_MgInvalidSymbolDefinitionException           \
PLATFORMBASE_EXCEPTION_ID+16 +#define \
UNUSED_PlatformBase_Exception_MgLayerNotFoundException                     \
PLATFORMBASE_EXCEPTION_ID+17 +#define \
UNUSED_PlatformBase_Exception_MgResourceBusyException                      \
PLATFORMBASE_EXCEPTION_ID+18 +#define \
UNUSED_PlatformBase_Exception_MgResourceDataNotFoundException              \
PLATFORMBASE_EXCEPTION_ID+19 +#define \
UNUSED_PlatformBase_Exception_MgResourceNotFoundException                  \
PLATFORMBASE_EXCEPTION_ID+20 +#define \
UNUSED_PlatformBase_Exception_MgServiceNotAvailableException               \
PLATFORMBASE_EXCEPTION_ID+21 +#define \
UNUSED_PlatformBase_Exception_MgServiceNotSupportedException               \
PLATFORMBASE_EXCEPTION_ID+22 +#define \
UNUSED_PlatformBase_Exception_MgUserNotFoundException                      \
PLATFORMBASE_EXCEPTION_ID+23 +#define \
UNUSED_PlatformBase_Exception_MgInvalidWatermarkDefinitionException        \
PLATFORMBASE_EXCEPTION_ID+24  
 // MapLayer API
 #define PlatformBase_MapLayer_MapBase                               \
PLATFORMBASE_MAPLAYER_ID+0 @@ -95,34 +97,34 @@
 #define PlatformBase_MapLayer_SelectionBase                         \
PLATFORMBASE_MAPLAYER_ID+7  
 // Core Service
-#define PlatformBase_Service_ServerConnection                       \
PLATFORMBASE_CORESERVICE_ID+0 +#define UNUSED_PlatformBase_Service_ServerConnection   \
PLATFORMBASE_CORESERVICE_ID+0  #define PlatformBase_Service_Service                   \
                PLATFORMBASE_CORESERVICE_ID+1
-#define PlatformBase_Service_Stream                                 \
                PLATFORMBASE_CORESERVICE_ID+2
-#define PlatformBase_Service_MgSiteConnection                       \
                PLATFORMBASE_CORESERVICE_ID+3
-#define PlatformBase_Service_MgConnectionProperties                 \
                PLATFORMBASE_CORESERVICE_ID+4
-#define PlatformBase_Service_MgServerInformation                    \
                PLATFORMBASE_CORESERVICE_ID+5
-#define PlatformBase_Service_MgPackageStatusInformation             \
                PLATFORMBASE_CORESERVICE_ID+6
-#define PlatformBase_Service_Warning                                \
PLATFORMBASE_CORESERVICE_ID+7 +#define UNUSED_PlatformBase_Service_Stream             \
PLATFORMBASE_CORESERVICE_ID+2 +#define UNUSED_PlatformBase_Service_MgSiteConnection   \
PLATFORMBASE_CORESERVICE_ID+3 +#define \
UNUSED_PlatformBase_Service_MgConnectionProperties          \
PLATFORMBASE_CORESERVICE_ID+4 +#define \
UNUSED_PlatformBase_Service_MgServerInformation             \
PLATFORMBASE_CORESERVICE_ID+5 +#define \
UNUSED_PlatformBase_Service_MgPackageStatusInformation      \
PLATFORMBASE_CORESERVICE_ID+6 +#define PlatformBase_Service_Warnings                  \
PLATFORMBASE_CORESERVICE_ID+7  
 // Feature Service
 #define PlatformBase_FeatureService_ClassDefinition                 \
PLATFORMBASE_FEATURESERVICE_ID+0  #define \
PlatformBase_FeatureService_DataPropertyDefinition          \
                PLATFORMBASE_FEATURESERVICE_ID+1
-#define PlatformBase_FeatureService_FeatureConnection               \
PLATFORMBASE_FEATURESERVICE_ID+2 +#define \
UNUSED_PlatformBase_FeatureService_FeatureConnection        \
PLATFORMBASE_FEATURESERVICE_ID+2  #define PlatformBase_FeatureService_FeatureReader   \
PLATFORMBASE_FEATURESERVICE_ID+3  #define PlatformBase_FeatureService_FeatureService  \
                PLATFORMBASE_FEATURESERVICE_ID+4
-#define PlatformBase_FeatureService_FeatureServiceCommon            \
PLATFORMBASE_FEATURESERVICE_ID+5 +#define \
UNUSED_PlatformBase_FeatureService_FeatureServiceCommon     \
PLATFORMBASE_FEATURESERVICE_ID+5  #define \
PlatformBase_FeatureService_GeometricPropertyDefinition     \
PLATFORMBASE_FEATURESERVICE_ID+6  #define PlatformBase_FeatureService_Geometry        \
PLATFORMBASE_FEATURESERVICE_ID+7  #define \
PlatformBase_FeatureService_GeometryProperty                \
PLATFORMBASE_FEATURESERVICE_ID+8  #define \
PlatformBase_FeatureService_ObjectPropertyDefinition        \
                PLATFORMBASE_FEATURESERVICE_ID+9
-#define PlatformBase_FeatureService_SpatialContextExtentType        \
PLATFORMBASE_FEATURESERVICE_ID+10 +#define \
UNUSED_PlatformBase_FeatureService_SpatialContextExtentType \
PLATFORMBASE_FEATURESERVICE_ID+10  #define \
PlatformBase_FeatureService_SpatialContextReader            \
PLATFORMBASE_FEATURESERVICE_ID+11  #define PlatformBase_FeatureService_SqlDataReader  \
                PLATFORMBASE_FEATURESERVICE_ID+12
-#define PlatformBase_FeatureService_FeatureSet                      \
PLATFORMBASE_FEATURESERVICE_ID+13 +#define \
INTERNAL_PlatformBase_FeatureService_FeatureSet             \
PLATFORMBASE_FEATURESERVICE_ID+13  #define \
PlatformBase_FeatureService_FeatureProperty                 \
                PLATFORMBASE_FEATURESERVICE_ID+14
-#define PlatformBase_FeatureService_SpatialContextData              \
PLATFORMBASE_FEATURESERVICE_ID+15 +#define \
INTERNAL_PlatformBase_FeatureService_SpatialContextData     \
PLATFORMBASE_FEATURESERVICE_ID+15  #define \
PlatformBase_FeatureService_LongTransactionReader           \
                PLATFORMBASE_FEATURESERVICE_ID+16
-#define PlatformBase_FeatureService_LongTransactionData             \
PLATFORMBASE_FEATURESERVICE_ID+17 +#define \
INTERNAL_PlatformBase_FeatureService_LongTransactionData    \
PLATFORMBASE_FEATURESERVICE_ID+17  #define \
PlatformBase_FeatureService_RasterPropertyDefinition        \
PLATFORMBASE_FEATURESERVICE_ID+18  #define PlatformBase_FeatureService_Raster         \
PLATFORMBASE_FEATURESERVICE_ID+19  #define PlatformBase_FeatureService_RasterProperty \
PLATFORMBASE_FEATURESERVICE_ID+20 @@ -137,11 +139,13 @@
 #define PlatformBase_FeatureService_FeatureSchemaCollection         \
PLATFORMBASE_FEATURESERVICE_ID+29  #define \
PlatformBase_FeatureService_ClassDefinitionCollection       \
PLATFORMBASE_FEATURESERVICE_ID+30  #define \
PlatformBase_FeatureService_GwsFeatureReader                \
                PLATFORMBASE_FEATURESERVICE_ID+32
-#define PlatformBase_FeatureService_LockFeatures                    \
                PLATFORMBASE_FEATURESERVICE_ID+33
-#define PlatformBase_FeatureService_UnlockFeatures                  \
PLATFORMBASE_FEATURESERVICE_ID+34 +// Technically these 2 are public APIs, but this \
was never exposed to the MapGuide public API surface  +// in any targeted language, \
so we're treating this as internal until further notice +#define \
INTERNAL_PlatformBase_FeatureService_LockFeatures           \
PLATFORMBASE_FEATURESERVICE_ID+33 +#define \
INTERNAL_PlatformBase_FeatureService_UnlockFeatures         \
PLATFORMBASE_FEATURESERVICE_ID+34  #define \
PlatformBase_FeatureService_GeometryTypeInfo                \
PLATFORMBASE_FEATURESERVICE_ID+35  #define \
PlatformBase_FeatureService_FileFeatureSourceParams         \
                PLATFORMBASE_FEATURESERVICE_ID+36
-#define PlatformBase_FeatureService_FeatureTransaction              \
PLATFORMBASE_FEATURESERVICE_ID+37 +#define PlatformBase_FeatureService_Transaction    \
PLATFORMBASE_FEATURESERVICE_ID+37  #define PlatformBase_FeatureService_Parameter      \
PLATFORMBASE_FEATURESERVICE_ID+38  
 // Resource Service
@@ -150,11 +154,11 @@
 #define PlatformBase_ResourceService_Resource                       \
PLATFORMBASE_RESOURCESERVICE_ID+26  
 // Print Layout Service
-#define PlatformBase_PrintLayoutService_PrintLayoutServiceBase      \
                PLATFORMBASE_PRINTLAYOUTSERVICE_ID+0
-#define PlatformBase_PrintLayoutService_PrintLayoutBase             \
                PLATFORMBASE_PRINTLAYOUTSERVICE_ID+1
-#define PlatformBase_PrintLayoutService_PrintLayoutElementBase      \
                PLATFORMBASE_PRINTLAYOUTSERVICE_ID+2
-#define PlatformBase_PrintLayoutService_PrintLayoutElementCollection \
                PLATFORMBASE_PRINTLAYOUTSERVICE_ID+3
-#define PlatformBase_PrintLayoutService_MapViewportBase             \
                PLATFORMBASE_PRINTLAYOUTSERVICE_ID+4
-#define PlatformBase_PrintLayoutService_MapView                     \
                PLATFORMBASE_PRINTLAYOUTSERVICE_ID+5
-#define PlatformBase_PrintLayoutService_PropertyMapping             \
                PLATFORMBASE_PRINTLAYOUTSERVICE_ID+6
-#define PlatformBase_PrintLayoutService_PropertyMappingCollection   \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+7 +#define \
INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutServiceBase       \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+0 +#define \
INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutBase              \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+1 +#define \
INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutElementBase       \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+2 +#define \
INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutElementCollection \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+3 +#define \
INTERNAL_PlatformBase_PrintLayoutService_MapViewportBase              \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+4 +#define \
INTERNAL_PlatformBase_PrintLayoutService_MapView                      \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+5 +#define \
INTERNAL_PlatformBase_PrintLayoutService_PropertyMapping              \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+6 +#define \
INTERNAL_PlatformBase_PrintLayoutService_PropertyMappingCollection    \
PLATFORMBASE_PRINTLAYOUTSERVICE_ID+7

Modified: trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/MapView.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/MapView.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/MapView.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -150,7 +150,7 @@
     Ptr<MgVector3D> m_viewDirection;
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_PrintLayoutService_MapView;
+    static const INT32 m_cls_id = INTERNAL_PlatformBase_PrintLayoutService_MapView;
 };
 
 #endif

Modified: trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/MapViewportBase.h
 ===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/MapViewportBase.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/MapViewportBase.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -150,7 +150,7 @@
     Ptr<MgStringCollection> m_hiddenLayerNames;
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_PrintLayoutService_MapViewportBase;
+    static const INT32 m_cls_id = \
INTERNAL_PlatformBase_PrintLayoutService_MapViewportBase;  };
 
 #endif

Modified: trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutBase.h
 ===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutBase.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutBase.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -220,7 +220,7 @@
     virtual const char* GetResourceTypeName();
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_PrintLayoutService_PrintLayoutBase;
+    static const INT32 m_cls_id = \
INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutBase;  
 protected:
 

Modified: trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutElementBase.h
 ===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutElementBase.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutElementBase.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -334,7 +334,7 @@
     Ptr<MgPropertyMappingCollection> m_propertyMappings;
 
 CLASS_ID:
-    static const INT32 m_cls_id = \
PlatformBase_PrintLayoutService_PrintLayoutElementBase; +    static const INT32 \
m_cls_id = INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutElementBase;  };
 
 #endif

Modified: trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutElementCollection.h
 ===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutElementCollection.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutElementCollection.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -429,7 +429,7 @@
     }
 
 CLASS_ID:
-    static const INT32 m_cls_id = \
PlatformBase_PrintLayoutService_PrintLayoutElementCollection; +    static const INT32 \
m_cls_id = INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutElementCollection;  
 private:
     Ptr<MgNamedCollection> m_elements;

Modified: trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutServiceBase.h
 ===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutServiceBase.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PrintLayoutServiceBase.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -137,7 +137,7 @@
         CREFSTRING resourceXml);
 
 CLASS_ID:
-    static const INT32 m_cls_id = \
PlatformBase_PrintLayoutService_PrintLayoutServiceBase; +    static const INT32 \
m_cls_id = INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutServiceBase;  
 protected:
 

Modified: trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PropertyMapping.h
 ===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PropertyMapping.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PropertyMapping.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -123,7 +123,7 @@
     STRING m_targetProperty;
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_PrintLayoutService_PropertyMapping;
+    static const INT32 m_cls_id = \
INTERNAL_PlatformBase_PrintLayoutService_PropertyMapping;  };
 /// \}
 

Modified: trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PropertyMappingCollection.h
 ===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PropertyMappingCollection.h	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/PrintLayoutService/PropertyMappingCollection.h	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -357,7 +357,7 @@
     Ptr<MgDisposableCollection> m_dCollection;
 
 CLASS_ID:
-    static const INT32 m_cls_id = \
PlatformBase_PrintLayoutService_PropertyMappingCollection; +    static const INT32 \
m_cls_id = INTERNAL_PlatformBase_PrintLayoutService_PropertyMappingCollection;  };
 /// \}
 

Modified: trunk/MgDev/Common/PlatformBase/Services/ServiceRegistry.cpp
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/ServiceRegistry.cpp	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/ServiceRegistry.cpp	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -103,15 +103,15 @@
     //put in the map any class that can be serialized
     fact->Register(PlatformBase_Collection_IntCollection, \
                MgIntCollection::CreateObject);
     fact->Register(PlatformBase_Collection_PropertyDefinitionCollection, \
                MgPropertyDefinitionCollection::CreateObject);
-    fact->Register(PlatformBase_Collection_SerializableCollection, \
MgSerializableCollection::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_Collection_SerializableCollection, \
                MgSerializableCollection::CreateObject);
     fact->Register(PlatformBase_Collection_StringPropertyCollection, \
                MgStringPropertyCollection::CreateObject);
     fact->Register(PlatformBase_Collection_ParameterCollection, \
MgParameterCollection::CreateObject);  
     fact->Register(PlatformBase_Data_Color, MgColor::CreateObject);
-    fact->Register(PlatformBase_Data_Point3D, MgPoint3D::CreateObject);
-    fact->Register(PlatformBase_Data_Size2D, MgSize2D::CreateObject);
-    fact->Register(PlatformBase_Data_Margin, MgMargin::CreateObject);
-    fact->Register(PlatformBase_Data_Vector3D, MgVector3D::CreateObject);
+    fact->Register(INTERNAL_PlatformBase_Data_Point3D, MgPoint3D::CreateObject);
+    fact->Register(INTERNAL_PlatformBase_Data_Size2D, MgSize2D::CreateObject);
+    fact->Register(INTERNAL_PlatformBase_Data_Margin, MgMargin::CreateObject);
+    fact->Register(INTERNAL_PlatformBase_Data_Vector3D, MgVector3D::CreateObject);
 
     fact->Register(PlatformBase_Property_PropertyDefinition, \
                MgPropertyDefinition::CreateObject);
     fact->Register(PlatformBase_Property_BlobProperty, \
MgBlobProperty::CreateObject); @@ -125,7 +125,7 @@
     fact->Register(PlatformBase_Property_Int64Property, \
                MgInt64Property::CreateObject);
     fact->Register(PlatformBase_Property_SingleProperty, \
MgSingleProperty::CreateObject);  
-    fact->Register(PlatformBase_Service_Warning, MgWarnings::CreateObject);
+    fact->Register(PlatformBase_Service_Warnings, MgWarnings::CreateObject);
 
     fact->Register(PlatformBase_FeatureService_ClassDefinition, \
                MgClassDefinition::CreateObject);
     fact->Register(PlatformBase_FeatureService_DataPropertyDefinition, \
MgDataPropertyDefinition::CreateObject); @@ -134,11 +134,11 @@
     fact->Register(PlatformBase_FeatureService_ObjectPropertyDefinition, \
                MgObjectPropertyDefinition::CreateObject);
     fact->Register(PlatformBase_FeatureService_Parameter, \
                MgParameter::CreateObject);
     fact->Register(PlatformBase_FeatureService_SpatialContextReader, \
                MgSpatialContextReader::CreateObject);
-    fact->Register(PlatformBase_FeatureService_FeatureSet, \
MgFeatureSet::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_FeatureService_FeatureSet, \
                MgFeatureSet::CreateObject);
     fact->Register(PlatformBase_FeatureService_FeatureProperty, \
                MgFeatureProperty::CreateObject);
-    fact->Register(PlatformBase_FeatureService_SpatialContextData, \
MgSpatialContextData::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_FeatureService_SpatialContextData, \
                MgSpatialContextData::CreateObject);
     fact->Register(PlatformBase_FeatureService_LongTransactionReader, \
                MgLongTransactionReader::CreateObject);
-    fact->Register(PlatformBase_FeatureService_LongTransactionData, \
MgLongTransactionData::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_FeatureService_LongTransactionData, \
                MgLongTransactionData::CreateObject);
     fact->Register(PlatformBase_FeatureService_RasterPropertyDefinition, \
                MgRasterPropertyDefinition::CreateObject);
     fact->Register(PlatformBase_FeatureService_Raster, MgRaster::CreateObject);
     fact->Register(PlatformBase_FeatureService_RasterProperty, \
MgRasterProperty::CreateObject); @@ -148,8 +148,8 @@
     fact->Register(PlatformBase_FeatureService_DeleteFeatures, \
                MgDeleteFeatures::CreateObject);
     fact->Register(PlatformBase_FeatureService_InsertFeatures, \
                MgInsertFeatures::CreateObject);
     fact->Register(PlatformBase_FeatureService_UpdateFeatures, \
                MgUpdateFeatures::CreateObject);
-    fact->Register(PlatformBase_FeatureService_LockFeatures, \
                MgLockFeatures::CreateObject);
-    fact->Register(PlatformBase_FeatureService_UnlockFeatures, \
MgUnlockFeatures::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_FeatureService_LockFeatures, \
MgLockFeatures::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_FeatureService_UnlockFeatures, \
                MgUnlockFeatures::CreateObject);
     fact->Register(PlatformBase_FeatureService_FeatureSchema, \
                MgFeatureSchema::CreateObject);
     fact->Register(PlatformBase_FeatureService_FeatureSchemaCollection, \
                MgFeatureSchemaCollection::CreateObject);
     fact->Register(PlatformBase_FeatureService_ClassDefinitionCollection, \
MgClassDefinitionCollection::CreateObject); @@ -162,13 +162,13 @@
     fact->Register(PlatformBase_MapLayer_LayerBase, MgLayerBase::CreateObject);
     fact->Register(PlatformBase_MapLayer_SelectionBase, \
MgSelectionBase::CreateObject);  
-    fact->Register(PlatformBase_PrintLayoutService_PrintLayoutBase, \
                MgPrintLayoutBase::CreateObject);
-    fact->Register(PlatformBase_PrintLayoutService_PrintLayoutElementBase, \
                MgPrintLayoutElementBase::CreateObject);
-    fact->Register(PlatformBase_PrintLayoutService_MapViewportBase, \
                MgMapViewportBase::CreateObject);
-    fact->Register(PlatformBase_PrintLayoutService_MapView, \
                MgMapView::CreateObject);
-    fact->Register(PlatformBase_PrintLayoutService_PropertyMapping, \
                MgPropertyMapping::CreateObject);
-    fact->Register(PlatformBase_PrintLayoutService_PrintLayoutElementCollection, \
                MgPrintLayoutElementCollection::CreateObject);
-    fact->Register(PlatformBase_PrintLayoutService_PropertyMappingCollection, \
MgPropertyMappingCollection::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutBase, \
MgPrintLayoutBase::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutElementBase, \
MgPrintLayoutElementBase::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_PrintLayoutService_MapViewportBase, \
MgMapViewportBase::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_PrintLayoutService_MapView, \
MgMapView::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_PrintLayoutService_PropertyMapping, \
MgPropertyMapping::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_PrintLayoutService_PrintLayoutElementCollection, \
MgPrintLayoutElementCollection::CreateObject); +    \
fact->Register(INTERNAL_PlatformBase_PrintLayoutService_PropertyMappingCollection, \
MgPropertyMappingCollection::CreateObject);  
     return true;
 }

Modified: trunk/MgDev/Common/PlatformBase/Services/SpatialContextData.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/SpatialContextData.h	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/SpatialContextData.h	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -87,7 +87,7 @@
     }
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_FeatureService_SpatialContextData;
+    static const INT32 m_cls_id = \
INTERNAL_PlatformBase_FeatureService_SpatialContextData;  };
 /// \endcond
 

Modified: trunk/MgDev/Common/PlatformBase/Services/Transaction.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/Transaction.h	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/Transaction.h	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -109,7 +109,7 @@
     virtual ~MgTransaction();
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_FeatureService_FeatureTransaction;
+    static const INT32 m_cls_id = PlatformBase_FeatureService_Transaction;
 };
 
 #endif

Modified: trunk/MgDev/Common/PlatformBase/Services/UnlockFeatures.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/UnlockFeatures.h	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Common/PlatformBase/Services/UnlockFeatures.h	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -132,7 +132,7 @@
     INT32 GetClassId();
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_FeatureService_UnlockFeatures;
+    static const INT32 m_cls_id = \
INTERNAL_PlatformBase_FeatureService_UnlockFeatures;  
 private:
     STRING m_className;

Modified: trunk/MgDev/Common/PlatformBase/Services/Warnings.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/Warnings.h	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Common/PlatformBase/Services/Warnings.h	2022-10-10 10:00:53 UTC (rev \
9973) @@ -150,7 +150,7 @@
     Ptr<MgStringCollection> m_arguments;
 
 CLASS_ID:
-    static const INT32 m_cls_id = PlatformBase_Service_Warning;
+    static const INT32 m_cls_id = PlatformBase_Service_Warnings;
 };
 /// \}
 

Modified: trunk/MgDev/Oem/oem.sln
===================================================================
--- trunk/MgDev/Oem/oem.sln	2022-10-10 09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Oem/oem.sln	2022-10-10 10:00:53 UTC (rev 9973)
@@ -1,6 +1,6 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30709.132
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ACE", \
"ACE\ACE_wrappers\ace\ACE.vcxproj", "{BD537C9A-FECA-1BAD-6757-8A6363336A1C}"  \
EndProject

Modified: trunk/MgDev/Server/src/Common/Manager/LoadBalanceManager.cpp
===================================================================
--- trunk/MgDev/Server/src/Common/Manager/LoadBalanceManager.cpp	2022-10-10 09:50:27 \
                UTC (rev 9972)
+++ trunk/MgDev/Server/src/Common/Manager/LoadBalanceManager.cpp	2022-10-10 10:00:53 \
UTC (rev 9973) @@ -681,8 +681,8 @@
     {
         success = true;
     }
-    else if (!mgException->IsOfClass(MapGuide_Exception_MgConnectionFailedException)
-          && !mgException->IsOfClass(MapGuide_Exception_MgConnectionNotOpenException))
 +    else if (mgException->GetExceptionCode() != \
MgExceptionCodes::MgConnectionFailedException  +        && \
mgException->GetExceptionCode() != MgExceptionCodes::MgConnectionNotOpenException)  {
         MG_THROW()
     }

Modified: trunk/MgDev/Server/src/Common/Manager/ServiceManager.cpp
===================================================================
--- trunk/MgDev/Server/src/Common/Manager/ServiceManager.cpp	2022-10-10 09:50:27 UTC \
                (rev 9972)
+++ trunk/MgDev/Server/src/Common/Manager/ServiceManager.cpp	2022-10-10 10:00:53 UTC \
(rev 9973) @@ -197,8 +197,8 @@
 
     if (mgException != NULL)
     {
-        if (mgException->IsOfClass(MapGuide_Exception_MgConnectionFailedException)
-         || mgException->IsOfClass(MapGuide_Exception_MgConnectionNotOpenException))
+        if (mgException->GetExceptionCode() == \
MgExceptionCodes::MgConnectionFailedException || +            \
mgException->GetExceptionCode() == MgExceptionCodes::MgConnectionNotOpenException)  {
             // Remove the server from the queues. Server is down?
             for (INT32 i = 0; i < MgServerInformation::sm_knMaxNumberServices; ++i)
@@ -253,8 +253,8 @@
             MG_CATCH(L"MgServiceManager.CleanUpRepositories")
 
             if (mgException != NULL // dead locks?
-                && !mgException->IsOfClass(PlatformBase_Exception_MgResourceNotFoundException)
                
-                && !mgException->IsOfClass(MapGuide_Exception_MgRepositoryNotFoundException))
 +                && mgException->GetExceptionCode() != \
MgExceptionCodes::MgResourceNotFoundException +                && \
mgException->GetExceptionCode() != MgExceptionCodes::MgRepositoryNotFoundException)  \
{  undeletedSessions->Add(session);
             }

Modified: trunk/MgDev/Server/src/Core/OperationThread.cpp
===================================================================
--- trunk/MgDev/Server/src/Core/OperationThread.cpp	2022-10-10 09:50:27 UTC (rev \
                9972)
+++ trunk/MgDev/Server/src/Core/OperationThread.cpp	2022-10-10 10:00:53 UTC (rev \
9973) @@ -276,7 +276,7 @@
     {
         // The stream may contain garbage when the connection is dropped for
         // some reason. Suppress this exception to reduce noise in the log file.
-        if (!mgException->IsOfClass(Foundation_Exception_MgInvalidStreamHeaderException))
 +        if (mgException->GetExceptionCode() != \
MgExceptionCodes::MgInvalidStreamHeaderException)  {
             MgServerManager* serverManager = MgServerManager::GetInstance();
             STRING locale = (NULL == serverManager) ?

Modified: trunk/MgDev/Server/src/Services/Resource/ServerResourceService.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Resource/ServerResourceService.cpp	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/Server/src/Services/Resource/ServerResourceService.cpp	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -2617,8 +2617,8 @@
     {
         permitted = true;
     }
-    else if (!mgException->IsOfClass(MapGuide_Exception_MgPermissionDeniedException) \
                &&
-             !mgException->IsOfClass(MapGuide_Exception_MgUnauthorizedAccessException))
 +    else if (mgException->GetExceptionCode() != \
MgExceptionCodes::MgPermissionDeniedException +        && \
mgException->GetExceptionCode() != MgExceptionCodes::MgUnauthorizedAccessException)  \
{  MG_RESOURCE_SERVICE_THROW()
     }

Modified: trunk/MgDev/UnitTest/TestData/FeatureService/FeatureServiceTest.dump
===================================================================
--- trunk/MgDev/UnitTest/TestData/FeatureService/FeatureServiceTest.dump	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/FeatureService/FeatureServiceTest.dump	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -521,7 +521,7 @@
 ');
 INSERT INTO "HttpTestResults" VALUES('GetSpatialContexts on a SDF resource', 8010, \
'text/xml; charset=utf-8', '  <FdoSpatialContextList>
-    <ProviderName>OSGeo.SDF.4.1</ProviderName>
+    <ProviderName>OSGeo.SDF</ProviderName>
     <SpatialContext>
       <CoordinateSystemName>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS \
84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</CoordinateSystemName>
  <CoordinateSystemWkt>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS \
84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</CoordinateSystemWkt>
 @@ -544,7 +544,7 @@
   </FdoSpatialContextList>');
 INSERT INTO "HttpTestResults" VALUES('GetSpatialContexts on a SDF resource', 8011, \
'text/xml; charset=utf-8', '  <FdoSpatialContextList>
-    <ProviderName>OSGeo.SDF.4.1</ProviderName>
+    <ProviderName>OSGeo.SDF</ProviderName>
     <SpatialContext>
       <CoordinateSystemName>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS \
84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</CoordinateSystemName>
  <CoordinateSystemWkt>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS \
84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</CoordinateSystemWkt>
 @@ -635,10 +635,10 @@
 INSERT INTO "Params" VALUES(2, 'HEADER', '');
 INSERT INTO "Params" VALUES(3, 'OPERATION', 'SETRESOURCEDATA');
 INSERT INTO "Params" VALUES(3, 'RESOURCEID', \
                'Library://Test/FeatureSources/test.FeatureSource');
-INSERT INTO "Params" VALUES(3, 'DATANAME', 'TEST.SDf');
+INSERT INTO "Params" VALUES(3, 'DATANAME', 'TEST.sdf');
 INSERT INTO "Params" VALUES(3, 'DATATYPE', 'File');
 INSERT INTO "Params" VALUES(3, 'DATALENGTH', '0');
-INSERT INTO "Params" VALUES(3, 'DATA', \
'../../TestData/FeatureService/SDF/TEST.SDf'); +INSERT INTO "Params" VALUES(3, \
'DATA', '../../TestData/FeatureService/SDF/TEST.sdf');  INSERT INTO "Params" \
VALUES(1, 'ALWAYSPASS', 'This operation always passes');  INSERT INTO "Params" \
VALUES(2001, 'OPERATION', 'DELETERESOURCE');  INSERT INTO "Params" VALUES(2001, \
'RESOURCEID', 'Library://Test/'); @@ -1851,7 +1851,7 @@
 INSERT INTO "ApiTestResults" VALUES('GetSpatialContexts on a SDF resource when \
resource data is not set yet', 8009, 'text/plain', 'mgapplicationexception');  INSERT \
INTO "ApiTestResults" VALUES('GetSpatialContexts on a SDF resource', 8010, \
'text/xml', '  <FdoSpatialContextList>
-    <ProviderName>OSGeo.SDF.4.1</ProviderName>
+    <ProviderName>OSGeo.SDF</ProviderName>
     <SpatialContext>
       <CoordinateSystemName>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS \
84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</CoordinateSystemName>
  <CoordinateSystemWkt>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS \
84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</CoordinateSystemWkt>
 @@ -1874,7 +1874,7 @@
   </FdoSpatialContextList>');
 INSERT INTO "ApiTestResults" VALUES('GetSpatialContexts on a SDF resource', 8011, \
'text/xml', '  <FdoSpatialContextList>
-    <ProviderName>OSGeo.SDF.4.1</ProviderName>
+    <ProviderName>OSGeo.SDF</ProviderName>
     <SpatialContext>
       <CoordinateSystemName>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS \
84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</CoordinateSystemName>
  <CoordinateSystemWkt>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS \
84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</CoordinateSystemWkt>


Modified: trunk/MgDev/UnitTest/TestData/ResourceService/ResourceServiceTest.dump
===================================================================
--- trunk/MgDev/UnitTest/TestData/ResourceService/ResourceServiceTest.dump	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/ResourceService/ResourceServiceTest.dump	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -110,10 +110,10 @@
 INSERT INTO "Params" VALUES(35,'PREPROCESS','');
 INSERT INTO "Params" VALUES(2,'OPERATION','SETRESOURCEDATA');
 INSERT INTO "Params" \
                VALUES(2,'RESOURCEID','Library://Test/FeatureSources/test.FeatureSource');
                
-INSERT INTO "Params" VALUES(2,'DATANAME','TEST.SDf');
+INSERT INTO "Params" VALUES(2,'DATANAME','TEST.sdf');
 INSERT INTO "Params" VALUES(2,'DATATYPE','File');
 INSERT INTO "Params" VALUES(2,'DATALENGTH','0');
-INSERT INTO "Params" VALUES(2,'DATA','../../TestData/FeatureService/SDF/TEST.SDf');
+INSERT INTO "Params" VALUES(2,'DATA','../../TestData/FeatureService/SDF/TEST.sdf');
 INSERT INTO "Params" VALUES(0,'OPERATION','DELETERESOURCE');
 INSERT INTO "Params" VALUES(0,'RESOURCEID','Library://Test/');
 INSERT INTO "Params" VALUES(36,'OPERATION','COPYRESOURCE');
@@ -247,10 +247,10 @@
 INSERT INTO "Params" \
VALUES(1046,'HEADER','..\..\TestData\ResourceService\Content2.xml');  INSERT INTO \
"Params" VALUES(1047,'OPERATION','SETRESOURCEDATA');  INSERT INTO "Params" \
                VALUES(1047,'RESOURCEID','Library://Test/ResourceBoundaryTest/r1.FeatureSource');
                
-INSERT INTO "Params" VALUES(1047,'DATANAME','TEST.SDf');
+INSERT INTO "Params" VALUES(1047,'DATANAME','TEST.sdf');
 INSERT INTO "Params" VALUES(1047,'DATATYPE','File');
 INSERT INTO "Params" VALUES(1047,'DATALENGTH','0');
-INSERT INTO "Params" \
VALUES(1047,'DATA','../../TestData/FeatureService/SDF/TEST.SDf'); +INSERT INTO \
"Params" VALUES(1047,'DATA','../../TestData/FeatureService/SDF/TEST.sdf');  INSERT \
INTO "Params" VALUES(1048,'OPERATION','SETRESOURCEDATA');  INSERT INTO "Params" \
VALUES(1048,'RESOURCEID','Library://Test/ResourceBoundaryTest/r1.FeatureSource');  \
INSERT INTO "Params" VALUES(1048,'DATANAME','Sheboygan_BuildingOutlines.sdf'); @@ \
-277,10 +277,10 @@  INSERT INTO "Params" \
VALUES(1051,'DATA','../../TestData/FeatureService/SDF/Sheboygan_Parcels.sdf');  \
INSERT INTO "Params" VALUES(1052,'OPERATION','SETRESOURCEDATA');  INSERT INTO \
"Params" VALUES(1052,'RESOURCEID','Library://Test/ResourceBoundaryTest/r1.FeatureSource');
                
-INSERT INTO "Params" VALUES(1052,'DATANAME','TEST.SDf');
+INSERT INTO "Params" VALUES(1052,'DATANAME','TEST.sdf');
 INSERT INTO "Params" VALUES(1052,'DATATYPE','File');
 INSERT INTO "Params" VALUES(1052,'DATALENGTH','-2884654');
-INSERT INTO "Params" \
VALUES(1052,'DATA','../../TestData\FeatureService/SDF/TEST.SDf'); +INSERT INTO \
"Params" VALUES(1052,'DATA','../../TestData\FeatureService/SDF/TEST.sdf');  INSERT \
INTO "Params" VALUES(1053,'OPERATION','SETRESOURCEDATA');  INSERT INTO "Params" \
VALUES(1053,'RESOURCEID','Library://Test/ResourceBoundaryTest/r1.FeatureSource');  \
INSERT INTO "Params" VALUES(1053,'DATANAME','SpaceShip.dwf'); @@ -465,10 +465,10 @@
 INSERT INTO "Params" \
VALUES(13012,'DATA','../../TestData/FeatureService/SDF/Sheboygan_CityLimits.sdf');  \
INSERT INTO "Params" VALUES(13013,'OPERATION','SETRESOURCEDATA');  INSERT INTO \
"Params" VALUES(13013,'RESOURCEID','Library://Test/ResourceBoundaryTest/r1.FeatureSource');
                
-INSERT INTO "Params" VALUES(13013,'DATANAME','TEST.SDf');
+INSERT INTO "Params" VALUES(13013,'DATANAME','TEST.sdf');
 INSERT INTO "Params" VALUES(13013,'DATATYPE','File');
 INSERT INTO "Params" VALUES(13013,'DATALENGTH','0');
-INSERT INTO "Params" \
VALUES(13013,'DATA','../../TestData/FeatureService/SDF/TEST.SDf'); +INSERT INTO \
"Params" VALUES(13013,'DATA','../../TestData/FeatureService/SDF/TEST.sdf');  INSERT \
INTO "Params" VALUES(13015,'OPERATION','SETRESOURCEDATA');  INSERT INTO "Params" \
VALUES(13015,'RESOURCEID','Library://Test/ResourceBoundaryTest/r1.FeatureSource');  \
INSERT INTO "Params" VALUES(13015,'DATANAME','Sheboygan_CityLimits.sdf'); @@ -936,7 \
+936,7 @@  INSERT INTO "ApiTestResults" VALUES('RenameResourceData when the old data \
name and new data name are the same. Expects InvalidArgument \
exception',15007,'text/plain',X'6D67696E76616C6964617267756D656E74657863657074696F6E');
  INSERT INTO "ApiTestResults" VALUES('RenameResourceData using folder resource. \
Expects InvalidResourceType \
exception',15008,'text/plain',X'6D67696E76616C69647265736F7572636574797065657863657074696F6E');
  INSERT INTO "ApiTestResults" VALUES('RenameResourceData using valid \
                parameters',15009,'','');
-INSERT INTO "ApiTestResults" VALUES('SetResource with empty content \
file',2005,'text/plain','mginvalidargumentexception'); +INSERT INTO "ApiTestResults" \
VALUES('SetRresource with empty content \
file',2005,'text/plain','mginvalidargumentexception');  INSERT INTO "ApiTestResults" \
VALUES('SetResource when the resource is folder and the content file is not \
empty',2006,'text/plain',X'6D67696E76616C6964617267756D656E74657863657074696F6E');  \
INSERT INTO "ApiTestResults" VALUES('SetResource when the resouce is \
folder',2007,'','');  INSERT INTO "ApiTestResults" VALUES('SetResource when the \
resource is a duplicate folder.(Should work)',2008,'text/plain','An existing resource \
was detected: Library://Test/ResourceTest/'); @@ -1008,8 +1008,8 @@
 INSERT INTO "ApiTestResults" VALUES('InheritPermissionsFrom using folder \
resource',17007,'','');  INSERT INTO "ApiTestResults" VALUES('InheritPermissionsFrom \
using root resource',17008,'','');  INSERT INTO "ApiTestResults" \
                VALUES('',18002,'text/plain','mgfileioexception');
-INSERT INTO "ApiTestResults" VALUES('',18003,'text/plain','mgdwfexception');
-INSERT INTO "ApiTestResults" \
VALUES('',18004,'text/plain',X'6D67647766657863657074696F6E'); +INSERT INTO \
"ApiTestResults" VALUES('',18003,'text/plain','mginvaliddwfpackageexception'); \
+INSERT INTO "ApiTestResults" \
VALUES('',18004,'text/plain','mginvaliddwfpackageexception');  INSERT INTO \
"ApiTestResults" VALUES('',18001,'','');  INSERT INTO "ApiTestResults" \
VALUES('',18005,'','');  INSERT INTO "ApiTestResults" VALUES('',19000,'','');
@@ -1235,7 +1235,7 @@
 INSERT INTO "HttpTestResults" VALUES('RenameResourceData when the old data name and \
new data name are the same. Expects InvalidArgument \
exception',15007,'text/plain',X'4D67496E76616C6964417267756D656E74457863657074696F6E0D0A');
  INSERT INTO "HttpTestResults" VALUES('RenameResourceData using folder resource. \
Expects InvalidResourceType \
exception',15008,'text/plain',X'4D67496E76616C69645265736F7572636554797065457863657074696F6E0D0A');
  INSERT INTO "HttpTestResults" VALUES('RenameResourceData using valid \
                parameters',15009,'text/plain; charset=utf-8',X'');
-INSERT INTO "HttpTestResults" VALUES('AddResource with empty content \
file',2005,'text/plain','MgNullArgumentException +INSERT INTO "HttpTestResults" \
VALUES('AddRresource with empty content \
file',2005,'text/plain','MgInvalidArgumentException  ');
 INSERT INTO "HttpTestResults" VALUES('AddResource when the resource is folder and \
the content file is not \
empty',2006,'text/plain',X'4D67496E76616C6964417267756D656E74457863657074696F6E0D0A');
  INSERT INTO "HttpTestResults" VALUES('AddResource when the resouce is \
folder',2007,'text/plain; charset=utf-8',X'');

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/BuildingOutlines.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/BuildingOutlines.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/BuildingOutlines.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%BuildingOutlines.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%BuildingOutlines.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/BuildingOutlines.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/BuildingOutlines.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/BuildingOutlines.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
-  <Metadata>
-    <Simple>
-      <Property>
-        <Name>_PrimarySRS</Name>
-        <Value>EPSG:4326</Value>
-      </Property>
-      <Property>
-        <Name>_Bounds</Name>
-        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
                north="43.815"/></Value>
-      </Property>
-      <Property>
-        <Name>_Abstract</Name>
-        <Value>Building Outlines.</Value>
-      </Property>
-      <Property>
-        <Name>_Keywords</Name>
-        <Value>Buildings, Outlines</Value>
-      </Property>
-      <Property>
-        <Name>_Title</Name>
-        <Value>Building Outlines</Value>
-      </Property>
-      <Property>
-        <Name>_IsPublished</Name>
-        <Value>1</Value>
-      </Property>
-    </Simple>
-  </Metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
+  <Metadata>
+    <Simple>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_PrimarySRS</Name>
+        <Value>EPSG:4326</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Bounds</Name>
+        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
north="43.815"/></Value> +      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Abstract</Name>
+        <Value>Building Outlines.</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Keywords</Name>
+        <Value>Buildings, Outlines</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Title</Name>
+        <Value>Building Outlines</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_IsPublished</Name>
+        <Value>1</Value>
+      </Property>
+    </Simple>
+  </Metadata>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/CityLimits.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/CityLimits.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/CityLimits.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%CityLimits.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%CityLimits.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/CityLimits.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/CityLimits.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/CityLimits.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
-  <Metadata>
-    <Simple>
-      <Property>
-        <Name>_PrimarySRS</Name>
-        <Value>EPSG:4326</Value>
-      </Property>
-      <Property>
-        <Name>_Bounds</Name>
-        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
                north="43.815"/></Value>
-      </Property>
-      <Property>
-        <Name>_Abstract</Name>
-        <Value>City Limits</Value>
-      </Property>
-      <Property>
-        <Name>_Keywords</Name>
-        <Value>City, Limits</Value>
-      </Property>
-      <Property>
-        <Name>_Title</Name>
-        <Value>City Limits</Value>
-      </Property>
-      <Property>
-        <Name>_IsPublished</Name>
-        <Value>1</Value>
-      </Property>
-    </Simple>
-  </Metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
+  <Metadata>
+    <Simple>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_PrimarySRS</Name>
+        <Value>EPSG:4326</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Bounds</Name>
+        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
north="43.815"/></Value> +      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Abstract</Name>
+        <Value>City Limits</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Keywords</Name>
+        <Value>City, Limits</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Title</Name>
+        <Value>City Limits</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_IsPublished</Name>
+        <Value>1</Value>
+      </Property>
+    </Simple>
+  </Metadata>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicLines.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicLines.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicLines.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%HydrographicLines.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%HydrographicLines.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicLines.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicLines.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicLines.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
-  <Metadata>
-    <Simple>
-      <Property>
-        <Name>_Bounds</Name>
-        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
                north="43.815"/></Value>
-      </Property>
-      <Property>
-        <Name>_Abstract</Name>
-        <Value>Hydrographic Lines</Value>
-      </Property>
-      <Property>
-        <Name>_Keywords</Name>
-        <Value>Hydrography</Value>
-      </Property>
-      <Property>
-        <Name>_Title</Name>
-        <Value>Hydrographic Lines</Value>
-      </Property>
-      <Property>
-        <Name>_IsPublished</Name>
-        <Value>1</Value>
-      </Property>
-    </Simple>
-  </Metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
+  <Metadata>
+    <Simple>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Bounds</Name>
+        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
north="43.815"/></Value> +      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Abstract</Name>
+        <Value>Hydrographic Lines</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Keywords</Name>
+        <Value>Hydrography</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Title</Name>
+        <Value>Hydrographic Lines</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_IsPublished</Name>
+        <Value>1</Value>
+      </Property>
+    </Simple>
+  </Metadata>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%HydrographicPolygons.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%HydrographicPolygons.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
-  <Metadata>
-    <Simple>
-      <Property>
-        <Name>_Bounds</Name>
-        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
                north="43.815"/></Value>
-      </Property>
-      <Property>
-        <Name>_Abstract</Name>
-        <Value>Hydrographic Polygons</Value>
-      </Property>
-      <Property>
-        <Name>_Keywords</Name>
-        <Value>Hydrography, Hydrogaphic</Value>
-      </Property>
-      <Property>
-        <Name>_Title</Name>
-        <Value>Hydrographic Polygons</Value>
-      </Property>
-      <Property>
-        <Name>_IsPublished</Name>
-        <Value>1</Value>
-      </Property>
-    </Simple>
-  </Metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
+  <Metadata>
+    <Simple>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Bounds</Name>
+        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
north="43.815"/></Value> +      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Abstract</Name>
+        <Value>Hydrographic Polygons</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Keywords</Name>
+        <Value>Hydrography, Hydrogaphic</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Title</Name>
+        <Value>Hydrographic Polygons</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_IsPublished</Name>
+        <Value>1</Value>
+      </Property>
+    </Simple>
+  </Metadata>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Islands.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Islands.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Islands.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%Islands.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%Islands.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Islands.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Islands.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Islands.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
-  <Metadata>
-    <Simple>
-      <Property>
-        <Name>_Bounds</Name>
-        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
                north="43.815"/></Value>
-      </Property>
-      <Property>
-        <Name>_Keywords</Name>
-        <Value>Islands</Value>
-      </Property>
-      <Property>
-        <Name>_Title</Name>
-        <Value>Islands</Value>
-      </Property>
-      <Property>
-        <Name>_IsPublished</Name>
-        <Value>1</Value>
-      </Property>
-    </Simple>
-  </Metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
+  <Metadata>
+    <Simple>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Bounds</Name>
+        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
north="43.815"/></Value> +      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Keywords</Name>
+        <Value>Islands</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Title</Name>
+        <Value>Islands</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_IsPublished</Name>
+        <Value>1</Value>
+      </Property>
+    </Simple>
+  </Metadata>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/LandUse.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/LandUse.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/LandUse.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%LandUse.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%LandUse.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/LandUse.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/LandUse.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/LandUse.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Parcels.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Parcels.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Parcels.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%Parcels.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%Parcels.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Parcels.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Parcels.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Parcels.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
-  <Metadata>
-    <Simple>
-      <Property>
-        <Name>_Bounds</Name>
-        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
                north="43.815"/></Value>
-      </Property>
-      <Property>
-        <Name>_Keywords</Name>
-        <Value>Parcels</Value>
-      </Property>
-      <Property>
-        <Name>_Title</Name>
-        <Value>Parcels</Value>
-      </Property>
-      <Property>
-        <Name>_IsPublished</Name>
-        <Value>1</Value>
-      </Property>
-    </Simple>
-  </Metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
+  <Metadata>
+    <Simple>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Bounds</Name>
+        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
north="43.815"/></Value> +      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Keywords</Name>
+        <Value>Parcels</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Title</Name>
+        <Value>Parcels</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_IsPublished</Name>
+        <Value>1</Value>
+      </Property>
+    </Simple>
+  </Metadata>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Rail.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Rail.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Rail.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%Rail.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%Rail.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Rail.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Rail.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Rail.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/RoadCenterLines.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/RoadCenterLines.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/RoadCenterLines.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%RoadCenterLines.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%RoadCenterLines.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/RoadCenterLines.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/RoadCenterLines.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/RoadCenterLines.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Soils.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Soils.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Soils.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%Soils.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%Soils.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Soils.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Soils.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Soils.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Trees.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Trees.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Trees.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%Trees.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%Trees.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Trees.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Trees.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/Trees.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
-  <Metadata>
-    <Simple>
-      <Property>
-        <Name>_Bounds</Name>
-        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
                north="43.815"/></Value>
-      </Property>
-      <Property>
-        <Name>_IsPublished</Name>
-        <Value>1</Value>
-      </Property>
-    </Simple>
-  </Metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
+  <Metadata>
+    <Simple>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Bounds</Name>
+        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
north="43.815"/></Value> +      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_IsPublished</Name>
+        <Value>1</Value>
+      </Property>
+    </Simple>
+  </Metadata>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/VotingDistricts.FeatureSource_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/VotingDistricts.FeatureSource_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/VotingDistricts.FeatureSource_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
-  <Provider>OSGeo.SDF</Provider>
-  <Parameter>
-    <Name>File</Name>
-    <Value>%MG_DATA_FILE_PATH%VotingDistricts.sdf</Value>
-  </Parameter>
-  <Parameter>
-    <Name>ReadOnly</Name>
-    <Value>TRUE</Value>
-  </Parameter>
-</FeatureSource>
+<?xml version="1.0" encoding="UTF-8"?>
+<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"> +  \
<Provider>OSGeo.SDF</Provider> +  <Parameter>
+    <Name>File</Name>
+    <Value>%MG_DATA_FILE_PATH%VotingDistricts.sdf</Value>
+  </Parameter>
+  <Parameter>
+    <Name>ReadOnly</Name>
+    <Value>TRUE</Value>
+  </Parameter>
+</FeatureSource>

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/VotingDistricts.FeatureSource_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/VotingDistricts.FeatureSource_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/VotingDistricts.FeatureSource_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <General>
-    <IconName>FeatureSourceSdf</IconName>
-  </General>
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
-  <Metadata>
-    <Simple>
-      <Property>
-        <Name>_Bounds</Name>
-        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
                north="43.815"/></Value>
-      </Property>
-      <Property>
-        <Name>_Title</Name>
-        <Value>Voting Districts</Value>
-      </Property>
-      <Property>
-        <Name>_IsPublished</Name>
-        <Value>1</Value>
-      </Property>
-    </Simple>
-  </Metadata>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +  <General>
+    <IconName>FeatureSourceSdf</IconName>
+  </General>
+  <Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
+    <Inherited>true</Inherited>
+  </Security>
+  <Metadata>
+    <Simple>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Bounds</Name>
+        <Value>&lt;Bounds SRS="EPSG:4326" west="-87.74" south="43.68" east="-87.69" \
north="43.815"/></Value> +      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_Title</Name>
+        <Value>Voting Districts</Value>
+      </Property>
+      <Property xsi:noNamespaceSchemaLocation="Property-1.0.0.xsd">
+        <Name>_IsPublished</Name>
+        <Value>1</Value>
+      </Property>
+    </Simple>
+  </Metadata>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/Data/_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceFolderHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
                xsi:noNamespaceSchemaLocation="ResourceFolderHeader-1.0.0.xsd">
-	<Security xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd">
-		<Inherited>true</Inherited>
-	</Security>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceFolderHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="ResourceFolderHeader-1.0.0.xsd"> +	<Security \
xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd"> \
+		<Inherited>true</Inherited> +	</Security>
 </ResourceFolderHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Aqua.ApplicationDefinition_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Aqua.ApplicationDefinition_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Aqua.ApplicationDefinition_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,1294 +1,1294 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ApplicationDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ApplicationDefinition-1.0.0.xsd">
-  <Title>Sample - Aqua</Title>
-  <TemplateUrl>fusion/templates/mapguide/aqua/index.html</TemplateUrl>
-  <MapSet>
-    <MapGroup id="MainMap">
-      <Map>
-        <Type>MapGuide</Type>
-        <SingleTile>True</SingleTile>
-        <Extension>
-          <ResourceId>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</ResourceId>
                
-          <SelectionColor>0x0000ffff</SelectionColor>
-          <SelectionAsOverlay>true</SelectionAsOverlay>
-        </Extension>
-      </Map>
-    </MapGroup>
-  </MapSet>
-  <WidgetSet>
-    <Container xsi:type="UiItemContainerType">
-      <Name>Toolbar</Name>
-      <Type>Toolbar</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Print</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>QuickPlot</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>RefreshMap</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Maptip</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>SelectRadius</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>SelectPolygon</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ClearSelection</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>tbBuffer</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Measure</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>FeatureInfo</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Query</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Theme</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Redline</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ViewOptions</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>About</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Help</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>ToolbarSecondary</Name>
-      <Type>Toolbar</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Select</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Pan</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Zoom</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomIn</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomOut</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>InitialMapView</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomToSelection</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>PreviousView</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>NextView</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>ToolbarVertical</Name>
-      <Type>Toolbar</Type>
-      <Position>left</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertSelect</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertPan</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertZoom</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertZoomIn</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertZoomOut</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertInitialMapView</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertZoomToSelection</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertPreviousView</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertNextView</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>FileMenu</Name>
-      <Type>Toolbar</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>MapMenu</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>BasemapSwitcher</Widget>
-      </Item>
-      <Item xsi:type="FlyoutItemType">
-        <Function>Flyout</Function>
-        <Label>View</Label>
-        <Item xsi:type="WidgetItemType">
-          <Function>Widget</Function>
-          <Widget>showOverview</Widget>
-        </Item>
-        <Item xsi:type="WidgetItemType">
-          <Function>Widget</Function>
-          <Widget>showTaskPane</Widget>
-        </Item>
-        <Item xsi:type="WidgetItemType">
-          <Function>Widget</Function>
-          <Widget>showLegend</Widget>
-        </Item>
-        <Item xsi:type="WidgetItemType">
-          <Function>Widget</Function>
-          <Widget>showSelectionPanel</Widget>
-        </Item>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>Statusbar</Name>
-      <Type>Splitterbar</Type>
-      <Position>bottom</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>statusCoordinates</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>statusSelection</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>EditableScale</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>statusViewSize</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>MapContextMenu</Name>
-      <Type>ContextMenu</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>RefreshMap</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Pan</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Zoom</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomIn</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomOut</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="FlyoutItemType">
-        <Function>Flyout</Function>
-        <Label>Zoom</Label>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Select</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ClearSelection</Widget>
-      </Item>
-      <Item xsi:type="FlyoutItemType">
-        <Function>Flyout</Function>
-        <Label>Select More</Label>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>tbBuffer</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Measure</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>FeatureInfo</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Query</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Theme</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Redline</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ViewOptions</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Help</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>About</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>TaskMenu</Name>
-      <Type>ContextMenu</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Measure</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>tbBuffer</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>FeatureInfo</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Query</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Theme</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Redline</Widget>
-      </Item>
-    </Container>
-    <MapWidget>
-      <Name>Map</Name>
-      <Type>Map</Type>
-      <Extension>
-        <MenuContainer>MapContextMenu</MenuContainer>
-      </Extension>
-      <MapId>MainMap</MapId>
-    </MapWidget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>About</Name>
-      <Type>About</Type>
-      <Location/>
-      <Extension>
-        <AboutURL>widgets/About/About.html</AboutURL>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>about</ImageClass>
-      <Label>About</Label>
-      <Tooltip>Click to show information about this application</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>ActivityIndicator</Name>
-      <Type>ActivityIndicator</Type>
-      <Location/>
-      <Extension>
-        <ElementId>
-        </ElementId>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>BasemapSwitcher</Name>
-      <Type>BasemapSwitcher</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>options</ImageClass>
-      <Label>External Providers</Label>
-      <Tooltip>Click to change the basemap</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>BufferPanel</Name>
-      <Type>BufferPanel</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>buffer</ImageClass>
-      <Label>Buffer</Label>
-      <Tooltip>Click to create a buffer</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>CenterSelection</Name>
-      <Type>CenterSelection</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-centre</ImageClass>
-      <Label>Center selection</Label>
-      <Tooltip>Click to center the map on the current selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ClearSelection</Name>
-      <Type>ClearSelection</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-clear</ImageClass>
-      <Label>Clear Selection</Label>
-      <Tooltip>Click to clear the current selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ColorPicker</Name>
-      <Type>ColorPicker</Type>
-      <Location/>
-      <Extension>
-        <ColorInputId>
-        </ColorInputId>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Color picker</Label>
-      <Tooltip>Use this tool to select a color</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>CoordinateTracker</Name>
-      <Type>CoordinateTracker</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <Projection>
-        </Projection>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>coordinate-tracker</ImageClass>
-      <Label>Coordinate Tracker</Label>
-      <Tooltip>Click to view mouse coordinates in various projections</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>EditableScale</Name>
-      <Type>EditableScale</Type>
-      <Location/>
-      <Extension>
-        <Precision>4</Precision>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>FeatureInfo</Name>
-      <Type>FeatureInfo</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>feature-info</ImageClass>
-      <Label>Feature Info</Label>
-      <Tooltip>Click to display selected feature info</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Geolocation</Name>
-      <Type>Geolocation</Type>
-      <Location/>
-      <Extension>
-        <ZoomLevel>
-        </ZoomLevel>
-        <EnableHighAccuracy>false</EnableHighAccuracy>
-        <Timeout>5000</Timeout>
-        <MaximumAge>0</MaximumAge>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>geolocation</ImageClass>
-      <Label>My Location</Label>
-      <Tooltip>Click to zoom to your current geographic location</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>GoogleStreetViewer</Name>
-      <Type>GoogleStreetViewer</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <SymbolLayerName>GoogleStreetViewerSymbolLayer</SymbolLayerName>
-        <ShowDirection>true</ShowDirection>
-        <DirectionLength>22</DirectionLength>
-        <AdditionalParameter>
-        </AdditionalParameter>
-      </Extension>
-      <ImageUrl>../../../widgets/GoogleStreetViewer/GoogleStreetView.png</ImageUrl>
-      <ImageClass/>
-      <Label>Google StreetView</Label>
-      <Tooltip>Click to show Google StreetView</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Help</Name>
-      <Type>Help</Type>
-      <Location/>
-      <Extension>
-        <Target>HelpWindow</Target>
-        <Url>widgets/Help/Help.html</Url>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>help</ImageClass>
-      <Label>Help</Label>
-      <Tooltip>Click to get help</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>InitialMapView</Name>
-      <Type>InitialMapView</Type>
-      <Location/>
-      <Extension>
-        <ViewType>initial</ViewType>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-full</ImageClass>
-      <Label>Zoom Extents</Label>
-      <Tooltip>Click to zoom to the full map extents</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>Legend</Name>
-      <Type>Legend</Type>
-      <Location/>
-      <Extension>
-        <HideInvisibleLayers>true</HideInvisibleLayers>
-        <ShowRootFolder>false</ShowRootFolder>
-        <ShowMapFolder>false</ShowMapFolder>
-        <LayerRasterIcon>images/icons/legend-raster.png</LayerRasterIcon>
-        <LayerDWFIcon>images/icons/legend-DWF.png</LayerDWFIcon>
-        <LayerThemeIcon>images/icons/legend-theme.png</LayerThemeIcon>
-        <DisabledLayerIcon>images/icons/legend-layer.png</DisabledLayerIcon>
-        <LayerInfoIcon>images/icons/tree_layer_info.png</LayerInfoIcon>
-        <GroupInfoIcon>images/icons/tree_group_info.png</GroupInfoIcon>
-        <RootFolderIcon>images/icons/legend-map.png</RootFolderIcon>
-      </Extension>
-    </Widget>
-    <Widget>
-      <Name>LinkToView</Name>
-      <Type>LinkToView</Type>
-      <Location/>
-      <Extension/>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>MapMenu</Name>
-      <Type>MapMenu</Type>
-      <Location/>
-      <Extension>
-        <Folder>
-        </Folder>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>legend-map</ImageClass>
-      <Label>Maps</Label>
-      <Tooltip>Choose a map theme</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Maptip</Name>
-      <Type>Maptip</Type>
-      <Location/>
-      <Extension>
-        <Delay>350</Delay>
-        <Layer>
-        </Layer>
-        <Tolerance>2</Tolerance>
-        <Target>MaptipWindow</Target>
-        <WinFeatures>menubar=no,location=no,resizable=no,status=no</WinFeatures>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>maptip</ImageClass>
-      <Label>Maptip</Label>
-      <Tooltip>Click to Enable/Disable get information about features from \
                Server</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>Navigator</Name>
-      <Type>Navigator</Type>
-      <Location/>
-      <Extension/>
-    </Widget>
-    <Widget>
-      <Name>OverviewMap</Name>
-      <Type>OverviewMap</Type>
-      <Location/>
-      <Extension>
-        <MapId>
-        </MapId>
-        <MinRatio>32</MinRatio>
-        <MaxRatio>128</MaxRatio>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Pan</Name>
-      <Type>Pan</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>pan</ImageClass>
-      <Label>Pan</Label>
-      <Tooltip>Click and drag to pan the map</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>PanOnClick</Name>
-      <Type>PanOnClick</Type>
-      <Location/>
-      <Extension>
-        <Percentage>75</Percentage>
-        <Direction>none</Direction>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label/>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>PanQuery</Name>
-      <Type>PanQuery</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-        <QueryActiveLayer>false</QueryActiveLayer>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>pan</ImageClass>
-      <Label>Pan query</Label>
-      <Tooltip>Drag the mouse to pan, click to query</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Print</Name>
-      <Type>Print</Type>
-      <Location/>
-      <Extension>
-        <ShowPrintUI>true</ShowPrintUI>
-        <ShowTitle>false</ShowTitle>
-        <PageTitle>
-        </PageTitle>
-        <ShowLegend>false</ShowLegend>
-        <ShowNorthArrow>false</ShowNorthArrow>
-        <ImageBaseUrl>
-        </ImageBaseUrl>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>file-print</ImageClass>
-      <Label>Print</Label>
-      <Tooltip>Print the current map view</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Query</Name>
-      <Type>Query</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>query</ImageClass>
-      <Label>Query</Label>
-      <Tooltip>Click to execute a custom query</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>QuickPlot</Name>
-      <Type>QuickPlot</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <RememberPlotOptions>false</RememberPlotOptions>
-        <ShowCoordinateLabels>true</ShowCoordinateLabels>
-        <ShowSubTitle>true</ShowSubTitle>
-        <DefaultDpi>96</DefaultDpi>
-        <PaperListEntry>
-        </PaperListEntry>
-        <ScaleListEntry>
-        </ScaleListEntry>
-        <DefaultMargin>25.4,12.7,12.7,12.7</DefaultMargin>
-        <Disclaimer>The materials available at this web site are for informational \
                purposes only and do not constitute a legal document.</Disclaimer>
-        <AllowDisclaimerToggle>true</AllowDisclaimerToggle>
-        <ShowLegend>false</ShowLegend>
-        <ShowNorthArrow>false</ShowNorthArrow>
-        <ShowCoordinates>false</ShowCoordinates>
-        <ShowScaleBar>false</ShowScaleBar>
-        <ShowLegalDisclaimer>true</ShowLegalDisclaimer>
-      </Extension>
-      <ImageUrl>images/icons/print.png</ImageUrl>
-      <ImageClass/>
-      <Label>Quick Plot</Label>
-      <Tooltip>Click to create a plot quickly</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Redline</Name>
-      <Type>Redline</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <AutogenerateLayerNames>true</AutogenerateLayerNames>
-        <UseMapMessage>true</UseMapMessage>
-        <DataStoreFormat>
-        </DataStoreFormat>
-        <RedlineGeometryFormat>7</RedlineGeometryFormat>
-        <AutoCreateOnStartup>true</AutoCreateOnStartup>
-        <StylizationType>basic</StylizationType>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>redline</ImageClass>
-      <Label>Redline</Label>
-      <Tooltip>Click to draw redline features</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>RefreshMap</Name>
-      <Type>RefreshMap</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-refresh</ImageClass>
-      <Label>Refresh</Label>
-      <Tooltip>Click to redraw the map</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SaveMap</Name>
-      <Type>SaveMap</Type>
-      <Location/>
-      <Extension>
-        <Format>png</Format>
-        <Scale>
-        </Scale>
-        <ResourceId>
-        </ResourceId>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>file-save</ImageClass>
-      <Label>Save map</Label>
-      <Tooltip>Click to save the map as an image</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>Scalebar</Name>
-      <Type>Scalebar</Type>
-      <Location/>
-      <Extension>
-        <Style>thin</Style>
-        <DisplaySystem>metric</DisplaySystem>
-        <MinWidth>100</MinWidth>
-        <MaxWidth>200</MaxWidth>
-        <Divisions>2</Divisions>
-        <SubDivisions>2</SubDivisions>
-        <ShowMinorMeasures>true</ShowMinorMeasures>
-        <AbbreviateLabel>true</AbbreviateLabel>
-        <SingleLine>false</SingleLine>
-      </Extension>
-    </Widget>
-    <Widget>
-      <Name>ScalebarDual</Name>
-      <Type>ScalebarDual</Type>
-      <Location/>
-      <Extension>
-        <MaxWidth>300</MaxWidth>
-        <TopInUnits>ft</TopInUnits>
-        <TopOutUnits>mi</TopOutUnits>
-        <BottomInUnits>m</BottomInUnits>
-        <BottomOutUnits>km</BottomOutUnits>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Select</Name>
-      <Type>Select</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-        <QueryActiveLayer>false</QueryActiveLayer>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select</ImageClass>
-      <Label>Select</Label>
-      <Tooltip>Click to select features</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>SelectionPanel</Name>
-      <Type>SelectionPanel</Type>
-      <Location/>
-      <Extension>
-        <PreviousImageUrl>
-        </PreviousImageUrl>
-        <NextImageUrl>
-        </NextImageUrl>
-        <ResultsPerPage>0</ResultsPerPage>
-        <SelectionRenderer>Fusion.Widget.SelectionPanel.SelectionRendererDefault</SelectionRenderer>
                
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SelectPolygon</Name>
-      <Type>SelectPolygon</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-polygon</ImageClass>
-      <Label>Select Polygon</Label>
-      <Tooltip>Draw a polygon to perform a selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SelectRadius</Name>
-      <Type>SelectRadius</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-        <DefaultRadius>20</DefaultRadius>
-        <RadiusTooltipContainer>
-        </RadiusTooltipContainer>
-        <RadiusTooltipType>dynamic</RadiusTooltipType>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-radius</ImageClass>
-      <Label>Select Radius</Label>
-      <Tooltip>Click to select within a radius</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SelectRadiusValue</Name>
-      <Type>SelectRadiusValue</Type>
-      <Location/>
-      <Extension>
-        <RadiusName>SelectRadius</RadiusName>
-        <Label>
-        </Label>
-        <ClassName>
-        </ClassName>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Select radius value</Label>
-      <Tooltip>enter the radius for the Select by Radius tool</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SelectWithin</Name>
-      <Type>SelectWithin</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <DisableIfSelectionEmpty>true</DisableIfSelectionEmpty>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-features</ImageClass>
-      <Label>Select within</Label>
-      <Tooltip>Click to select features within this selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>TaskPane</Name>
-      <Type>TaskPane</Type>
-      <Location/>
-      <Extension>
-        <InitialTask>
-        </InitialTask>
-        <MenuContainer>TaskMenu</MenuContainer>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Theme</Name>
-      <Type>Theme</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>theme</ImageClass>
-      <Label>Theme</Label>
-      <Tooltip>Click to create a themed layer</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ViewOptions</Name>
-      <Type>ViewOptions</Type>
-      <Location/>
-      <Extension>
-        <DisplayUnits>
-        </DisplayUnits>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>options</ImageClass>
-      <Label>Options</Label>
-      <Tooltip>Click to change the units displayed</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Zoom</Name>
-      <Type>Zoom</Type>
-      <Location/>
-      <Extension>
-        <Tolerance>5</Tolerance>
-        <Factor>2</Factor>
-        <Direction>in</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-in</ImageClass>
-      <Label>Zoom Rectangle</Label>
-      <Tooltip>Click or click and drag on the map to zoom in</Tooltip>
-      <StatusText>Click or click and drag on the map to zoom in</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ZoomToSelection</Name>
-      <Type>ZoomToSelection</Type>
-      <Location/>
-      <Extension>
-        <MaximumZoomDimension>-1</MaximumZoomDimension>
-        <ZoomFactor>2</ZoomFactor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-zoom</ImageClass>
-      <Label>Zoom Selection</Label>
-      <Tooltip>Click to zoom to the selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ZoomIn</Name>
-      <Type>ZoomOnClick</Type>
-      <Location/>
-      <Extension>
-        <Factor>2</Factor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-in-fixed</ImageClass>
-      <Label>Zoom In</Label>
-      <Tooltip>Zoom in by a preset increment</Tooltip>
-      <StatusText>Zoom in by a preset increment</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ZoomOut</Name>
-      <Type>ZoomOnClick</Type>
-      <Location/>
-      <Extension>
-        <Factor>0.5</Factor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-out-fixed</ImageClass>
-      <Label>Zoom Out</Label>
-      <Tooltip>Zoom out by a preset increment</Tooltip>
-      <StatusText>Zoom out by a preset increment</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>PreviousView</Name>
-      <Type>ExtentHistory</Type>
-      <Location/>
-      <Extension>
-        <Direction>previous</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-back</ImageClass>
-      <Label>Previous</Label>
-      <Tooltip>Go to previous view</Tooltip>
-      <StatusText>Go to previous view</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>NextView</Name>
-      <Type>ExtentHistory</Type>
-      <Location/>
-      <Extension>
-        <Direction>next</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-forward</ImageClass>
-      <Label>Next</Label>
-      <Tooltip>Go to next view</Tooltip>
-      <StatusText>Go to next view</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>tbBuffer</Name>
-      <Type>BufferPanel</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>buffer</ImageClass>
-      <Label>Buffer</Label>
-      <Tooltip>Measure distances and areas on the map</Tooltip>
-      <StatusText>Create buffers around the selected features</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Measure</Name>
-      <Type>Measure</Type>
-      <Location/>
-      <Extension>
-        <Type>both</Type>
-        <MeasureTooltipContainer>MeasureResult</MeasureTooltipContainer>
-        <MeasureTooltipType>dynamic</MeasureTooltipType>
-        <DistancePrecision>0</DistancePrecision>
-        <AreaPrecision>0</AreaPrecision>
-        <Units>meters</Units>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>measure</ImageClass>
-      <Label>Measure</Label>
-      <Tooltip>Measure</Tooltip>
-      <StatusText>Measure distances and areas on the map</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>showOverview</Name>
-      <Type>InvokeScript</Type>
-      <Location/>
-      <Extension>
-        <Script>showOverviewMap()</Script>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Show Overview</Label>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>showTaskPane</Name>
-      <Type>InvokeScript</Type>
-      <Location/>
-      <Extension>
-        <Script>showTaskPane()</Script>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Show Task Pane</Label>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>showLegend</Name>
-      <Type>InvokeScript</Type>
-      <Location/>
-      <Extension>
-        <Script>showLegend()</Script>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Show Legend</Label>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>showSelectionPanel</Name>
-      <Type>InvokeScript</Type>
-      <Location/>
-      <Extension>
-        <Script>showSelectionPanel()</Script>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Show Selection Panel</Label>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>statusCoordinates</Name>
-      <Type>CursorPosition</Type>
-      <Location/>
-      <Extension>
-        <Template>X: {x} {units}, Y: {y} {units}</Template>
-        <Precision>4</Precision>
-        <DisplayProjection>
-        </DisplayProjection>
-        <Units>dd</Units>
-        <EmptyText>&amp;amp;nbsp;</EmptyText>
-      </Extension>
-    </Widget>
-    <Widget>
-      <Name>statusSelection</Name>
-      <Type>SelectionInfo</Type>
-      <Location/>
-      <Extension>
-        <Template>{0} feature(s) selected on {1} layer(s)</Template>
-        <EmptyText>No selection</EmptyText>
-      </Extension>
-    </Widget>
-    <Widget>
-      <Name>statusViewSize</Name>
-      <Type>ViewSize</Type>
-      <Location/>
-      <Extension>
-        <Units>Meters</Units>
-        <Precision>2</Precision>
-        <Template>{w} x {h} ({units})</Template>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertZoomIn</Name>
-      <Type>ZoomOnClick</Type>
-      <Location/>
-      <Extension>
-        <Factor>2</Factor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-in-fixed</ImageClass>
-      <Label/>
-      <Tooltip>Zoom in by a preset increment</Tooltip>
-      <StatusText>Zoom in by a preset increment</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertZoomOut</Name>
-      <Type>ZoomOnClick</Type>
-      <Location/>
-      <Extension>
-        <Factor>0.5</Factor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-out-fixed</ImageClass>
-      <Label/>
-      <Tooltip>Zoom out by a preset increment</Tooltip>
-      <StatusText>Zoom out by a preset increment</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertPreviousView</Name>
-      <Type>ExtentHistory</Type>
-      <Location/>
-      <Extension>
-        <Direction>previous</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-back</ImageClass>
-      <Label/>
-      <Tooltip>Go to previous view</Tooltip>
-      <StatusText>Go to previous view</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertNextView</Name>
-      <Type>ExtentHistory</Type>
-      <Location/>
-      <Extension>
-        <Direction>next</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-forward</ImageClass>
-      <Label/>
-      <Tooltip>Go to next view</Tooltip>
-      <StatusText>Go to next view</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertSelect</Name>
-      <Type>Select</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-        <QueryActiveLayer>false</QueryActiveLayer>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select</ImageClass>
-      <Label/>
-      <Tooltip>Click to select features</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertPan</Name>
-      <Type>Pan</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>pan</ImageClass>
-      <Label/>
-      <Tooltip>Click and drag to pan the map</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertZoom</Name>
-      <Type>Zoom</Type>
-      <Location/>
-      <Extension>
-        <Tolerance>5</Tolerance>
-        <Factor>2</Factor>
-        <Direction>in</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-in</ImageClass>
-      <Label/>
-      <Tooltip>Click or click and drag on the map to zoom in</Tooltip>
-      <StatusText>Click or click and drag on the map to zoom in</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertInitialMapView</Name>
-      <Type>InitialMapView</Type>
-      <Location/>
-      <Extension>
-        <ViewType>initial</ViewType>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-full</ImageClass>
-      <Label/>
-      <Tooltip>Click to zoom to the full map extents</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertZoomToSelection</Name>
-      <Type>ZoomToSelection</Type>
-      <Location/>
-      <Extension>
-        <MaximumZoomDimension>-1</MaximumZoomDimension>
-        <ZoomFactor>2</ZoomFactor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-zoom</ImageClass>
-      <Label/>
-      <Tooltip>Click to zoom to the selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-  </WidgetSet>
-  <Extension/>
+<?xml version="1.0" encoding="UTF-8"?>
+<ApplicationDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ApplicationDefinition-1.0.0.xsd"> +  <Title>Sample - \
Aqua</Title> +  <TemplateUrl>fusion/templates/mapguide/aqua/index.html</TemplateUrl>
+  <MapSet>
+    <MapGroup id="MainMap">
+      <Map>
+        <Type>MapGuide</Type>
+        <SingleTile>True</SingleTile>
+        <Extension>
+          <ResourceId>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</ResourceId>
 +          <SelectionColor>0x0000ffff</SelectionColor>
+          <SelectionAsOverlay>true</SelectionAsOverlay>
+        </Extension>
+      </Map>
+    </MapGroup>
+  </MapSet>
+  <WidgetSet>
+    <Container xsi:type="UiItemContainerType">
+      <Name>Toolbar</Name>
+      <Type>Toolbar</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Print</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>QuickPlot</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>RefreshMap</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Maptip</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>SelectRadius</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>SelectPolygon</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ClearSelection</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>tbBuffer</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Measure</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>FeatureInfo</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Query</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Theme</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Redline</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ViewOptions</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>About</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Help</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>ToolbarSecondary</Name>
+      <Type>Toolbar</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Select</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Pan</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Zoom</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomIn</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomOut</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>InitialMapView</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomToSelection</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>PreviousView</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>NextView</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>ToolbarVertical</Name>
+      <Type>Toolbar</Type>
+      <Position>left</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertSelect</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertPan</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertZoom</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertZoomIn</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertZoomOut</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertInitialMapView</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertZoomToSelection</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertPreviousView</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertNextView</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>FileMenu</Name>
+      <Type>Toolbar</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>MapMenu</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>BasemapSwitcher</Widget>
+      </Item>
+      <Item xsi:type="FlyoutItemType">
+        <Function>Flyout</Function>
+        <Label>View</Label>
+        <Item xsi:type="WidgetItemType">
+          <Function>Widget</Function>
+          <Widget>showOverview</Widget>
+        </Item>
+        <Item xsi:type="WidgetItemType">
+          <Function>Widget</Function>
+          <Widget>showTaskPane</Widget>
+        </Item>
+        <Item xsi:type="WidgetItemType">
+          <Function>Widget</Function>
+          <Widget>showLegend</Widget>
+        </Item>
+        <Item xsi:type="WidgetItemType">
+          <Function>Widget</Function>
+          <Widget>showSelectionPanel</Widget>
+        </Item>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>Statusbar</Name>
+      <Type>Splitterbar</Type>
+      <Position>bottom</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>statusCoordinates</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>statusSelection</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>EditableScale</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>statusViewSize</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>MapContextMenu</Name>
+      <Type>ContextMenu</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>RefreshMap</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Pan</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Zoom</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomIn</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomOut</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="FlyoutItemType">
+        <Function>Flyout</Function>
+        <Label>Zoom</Label>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Select</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ClearSelection</Widget>
+      </Item>
+      <Item xsi:type="FlyoutItemType">
+        <Function>Flyout</Function>
+        <Label>Select More</Label>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>tbBuffer</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Measure</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>FeatureInfo</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Query</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Theme</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Redline</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ViewOptions</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Help</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>About</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>TaskMenu</Name>
+      <Type>ContextMenu</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Measure</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>tbBuffer</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>FeatureInfo</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Query</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Theme</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Redline</Widget>
+      </Item>
+    </Container>
+    <MapWidget>
+      <Name>Map</Name>
+      <Type>Map</Type>
+      <Extension>
+        <MenuContainer>MapContextMenu</MenuContainer>
+      </Extension>
+      <MapId>MainMap</MapId>
+    </MapWidget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>About</Name>
+      <Type>About</Type>
+      <Location/>
+      <Extension>
+        <AboutURL>widgets/About/About.html</AboutURL>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>about</ImageClass>
+      <Label>About</Label>
+      <Tooltip>Click to show information about this application</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>ActivityIndicator</Name>
+      <Type>ActivityIndicator</Type>
+      <Location/>
+      <Extension>
+        <ElementId>
+        </ElementId>
+      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>BasemapSwitcher</Name>
+      <Type>BasemapSwitcher</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>options</ImageClass>
+      <Label>External Providers</Label>
+      <Tooltip>Click to change the basemap</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>BufferPanel</Name>
+      <Type>BufferPanel</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>buffer</ImageClass>
+      <Label>Buffer</Label>
+      <Tooltip>Click to create a buffer</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>CenterSelection</Name>
+      <Type>CenterSelection</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-centre</ImageClass>
+      <Label>Center selection</Label>
+      <Tooltip>Click to center the map on the current selection</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>ClearSelection</Name>
+      <Type>ClearSelection</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-clear</ImageClass>
+      <Label>Clear Selection</Label>
+      <Tooltip>Click to clear the current selection</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>ColorPicker</Name>
+      <Type>ColorPicker</Type>
+      <Location/>
+      <Extension>
+        <ColorInputId>
+        </ColorInputId>
+      </Extension>
+      <ImageUrl/>
+      <ImageClass/>
+      <Label>Color picker</Label>
+      <Tooltip>Use this tool to select a color</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>CoordinateTracker</Name>
+      <Type>CoordinateTracker</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+        <Projection>
+        </Projection>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>coordinate-tracker</ImageClass>
+      <Label>Coordinate Tracker</Label>
+      <Tooltip>Click to view mouse coordinates in various projections</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>EditableScale</Name>
+      <Type>EditableScale</Type>
+      <Location/>
+      <Extension>
+        <Precision>4</Precision>
+      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>FeatureInfo</Name>
+      <Type>FeatureInfo</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>feature-info</ImageClass>
+      <Label>Feature Info</Label>
+      <Tooltip>Click to display selected feature info</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Geolocation</Name>
+      <Type>Geolocation</Type>
+      <Location/>
+      <Extension>
+        <ZoomLevel>
+        </ZoomLevel>
+        <EnableHighAccuracy>false</EnableHighAccuracy>
+        <Timeout>5000</Timeout>
+        <MaximumAge>0</MaximumAge>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>geolocation</ImageClass>
+      <Label>My Location</Label>
+      <Tooltip>Click to zoom to your current geographic location</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>GoogleStreetViewer</Name>
+      <Type>GoogleStreetViewer</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+        <SymbolLayerName>GoogleStreetViewerSymbolLayer</SymbolLayerName>
+        <ShowDirection>true</ShowDirection>
+        <DirectionLength>22</DirectionLength>
+        <AdditionalParameter>
+        </AdditionalParameter>
+      </Extension>
+      <ImageUrl>../../../widgets/GoogleStreetViewer/GoogleStreetView.png</ImageUrl>
+      <ImageClass/>
+      <Label>Google StreetView</Label>
+      <Tooltip>Click to show Google StreetView</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Help</Name>
+      <Type>Help</Type>
+      <Location/>
+      <Extension>
+        <Target>HelpWindow</Target>
+        <Url>widgets/Help/Help.html</Url>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>help</ImageClass>
+      <Label>Help</Label>
+      <Tooltip>Click to get help</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>InitialMapView</Name>
+      <Type>InitialMapView</Type>
+      <Location/>
+      <Extension>
+        <ViewType>initial</ViewType>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>zoom-full</ImageClass>
+      <Label>Zoom Extents</Label>
+      <Tooltip>Click to zoom to the full map extents</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>Legend</Name>
+      <Type>Legend</Type>
+      <Location/>
+      <Extension>
+        <HideInvisibleLayers>true</HideInvisibleLayers>
+        <ShowRootFolder>false</ShowRootFolder>
+        <ShowMapFolder>false</ShowMapFolder>
+        <LayerRasterIcon>images/icons/legend-raster.png</LayerRasterIcon>
+        <LayerDWFIcon>images/icons/legend-DWF.png</LayerDWFIcon>
+        <LayerThemeIcon>images/icons/legend-theme.png</LayerThemeIcon>
+        <DisabledLayerIcon>images/icons/legend-layer.png</DisabledLayerIcon>
+        <LayerInfoIcon>images/icons/tree_layer_info.png</LayerInfoIcon>
+        <GroupInfoIcon>images/icons/tree_group_info.png</GroupInfoIcon>
+        <RootFolderIcon>images/icons/legend-map.png</RootFolderIcon>
+      </Extension>
+    </Widget>
+    <Widget>
+      <Name>LinkToView</Name>
+      <Type>LinkToView</Type>
+      <Location/>
+      <Extension/>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>MapMenu</Name>
+      <Type>MapMenu</Type>
+      <Location/>
+      <Extension>
+        <Folder>
+        </Folder>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>legend-map</ImageClass>
+      <Label>Maps</Label>
+      <Tooltip>Choose a map theme</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Maptip</Name>
+      <Type>Maptip</Type>
+      <Location/>
+      <Extension>
+        <Delay>350</Delay>
+        <Layer>
+        </Layer>
+        <Tolerance>2</Tolerance>
+        <Target>MaptipWindow</Target>
+        <WinFeatures>menubar=no,location=no,resizable=no,status=no</WinFeatures>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>maptip</ImageClass>
+      <Label>Maptip</Label>
+      <Tooltip>Click to Enable/Disable get information about features from \
Server</Tooltip> +      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>Navigator</Name>
+      <Type>Navigator</Type>
+      <Location/>
+      <Extension/>
+    </Widget>
+    <Widget>
+      <Name>OverviewMap</Name>
+      <Type>OverviewMap</Type>
+      <Location/>
+      <Extension>
+        <MapId>
+        </MapId>
+        <MinRatio>32</MinRatio>
+        <MaxRatio>128</MaxRatio>
+      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Pan</Name>
+      <Type>Pan</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>pan</ImageClass>
+      <Label>Pan</Label>
+      <Tooltip>Click and drag to pan the map</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>PanOnClick</Name>
+      <Type>PanOnClick</Type>
+      <Location/>
+      <Extension>
+        <Percentage>75</Percentage>
+        <Direction>none</Direction>
+      </Extension>
+      <ImageUrl/>
+      <ImageClass/>
+      <Label/>
+      <Tooltip/>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>PanQuery</Name>
+      <Type>PanQuery</Type>
+      <Location/>
+      <Extension>
+        <SelectionType>INTERSECTS</SelectionType>
+        <Tolerance>3</Tolerance>
+        <QueryActiveLayer>false</QueryActiveLayer>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>pan</ImageClass>
+      <Label>Pan query</Label>
+      <Tooltip>Drag the mouse to pan, click to query</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Print</Name>
+      <Type>Print</Type>
+      <Location/>
+      <Extension>
+        <ShowPrintUI>true</ShowPrintUI>
+        <ShowTitle>false</ShowTitle>
+        <PageTitle>
+        </PageTitle>
+        <ShowLegend>false</ShowLegend>
+        <ShowNorthArrow>false</ShowNorthArrow>
+        <ImageBaseUrl>
+        </ImageBaseUrl>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>file-print</ImageClass>
+      <Label>Print</Label>
+      <Tooltip>Print the current map view</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Query</Name>
+      <Type>Query</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>query</ImageClass>
+      <Label>Query</Label>
+      <Tooltip>Click to execute a custom query</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>QuickPlot</Name>
+      <Type>QuickPlot</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+        <RememberPlotOptions>false</RememberPlotOptions>
+        <ShowCoordinateLabels>true</ShowCoordinateLabels>
+        <ShowSubTitle>true</ShowSubTitle>
+        <DefaultDpi>96</DefaultDpi>
+        <PaperListEntry>
+        </PaperListEntry>
+        <ScaleListEntry>
+        </ScaleListEntry>
+        <DefaultMargin>25.4,12.7,12.7,12.7</DefaultMargin>
+        <Disclaimer>The materials available at this web site are for informational \
purposes only and do not constitute a legal document.</Disclaimer> +        \
<AllowDisclaimerToggle>true</AllowDisclaimerToggle> +        \
<ShowLegend>false</ShowLegend> +        <ShowNorthArrow>false</ShowNorthArrow>
+        <ShowCoordinates>false</ShowCoordinates>
+        <ShowScaleBar>false</ShowScaleBar>
+        <ShowLegalDisclaimer>true</ShowLegalDisclaimer>
+      </Extension>
+      <ImageUrl>images/icons/print.png</ImageUrl>
+      <ImageClass/>
+      <Label>Quick Plot</Label>
+      <Tooltip>Click to create a plot quickly</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Redline</Name>
+      <Type>Redline</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+        <AutogenerateLayerNames>true</AutogenerateLayerNames>
+        <UseMapMessage>true</UseMapMessage>
+        <DataStoreFormat>
+        </DataStoreFormat>
+        <RedlineGeometryFormat>7</RedlineGeometryFormat>
+        <AutoCreateOnStartup>true</AutoCreateOnStartup>
+        <StylizationType>basic</StylizationType>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>redline</ImageClass>
+      <Label>Redline</Label>
+      <Tooltip>Click to draw redline features</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>RefreshMap</Name>
+      <Type>RefreshMap</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>view-refresh</ImageClass>
+      <Label>Refresh</Label>
+      <Tooltip>Click to redraw the map</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>SaveMap</Name>
+      <Type>SaveMap</Type>
+      <Location/>
+      <Extension>
+        <Format>png</Format>
+        <Scale>
+        </Scale>
+        <ResourceId>
+        </ResourceId>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>file-save</ImageClass>
+      <Label>Save map</Label>
+      <Tooltip>Click to save the map as an image</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>Scalebar</Name>
+      <Type>Scalebar</Type>
+      <Location/>
+      <Extension>
+        <Style>thin</Style>
+        <DisplaySystem>metric</DisplaySystem>
+        <MinWidth>100</MinWidth>
+        <MaxWidth>200</MaxWidth>
+        <Divisions>2</Divisions>
+        <SubDivisions>2</SubDivisions>
+        <ShowMinorMeasures>true</ShowMinorMeasures>
+        <AbbreviateLabel>true</AbbreviateLabel>
+        <SingleLine>false</SingleLine>
+      </Extension>
+    </Widget>
+    <Widget>
+      <Name>ScalebarDual</Name>
+      <Type>ScalebarDual</Type>
+      <Location/>
+      <Extension>
+        <MaxWidth>300</MaxWidth>
+        <TopInUnits>ft</TopInUnits>
+        <TopOutUnits>mi</TopOutUnits>
+        <BottomInUnits>m</BottomInUnits>
+        <BottomOutUnits>km</BottomOutUnits>
+      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Select</Name>
+      <Type>Select</Type>
+      <Location/>
+      <Extension>
+        <SelectionType>INTERSECTS</SelectionType>
+        <Tolerance>3</Tolerance>
+        <QueryActiveLayer>false</QueryActiveLayer>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select</ImageClass>
+      <Label>Select</Label>
+      <Tooltip>Click to select features</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>SelectionPanel</Name>
+      <Type>SelectionPanel</Type>
+      <Location/>
+      <Extension>
+        <PreviousImageUrl>
+        </PreviousImageUrl>
+        <NextImageUrl>
+        </NextImageUrl>
+        <ResultsPerPage>0</ResultsPerPage>
+        <SelectionRenderer>Fusion.Widget.SelectionPanel.SelectionRendererDefault</SelectionRenderer>
 +      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>SelectPolygon</Name>
+      <Type>SelectPolygon</Type>
+      <Location/>
+      <Extension>
+        <SelectionType>INTERSECTS</SelectionType>
+        <Tolerance>3</Tolerance>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-polygon</ImageClass>
+      <Label>Select Polygon</Label>
+      <Tooltip>Draw a polygon to perform a selection</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>SelectRadius</Name>
+      <Type>SelectRadius</Type>
+      <Location/>
+      <Extension>
+        <SelectionType>INTERSECTS</SelectionType>
+        <Tolerance>3</Tolerance>
+        <DefaultRadius>20</DefaultRadius>
+        <RadiusTooltipContainer>
+        </RadiusTooltipContainer>
+        <RadiusTooltipType>dynamic</RadiusTooltipType>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-radius</ImageClass>
+      <Label>Select Radius</Label>
+      <Tooltip>Click to select within a radius</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>SelectRadiusValue</Name>
+      <Type>SelectRadiusValue</Type>
+      <Location/>
+      <Extension>
+        <RadiusName>SelectRadius</RadiusName>
+        <Label>
+        </Label>
+        <ClassName>
+        </ClassName>
+      </Extension>
+      <ImageUrl/>
+      <ImageClass/>
+      <Label>Select radius value</Label>
+      <Tooltip>enter the radius for the Select by Radius tool</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>SelectWithin</Name>
+      <Type>SelectWithin</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+        <DisableIfSelectionEmpty>true</DisableIfSelectionEmpty>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-features</ImageClass>
+      <Label>Select within</Label>
+      <Tooltip>Click to select features within this selection</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>TaskPane</Name>
+      <Type>TaskPane</Type>
+      <Location/>
+      <Extension>
+        <InitialTask>
+        </InitialTask>
+        <MenuContainer>TaskMenu</MenuContainer>
+      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Theme</Name>
+      <Type>Theme</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>theme</ImageClass>
+      <Label>Theme</Label>
+      <Tooltip>Click to create a themed layer</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>ViewOptions</Name>
+      <Type>ViewOptions</Type>
+      <Location/>
+      <Extension>
+        <DisplayUnits>
+        </DisplayUnits>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>options</ImageClass>
+      <Label>Options</Label>
+      <Tooltip>Click to change the units displayed</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Zoom</Name>
+      <Type>Zoom</Type>
+      <Location/>
+      <Extension>
+        <Tolerance>5</Tolerance>
+        <Factor>2</Factor>
+        <Direction>in</Direction>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>zoom-in</ImageClass>
+      <Label>Zoom Rectangle</Label>
+      <Tooltip>Click or click and drag on the map to zoom in</Tooltip>
+      <StatusText>Click or click and drag on the map to zoom in</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>ZoomToSelection</Name>
+      <Type>ZoomToSelection</Type>
+      <Location/>
+      <Extension>
+        <MaximumZoomDimension>-1</MaximumZoomDimension>
+        <ZoomFactor>2</ZoomFactor>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-zoom</ImageClass>
+      <Label>Zoom Selection</Label>
+      <Tooltip>Click to zoom to the selection</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>ZoomIn</Name>
+      <Type>ZoomOnClick</Type>
+      <Location/>
+      <Extension>
+        <Factor>2</Factor>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>zoom-in-fixed</ImageClass>
+      <Label>Zoom In</Label>
+      <Tooltip>Zoom in by a preset increment</Tooltip>
+      <StatusText>Zoom in by a preset increment</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>ZoomOut</Name>
+      <Type>ZoomOnClick</Type>
+      <Location/>
+      <Extension>
+        <Factor>0.5</Factor>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>zoom-out-fixed</ImageClass>
+      <Label>Zoom Out</Label>
+      <Tooltip>Zoom out by a preset increment</Tooltip>
+      <StatusText>Zoom out by a preset increment</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>PreviousView</Name>
+      <Type>ExtentHistory</Type>
+      <Location/>
+      <Extension>
+        <Direction>previous</Direction>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>view-back</ImageClass>
+      <Label>Previous</Label>
+      <Tooltip>Go to previous view</Tooltip>
+      <StatusText>Go to previous view</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>NextView</Name>
+      <Type>ExtentHistory</Type>
+      <Location/>
+      <Extension>
+        <Direction>next</Direction>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>view-forward</ImageClass>
+      <Label>Next</Label>
+      <Tooltip>Go to next view</Tooltip>
+      <StatusText>Go to next view</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>tbBuffer</Name>
+      <Type>BufferPanel</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>buffer</ImageClass>
+      <Label>Buffer</Label>
+      <Tooltip>Measure distances and areas on the map</Tooltip>
+      <StatusText>Create buffers around the selected features</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>Measure</Name>
+      <Type>Measure</Type>
+      <Location/>
+      <Extension>
+        <Type>both</Type>
+        <MeasureTooltipContainer>MeasureResult</MeasureTooltipContainer>
+        <MeasureTooltipType>dynamic</MeasureTooltipType>
+        <DistancePrecision>0</DistancePrecision>
+        <AreaPrecision>0</AreaPrecision>
+        <Units>meters</Units>
+        <Target>TaskPane</Target>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>measure</ImageClass>
+      <Label>Measure</Label>
+      <Tooltip>Measure</Tooltip>
+      <StatusText>Measure distances and areas on the map</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>showOverview</Name>
+      <Type>InvokeScript</Type>
+      <Location/>
+      <Extension>
+        <Script>showOverviewMap()</Script>
+      </Extension>
+      <ImageUrl/>
+      <ImageClass/>
+      <Label>Show Overview</Label>
+      <Tooltip/>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>showTaskPane</Name>
+      <Type>InvokeScript</Type>
+      <Location/>
+      <Extension>
+        <Script>showTaskPane()</Script>
+      </Extension>
+      <ImageUrl/>
+      <ImageClass/>
+      <Label>Show Task Pane</Label>
+      <Tooltip/>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>showLegend</Name>
+      <Type>InvokeScript</Type>
+      <Location/>
+      <Extension>
+        <Script>showLegend()</Script>
+      </Extension>
+      <ImageUrl/>
+      <ImageClass/>
+      <Label>Show Legend</Label>
+      <Tooltip/>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>showSelectionPanel</Name>
+      <Type>InvokeScript</Type>
+      <Location/>
+      <Extension>
+        <Script>showSelectionPanel()</Script>
+      </Extension>
+      <ImageUrl/>
+      <ImageClass/>
+      <Label>Show Selection Panel</Label>
+      <Tooltip/>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>statusCoordinates</Name>
+      <Type>CursorPosition</Type>
+      <Location/>
+      <Extension>
+        <Template>X: {x} {units}, Y: {y} {units}</Template>
+        <Precision>4</Precision>
+        <DisplayProjection>
+        </DisplayProjection>
+        <Units>dd</Units>
+        <EmptyText>&amp;amp;nbsp;</EmptyText>
+      </Extension>
+    </Widget>
+    <Widget>
+      <Name>statusSelection</Name>
+      <Type>SelectionInfo</Type>
+      <Location/>
+      <Extension>
+        <Template>{0} feature(s) selected on {1} layer(s)</Template>
+        <EmptyText>No selection</EmptyText>
+      </Extension>
+    </Widget>
+    <Widget>
+      <Name>statusViewSize</Name>
+      <Type>ViewSize</Type>
+      <Location/>
+      <Extension>
+        <Units>Meters</Units>
+        <Precision>2</Precision>
+        <Template>{w} x {h} ({units})</Template>
+      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertZoomIn</Name>
+      <Type>ZoomOnClick</Type>
+      <Location/>
+      <Extension>
+        <Factor>2</Factor>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>zoom-in-fixed</ImageClass>
+      <Label/>
+      <Tooltip>Zoom in by a preset increment</Tooltip>
+      <StatusText>Zoom in by a preset increment</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertZoomOut</Name>
+      <Type>ZoomOnClick</Type>
+      <Location/>
+      <Extension>
+        <Factor>0.5</Factor>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>zoom-out-fixed</ImageClass>
+      <Label/>
+      <Tooltip>Zoom out by a preset increment</Tooltip>
+      <StatusText>Zoom out by a preset increment</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertPreviousView</Name>
+      <Type>ExtentHistory</Type>
+      <Location/>
+      <Extension>
+        <Direction>previous</Direction>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>view-back</ImageClass>
+      <Label/>
+      <Tooltip>Go to previous view</Tooltip>
+      <StatusText>Go to previous view</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertNextView</Name>
+      <Type>ExtentHistory</Type>
+      <Location/>
+      <Extension>
+        <Direction>next</Direction>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>view-forward</ImageClass>
+      <Label/>
+      <Tooltip>Go to next view</Tooltip>
+      <StatusText>Go to next view</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertSelect</Name>
+      <Type>Select</Type>
+      <Location/>
+      <Extension>
+        <SelectionType>INTERSECTS</SelectionType>
+        <Tolerance>3</Tolerance>
+        <QueryActiveLayer>false</QueryActiveLayer>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select</ImageClass>
+      <Label/>
+      <Tooltip>Click to select features</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertPan</Name>
+      <Type>Pan</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>pan</ImageClass>
+      <Label/>
+      <Tooltip>Click and drag to pan the map</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertZoom</Name>
+      <Type>Zoom</Type>
+      <Location/>
+      <Extension>
+        <Tolerance>5</Tolerance>
+        <Factor>2</Factor>
+        <Direction>in</Direction>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>zoom-in</ImageClass>
+      <Label/>
+      <Tooltip>Click or click and drag on the map to zoom in</Tooltip>
+      <StatusText>Click or click and drag on the map to zoom in</StatusText>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertInitialMapView</Name>
+      <Type>InitialMapView</Type>
+      <Location/>
+      <Extension>
+        <ViewType>initial</ViewType>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>zoom-full</ImageClass>
+      <Label/>
+      <Tooltip>Click to zoom to the full map extents</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>vertZoomToSelection</Name>
+      <Type>ZoomToSelection</Type>
+      <Location/>
+      <Extension>
+        <MaximumZoomDimension>-1</MaximumZoomDimension>
+        <ZoomFactor>2</ZoomFactor>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-zoom</ImageClass>
+      <Label/>
+      <Tooltip>Click to zoom to the selection</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+  </WidgetSet>
+  <Extension/>
 </ApplicationDefinition>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Aqua.ApplicationDefinition_HEADER.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Aqua.ApplicationDefinition_HEADER.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/Aqua.ApplicationDefinition_HEADER.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd">
-  <Security>
-    <Inherited>true</Inherited>
-  </Security>
+<?xml version="1.0" encoding="UTF-8"?>
+<ResourceDocumentHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:noNamespaceSchemaLocation="ResourceDocumentHeader-1.0.0.xsd"> +	<Security \
xsi:noNamespaceSchemaLocation="ResourceSecurity-1.0.0.xsd"> \
+		<Inherited>true</Inherited> +	</Security>
 </ResourceDocumentHeader>
\ No newline at end of file

Modified: trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/LimeGold.ApplicationDefinition_CONTENT.xml
 ===================================================================
--- trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/LimeGold.ApplicationDefinition_CONTENT.xml	2022-10-10 \
                09:50:27 UTC (rev 9972)
+++ trunk/MgDev/UnitTest/TestData/Samples/Sheboygan/Library/Samples/Sheboygan/FlexibleLayouts/LimeGold.ApplicationDefinition_CONTENT.xml	2022-10-10 \
10:00:53 UTC (rev 9973) @@ -1,1294 +1,1294 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ApplicationDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
                xsi:noNamespaceSchemaLocation="ApplicationDefinition-1.0.0.xsd">
-  <Title>Sample - LimeGold</Title>
-  <TemplateUrl>fusion/templates/mapguide/limegold/index.html</TemplateUrl>
-  <MapSet>
-    <MapGroup id="MainMap">
-      <Map>
-        <Type>MapGuide</Type>
-        <SingleTile>True</SingleTile>
-        <Extension>
-          <ResourceId>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</ResourceId>
                
-          <SelectionColor>0x0000ffff</SelectionColor>
-          <SelectionAsOverlay>true</SelectionAsOverlay>
-        </Extension>
-      </Map>
-    </MapGroup>
-  </MapSet>
-  <WidgetSet>
-    <Container xsi:type="UiItemContainerType">
-      <Name>Toolbar</Name>
-      <Type>Toolbar</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Print</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>QuickPlot</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>RefreshMap</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Maptip</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>SelectRadius</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>SelectPolygon</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ClearSelection</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>tbBuffer</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Measure</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>FeatureInfo</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Query</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Theme</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Redline</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ViewOptions</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>About</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Help</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>ToolbarSecondary</Name>
-      <Type>Toolbar</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Select</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Pan</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Zoom</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomIn</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomOut</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>InitialMapView</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomToSelection</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>PreviousView</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>NextView</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>ToolbarVertical</Name>
-      <Type>Toolbar</Type>
-      <Position>left</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertSelect</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertPan</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertZoom</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertZoomIn</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertZoomOut</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertInitialMapView</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertZoomToSelection</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertPreviousView</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>vertNextView</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>FileMenu</Name>
-      <Type>Toolbar</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>MapMenu</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>BasemapSwitcher</Widget>
-      </Item>
-      <Item xsi:type="FlyoutItemType">
-        <Function>Flyout</Function>
-        <Label>View</Label>
-        <Item xsi:type="WidgetItemType">
-          <Function>Widget</Function>
-          <Widget>showOverview</Widget>
-        </Item>
-        <Item xsi:type="WidgetItemType">
-          <Function>Widget</Function>
-          <Widget>showTaskPane</Widget>
-        </Item>
-        <Item xsi:type="WidgetItemType">
-          <Function>Widget</Function>
-          <Widget>showLegend</Widget>
-        </Item>
-        <Item xsi:type="WidgetItemType">
-          <Function>Widget</Function>
-          <Widget>showSelectionPanel</Widget>
-        </Item>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>Statusbar</Name>
-      <Type>Splitterbar</Type>
-      <Position>bottom</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>statusCoordinates</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>statusSelection</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>EditableScale</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>statusViewSize</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>MapContextMenu</Name>
-      <Type>ContextMenu</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>RefreshMap</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Pan</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Zoom</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomIn</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ZoomOut</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="FlyoutItemType">
-        <Function>Flyout</Function>
-        <Label>Zoom</Label>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Select</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ClearSelection</Widget>
-      </Item>
-      <Item xsi:type="FlyoutItemType">
-        <Function>Flyout</Function>
-        <Label>Select More</Label>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>tbBuffer</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Measure</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>FeatureInfo</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Query</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Theme</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Redline</Widget>
-      </Item>
-      <Item xsi:type="SeparatorItemType">
-        <Function>Separator</Function>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>ViewOptions</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Help</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>About</Widget>
-      </Item>
-    </Container>
-    <Container xsi:type="UiItemContainerType">
-      <Name>TaskMenu</Name>
-      <Type>ContextMenu</Type>
-      <Position>top</Position>
-      <Extension/>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Measure</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>tbBuffer</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>FeatureInfo</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Query</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Theme</Widget>
-      </Item>
-      <Item xsi:type="WidgetItemType">
-        <Function>Widget</Function>
-        <Widget>Redline</Widget>
-      </Item>
-    </Container>
-    <MapWidget>
-      <Name>Map</Name>
-      <Type>Map</Type>
-      <Extension>
-        <MenuContainer>MapContextMenu</MenuContainer>
-      </Extension>
-      <MapId>MainMap</MapId>
-    </MapWidget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>About</Name>
-      <Type>About</Type>
-      <Location/>
-      <Extension>
-        <AboutURL>widgets/About/About.html</AboutURL>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>about</ImageClass>
-      <Label>About</Label>
-      <Tooltip>Click to show information about this application</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>ActivityIndicator</Name>
-      <Type>ActivityIndicator</Type>
-      <Location/>
-      <Extension>
-        <ElementId>
-        </ElementId>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>BasemapSwitcher</Name>
-      <Type>BasemapSwitcher</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>options</ImageClass>
-      <Label>External Providers</Label>
-      <Tooltip>Click to change the basemap</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>BufferPanel</Name>
-      <Type>BufferPanel</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>buffer</ImageClass>
-      <Label>Buffer</Label>
-      <Tooltip>Click to create a buffer</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>CenterSelection</Name>
-      <Type>CenterSelection</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-centre</ImageClass>
-      <Label>Center selection</Label>
-      <Tooltip>Click to center the map on the current selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ClearSelection</Name>
-      <Type>ClearSelection</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-clear</ImageClass>
-      <Label>Clear Selection</Label>
-      <Tooltip>Click to clear the current selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ColorPicker</Name>
-      <Type>ColorPicker</Type>
-      <Location/>
-      <Extension>
-        <ColorInputId>
-        </ColorInputId>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Color picker</Label>
-      <Tooltip>Use this tool to select a color</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>CoordinateTracker</Name>
-      <Type>CoordinateTracker</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <Projection>
-        </Projection>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>coordinate-tracker</ImageClass>
-      <Label>Coordinate Tracker</Label>
-      <Tooltip>Click to view mouse coordinates in various projections</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>EditableScale</Name>
-      <Type>EditableScale</Type>
-      <Location/>
-      <Extension>
-        <Precision>4</Precision>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>FeatureInfo</Name>
-      <Type>FeatureInfo</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>feature-info</ImageClass>
-      <Label>Feature Info</Label>
-      <Tooltip>Click to display selected feature info</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Geolocation</Name>
-      <Type>Geolocation</Type>
-      <Location/>
-      <Extension>
-        <ZoomLevel>
-        </ZoomLevel>
-        <EnableHighAccuracy>false</EnableHighAccuracy>
-        <Timeout>5000</Timeout>
-        <MaximumAge>0</MaximumAge>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>geolocation</ImageClass>
-      <Label>My Location</Label>
-      <Tooltip>Click to zoom to your current geographic location</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>GoogleStreetViewer</Name>
-      <Type>GoogleStreetViewer</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <SymbolLayerName>GoogleStreetViewerSymbolLayer</SymbolLayerName>
-        <ShowDirection>true</ShowDirection>
-        <DirectionLength>22</DirectionLength>
-        <AdditionalParameter>
-        </AdditionalParameter>
-      </Extension>
-      <ImageUrl>../../../widgets/GoogleStreetViewer/GoogleStreetView.png</ImageUrl>
-      <ImageClass/>
-      <Label>Google StreetView</Label>
-      <Tooltip>Click to show Google StreetView</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Help</Name>
-      <Type>Help</Type>
-      <Location/>
-      <Extension>
-        <Target>HelpWindow</Target>
-        <Url>widgets/Help/Help.html</Url>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>help</ImageClass>
-      <Label>Help</Label>
-      <Tooltip>Click to get help</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>InitialMapView</Name>
-      <Type>InitialMapView</Type>
-      <Location/>
-      <Extension>
-        <ViewType>initial</ViewType>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-full</ImageClass>
-      <Label>Zoom Extents</Label>
-      <Tooltip>Click to zoom to the full map extents</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>Legend</Name>
-      <Type>Legend</Type>
-      <Location/>
-      <Extension>
-        <HideInvisibleLayers>true</HideInvisibleLayers>
-        <ShowRootFolder>false</ShowRootFolder>
-        <ShowMapFolder>false</ShowMapFolder>
-        <LayerRasterIcon>images/icons/legend-raster.png</LayerRasterIcon>
-        <LayerDWFIcon>images/icons/legend-DWF.png</LayerDWFIcon>
-        <LayerThemeIcon>images/icons/legend-theme.png</LayerThemeIcon>
-        <DisabledLayerIcon>images/icons/legend-layer.png</DisabledLayerIcon>
-        <LayerInfoIcon>images/icons/tree_layer_info.png</LayerInfoIcon>
-        <GroupInfoIcon>images/icons/tree_group_info.png</GroupInfoIcon>
-        <RootFolderIcon>images/icons/legend-map.png</RootFolderIcon>
-      </Extension>
-    </Widget>
-    <Widget>
-      <Name>LinkToView</Name>
-      <Type>LinkToView</Type>
-      <Location/>
-      <Extension/>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>MapMenu</Name>
-      <Type>MapMenu</Type>
-      <Location/>
-      <Extension>
-        <Folder>
-        </Folder>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>legend-map</ImageClass>
-      <Label>Maps</Label>
-      <Tooltip>Choose a map theme</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Maptip</Name>
-      <Type>Maptip</Type>
-      <Location/>
-      <Extension>
-        <Delay>350</Delay>
-        <Layer>
-        </Layer>
-        <Tolerance>2</Tolerance>
-        <Target>MaptipWindow</Target>
-        <WinFeatures>menubar=no,location=no,resizable=no,status=no</WinFeatures>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>maptip</ImageClass>
-      <Label>Maptip</Label>
-      <Tooltip>Click to Enable/Disable get information about features from \
                Server</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>Navigator</Name>
-      <Type>Navigator</Type>
-      <Location/>
-      <Extension/>
-    </Widget>
-    <Widget>
-      <Name>OverviewMap</Name>
-      <Type>OverviewMap</Type>
-      <Location/>
-      <Extension>
-        <MapId>
-        </MapId>
-        <MinRatio>32</MinRatio>
-        <MaxRatio>128</MaxRatio>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Pan</Name>
-      <Type>Pan</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>pan</ImageClass>
-      <Label>Pan</Label>
-      <Tooltip>Click and drag to pan the map</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>PanOnClick</Name>
-      <Type>PanOnClick</Type>
-      <Location/>
-      <Extension>
-        <Percentage>75</Percentage>
-        <Direction>none</Direction>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label/>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>PanQuery</Name>
-      <Type>PanQuery</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-        <QueryActiveLayer>false</QueryActiveLayer>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>pan</ImageClass>
-      <Label>Pan query</Label>
-      <Tooltip>Drag the mouse to pan, click to query</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Print</Name>
-      <Type>Print</Type>
-      <Location/>
-      <Extension>
-        <ShowPrintUI>true</ShowPrintUI>
-        <ShowTitle>false</ShowTitle>
-        <PageTitle>
-        </PageTitle>
-        <ShowLegend>false</ShowLegend>
-        <ShowNorthArrow>false</ShowNorthArrow>
-        <ImageBaseUrl>
-        </ImageBaseUrl>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>file-print</ImageClass>
-      <Label>Print</Label>
-      <Tooltip>Print the current map view</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Query</Name>
-      <Type>Query</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>query</ImageClass>
-      <Label>Query</Label>
-      <Tooltip>Click to execute a custom query</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>QuickPlot</Name>
-      <Type>QuickPlot</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <RememberPlotOptions>false</RememberPlotOptions>
-        <ShowCoordinateLabels>true</ShowCoordinateLabels>
-        <ShowSubTitle>true</ShowSubTitle>
-        <DefaultDpi>96</DefaultDpi>
-        <PaperListEntry>
-        </PaperListEntry>
-        <ScaleListEntry>
-        </ScaleListEntry>
-        <DefaultMargin>25.4,12.7,12.7,12.7</DefaultMargin>
-        <Disclaimer>The materials available at this web site are for informational \
                purposes only and do not constitute a legal document.</Disclaimer>
-        <AllowDisclaimerToggle>true</AllowDisclaimerToggle>
-        <ShowLegend>false</ShowLegend>
-        <ShowNorthArrow>false</ShowNorthArrow>
-        <ShowCoordinates>false</ShowCoordinates>
-        <ShowScaleBar>false</ShowScaleBar>
-        <ShowLegalDisclaimer>true</ShowLegalDisclaimer>
-      </Extension>
-      <ImageUrl>images/icons/print.png</ImageUrl>
-      <ImageClass/>
-      <Label>Quick Plot</Label>
-      <Tooltip>Click to create a plot quickly</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Redline</Name>
-      <Type>Redline</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <AutogenerateLayerNames>true</AutogenerateLayerNames>
-        <UseMapMessage>true</UseMapMessage>
-        <DataStoreFormat>
-        </DataStoreFormat>
-        <RedlineGeometryFormat>7</RedlineGeometryFormat>
-        <AutoCreateOnStartup>true</AutoCreateOnStartup>
-        <StylizationType>basic</StylizationType>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>redline</ImageClass>
-      <Label>Redline</Label>
-      <Tooltip>Click to draw redline features</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>RefreshMap</Name>
-      <Type>RefreshMap</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-refresh</ImageClass>
-      <Label>Refresh</Label>
-      <Tooltip>Click to redraw the map</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SaveMap</Name>
-      <Type>SaveMap</Type>
-      <Location/>
-      <Extension>
-        <Format>png</Format>
-        <Scale>
-        </Scale>
-        <ResourceId>
-        </ResourceId>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>file-save</ImageClass>
-      <Label>Save map</Label>
-      <Tooltip>Click to save the map as an image</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>Scalebar</Name>
-      <Type>Scalebar</Type>
-      <Location/>
-      <Extension>
-        <Style>thin</Style>
-        <DisplaySystem>metric</DisplaySystem>
-        <MinWidth>100</MinWidth>
-        <MaxWidth>200</MaxWidth>
-        <Divisions>2</Divisions>
-        <SubDivisions>2</SubDivisions>
-        <ShowMinorMeasures>true</ShowMinorMeasures>
-        <AbbreviateLabel>true</AbbreviateLabel>
-        <SingleLine>false</SingleLine>
-      </Extension>
-    </Widget>
-    <Widget>
-      <Name>ScalebarDual</Name>
-      <Type>ScalebarDual</Type>
-      <Location/>
-      <Extension>
-        <MaxWidth>300</MaxWidth>
-        <TopInUnits>ft</TopInUnits>
-        <TopOutUnits>mi</TopOutUnits>
-        <BottomInUnits>m</BottomInUnits>
-        <BottomOutUnits>km</BottomOutUnits>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Select</Name>
-      <Type>Select</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-        <QueryActiveLayer>false</QueryActiveLayer>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select</ImageClass>
-      <Label>Select</Label>
-      <Tooltip>Click to select features</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>SelectionPanel</Name>
-      <Type>SelectionPanel</Type>
-      <Location/>
-      <Extension>
-        <PreviousImageUrl>
-        </PreviousImageUrl>
-        <NextImageUrl>
-        </NextImageUrl>
-        <ResultsPerPage>0</ResultsPerPage>
-        <SelectionRenderer>Fusion.Widget.SelectionPanel.SelectionRendererDefault</SelectionRenderer>
                
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SelectPolygon</Name>
-      <Type>SelectPolygon</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-polygon</ImageClass>
-      <Label>Select Polygon</Label>
-      <Tooltip>Draw a polygon to perform a selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SelectRadius</Name>
-      <Type>SelectRadius</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-        <DefaultRadius>20</DefaultRadius>
-        <RadiusTooltipContainer>
-        </RadiusTooltipContainer>
-        <RadiusTooltipType>dynamic</RadiusTooltipType>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-radius</ImageClass>
-      <Label>Select Radius</Label>
-      <Tooltip>Click to select within a radius</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SelectRadiusValue</Name>
-      <Type>SelectRadiusValue</Type>
-      <Location/>
-      <Extension>
-        <RadiusName>SelectRadius</RadiusName>
-        <Label>
-        </Label>
-        <ClassName>
-        </ClassName>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Select radius value</Label>
-      <Tooltip>enter the radius for the Select by Radius tool</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>SelectWithin</Name>
-      <Type>SelectWithin</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-        <DisableIfSelectionEmpty>true</DisableIfSelectionEmpty>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-features</ImageClass>
-      <Label>Select within</Label>
-      <Tooltip>Click to select features within this selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>TaskPane</Name>
-      <Type>TaskPane</Type>
-      <Location/>
-      <Extension>
-        <InitialTask>
-        </InitialTask>
-        <MenuContainer>TaskMenu</MenuContainer>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Theme</Name>
-      <Type>Theme</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>theme</ImageClass>
-      <Label>Theme</Label>
-      <Tooltip>Click to create a themed layer</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ViewOptions</Name>
-      <Type>ViewOptions</Type>
-      <Location/>
-      <Extension>
-        <DisplayUnits>
-        </DisplayUnits>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>options</ImageClass>
-      <Label>Options</Label>
-      <Tooltip>Click to change the units displayed</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Zoom</Name>
-      <Type>Zoom</Type>
-      <Location/>
-      <Extension>
-        <Tolerance>5</Tolerance>
-        <Factor>2</Factor>
-        <Direction>in</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-in</ImageClass>
-      <Label>Zoom Rectangle</Label>
-      <Tooltip>Click or click and drag on the map to zoom in</Tooltip>
-      <StatusText>Click or click and drag on the map to zoom in</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ZoomToSelection</Name>
-      <Type>ZoomToSelection</Type>
-      <Location/>
-      <Extension>
-        <MaximumZoomDimension>-1</MaximumZoomDimension>
-        <ZoomFactor>2</ZoomFactor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-zoom</ImageClass>
-      <Label>Zoom Selection</Label>
-      <Tooltip>Click to zoom to the selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ZoomIn</Name>
-      <Type>ZoomOnClick</Type>
-      <Location/>
-      <Extension>
-        <Factor>2</Factor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-in-fixed</ImageClass>
-      <Label>Zoom In</Label>
-      <Tooltip>Zoom in by a preset increment</Tooltip>
-      <StatusText>Zoom in by a preset increment</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>ZoomOut</Name>
-      <Type>ZoomOnClick</Type>
-      <Location/>
-      <Extension>
-        <Factor>0.5</Factor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-out-fixed</ImageClass>
-      <Label>Zoom Out</Label>
-      <Tooltip>Zoom out by a preset increment</Tooltip>
-      <StatusText>Zoom out by a preset increment</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>PreviousView</Name>
-      <Type>ExtentHistory</Type>
-      <Location/>
-      <Extension>
-        <Direction>previous</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-back</ImageClass>
-      <Label>Previous</Label>
-      <Tooltip>Go to previous view</Tooltip>
-      <StatusText>Go to previous view</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>NextView</Name>
-      <Type>ExtentHistory</Type>
-      <Location/>
-      <Extension>
-        <Direction>next</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-forward</ImageClass>
-      <Label>Next</Label>
-      <Tooltip>Go to next view</Tooltip>
-      <StatusText>Go to next view</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>tbBuffer</Name>
-      <Type>BufferPanel</Type>
-      <Location/>
-      <Extension>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>buffer</ImageClass>
-      <Label>Buffer</Label>
-      <Tooltip>Measure distances and areas on the map</Tooltip>
-      <StatusText>Create buffers around the selected features</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>Measure</Name>
-      <Type>Measure</Type>
-      <Location/>
-      <Extension>
-        <Type>both</Type>
-        <MeasureTooltipContainer>MeasureResult</MeasureTooltipContainer>
-        <MeasureTooltipType>dynamic</MeasureTooltipType>
-        <DistancePrecision>0</DistancePrecision>
-        <AreaPrecision>0</AreaPrecision>
-        <Units>meters</Units>
-        <Target>TaskPane</Target>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>measure</ImageClass>
-      <Label>Measure</Label>
-      <Tooltip>Measure</Tooltip>
-      <StatusText>Measure distances and areas on the map</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>showOverview</Name>
-      <Type>InvokeScript</Type>
-      <Location/>
-      <Extension>
-        <Script>showOverviewMap()</Script>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Show Overview</Label>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>showTaskPane</Name>
-      <Type>InvokeScript</Type>
-      <Location/>
-      <Extension>
-        <Script>showTaskPane()</Script>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Show Task Pane</Label>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>showLegend</Name>
-      <Type>InvokeScript</Type>
-      <Location/>
-      <Extension>
-        <Script>showLegend()</Script>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Show Legend</Label>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>showSelectionPanel</Name>
-      <Type>InvokeScript</Type>
-      <Location/>
-      <Extension>
-        <Script>showSelectionPanel()</Script>
-      </Extension>
-      <ImageUrl/>
-      <ImageClass/>
-      <Label>Show Selection Panel</Label>
-      <Tooltip/>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget>
-      <Name>statusCoordinates</Name>
-      <Type>CursorPosition</Type>
-      <Location/>
-      <Extension>
-        <Template>X: {x} {units}, Y: {y} {units}</Template>
-        <Precision>4</Precision>
-        <DisplayProjection>
-        </DisplayProjection>
-        <Units>dd</Units>
-        <EmptyText>&amp;amp;nbsp;</EmptyText>
-      </Extension>
-    </Widget>
-    <Widget>
-      <Name>statusSelection</Name>
-      <Type>SelectionInfo</Type>
-      <Location/>
-      <Extension>
-        <Template>{0} feature(s) selected on {1} layer(s)</Template>
-        <EmptyText>No selection</EmptyText>
-      </Extension>
-    </Widget>
-    <Widget>
-      <Name>statusViewSize</Name>
-      <Type>ViewSize</Type>
-      <Location/>
-      <Extension>
-        <Units>Meters</Units>
-        <Precision>2</Precision>
-        <Template>{w} x {h} ({units})</Template>
-      </Extension>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertZoomIn</Name>
-      <Type>ZoomOnClick</Type>
-      <Location/>
-      <Extension>
-        <Factor>2</Factor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-in-fixed</ImageClass>
-      <Label/>
-      <Tooltip>Zoom in by a preset increment</Tooltip>
-      <StatusText>Zoom in by a preset increment</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertZoomOut</Name>
-      <Type>ZoomOnClick</Type>
-      <Location/>
-      <Extension>
-        <Factor>0.5</Factor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-out-fixed</ImageClass>
-      <Label/>
-      <Tooltip>Zoom out by a preset increment</Tooltip>
-      <StatusText>Zoom out by a preset increment</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertPreviousView</Name>
-      <Type>ExtentHistory</Type>
-      <Location/>
-      <Extension>
-        <Direction>previous</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-back</ImageClass>
-      <Label/>
-      <Tooltip>Go to previous view</Tooltip>
-      <StatusText>Go to previous view</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertNextView</Name>
-      <Type>ExtentHistory</Type>
-      <Location/>
-      <Extension>
-        <Direction>next</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>view-forward</ImageClass>
-      <Label/>
-      <Tooltip>Go to next view</Tooltip>
-      <StatusText>Go to next view</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertSelect</Name>
-      <Type>Select</Type>
-      <Location/>
-      <Extension>
-        <SelectionType>INTERSECTS</SelectionType>
-        <Tolerance>3</Tolerance>
-        <QueryActiveLayer>false</QueryActiveLayer>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select</ImageClass>
-      <Label/>
-      <Tooltip>Click to select features</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertPan</Name>
-      <Type>Pan</Type>
-      <Location/>
-      <Extension/>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>pan</ImageClass>
-      <Label/>
-      <Tooltip>Click and drag to pan the map</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertZoom</Name>
-      <Type>Zoom</Type>
-      <Location/>
-      <Extension>
-        <Tolerance>5</Tolerance>
-        <Factor>2</Factor>
-        <Direction>in</Direction>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-in</ImageClass>
-      <Label/>
-      <Tooltip>Click or click and drag on the map to zoom in</Tooltip>
-      <StatusText>Click or click and drag on the map to zoom in</StatusText>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertInitialMapView</Name>
-      <Type>InitialMapView</Type>
-      <Location/>
-      <Extension>
-        <ViewType>initial</ViewType>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>zoom-full</ImageClass>
-      <Label/>
-      <Tooltip>Click to zoom to the full map extents</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-    <Widget xsi:type="UiWidgetType">
-      <Name>vertZoomToSelection</Name>
-      <Type>ZoomToSelection</Type>
-      <Location/>
-      <Extension>
-        <MaximumZoomDimension>-1</MaximumZoomDimension>
-        <ZoomFactor>2</ZoomFactor>
-      </Extension>
-      <ImageUrl>images/icons.png</ImageUrl>
-      <ImageClass>select-zoom</ImageClass>
-      <Label/>
-      <Tooltip>Click to zoom to the selection</Tooltip>
-      <StatusText/>
-      <Disabled>false</Disabled>
-    </Widget>
-  </WidgetSet>
-  <Extension/>
+<?xml version="1.0" encoding="UTF-8"?>
+<ApplicationDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
xsi:noNamespaceSchemaLocation="ApplicationDefinition-1.0.0.xsd"> +  <Title>Sample - \
LimeGold</Title> +  <TemplateUrl>fusion/templates/mapguide/limegold/index.html</TemplateUrl>
 +  <MapSet>
+    <MapGroup id="MainMap">
+      <Map>
+        <Type>MapGuide</Type>
+        <SingleTile>True</SingleTile>
+        <Extension>
+          <ResourceId>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</ResourceId>
 +          <SelectionColor>0x0000ffff</SelectionColor>
+          <SelectionAsOverlay>true</SelectionAsOverlay>
+        </Extension>
+      </Map>
+    </MapGroup>
+  </MapSet>
+  <WidgetSet>
+    <Container xsi:type="UiItemContainerType">
+      <Name>Toolbar</Name>
+      <Type>Toolbar</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Print</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>QuickPlot</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>RefreshMap</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Maptip</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>SelectRadius</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>SelectPolygon</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ClearSelection</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>tbBuffer</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Measure</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>FeatureInfo</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Query</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Theme</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Redline</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ViewOptions</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>About</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Help</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>ToolbarSecondary</Name>
+      <Type>Toolbar</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Select</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Pan</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Zoom</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomIn</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomOut</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>InitialMapView</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomToSelection</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>PreviousView</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>NextView</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>ToolbarVertical</Name>
+      <Type>Toolbar</Type>
+      <Position>left</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertSelect</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertPan</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertZoom</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertZoomIn</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertZoomOut</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertInitialMapView</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertZoomToSelection</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertPreviousView</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>vertNextView</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>FileMenu</Name>
+      <Type>Toolbar</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>MapMenu</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>BasemapSwitcher</Widget>
+      </Item>
+      <Item xsi:type="FlyoutItemType">
+        <Function>Flyout</Function>
+        <Label>View</Label>
+        <Item xsi:type="WidgetItemType">
+          <Function>Widget</Function>
+          <Widget>showOverview</Widget>
+        </Item>
+        <Item xsi:type="WidgetItemType">
+          <Function>Widget</Function>
+          <Widget>showTaskPane</Widget>
+        </Item>
+        <Item xsi:type="WidgetItemType">
+          <Function>Widget</Function>
+          <Widget>showLegend</Widget>
+        </Item>
+        <Item xsi:type="WidgetItemType">
+          <Function>Widget</Function>
+          <Widget>showSelectionPanel</Widget>
+        </Item>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>Statusbar</Name>
+      <Type>Splitterbar</Type>
+      <Position>bottom</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>statusCoordinates</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>statusSelection</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>EditableScale</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>statusViewSize</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>MapContextMenu</Name>
+      <Type>ContextMenu</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>RefreshMap</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Pan</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Zoom</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomIn</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ZoomOut</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="FlyoutItemType">
+        <Function>Flyout</Function>
+        <Label>Zoom</Label>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Select</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ClearSelection</Widget>
+      </Item>
+      <Item xsi:type="FlyoutItemType">
+        <Function>Flyout</Function>
+        <Label>Select More</Label>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>tbBuffer</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Measure</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>FeatureInfo</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Query</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Theme</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Redline</Widget>
+      </Item>
+      <Item xsi:type="SeparatorItemType">
+        <Function>Separator</Function>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>ViewOptions</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Help</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>About</Widget>
+      </Item>
+    </Container>
+    <Container xsi:type="UiItemContainerType">
+      <Name>TaskMenu</Name>
+      <Type>ContextMenu</Type>
+      <Position>top</Position>
+      <Extension/>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Measure</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>tbBuffer</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>FeatureInfo</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Query</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Theme</Widget>
+      </Item>
+      <Item xsi:type="WidgetItemType">
+        <Function>Widget</Function>
+        <Widget>Redline</Widget>
+      </Item>
+    </Container>
+    <MapWidget>
+      <Name>Map</Name>
+      <Type>Map</Type>
+      <Extension>
+        <MenuContainer>MapContextMenu</MenuContainer>
+      </Extension>
+      <MapId>MainMap</MapId>
+    </MapWidget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>About</Name>
+      <Type>About</Type>
+      <Location/>
+      <Extension>
+        <AboutURL>widgets/About/About.html</AboutURL>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>about</ImageClass>
+      <Label>About</Label>
+      <Tooltip>Click to show information about this application</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>ActivityIndicator</Name>
+      <Type>ActivityIndicator</Type>
+      <Location/>
+      <Extension>
+        <ElementId>
+        </ElementId>
+      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>BasemapSwitcher</Name>
+      <Type>BasemapSwitcher</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>options</ImageClass>
+      <Label>External Providers</Label>
+      <Tooltip>Click to change the basemap</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>BufferPanel</Name>
+      <Type>BufferPanel</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>buffer</ImageClass>
+      <Label>Buffer</Label>
+      <Tooltip>Click to create a buffer</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>CenterSelection</Name>
+      <Type>CenterSelection</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-centre</ImageClass>
+      <Label>Center selection</Label>
+      <Tooltip>Click to center the map on the current selection</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>ClearSelection</Name>
+      <Type>ClearSelection</Type>
+      <Location/>
+      <Extension/>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>select-clear</ImageClass>
+      <Label>Clear Selection</Label>
+      <Tooltip>Click to clear the current selection</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>ColorPicker</Name>
+      <Type>ColorPicker</Type>
+      <Location/>
+      <Extension>
+        <ColorInputId>
+        </ColorInputId>
+      </Extension>
+      <ImageUrl/>
+      <ImageClass/>
+      <Label>Color picker</Label>
+      <Tooltip>Use this tool to select a color</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>CoordinateTracker</Name>
+      <Type>CoordinateTracker</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+        <Projection>
+        </Projection>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>coordinate-tracker</ImageClass>
+      <Label>Coordinate Tracker</Label>
+      <Tooltip>Click to view mouse coordinates in various projections</Tooltip>
+      <StatusText/>
+      <Disabled>false</Disabled>
+    </Widget>
+    <Widget>
+      <Name>EditableScale</Name>
+      <Type>EditableScale</Type>
+      <Location/>
+      <Extension>
+        <Precision>4</Precision>
+      </Extension>
+    </Widget>
+    <Widget xsi:type="UiWidgetType">
+      <Name>FeatureInfo</Name>
+      <Type>FeatureInfo</Type>
+      <Location/>
+      <Extension>
+        <Target>TaskPane</Target>
+      </Extension>
+      <ImageUrl>images/icons.png</ImageUrl>
+      <ImageClass>feature-info</ImageClass>
+      <Label>Feature Info</Label>
+      <Too


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic