in src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java [428:460]
private void addAlias(XStream xstreamObject, File jarFile, String packageFilter) {
try (FileInputStream fis = new FileInputStream(jarFile);
JarInputStream jarStream = new JarInputStream(fis)) {
for (JarEntry jarEntry = jarStream.getNextJarEntry();
jarEntry != null;
jarEntry = jarStream.getNextJarEntry()) {
if (jarEntry.getName().toLowerCase(Locale.ENGLISH).endsWith(".class")) {
String name =
jarEntry.getName().substring(0, jarEntry.getName().indexOf("."));
name = name.replace("/", "\\.");
if (name.contains(packageFilter) && !name.contains("$")) {
try {
Class<?> clazz = Class.forName(name);
String alias = StringUtils.lowercaseFirstLetter(clazz.getSimpleName());
xstreamObject.alias(alias, clazz);
if (!clazz.equals(Model.class)) {
xstreamObject.omitField(clazz, "modelEncoding"); // unnecessary field
}
} catch (ClassNotFoundException e) {
getLog().error(e);
}
}
}
jarStream.closeEntry();
}
} catch (IOException e) {
if (getLog().isDebugEnabled()) {
getLog().debug("IOException: " + e.getMessage(), e);
}
}
}