Replace joda-time with Java 8 time API
In the Gerrit project we have replaced joda-time with the Java 8
time API. Do the same in Gitiles.
Change-Id: If4cd80167526cbb412f97ef1fce34809941e1d6b
diff --git a/WORKSPACE b/WORKSPACE
index c29dcac..e12f2ab 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -39,12 +39,6 @@
)
maven_jar(
- name = "joda_time",
- artifact = "joda-time:joda-time:2.9.9",
- sha1 = "f7b520c458572890807d143670c9b24f4de90897",
-)
-
-maven_jar(
name = "jsr305",
artifact = "com.google.code.findbugs:jsr305:3.0.0",
attach_source = False,
diff --git a/java/com/google/gitiles/BUILD b/java/com/google/gitiles/BUILD
index 6e2c554..8ec9118 100644
--- a/java/com/google/gitiles/BUILD
+++ b/java/com/google/gitiles/BUILD
@@ -5,7 +5,6 @@
"//lib:gson",
"//lib:guava",
"//lib:html-types",
- "//lib:joda-time",
"//lib:jsr305",
"//lib:commonmark",
"//lib:cm-autolink",
diff --git a/java/com/google/gitiles/BaseServlet.java b/java/com/google/gitiles/BaseServlet.java
index 7fc2f9d..4b8a139 100644
--- a/java/com/google/gitiles/BaseServlet.java
+++ b/java/com/google/gitiles/BaseServlet.java
@@ -39,6 +39,7 @@
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.lang.reflect.Type;
+import java.time.Instant;
import java.util.Map;
import java.util.Optional;
import java.util.regex.Pattern;
@@ -47,7 +48,6 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.joda.time.Instant;
/** Base servlet class for Gitiles servlets that serve Soy templates. */
public abstract class BaseServlet extends HttpServlet {
@@ -59,7 +59,7 @@
res.setHeader(HttpHeaders.CACHE_CONTROL, "no-cache, no-store, max-age=0, must-revalidate");
res.setHeader(HttpHeaders.PRAGMA, "no-cache");
res.setHeader(HttpHeaders.EXPIRES, "Mon, 01 Jan 1990 00:00:00 GMT");
- res.setDateHeader(HttpHeaders.DATE, new Instant().getMillis());
+ res.setDateHeader(HttpHeaders.DATE, Instant.now().toEpochMilli());
}
public static BaseServlet notFoundServlet() {
diff --git a/java/com/google/gitiles/ConfigUtil.java b/java/com/google/gitiles/ConfigUtil.java
index 593563d..131a62c 100644
--- a/java/com/google/gitiles/ConfigUtil.java
+++ b/java/com/google/gitiles/ConfigUtil.java
@@ -17,12 +17,12 @@
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import com.google.common.cache.CacheBuilder;
+import java.time.Duration;
import java.util.Optional;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
import org.eclipse.jgit.lib.Config;
-import org.joda.time.Duration;
/** Utilities for working with {@link Config} objects. */
public class ConfigUtil {
@@ -47,7 +47,7 @@
String name,
@Nullable Duration defaultValue) {
long m = config.getTimeUnit(section, subsection, name, -1, MILLISECONDS);
- return m == -1 ? defaultValue : Duration.millis(m);
+ return m == -1 ? defaultValue : Duration.ofMillis(m);
}
/**
@@ -68,11 +68,11 @@
}
Duration expireAfterWrite = getDuration(config, "cache", name, "expireAfterWrite", null);
if (expireAfterWrite != null) {
- b.expireAfterWrite(expireAfterWrite.getMillis(), TimeUnit.MILLISECONDS);
+ b.expireAfterWrite(expireAfterWrite.toMillis(), TimeUnit.MILLISECONDS);
}
Duration expireAfterAccess = getDuration(config, "cache", name, "expireAfterAccess", null);
if (expireAfterAccess != null) {
- b.expireAfterAccess(expireAfterAccess.getMillis(), TimeUnit.MILLISECONDS);
+ b.expireAfterAccess(expireAfterAccess.toMillis(), TimeUnit.MILLISECONDS);
}
// Add other methods as needed.
} catch (IllegalArgumentException e) {
diff --git a/javatests/com/google/gitiles/BUILD b/javatests/com/google/gitiles/BUILD
index ee28f2f..73b662c 100644
--- a/javatests/com/google/gitiles/BUILD
+++ b/javatests/com/google/gitiles/BUILD
@@ -3,7 +3,6 @@
"//lib:guava",
"//lib/jgit:jgit",
"//lib/jgit:jgit-servlet",
- "//lib:joda-time",
"//lib/soy:soy",
]
diff --git a/javatests/com/google/gitiles/ConfigUtilTest.java b/javatests/com/google/gitiles/ConfigUtilTest.java
index a9d58bc..d2e3ac7 100644
--- a/javatests/com/google/gitiles/ConfigUtilTest.java
+++ b/javatests/com/google/gitiles/ConfigUtilTest.java
@@ -18,8 +18,8 @@
import static com.google.gitiles.ConfigUtil.getDuration;
import static org.junit.Assert.fail;
+import java.time.Duration;
import org.eclipse.jgit.lib.Config;
-import org.joda.time.Duration;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -29,13 +29,13 @@
public class ConfigUtilTest {
@Test
public void getDurationReturnsDuration() throws Exception {
- Duration def = Duration.standardSeconds(2);
+ Duration def = Duration.ofSeconds(2);
Config config = new Config();
Duration t;
config.setString("core", "dht", "timeout", "500 ms");
t = getDuration(config, "core", "dht", "timeout", def);
- assertThat(t.getMillis()).isEqualTo(500);
+ assertThat(t.toMillis()).isEqualTo(500);
config.setString("core", "dht", "timeout", "5.2 sec");
try {
@@ -47,25 +47,25 @@
config.setString("core", "dht", "timeout", "1 min");
t = getDuration(config, "core", "dht", "timeout", def);
- assertThat(t.getMillis()).isEqualTo(60000);
+ assertThat(t.toMillis()).isEqualTo(60000);
}
@Test
public void getDurationCanReturnDefault() throws Exception {
- Duration def = Duration.standardSeconds(1);
+ Duration def = Duration.ofSeconds(1);
Config config = new Config();
Duration t;
t = getDuration(config, "core", null, "blank", def);
- assertThat(t.getMillis()).isEqualTo(1000);
+ assertThat(t.toMillis()).isEqualTo(1000);
config.setString("core", null, "blank", "");
t = getDuration(config, "core", null, "blank", def);
- assertThat(t.getMillis()).isEqualTo(1000);
+ assertThat(t.toMillis()).isEqualTo(1000);
config.setString("core", null, "blank", " ");
t = getDuration(config, "core", null, "blank", def);
- assertThat(t.getMillis()).isEqualTo(1000);
+ assertThat(t.toMillis()).isEqualTo(1000);
}
@Test
diff --git a/lib/BUILD b/lib/BUILD
index 9ee64d5..110865c 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -15,7 +15,6 @@
"gfm-tables",
"html-types",
"jsr305",
- "joda-time",
"servlet-api_2_5",
"servlet-api_3_0",
"truth",