package rocks.inspectit.agent.java.sensor.method.http;
import java.lang.management.ManagementFactory;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import rocks.inspectit.agent.java.core.IPlatformManager;
import rocks.inspectit.agent.java.hooking.IHook;
import rocks.inspectit.agent.java.sensor.method.AbstractMethodSensor;
import rocks.inspectit.agent.java.sensor.method.IMethodSensor;
import rocks.inspectit.agent.java.util.Timer;
/**
* The http sensor which initializes and returns the {@link HttpHook} class.
*
* @author Stefan Siegl
*/
public class HttpSensor extends AbstractMethodSensor implements IMethodSensor {
/**
* The hook.
*/
private HttpHook hook = null;
/**
* The timer used for accurate measuring.
*/
@Autowired
private Timer timer;
/**
* The Platform manager.
*/
@Autowired
private IPlatformManager platformManager;
/**
* No-arg constructor needed for Spring.
*/
public HttpSensor() {
}
/**
* Constructor.
*
* @param timer
* the timer.
* @param platformManager
* the platform manager.
*/
public HttpSensor(Timer timer, IPlatformManager platformManager) {
this.timer = timer;
this.platformManager = platformManager;
}
/**
* {@inheritDoc}
*/
@Override
protected void initHook(Map<String, Object> parameters) {
hook = new HttpHook(timer, platformManager, parameters, ManagementFactory.getThreadMXBean());
}
/**
* {@inheritDoc}
*/
@Override
public IHook getHook() {
return hook;
}
}