Details
diff --git a/azkaban-common/src/main/java/azkaban/trigger/TriggerManager.java b/azkaban-common/src/main/java/azkaban/trigger/TriggerManager.java
index ea1018d..a15f581 100644
--- a/azkaban-common/src/main/java/azkaban/trigger/TriggerManager.java
+++ b/azkaban-common/src/main/java/azkaban/trigger/TriggerManager.java
@@ -18,36 +18,30 @@ package azkaban.trigger;
import java.util.ArrayList;
import java.util.Comparator;
-import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.TimeZone;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.PriorityBlockingQueue;
import org.apache.log4j.Logger;
-import com.mysql.jdbc.Util;
-
import azkaban.event.Event;
-import azkaban.event.Event.Type;
import azkaban.event.EventHandler;
import azkaban.event.EventListener;
+import azkaban.event.Event.Type;
import azkaban.executor.ExecutableFlow;
import azkaban.executor.ExecutorManager;
import azkaban.utils.Props;
-import azkaban.utils.Utils;
public class TriggerManager extends EventHandler implements
TriggerManagerAdapter {
private static Logger logger = Logger.getLogger(TriggerManager.class);
public static final long DEFAULT_SCANNER_INTERVAL_MS = 60000;
- private static final String DEFAULT_TIMEZONE_ID = "default.timezone.id";
-
+
private static Map<Integer, Trigger> triggerIdMap =
new ConcurrentHashMap<Integer, Trigger>();
@@ -64,9 +58,8 @@ public class TriggerManager extends EventHandler implements
new ExecutorManagerEventListener();
private final Object syncObj = new Object();
- private String timezone;
+
private String scannerStage = "";
- private boolean isDayLightSaving;
private static Props azprops = null;
public TriggerManager(Props props, TriggerLoader triggerLoader,
@@ -78,12 +71,6 @@ public class TriggerManager extends EventHandler implements
props.getLong("trigger.scan.interval", DEFAULT_SCANNER_INTERVAL_MS);
runnerThread = new TriggerScannerThread(scannerInterval);
- if (props.containsKey(DEFAULT_TIMEZONE_ID)) {
- this.timezone = props.getString(DEFAULT_TIMEZONE_ID);
- logger.info("Setting timezone to " + timezone);
- isDayLightSaving = Utils.isCurrentlyDaylightSaving(timezone);
- }
-
checkerTypeLoader = new CheckerTypeLoader();
actionTypeLoader = new ActionTypeLoader();
setAzprops(props);
@@ -243,11 +230,6 @@ public class TriggerManager extends EventHandler implements
+ lastRunnerThreadCheckTime;
try {
- if (timezone != null
- && isDayLightSaving != Utils.isCurrentlyDaylightSaving(timezone)) {
- Utils.setTimeZone(timezone);
- isDayLightSaving = Utils.isCurrentlyDaylightSaving(timezone);
- }
checkAllTriggers();
justFinishedFlows.clear();
} catch (Exception e) {
diff --git a/azkaban-common/src/main/java/azkaban/utils/Utils.java b/azkaban-common/src/main/java/azkaban/utils/Utils.java
index 80665e0..138b80f 100644
--- a/azkaban-common/src/main/java/azkaban/utils/Utils.java
+++ b/azkaban-common/src/main/java/azkaban/utils/Utils.java
@@ -28,16 +28,13 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Collection;
-import java.util.Date;
import java.util.Enumeration;
import java.util.Random;
-import java.util.TimeZone;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
import org.apache.commons.io.IOUtils;
-import org.joda.time.DateTimeZone;
import org.joda.time.Days;
import org.joda.time.DurationFieldType;
import org.joda.time.Hours;
@@ -272,16 +269,6 @@ public class Utils {
}
/**
- * Sets global timezone
- * @param timezone
- */
- public static void setTimeZone(String timezone) {
- System.setProperty("user.timezone", timezone);
- TimeZone.setDefault(TimeZone.getTimeZone(timezone));
- DateTimeZone.setDefault(DateTimeZone.forID(timezone));
- }
-
- /**
* Call the class constructor with the given arguments
*
* @param c The class
@@ -363,15 +350,6 @@ public class Utils {
}
}
- /**
- * True, if it is Daylight saving time in @timezone
- * @param timezone
- * @return
- */
- public static boolean isCurrentlyDaylightSaving(String timezone) {
- return TimeZone.getTimeZone(timezone).inDaylightTime(new Date());
- }
-
public static ReadablePeriod parsePeriodString(String periodStr) {
ReadablePeriod period;
char periodUnit = periodStr.charAt(periodStr.length() - 1);
diff --git a/azkaban-execserver/src/main/java/azkaban/execapp/AzkabanExecutorServer.java b/azkaban-execserver/src/main/java/azkaban/execapp/AzkabanExecutorServer.java
index 80e8a95..47fbfad 100644
--- a/azkaban-execserver/src/main/java/azkaban/execapp/AzkabanExecutorServer.java
+++ b/azkaban-execserver/src/main/java/azkaban/execapp/AzkabanExecutorServer.java
@@ -321,7 +321,9 @@ public class AzkabanExecutorServer {
// Setup time zone
if (azkabanSettings.containsKey(DEFAULT_TIMEZONE_ID)) {
String timezone = azkabanSettings.getString(DEFAULT_TIMEZONE_ID);
- Utils.setTimeZone(timezone);
+ System.setProperty("user.timezone", timezone);
+ TimeZone.setDefault(TimeZone.getTimeZone(timezone));
+ DateTimeZone.setDefault(DateTimeZone.forID(timezone));
logger.info("Setting timezone to " + timezone);
}
diff --git a/azkaban-execserver/src/main/java/azkaban/execapp/FlowRunnerManager.java b/azkaban-execserver/src/main/java/azkaban/execapp/FlowRunnerManager.java
index 4ac6d43..01ab373 100644
--- a/azkaban-execserver/src/main/java/azkaban/execapp/FlowRunnerManager.java
+++ b/azkaban-execserver/src/main/java/azkaban/execapp/FlowRunnerManager.java
@@ -62,7 +62,6 @@ import azkaban.utils.Pair;
import azkaban.utils.Props;
import azkaban.utils.ThreadPoolExecutingListener;
import azkaban.utils.TrackingThreadPool;
-import azkaban.utils.Utils;
/**
* Execution manager for the server side execution.
@@ -95,8 +94,6 @@ public class FlowRunnerManager implements EventListener,
"executor.threadpool.workqueue.size";
private static final String EXECUTOR_FLOW_THREADS = "executor.flow.threads";
private static final String FLOW_NUM_JOB_THREADS = "flow.num.job.threads";
- private static final String DEFAULT_TIMEZONE_ID = "default.timezone.id";
-
private static Logger logger = Logger.getLogger(FlowRunnerManager.class);
private File executionDirectory;
private File projectDirectory;
@@ -150,9 +147,7 @@ public class FlowRunnerManager implements EventListener,
// date time of the the last flow submitted.
private long lastFlowSubmittedDate = 0;
- private String timezone;
- private boolean isDayLightSaving;
-
+
public FlowRunnerManager(Props props, ExecutorLoader executorLoader,
ProjectLoader projectLoader, ClassLoader parentClassLoader)
throws IOException {
@@ -162,12 +157,6 @@ public class FlowRunnerManager implements EventListener,
new File(props.getString("azkaban.project.dir", "projects"));
azkabanProps = props;
-
- if (props.containsKey(DEFAULT_TIMEZONE_ID)) {
- this.timezone = props.getString(DEFAULT_TIMEZONE_ID);
- logger.info("Setting timezone to " + timezone);
- isDayLightSaving = Utils.isCurrentlyDaylightSaving(timezone);
- }
// JobWrappingFactory.init(props, getClass().getClassLoader());
executionDirRetention =
@@ -458,12 +447,6 @@ public class FlowRunnerManager implements EventListener,
}
public void submitFlow(int execId) throws ExecutorManagerException {
- if (timezone != null
- && isDayLightSaving != Utils.isCurrentlyDaylightSaving(timezone)) {
- Utils.setTimeZone(timezone);
- isDayLightSaving = Utils.isCurrentlyDaylightSaving(timezone);
- }
-
// Load file and submit
if (runningFlows.containsKey(execId)) {
throw new ExecutorManagerException("Execution " + execId
diff --git a/azkaban-webserver/src/main/java/azkaban/webapp/AzkabanWebServer.java b/azkaban-webserver/src/main/java/azkaban/webapp/AzkabanWebServer.java
index 4cbdae0..89dea03 100644
--- a/azkaban-webserver/src/main/java/azkaban/webapp/AzkabanWebServer.java
+++ b/azkaban-webserver/src/main/java/azkaban/webapp/AzkabanWebServer.java
@@ -31,6 +31,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.TimeZone;
import javax.management.MBeanInfo;
import javax.management.MBeanServer;
@@ -43,6 +44,7 @@ import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.runtime.log.Log4JLogChute;
import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
import org.apache.velocity.runtime.resource.loader.JarResourceLoader;
+import org.joda.time.DateTimeZone;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.bio.SocketConnector;
@@ -52,8 +54,6 @@ import org.mortbay.jetty.servlet.DefaultServlet;
import org.mortbay.jetty.servlet.ServletHolder;
import org.mortbay.thread.QueuedThreadPool;
-import com.linkedin.restli.server.RestliServlet;
-
import azkaban.alert.Alerter;
import azkaban.database.AzkabanDatabaseSetup;
import azkaban.executor.ExecutorManager;
@@ -101,6 +101,8 @@ import azkaban.webapp.servlet.ScheduleServlet;
import azkaban.webapp.servlet.StatsServlet;
import azkaban.webapp.servlet.TriggerManagerServlet;
+import com.linkedin.restli.server.RestliServlet;
+
/**
* The Azkaban Jetty server class
*
@@ -155,7 +157,7 @@ public class AzkabanWebServer extends AzkabanServer {
private ScheduleManager scheduleManager;
private TriggerManager triggerManager;
private Map<String, Alerter> alerters;
-
+
private final ClassLoader baseClassLoader;
private Props props;
@@ -213,7 +215,10 @@ public class AzkabanWebServer extends AzkabanServer {
// Setup time zone
if (props.containsKey(DEFAULT_TIMEZONE_ID)) {
String timezone = props.getString(DEFAULT_TIMEZONE_ID);
- Utils.setTimeZone(timezone);
+ System.setProperty("user.timezone", timezone);
+ TimeZone.setDefault(TimeZone.getTimeZone(timezone));
+ DateTimeZone.setDefault(DateTimeZone.forID(timezone));
+ logger.info("Setting timezone to " + timezone);
}
configureMBeanServer();