Jules Gosnell wrote:

> I finally went to bed, then had to get up again when I figured it out !


GEEZ! I don't know why I keep posting on this topic, clearly nobody
bothers to read my email (grump grump grump). I said a couple of days ago:

   I suppose it would be possible to do a nasty hack like prepend another
   "njar:" onto the front of an njar url and see if we could trick the
   njar protocol handler into unpacking then accessing the temp file
   location it creates ....


So yeah, it might work, but I still think its a *hack* and unpacking on 
deploy is simpler, centralized and foolproof.


Go back to bed Jules :-)


Jan



> 
> Just for the record, you don't need the getFileForURL() at all.
> 
> Here is what you do :
> 
>   if (url.getProtocol().equals("njar"))
>   {
>    try
>    {
>      // force the resource we are after to be unpacked - tmp hack - thanks David
> Jencks!
>      URL dummy=new URL("njar:"+url.toString()+"^"+"/dummy.jar");
>      String tmp=dummy.openConnection().getURL().toString();
>      tmp=tmp.substring("jar:".length());
>      tmp=tmp.substring(0, tmp.length()-"!/dummy.jar".length());
>      _log.info("converting "+url+" -> "+tmp);
>      url=new URL(tmp);
>    }
>    catch (Exception ignore)
>    {
>    }
>   }
> 
> I've only tried on Linux so far. I still have to get VMWare running.
> 
> the output is e.g. ;
> 
> 
> 01:28:31,676 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jetty-plugin.sar/70.jetty-plugin.sar^/org.mortbay.jetty.jar
> -> file:/tmp/nested-19378.jar
> 01:28:31,677 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jboss-jdbc.rar/55.jboss-jdbc.rar^/ra-jdbc-libs.jar
> -> file:/tmp/nested-19338.jar
> 01:28:31,683 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jms-ra.rar/54.jms-ra.rar^/jms-ra.jar
> -> file:/tmp/nested-19336.jar
> 01:28:31,688 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jboss-xa.rar/56.jboss-xa.rar^/ra-xa-libs.jar
> -> file:/tmp/nested-19340.jar
> 01:28:31,698 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/testsuite/output/lib/jbosstest-web.ear/71.jbosstest-web.ear^/jbosstest-web-ejbs.jar
> -> file:/tmp/nested-19382.jar
> 01:28:31,702 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jetty-plugin.sar/70.jetty-plugin.sar^/org.mortbay.jetty.jmx.jar
> -> file:/tmp/nested-19380.jar
> 01:28:31,776 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/testsuite/output/lib/jbosstest-web.ear/71.jbosstest-web.ear^/cts.jar
> -> file:/tmp/nested-19384.jar
> 01:28:31,788 INFO  [JBossWebApplicationContext#/jbosstest-not] JSP classpath:
> 
>/tmp/Jetty__8080___jbosstest-not/webapp/WEB-INF/classes:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/counter-plugin.jar/16.counter-plugin.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/scheduler-plugin.jar/36.scheduler-plugin.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/testsuite/output/lib/jbosstest-web.ear/71.jbosstest-web.ear:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/concurrent.jar/14.concurrent.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/p
teranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jmx-html-adaptor.sar/50.jmx-html-adaptor.sar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss.jar/2.jboss.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jetty-plugin.sar/70.jetty-plugin.sar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/mail-plugin.jar/39.mail-plugin.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/conf:/tmp/nested-19378.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jul
es/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-j2ee.jar/31.jboss-j2ee.jar:/tmp/nested-19338.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/castor.jar/25.castor.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-common.jar/32.jboss-common.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/org.apache.jasper.jar/17.org.apache.jasper.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jpl-util.jar/5.jpl-util.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0
.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jboss-xa.rar/56.jboss-xa.rar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/jbosstest-web.war:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jboss-jdbc.rar/55.jboss-jdbc.rar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/tyrex.jar/21.tyrex.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jmxtools.jar/30.jmxtools.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pte
ranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jmx-rmi-adaptor.sar/43.jmx-rmi-adaptor.sar:/tmp/nested-19336.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jndi.jar/15.jndi.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/bcel.jar/18.bcel.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/xalan.jar/42.xalan.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-system.jar/40.jboss-system.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/
jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/mail.jar/12.mail.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jms-ra.rar/54.jms-ra.rar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jnet.jar/38.jnet.jar:/tmp/nested-19340.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jmx-ejb-adaptor.jar/47.jmx-ejb-adaptor.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jbossmq.jar/19.jbossm
q.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jsr77.jar/34.jsr77.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/notjbosstest-web.war:/tmp/nested-19382.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jnpserver.jar/8.jnpserver.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jcert.jar/10.jcert.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jpl-pattern.jar/11.jpl-pattern.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/ou
tput/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-pool.jar/28.jboss-pool.jar:/tmp/nested-19380.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jaas.jar/3.jaas.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jmxri.jar/4.jmxri.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jsse.jar/9.jsse.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/crimson.jar/23.crimson.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0
/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/hsqldb-plugin.jar/27.hsqldb-plugin.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jts.jar/22.jts.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-boot.jar/13.jboss-boot.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jaxp.jar/24.jaxp.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/gnu-regexp.jar/41.gnu-regexp.jar:/mnt/pteranodon/home/jules/cvs
/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/root-web.war:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jmx-ejb-connector-server.sar/49.jmx-ejb-connector-server.sar:/tmp/nested-19384.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/getopt.jar/7.getopt.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/javax.servlet.jar/6.javax.servlet.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/scheduler-plugin-example.jar/37.scheduler-plugin-example.jar:/m
nt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/hsqldb.jar/35.hsqldb.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/log4j.jar/33.log4j.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jbosssx.jar/26.jbosssx.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/ejb-management.jar/48.ejb-management.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/act
ivation.jar/29.activation.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-jca.jar/20.jboss-jca.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/crimson.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jmxri.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jaxp.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/log4j.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-common.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-system.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/bin/run.jar:/usr/java/jdk1.3.1_02/lib/tools.jar
> 
> 01
> 
> 
> This will do for the moment - but I wouldn't call it perspicuous or robust !
> 
> Thanks for all your patience David, guys,
> 
> Goodnight,
> 
> 
> Jules
> 
> 
> David Jencks wrote:
> 
> 
>>njar is not magic, so if it allows jboss access to a nested jar, it must
>>have unpacked everything up to but perhaps not including that final jar.
>>To access it, maybe you need to add another njar:...(url)^/ to your url, or
>>maybe my accessor sucks.  I'm not going to have time to remove it before
>>jbossone, so you still might be able to profitably get something working
>>with it.
>>
>>david jencks
>>
>>On 2002.03.20 17:15:08 -0500 Jules Gosnell wrote:
>>
>>>David,
>>>
>>>As Jan said, njar only unpacks jars nested deeper than one level,
>>>otherwise it will
>>>just delegate to a jar: protocol url.
>>>
>>>I tried this fix, and unfortunately proved that this is the case. None of
>>>the jars
>>>that I was interested in end up being unpacked, because they are all one
>>>level
>>>down. I could hack njar further, to unpack everything, but then it would
>>>not be
>>>njar anymore. So I shall wait for Marc and you to resolve the situation.
>>>
>>>Please keep me posted,
>>>
>>>
>>>Jules
>>>
>>>
>>>David Jencks wrote:
>>>
>>>
>>>>On 2002.03.19 21:17:09 -0500 Jules Gosnell wrote:
>>>>
>>>>>Aha !
>>>>>
>>>>>
>>>>>So I guess I have a couple of options :
>>>>>
>>>>>1. hope that the njar folks will take pity on me, unpack the first
>>>>>
>>>level
>>>
>>>>>and let
>>>>>me  dereference it....
>>>>>
>>>>I didn't test it, and I'm not 100%sure of what you want/need, but is
>>>>
>>>this
>>>
>>>>close?  Do you want njar to unpack down to the level of jsp files?
>>>>
>>>Right
>>>
>>>>now it stops with the final jar.
>>>>
>>>>You might need to append ^/ to your urls, or change the code not to
>>>>
>>>strip
>>>
>>>>same.
>>>>
>>>>change Handler so map is static:
>>>>
>>>>   protected static Map savedJars = new HashMap();
>>>>
>>>>   public static File getFileForURL(URL url)
>>>>   {
>>>>      String file = url.getFile();
>>>>      String embeddedURL = file;
>>>>
>>>>      int pos = file.lastIndexOf(NJAR_SEPARATOR);
>>>>      if (pos >= 0)
>>>>      {
>>>>         embeddedURL = file.substring(0, pos);
>>>>      }
>>>>
>>>>      if (embeddedURL.startsWith(PROTOCOL))
>>>>      {
>>>>         //System.out.println("Opening next  nested jar: " +
>>>>
>>>embeddedURL);
>>>
>>>>         return (File) savedJars.get(embeddedURL);
>>>>      }
>>>>      return null;
>>>>   }
>>>>
>>>>david jencks
>>>>
>>>>
>>>>>2. take my own local copy of any njars I need in Jasper's
>>>>>
>>>classpath.....
>>>
>>>>>
>>>>>This will be a problem for Tomcat as well.....
>>>>>
>>>>>I'm going to sleep on it.....
>>>>>
>>>>>It would be a shame to unpack everything when it can be run packed,
>>>>>
>>>but a
>>>
>>>>>shag for
>>>>>AbstractWebContainer to have to cache it's own local copies of every
>>>>>
>>>njar
>>>
>>>>>hooked
>>>>>into it's classloader hierarchy.....
>>>>>
>>>>>
>>>>>Catch you tomorrow,
>>>>>
>>>>>
>>>>>Jules
>>>>>
>>>>>
>>>>>Jan Bartel wrote:
>>>>>
>>>>>
>>>>>>Actually, the njar protocol handler doesn't unpack the contents to
>>>>>>
>>>a
>>>
>>>>>>temp location for urls like:
>>>>>>
>>>>>>   njar:file:.....^/blah.jar
>>>>>>
>>>>>>Only for urls like:
>>>>>>
>>>>>>   njar:njar:file:...^/xxx.jar^/yyy.jar
>>>>>>
>>>>>>As all of the class loader urls for the JSP compile path  are like
>>>>>>the former rather than the latter, then njar internals don't
>>>>>>
>>>unpack.
>>>
>>>>>>I suppose it would be possible to do a nasty hack like prepend
>>>>>>
>>>another
>>>
>>>>>>"njar:" onto the front of an njar url and see if we could trick the
>>>>>>njar protocol handler into unpacking then accessing the temp file
>>>>>>location it creates ....
>>>>>>
>>>>>>Jan
>>>>>>
>>>>>>Jules Gosnell wrote:
>>>>>>
>>>>>>
>>>>>>>No,
>>>>>>>
>>>>>>>i know about the njar problem - that was the next on the list.
>>>>>>>
>>>>>>>I'm not sure whether a public accessor has been added to allow
>>>>>>>
>>>you to
>>>
>>>>>convert
>>>>>
>>>>>>>njar->file (all the nested jars are unpacked into tmp and an
>>>>>>>
>>>index
>>>
>>>>>>>maintained), but there were plans afoot.
>>>>>>>
>>>>>>>Jules
>>>>>>>
>>>>>>>
>>>>>>>Jan Bartel wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>Jules,
>>>>>>>>
>>>>>>>>Furthermore, if you are intending using the URLs returned by the
>>>>>>>>AbstractWebContainer.getClassLoaderURLs(), then you are going to
>>>>>>>>run into the njar problem (ie jars within sars etc are not
>>>>>>>>
>>>unpacked,
>>>
>>>>>>>>so there is no URL to a disk location), which is how we got into
>>>>>>>>this whole issue in the first place. Or have I misunderstood
>>>>>>>>
>>>where
>>>
>>>>>>>>your question comes from ?
>>>>>>>>
>>>>>>>>Jan
>>>>>>>>
>>>>>>>>Jan Bartel wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>Jules,
>>>>>>>>>
>>>>>>>>>I can see the javax.servlet.jar on the JSP classpath returned
>>>>>>>>>
>>>from
>>>
>>>>>>>>>AbstractWebContainer.getClassLoaderURLs - what jboss
>>>>>>>>>version are you using?  Caveat: I haven't refreshed my tree in
>>>>>>>>>
>>>the
>>>
>>>>>>>>>last 3 days or so, so maybe there has been a recent change ...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>Jan
>>>>>>>>>
>>>>>>>>>Jules Gosnell wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>I am trying to crush the two JSP compile errors in this
>>>>>>>>>>
>>>testsuite.
>>>
>>>>>>>>>>The classpath for Jasper is being built by walking up the
>>>>>>>>>>
>>>>>classloader
>>>>>
>>>>>>>>>>hierarchy from the WebApp to the top, passing each classloader
>>>>>>>>>>
>>>to
>>>
>>>>>>>>>>AbstractWebContainer.getClassLoaderURLs(ClassLoader).
>>>>>>>>>>
>>>>>>>>>>My problem is that the javax.servlet.jar does not seem to have
>>>>>>>>>>
>>>been
>>>
>>>>>>>>>>loaded by an immediate parent of my webapp's classloader.
>>>>>>>>>>
>>>>>>>>>>You will want a fixed width font to view this.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>sun.misc.Launcher$ExtClassLoader@7d8483
>>>>>>>>>>               |
>>>>>>>>>>               |
>>>>>>>>>>sun.misc.Launcher$AppClassLoader@7fdcde
>>>>>>>>>>               |
>>>>>>>>>>               |
>>>>>>>>>>java.net.URLClassLoader@6930e2
>>>>>>>>>>               |
>>>>>>>>>>
>>>>>>>>>>-------------------------------------------------------------------.....
>>>>>>>>>>
>>>>>>>>>>|
>>>>>>>>>>
>>>  |
>>>
>>>>>>>>>>org.jboss.system.UnifiedClassLoader@76949770
>>>>>>>>>>org.jboss.system.UnifiedClassLoader@806b8bd7
>>>>>>>>>>
>>>(JAVAX.SERVLET.JAR)
>>>
>>>>>>>>>>               |
>>>>>>>>>>               |
>>>>>>>>>>java.net.FactoryURLClassLoader@5ef658
>>>>>>>>>>               |
>>>>>>>>>>               |
>>>>>>>>>>org.mortbay.http.ContextLoader (MY WEBAPP)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>Consequently the servlet jar does not get onto the classpath
>>>>>>>>>>
>>>and
>>>
>>>>>JSP
>>>>>
>>>>>>>>>>compilation fails.....
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>So what should happen here ?
>>>>>>>>>>
>>>>>>>>>>Should a UnifiedClassLoader return all it's siblings URLs as
>>>>>>>>>>
>>>well -
>>>
>>>>>>>>>>they are all loaded into a flat scope and are available to each
>>>>>>>>>>
>>>>>other,
>>>>>
>>>>>>>>>>are they not?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>Thanks for your time,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>Jules
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>
>>>>>>>_________________________________________________________
>>>>>>>Do You Yahoo!?
>>>>>>>Get your free @yahoo.com address at http://mail.yahoo.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>_______________________________________________
>>>>>>Jboss-development mailing list
>>>>>>[EMAIL PROTECTED]
>>>>>>https://lists.sourceforge.net/lists/listinfo/jboss-development
>>>>>>
>>>>>
>>>>>_________________________________________________________
>>>>>Do You Yahoo!?
>>>>>Get your free @yahoo.com address at http://mail.yahoo.com
>>>>>
>>>>>
>>>>>_______________________________________________
>>>>>Jboss-development mailing list
>>>>>[EMAIL PROTECTED]
>>>>>https://lists.sourceforge.net/lists/listinfo/jboss-development
>>>>>
>>>>>
>>>>>
>>>>_______________________________________________
>>>>Jboss-development mailing list
>>>>[EMAIL PROTECTED]
>>>>https://lists.sourceforge.net/lists/listinfo/jboss-development
>>>>
>>>
>>>_________________________________________________________
>>>Do You Yahoo!?
>>>Get your free @yahoo.com address at http://mail.yahoo.com
>>>
>>>
>>>_______________________________________________
>>>Jboss-development mailing list
>>>[EMAIL PROTECTED]
>>>https://lists.sourceforge.net/lists/listinfo/jboss-development
>>>
>>>
>>>
>>_______________________________________________
>>Jboss-development mailing list
>>[EMAIL PROTECTED]
>>https://lists.sourceforge.net/lists/listinfo/jboss-development
>>
> 
> 
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
> 
> 
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development
> 



_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to