Ok, I did some research on this, and I have an answer for you. The
reason why hotcode replace is not working, is because the eclipse
compiler and the javac compiler are generating different byte code.
This effectively causes all code changes to be a schema change.
I was able to fix this by changing the my build configuration to use
the eclipse compiler. These are the steps I took to fix this:
1. Copy org.eclipse.jdt.core_3.1.0.jar from your eclipse/plugins
directory to your ant/lib. If you are using the build.sh or
build.bat then this will be in jboss-head/tools/lib.
2. Extract the jdtCompilerAdapter.jar file from
org.eclipse.jdt.core_3.1.0.jar and put it in your ant/lib (or
3. Edit your build/local.properties file and set
4. do a build clean; build to recompile the main jboss build with
the eclipse compiler.
I am not sure whether the byte code difference is intentional, it
could be that this is all a bug, but I am guess that it is not. I
have not tried the final release of 3.1 (released the 25th). I will
report back when I find that out.
More details on using the compiler can be found here:
Including options to pass to turn off all the flippin' warnings :-).