bundles/org.apache.jasper.glassfish/src/org/apache/jasper/runtime/TldScanner.java
private boolean addManifestClassPath(List<String> scannedJars,
                                         List<String> newJars,
                                         JarURLConnection jconn){

        Manifest manifest;
        try {
            manifest = jconn.getManifest();
        } catch (IOException ex) {
            // Maybe non existing jar, ignored
            return false;
        }

        String file = jconn.getJarFileURL().toString();
        if (! file.contains("WEB-INF")) {
            // Only jar in WEB-INF is considered here
            return true;
        }

        if (manifest == null)
            return true;

        java.util.jar.Attributes attrs = manifest.getMainAttributes();
        String cp = (String) attrs.getValue("Class-Path");
        if (cp == null)
            return true;

        String[] paths = cp.split(" ");
        int lastIndex = file.lastIndexOf('/');
        if (lastIndex < 0) {
            lastIndex = file.lastIndexOf('\\');
        }
        String baseDir = "";
        if (lastIndex > 0) {
            baseDir = file.substring(0, lastIndex+1);
        }
        for (String path: paths) {
            String p;
            if (path.startsWith("/") || path.startsWith("\\")){
                p = "file:" + path;
            } else {
                p = baseDir + path;
            }
            if ((scannedJars == null || !scannedJars.contains(p)) &&
                !newJars.contains(p) ){
                     newJars.add(p);
            }
        }
        return true;
    }
private boolean addManifestClassPath(List<String> scannedJars,
                                         List<String> newJars,
                                         JarURLConnection jconn){

        Manifest manifest;
        try {
            manifest = jconn.getManifest();
        } catch (IOException ex) {
            // Maybe non existing jar, ignored
            return false;
        }

        String file = jconn.getJarFileURL().toString();
        if (! file.contains("WEB-INF")) {
            // Only jar in WEB-INF is considered here
            return true;
        }

        if (manifest == null)
            return true;

        java.util.jar.Attributes attrs = manifest.getMainAttributes();
        String cp = (String) attrs.getValue("Class-Path");
        if (cp == null)
            return true;

        String[] paths = cp.split(" ");
        int lastIndex = file.lastIndexOf('/');
        if (lastIndex < 0) {
            lastIndex = file.lastIndexOf('\\');
        }
        String baseDir = "";
        if (lastIndex > 0) {
            baseDir = file.substring(0, lastIndex+1);
        }
        for (String path: paths) {
            String p;
            if (path.startsWith("/") || path.startsWith("\\")){
                p = "file:" + path;
            } else {
                p = baseDir + path;
            }
            if ((scannedJars == null || !scannedJars.contains(p)) &&
                !newJars.contains(p) ){
                     newJars.add(p);
            }
        }
        return true;
    }
private boolean addManifestClassPath ( List < String > scannedJars , List < String > newJars , JarURLConnection jconn ) { Manifest manifest ; try { manifest = jconn . getManifest ( ) ; } catch ( IOException ex ) { // Maybe non existing jar, ignored return false ; } String file = jconn . getJarFileURL ( ) . toString ( ) ; if ( ! file . contains ( "WEB-INF" ) ) { // Only jar in WEB-INF is considered here return true ; } if ( manifest == null ) return true ; java . util . jar . Attributes attrs = manifest . getMainAttributes ( ) ; String cp = ( String ) attrs . getValue ( "Class-Path" ) ; if ( cp == null ) return true ; String [ ] paths = cp . split ( " " ) ; int lastIndex = file . lastIndexOf ( ' ' ) ; if ( lastIndex < 0 ) { lastIndex = file . lastIndexOf ( ' ' ) ; } String baseDir = "" ; if ( lastIndex > 0 ) { baseDir = file . substring ( 0 , lastIndex + 1 ) ; } for ( String path : paths ) { String p ; if ( path . startsWith ( "/" ) || path . startsWith ( "\\" ) ) { p = "file:" + path ; } else { p = baseDir + path ; } if ( ( scannedJars == null || ! scannedJars . contains ( p ) ) && ! newJars . contains ( p ) ) { newJars . add ( p ) ; } } return true ; }
/*
Add the jars in the manifest Class-Path to the list "jars"
@param scannedJars List of jars that has been previously scanned
@param newJars List of jars from Manifest Class-Path
@return true is the jar file exists
/ * Add the jars in the manifest Class - Path to the list jars