private void addAlias()

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);
            }
        }
    }