NIFI-5908 Inject locale info into JsonInjector object to make sure we don't lose...
authorMike Thomsen <mikerthomsen@gmail.com>
Tue, 18 Dec 2018 17:53:29 +0000 (12:53 -0500)
committerPierre Villard <pierre.villard.fr@gmail.com>
Thu, 3 Jan 2019 17:10:08 +0000 (18:10 +0100)
Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com>
This closes #3226.

nifi-nar-bundles/nifi-enrich-bundle/nifi-enrich-processors/src/main/java/org/apache/nifi/processors/maxmind/DatabaseReader.java

index c5ecb11..8cbc74a 100644 (file)
@@ -57,6 +57,7 @@ public class DatabaseReader implements GeoIp2Provider, Closeable {
 
     private final Reader reader;
     private final ObjectMapper om;
+    private List<String> locales;
 
     private DatabaseReader(final Builder builder) throws IOException {
         if (builder.stream != null) {
@@ -74,6 +75,8 @@ public class DatabaseReader implements GeoIp2Provider, Closeable {
         this.om.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);
         InjectableValues inject = new InjectableValues.Std().addValue("locales", builder.locales);
         this.om.setInjectableValues(inject);
+
+        this.locales = builder.locales;
     }
 
     /**
@@ -259,6 +262,8 @@ public class DatabaseReader implements GeoIp2Provider, Closeable {
                 return ip;
             } else if ("traits".equals(valueId)) {
                 return new Traits(ip);
+            } else if ("locales".equals(valueId)) {
+                return locales;
             }
 
             return null;