> If users stuck on (say) 4.1 of the XSD and we
> released 4.1.2; then the entity resolver would not be able to resolve
> the 4.1.2 schema; so your application could break if you upgrade to a
> newer version of ActiveMQ.
Why is that?
The release only includes the current generated XSD in the jar. So we
can't easily ship 'every possible old version of the XSD' inside the
jar as well. So version 4.1.2 will just include 4.1.2 of the XSD and
so just work with
http://activemq.apache.org/schema/core/activemq-core-4.1.2.xsd.
If you're config file is using 4.1 or 4.1.1; then ActiveMQ will be
using the internet to resolve the XSD
Not necessarily: IF you only have changed doc, OR only _added_ stuff,
then you could use the multi-line possibilities in spring.schemas to
"redirect" the older ones to the new included one - didn't you also
point this out, by suggesting that both the versioned file, and the
unversioned file, should have its own line in spring.schemas? Why not
just also add in the older lines, e.g. 4.1.0, 4.1.1 and so on, in there?
This because any older XML files (the config files) would then
"compile against" the new XSD, without errors - and everyone would be
happy. If however anything came up, everyone would know just which exact
version of AMQ this file originally was written against (although, since
you won't distribute the older xsd's, you can now add new stuff to an
old config file, and it will still run - which I guess it shouldn't have
if you wanted to be totally correct)
(I still, though, think the included (the one inside the jar) could
benefit from having the version number attached (and also have it inside
the actual schema, as a comment??). I don't know if I've gotten through
on that point - but i _love_ explicitness! :)
META-INF/MANIFEST.MF could also do with a shine (I've commented on
that before), and all files all over should have the version number
tagged on. The point is that if you see ANY such artifacts outside their
container, or "outside their scope", it is very nice to be able to
"backtrack" to what it belongs to and where it came from. It usually
doesn't take that much labor to include it, but gives many small
benefits ever after.).
(And when it comes to including the older XSDs in new releases -
wouldn't that just be to suck in all the XSDs that are laying around on
the dist-site when cutting a new release?)
Kind regards,
Endre.