Hi all,
JAXB (1.4) is part of our build and everything is working nicely. We
are trying to modularise the build more (preparing for our move to
Maven) and to facilitate that I'm trying to create a comparison script
allowing me to guarantee that a change to the build script does not
change the result.
The first test case, of course, is to run the current build twice and
see if it yields the same result. Oops ... no it doesn't. :-(
There is a simple and obvious problem: JAXB adds comments with
timestamps and references to the files. I've succesfully removed those
with a simple replace after JAXB has finished. Is there a way to tell
JAXB (1.4) not to generate these comments?
Now for my real problem: the source code that is generated is actually
different on subsequent runs of the build. Not different as in
different behaviour, but different as in different class files. The
first run would generate something like
public void enterElement(<snip/>) throws org.xml.sax.SAXException {
<snip/>
switch (state) {
case 1 :
<snip/>
case 3 :
<snip/>
case 0 :
<snip/>
}
<snip/>
}
but the second run would generate (e.g.)
public void enterElement(<snip/>) throws org.xml.sax.SAXException {
<snip/>
switch (state) {
case 1 :
<snip/>
case 0 :
<snip/>
case 3 :
<snip/>
}
<snip/>
}
(note cases '0' and '3' have swapped places).
An other problem I see is in code like
public com.sun.msv.verifier.DocumentDeclaration createRawValidator() {
if (schemaFragment == null) {
schemaFragment = com.sun.xml.bind.validator.SchemaDeserializer.deserialize((
"... abc ..."
));
return new com.sun.msv.verifier.regexp.REDocumentDeclaration(schemaFragment);
}
where a subsequent run yields 'xyz' instead of 'abc' (the 'abc' and
'xyz' are usually close but not identical).
I tried running JAXB outside of the build but, of course, I can't
reproduce the problem then: subsequent JAXB invocations yield exactly
the same source code. Sigh.
I would greatly appreciate any help or ideas to get a repeatable
build. What kind of outside influences would have an effect on the
generated source code?
Cheers,
Hilco