private void renameResources()

in src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java [1295:1350]


    private void renameResources(final ApisJarContext ctx, final ArtifactInfo info, final ArtifactId artifactId)
            throws MojoExecutionException {
        final List<String> patterns = getIncludeResourcePatterns(ctx, info.getId());
        if (patterns.isEmpty()) {
            getLog().debug("No configured resources to rename in " + info.getBinDirectory());
        }

        getLog().debug("Renaming " + patterns + " files in " + info.getBinDirectory() + "...");

        final DirectoryScanner directoryScanner = new DirectoryScanner();
        directoryScanner.setBasedir(info.getBinDirectory());
        directoryScanner.setIncludes(patterns.toArray(new String[patterns.size()]));
        directoryScanner.scan();

        if (directoryScanner.getIncludedFiles().length == 0) {
            getLog().debug("No " + patterns + " resources in " + info.getBinDirectory() + " to be renamed found.");
            return;
        }

        for (final String resourceName : directoryScanner.getIncludedFiles()) {
            final File resource = new File(info.getBinDirectory(), resourceName);

            String includedName = resourceName.replace(File.separatorChar, '/');
            if (!info.getIncludedResources().contains(resource)) {
                final String prefix = artifactId.toMvnName().concat("-");

                if (resource.getName().startsWith(prefix)) {
                    getLog().debug("No need to rename " + resource);
                    info.getIncludedResources().add(resource);
                } else {
                    File renamed = new File(resource.getParentFile(), prefix.concat(resource.getName()));

                    getLog().debug("Renaming resource " + resource + " to " + renamed + "...");

                    if (resource.renameTo(renamed)) {
                        getLog().debug("Resource renamed to " + renamed);
                        info.getIncludedResources().add(renamed);
                    } else {
                        throw new MojoExecutionException("Impossible to rename resource " + resource + " to " + renamed
                                + ", please check the current user has enough rights on the File System");
                    }
                    final int lastSlash = includedName.lastIndexOf('/');
                    if (lastSlash == -1) {
                        includedName = renamed.getName();
                    } else {
                        includedName = includedName.substring(0, lastSlash + 1).concat(renamed.getName());
                    }
                }
            }
            if (includedName.endsWith(ArtifactType.CND.getContentExtension())) {
                info.getNodeTypes().add(includedName);
            }
        }

        getLog().debug(patterns + " resources in " + info.getBinDirectory() + " successfully renamed");
    }