"alesj" wrote : "alesj" wrote : "adrian(a)jboss.org" wrote :
| | | This requires something in the VFS, my suggestion was to add
| | | VFSUtils.getRealURL(vfsFile);
| | |
| | Should I hold off VFS 2.0.0.GA until these features get into VFS?
| I see Anil already added this to VFS.
| But it looks wrong. ;-)
|
|
| | /**
| | * Get the Real URL
| | * @param vfsURL
| | * @return
| | * @throws Exception
| | */
| | public static URL getRealURL(URL vfsURL) throws Exception
| | {
| | if(vfsURL.getPath().endsWith("jar"))
| | {
| | String urlStr = "jar:" + FILE_PROTOCOL + ":" +
vfsURL.getPath() + JAR_URL_SEPARATOR;
| | return new URL(urlStr);
| | }
| |
| | if(vfsURL.getProtocol().startsWith("vfsfile"))
| | return new URL(FILE_PROTOCOL, vfsURL.getHost(), vfsURL.getPort(),
vfsURL.getFile());
| |
| | if(vfsURL.getProtocol().startsWith("vfszip"))
| | {
| | String urlStr = vfsURL.toExternalForm();
| | //nested file
| | int indexJar = urlStr.indexOf(".jar");
| | String beforejar = urlStr.substring("vfszip:".length(),
urlStr.indexOf(".jar"));
| | String afterjar = urlStr.substring(indexJar + 1 +
".jar".length());
| | return new URL("jar:file:" + beforejar + ".jar " +
JAR_URL_SEPARATOR + afterjar);
| | }
| | if(log.isTraceEnabled())
| | log.trace("getRealURL did not have a match
for:"+vfsURL.toExternalForm());
| | return vfsURL;
| | }
| |
|
| First some simple code critique.
|
| If you add something to project you don't sustain,
| be fair and add javadocs as it should be done.
| Since this is probably gonna be called for every class we load,
| some more constants won't kill you.
| Dunno how much optimization javac puts on "vfszip."length() and repeated
".jar".
|
| Tests should be more exhaustive.
| As I see some extra space after last ".jar that's probably not supposed to be
there.
| Dunno how this would work.
|
| But in general, jar/zip handling is completely broken.
| First, it should be the same code that handles it,
| since, although we currently use vfszip, user can still fall back to old vfsjar
handling.
| And they are both the same as far as feature set goes (it's just that we have winz
lock problems on vfsjar).
| But the biggest problem I see is how are you gonna handle multiple nested jars.
| Dunno what's the proper/real url for those, but I very much doubt it's how
your code does it.
| I guess this would have to be an impl of VirtualFileHandlers, not just VFSUtils.
|
| Conclusion.
| Either this is done right, or it goes out.
| I'll leave it for now, but will check on it before I do 2.0.0.GA.
|
| If you need any help on writing this, open a new forum post.
| And I'll see what can be done. ;-)
Thanks for your comments. I already had generated the constants. I was unable to put it
back as I forgot before I slept and you rolled back.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4188485#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...