package org.agnitas.dao.impl;
import javax.sql.DataSource;
import org.agnitas.dao.LinkcheckerDao;
import org.apache.log4j.Logger;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
public class LinkcheckerDaoImpl implements LinkcheckerDao {
private static final transient Logger logger = Logger.getLogger( LinkcheckerDaoImpl.class);
protected DataSource dataSource;
protected ApplicationContext applicationContext;
@Override
public int getLinkTimeout() {
JdbcTemplate jdbc = new JdbcTemplate((DataSource) applicationContext.getBean("dataSource"));
String sql = "SELECT value FROM config_tbl WHERE class='linkchecker' AND classid='0' AND name='linktimeout'";
int returnValue = 30000; // default
try {
returnValue = jdbc.queryForInt(sql);
} catch (Exception e) {
// error getting properties, setting default to 30s!
logger.error("Error reading link-timeout... Setting default", e);
returnValue = 30000;
}
return returnValue;
}
@Override
public int getThreadCount() {
JdbcTemplate jdbc = new JdbcTemplate((DataSource) applicationContext.getBean("dataSource"));
String sql = "SELECT value FROM config_tbl WHERE class='linkchecker' AND classid='0' AND name='threadcount'";
int returnValue = 25; // default
try {
returnValue = jdbc.queryForInt(sql);
} catch (Exception e) {
// error getting properties, setting default to 25 threads!
logger.error("Error reading link-timeout... Setting default", e);
returnValue = 25;
}
return returnValue;
}
@Override
public DataSource getDataSource() {
return dataSource;
}
@Override
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.applicationContext = applicationContext;
}
}