[jboss-dev-forums] [Design of POJO Server] - vfs* based URLs

bill.burke@jboss.com do-not-reply at jboss.com
Thu Nov 30 09:35:14 EST 2006


About a month ago I did a prototype on my laptop of changing VirtualFile.toURL() to return a VFS based URL.  I got it up in working, but ran into a lot of problems when using VFS based URLs with a URLClassLoader.

The way I had it working was that a URL Handler returned a VirtualFileURLConnection object.  This class delegated to a VirtualFile to openStreams and such.  VirtualFile.toURL() would return a "vfs" base URL.  While VirtualFileHandlers remained untouched and returned their real underlying URL.

For Jars I ran into a lot of Streaming problems where there would be pre-mature end-of-file errors when loading classes.  This was solved by creating ByteArrayInputStreams around any loading of jar entries.  I also found that the URL Classloader implementation worked differently depending on whether the URL ended in "/" or not.

What scared me the most about this process was that I had to hack Sun specific by decompiling it to understand what the problems were as most of the behaviors I had to debug were not documented.

I'm doing a second iteration of this code right now.  One thing I'm going to try to do is to not return a VirtualFileURLConnection from the VFS protocol Handler, but instead return VirtualFileHandler.toURL().openConnection().  I  think this may solve a lot of the problems that were encountered initially.



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3990063#3990063

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3990063



More information about the jboss-dev-forums mailing list