This is an automated email from the ASF dual-hosted git repository.

chriss pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 275dcc1e50 NIFI-12891: Update ElasticSearchClientService member 
variables on verify
275dcc1e50 is described below

commit 275dcc1e5084908deef8259f7f6d3807d7432463
Author: bob <b...@apache.org>
AuthorDate: Tue Mar 12 21:11:06 2024 -0500

    NIFI-12891: Update ElasticSearchClientService member variables on verify
    
    This closes #8496
    
    Signed-off-by: Chris Sampson <chris.sampso...@gmail.com>
---
 .../ElasticSearchClientServiceImpl.java            | 26 +++++++++++++++++-----
 .../integration/ElasticSearchClientService_IT.java | 13 +++++++++++
 2 files changed, 33 insertions(+), 6 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java
index 8445a883fd..e2efb792f4 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java
@@ -192,19 +192,23 @@ public class ElasticSearchClientServiceImpl extends 
AbstractControllerService im
             responseCharset = 
Charset.forName(context.getProperty(CHARSET).getValue());
 
             // re-create the ObjectMapper in case the SUPPRESS_NULLS property 
has changed - the JsonInclude settings aren't dynamic
-            mapper = new ObjectMapper();
-            if 
(ALWAYS_SUPPRESS.getValue().equals(context.getProperty(SUPPRESS_NULLS).getValue()))
 {
-                mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
-                
mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
-            }
+            createObjectMapper(context);
 
-            prettyPrintWriter = mapper.writerWithDefaultPrettyPrinter();
         } catch (final Exception ex) {
             getLogger().error("Could not initialize ElasticSearch client.", 
ex);
             throw new InitializationException(ex);
         }
     }
 
+    private void createObjectMapper(final ConfigurationContext context) {
+        mapper = new ObjectMapper();
+        if 
(ALWAYS_SUPPRESS.getValue().equals(context.getProperty(SUPPRESS_NULLS).getValue()))
 {
+            mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+            mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
+        }
+        prettyPrintWriter = mapper.writerWithDefaultPrettyPrinter();
+    }
+
     @OnDisabled
     public void onDisabled() throws IOException {
         if (this.sniffer != null) {
@@ -217,6 +221,9 @@ public class ElasticSearchClientServiceImpl extends 
AbstractControllerService im
             this.client = null;
         }
         this.url = null;
+        this.mapper = null;
+        this.prettyPrintWriter = null;
+        this.responseCharset = null;
     }
 
     @Override
@@ -231,6 +238,9 @@ public class ElasticSearchClientServiceImpl extends 
AbstractControllerService im
         final ConfigVerificationResult.Builder snifferResult = new 
ConfigVerificationResult.Builder()
                 .verificationStepName(VERIFICATION_STEP_SNIFFER);
 
+        responseCharset = 
Charset.forName(context.getProperty(CHARSET).getValue());
+        createObjectMapper(context);
+
         // configure the Rest Client
         try (final RestClient verifyClient = setupClient(context)) {
             
clientSetupResult.outcome(ConfigVerificationResult.Outcome.SUCCESSFUL);
@@ -252,6 +262,9 @@ public class ElasticSearchClientServiceImpl extends 
AbstractControllerService im
             clientSetupResult.outcome(ConfigVerificationResult.Outcome.FAILED)
                     .explanation("Unable to configure, are all mandatory 
properties set (see logs for details)?");
         } finally {
+            responseCharset = null;
+            mapper = null;
+            prettyPrintWriter = null;
             final ConfigVerificationResult clientSetup = 
clientSetupResult.build();
             if (ConfigVerificationResult.Outcome.SUCCESSFUL != 
clientSetup.getOutcome()) {
                 
connectionResult.outcome(ConfigVerificationResult.Outcome.SKIPPED)
@@ -266,6 +279,7 @@ public class ElasticSearchClientServiceImpl extends 
AbstractControllerService im
             results.add(connectionResult.build());
             results.add(warningsResult.build());
             results.add(snifferResult.build());
+
         }
 
         return results;
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/test/java/org/apache/nifi/elasticsearch/integration/ElasticSearchClientService_IT.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/test/java/org/apache/nifi/elasticsearch/integration/ElasticSearchClientService_IT.java
index 867e83717c..04a2cb62e6 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/test/java/org/apache/nifi/elasticsearch/integration/ElasticSearchClientService_IT.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/test/java/org/apache/nifi/elasticsearch/integration/ElasticSearchClientService_IT.java
@@ -96,6 +96,19 @@ class ElasticSearchClientService_IT extends 
AbstractElasticsearch_IT {
         assertVerifySnifferSkipped(results);
     }
 
+    @Test
+    void testVerifyDisabledSuccess() {
+        //Disable as verify can be run in either state
+        runner.disableControllerService(service);
+        final List<ConfigVerificationResult> results = service.verify(
+                new MockConfigurationContext(service, 
getClientServiceProperties(), 
runner.getProcessContext().getControllerServiceLookup(), null),
+                runner.getLogger(),
+                Collections.emptyMap()
+        );
+        assertEquals(4, results.size());
+        assertEquals(3, results.stream().filter(result -> result.getOutcome() 
== ConfigVerificationResult.Outcome.SUCCESSFUL).count(), results.toString());
+    }
+
     @Test
     void testVerifySniffer() {
         runner.disableControllerService(service);

Reply via email to