[mapguide-internals] RE: MG Object stream serialization/deserialization

Trevor Wekel trevor_wekel at otxsystems.com
Wed Nov 4 06:38:24 EST 2009

Hi Haris,

Yes.  That submission did add a member variable to MgClassDefinition in order to support schema search related optimizations with some Fdo providers.

Up to this point, the web extensions API has never supported backward compatibility from a binary perspective.  You cannot successfully mix and match different web extensions and servers.  As you have noticed, any change in object signature breaks binary compatibility.

I believe it will be a huge amount of work to successfully code and test for backward binary compatibility on an API this large.  If the PSC really wants to go down this road, I may be willing to support the decision but that means every contributor will be responsible for maintaining this with every submission.  The permutations and combinations on the testing effort could be painful to say the least.  It's hard enough to keep one API version stable.  A mixed and matched the web extensions and server should probably be considered a whole other API.  


-----Original Message-----
From: mapguide-internals-bounces at lists.osgeo.org [mailto:mapguide-internals-bounces at lists.osgeo.org] On Behalf Of Haris Kurtagic
Sent: November 4, 2009 3:41 AM
To: 'MapGuide Internals Mail List'
Subject: [mapguide-internals] RE: MG Object stream serialization/deserialization

Hi Trevor,


I believe I found when ClassDefinition serialization has changed.


Changeset 3905 <http://trac.osgeo.org/mapguide/changeset/3905>  for


Author trevorwekel

Ticket  <http://trac.osgeo.org/mapguide/ticket/1002> #1002 Batch Processing
for Get Identity Properties

/Services/ClassDefinition.cpp at 3905
e/Services/ClassDefinition.cpp at 3905&new=trunk/MgDev/Common/PlatformBase/Serv
ices/ClassDefinition.cpp at 3905>
&new=trunk/MgDev/Common/PlatformBase/Services/ClassDefinition.cpp at 3905



It feels bit strange that in previous versions schema name from class def.
was omitted ( but that is how 2.1 Beta and MG Ent 2010 works ).


This change was really for that ticket  "Batch Processing for Get Identity
Properties" or ?


I would like to be able to communicate with MG 2.0.2, MG 2.1 MG Ent. 2010
with one application using standard MG libraries. 

Any idea If that would be possible ?




From: Haris Kurtagic [mailto:haris at sl-king.com] 
Sent: Tuesday, November 03, 2009 11:47 PM
To: 'MapGuide Internals Mail List'
Subject: MG Object stream serialization/deserialization


Hi ,


I have lot of problems while trying to communicate with different versions
of MapGuide. I am developing application which should communicate with MG
using MG common libraries: MapGuideCommon, PlatformBase,...


Problem is that I can't find two version of MG which will work one against
other and work equally.

For example I can't use MG OS Beta version from 2.1 branch
against current branch version. Also for example I can't use any of those
versions against MG Enterprise 2010. will halt MG Ent. 2010 while
current 2.1 branch will throw exception InvalidStreamHeader.


At least one of problems is that ClassDefinition in one version is
serializing SchemaName in another it is not. So those versions can't be used
one against each other.


I have two questions:


1.  I really can't' find consistency in our svn branches and trunk how and
when is changing how MG objects are serialized/desterilized. I hope somebody
can light me up little bit when/ why are this changes done.


2. We don't have any versioning of serialization process of objects. I think
that could be issue ( hopefully one day we could imagine farm of MapGuide's

    Can we add versions of objects to serialization process ?


I would appreciate any help/ideas how to solve this mess, how to have one
application communicating with different MG versions.


Thank you,


mapguide-internals mailing list
mapguide-internals at lists.osgeo.org

More information about the mapguide-internals mailing list