package rocks.inspectit.server.service;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.slf4j.Logger;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import rocks.inspectit.server.dao.DefaultDataDao;
import rocks.inspectit.server.dao.HttpTimerDataDao;
import rocks.inspectit.server.spring.aop.MethodLog;
import rocks.inspectit.shared.all.communication.data.HttpTimerData;
import rocks.inspectit.shared.all.spring.logger.Log;
import rocks.inspectit.shared.cs.cmr.service.IHttpTimerDataAccessService;
/**
* This class provides access to the http related data in the CMR.
*
* @author Stefan Siegl
*/
@Service
@Transactional
public class HttpTimerDataAccessService implements IHttpTimerDataAccessService, InitializingBean {
/** The logger of this class. */
@Log
Logger log;
/**
* The Dao.
*/
@Autowired
private HttpTimerDataDao dao;
/**
* Default data dao.
*/
@Autowired
private DefaultDataDao defaultDataDao;
/**
* {@inheritDoc}
*/
@Override
@MethodLog
public List<HttpTimerData> getAggregatedTimerData(HttpTimerData httpData, boolean includeRequestMethod) {
return dao.getAggregatedHttpTimerData(httpData, includeRequestMethod);
}
/**
* {@inheritDoc}
*/
@Override
@MethodLog
public List<HttpTimerData> getAggregatedTimerData(HttpTimerData httpData, boolean includeRequestMethod, Date fromDate, Date toDate) {
return dao.getAggregatedHttpTimerData(httpData, includeRequestMethod, fromDate, toDate);
}
/**
* {@inheritDoc}
*/
@Override
@MethodLog
public List<HttpTimerData> getTaggedAggregatedTimerData(HttpTimerData httpData, boolean includeRequestMethod) {
return dao.getTaggedAggregatedHttpTimerData(httpData, includeRequestMethod);
}
/**
* {@inheritDoc}
*/
@Override
@MethodLog
public List<HttpTimerData> getTaggedAggregatedTimerData(HttpTimerData httpData, boolean includeRequestMethod, Date fromDate, Date toDate) {
return dao.getTaggedAggregatedHttpTimerData(httpData, includeRequestMethod, fromDate, toDate);
}
@Override
public List<HttpTimerData> getChartingHttpTimerDataFromDateToDate(Collection<HttpTimerData> templates, Date fromDate, Date toDate, boolean retrieveByTag) {
return defaultDataDao.getChartingHttpTimerDataFromDateToDate(templates, fromDate, toDate, retrieveByTag);
}
/**
* {@inheritDoc}
*/
@Override
public void afterPropertiesSet() throws Exception {
if (log.isInfoEnabled()) {
log.info("|-Http Timer Data Access Service active...");
}
}
}