In case the volcanic ashes clear and the planes work on Tuesday so I can go on holidays, here is the current status of the jboss-reflect on javassist implementation.
The javassist implementation is feature complete as far as I know, we are just waiting for javassist 3.12.0 before we can do a release.
- <version.javassist>3.11.0.GA</version.javassist>
+ <version.javassist>3.12.0-SNAPSHOT</version.javassist>
- <version.org.jboss.man>2.1.1.SP1</version.org.jboss.man>
+ <version.org.jboss.man>2.1.1.SP2</version.org.jboss.man>
- <version.org.jboss.reflect>2.2.0.Alpha4</version.org.jboss.reflect>
+ <version.org.jboss.reflect>2.2.0-SNAPSHOT</version.org.jboss.reflect>
This has been added to the branches run.sh to make sure javassist is being used by jboss-reflect:
# Setup JBoss specific properties
JAVA_OPTS="${JAVA_OPTS:+$JAVA_OPTS -Dprogram.name=$PROGNAME}"
+JAVA_OPTS="${JAVA_OPTS:+$JAVA_OPTS -Dorg.jboss.reflect.spi.TypeInfoFactory=org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactory}"
JAVA_OPTS="${JAVA_OPTS:--Dprogram.name=$PROGNAME}"
Apart from that everything should be the same. I use
svnmerge.py to periodically merge the latest changes from Hudson trunk, to do this download svnmerge.py and then go into your local checkout of the branch and merge using svnmerge.py, e.g:
$cd KABIR_JAVASSIST_REFLECT
$~/svnmerge.py merge
$svn commit -F svnmerge-commit-message.txt
Give it time to filter through to anonsvn and then start the Hudson run, I think Flavia already has the admin password. If not ask QA for a password.
The main thing I am looking at now is making the javassist implementation more performant. This is documented in JBoss Reflect Performance Javassist vs Introspection since using the javassist implementation is currently slower than using the introspection one. I'll let you know where I get in that thread before I leave.
It just occurred to me that another factor in currently making this slow _could_ be the classpools since we need to look CtClasses up there. I have not measured anything, but it is worth bearing in mind and investigating since it is an extra layer on top of the plain classloading which is used by the introspection implementation.
If I can think of anything else I will let you know on this thread before I go away.