[ 
https://issues.apache.org/jira/browse/MINIFI-117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15596056#comment-15596056
 ] 

ASF GitHub Bot commented on MINIFI-117:
---------------------------------------

Github user JPercivall commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/45#discussion_r84527495
  
    --- Diff: 
minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ConnectionSchema.java
 ---
    @@ -60,30 +53,11 @@ public ConnectionSchema(Map map) {
             super(map, CONNECTIONS_KEY);
     
             sourceId = getOptionalKeyAsType(map, SOURCE_ID_KEY, String.class, 
CONNECTIONS_KEY, "");
    -        if (StringUtil.isNullOrEmpty(sourceId)) {
    -            sourceName = getRequiredKeyAsType(map, SOURCE_NAME_KEY, 
String.class, CONNECTIONS_KEY);
    -        }
    -
    -        String sourceRelationshipName = getOptionalKeyAsType(map, 
SOURCE_RELATIONSHIP_NAME_KEY, String.class, CONNECTIONS_KEY, null);
    -        if (StringUtil.isNullOrEmpty(sourceRelationshipName)) {
    -            sourceRelationshipNames = getOptionalKeyAsType(map, 
SOURCE_RELATIONSHIP_NAMES_KEY, List.class, CONNECTIONS_KEY, new ArrayList());
    -            if (sourceRelationshipNames.isEmpty()) {
    -                
addValidationIssue(getIssueText(SOURCE_RELATIONSHIP_NAMES_KEY, CONNECTIONS_KEY, 
"expected at least one relationship to be specified"));
    -            }
    -        } else {
    -            if (map.containsKey(SOURCE_RELATIONSHIP_NAMES_KEY)) {
    -                addValidationIssue("Only one of " + 
SOURCE_RELATIONSHIP_NAME_KEY + ", " + SOURCE_RELATIONSHIP_NAMES_KEY + " should 
be set per connection.  Found both on "
    -                        + (StringUtil.isNullOrEmpty(getName()) ? getId() : 
getName()));
    -                sourceRelationshipNames = getRequiredKeyAsType(map, 
SOURCE_RELATIONSHIP_NAMES_KEY, List.class, CONNECTIONS_KEY);
    -            } else {
    -                sourceRelationshipNames = new 
ArrayList<>(Arrays.asList(sourceRelationshipName));
    -            }
    +        sourceRelationshipNames = getOptionalKeyAsType(map, 
SOURCE_RELATIONSHIP_NAMES_KEY, List.class, CONNECTIONS_KEY, new ArrayList<>());
    +        if (sourceRelationshipNames.isEmpty()) {
    +            addValidationIssue("Expected at least one value in " + 
SOURCE_RELATIONSHIP_NAMES_KEY + " for " + CONNECTIONS_KEY + " " + getName());
             }
    -
             destinationId = getOptionalKeyAsType(map, DESTINATION_ID_KEY, 
String.class, CONNECTIONS_KEY, "");
    --- End diff --
    
    Same comment as on source, I think this should be "required".


> Maintainable Configuration Versioning
> -------------------------------------
>
>                 Key: MINIFI-117
>                 URL: https://issues.apache.org/jira/browse/MINIFI-117
>             Project: Apache NiFi MiNiFi
>          Issue Type: Bug
>            Reporter: Bryan Rosander
>            Assignee: Bryan Rosander
>
> In order to avoid a tangled web of if/else statements around every possible 
> permutation of config.yml and an equally complicated validation routine, we 
> need to utilize a versioning strategy that allows for specific parsing and 
> validation code for each version of the ConfigSchema.
> This will allow us to determine if a schema will be compatible with an older 
> MiNiFi instance more easily by validating the structure of the file at a 
> given version while still supporting an upconvert on read to the latest 
> ConfigSchema while parsing at runtime.
> It should also facilitate a deprecation strategy of removing older versions' 
> classes without needing to touch current implementation



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to