You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by GitBox <gi...@apache.org> on 2019/12/04 15:25:08 UTC

[GitHub] [nifi] bbende commented on a change in pull request #3904: NIFI-6833 KeytabCredentialsService updated to qualify a principal wit…

bbende commented on a change in pull request #3904: NIFI-6833 KeytabCredentialsService updated to qualify a principal wit…
URL: https://github.com/apache/nifi/pull/3904#discussion_r353808614
 
 

 ##########
 File path: nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceInitializationContext.java
 ##########
 @@ -32,19 +34,37 @@
     private final StateManager stateManager;
     private volatile boolean isClustered;
     private volatile boolean isPrimaryNode;
+    private NiFiProperties nifiProperties;
 
     public MockControllerServiceInitializationContext(final ControllerService controllerService, final String identifier) {
-        this(controllerService, identifier, new MockStateManager(controllerService));
+        this(controllerService, identifier, new MockStateManager(controllerService), NiFiProperties.createBasicNiFiProperties(null, Collections.emptyMap()));
+    }
+
+    public MockControllerServiceInitializationContext(final ControllerService controllerService, final String identifier, final NiFiProperties nifiProperties) {
+        this(controllerService, identifier, new MockStateManager(controllerService), nifiProperties);
     }
 
     public MockControllerServiceInitializationContext(final ControllerService controllerService, final String identifier, final StateManager stateManager) {
-        this(controllerService, identifier, new MockComponentLog(identifier, controllerService), stateManager);
+        this(controllerService, identifier, new MockComponentLog(identifier, controllerService), stateManager, NiFiProperties.createBasicNiFiProperties(null,
+                Collections.emptyMap()));
+    }
+
+    public MockControllerServiceInitializationContext(final ControllerService controllerService, final String identifier, final StateManager stateManager,
+                                                      final NiFiProperties nifiProperties) {
+        this(controllerService, identifier, new MockComponentLog(identifier, controllerService), stateManager, nifiProperties);
     }
 
     public MockControllerServiceInitializationContext(final ControllerService controllerService, final String identifier, final ComponentLog logger, final StateManager stateManager) {
+        this(controllerService, identifier, new MockComponentLog(identifier, controllerService), stateManager, NiFiProperties.createBasicNiFiProperties(null,
+                Collections.emptyMap()));
+    }
+
+    public MockControllerServiceInitializationContext(final ControllerService controllerService, final String identifier, final ComponentLog logger, final StateManager stateManager,
+                                                      final NiFiProperties nifiProperties) {
         this.identifier = identifier;
         this.logger = logger;
         this.stateManager = stateManager;
+        this.nifiProperties = nifiProperties == null ? NiFiProperties.createBasicNiFiProperties(null, Collections.emptyMap()) : nifiProperties;
 
 Review comment:
   I'm wondering it it makes sense to use NiFiProperties with in the mock framework. I know it that is how the running application obtains the kerberos properties, but it feels like the mock framework shouldn't have to really use NiFiProperties.
   
   What do you think about this approach...
   - Implement a class `MockKerberosContext` that implements `KerberosContext`
   - Add a member variable of `KerberosContext ` to `StandardProcessorTestRunner`
   - Add a new constructor to `StandardProcessorTestRunner` that allows you to pass in a `KerberosContext `
   - Add a new overload factory method to `TestRunners` that allows passing in a `KerberosContext `
   - In `StandardProcessorTestRunner`, whenever a `MockControllerServiceInitializationContext` is created, pass in the `KerberosContext ` that was set, and have it delegate to that

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services