📄 quartzsupporttests.java
字号:
bean.setJobDetails(new JobDetail[] {jobDetail});
bean.afterPropertiesSet();
Thread.sleep(1000);
assertTrue(DummyJob.count > 0);
assertEquals(DummyJob.count, taskExecutor.count);
bean.destroy();
}
public void testSchedulerWithRunnable() throws Exception {
DummyRunnable.count = 0;
JobDetail jobDetail = new JobDetailBean();
jobDetail.setJobClass(DummyRunnable.class);
jobDetail.setName("myJob");
SimpleTriggerBean trigger = new SimpleTriggerBean();
trigger.setName("myTrigger");
trigger.setJobDetail(jobDetail);
trigger.setStartDelay(1);
trigger.setRepeatInterval(500);
trigger.setRepeatCount(1);
trigger.afterPropertiesSet();
SchedulerFactoryBean bean = new SchedulerFactoryBean();
bean.setTriggers(new Trigger[] {trigger});
bean.setJobDetails(new JobDetail[] {jobDetail});
bean.afterPropertiesSet();
Thread.sleep(1000);
assertTrue(DummyRunnable.count > 0);
bean.destroy();
}
public void testSchedulerWithQuartzJobBean() throws Exception {
DummyJob.param = 0;
DummyJob.count = 0;
JobDetail jobDetail = new JobDetail();
jobDetail.setJobClass(DummyJobBean.class);
jobDetail.setName("myJob");
jobDetail.getJobDataMap().put("param", "10");
SimpleTriggerBean trigger = new SimpleTriggerBean();
trigger.setName("myTrigger");
trigger.setJobDetail(jobDetail);
trigger.setStartDelay(1);
trigger.setRepeatInterval(500);
trigger.setRepeatCount(1);
trigger.afterPropertiesSet();
SchedulerFactoryBean bean = new SchedulerFactoryBean();
bean.setTriggers(new Trigger[] {trigger});
bean.setJobDetails(new JobDetail[] {jobDetail});
bean.afterPropertiesSet();
Thread.sleep(1000);
assertEquals(10, DummyJobBean.param);
assertTrue(DummyJobBean.count > 0);
bean.destroy();
}
public void testSchedulerWithSpringBeanJobFactory() throws Exception {
DummyJob.param = 0;
DummyJob.count = 0;
JobDetail jobDetail = new JobDetail();
jobDetail.setJobClass(DummyJob.class);
jobDetail.setName("myJob");
jobDetail.getJobDataMap().put("param", "10");
SimpleTriggerBean trigger = new SimpleTriggerBean();
trigger.setName("myTrigger");
trigger.setJobDetail(jobDetail);
trigger.setStartDelay(1);
trigger.setRepeatInterval(500);
trigger.setRepeatCount(1);
trigger.afterPropertiesSet();
SchedulerFactoryBean bean = new SchedulerFactoryBean();
bean.setJobFactory(new SpringBeanJobFactory());
bean.setTriggers(new Trigger[] {trigger});
bean.setJobDetails(new JobDetail[] {jobDetail});
bean.afterPropertiesSet();
Thread.sleep(1000);
assertEquals(10, DummyJob.param);
assertTrue(DummyJob.count > 0);
bean.destroy();
}
public void testSchedulerWithSpringBeanJobFactoryAndRunnable() throws Exception {
DummyJob.param = 0;
DummyJob.count = 0;
JobDetail jobDetail = new JobDetailBean();
jobDetail.setJobClass(DummyRunnable.class);
jobDetail.setName("myJob");
jobDetail.getJobDataMap().put("param", "10");
SimpleTriggerBean trigger = new SimpleTriggerBean();
trigger.setName("myTrigger");
trigger.setJobDetail(jobDetail);
trigger.setStartDelay(1);
trigger.setRepeatInterval(500);
trigger.setRepeatCount(1);
trigger.afterPropertiesSet();
SchedulerFactoryBean bean = new SchedulerFactoryBean();
bean.setJobFactory(new SpringBeanJobFactory());
bean.setTriggers(new Trigger[] {trigger});
bean.setJobDetails(new JobDetail[] {jobDetail});
bean.afterPropertiesSet();
Thread.sleep(1000);
assertEquals(10, DummyRunnable.param);
assertTrue(DummyRunnable.count > 0);
bean.destroy();
}
public void testSchedulerWithSpringBeanJobFactoryAndQuartzJobBean() throws Exception {
DummyJob.param = 0;
DummyJob.count = 0;
JobDetail jobDetail = new JobDetail();
jobDetail.setJobClass(DummyJobBean.class);
jobDetail.setName("myJob");
jobDetail.getJobDataMap().put("param", "10");
SimpleTriggerBean trigger = new SimpleTriggerBean();
trigger.setName("myTrigger");
trigger.setJobDetail(jobDetail);
trigger.setStartDelay(1);
trigger.setRepeatInterval(500);
trigger.setRepeatCount(1);
trigger.afterPropertiesSet();
SchedulerFactoryBean bean = new SchedulerFactoryBean();
bean.setJobFactory(new SpringBeanJobFactory());
bean.setTriggers(new Trigger[] {trigger});
bean.setJobDetails(new JobDetail[] {jobDetail});
bean.afterPropertiesSet();
Thread.sleep(1000);
assertEquals(10, DummyJobBean.param);
assertTrue(DummyJobBean.count > 0);
bean.destroy();
}
/**
* Tests the creation of multiple schedulers (SPR-772)
*/
public void testMultipleSchedulers() throws Exception {
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext("/org/springframework/scheduling/quartz/multipleSchedulers.xml");
try {
Scheduler scheduler1 = (Scheduler) ctx.getBean("scheduler1");
Scheduler scheduler2 = (Scheduler) ctx.getBean("scheduler2");
assertNotSame(scheduler1, scheduler2);
assertFalse(scheduler1.getSchedulerName().equals(scheduler2.getSchedulerName()));
}
finally {
ctx.close();
}
}
public void testWithTwoAnonymousMethodInvokingJobDetailFactoryBeans() throws InterruptedException {
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext("/org/springframework/scheduling/quartz/multipleAnonymousMethodInvokingJobDetailFB.xml");
Thread.sleep(3000);
try {
QuartzTestBean exportService = (QuartzTestBean) ctx.getBean("exportService");
QuartzTestBean importService = (QuartzTestBean) ctx.getBean("importService");
assertEquals("doImport called exportService", 0, exportService.getImportCount());
assertEquals("doExport not called on exportService", 2, exportService.getExportCount());
assertEquals("doImport not called on importService", 2, importService.getImportCount());
assertEquals("doExport called on importService", 0, importService.getExportCount());
}
finally {
ctx.close();
}
}
private static class TestSchedulerListener implements SchedulerListener {
public void jobScheduled(Trigger trigger) {
}
public void jobUnscheduled(String triggerName, String triggerGroup) {
}
public void triggerFinalized(Trigger trigger) {
}
public void triggersPaused(String triggerName, String triggerGroup) {
}
public void triggersResumed(String triggerName, String triggerGroup) {
}
public void jobsPaused(String jobName, String jobGroup) {
}
public void jobsResumed(String jobName, String jobGroup) {
}
public void schedulerError(String msg, SchedulerException cause) {
}
public void schedulerShutdown() {
}
}
private static class TestJobListener implements JobListener {
public String getName() {
return null;
}
public void jobToBeExecuted(JobExecutionContext context) {
}
public void jobExecutionVetoed(JobExecutionContext context) {
}
public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) {
}
}
private static class TestTriggerListener implements TriggerListener {
public String getName() {
return null;
}
public void triggerFired(Trigger trigger, JobExecutionContext context) {
}
public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) {
return false;
}
public void triggerMisfired(Trigger trigger) {
}
public void triggerComplete(Trigger trigger, JobExecutionContext context, int triggerInstructionCode) {
}
}
public static class CountingTaskExecutor implements TaskExecutor {
private int count;
public void execute(Runnable task) {
this.count++;
task.run();
}
}
public static class DummyJob implements Job {
private static int param;
private static int count;
public void setParam(int value) {
if (param > 0) {
throw new IllegalStateException("Param already set");
}
param = value;
}
public synchronized void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
count++;
}
}
public static class DummyJobBean extends QuartzJobBean {
private static int param;
private static int count;
public void setParam(int value) {
if (param > 0) {
throw new IllegalStateException("Param already set");
}
param = value;
}
protected synchronized void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
count++;
}
}
public static class DummyRunnable implements Runnable {
private static int param;
private static int count;
public void setParam(int value) {
if (param > 0) {
throw new IllegalStateException("Param already set");
}
param = value;
}
public void run() {
count++;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -