From: Robin Rosenberg Date: Tue, 18 Sep 2012 17:23:17 +0000 (+0200) Subject: Introduce "never" as parseable date X-Git-Tag: v2.1.0.201209190230-r~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fchanges%2F95%2F7795%2F4;p=jgit.git Introduce "never" as parseable date For configuration parameter like "gc.pruneexpire" we need to understand the value "never". Never is handled as a date so far into the future that it will never happen. The actual value currently used is the constant GitDateParser.NEVER. Change-Id: I7744eaee9bf5026da517151c212c88325c348d6c Signed-off-by: Robin Rosenberg --- diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserTest.java index 98e84fed83..6b0632aef0 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserTest.java @@ -76,6 +76,17 @@ public class GitDateParserTest { Assert.assertEquals(cal.getTime(), parse); } + @Test + public void never() throws ParseException { + GregorianCalendar cal = new GregorianCalendar(SystemReader + .getInstance().getTimeZone(), SystemReader.getInstance() + .getLocale()); + Date parse = GitDateParser.parse("never", cal); + Assert.assertEquals(GitDateParser.NEVER, parse); + parse = GitDateParser.parse("never", null); + Assert.assertEquals(GitDateParser.NEVER, parse); + } + @Test public void now() throws ParseException { String dateStr = "2007-02-21 15:35:00 +0100"; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateParser.java index dc5c7fa568..f1743d4f16 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateParser.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateParser.java @@ -62,6 +62,12 @@ import org.eclipse.jgit.internal.JGitText; * understands. */ public class GitDateParser { + /** + * The Date representing never. Though this is a concrete value, most + * callers are adviced to avoid depending on the actual value. + */ + public static final Date NEVER = new Date(Long.MAX_VALUE); + // Since SimpleDateFormat instances are expensive to instantiate they should // be cached. Since they are also not threadsafe they are cached using // ThreadLocal. @@ -113,6 +119,7 @@ public class GitDateParser { * relative formats (e.g. "yesterday") the caller can specify the reference * date. These types of strings can be parsed: *