package fi.arcusys.koku.schedule;
import java.net.URL;
import java.util.Date;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.xml.namespace.QName;
import org.apache.log4j.Logger;
import org.jboss.varia.scheduler.Schedulable;
import fi.arcusys.koku.common.soa.KokuScheduledTasksService;
import fi.arcusys.koku.common.soa.KokuScheduledTasksService_Service;
/**
* @author Dmitry Kudinov (dmitry.kudinov@arcusys.fi) Dec 21, 2011
*/
public class KokuScheduledTasksCaller implements Schedulable {
private static final Logger log = Logger.getLogger(KokuScheduledTasksCaller.class);
private String serviceEndpointBaseUrl;
public KokuScheduledTasksCaller(String serviceEndpointBaseUrl) {
this.serviceEndpointBaseUrl = serviceEndpointBaseUrl;
log.info("serviceEndpointBaseUrl: " + serviceEndpointBaseUrl);
}
public void perform(Date now, long remainingRepetitions) {
log.info("perform, now: " + now + ", remainingRepetitions: " + remainingRepetitions
+ ", serviceEndpointBaseUrl: " + serviceEndpointBaseUrl);
try {
final InitialContext ctx = new InitialContext();
try {
final String serviceEndpointOverwrite = (String) ctx
.lookup("koku/urls/arcusys-common-baseurl");
if (serviceEndpointOverwrite != null && !serviceEndpointOverwrite.isEmpty()) {
log.info("Overwrite arcusys-common-baseurl with " + serviceEndpointOverwrite);
serviceEndpointBaseUrl = serviceEndpointOverwrite;
}
final KokuScheduledTasksService_Service service = new KokuScheduledTasksService_Service(
new URL(serviceEndpointBaseUrl + "/KokuScheduledTasksServiceImpl?wsdl"),
new QName("http://soa.common.koku.arcusys.fi/", "KokuScheduledTasksService"));
final KokuScheduledTasksService port = service.getKokuScheduledTasksServicePort();
port.perform();
} finally {
ctx.close();
}
} catch (Exception e) {
log.error(e.getMessage());
}
}
}