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

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/pteranodon/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/jules/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/pteranodon/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.jbossmq.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/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-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:/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.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/activation.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

Reply via email to