Skip to content

Commit 724c68e

Browse files
royteeuwenRoy Teeuwen
andauthored
Allow whitespaces (including newlines) in your configuration (#34)
This closes #33. Co-authored-by: Roy Teeuwen <[email protected]>
1 parent 96a3d3e commit 724c68e

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

aem-classification-validator/src/main/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactory.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,12 @@ public Validator createValidator(@NotNull ValidationContext context, @NotNull Va
7272
optionWhitelistedResourcePaths = settings.getOptions().get(OPTION_WHITELISTED_RESOURCE_PATH_PATTERNS);
7373
}
7474

75-
Collection<String> whitelistedResourcePaths =
76-
Optional.ofNullable(optionWhitelistedResourcePaths).map(op -> Arrays.asList(op.split(","))).orElse(Collections.emptyList());
75+
Collection<String> whitelistedResourcePaths =
76+
Optional.ofNullable(optionWhitelistedResourcePaths)
77+
.map(op -> Arrays.stream(op.split(","))
78+
.map(String::trim)
79+
.collect(Collectors.toList()))
80+
.orElse(Collections.emptyList());
7781

7882
try {
7983
whitelistedResourcePaths.stream().forEach(AemClassificationValidatorFactory::validateResourcePathPattern);
@@ -116,7 +120,7 @@ public int getServiceRanking() {
116120
static Map<ContentClassification, ValidationMessageSeverity> getSeverityPerClassification(@Nullable String option) {
117121
final Map<ContentClassification, ValidationMessageSeverity> severitiesPerClassification;
118122
return Optional.ofNullable(option)
119-
.map(op -> Arrays.asList(op.split(",")))
123+
.map(op -> Arrays.stream(op.split(",")).map(String::trim).collect(Collectors.toList()))
120124
.map(AemClassificationValidatorFactory::parseSeverityClassification)
121125
.orElse(Collections.emptyMap());
122126
}

aem-classification-validator/src/test/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactoryTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,32 +87,34 @@ void testCreateValidator() {
8787
Map<String, String> options = new HashMap<>();
8888
options.put("maps", "tccl:valid-classification.map");
8989
// deprecated option for whitelisting
90-
options.put("whitelistedResourcePathsPatterns", "/resourceType1/.*,/resourceType2");
91-
options.put("severitiesPerClassification", "INTERNAL=DEBUG");
90+
options.put("whitelistedResourcePathsPatterns", "/resourceType1/.*,/resourceType2,\n/resourceType3");
91+
options.put("severitiesPerClassification", "INTERNAL=DEBUG,\nINTERNAL_DEPRECATED=INFO");
9292
ValidatorSettings settings = new ValidatorSettingsImpl(false, ValidationMessageSeverity.WARN, options);
9393
MutableContentClassificationMap map = new MutableContentClassificationMapImpl("Simple");
9494
map.put("/test", ContentClassification.INTERNAL_DEPRECATED, "Deprecated");
9595
Collection<String> whiteListedResourceTypes = new LinkedList<>();
9696
whiteListedResourceTypes.add("/resourceType1/.*");
9797
whiteListedResourceTypes.add("/resourceType2");
98+
whiteListedResourceTypes.add("/resourceType3");
9899
Map<ContentClassification, ValidationMessageSeverity> severitiesPerClassification = new HashMap<>();
99100
severitiesPerClassification.put(ContentClassification.INTERNAL, ValidationMessageSeverity.DEBUG);
101+
severitiesPerClassification.put(ContentClassification.INTERNAL_DEPRECATED, ValidationMessageSeverity.INFO);
100102
AemClassificationValidator expectedValidator = new AemClassificationValidator(ValidationMessageSeverity.WARN, new CompositeContentClassificationMap(map), whiteListedResourceTypes, severitiesPerClassification);
101103
Assertions.assertEquals(expectedValidator, factory.createValidator(null, settings));
102104

103105
options = new HashMap<>();
104106
options.put("maps", "tccl:valid-classification.map");
105107
// new option for whitelisting
106-
options.put("whitelistedResourcePathPatterns", "/resourceType1/.*,/resourceType2");
107-
options.put("severitiesPerClassification", "INTERNAL=DEBUG");
108+
options.put("whitelistedResourcePathPatterns", "/resourceType1/.*,/resourceType2,\n/resourceType3");
109+
options.put("severitiesPerClassification", "INTERNAL=DEBUG,\nINTERNAL_DEPRECATED=INFO");
108110
settings = new ValidatorSettingsImpl(false, ValidationMessageSeverity.WARN, options);
109111
Assertions.assertEquals(expectedValidator, factory.createValidator(null, settings));
110112

111113
// test with multiple validation maps including whitespaces in the maps string
112114
options = new HashMap<>();
113115
options.put("maps", "tccl:valid-classification.map,tccl:empty-map-1.map,\n \t tccl:empty-map-2.map");
114-
options.put("whitelistedResourcePathPatterns", "/resourceType1/.*,/resourceType2");
115-
options.put("severitiesPerClassification", "INTERNAL=DEBUG");
116+
options.put("whitelistedResourcePathPatterns", "/resourceType1/.*,/resourceType2,\n/resourceType3");
117+
options.put("severitiesPerClassification", "INTERNAL=DEBUG,\nINTERNAL_DEPRECATED=INFO");
116118
settings = new ValidatorSettingsImpl(false, ValidationMessageSeverity.WARN, options);
117119
ContentClassificationMap emptyMap = new ContentClassificationMapImpl("");
118120
expectedValidator = new AemClassificationValidator(ValidationMessageSeverity.WARN, new CompositeContentClassificationMap(map, emptyMap, emptyMap), whiteListedResourceTypes, severitiesPerClassification);

0 commit comments

Comments
 (0)