+ * Method implementation for the FileTypeAnalyzer; if not implementing a + * file type analyzer this method can be removed.
+ *+ * Determines if the analyzer can process the given file.
+ * + * @param pathname the path to the file + * @returntrue if the analyzer can process the file; otherwise
+ * false
+ */
+ @Override
+ public boolean accept(File pathname) {
+ throw new UnsupportedOperationException("Not implemented yet.");
+ }
+
+ /**
+ * Analyzes the given dependency. The analysis could be anything from
+ * identifying an Identifier for the dependency, to finding vulnerabilities,
+ * etc. Additionally, if the analyzer collects enough information to add a
+ * description or license information for the dependency it should be added.
+ *
+ * @param dependency a dependency to analyze.
+ * @param engine the engine that is scanning the dependencies - this is
+ * useful if we need to check other dependencies
+ * @throws AnalysisException is thrown if there is an error analyzing the
+ * dependency file
+ */
+ @Override
+ public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
+ if (enabled) {
+ throw new UnsupportedOperationException("Not implemented yet.");
+ }
+ }
+
+ /**
+ * Returns the name of the analyzer.
+ *
+ * @return the name of the analyzer.
+ */
+ @Override
+ public String getName() {
+ return "New Plugin";
+ }
+
+ /**
+ * Returns the phase that the analyzer is intended to run in.
+ *
+ * @return the phase that the analyzer is intended to run in.
+ */
+ @Override
+ public AnalysisPhase getAnalysisPhase() {
+ return AnalysisPhase.INFORMATION_COLLECTION;
+ }
+
+ /**
+ * The initialize method is called (once) prior to the analyze method being
+ * called on all of the dependencies.
+ *
+ * @throws InitializationException is thrown if an exception occurs
+ * initializing the analyzer.
+ */
+ @Override
+ public void initialize() throws InitializationException {
+
+ }
+
+ /**
+ * The close method is called after all of the dependencies have been
+ * analyzed.
+ *
+ * @throws Exception is thrown if an exception occurs closing the analyzer.
+ */
+ @Override
+ public void close() throws Exception {
+
+ }
+
+ /**
+ * Returns whether multiple instances of the same type of analyzer can run
+ * in parallel. Note that running analyzers of different types in parallel
+ * is not supported at all.
+ *
+ * @return {@code true} if the analyzer supports parallel processing,
+ * {@code false} else
+ */
+ @Override
+ public boolean supportsParallelProcessing() {
+ return true;
+ }
+
+ /**
+ * Flag indicating whether or not the analyzer is enabled.
+ */
+ private boolean enabled = true;
+
+ /**
+ * Returns whether or not the analyzer is enabled.
+ *
+ * @return whether or not the analyzer is enabled
+ */
+ @Override
+ public boolean isEnabled() {
+ return enabled;
+ }
+}
diff --git a/dependency-check-plugin/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.owasp.dependencycheck.analyzer.Analyzer b/dependency-check-plugin/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.owasp.dependencycheck.analyzer.Analyzer
new file mode 100644
index 000000000..92854d72b
--- /dev/null
+++ b/dependency-check-plugin/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.owasp.dependencycheck.analyzer.Analyzer
@@ -0,0 +1 @@
+${package}.NewPlugin
\ No newline at end of file
diff --git a/dependency-check-plugin/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.owasp.dependencycheck.data.update.CachedWebDataSource b/dependency-check-plugin/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.owasp.dependencycheck.data.update.CachedWebDataSource
new file mode 100644
index 000000000..e69de29bb
diff --git a/pom.xml b/pom.xml
index b71888541..c47d96199 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,7 @@ Copyright (c) 2012 - Jeremy Long