/* * Copyright 2005-2010 Ignis Software Tools Ltd. All rights reserved. */ package jsystem.runner.loader; import jsystem.framework.FrameworkOptions; import jsystem.framework.JSystemProperties; public class LoadersManager { private static LoadersManager manager; private boolean dynamicLoading = true; public static LoadersManager getInstance() { if (manager == null) { manager = new LoadersManager(); } return manager; } ClassLoader loader = null; private LoadersManager() { } public ClassLoader getLoader() { String ld = JSystemProperties.getInstance().getPreference(FrameworkOptions.LOADER_DISABLE); if (ld != null && ld.equalsIgnoreCase("true")) { dynamicLoading = false; } if (loader == null) { if (JSystemProperties.getInstance().isJsystemRunner() && dynamicLoading) { loader = new ExtendsTestCaseClassLoader(ClassPathBuilder.getClassPath(), getClass().getClassLoader()); } else { loader = this.getClass().getClassLoader(); } } return loader; } public void dropAll() { loader = null; } public boolean isDynamicLoading() { return dynamicLoading; } public void setDynamicLoading(boolean dynamicLoading) { this.dynamicLoading = dynamicLoading; } }