You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mg...@apache.org on 2017/07/12 14:55:59 UTC
ambari git commit: AMBARI-21447 Log Feeder should support logs
without date (time only) (mgergely)
Repository: ambari
Updated Branches:
refs/heads/trunk 31b9d7774 -> 9f788c386
AMBARI-21447 Log Feeder should support logs without date (time only) (mgergely)
Change-Id: I853447134873b10fdd3fd604fd84630a9caf9d03
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/9f788c38
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/9f788c38
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/9f788c38
Branch: refs/heads/trunk
Commit: 9f788c386667bfeb82fff7c35287a5fdb175c349
Parents: 31b9d77
Author: Miklos Gergely <mg...@hortonworks.com>
Authored: Wed Jul 12 16:55:48 2017 +0200
Committer: Miklos Gergely <mg...@hortonworks.com>
Committed: Wed Jul 12 16:55:48 2017 +0200
----------------------------------------------------------------------
.../ambari/logfeeder/mapper/MapperDate.java | 42 +++++++++++++-------
1 file changed, 28 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/9f788c38/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/mapper/MapperDate.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/mapper/MapperDate.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/mapper/MapperDate.java
index 305688b..e099161 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/mapper/MapperDate.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/mapper/MapperDate.java
@@ -19,6 +19,7 @@
package org.apache.ambari.logfeeder.mapper;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
@@ -79,20 +80,7 @@ public class MapperDate extends Mapper {
jsonObj.put(LogFeederConstants.IN_MEMORY_TIMESTAMP, ((Date) value).getTime());
} else if (targetDateFormatter != null) {
if (srcDateFormatter != null) {
- Date srcDate = srcDateFormatter.parse(value.toString());
- //set year in src_date when src_date does not have year component
- if (!srcDateFormatter.toPattern().contains("yy")) {
- Calendar currentCalendar = Calendar.getInstance();
- Calendar logDateCalendar = Calendar.getInstance();
- logDateCalendar.setTimeInMillis(srcDate.getTime());
- if (logDateCalendar.get(Calendar.MONTH) > currentCalendar.get(Calendar.MONTH)) {
- // set previous year as a log year when log month is grater than current month
- srcDate = DateUtils.setYears(srcDate, currentCalendar.get(Calendar.YEAR) - 1);
- } else {
- // set current year as a log year
- srcDate = DateUtils.setYears(srcDate, currentCalendar.get(Calendar.YEAR));
- }
- }
+ Date srcDate = getSourceDate(value);
value = targetDateFormatter.format(srcDate);
jsonObj.put(LogFeederConstants.IN_MEMORY_TIMESTAMP, srcDate.getTime());
} else {
@@ -111,4 +99,30 @@ public class MapperDate extends Mapper {
}
return value;
}
+
+ private Date getSourceDate(Object value) throws ParseException {
+ Date srcDate = srcDateFormatter.parse(value.toString());
+
+ Calendar currentCalendar = Calendar.getInstance();
+
+ if (!srcDateFormatter.toPattern().contains("dd")) {
+ //set year/month/date in src_date when src_date does not have date component
+ srcDate = DateUtils.setYears(srcDate, currentCalendar.get(Calendar.YEAR));
+ srcDate = DateUtils.setMonths(srcDate, currentCalendar.get(Calendar.MONTH));
+ srcDate = DateUtils.setDays(srcDate, currentCalendar.get(Calendar.DAY_OF_MONTH));
+ // if with the current date the time stamp is after the current one, it must be previous day
+ if (srcDate.getTime() > currentCalendar.getTimeInMillis()) {
+ srcDate = DateUtils.addDays(srcDate, -1);
+ }
+ } else if (!srcDateFormatter.toPattern().contains("yy")) {
+ //set year in src_date when src_date does not have year component
+ srcDate = DateUtils.setYears(srcDate, currentCalendar.get(Calendar.YEAR));
+ // if with the current year the time stamp is after the current one, it must be previous year
+ if (srcDate.getTime() > currentCalendar.getTimeInMillis()) {
+ srcDate = DateUtils.addYears(srcDate, -1);
+ }
+ }
+
+ return srcDate;
+ }
}