Author: drazzib Date: 2011-08-09 21:02:52 +0000 (Tue, 09 Aug 2011) New Revision: 14133
Added: trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportHTMLWriter.java trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportTextWriter.java trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportWriter.java Modified: trunk/maven-repo-helper/ trunk/maven-repo-helper/debian/changelog trunk/maven-repo-helper/src/main/bin/mh_checkrepo trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/Repository.java Log: * TODO: Add support for packages built with dh 7 and javahelper: use the following line in your rules file: * src/main/java/org/debian/maven/repo/RepositoryReportWriter.java: Add a hack to change output of Maven repository checker. Property changes on: trunk/maven-repo-helper ___________________________________________________________________ Modified: svn:ignore - .classpath .project bin + .classpath .project bin target .settings Modified: trunk/maven-repo-helper/debian/changelog =================================================================== --- trunk/maven-repo-helper/debian/changelog 2011-08-09 21:02:29 UTC (rev 14132) +++ trunk/maven-repo-helper/debian/changelog 2011-08-09 21:02:52 UTC (rev 14133) @@ -1,9 +1,9 @@ -maven-repo-helper (1.5.2) UNRELEASED; urgency=low +maven-repo-helper (1.5.2) unstable; urgency=low [ Ludovic Claude ] * Match jar with bundle as they are equivalent - * TODO: Add support for packages built with dh 7 and javahelper: use the following - line in your rules file: + * TODO: Add support for packages built with dh 7 and javahelper: use + the following line in your rules file: dh $@ --with javahelper --with jh_mavenrepohelper This will build the package with javahelper, and the resulting jar will be installed in the Maven repository (you need of course the @@ -12,8 +12,10 @@ [ Damien Raude-Morvan ] * Keep relativePath attribute on parent pom. * d/control: Fix typo in package description (Closes: #617438). + * src/main/java/org/debian/maven/repo/RepositoryReportWriter.java: Add + a hack to change output of Maven repository checker. - -- Damien Raude-Morvan <draz...@debian.org> Sat, 23 Jul 2011 16:42:59 +0200 + -- Damien Raude-Morvan <draz...@debian.org> Tue, 09 Aug 2011 22:57:51 +0200 maven-repo-helper (1.5.1) unstable; urgency=low Modified: trunk/maven-repo-helper/src/main/bin/mh_checkrepo =================================================================== --- trunk/maven-repo-helper/src/main/bin/mh_checkrepo 2011-08-09 21:02:29 UTC (rev 14132) +++ trunk/maven-repo-helper/src/main/bin/mh_checkrepo 2011-08-09 21:02:52 UTC (rev 14133) @@ -31,17 +31,9 @@ echo -e "\t-h --help: show this text" echo -e "\t-V --version: show the version" echo -e "\t-v --verbose: show more information while running" + echo -e "\t-o<format>, --output=<format>: 'text' or 'html' to change output format" + echo -e "\t-r<repository>, --repository=<repository>: directory of Maven repository" exit 1 } -ARGS="v verbose n" parseargs "$@" - -VERBOSE=$(getarg v verbose) - -if [ "$ARGC" -gt "0" ]; then - REPO="${ARGV[0]}" -else - REPO="/usr/share/maven-repo" -fi - -java -cp $CLASSPATH $JAVA_OPTIONS org.debian.maven.repo.Repository $REPO +java -cp $CLASSPATH $JAVA_OPTIONS org.debian.maven.repo.Repository "$@" Modified: trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/Repository.java =================================================================== --- trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/Repository.java 2011-08-09 21:02:29 UTC (rev 14132) +++ trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/Repository.java 2011-08-09 21:02:52 UTC (rev 14133) @@ -24,10 +24,20 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; import java.util.logging.Level; import java.util.logging.Logger; + import javax.xml.stream.XMLStreamException; /** @@ -184,37 +194,44 @@ scanned = true; } - public void report() { + public void report(RepositoryReportWriter writer) { + writer.printStart(); + if (pomsWithMissingParent.size() > 0) { - System.out.println("POMs with missing parents:"); + writer.printSectionStart("POMs with missing parents"); for (Iterator i = pomsWithMissingParent.keySet().iterator(); i.hasNext();) { File pom = (File) i.next(); - System.out.println("\t" + pom.getAbsolutePath()); + writer.printItem(pom.getAbsolutePath()); + writer.endItem(); } + writer.printSectionEnd(); } if (pomsWithMissingVersions.size() > 0) { - System.out.println("POMs with missing versions:"); + writer.printSectionStart("POMs with missing versions"); for (Iterator i = pomsWithMissingVersions.entrySet().iterator(); i.hasNext();) { Entry entry = (Entry) i.next(); File pom = (File) entry.getKey(); POMInfo pomInfo = (POMInfo) entry.getValue(); - System.out.println("\t" + pom.getAbsolutePath()); + writer.printItem(pom.getAbsolutePath()); for (Iterator j = pomInfo.getDependencies().iterator(); j.hasNext();) { Dependency dependency = (Dependency) j.next(); if (dependency.getVersion() == null || dependency.getVersion().contains("$")) { - System.out.println("\t\t" + dependency); + writer.printItem(dependency.toString()); + writer.endItem(); } } for (Iterator j = pomInfo.getPlugins().iterator(); j.hasNext();) { Dependency dependency = (Dependency) j.next(); if (dependency.getVersion() == null || dependency.getVersion().contains("$")) { - System.out.println("\t\t" + dependency); + writer.printItem(dependency.toString()); + writer.endItem(); } } + writer.endItem(); } + writer.printSectionEnd(); } - System.out.println(); Set issues = new TreeSet(); Map pomsWithIssues = new HashMap(); @@ -254,11 +271,13 @@ } } + writer.printSectionStart("Errors"); for (Iterator i = issues.iterator(); i.hasNext();) { String issue = (String) i.next(); - System.out.println(issue); + writer.printItem(issue); + writer.endItem(); } - System.out.println(); + writer.printSectionEnd(); // Find the poms with most issues Map pomsWithNumberOfIssues = new TreeMap(Collections.reverseOrder()); @@ -275,20 +294,23 @@ orderedPoms.add(pom); } if (!pomsWithNumberOfIssues.isEmpty()) { - System.out.println("Top 10 POM files with issues:"); + writer.printSectionStart("Top 10 POM files with issues"); int count = 0; for (Iterator i = pomsWithNumberOfIssues.values().iterator(); i.hasNext() && count < 10;) { List orderedPoms = (List) i.next(); for (Iterator j = orderedPoms.iterator(); j.hasNext() && count < 10; count++) { File pom = (File) j.next(); List missingDeps = (List) pomsWithIssues.get(pom); - System.out.println("Missing dependencies in " + pom); + writer.printItem("Missing dependencies in " + pom); for (Iterator k = missingDeps.iterator(); k.hasNext();) { Dependency dependency = (Dependency) k.next(); - System.out.println("\t" + dependency); + writer.printItem(dependency.toString()); + writer.endItem(); } + writer.endItem(); } } + writer.printSectionEnd(); } // Find the dependencies that need packaging most @@ -317,15 +339,19 @@ } }); if (! missingDependenciesCountList.isEmpty()) { - System.out.println("Top 10 missing dependencies:"); + writer.printSectionStart("Top 10 missing dependencies"); int count = 0; for (Iterator i = missingDependenciesCountList.iterator(); i.hasNext() && count < 10; count++) { Map.Entry entry = (Entry) i.next(); Dependency missingDependency = (Dependency) entry.getKey(); Integer numberOfTimes = (Integer) entry.getValue(); - System.out.println("Missing dependency " + missingDependency + " is needed in " + numberOfTimes + " places"); + writer.printItem("Missing dependency " + missingDependency + " is needed in " + numberOfTimes + " places"); + writer.endItem(); } + writer.printSectionEnd(); } + + writer.printEnd(); } private void resolveAll(Map file2pom) { @@ -410,15 +436,54 @@ } public static void main(String[] args) { - String repoLocation = "/usr/share/maven-repo"; - if (args.length > 0) { - repoLocation = args[0]; + File repoLocation = new File("/usr/share/maven-repo"); + + if (args != null && "-h".equals(args[0]) || "--help".equals(args[0])) { + System.out.println("Purpose: Check content of a Maven repository."); + System.out.println("Usage: [option]"); + System.out.println(""); + System.out.println("Options:"); + System.out.println(" -v, --verbose: be extra verbose"); + System.out.println(" -o<format>, --output=<format>: 'text' or 'html' to change output format"); + System.out.println(" -r<repository>, --repository=<repository>: directory of Maven repository"); + return; } - System.out.println("Scanning repository..."); - Repository repository = new Repository(new File(repoLocation)); + + String format = "text"; + + // Parse parameters + int i = inc(-1, args); + while (i < args.length && (args[i].trim().startsWith("-") || args[i].trim().isEmpty())) { + String arg = args[i].trim(); + if (arg.startsWith("-o")) { + format = arg.substring(2); + } else if (arg.startsWith("--output=")) { + format = arg.substring("--output=".length()); + } else if (arg.startsWith("-r")) { + repoLocation = new File(arg.substring(2)); + } else if (arg.startsWith("--repository=")) { + repoLocation = new File(arg.substring("--repository=".length())); + } + i = inc(i, args); + } + + Repository repository = new Repository(repoLocation); + RepositoryReportWriter reportWriter; + if ("text".equals(format)) { + reportWriter = new RepositoryReportTextWriter(); + } else { + reportWriter = new RepositoryReportHTMLWriter(); + } + repository.scan(); - repository.report(); - System.out.println("Done."); + repository.report(reportWriter); } + private static int inc(int i, String[] args) { + do { + i++; + } while (i < args.length && args[i].isEmpty()); + return i; + } + } Added: trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportHTMLWriter.java =================================================================== --- trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportHTMLWriter.java (rev 0) +++ trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportHTMLWriter.java 2011-08-09 21:02:52 UTC (rev 14133) @@ -0,0 +1,93 @@ +package org.debian.maven.repo; + +/* + * Copyright 2011 Damien Raude-Morvan. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * + * @author Damien Raude-Morvan <draz...@debian.org> + */ +public class RepositoryReportHTMLWriter implements RepositoryReportWriter { + + /** Current level of item */ + private int itemLevel = 1; + + /** + * {@inheritDoc} + */ + public void printSectionStart(String string) { + String display = string + ":"; + + System.out.println("<h2>"); + System.out.println(display); + System.out.println("</h2>"); + System.out.println("<ul>"); + } + + /** + * {@inheritDoc} + */ + public void printSectionEnd() { + System.out.println("</ul>"); + } + + /** + * {@inheritDoc} + */ + public void printItem(String string) { + if (itemLevel > 1) { + System.out.print("<ul>"); + } + System.out.print("<li>"); + System.out.print(string); + itemLevel++; + } + + /** + * {@inheritDoc} + */ + public void endItem() { + itemLevel--; + System.out.println("</li>"); + if (itemLevel > 1) { + System.out.print("</ul>"); + } + } + + /** + * {@inheritDoc} + */ + public void printStart() { + System.out.println("<html>"); + System.out.println("<header>"); + System.out.println("<title>Debian Maven repository QA</title>"); + System.out + .println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>"); + System.out.println("</header>"); + System.out.println("<body>"); + System.out.println("<h1>Debian Maven repository QA</h1>"); + } + + /** + * {@inheritDoc} + */ + public void printEnd() { + System.out.println("</body>"); + System.out.println("</html>"); + + } + +} Added: trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportTextWriter.java =================================================================== --- trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportTextWriter.java (rev 0) +++ trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportTextWriter.java 2011-08-09 21:02:52 UTC (rev 14133) @@ -0,0 +1,79 @@ +package org.debian.maven.repo; + +/* + * Copyright 2011 Damien Raude-Morvan. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * + * @author Damien Raude-Morvan <draz...@debian.org> + */ +public class RepositoryReportTextWriter implements RepositoryReportWriter { + + /** Current level of item */ + private int itemLevel = 1; + + /** + * {@inheritDoc} + */ + public void printSectionStart(String string) { + String display = string + ":"; + + System.out.println(display.replaceAll(".", "=")); + System.out.println(display); + System.out.println(display.replaceAll(".", "=")); + } + + /** + * {@inheritDoc} + */ + public void printSectionEnd() { + System.out.println(); + } + + /** + * {@inheritDoc} + */ + public void printItem(String string) { + System.out.print("\t"); + if (itemLevel > 1) { + System.out.print("\t"); + } + System.out.println(string); + itemLevel++; + } + + /** + * {@inheritDoc} + */ + public void endItem() { + itemLevel--; + } + + /** + * {@inheritDoc} + */ + public void printStart() { + System.out.println("Scanning repository..."); + } + + /** + * {@inheritDoc} + */ + public void printEnd() { + System.out.println("Done."); + } + +} Added: trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportWriter.java =================================================================== --- trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportWriter.java (rev 0) +++ trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/RepositoryReportWriter.java 2011-08-09 21:02:52 UTC (rev 14133) @@ -0,0 +1,59 @@ +package org.debian.maven.repo; +/* + * Copyright 2011 Damien Raude-Morvan. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Interface of any check's output. + * + * @author Damien Raude-Morvan <draz...@debian.org> + */ +public interface RepositoryReportWriter { + + /** + * Print start part of any Item + * + * @param string content of message to print + */ + void printItem(String string); + + /** + * Print end part of any Item + */ + void endItem(); + + /** + * Print start of a report section + * + * @param string content of message to print + */ + void printSectionStart(String string); + + /** + * Print end of a report section + */ + void printSectionEnd(); + + /** + * Print end footer of the report + */ + void printEnd(); + + /** + * Print start header of the report + */ + void printStart(); + +} _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits