in indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java [143:184]
private void updateArtifactInfo(final ArtifactInfo ai, final File f, final String strippedPrefix)
throws IOException {
try (ZipFile zipFile = new ZipFile(f)) {
final Enumeration<? extends ZipEntry> entries = zipFile.entries();
final StringBuilder sb = new StringBuilder();
while (entries.hasMoreElements()) {
String name = entries.nextElement().getName();
if (name.endsWith(".class")) {
// TODO verify if class is public or protected
// TODO skip all inner classes for now
int i = name.indexOf("$");
if (i == -1) {
if (name.charAt(0) != '/') {
sb.append('/');
}
if (StringUtils.isBlank(strippedPrefix)) {
// class name without ".class"
sb.append(name, 0, name.length() - 6).append('\n');
} else if (name.startsWith(strippedPrefix) && (name.length() > (strippedPrefix.length() + 6))) {
// class name without ".class" and stripped prefix
sb.append(name, strippedPrefix.length(), name.length() - 6)
.append('\n');
}
}
}
}
final String fieldValue = sb.toString().trim();
if (fieldValue.length() != 0) {
ai.setClassNames(fieldValue);
} else {
ai.setClassNames(null);
}
}
}