public String createExportPackageReport()

in src/main/java/org/apache/jackrabbit/filevault/maven/packaging/impl/ImportPackageBuilder.java [219:281]


    public String createExportPackageReport() {
        TreeSet<String> unusedBundles = new TreeSet<String>(bundles.keySet());
        StringBuilder report = new StringBuilder("Export package report:\n\n");
        List<String> packages = new ArrayList<String>(exported.keySet());
        Collections.sort(packages);
        int pad = 18;
        for (String packageName : packages) {
            pad = Math.max(pad, packageName.length());
        }
        pad += 2;

        report
                .append(StringUtils.rightPad("Exported packages", pad))
                .append(StringUtils.rightPad("Uses", 5))
                .append(StringUtils.rightPad("Version", 10))
                .append("Dependency\n");
        report.append(StringUtils.repeat("-", pad + 30)).append("\n");
        for (String packageName : packages) {
            PackageInfo info = exported.get(packageName);

            report.append(StringUtils.rightPad(packageName, pad));
            report.append(StringUtils.rightPad(String.valueOf(info.usedBy.size()), 5));
            boolean first = true;
            for (BundleInfo bInfo : info.bundles.values()) {
                if (first) {
                    String version = bInfo.packageVersions.get(packageName);
                    if (StringUtils.isEmpty(version)) {
                        version = "0.0.0";
                    }
                    report.append(StringUtils.rightPad(version, 10));
                    report.append(bInfo.getId());
                    first = false;
                }
                if (!info.usedBy.isEmpty()) {
                    unusedBundles.remove(bInfo.getId());
                }
            }
            if (first) {
                report.append(StringUtils.rightPad("n/a", 10));
            }
            report.append("\n");
        }

        report.append("\n").append(unusedBundles.size()).append(" unused bundles\n");
        report.append("------------------------------\n");
        for (String bundleId : unusedBundles) {
            report.append(bundleId).append("\n");
        }

        report.append("\nPackages used in the analyzed classes: \n");
        report.append("------------------------------\n");
        for (Map.Entry<String, Attrs> e: importParameters.entrySet()) {
            report.append(e.getKey());
            try {
                Processor.printClause(e.getValue(), report);
            } catch (IOException e1) {
                throw new IllegalStateException("Internal error while generating report", e1);
            }
            report.append("\n");
        }

        return report.toString();
    }