@Override
    void scan(final URL codeSourceLocation, final JarInputStream jar) throws IOException {
        ZipEntry entry;
        while((entry = jar.getNextEntry()) != null) {
            final String name = entry.getName();
            if (entry.isDirectory()) {
                // ignore
            } else if (name.endsWith(".class")) {
                scanClass(codeSourceLocation, jar);
            } else if (isArchive(name)) {
                // TODO: this does not callback into inquisitor
                // this is not a real URL!
                final URL childCodeSourceLocation = new URL(codeSourceLocation, name);
                final JarInputStream child = new JarInputStream(jar);
                scan(childCodeSourceLocation, child);
            } else if (ignore(name)) {
                //System.err.println("ignore jar entry " + entry);
            } else
                LOG.warning("unknown resource " + codeSourceLocation + " / " + name);
        }
    }