Repository: nifi-minifi Updated Branches: refs/heads/master 47cf2209e -> 8c47fb4a0
MINIFI-43 Fixing provenance instantiation and removing some default constructors to prevent same problem in other classes This closes #20 Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi/commit/8c47fb4a Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi/tree/8c47fb4a Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi/diff/8c47fb4a Branch: refs/heads/master Commit: 8c47fb4a0fe803b9ee3f3cacebe8d1d74c18e4e7 Parents: 47cf220 Author: Joseph Percivall <[email protected]> Authored: Mon Jun 27 12:52:58 2016 -0400 Committer: Joseph Percivall <[email protected]> Committed: Mon Jun 27 19:08:19 2016 -0400 ---------------------------------------------------------------------- .../bootstrap/util/schema/ConfigSchema.java | 6 +----- .../bootstrap/util/schema/ConnectionSchema.java | 3 --- .../util/schema/FlowControllerSchema.java | 3 --- .../bootstrap/util/schema/ProcessorSchema.java | 3 --- .../util/schema/ProvenanceReportingSchema.java | 3 --- .../util/schema/RemoteInputPortSchema.java | 3 --- .../schema/RemoteProcessingGroupSchema.java | 3 --- .../util/schema/SecurityPropertiesSchema.java | 16 +++++++------- .../util/schema/common/BaseSchema.java | 22 +++++++++++++------- .../src/test/resources/config-minimal.yml | 2 +- 10 files changed, 25 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConfigSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConfigSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConfigSchema.java index 6d3d7ca..5323675 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConfigSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConfigSchema.java @@ -52,11 +52,7 @@ public class ConfigSchema extends BaseSchema { private ProvenanceRepositorySchema provenanceRepositorySchema; - public ConfigSchema() { - } - public ConfigSchema(Map map) { - Object obj ; flowControllerProperties = getMapAsType(map, FLOW_CONTROLLER_PROPS_KEY, FlowControllerSchema.class, TOP_LEVEL_NAME, true); coreProperties = getMapAsType(map, CORE_PROPS_KEY, CorePropertiesSchema.class, TOP_LEVEL_NAME, false); @@ -81,7 +77,7 @@ public class ConfigSchema extends BaseSchema { transformListToType(remoteProcessingGroups, "remote processing group", RemoteProcessingGroupSchema.class, REMOTE_PROCESSING_GROUPS_KEY); } - provenanceReportingProperties = getMapAsType(map, PROVENANCE_REPORTING_KEY, ProvenanceReportingSchema.class, TOP_LEVEL_NAME, false); + provenanceReportingProperties = getMapAsType(map, PROVENANCE_REPORTING_KEY, ProvenanceReportingSchema.class, TOP_LEVEL_NAME, false, false); addIssuesIfNotNull(flowControllerProperties); addIssuesIfNotNull(coreProperties); http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConnectionSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConnectionSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConnectionSchema.java index f7024f8..9ae57d7 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConnectionSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ConnectionSchema.java @@ -44,9 +44,6 @@ public class ConnectionSchema extends BaseSchema { private String flowfileExpiration = "0 sec"; private String queuePrioritizerClass = ""; - public ConnectionSchema() { - } - public ConnectionSchema(Map map) { name = getRequiredKeyAsType(map, NAME_KEY, String.class, CONNECTIONS_KEY); sourceName = getRequiredKeyAsType(map, SOURCE_NAME_KEY, String.class, CONNECTIONS_KEY); http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/FlowControllerSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/FlowControllerSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/FlowControllerSchema.java index 1d7500a..7c04da0 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/FlowControllerSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/FlowControllerSchema.java @@ -32,9 +32,6 @@ public class FlowControllerSchema extends BaseSchema { private String name; private String comment = ""; - public FlowControllerSchema() { - } - public FlowControllerSchema(Map map) { name = getRequiredKeyAsType(map, NAME_KEY, String.class, FLOW_CONTROLLER_PROPS_KEY); http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProcessorSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProcessorSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProcessorSchema.java index bb86c8c..622e945 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProcessorSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProcessorSchema.java @@ -52,9 +52,6 @@ public class ProcessorSchema extends BaseSchema { private List<String> autoTerminatedRelationshipsList = Collections.emptyList(); private Map<String, Object> properties = Collections.emptyMap(); - public ProcessorSchema() { - } - public ProcessorSchema(Map map) { name = getRequiredKeyAsType(map, NAME_KEY, String.class, PROCESSORS_KEY); processorClass = getRequiredKeyAsType(map, CLASS_KEY, String.class, PROCESSORS_KEY); http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProvenanceReportingSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProvenanceReportingSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProvenanceReportingSchema.java index 8e98ffe..a260916 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProvenanceReportingSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/ProvenanceReportingSchema.java @@ -47,9 +47,6 @@ public class ProvenanceReportingSchema extends BaseSchema { private String timeout = "30 secs"; private Number batchSize = 1000; - public ProvenanceReportingSchema() { - } - public ProvenanceReportingSchema(Map map) { comment = getOptionalKeyAsType(map, COMMENT_KEY, String.class, PROVENANCE_REPORTING_KEY, null); http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteInputPortSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteInputPortSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteInputPortSchema.java index cfcb611..9b0cdc7 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteInputPortSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteInputPortSchema.java @@ -38,9 +38,6 @@ public class RemoteInputPortSchema extends BaseSchema { private Number maxConcurrentTasks = 1; private Boolean useCompression = true; - public RemoteInputPortSchema() { - } - public RemoteInputPortSchema(Map map) { id = getRequiredKeyAsType(map, ID_KEY, String.class, INPUT_PORTS_KEY); name = getRequiredKeyAsType(map, NAME_KEY, String.class, INPUT_PORTS_KEY); http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteProcessingGroupSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteProcessingGroupSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteProcessingGroupSchema.java index e69f023..7c32183 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteProcessingGroupSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/RemoteProcessingGroupSchema.java @@ -41,9 +41,6 @@ public class RemoteProcessingGroupSchema extends BaseSchema { private String yieldPeriod = "10 sec"; private List<RemoteInputPortSchema> inputPorts; - public RemoteProcessingGroupSchema() { - } - public RemoteProcessingGroupSchema(Map map) { name = getRequiredKeyAsType(map, NAME_KEY, String.class, REMOTE_PROCESSING_GROUPS_KEY); url = getRequiredKeyAsType(map, URL_KEY, String.class, REMOTE_PROCESSING_GROUPS_KEY); http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/SecurityPropertiesSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/SecurityPropertiesSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/SecurityPropertiesSchema.java index a303125..b6a47a3 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/SecurityPropertiesSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/SecurityPropertiesSchema.java @@ -37,14 +37,14 @@ public class SecurityPropertiesSchema extends BaseSchema { public static final String TRUSTSTORE_PASSWORD_KEY = "truststore password"; public static final String SSL_PROTOCOL_KEY = "ssl protocol"; - private String keystore; - private String keystoreType; - private String keystorePassword; - private String keyPassword; - private String truststore; - private String truststoreType; - private String truststorePassword; - private String sslProtocol; + private String keystore = ""; + private String keystoreType = ""; + private String keystorePassword = ""; + private String keyPassword = ""; + private String truststore = ""; + private String truststoreType = ""; + private String truststorePassword = ""; + private String sslProtocol = ""; private SensitivePropsSchema sensitiveProps; public SecurityPropertiesSchema() { http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/common/BaseSchema.java ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/common/BaseSchema.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/common/BaseSchema.java index a29be6d..ec670c4 100644 --- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/common/BaseSchema.java +++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/schema/common/BaseSchema.java @@ -91,27 +91,35 @@ public class BaseSchema { public <T> T getMapAsType(Map valueMap, String key, Class targetClass, String wrapperName, boolean required) { Object obj = valueMap.get(key); - return interpretValueAsType(obj, key, targetClass, wrapperName, required); + return interpretValueAsType(obj, key, targetClass, wrapperName, required, true); + } + + public <T> T getMapAsType(Map valueMap, String key, Class targetClass, String wrapperName, boolean required, boolean instantiateIfNull) { + Object obj = valueMap.get(key); + return interpretValueAsType(obj, key, targetClass, wrapperName, required, instantiateIfNull); } public void transformListToType(List list, String simpleListType, Class targetClass, String wrapperName){ for (int i = 0; i < list.size(); i++) { - Object obj = interpretValueAsType(list.get(i), simpleListType + " number " + i, targetClass, wrapperName, false); + Object obj = interpretValueAsType(list.get(i), simpleListType + " number " + i, targetClass, wrapperName, false, false); if (obj != null) { list.set(i, obj); } } } - private <T> T interpretValueAsType(Object obj, String key, Class targetClass, String wrapperName, boolean required) { + private <T> T interpretValueAsType(Object obj, String key, Class targetClass, String wrapperName, boolean required, boolean instantiateIfNull) { if (obj == null) { if (required){ addValidationIssue(key, wrapperName, "it is a required property but was not found"); } else { - try { - return (T) targetClass.newInstance(); - } catch (InstantiationException | IllegalAccessException e) { - addValidationIssue(key, wrapperName, "it is optional and when attempting to create it the following exception was thrown:" + e.getMessage()); + if(instantiateIfNull) { + try { + return (T) targetClass.newInstance(); + } catch (InstantiationException | IllegalAccessException e) { + addValidationIssue(key, wrapperName, "no value was given, and it is supposed to be created with default values as a default, and when attempting to create it the following " + + "exception was thrown:" + e.getMessage()); + } } } } else if (obj instanceof Map) { http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/8c47fb4a/minifi-bootstrap/src/test/resources/config-minimal.yml ---------------------------------------------------------------------- diff --git a/minifi-bootstrap/src/test/resources/config-minimal.yml b/minifi-bootstrap/src/test/resources/config-minimal.yml index 573fef6..4a5f885 100644 --- a/minifi-bootstrap/src/test/resources/config-minimal.yml +++ b/minifi-bootstrap/src/test/resources/config-minimal.yml @@ -16,7 +16,7 @@ Flow Controller: name: MiNiFi Flow -# When creating the Flow (not doing the transform) these processors will be invalid due to not having the necesary properties/auto-terminated relationships +# When running the Flow (not just doing the transform) these processors will be invalid due to not having the necesary properties/auto-terminated relationships Processors: - name: TailAppLog class: org.apache.nifi.processors.standard.TailFile
