1 package com.atlassian.plugin.refimpl.scheduler;
2
3 import com.atlassian.plugin.refimpl.tenant.RefappTenantRegistry;
4 import com.atlassian.scheduler.SchedulerServiceException;
5 import com.atlassian.scheduler.core.LifecycleAwareSchedulerService;
6 import com.atlassian.scheduler.core.impl.MemoryRunDetailsDao;
7 import com.atlassian.scheduler.quartz1.Quartz1DefaultSettingsFactory;
8 import com.atlassian.scheduler.quartz1.Quartz1SchedulerService;
9 import com.atlassian.scheduler.quartz1.spi.Quartz1SchedulerConfiguration;
10
11 import javax.annotation.Nonnull;
12 import javax.annotation.Nullable;
13 import java.util.Properties;
14 import java.util.TimeZone;
15
16 public final class SchedulerServiceFactory {
17 public static LifecycleAwareSchedulerService inMemoryWithDefaultSettings() {
18 LifecycleAwareSchedulerService schedulerService;
19 try {
20 schedulerService = new Quartz1SchedulerService(
21 new MemoryRunDetailsDao(),
22 new Quartz1SchedulerConfiguration() {
23 @Nonnull
24 @Override
25 public Properties getLocalSettings() {
26 return Quartz1DefaultSettingsFactory.getDefaultLocalSettings();
27 }
28
29 @Nonnull
30 @Override
31 public Properties getClusteredSettings() {
32 return Quartz1DefaultSettingsFactory.getDefaultLocalSettings();
33 }
34
35 @Nullable
36 @Override
37 public TimeZone getDefaultTimeZone() {
38 return TimeZone.getDefault();
39 }
40 },
41 new RefappTenantRegistry()
42 );
43 } catch (SchedulerServiceException e) {
44 schedulerService = null;
45 }
46
47 return schedulerService;
48 }
49
50 private SchedulerServiceFactory() {
51 }
52 }