Adding impl + test for NoSourceControlRule.

git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/sandbox/trunk@745 7e9141cc-0065-0410-87d8-b60c137991c4
diff --git a/jetty-webapp-verifier-examples/dummy-scm-lib/.gitignore b/jetty-webapp-verifier-examples/dummy-scm-lib/.gitignore
new file mode 100644
index 0000000..8baee4f
--- /dev/null
+++ b/jetty-webapp-verifier-examples/dummy-scm-lib/.gitignore
@@ -0,0 +1,8 @@
+target/
+.classpath
+.project
+.settings
+*.swp
+*.log
+*.patch
+*.diff
diff --git a/jetty-webapp-verifier-examples/dummy-scm-lib/pom.xml b/jetty-webapp-verifier-examples/dummy-scm-lib/pom.xml
new file mode 100644
index 0000000..992cccb
--- /dev/null
+++ b/jetty-webapp-verifier-examples/dummy-scm-lib/pom.xml
@@ -0,0 +1,84 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.eclipse.jetty.tests</groupId>
+  <artifactId>dummy-scm-lib</artifactId>
+  <packaging>pom</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>Jetty :: Webapp Verifier :: Dummy SCM Lib</name>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>create-scm-files</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <!-- Generating these resources, as they cannot be checked
+                   in reliably. duh. ;-) -->
+              <tasks>
+                <property name="outdir" value="${project.build.directory}/generated-scm-resources" />
+                <mkdir dir="${outdir}/CVS" />
+                <touch file="${outdir}/.cvsignore" />
+                <mkdir dir="${outdir}/.svn" />
+                <mkdir dir="${outdir}/_svn" />
+                <mkdir dir="${outdir}/.git" />
+                <touch file="${outdir}/.gitignore" />
+                <mkdir dir="${outdir}/RCS" />
+                <mkdir dir="${outdir}/SCCS" />
+                <touch file="${outdir}/vssver.scc" />
+                <mkdir dir="${outdir}/.arch-ids" />
+                <mkdir dir="${outdir}/.bzr" />
+                <touch file="${outdir}/.MySCMServerInfo" />
+                <mkdir dir="${outdir}/.hg" />
+                <mkdir dir="${outdir}/BitKeeper" />
+                <mkdir dir="${outdir}/ChangeSet" />
+                <mkdir dir="${outdir}/_darcs" />
+                <mkdir dir="${outdir}/.darcs" />
+                <mkdir dir="${outdir}/.darcsrepo" />
+                <touch file="${outdir}/.darcs-temp-mail" />
+                <copy file="${basedir}/src/main/resources/README.txt"
+                      todir="${outdir}" />
+
+                <!-- Generating JAR file here as Maven is too smart and
+                     won't allow you to create JAR files with SCM content in it.
+                  -->
+                <jar destfile="${project.build.directory}/${project.artifactId}-${project.version}.jar"
+                     basedir="${outdir}"
+                     includes="**/*"
+                     defaultexcludes="false"
+                     />
+              </tasks>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-scm-lib</id>
+            <phase>package</phase>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  <file>${project.build.directory}/${project.artifactId}-${project.version}.jar</file>
+                  <type>jar</type>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/jetty-webapp-verifier-examples/dummy-scm-lib/src/main/resources/README.txt b/jetty-webapp-verifier-examples/dummy-scm-lib/src/main/resources/README.txt
new file mode 100644
index 0000000..62c8839
--- /dev/null
+++ b/jetty-webapp-verifier-examples/dummy-scm-lib/src/main/resources/README.txt
@@ -0,0 +1,3 @@
+This dummy lib is a TEST RESOURCE, used by the jetty project at http://www.eclipse.org/jetty/
+
+This JAR file is not for use outside of the /jetty-webapp-verifier/ test cases.
diff --git a/jetty-webapp-verifier-examples/dummy-scm-webapp/.gitignore b/jetty-webapp-verifier-examples/dummy-scm-webapp/.gitignore
new file mode 100644
index 0000000..8baee4f
--- /dev/null
+++ b/jetty-webapp-verifier-examples/dummy-scm-webapp/.gitignore
@@ -0,0 +1,8 @@
+target/
+.classpath
+.project
+.settings
+*.swp
+*.log
+*.patch
+*.diff
diff --git a/jetty-webapp-verifier-examples/dummy-scm-webapp/pom.xml b/jetty-webapp-verifier-examples/dummy-scm-webapp/pom.xml
new file mode 100644
index 0000000..6ebb824
--- /dev/null
+++ b/jetty-webapp-verifier-examples/dummy-scm-webapp/pom.xml
@@ -0,0 +1,116 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.eclipse.jetty.tests</groupId>
+  <artifactId>dummy-scm-webapp</artifactId>
+  <packaging>pom</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>Jetty :: Webapp Verifier :: Example Dummy SCM Webapp</name>
+  <dependencies>
+    <dependency>
+      <groupId>org.eclipse.jetty.tests</groupId>
+      <artifactId>dummy-scm-lib</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+  <properties>
+    <war_work_dir>${project.build.directory}/generated-webapp</war_work_dir>
+  </properties>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>create-scm-files</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <tasks>
+                <mkdir dir="${war_work_dir}/CVS" />
+                <touch file="${war_work_dir}/.cvsignore" />
+                <mkdir dir="${war_work_dir}/.svn" />
+                <mkdir dir="${war_work_dir}/_svn" />
+                <mkdir dir="${war_work_dir}/.git" />
+                <touch file="${war_work_dir}/.gitignore" />
+                <mkdir dir="${war_work_dir}/RCS" />
+                <mkdir dir="${war_work_dir}/SCCS" />
+                <touch file="${war_work_dir}/vssver.scc" />
+                <mkdir dir="${war_work_dir}/.arch-ids" />
+                <mkdir dir="${war_work_dir}/.bzr" />
+                <touch file="${war_work_dir}/.MySCMServerInfo" />
+                <mkdir dir="${war_work_dir}/.hg" />
+                <mkdir dir="${war_work_dir}/BitKeeper" />
+                <mkdir dir="${war_work_dir}/ChangeSet" />
+                <mkdir dir="${war_work_dir}/_darcs" />
+                <mkdir dir="${war_work_dir}/.darcs" />
+                <mkdir dir="${war_work_dir}/.darcsrepo" />
+                <touch file="${war_work_dir}/.darcs-temp-mail" />
+                <copy todir="${war_work_dir}">
+                  <fileset dir="${basedir}/src/main/webapp" />
+                </copy>
+                <mkdir dir="${war_work_dir}/WEB-INF/lib" />
+              </tasks>
+            </configuration>
+          </execution>
+          <execution>
+            <id>create-war</id>
+            <phase>package</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <tasks>
+                <jar destfile="${project.build.directory}/${project.artifactId}-${project.version}.war"
+                     basedir="${war_work_dir}"
+                     includes="**/*"
+                     defaultexcludes="false"
+                />
+              </tasks>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy-deps</id>
+            <phase>process-resources</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${war_work_dir}/WEB-INF/lib</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-scm-lib</id>
+            <phase>process-resources</phase>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  <file>${project.build.directory}/${project.artifactId}-${project.version}.war</file>
+                  <type>war</type>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/jetty-webapp-verifier-examples/dummy-scm-webapp/src/main/webapp/README.txt b/jetty-webapp-verifier-examples/dummy-scm-webapp/src/main/webapp/README.txt
new file mode 100644
index 0000000..ba2e223
--- /dev/null
+++ b/jetty-webapp-verifier-examples/dummy-scm-webapp/src/main/webapp/README.txt
@@ -0,0 +1,4 @@
+This is a webapp is a TEST RESOURCE, used by the jetty project at http://www.eclipse.org/jetty/
+
+It is neither a valid WAR file, nor contains valid JRuby implementations,
+in either scripting, source or binary form.
diff --git a/jetty-webapp-verifier-examples/dummy-scm-webapp/src/main/webapp/WEB-INF/web.xml b/jetty-webapp-verifier-examples/dummy-scm-webapp/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..9f88c1f
--- /dev/null
+++ b/jetty-webapp-verifier-examples/dummy-scm-webapp/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,7 @@
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd" >
+
+<web-app>
+  <display-name>Archetype Created Web Application</display-name>
+</web-app>
diff --git a/jetty-webapp-verifier-examples/pom.xml b/jetty-webapp-verifier-examples/pom.xml
index 856c78f..3dc7579 100644
--- a/jetty-webapp-verifier-examples/pom.xml
+++ b/jetty-webapp-verifier-examples/pom.xml
@@ -25,5 +25,7 @@
     <module>dummy-java15-lib</module>
     <module>dummy-java16-lib</module>
     <module>dummy-javaversions-webapp</module>
+    <module>dummy-scm-lib</module>
+    <module>dummy-scm-webapp</module>
   </modules>
 </project>
diff --git a/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/rules/NoSourceControlRule.java b/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/rules/NoSourceControlRule.java
index 4e6d0b6..2b07684 100644
--- a/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/rules/NoSourceControlRule.java
+++ b/jetty-webapp-verifier/src/main/java/org/eclipse/jetty/webapp/verifier/rules/NoSourceControlRule.java
@@ -16,29 +16,136 @@
 package org.eclipse.jetty.webapp.verifier.rules;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
 
-import org.eclipse.jetty.webapp.verifier.AbstractRule;
+import org.eclipse.jetty.webapp.verifier.AbstractArchiveScanningRule;
 
 /**
  * Prevent inclusion of Source Control files & directories that might reveal hostnames, userids, and passwords to the
  * source control. (CVS, .svn/, .git/)
  */
-public class NoSourceControlRule extends AbstractRule
+public class NoSourceControlRule extends AbstractArchiveScanningRule
 {
+    class ScmName
+    {
+        String scm;
+        String name;
+
+        public ScmName(String scm, String name)
+        {
+            this.scm = scm;
+            this.name = name;
+        }
+    }
+
+    private static List<ScmName> scmDirNames = new ArrayList<ScmName>();
+    private static List<ScmName> scmFileNames = new ArrayList<ScmName>();
+
+    public NoSourceControlRule()
+    {
+        super();
+
+        // The order of patterns is most likely to least likely
+
+        scmDirNames.add(new ScmName("Subversion",".svn")); // Standard Unix format
+        scmDirNames.add(new ScmName("Subversion","_svn")); // Alternate Windows format
+        scmDirNames.add(new ScmName("CVS","CVS"));
+        scmFileNames.add(new ScmName("CVS",".cvsignore"));
+        scmDirNames.add(new ScmName("Git",".git"));
+        scmFileNames.add(new ScmName("Git",".gitignore"));
+        scmDirNames.add(new ScmName("RCS","RCS"));
+        scmDirNames.add(new ScmName("SCCS","SCCS"));
+        scmFileNames.add(new ScmName("Visual SourceSafe","vssver.scc"));
+        scmDirNames.add(new ScmName("Arch",".arch-ids"));
+        scmDirNames.add(new ScmName("Bazaar",".bzr"));
+        scmFileNames.add(new ScmName("SurroundSCM",".MySCMServerInfo"));
+        scmDirNames.add(new ScmName("Mercurial",".hg"));
+        scmDirNames.add(new ScmName("BitKeeper","BitKeeper"));
+        scmDirNames.add(new ScmName("BitKeeper","ChangeSet"));
+        scmDirNames.add(new ScmName("Darcs","_darcs"));
+        scmDirNames.add(new ScmName("Darcs",".darcsrepo"));
+        scmFileNames.add(new ScmName("Darcs",".darcs-temp-mail"));
+    }
+
+    @Override
     public String getDescription()
     {
         return "Prevent inclusion of source control files in webapp";
     }
 
+    @Override
     public String getName()
     {
         return "no-source-control";
     }
 
     @Override
-    public void visitWebappStart(String path, File dir)
+    public void visitDirectoryStart(String path, File dir)
     {
-        // TODO: implement rule.
-        error(path,"Rule [" + getClass().getName() + "] not yet implemented");
+        for (ScmName scmName : scmDirNames)
+        {
+            if (dir.getName().equalsIgnoreCase(scmName.name))
+            {
+                error(path,scmName.scm + " Source Control directories are not allowed");
+            }
+        }
+    }
+
+    @Override
+    public void visitFile(String path, File dir, File file)
+    {
+        for (ScmName scmName : scmFileNames)
+        {
+            if (file.getName().equalsIgnoreCase(scmName.name))
+            {
+                error(path,scmName.scm + " Source Control file are not allowed");
+            }
+        }
+    }
+
+    @Override
+    public void visitArchiveResource(String path, ZipFile zip, ZipEntry entry)
+    {
+        String basename = toBaseName(entry);
+
+        if (entry.isDirectory())
+        {
+            for (ScmName scmName : scmDirNames)
+            {
+                if (basename.equalsIgnoreCase(scmName.name))
+                {
+                    error(path,scmName.scm + " Source Control directories are not allowed");
+                }
+            }
+        }
+        else
+        {
+            for (ScmName scmName : scmFileNames)
+            {
+                if (basename.equalsIgnoreCase(scmName.name))
+                {
+                    error(path,scmName.scm + " Source Control file are not allowed");
+                }
+            }
+        }
+    }
+
+    private String toBaseName(ZipEntry entry)
+    {
+        String name =entry.getName();
+        if (name.endsWith("/"))
+        {
+            name = name.substring(0,name.length() - 1);
+        }
+
+        int idx = name.lastIndexOf('/');
+        if (idx >= 0)
+        {
+            return name.substring(idx + 1);
+        }
+        return name;
     }
 }
diff --git a/jetty-webapp-verifier/src/test/java/org/eclipse/jetty/webapp/verifier/rules/NoSourceControlRuleTest.java b/jetty-webapp-verifier/src/test/java/org/eclipse/jetty/webapp/verifier/rules/NoSourceControlRuleTest.java
new file mode 100644
index 0000000..f1716cb
--- /dev/null
+++ b/jetty-webapp-verifier/src/test/java/org/eclipse/jetty/webapp/verifier/rules/NoSourceControlRuleTest.java
@@ -0,0 +1,31 @@
+// ========================================================================
+// Copyright (c) Webtide LLC
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
+//
+// The Eclipse Public License is available at 
+// http://www.eclipse.org/legal/epl-v10.html
+//
+// The Apache License v2.0 is available at
+// http://www.apache.org/licenses/LICENSE-2.0.txt
+//
+// You may elect to redistribute this code under either of these licenses. 
+// ========================================================================
+package org.eclipse.jetty.webapp.verifier.rules;
+
+import org.eclipse.jetty.webapp.verifier.RuleAssert;
+
+import junit.framework.TestCase;
+
+/**
+ * NoSourceControlRuleTest
+ */
+public class NoSourceControlRuleTest extends TestCase
+{
+    public void testNoScm() throws Exception
+    {
+        RuleAssert.assertIntegration("no_scm");
+    }
+}
diff --git a/jetty-webapp-verifier/src/test/resources/no_scm.config.xml b/jetty-webapp-verifier/src/test/resources/no_scm.config.xml
new file mode 100644
index 0000000..af006ca
--- /dev/null
+++ b/jetty-webapp-verifier/src/test/resources/no_scm.config.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Configure id="basicRuleSet"
+  class="org.eclipse.jetty.webapp.verifier.RuleSet">
+  <Set name="rules">
+    <Array type="org.eclipse.jetty.webapp.verifier.Rule">
+      <Item>
+        <New class="org.eclipse.jetty.webapp.verifier.rules.NoSourceControlRule" />
+      </Item>
+    </Array>
+  </Set>
+</Configure>
\ No newline at end of file
diff --git a/jetty-webapp-verifier/src/test/resources/no_scm.expectations.txt b/jetty-webapp-verifier/src/test/resources/no_scm.expectations.txt
new file mode 100644
index 0000000..0b0f2c8
--- /dev/null
+++ b/jetty-webapp-verifier/src/test/resources/no_scm.expectations.txt
@@ -0,0 +1,36 @@
+ERROR|_darcs/|Darcs Source Control directories are not allowed
+ERROR|_svn/|Subversion Source Control directories are not allowed
+ERROR|.arch-ids/|Arch Source Control directories are not allowed
+ERROR|.bzr/|Bazaar Source Control directories are not allowed
+ERROR|.cvsignore|CVS Source Control file are not allowed
+ERROR|.darcsrepo/|Darcs Source Control directories are not allowed
+ERROR|.darcs-temp-mail|Darcs Source Control file are not allowed
+ERROR|.git/|Git Source Control directories are not allowed
+ERROR|.gitignore|Git Source Control file are not allowed
+ERROR|.hg/|Mercurial Source Control directories are not allowed
+ERROR|.MySCMServerInfo|SurroundSCM Source Control file are not allowed
+ERROR|.svn/|Subversion Source Control directories are not allowed
+ERROR|BitKeeper/|BitKeeper Source Control directories are not allowed
+ERROR|ChangeSet/|BitKeeper Source Control directories are not allowed
+ERROR|CVS/|CVS Source Control directories are not allowed
+ERROR|RCS/|RCS Source Control directories are not allowed
+ERROR|SCCS/|SCCS Source Control directories are not allowed
+ERROR|vssver.scc|Visual SourceSafe Source Control file are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/_darcs/|Darcs Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/_svn/|Subversion Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.arch-ids/|Arch Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.bzr/|Bazaar Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.cvsignore|CVS Source Control file are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.darcsrepo/|Darcs Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.darcs-temp-mail|Darcs Source Control file are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.git/|Git Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.gitignore|Git Source Control file are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.hg/|Mercurial Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.MySCMServerInfo|SurroundSCM Source Control file are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/.svn/|Subversion Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/BitKeeper/|BitKeeper Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/ChangeSet/|BitKeeper Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/CVS/|CVS Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/RCS/|RCS Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/SCCS/|SCCS Source Control directories are not allowed
+ERROR|WEB-INF/lib/dummy-scm-lib-1.0-SNAPSHOT.jar!/vssver.scc|Visual SourceSafe Source Control file are not allowed
diff --git a/jetty-webapp-verifier/src/test/resources/no_scm.setup.txt b/jetty-webapp-verifier/src/test/resources/no_scm.setup.txt
new file mode 100644
index 0000000..bc01807
--- /dev/null
+++ b/jetty-webapp-verifier/src/test/resources/no_scm.setup.txt
@@ -0,0 +1 @@
+webapps/dummy-scm-webapp.war
\ No newline at end of file
diff --git a/jetty-webapp-verifier/src/test/resources/webapps/dummy-scm-webapp.war b/jetty-webapp-verifier/src/test/resources/webapps/dummy-scm-webapp.war
new file mode 100644
index 0000000..f7622c4
--- /dev/null
+++ b/jetty-webapp-verifier/src/test/resources/webapps/dummy-scm-webapp.war
Binary files differ