diff options
author | Robin Rosenberg <robin.rosenberg@dewire.com> | 2012-09-18 19:23:17 +0200 |
---|---|---|
committer | Robin Rosenberg <robin.rosenberg@dewire.com> | 2012-09-18 19:23:17 +0200 |
commit | e0a3091af74846b697b5a34da0d7807fe4539e5c (patch) | |
tree | f3e38dc47dea2adb1223ac7e2bb0bdc48c2db8fd | |
parent | 84e171fbabd898ff46c714058d12a364c1b6499c (diff) | |
download | jgit-e0a3091af74846b697b5a34da0d7807fe4539e5c.tar.gz jgit-e0a3091af74846b697b5a34da0d7807fe4539e5c.zip |
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 <robin.rosenberg@dewire.com>
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserTest.java | 11 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateParser.java | 10 |
2 files changed, 21 insertions, 0 deletions
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 @@ -77,6 +77,17 @@ public class GitDateParserTest { } @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"; Date refDate = SystemReader.getInstance() 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: * <ul> + * <li>"never"</li> * <li>"now"</li> * <li>"yesterday"</li> * <li>"(x) years|months|weeks|days|hours|minutes|seconds ago"<br> @@ -146,6 +153,9 @@ public class GitDateParser { throws ParseException { dateStr = dateStr.trim(); Date ret; + + if ("never".equalsIgnoreCase(dateStr)) + return NEVER; ret = parse_relative(dateStr, now); if (ret != null) return ret; |