diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 080365e..e4a1b82 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -7,6 +7,8 @@
+
+
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 7acefed..577a036 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -2,5 +2,7 @@
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..6560a98
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 736b6e1..c85e31b 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,10 +1,20 @@
-
+
+
+
+
+
+
+
+
+
+
+
@@ -44,29 +54,36 @@
-
-
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -75,37 +92,37 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
@@ -113,14 +130,17 @@
+
+
+
-
+
@@ -133,11 +153,25 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -145,12 +179,12 @@
+
-
@@ -219,39 +253,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -263,35 +264,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -299,8 +278,10 @@
+
+
@@ -314,6 +295,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -325,45 +349,78 @@
1591958573741
+
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -372,25 +429,23 @@
-
+
-
-
+
+
-
+
-
-
-
-
+
+
-
+
@@ -400,48 +455,91 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FlumeDynamicInterceptor/src/main/java/com/zdjizhi/flume/interceptor/FlumeDynamicApp.java b/FlumeDynamicInterceptor/src/main/java/com/zdjizhi/flume/interceptor/FlumeDynamicApp.java
index f3fc9e8..13c7efe 100644
--- a/FlumeDynamicInterceptor/src/main/java/com/zdjizhi/flume/interceptor/FlumeDynamicApp.java
+++ b/FlumeDynamicInterceptor/src/main/java/com/zdjizhi/flume/interceptor/FlumeDynamicApp.java
@@ -22,6 +22,9 @@ import java.util.HashMap;
import java.util.List;
+/**
+ * @author qidaijie
+ */
public class FlumeDynamicApp implements Interceptor {
private static Logger logger = Logger.getLogger(FlumeDynamicApp.class);
@@ -38,6 +41,7 @@ public class FlumeDynamicApp implements Interceptor {
private static Object mapObject;
private static ArrayList jobList;
+ @Override
public void initialize() {
map = JsonParseUtil.getMapFromhttp(schemaHttpUrl);
mapObject = JsonParseUtil.generateObject(map);
@@ -74,6 +78,7 @@ public class FlumeDynamicApp implements Interceptor {
this.hbaseTableName = hbaseTableName;
}
+ @Override
public Event intercept(Event event) {
String message = null;
try {
@@ -94,6 +99,7 @@ public class FlumeDynamicApp implements Interceptor {
return event;
}
+ @Override
public List intercept(List list) {
List resultList = new ArrayList();
for (Event event : list) {
@@ -105,6 +111,7 @@ public class FlumeDynamicApp implements Interceptor {
return resultList;
}
+ @Override
public void close() {
logger.warn("FlumeDynamicApp is closed.");
}
@@ -138,12 +145,12 @@ public class FlumeDynamicApp implements Interceptor {
JsonParseUtil.setValue(object, appendToKeyName, formatUtils.getSnowflakeId(uidZookeeperIp, dataCenterIdNum));
break;
case "geo_ip_detail":
- if (name != null) {
+ if (name != null && JsonParseUtil.getValue(object, appendToKeyName) == null) {
JsonParseUtil.setValue(object, appendToKeyName, getGeoIpDetail(name.toString()));
}
break;
case "geo_asn":
- if (name != null) {
+ if (name != null && JsonParseUtil.getValue(object, appendToKeyName) == null) {
JsonParseUtil.setValue(object, appendToKeyName, getGeoAsn(name.toString()));
}
break;
@@ -158,7 +165,7 @@ public class FlumeDynamicApp implements Interceptor {
}
break;
case "geo_ip_country":
- if (name != null) {
+ if (name != null && JsonParseUtil.getValue(object, appendToKeyName) == null) {
JsonParseUtil.setValue(object, appendToKeyName, getGeoIpCountry(name.toString()));
}
break;
@@ -261,6 +268,7 @@ public class FlumeDynamicApp implements Interceptor {
private String hbaseTableName;
+ @Override
public Interceptor build() {
return new FlumeDynamicApp(this.schemaHttpUrl,
this.uidZookeeperIp, this.dataCenterIdNum,
@@ -268,6 +276,7 @@ public class FlumeDynamicApp implements Interceptor {
this.hbaseZookeeperIp, this.hbaseTableName);
}
+ @Override
public void configure(Context context) {
try {
this.schemaHttpUrl = context.getString("schemaHttpUrl", "");