/** * * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * **/ package lucee.runtime.monitor; import java.io.IOException; import lucee.commons.io.SystemUtil; import lucee.commons.lang.ExceptionUtil; import lucee.runtime.config.ConfigServer; import lucee.runtime.config.XMLConfigWebFactory; import lucee.runtime.config.XMLConfigWebFactory.MonitorTemp; public class ActionMonitorFatory { public static ActionMonitorCollector getActionMonitorCollector() { if(SystemUtil.getLoaderVersion()>4) return new ActionMonitorCollectorImpl(); return new ActionMonitorCollectorRefImpl(); } public static ActionMonitorCollector getActionMonitorCollector(ConfigServer cs, XMLConfigWebFactory.MonitorTemp[] temps) throws IOException { // try to load with interface try{ ActionMonitorCollector collector = new ActionMonitorCollectorImpl(); addMonitors(collector,cs,temps); return collector; } catch(Throwable t){ ExceptionUtil.rethrowIfNecessary(t); ActionMonitorCollector collector = new ActionMonitorCollectorRefImpl(); addMonitors(collector,cs,temps); return collector; } } private static void addMonitors(ActionMonitorCollector collector, ConfigServer cs, MonitorTemp[] temps) throws IOException { MonitorTemp temp; for(int i=0;i<temps.length;i++){ temp=temps[i]; collector.addMonitor(cs, temp.am, temp.name, temp.log); } } }