]> source.dussan.org Git - jgit.git/commitdiff
SystemReader#now: make it a concrete method 49/1204049/2
authorIvan Frade <ifrade@google.com>
Thu, 14 Nov 2024 00:25:42 +0000 (16:25 -0800)
committerIvan Frade <ifrade@google.com>
Thu, 14 Nov 2024 16:52:21 +0000 (08:52 -0800)
Abstract methods break subclasses (e.g. DelegateSystemReader in
gerrit). Updating jgit and gerrit is simpler if we do not add them. I
am not sure why some methods are abstract and others dont, but now()
can be a concrete method.

Make now() concrete. Implement it by default based on
getCurrentTime(), so subclasses overriding that method get the same
value.

Change-Id: I697749f8cba698c5388ed13ebdc2b238d6259358

org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java
org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java

index bf236ab17d5d663e696ba3cf342dd7d3bd5b9f9c..38f0d0b2cb8652dc0050829fd611544ba999e734 100644 (file)
@@ -18,7 +18,6 @@ import java.lang.reflect.Field;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.time.Duration;
-import java.time.Instant;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
 import java.util.HashMap;
@@ -204,11 +203,6 @@ public class MockSystemReader extends SystemReader {
                return now;
        }
 
-       @Override
-       public Instant now() {
-               return Instant.ofEpochMilli(now);
-       }
-
        @Override
        public MonotonicClock getClock() {
                return () -> {
index 18b0e152c90e4207c7e29ca20e47aae337444288..7cdf0ee1a28a6d34de7f5a61136a9e25670e3597 100644 (file)
@@ -532,7 +532,11 @@ public abstract class SystemReader {
         *
         * @since 7.1
         */
-       public abstract Instant now();
+       public Instant now() {
+               // Subclasses overriding getCurrentTime should keep working
+               // TODO(ifrade): Once we remove getCurrentTime, use Instant.now()
+               return Instant.ofEpochMilli(getCurrentTime());
+       }
 
        /**
         * Get clock instance preferred by this system.