Java Code Examples for javax.servlet.descriptor.TaglibDescriptor#getTaglibLocation()
The following examples show how to use
javax.servlet.descriptor.TaglibDescriptor#getTaglibLocation() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TldScanner.java From Tomcat8-Source-Read with MIT License | 4 votes |
/** * Scan for TLDs defined in <jsp-config>. * @throws IOException Error reading resources * @throws SAXException XML parsing error */ protected void scanJspConfig() throws IOException, SAXException { JspConfigDescriptor jspConfigDescriptor = context.getJspConfigDescriptor(); if (jspConfigDescriptor == null) { return; } Collection<TaglibDescriptor> descriptors = jspConfigDescriptor.getTaglibs(); for (TaglibDescriptor descriptor : descriptors) { String taglibURI = descriptor.getTaglibURI(); String resourcePath = descriptor.getTaglibLocation(); // Note: Whilst the Servlet 2.4 DTD implies that the location must // be a context-relative path starting with '/', JSP.7.3.6.1 states // explicitly how paths that do not start with '/' should be // handled. if (!resourcePath.startsWith("/")) { resourcePath = WEB_INF + resourcePath; } if (uriTldResourcePathMap.containsKey(taglibURI)) { log.warn(Localizer.getMessage(MSG + ".webxmlSkip", resourcePath, taglibURI)); continue; } if (log.isTraceEnabled()) { log.trace(Localizer.getMessage(MSG + ".webxmlAdd", resourcePath, taglibURI)); } URL url = context.getResource(resourcePath); if (url != null) { TldResourcePath tldResourcePath; if (resourcePath.endsWith(".jar")) { // if the path points to a jar file, the TLD is presumed to be // inside at META-INF/taglib.tld tldResourcePath = new TldResourcePath(url, resourcePath, "META-INF/taglib.tld"); } else { tldResourcePath = new TldResourcePath(url, resourcePath); } // parse TLD but store using the URI supplied in the descriptor TaglibXml tld = tldParser.parse(tldResourcePath); uriTldResourcePathMap.put(taglibURI, tldResourcePath); tldResourcePathTaglibXmlMap.put(tldResourcePath, tld); if (tld.getListeners() != null) { listeners.addAll(tld.getListeners()); } } else { log.warn(Localizer.getMessage(MSG + ".webxmlFailPathDoesNotExist", resourcePath, taglibURI)); continue; } } }
Example 2
Source File: TldConfig.java From Tomcat7.0.67 with Apache License 2.0 | 4 votes |
/** * Get the taglib entries from web.xml and add them to the map. * * This is not kept in sync with o.a.j.compiler.TldLocationsCache as this * code needs to scan the TLDs listed in web.xml whereas Jasper only needs * the URI to TLD mappings. */ private void tldScanWebXml() { if (log.isTraceEnabled()) { log.trace(sm.getString("tldConfig.webxmlStart")); } Collection<TaglibDescriptor> descriptors = context.getJspConfigDescriptor().getTaglibs(); for (TaglibDescriptor descriptor : descriptors) { String resourcePath = descriptor.getTaglibLocation(); // Note: Whilst the Servlet 2.4 DTD implies that the location must // be a context-relative path starting with '/', JSP.7.3.6.1 states // explicitly how paths that do not start with '/' should be // handled. if (!resourcePath.startsWith("/")) { resourcePath = WEB_INF + resourcePath; } if (taglibUris.contains(descriptor.getTaglibURI())) { log.warn(sm.getString("tldConfig.webxmlSkip", resourcePath, descriptor.getTaglibURI())); } else { if (log.isTraceEnabled()) { log.trace(sm.getString("tldConfig.webxmlAdd", resourcePath, descriptor.getTaglibURI())); } InputStream stream = null; try { stream = context.getServletContext().getResourceAsStream( resourcePath); if (stream != null) { XmlErrorHandler handler = tldScanStream(stream); handler.logFindings(log, resourcePath); taglibUris.add(descriptor.getTaglibURI()); webxmlTaglibUris.add(descriptor.getTaglibURI()); } else { log.warn(sm.getString("tldConfig.webxmlFailPathDoesNotExist", resourcePath, descriptor.getTaglibURI())); } } catch (IOException ioe) { log.warn(sm.getString("tldConfig.webxmlFail", resourcePath, descriptor.getTaglibURI()), ioe); } finally { if (stream != null) { try { stream.close(); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); } } } } } }
Example 3
Source File: TldConfig.java From tomcatsrc with Apache License 2.0 | 4 votes |
/** * Get the taglib entries from web.xml and add them to the map. * * This is not kept in sync with o.a.j.compiler.TldLocationsCache as this * code needs to scan the TLDs listed in web.xml whereas Jasper only needs * the URI to TLD mappings. */ private void tldScanWebXml() { if (log.isTraceEnabled()) { log.trace(sm.getString("tldConfig.webxmlStart")); } Collection<TaglibDescriptor> descriptors = context.getJspConfigDescriptor().getTaglibs(); for (TaglibDescriptor descriptor : descriptors) { String resourcePath = descriptor.getTaglibLocation(); // Note: Whilst the Servlet 2.4 DTD implies that the location must // be a context-relative path starting with '/', JSP.7.3.6.1 states // explicitly how paths that do not start with '/' should be // handled. if (!resourcePath.startsWith("/")) { resourcePath = WEB_INF + resourcePath; } if (taglibUris.contains(descriptor.getTaglibURI())) { log.warn(sm.getString("tldConfig.webxmlSkip", resourcePath, descriptor.getTaglibURI())); } else { if (log.isTraceEnabled()) { log.trace(sm.getString("tldConfig.webxmlAdd", resourcePath, descriptor.getTaglibURI())); } InputStream stream = null; try { stream = context.getServletContext().getResourceAsStream( resourcePath); if (stream != null) { XmlErrorHandler handler = tldScanStream(stream); handler.logFindings(log, resourcePath); taglibUris.add(descriptor.getTaglibURI()); webxmlTaglibUris.add(descriptor.getTaglibURI()); } else { log.warn(sm.getString("tldConfig.webxmlFailPathDoesNotExist", resourcePath, descriptor.getTaglibURI())); } } catch (IOException ioe) { log.warn(sm.getString("tldConfig.webxmlFail", resourcePath, descriptor.getTaglibURI()), ioe); } finally { if (stream != null) { try { stream.close(); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); } } } } } }
Example 4
Source File: TldScanner.java From packagedrone with Eclipse Public License 1.0 | 4 votes |
private void processWebDotXml() throws Exception { // Skip if we are only looking for listeners if (scanListeners) { return; } JspConfigDescriptor jspConfig = ctxt.getJspConfigDescriptor(); if (jspConfig == null) { return; } for (TaglibDescriptor taglib: jspConfig.getTaglibs()) { if (taglib == null) { continue; } String tagUri = taglib.getTaglibURI(); String tagLoc = taglib.getTaglibLocation(); if (tagUri == null || tagLoc == null) { continue; } // Ignore system tlds in web.xml, for backward compatibility if (systemUris.contains(tagUri) || (!useMyFaces && systemUrisJsf.contains(tagUri))) { continue; } // Save this location if appropriate if (uriType(tagLoc) == NOROOT_REL_URI) tagLoc = "/WEB-INF/" + tagLoc; String tagLoc2 = null; if (tagLoc.endsWith(JAR_FILE_SUFFIX)) { tagLoc = ctxt.getResource(tagLoc).toString(); tagLoc2 = "META-INF/taglib.tld"; } if (log.isLoggable(Level.FINE)) { log.fine( "Add tld map from web.xml: " + tagUri + "=>" + tagLoc+ "," + tagLoc2); } mappings.put(tagUri, new String[] { tagLoc, tagLoc2 }); } }