/* * Copyright 2011 Blazebit */ package com.blazebit.web.monitor.quartz.bean; import com.blazebit.monitor.quartz.model.SchedulerConfiguration; import com.blazebit.monitor.quartz.service.SchedulerConfigurationService; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.enterprise.context.SessionScoped; import javax.faces.event.ActionEvent; import javax.inject.Inject; import javax.inject.Named; import org.quartz.SchedulerException; import org.quartz.impl.SchedulerRepository; /** * * @author Christian Beikov */ @Named("schedulerBean") @SessionScoped public class SchedulerBean implements Serializable { private static final long serialVersionUID = 1L; private List<SchedulerConfiguration> schedulers = new ArrayList<SchedulerConfiguration>(); private SchedulerConfiguration scheduler; @Inject private SchedulerConfigurationService service; public void preRender() throws SchedulerException { schedulers = service.getAllConfigurations(); scheduler = new SchedulerConfiguration(); } public String getSchedulerStatus(Object schedulerConfig) throws SchedulerException { return getSchedulerStatus((SchedulerConfiguration) schedulerConfig); } public String getSchedulerStatus(SchedulerConfiguration schedulerConfig) throws SchedulerException { try { if (schedulerConfig.getScheduler() != null) { if (schedulerConfig.getScheduler().isInStandbyMode()) { return "Standby"; } else if (schedulerConfig.getScheduler().isShutdown()) { return "Shutdown"; } else if (schedulerConfig.getScheduler().isStarted()) { return "Started"; } } return "Shutdown"; } catch (SchedulerException ex) { return "Shutdown"; } } public String newScheduler(ActionEvent event) { scheduler = new SchedulerConfiguration(); return ""; } public String saveScheduler() { service.saveConfiguration(scheduler); return ""; } public String deleteScheduler(SchedulerConfiguration schedulerConfig) { service.deleteConfiguration(schedulerConfig); try { SchedulerRepository.getInstance().remove( schedulerConfig.getSchedulerName()); } catch (Exception ex) { // Don't care } return ""; } public String startScheduler(SchedulerConfiguration schedulerConfig) throws SchedulerException { if (schedulerConfig.getScheduler() != null) { schedulerConfig.getScheduler().start(); } return ""; } public String shutdownScheduler(SchedulerConfiguration schedulerConfig) throws SchedulerException { if (schedulerConfig.getScheduler() != null) { schedulerConfig.getScheduler().shutdown(); } return ""; } public String standbyScheduler(SchedulerConfiguration schedulerConfig) throws SchedulerException { if (schedulerConfig.getScheduler() != null) { schedulerConfig.getScheduler().standby(); } return ""; } public String resumeScheduler(SchedulerConfiguration schedulerConfig) throws SchedulerException { if (schedulerConfig.getScheduler() != null) { schedulerConfig.getScheduler().resumeAll(); } return ""; } public String pauseScheduler(SchedulerConfiguration schedulerConfig) throws SchedulerException { if (schedulerConfig.getScheduler() != null) { schedulerConfig.getScheduler().pauseAll(); } return ""; } public List<SchedulerConfiguration> getSchedulers() { return new ArrayList<SchedulerConfiguration>(schedulers); } public SchedulerConfiguration getScheduler() { return scheduler; } public void setScheduler(SchedulerConfiguration scheduler) { this.scheduler = scheduler; } }