package com.navercorp.pinpoint.plugin.jetty.interceptor;
import com.navercorp.pinpoint.bootstrap.config.Filter;
import com.navercorp.pinpoint.bootstrap.context.MethodDescriptor;
import com.navercorp.pinpoint.bootstrap.context.TraceContext;
import com.navercorp.pinpoint.bootstrap.interceptor.annotation.TargetMethod;
import org.eclipse.jetty.server.HttpChannel;
import org.eclipse.jetty.server.Request;
/**
* @author Taejin Koo
*/
@TargetMethod(name = "handle", paramTypes = { "org.eclipse.jetty.server.HttpChannel" })
public class ServerHandleInterceptor extends AbstractServerHandleInterceptor {
public ServerHandleInterceptor(TraceContext traceContext, MethodDescriptor descriptor, Filter<String> excludeFilter) {
super(traceContext, descriptor, excludeFilter);
}
@Override
protected Request getRequest(Object[] args) {
final Object httpChannelObject = args[0];
if (!(httpChannelObject instanceof HttpChannel)) {
return null;
}
final HttpChannel<?> channel = (HttpChannel<?>) httpChannelObject;
final Request request = channel.getRequest();
return request;
}
}