I have hundreds of beans in my application and reloading EAR takes 3-5 minutes (with AMD 1.2ghz 1gt RAM) even thought EAR is deployed as directories. I couldn't find a feature in JBoss which would reload a single bean in EAR.
After wasting some huge amount of time waiting the EAR to be deployed, I created a little method in MainDeployerMBean which reloads given ejb component in EAR application without reloading EAR itself. I call this method over RMI in ant task.
I run in to few problems, because of EAR classloaders... first of all the whole EAR classloader have to be reinitialized because there is no way to remove loaded class from classloader (afaik). Reloading classloaders isn't very hard, but after I have done this, all classes and instances in bean containers have to be reloaded. This is very painful, because the EAR classloader is quite widely used. Also all classloaders in webcontainer(s) have to be updated, I did this only for Tomcat.
Well, I got this finally working and now my re-deployment takes about 30 seconds instead of five minutes, so I'm quite happy with this solution.
JBoss gurus: If I send this patch to you, can you possibly
think of including it in JBoss as an official feature (if it doesn't already exists)? I'm quite sure that every JBoss developer would like to use this feature.