private void processJar(URL url) throws IOException { try (Jar jar = JarFactory.newInstance(url)) { jar.nextEntry(); String entryName = jar.getEntryName(); while (entryName != null) { if (entryName.startsWith(Constants.META_INF_RESOURCES)) { context.getResources() .createWebResourceSet(WebResourceRoot.ResourceSetType.RESOURCE_JAR, Constants.ROOT_PATH, url, Constants.META_INF_RESOURCES_PATH); break; } jar.nextEntry(); entryName = jar.getEntryName(); } } } }
public static InputSource getInputSource(String fname, Jar jar, JspCompilationContext ctxt) throws IOException { InputSource source; if (jar != null) { String jarEntryName = fname.substring(1, fname.length()); source = new InputSource(jar.getInputStream(jarEntryName)); source.setSystemId(jar.getURL(jarEntryName)); } else { source = new InputSource(ctxt.getResourceAsStream(fname)); source.setSystemId(ctxt.getResource(fname).toExternalForm()); } return source; }
@Override public InputStream getEntryInputStream() throws IOException { try (ReferenceCountedJar jar = open()) { return jar.wrappedJar.getEntryInputStream(); } }
protected void processAnnotationsJar(URL url, WebXml fragment, boolean handlesTypesOnly, Map<String,JavaClassCacheEntry> javaClassCache) { try (Jar jar = JarFactory.newInstance(url)) { if (log.isDebugEnabled()) { log.debug(sm.getString( "contextConfig.processAnnotationsJar.debug", url)); } jar.nextEntry(); String entryName = jar.getEntryName(); while (entryName != null) { if (entryName.endsWith(".class")) { try (InputStream is = jar.getEntryInputStream()) { processAnnotationsStream(is, fragment, handlesTypesOnly, javaClassCache); } catch (IOException e) { log.error(sm.getString("contextConfig.inputStreamJar", entryName, url),e); } catch (ClassFormatException e) { log.error(sm.getString("contextConfig.inputStreamJar", entryName, url),e); } } jar.nextEntry(); entryName = jar.getEntryName(); } } catch (IOException e) { log.error(sm.getString("contextConfig.jarFile", url), e); } }
@Override public void scan(Jar jar, String webappPath, boolean isWebapp) throws IOException { boolean found = false; URL jarFileUrl = jar.getJarFileURL(); jar.nextEntry(); for (String entryName = jar.getEntryName(); entryName != null; jar.nextEntry(), entryName = jar.getEntryName()) { if (!(entryName.startsWith("META-INF/") && entryName.endsWith(TLD_EXT))) {
is = jar.getInputStream(FRAGMENT_LOCATION); String fragmentUrl = jar.getURL(FRAGMENT_LOCATION); InputSource source = new InputSource(fragmentUrl); source.setByteStream(is); fragment.setURL(jar.getJarFileURL()); if (fragment.getName() == null) { fragment.setName(fragment.getURL().toString()); fragment.setJarName(extractJarFileName(jar.getJarFileURL())); fragments.put(fragment.getName(), fragment);
Manifest manifest = jar.getManifest(); if (manifest == null) { return; continue; URL jarURL = jar.getJarFileURL(); try { URI classPathEntryURI = jar.getJarFileURL().toURI().resolve(classPathEntry); classPathUrlsToProcess.add(classPathEntryURI.toURL()); } catch (Exception e) {
if (path == null) { URL jarUrl = jar.getJarFileURL(); long lastMod = -1; URLConnection urlConn = null; pageInfo.addDependant(jar.getURL(entryName), Long.valueOf(jar.getLastModified(entryName))); } catch (IOException ioe) { throw new JasperException(ioe);
pageInfo.addDependant(jar.getURL(tldResourcePath.getEntryName()), Long.valueOf(jar.getLastModified(tldResourcePath.getEntryName()))); pageInfo.addDependant(jar.getURL(tagFilePath.substring(1)), Long.valueOf(jar.getLastModified(tagFilePath.substring(1)))); } else { pageInfo.addDependant(tagFilePath,
@Override public InputStream getInputStream(String name) throws IOException { try (ReferenceCountedJar jar = open()) { return jar.wrappedJar.getInputStream(name); } }
@Override public String getEntryName() { try (ReferenceCountedJar jar = open()) { return jar.wrappedJar.getEntryName(); } catch (IOException ioe) { throw new IllegalStateException(ioe); } }
@Override public void nextEntry() { try (ReferenceCountedJar jar = open()) { jar.wrappedJar.nextEntry(); } catch (IOException ioe) { throw new IllegalStateException(ioe); } }
@Override public long getLastModified(String name) throws IOException { try (ReferenceCountedJar jar = open()) { return jar.wrappedJar.getLastModified(name); } }
@Override public String getURL(String entry) { try (ReferenceCountedJar jar = open()) { return jar.wrappedJar.getURL(entry); } catch (IOException ioe) { throw new IllegalStateException(ioe); } }
@Override public Manifest getManifest() throws IOException { try (ReferenceCountedJar jar = open()) { return jar.wrappedJar.getManifest(); } }
@Override public boolean exists(String name) throws IOException { try (ReferenceCountedJar jar = open()) { return jar.wrappedJar.exists(name); } }
@Override public synchronized void close() { referenceCount--; if (referenceCount == 0) { wrappedJar.close(); wrappedJar = null; } }
protected void processAnnotationsJar(URL url, WebXml fragment, boolean handlesTypesOnly, Map<String,JavaClassCacheEntry> javaClassCache) { try (Jar jar = JarFactory.newInstance(url)) { if (log.isDebugEnabled()) { log.debug(sm.getString( "contextConfig.processAnnotationsJar.debug", url)); } jar.nextEntry(); String entryName = jar.getEntryName(); while (entryName != null) { if (entryName.endsWith(".class")) { try (InputStream is = jar.getEntryInputStream()) { processAnnotationsStream(is, fragment, handlesTypesOnly, javaClassCache); } catch (IOException e) { log.error(sm.getString("contextConfig.inputStreamJar", entryName, url),e); } catch (ClassFormatException e) { log.error(sm.getString("contextConfig.inputStreamJar", entryName, url),e); } } jar.nextEntry(); entryName = jar.getEntryName(); } } catch (IOException e) { log.error(sm.getString("contextConfig.jarFile", url), e); } }