We're building a many developer app using JAXB and keep stumbling on
problems that all come back to "version" mismatch between producers and
consumers of JAXB objects.
Process hasn't alleviated the pain so I was thinking about something along
the lines of CORBA object versioning for JAXB, maybe via a required final
field whose values must match. Something like a Serializable
serialVersionUID that is added to the marshal stream when the object is
marshaled and is required and whose value is *checked* when the object is
unmarshaled.
Various check rules can be implemented, but in this case I only want
equality. If the current version of a Foo is 1.1 and I get data to
unmarshal whose version is anything other than 1.1 I will reject it.
As an added bonus I'd like to inject the version value as the Maven version
# :-)
This is all using annotations, no xsd.
Any suggestions as to a rational approach?
Thanks.