Daniel,
i am currently developing an avalon-phoenix blockNexct to the release of Pheonix, this is probably the most significant news all year for the Avalon project. Wellcome Daniel, I hope this is the start of a great relationship.
for OpenEJB.
Well it is a tree of classloaders primarily. One per SAR file, above a couple that constiture Phoenix and perhaps its bootloader.i am having some problems with the avalon classloader.
OpenEJB uses a custom java.net.URLStreamHandler that manages resources of the form 'resource:/'. that handler is contained within the openejb.jar file and gets registered by setting the 'java.protocol.handler.pkgs' system property.
this happens before initializing any OpenEJB specific component.
allthough i am still having problems, loading files from the SAR file using the 'resource:/' identifier. it seems that the protocol handler wont be found, allthough it is definitly within the block's SAR file.
i would appreciate it, if you could explain the
classloader system of avalon-phoenix a little
bit further.
Is there any chance you could make a URLStreamHandler using modal block say based on the 'Hello' demo (avalon-apps/demo) that works when lanched via main, but does not when launched in phoenix? Actually it seems an obvious thing to make myself, so I'll give it a go on Saturday.
I'm look for other solutions, and at the OpenEJB source now. It is a neat way of loading resource files....
Searching for: resource:
src\facilities\org\openejb\alt\config\ConfigUtils.java(716): URL
defaultConfig = new URL("resource:/default.openejb.conf");
src\facilities\org\openejb\alt\config\Deploy.java(660):
out.print("\nResource: ");
src\facilities\org\openejb\alt\config\Deploy.java(871):
versionInfo.load( new URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\facilities\org\openejb\alt\config\Deploy.java(884):
versionInfo.load( new URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\facilities\org\openejb\alt\config\Deploy.java(893): InputStream
in = new URL( "resource:/openejb/deploy.txt"
).openConnection().getInputStream();
src\facilities\org\openejb\alt\config\Deploy.java(909):
versionInfo.load( new URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\facilities\org\openejb\alt\config\Deploy.java(918): InputStream
in = new URL( "resource:/openejb/deploy-examples.txt"
).openConnection().getInputStream();
src\facilities\org\openejb\alt\config\DTDResolver.java(76): // load
resource:/openejb/dtds/ejb-jar_1_1.dtd
src\facilities\org\openejb\alt\config\DTDResolver.java(77): URL dtd
= new URL("resource:/openejb/dtds/"+dtdName);
src\main\org\openejb\OpenEJB.java(158): versionInfo.load( new URL(
"resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\main\org\openejb\util\JarUtils.java(71): * of the form
"resource:/path".
src\main\org\openejb\util\JarUtils.java(90): URL url = new
URL("resource:/"+path);
src\main\org\openejb\util\JarUtils.java(94): * URL or a resource:
URL, we must strip off the config file location
src\main\org\openejb\util\Logger.java(72): System.setProperty(
"log4j.configuration", "resource:/default.logging.conf" );
src\server\org\openejb\server\EjbDaemon.java(1100):
versionInfo.load( new URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\server\org\openejb\server\EjbDaemon.java(1112):
versionInfo.load( new URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\server\org\openejb\server\EjbDaemon.java(1121): InputStream in =
new URL( "resource:/openejb/ejbserver.txt"
).openConnection().getInputStream();
src\server\org\openejb\server\EjbDaemon.java(1137):
versionInfo.load( new URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\server\org\openejb\server\EjbDaemon.java(1146): InputStream in =
new URL( "resource:/openejb/ejbserver-examples.txt"
).openConnection().getInputStream();
src\server\org\openejb\server\Stop.java(114): versionInfo.load( new
URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\server\org\openejb\server\Stop.java(123): InputStream in = new
URL( "resource:/openejb/stop.txt" ).openConnection().getInputStream();
src\server\org\openejb\server\Stop.java(139): versionInfo.load( new
URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\server\org\openejb\server\Stop.java(148): InputStream in = new
URL( "resource:/openejb/stop-examples.txt"
).openConnection().getInputStream();
src\server\org\openejb\server\admin\HttpResponse.java(196):
versionInfo.load( new URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
src\server\org\openejb\server\admin\text\Command.java(120): URL dir
= new URL("resource:/openejb/server/commandlist.txt");
src\server\org\openejb\server\admin\text\Version.java(68):
versionInfo.load( new URL( "resource:/openejb-version.properties"
).openConnection().getInputStream() );
Found 26 occurrence(s) in 11 file(s)... but a little away from the normal Phoenix block configuration (see use of Configurable in the demos). Having said that, as long as there is only one OpenEJB server in a single Phoenix instance it should work perfectly (that is when we get it working). Do you have a CVS depot or branch that represents your working state?
Regards,
- Paul
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
