I have just committed the rest of JBAS-8250 to trunk.
As far as I can see, the non-flat DeploymentImpl is not causing the OutOfMemoryError. Comparing DeploymentImpl vs FlatDeployment, I had to run the deployers/weld tests the same number of times (16 times) to get a OutOfMemoryError.
Anyway, I profiled JBoss AS memory usage with those tests. A very high number of HashMap$Entry instances called my attention, and most of them couldnt' be garbage collected. JProfiler showed them as being held by org.jboss.logmanager.LogContext, so I don't think I got to any useful results.
Going back to JBAS-8250, I see 4 pending issues:
- the library scanning that Ales is working on
- we need also a mechanism to scan for libs referenced from manifest files, creating BDAs for any lib that contains META-INF/beans.xml
- a FIXME that I added to DeploymentImpl (regarding the undeployment of loaded BDAs)
- replace the slow Classpath implementation by the NoDuplicatesClasspath
The last two are pretty simple to do. The second one concerns me most. Any ideas on how should we tackle that one?