You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by hs...@apache.org on 2015/02/26 06:56:05 UTC

flume git commit: FLUME-2570. Add option to not pad date fields.

Repository: flume
Updated Branches:
  refs/heads/trunk 407874b90 -> 3d0305361


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/3d030536
Tree: http://git-wip-us.apache.org/repos/asf/flume/tree/3d030536
Diff: http://git-wip-us.apache.org/repos/asf/flume/diff/3d030536

Branch: refs/heads/trunk
Commit: 3d03053615694ca638e5ddf314081826b8a5f1ac
Parents: 407874b
Author: Hari Shreedharan <hs...@apache.org>
Authored: Wed Feb 25 21:54:34 2015 -0800
Committer: Hari Shreedharan <hs...@apache.org>
Committed: Wed Feb 25 21:54:34 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/3d030536/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/3d030536/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/3d030536/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