/** Read the JDK 1.3+ META-INF/INDEX.LIST entry to obtain the package names without having to iterate through all entries in the jar. */ private static void readJarIndex(ClassPathIterator cpi, PkgNameListener listener) throws Exception { boolean trace = log.isTraceEnabled(); InputStream zis = cpi.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(zis)); String line; // Skip the jar index header while( (line = br.readLine()) != null ) { if( line.length() == 0 ) break; } // Read the main jar section String jarName = br.readLine(); if( trace ) log.trace("Reading INDEX.LIST for jar: "+jarName); while( (line = br.readLine()) != null ) { if( line.length() == 0 ) break; String pkgName = line.replace('/', '.'); listener.addPackage(pkgName); } br.close(); }
/** Read the JDK 1.3+ META-INF/INDEX.LIST entry to obtain the package names without having to iterate through all entries in the jar. */ private static void readJarIndex(ClassPathIterator cpi, PkgNameListener listener) throws Exception { boolean trace = log.isTraceEnabled(); InputStream zis = cpi.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(zis)); String line; // Skip the jar index header while( (line = br.readLine()) != null ) { if( line.length() == 0 ) break; } // Read the main jar section String jarName = br.readLine(); if( trace ) log.trace("Reading INDEX.LIST for jar: "+jarName); while( (line = br.readLine()) != null ) { if( line.length() == 0 ) break; String pkgName = line.replace('/', '.'); listener.addPackage(pkgName); } br.close(); }
static void updatePackageMap(ClassPathIterator cpi, PkgNameListener listener) throws Exception { ClassPathEntry entry; while( (entry = cpi.getNextEntry()) != null ) { String name = entry.getName(); // First look for a META-INF/INDEX.LIST entry if( name.equals("META-INF/INDEX.LIST") ) { readJarIndex(cpi, listener); // We are done break; } // Skip empty directory entries if( entry.isDirectory() == true ) continue; String pkgName = entry.toPackageName(); listener.addPackage(pkgName); } cpi.close(); }
static void updatePackageMap(ClassPathIterator cpi, PkgNameListener listener) throws Exception { ClassPathEntry entry; while( (entry = cpi.getNextEntry()) != null ) { String name = entry.getName(); // First look for a META-INF/INDEX.LIST entry if( name.equals("META-INF/INDEX.LIST") ) { readJarIndex(cpi, listener); // We are done break; } // Skip empty directory entries if( entry.isDirectory() == true ) continue; String pkgName = entry.toPackageName(); listener.addPackage(pkgName); } cpi.close(); }