You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2018/07/10 15:24:10 UTC
nifi git commit: NIFI-5368 controller services validated prior to
enabling;
referenced controller services must be enabled for referencing component to be
valid (mock framework)
Repository: nifi
Updated Branches:
refs/heads/master 23c3bb886 -> b27962439
NIFI-5368 controller services validated prior to enabling; referenced controller services must be enabled for referencing component to be valid (mock framework)
This closes #2873.
Signed-off-by: Mark Payne <ma...@hotmail.com>
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/b2796243
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/b2796243
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/b2796243
Branch: refs/heads/master
Commit: b27962439826bef1f7a1f026c6bf65c47c1c1f5d
Parents: 23c3bb8
Author: Mark Bean <ma...@gmail.com>
Authored: Thu Jul 5 19:35:15 2018 +0000
Committer: Mark Payne <ma...@hotmail.com>
Committed: Tue Jul 10 11:23:40 2018 -0400
----------------------------------------------------------------------
.../nifi/util/MockControllerServiceLookup.java | 4 ++
.../apache/nifi/util/MockProcessContext.java | 10 +++++
.../nifi/util/StandardProcessorTestRunner.java | 14 ++++++-
.../util/TestStandardProcessorTestRunner.java | 44 ++++++++++++++++++++
...redentialsProviderControllerServiceTest.java | 15 ++-----
.../service/ServiceStateTransition.java | 5 +--
.../nifi/dbcp/TestDBCPConnectionPoolLookup.java | 4 --
.../hbase/TestHBase_1_1_2_ClientService.java | 9 ----
.../apache/nifi/xml/TestXMLRecordSetWriter.java | 4 ++
.../ssl/StandardSSLContextServiceTest.groovy | 2 +-
.../apache/nifi/ssl/SSLContextServiceTest.java | 2 +-
11 files changed, 82 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java
----------------------------------------------------------------------
diff --git a/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java
index 9893a96..ec7b179 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java
@@ -29,6 +29,10 @@ public abstract class MockControllerServiceLookup implements ControllerServiceLo
private final Map<String, ControllerServiceConfiguration> controllerServiceMap = new ConcurrentHashMap<>();
+ public Map<String, ControllerServiceConfiguration> getControllerServices() {
+ return controllerServiceMap;
+ }
+
public ControllerServiceConfiguration addControllerService(final ControllerService service, final String identifier) {
final ControllerServiceConfiguration config = new ControllerServiceConfiguration(service);
controllerServiceMap.put(identifier, config);
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
----------------------------------------------------------------------
diff --git a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
index a16216d..f40de46 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
@@ -249,6 +249,16 @@ public class MockProcessContext extends MockControllerServiceLookup implements S
final Collection<ValidationResult> serviceResults = validateReferencedControllerServices(validationContext);
results.addAll(serviceResults);
+
+ // verify all controller services are enabled
+ for (Map.Entry<String, ControllerServiceConfiguration> service : getControllerServices().entrySet()) {
+ if (!service.getValue().isEnabled()) {
+ results.add(new ValidationResult.Builder()
+ .explanation("Controller service " + service.getKey() + " for " + this.getName() + " is not enabled")
+ .valid(false)
+ .build());
+ }
+ }
return results;
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
----------------------------------------------------------------------
diff --git a/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java b/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
index 8f4de96..3a9babb 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
@@ -686,6 +686,16 @@ public class StandardProcessorTestRunner implements TestRunner {
throw new IllegalStateException("Cannot enable Controller Service " + service + " because it is not disabled");
}
+ // ensure controller service is valid before enabling
+ final ValidationContext validationContext = new MockValidationContext(context).getControllerServiceValidationContext(service);
+ final Collection<ValidationResult> results = context.getControllerService(service.getIdentifier()).validate(validationContext);
+
+ for (final ValidationResult result : results) {
+ if (!result.isValid()) {
+ throw new IllegalStateException("Cannot enable Controller Service " + service + " because it is in an invalid state: " + result.toString());
+ }
+ }
+
try {
final ConfigurationContext configContext = new MockConfigurationContext(service, configuration.getProperties(), context,variableRegistry);
ReflectionUtils.invokeMethodsWithAnnotation(OnEnabled.class, service, configContext);
@@ -712,7 +722,9 @@ public class StandardProcessorTestRunner implements TestRunner {
@Override
public void removeControllerService(final ControllerService service) {
- disableControllerService(service);
+ if (context.getControllerServiceLookup().isControllerServiceEnabled(service)) {
+ disableControllerService(service);
+ }
try {
ReflectionUtils.invokeMethodsWithAnnotation(OnRemoved.class, service);
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java
----------------------------------------------------------------------
diff --git a/nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java b/nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java
index db8a74e..d2572fa 100644
--- a/nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java
+++ b/nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java
@@ -207,6 +207,35 @@ public class TestStandardProcessorTestRunner {
assertTrue("onPropertyModified has not been called", ((SimpleTestService) testService).isOpmCalled());
}
+ @Test
+ public void testProcessorInvalidWhenControllerServiceDisabled() {
+ final ControllerService testService = new RequiredPropertyTestService();
+ final AddAttributeProcessor proc = new AddAttributeProcessor();
+ final TestRunner runner = TestRunners.newTestRunner(proc);
+ final String serviceIdentifier = "test";
+ final String pdName = "name";
+ final String pdValue = "exampleName";
+ try {
+ runner.addControllerService(serviceIdentifier, testService);
+ } catch (InitializationException e) {
+ fail(e.getMessage());
+ }
+
+ // controller service invalid due to no value on required property; processor must also be invalid
+ runner.assertNotValid(testService);
+ runner.assertNotValid();
+
+ // add required property; controller service valid but not enabled; processor must be invalid
+ runner.setProperty(testService, RequiredPropertyTestService.namePropertyDescriptor, pdValue);
+ runner.assertValid(testService);
+ runner.assertNotValid();
+
+ // enable controller service; processor now valid
+ runner.enableControllerService(testService);
+ runner.assertValid(testService);
+ runner.assertValid();
+ }
+
private static class ProcessorWithOnStop extends AbstractProcessor {
private int callsWithContext = 0;
@@ -330,4 +359,19 @@ public class TestStandardProcessorTestRunner {
return opmCalled;
}
}
+
+ private static class RequiredPropertyTestService extends AbstractControllerService {
+ private static final String PD_NAME = "name";
+ protected static final PropertyDescriptor namePropertyDescriptor = new PropertyDescriptor.Builder()
+ .name(PD_NAME)
+ .displayName("Controller Service Name")
+ .required(true)
+ .sensitive(false)
+ .allowableValues("exampleName", "anotherExampleName")
+ .build();
+
+ protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
+ return Arrays.asList(namePropertyDescriptor);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSCredentialsProviderControllerServiceTest.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSCredentialsProviderControllerServiceTest.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSCredentialsProviderControllerServiceTest.java
index 86c4154..c61240d 100644
--- a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSCredentialsProviderControllerServiceTest.java
+++ b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSCredentialsProviderControllerServiceTest.java
@@ -144,7 +144,7 @@ public class AWSCredentialsProviderControllerServiceTest {
runner.assertValid(serviceImpl);
}
- @Test(expected = AssertionError.class)
+ @Test
public void testKeysCredentialsProviderWithRoleAndNameAndSessionTimeoutLessThan900() throws Throwable {
final TestRunner runner = TestRunners.newTestRunner(FetchS3Object.class);
final AWSCredentialsProviderControllerService serviceImpl = new AWSCredentialsProviderControllerService();
@@ -154,11 +154,10 @@ public class AWSCredentialsProviderControllerServiceTest {
runner.setProperty(serviceImpl, AWSCredentialsProviderControllerService.ASSUME_ROLE_ARN, "Role");
runner.setProperty(serviceImpl, AWSCredentialsProviderControllerService.ASSUME_ROLE_NAME, "RoleName");
runner.setProperty(serviceImpl, AWSCredentialsProviderControllerService.MAX_SESSION_TIME, "899");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
- @Test(expected = AssertionError.class)
+ @Test
public void testKeysCredentialsProviderWithRoleAndNameAndSessionTimeoutGreaterThan3600() throws Throwable {
final TestRunner runner = TestRunners.newTestRunner(FetchS3Object.class);
final AWSCredentialsProviderControllerService serviceImpl = new AWSCredentialsProviderControllerService();
@@ -168,7 +167,7 @@ public class AWSCredentialsProviderControllerServiceTest {
runner.setProperty(serviceImpl, AWSCredentialsProviderControllerService.ASSUME_ROLE_ARN, "Role");
runner.setProperty(serviceImpl, AWSCredentialsProviderControllerService.ASSUME_ROLE_NAME, "RoleName");
runner.setProperty(serviceImpl, AWSCredentialsProviderControllerService.MAX_SESSION_TIME, "899");
- runner.enableControllerService(serviceImpl);
+ runner.assertNotValid(serviceImpl);
}
@Test
@@ -179,7 +178,6 @@ public class AWSCredentialsProviderControllerServiceTest {
runner.setProperty(serviceImpl, AbstractAWSProcessor.ACCESS_KEY, "awsAccessKey");
runner.setProperty(serviceImpl, AbstractAWSProcessor.SECRET_KEY, "awsSecretKey");
runner.setProperty(serviceImpl, AWSCredentialsProviderControllerService.ASSUME_ROLE_ARN, "Role");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
@@ -192,7 +190,6 @@ public class AWSCredentialsProviderControllerServiceTest {
runner.setProperty(serviceImpl, AbstractAWSProcessor.ACCESS_KEY, "awsAccessKey");
runner.setProperty(serviceImpl, AbstractAWSProcessor.SECRET_KEY, "awsSecretKey");
runner.setProperty(serviceImpl, AWSCredentialsProviderControllerService.ASSUME_ROLE_NAME, "RoleName");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
@@ -244,7 +241,6 @@ public class AWSCredentialsProviderControllerServiceTest {
runner.addControllerService("awsCredentialsProvider", serviceImpl);
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.CREDENTIALS_FILE,
"src/test/resources/bad-mock-aws-credentials.properties");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
@@ -258,7 +254,6 @@ public class AWSCredentialsProviderControllerServiceTest {
"src/test/resources/mock-aws-credentials.properties");
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.ACCESS_KEY, "awsAccessKey");
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.SECRET_KEY, "awsSecretKey");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
@@ -271,7 +266,6 @@ public class AWSCredentialsProviderControllerServiceTest {
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.CREDENTIALS_FILE,
"src/test/resources/mock-aws-credentials.properties");
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.ACCESS_KEY, "awsAccessKey");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
@@ -284,7 +278,6 @@ public class AWSCredentialsProviderControllerServiceTest {
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.CREDENTIALS_FILE,
"src/test/resources/mock-aws-credentials.properties");
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.SECRET_KEY, "awsSecretKey");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
@@ -295,7 +288,6 @@ public class AWSCredentialsProviderControllerServiceTest {
final AWSCredentialsProviderControllerService serviceImpl = new AWSCredentialsProviderControllerService();
runner.addControllerService("awsCredentialsProvider", serviceImpl);
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.ACCESS_KEY, "awsAccessKey");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
@@ -306,7 +298,6 @@ public class AWSCredentialsProviderControllerServiceTest {
final AWSCredentialsProviderControllerService serviceImpl = new AWSCredentialsProviderControllerService();
runner.addControllerService("awsCredentialsProvider", serviceImpl);
runner.setProperty(serviceImpl, CredentialPropertyDescriptors.SECRET_KEY, "awsSecretKey");
- runner.enableControllerService(serviceImpl);
runner.assertNotValid(serviceImpl);
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ServiceStateTransition.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ServiceStateTransition.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ServiceStateTransition.java
index 2e97c10..26e3b82 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ServiceStateTransition.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ServiceStateTransition.java
@@ -17,13 +17,12 @@
package org.apache.nifi.controller.service;
+import org.apache.nifi.controller.ComponentNode;
+
import java.util.ArrayList;
import java.util.List;
-import java.util.Set;
import java.util.concurrent.CompletableFuture;
-import org.apache.nifi.controller.ComponentNode;
-
public class ServiceStateTransition {
private ControllerServiceState state = ControllerServiceState.DISABLED;
private final List<CompletableFuture<?>> enabledFutures = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDBCPConnectionPoolLookup.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDBCPConnectionPoolLookup.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDBCPConnectionPoolLookup.java
index 635af2e..d02437f 100644
--- a/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDBCPConnectionPoolLookup.java
+++ b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDBCPConnectionPoolLookup.java
@@ -125,15 +125,12 @@ public class TestDBCPConnectionPoolLookup {
// enable lookup service with no services registered, verify not valid
runner = TestRunners.newTestRunner(TestProcessor.class);
runner.addControllerService("dbcp-lookup", dbcpLookupService);
- runner.enableControllerService(dbcpLookupService);
runner.assertNotValid(dbcpLookupService);
final String dbcpServiceAIdentifier = "dbcp-a";
runner.addControllerService(dbcpServiceAIdentifier, dbcpServiceA);
- runner.enableControllerService(dbcpServiceA);
// register a service and now verify valid
- runner.disableControllerService(dbcpLookupService);
runner.setProperty(dbcpLookupService, "a", dbcpServiceAIdentifier);
runner.enableControllerService(dbcpLookupService);
runner.assertValid(dbcpLookupService);
@@ -144,7 +141,6 @@ public class TestDBCPConnectionPoolLookup {
runner = TestRunners.newTestRunner(TestProcessor.class);
runner.addControllerService("dbcp-lookup", dbcpLookupService);
runner.setProperty(dbcpLookupService, "dbcp-lookup", "dbcp-lookup");
- runner.enableControllerService(dbcpLookupService);
runner.assertNotValid(dbcpLookupService);
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
index 544b502..75e9c17 100644
--- a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
+++ b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
@@ -83,7 +83,6 @@ public class TestHBase_1_1_2_ClientService {
// no conf file or zk properties so should be invalid
MockHBaseClientService service = new MockHBaseClientService(table, COL_FAM, kerberosPropsWithFile);
runner.addControllerService("hbaseClientService", service);
- runner.enableControllerService(service);
runner.assertNotValid(service);
runner.removeControllerService(service);
@@ -106,7 +105,6 @@ public class TestHBase_1_1_2_ClientService {
service = new MockHBaseClientService(table, COL_FAM, kerberosPropsWithFile);
runner.addControllerService("hbaseClientService", service);
runner.setProperty(service, HBase_1_1_2_ClientService.ZOOKEEPER_QUORUM, "${zk-quorum}");
- runner.enableControllerService(service);
runner.assertNotValid(service);
runner.removeControllerService(service);
@@ -116,7 +114,6 @@ public class TestHBase_1_1_2_ClientService {
runner.addControllerService("hbaseClientService", service);
runner.setProperty(service, HBase_1_1_2_ClientService.ZOOKEEPER_QUORUM, "${zk-quorum}");
runner.setProperty(service, HBase_1_1_2_ClientService.ZOOKEEPER_CLIENT_PORT, "${zk-client-port}");
- runner.enableControllerService(service);
runner.assertNotValid(service);
runner.removeControllerService(service);
@@ -155,11 +152,9 @@ public class TestHBase_1_1_2_ClientService {
runner.disableControllerService(service);
runner.setProperty(service, HBase_1_1_2_ClientService.HADOOP_CONF_FILES,
"src/test/resources/hbase-site-security.xml, src/test/resources/core-site-security.xml");
- runner.enableControllerService(service);
runner.assertNotValid(service);
// Kerberos - add valid options
- runner.disableControllerService(service);
runner.setProperty(service, kerberosPropsWithFile.getKerberosKeytab(), "src/test/resources/fake.keytab");
runner.setProperty(service, kerberosPropsWithFile.getKerberosPrincipal(), "test@REALM");
runner.enableControllerService(service);
@@ -168,14 +163,11 @@ public class TestHBase_1_1_2_ClientService {
// Kerberos - add invalid non-existent keytab file
runner.disableControllerService(service);
runner.setProperty(service, kerberosPropsWithFile.getKerberosKeytab(), "src/test/resources/missing.keytab");
- runner.enableControllerService(service);
runner.assertNotValid(service);
// Kerberos - add invalid principal
- runner.disableControllerService(service);
runner.setProperty(service, kerberosPropsWithFile.getKerberosKeytab(), "src/test/resources/fake.keytab");
runner.setProperty(service, kerberosPropsWithFile.getKerberosPrincipal(), "");
- runner.enableControllerService(service);
runner.assertNotValid(service);
// Kerberos - valid props but the KerberosProperties has a null Kerberos config file so be invalid
@@ -185,7 +177,6 @@ public class TestHBase_1_1_2_ClientService {
"src/test/resources/hbase-site-security.xml, src/test/resources/core-site-security.xml");
runner.setProperty(service, kerberosPropsWithoutFile.getKerberosKeytab(), "src/test/resources/fake.keytab");
runner.setProperty(service, kerberosPropsWithoutFile.getKerberosPrincipal(), "test@REALM");
- runner.enableControllerService(service);
runner.assertNotValid(service);
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/xml/TestXMLRecordSetWriter.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/xml/TestXMLRecordSetWriter.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/xml/TestXMLRecordSetWriter.java
index 372e60d..8008f65 100755
--- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/xml/TestXMLRecordSetWriter.java
+++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/xml/TestXMLRecordSetWriter.java
@@ -174,6 +174,10 @@ public class TestXMLRecordSetWriter {
runner.setProperty(writer, XMLRecordSetWriter.RECORD_TAG_NAME, "record");
runner.setProperty(writer, XMLRecordSetWriter.ARRAY_WRAPPING, XMLRecordSetWriter.USE_PROPERTY_AS_WRAPPER);
+ runner.assertNotValid(writer);
+
+ runner.setProperty(writer, XMLRecordSetWriter.ARRAY_TAG_NAME, "array-tag-name");
+ runner.assertValid(writer);
runner.enableControllerService(writer);
runner.enqueue("");
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/groovy/org/apache/nifi/ssl/StandardSSLContextServiceTest.groovy
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/groovy/org/apache/nifi/ssl/StandardSSLContextServiceTest.groovy b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/groovy/org/apache/nifi/ssl/StandardSSLContextServiceTest.groovy
index 881eb02..6d2f7b2 100644
--- a/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/groovy/org/apache/nifi/ssl/StandardSSLContextServiceTest.groovy
+++ b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/groovy/org/apache/nifi/ssl/StandardSSLContextServiceTest.groovy
@@ -117,7 +117,7 @@ class StandardSSLContextServiceTest {
}
// Assert
- assert msg =~ "invalid because Cannot access file"
+ assert msg =~ "Cannot enable Controller Service SSLContextService.* because it is in an invalid state: 'Truststore Filename'.* is invalid because File.* does not exist or cannot be read";
runner.assertNotValid(sslContextService)
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/b2796243/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java
index fd0df1f..6cddc7d 100644
--- a/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java
+++ b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java
@@ -224,7 +224,7 @@ public class SSLContextServiceTest {
// Assert
// Have to exhaust the cached result by checking n-1 more times
- for (int i = 2; i <= sslContextService.getValidationCacheExpiration(); i++) {
+ for (int i = 2; i < sslContextService.getValidationCacheExpiration(); i++) {
validationResults = sslContextService.customValidate(validationContext);
assertTrue("validation results is not empty", validationResults.isEmpty());
logger.info("(" + i + ") StandardSSLContextService#customValidate() returned true even though the keystore file is no longer available");