class visibility should be there, pay attention to the ordering of the deployments... do we start before we parse all of the classes? I don't think so, are you sure about it?
Turns out its not a class loading problem. MainDeployer.parseManifestLibraries tries to deploy jars referenced in the manifest relative to default/deploy instead of relative to default/tmp/deploy/etc... The jar referenced in the manifest was not getting opened and deployed. Seems to me that this method should be moved into EARDeployer and called from EARDeployer.init since this deployer knows about its own expanded directories. I've changed the code and it seems to work. Am testing.