private TagFileInfo createTagFileInfo()

in src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/TagLibraryInfoImpl.java [451:508]


    private TagFileInfo createTagFileInfo(TreeNode elem, String uri,
            URL jarFileUrl) throws JasperException {

        String name = null;
        String path = null;

        Iterator list = elem.findChildren();
        while (list.hasNext()) {
            TreeNode child = (TreeNode) list.next();
            String tname = child.getName();
            if ("name".equals(tname)) {
                name = child.getBody();
            } else if ("path".equals(tname)) {
                path = child.getBody();
            } else if ("example".equals(tname)) {
                // Ignore <example> element: Bugzilla 33538
            } else if ("tag-extension".equals(tname)) {
                // Ignore <tag-extension> element: Bugzilla 33538
            } else if ("icon".equals(tname)
                    || "display-name".equals(tname)
                    || "description".equals(tname)) {
                // Ignore these elements: Bugzilla 38015
            } else {
                if (log.isWarnEnabled()) {
                    log.warn(Localizer.getMessage(
                            "jsp.warning.unknown.element.in.tagfile", tname));
                }
            }
        }

        if (path.startsWith("/META-INF/tags")) {
            // Tag file packaged in JAR
            if ( jarFileUrl != null ) {
                ctxt.setTagFileJarUrl(path, jarFileUrl);
            } else {
                final URL baseUrl = ctxt.getOptions().getTldLocationsCache().getTldLocationURL(uri);
                if ( baseUrl != null ) {
                    final String baseUrlStr = baseUrl.toString();
                    final int index = baseUrlStr.indexOf("/META-INF/");
                    if ( index != -1 ) {
                        URL finalUrl;
                        try {
                            finalUrl = new URL(baseUrlStr.substring(0, index) + path);
                            ctxt.setTagFileUrl(path, finalUrl);
                        } catch (MalformedURLException e) {
                            // we ignore this
                        }
                    }
                }
            }
        } else if (!path.startsWith("/WEB-INF/tags")) {
            err.jspError("jsp.error.tagfile.illegalPath", path);
        }

        TagInfo tagInfo = TagFileProcessor.parseTagFileDirectives(
                parserController, name, path, this);
        return new TagFileInfo(name, path, tagInfo);
    }