package lucee.runtime.monitor; import java.io.IOException; import java.lang.reflect.Method; import java.util.Map; import lucee.commons.lang.ExceptionUtil; import lucee.runtime.PageContext; import lucee.runtime.config.ConfigServer; import lucee.runtime.config.ConfigWeb; import lucee.runtime.exp.PageException; import lucee.runtime.type.Query; public class RequestMonitorProImpl implements RequestMonitorPro { private RequestMonitor monitor; private Method init; public RequestMonitorProImpl(RequestMonitor monitor) { this.monitor=monitor; // do we have an init method? try { init=monitor.getClass().getDeclaredMethod("init", new Class[]{PageContext.class}); } catch (Exception e) {} } @Override public Class getClazz() { return monitor.getClazz(); } @Override public String getName() { return monitor.getName(); } @Override public short getType() { return monitor.getType(); } @Override public void init(ConfigServer cs, String name, boolean logEnable) { monitor.init(cs, name, logEnable); } @Override public boolean isLogEnabled() { return monitor.isLogEnabled(); } @Override public Query getData(ConfigWeb config, Map<String, Object> arguments) throws PageException { return monitor.getData(config, arguments); } /* (non-Javadoc) * @see lucee.runtime.monitor.RequestMonitorPro#init(lucee.runtime.PageContext) */ @Override public void init(PageContext pc) throws IOException { if(init!=null) { try { init.invoke(monitor, new Object[]{pc}); } catch (Exception e) { throw ExceptionUtil.toIOException(e); } } } @Override public void log(PageContext arg0, boolean arg1) throws IOException { monitor.log(arg0, arg1); } }