From 8b7b41de473c767863dcd6511978c6757cd55902 Mon Sep 17 00:00:00 2001 From: Jeremy Long Date: Sat, 19 Apr 2014 09:58:16 -0400 Subject: [PATCH] removed singleton pattern from service loaders Former-commit-id: 0e7b90141333548c47fbb4c9944b44fe295acfec --- .../org/owasp/dependencycheck/Engine.java | 4 ++-- .../analyzer/AnalyzerService.java | 22 ++++------------- .../data/update/UpdateService.java | 24 ++++--------------- .../analyzer/AnalyzerServiceTest.java | 2 +- 4 files changed, 12 insertions(+), 40 deletions(-) diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/Engine.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/Engine.java index b129cffdc..998c71f3a 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/Engine.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/Engine.java @@ -107,7 +107,7 @@ public class Engine { analyzers.put(phase, new ArrayList()); } - final AnalyzerService service = AnalyzerService.getInstance(); + final AnalyzerService service = new AnalyzerService(); final Iterator iterator = service.getAnalyzers(); while (iterator.hasNext()) { final Analyzer a = iterator.next(); @@ -410,7 +410,7 @@ public class Engine { * Cycles through the cached web data sources and calls update on all of them. */ private void doUpdates() { - final UpdateService service = UpdateService.getInstance(); + final UpdateService service = new UpdateService(); final Iterator iterator = service.getDataSources(); while (iterator.hasNext()) { final CachedWebDataSource source = iterator.next(); diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/AnalyzerService.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/AnalyzerService.java index d08afc9c8..932f15e14 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/AnalyzerService.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/AnalyzerService.java @@ -21,15 +21,13 @@ import java.util.Iterator; import java.util.ServiceLoader; /** + * The Analyzer Service Loader. This class loads all services that implement + * org.owasp.dependencycheck.analyzer.Analyzer. * * @author Jeremy Long */ -public final class AnalyzerService { +public class AnalyzerService { - /** - * The analyzer service singleton. - */ - private static AnalyzerService service; /** * The service loader for analyzers. */ @@ -38,22 +36,10 @@ public final class AnalyzerService { /** * Creates a new instance of AnalyzerService. */ - private AnalyzerService() { + public AnalyzerService() { loader = ServiceLoader.load(Analyzer.class); } - /** - * Retrieve the singleton instance of AnalyzerService. - * - * @return a singleton AnalyzerService. - */ - public static synchronized AnalyzerService getInstance() { - if (service == null) { - service = new AnalyzerService(); - } - return service; - } - /** * Returns an Iterator for all instances of the Analyzer interface. * diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/update/UpdateService.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/update/UpdateService.java index 9c6dac1cc..d5064e773 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/update/UpdateService.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/update/UpdateService.java @@ -21,39 +21,25 @@ import java.util.Iterator; import java.util.ServiceLoader; /** + * The CachedWebDataSource Service Loader. This class loads all services that implement + * org.owasp.dependencycheck.data.update.CachedWebDataSource. * * @author Jeremy Long */ -public final class UpdateService { +public class UpdateService { - /** - * the singleton reference to the service. - */ - private static UpdateService service; /** * the service loader for CachedWebDataSource. */ private final ServiceLoader loader; /** - * Creates a new instance of UpdateService + * Creates a new instance of UpdateService. */ - private UpdateService() { + public UpdateService() { loader = ServiceLoader.load(CachedWebDataSource.class); } - /** - * Retrieve the singleton instance of UpdateService. - * - * @return a singleton UpdateService. - */ - public static synchronized UpdateService getInstance() { - if (service == null) { - service = new UpdateService(); - } - return service; - } - /** * Returns an Iterator for all instances of the CachedWebDataSource interface. * diff --git a/dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/AnalyzerServiceTest.java b/dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/AnalyzerServiceTest.java index adc377d0a..caa204348 100644 --- a/dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/AnalyzerServiceTest.java +++ b/dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/AnalyzerServiceTest.java @@ -33,7 +33,7 @@ public class AnalyzerServiceTest extends BaseTest { */ @Test public void testGetAnalyzers() { - AnalyzerService instance = AnalyzerService.getInstance(); + AnalyzerService instance = new AnalyzerService(); Iterator result = instance.getAnalyzers(); boolean found = false;