private void removeSpecificallyIncludedClasses()

in src/main/java/org/apache/maven/plugins/shade/filter/MinijarFilter.java [295:319]


    private void removeSpecificallyIncludedClasses(MavenProject project, List<SimpleFilter> simpleFilters)
            throws IOException {
        // remove classes specifically included in filters
        Clazzpath checkCp = new Clazzpath();
        for (Artifact dependency : project.getArtifacts()) {
            File jar = dependency.getFile();

            for (SimpleFilter simpleFilter : simpleFilters) {
                if (simpleFilter.canFilter(jar)) {
                    ClazzpathUnit depClazzpathUnit = addDependencyToClasspath(checkCp, dependency);
                    if (depClazzpathUnit != null) {
                        Set<Clazz> clazzes = depClazzpathUnit.getClazzes();
                        for (final Clazz clazz : new HashSet<>(removable)) {
                            if (clazzes.contains(clazz) //
                                    && simpleFilter.isSpecificallyIncluded(
                                            clazz.getName().replace('.', '/'))) {
                                log.debug(clazz.getName() + " not removed because it was specifically included");
                                removeClass(clazz);
                            }
                        }
                    }
                }
            }
        }
    }