Adding WebappVerifierCLI to run verifier via command line interface
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/sandbox/trunk@1518 7e9141cc-0065-0410-87d8-b60c137991c4
diff --git a/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/WebappVerifier.java b/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/WebappVerifier.java
index 25044c1..bf6557d 100644
--- a/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/WebappVerifier.java
+++ b/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/WebappVerifier.java
@@ -273,7 +273,8 @@
File destDir = new File(_workdir,destname);
URI warURI = new URI("jar",path.toURI() + "!/",null);
JarResource warResource = (JarResource)Resource.newResource(warURI);
- warResource.extract(destDir,false);
+ // Extract the WAR (if needed)
+ warResource.copyTo(destDir);
return destDir;
}
diff --git a/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/WebappVerifierCLI.java b/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/WebappVerifierCLI.java
new file mode 100644
index 0000000..7f3ee3b
--- /dev/null
+++ b/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/WebappVerifierCLI.java
@@ -0,0 +1,87 @@
+package org.eclipse.jetty.webapp.verifier;
+
+import java.io.File;
+
+public class WebappVerifierCLI
+{
+ private static final String ARG_WEBARCHIVE = "webarchive";
+ private static final String ARG_RULESET = "ruleset";
+
+ public static void main(String[] args)
+ {
+ File webarchiveFile = null;
+ File rulesetFile = null;
+
+ for (String arg : args)
+ {
+ if (arg.startsWith("--" + ARG_WEBARCHIVE + "="))
+ {
+ webarchiveFile = new File(arg.substring(3 + ARG_WEBARCHIVE.length()));
+ continue;
+ }
+ if (arg.startsWith("--" + ARG_RULESET + "="))
+ {
+ rulesetFile = new File(arg.substring(3 + ARG_RULESET.length()));
+ continue;
+ }
+ }
+
+ boolean argsValid = true;
+
+ if (webarchiveFile == null)
+ {
+ argsValid = false;
+ System.err.println("ERROR: no " + ARG_WEBARCHIVE + " provided.");
+ }
+ else if (!webarchiveFile.exists())
+ {
+ argsValid = false;
+ System.err.println("ERROR: File [" + ARG_WEBARCHIVE + "] Not Found: " + webarchiveFile.getAbsolutePath());
+ }
+
+ if (rulesetFile == null)
+ {
+ argsValid = false;
+ System.err.println("ERROR: no " + ARG_RULESET + " provided.");
+ }
+ else if (!rulesetFile.exists())
+ {
+ argsValid = false;
+ System.err.println("ERROR: File [" + ARG_RULESET + "] Not Found: " + rulesetFile.getAbsolutePath());
+ }
+
+ if (!argsValid)
+ {
+ System.out.println("Usage: java -jar jetty-webapp-verifier.jar --" + ARG_WEBARCHIVE + "=<path_to_archive> " + "--" + ARG_RULESET
+ + "=<path_to_ruleset>");
+ System.exit(-1);
+ }
+
+ try
+ {
+ // load ruleset
+ System.out.println("Loading Ruleset: " + rulesetFile);
+ RuleSet ruleset = RuleSet.load(rulesetFile);
+
+ // load webarchive
+ System.out.println("Loading Web Archive: " + webarchiveFile);
+ WebappVerifier verifier = ruleset.createWebappVerifier(webarchiveFile.toURI());
+ // verifier.setWorkDir(tempDir);
+
+ // submit for verification
+ System.out.println("Analyzing ...");
+ verifier.visitAll();
+
+ // show report
+ for (Violation violation : verifier.getViolations())
+ {
+ System.out.println(violation);
+ }
+ System.out.println("Done.");
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(System.err);
+ }
+ }
+}