001 package railo.runtime.monitor; 002 003 import java.io.IOException; 004 005 import railo.commons.io.SystemUtil; 006 import railo.runtime.config.ConfigServer; 007 import railo.runtime.config.ConfigWebFactory; 008 import railo.runtime.config.ConfigWebFactory.MonitorTemp; 009 010 public class ActionMonitorFatory { 011 public static ActionMonitorCollector getActionMonitorCollector() { 012 if(SystemUtil.getLoaderVersion()>4) return new ActionMonitorCollectorImpl(); 013 return new ActionMonitorCollectorRefImpl(); 014 } 015 016 public static ActionMonitorCollector getActionMonitorCollector(ConfigServer cs, ConfigWebFactory.MonitorTemp[] temps) throws IOException { 017 // try to load with interface 018 try{ 019 ActionMonitorCollector collector = new ActionMonitorCollectorImpl(); 020 addMonitors(collector,cs,temps); 021 return collector; 022 } 023 catch(Throwable t){t.printStackTrace(); 024 ActionMonitorCollector collector = new ActionMonitorCollectorRefImpl(); 025 addMonitors(collector,cs,temps); 026 return collector; 027 } 028 } 029 030 private static void addMonitors(ActionMonitorCollector collector, ConfigServer cs, MonitorTemp[] temps) throws IOException { 031 MonitorTemp temp; 032 for(int i=0;i<temps.length;i++){ 033 temp=temps[i]; 034 collector.addMonitor(cs, temp.obj, temp.name, temp.log); 035 } 036 } 037 }