package org.stagemonitor.web.monitor.servlet;
import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.matcher.ElementMatcher;
import org.stagemonitor.tracing.profiler.ProfilingTransformer;
import javax.servlet.Servlet;
import static net.bytebuddy.matcher.ElementMatchers.isSubTypeOf;
import static net.bytebuddy.matcher.ElementMatchers.nameEndsWith;
import static net.bytebuddy.matcher.ElementMatchers.named;
public class ServletProfilingTransformer extends ProfilingTransformer {
@Override
public ElementMatcher.Junction<TypeDescription> getExtraIncludeTypeMatcher() {
return nameEndsWith("Servlet").and(isSubTypeOf(Servlet.class));
}
@Override
protected ElementMatcher.Junction<MethodDescription> getExtraMethodElementMatcher() {
return named("service").or(named("render"));
}
}