Repository: flume Updated Branches: refs/heads/flume-1.6 4e840400f -> fa7ead55c
FLUME-2570. Add option to not pad date fields. (Peter Leckie via Hari) Project: http://git-wip-us.apache.org/repos/asf/flume/repo Commit: http://git-wip-us.apache.org/repos/asf/flume/commit/fa7ead55 Tree: http://git-wip-us.apache.org/repos/asf/flume/tree/fa7ead55 Diff: http://git-wip-us.apache.org/repos/asf/flume/diff/fa7ead55 Branch: refs/heads/flume-1.6 Commit: fa7ead55c34fe43aa4afd160ca40c61b5fb6be8d Parents: 4e84040 Author: Hari Shreedharan <[email protected]> Authored: Wed Feb 25 21:54:34 2015 -0800 Committer: Hari Shreedharan <[email protected]> Committed: Wed Feb 25 21:55:59 2015 -0800 ---------------------------------------------------------------------- .../flume/formatter/output/BucketPath.java | 10 +++++++ .../flume/formatter/output/TestBucketPath.java | 31 ++++++++++++++++++++ flume-ng-doc/sphinx/FlumeUserGuide.rst | 2 ++ 3 files changed, 43 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flume/blob/fa7ead55/flume-ng-core/src/main/java/org/apache/flume/formatter/output/BucketPath.java ---------------------------------------------------------------------- diff --git a/flume-ng-core/src/main/java/org/apache/flume/formatter/output/BucketPath.java b/flume-ng-core/src/main/java/org/apache/flume/formatter/output/BucketPath.java index afe095c..e565192 100644 --- a/flume-ng-core/src/main/java/org/apache/flume/formatter/output/BucketPath.java +++ b/flume-ng-core/src/main/java/org/apache/flume/formatter/output/BucketPath.java @@ -74,6 +74,8 @@ public class BucketPath { return "datetime"; case 'd': return "day_of_month_xx"; // two digit + case 'e': + return "day_of_month_x"; // 1 or 2 digit case 'D': return "date_short"; // "MM/dd/yy"; case 'H': @@ -88,6 +90,8 @@ public class BucketPath { return "hour_12"; // 1 or 2 digits case 'm': return "month_xx"; + case 'n': + return "month_x"; // 1 or 2 digits case 'M': return "minute_xx"; case 'p': @@ -261,6 +265,9 @@ public class BucketPath { case 'd': formatString = "dd"; break; + case 'e': + formatString = "d"; + break; case 'D': formatString = "MM/dd/yy"; break; @@ -285,6 +292,9 @@ public class BucketPath { case 'M': formatString = "mm"; break; + case 'n': + formatString = "M"; + break; case 'p': formatString = "a"; break; http://git-wip-us.apache.org/repos/asf/flume/blob/fa7ead55/flume-ng-core/src/test/java/org/apache/flume/formatter/output/TestBucketPath.java ---------------------------------------------------------------------- diff --git a/flume-ng-core/src/test/java/org/apache/flume/formatter/output/TestBucketPath.java b/flume-ng-core/src/test/java/org/apache/flume/formatter/output/TestBucketPath.java index 8d1da12..21b972b 100644 --- a/flume-ng-core/src/test/java/org/apache/flume/formatter/output/TestBucketPath.java +++ b/flume-ng-core/src/test/java/org/apache/flume/formatter/output/TestBucketPath.java @@ -121,6 +121,37 @@ public class TestBucketPath { Assert.assertEquals(expectedString, escapedString); } + + @Test + public void testNoPadding(){ + Calendar calender; + Map<String, String> calender_timestamp; + calender = Calendar.getInstance(); + + //Check single digit dates + calender.set(2014, (5-1), 3, 13, 46, 33); + calender_timestamp = new HashMap<String, String>(); + calender_timestamp.put("timestamp", String.valueOf(calender.getTimeInMillis())); + SimpleDateFormat format = new SimpleDateFormat("M-d"); + + String test = "%n-%e"; // eg 5-3 + String escapedString = BucketPath.escapeString( + test, calender_timestamp, false, Calendar.HOUR_OF_DAY, 12); + Date d = new Date(calender.getTimeInMillis()); + String expectedString = format.format(d); + + //Check two digit dates + calender.set(2014, (11-1), 13, 13, 46, 33); + calender_timestamp.put("timestamp", String.valueOf(calender.getTimeInMillis())); + escapedString += " " + BucketPath.escapeString( + test, calender_timestamp, false, Calendar.HOUR_OF_DAY, 12); + System.out.println("Escaped String: " + escapedString); + d = new Date(calender.getTimeInMillis()); + expectedString += " " + format.format(d); + System.out.println("Expected String: "+ expectedString); + Assert.assertEquals(expectedString, escapedString); + } + @Test public void testDateFormatTimeZone(){ TimeZone utcTimeZone = TimeZone.getTimeZone("UTC"); http://git-wip-us.apache.org/repos/asf/flume/blob/fa7ead55/flume-ng-doc/sphinx/FlumeUserGuide.rst ---------------------------------------------------------------------- diff --git a/flume-ng-doc/sphinx/FlumeUserGuide.rst b/flume-ng-doc/sphinx/FlumeUserGuide.rst index 47e899d..4122cfe 100644 --- a/flume-ng-doc/sphinx/FlumeUserGuide.rst +++ b/flume-ng-doc/sphinx/FlumeUserGuide.rst @@ -1628,12 +1628,14 @@ Alias Description %B locale's long month name (January, February, ...) %c locale's date and time (Thu Mar 3 23:05:25 2005) %d day of month (01) +%e day of month without padding (1) %D date; same as %m/%d/%y %H hour (00..23) %I hour (01..12) %j day of year (001..366) %k hour ( 0..23) %m month (01..12) +%n month without padding (1..12) %M minute (00..59) %p locale's equivalent of am or pm %s seconds since 1970-01-01 00:00:00 UTC
