removed singleton pattern from service loaders

Former-commit-id: 0e7b90141333548c47fbb4c9944b44fe295acfec
This commit is contained in:
Jeremy Long
2014-04-19 09:58:16 -04:00
parent 36fd4dbcf4
commit 8b7b41de47
4 changed files with 12 additions and 40 deletions

View File

@@ -107,7 +107,7 @@ public class Engine {
analyzers.put(phase, new ArrayList<Analyzer>()); analyzers.put(phase, new ArrayList<Analyzer>());
} }
final AnalyzerService service = AnalyzerService.getInstance(); final AnalyzerService service = new AnalyzerService();
final Iterator<Analyzer> iterator = service.getAnalyzers(); final Iterator<Analyzer> iterator = service.getAnalyzers();
while (iterator.hasNext()) { while (iterator.hasNext()) {
final Analyzer a = iterator.next(); 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. * Cycles through the cached web data sources and calls update on all of them.
*/ */
private void doUpdates() { private void doUpdates() {
final UpdateService service = UpdateService.getInstance(); final UpdateService service = new UpdateService();
final Iterator<CachedWebDataSource> iterator = service.getDataSources(); final Iterator<CachedWebDataSource> iterator = service.getDataSources();
while (iterator.hasNext()) { while (iterator.hasNext()) {
final CachedWebDataSource source = iterator.next(); final CachedWebDataSource source = iterator.next();

View File

@@ -21,15 +21,13 @@ import java.util.Iterator;
import java.util.ServiceLoader; import java.util.ServiceLoader;
/** /**
* The Analyzer Service Loader. This class loads all services that implement
* org.owasp.dependencycheck.analyzer.Analyzer.
* *
* @author Jeremy Long <jeremy.long@owasp.org> * @author Jeremy Long <jeremy.long@owasp.org>
*/ */
public final class AnalyzerService { public class AnalyzerService {
/**
* The analyzer service singleton.
*/
private static AnalyzerService service;
/** /**
* The service loader for analyzers. * The service loader for analyzers.
*/ */
@@ -38,22 +36,10 @@ public final class AnalyzerService {
/** /**
* Creates a new instance of AnalyzerService. * Creates a new instance of AnalyzerService.
*/ */
private AnalyzerService() { public AnalyzerService() {
loader = ServiceLoader.load(Analyzer.class); 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. * Returns an Iterator for all instances of the Analyzer interface.
* *

View File

@@ -21,39 +21,25 @@ import java.util.Iterator;
import java.util.ServiceLoader; import java.util.ServiceLoader;
/** /**
* The CachedWebDataSource Service Loader. This class loads all services that implement
* org.owasp.dependencycheck.data.update.CachedWebDataSource.
* *
* @author Jeremy Long <jeremy.long@owasp.org> * @author Jeremy Long <jeremy.long@owasp.org>
*/ */
public final class UpdateService { public class UpdateService {
/**
* the singleton reference to the service.
*/
private static UpdateService service;
/** /**
* the service loader for CachedWebDataSource. * the service loader for CachedWebDataSource.
*/ */
private final ServiceLoader<CachedWebDataSource> loader; private final ServiceLoader<CachedWebDataSource> loader;
/** /**
* Creates a new instance of UpdateService * Creates a new instance of UpdateService.
*/ */
private UpdateService() { public UpdateService() {
loader = ServiceLoader.load(CachedWebDataSource.class); 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. * Returns an Iterator for all instances of the CachedWebDataSource interface.
* *

View File

@@ -33,7 +33,7 @@ public class AnalyzerServiceTest extends BaseTest {
*/ */
@Test @Test
public void testGetAnalyzers() { public void testGetAnalyzers() {
AnalyzerService instance = AnalyzerService.getInstance(); AnalyzerService instance = new AnalyzerService();
Iterator<Analyzer> result = instance.getAnalyzers(); Iterator<Analyzer> result = instance.getAnalyzers();
boolean found = false; boolean found = false;