diff --git a/aem-classification-validator/src/main/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactory.java b/aem-classification-validator/src/main/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactory.java index 3000017..b426fae 100644 --- a/aem-classification-validator/src/main/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactory.java +++ b/aem-classification-validator/src/main/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactory.java @@ -72,8 +72,12 @@ public Validator createValidator(@NotNull ValidationContext context, @NotNull Va optionWhitelistedResourcePaths = settings.getOptions().get(OPTION_WHITELISTED_RESOURCE_PATH_PATTERNS); } - Collection whitelistedResourcePaths = - Optional.ofNullable(optionWhitelistedResourcePaths).map(op -> Arrays.asList(op.split(","))).orElse(Collections.emptyList()); + Collection whitelistedResourcePaths = + Optional.ofNullable(optionWhitelistedResourcePaths) + .map(op -> Arrays.stream(op.split(",")) + .map(String::trim) + .collect(Collectors.toList())) + .orElse(Collections.emptyList()); try { whitelistedResourcePaths.stream().forEach(AemClassificationValidatorFactory::validateResourcePathPattern); @@ -116,7 +120,7 @@ public int getServiceRanking() { static Map getSeverityPerClassification(@Nullable String option) { final Map severitiesPerClassification; return Optional.ofNullable(option) - .map(op -> Arrays.asList(op.split(","))) + .map(op -> Arrays.stream(op.split(",")).map(String::trim).collect(Collectors.toList())) .map(AemClassificationValidatorFactory::parseSeverityClassification) .orElse(Collections.emptyMap()); } diff --git a/aem-classification-validator/src/test/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactoryTest.java b/aem-classification-validator/src/test/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactoryTest.java index eb7ed76..4afeb47 100644 --- a/aem-classification-validator/src/test/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactoryTest.java +++ b/aem-classification-validator/src/test/java/biz/netcentric/filevault/validator/aem/classification/AemClassificationValidatorFactoryTest.java @@ -87,32 +87,34 @@ void testCreateValidator() { Map options = new HashMap<>(); options.put("maps", "tccl:valid-classification.map"); // deprecated option for whitelisting - options.put("whitelistedResourcePathsPatterns", "/resourceType1/.*,/resourceType2"); - options.put("severitiesPerClassification", "INTERNAL=DEBUG"); + options.put("whitelistedResourcePathsPatterns", "/resourceType1/.*,/resourceType2,\n/resourceType3"); + options.put("severitiesPerClassification", "INTERNAL=DEBUG,\nINTERNAL_DEPRECATED=INFO"); ValidatorSettings settings = new ValidatorSettingsImpl(false, ValidationMessageSeverity.WARN, options); MutableContentClassificationMap map = new MutableContentClassificationMapImpl("Simple"); map.put("/test", ContentClassification.INTERNAL_DEPRECATED, "Deprecated"); Collection whiteListedResourceTypes = new LinkedList<>(); whiteListedResourceTypes.add("/resourceType1/.*"); whiteListedResourceTypes.add("/resourceType2"); + whiteListedResourceTypes.add("/resourceType3"); Map severitiesPerClassification = new HashMap<>(); severitiesPerClassification.put(ContentClassification.INTERNAL, ValidationMessageSeverity.DEBUG); + severitiesPerClassification.put(ContentClassification.INTERNAL_DEPRECATED, ValidationMessageSeverity.INFO); AemClassificationValidator expectedValidator = new AemClassificationValidator(ValidationMessageSeverity.WARN, new CompositeContentClassificationMap(map), whiteListedResourceTypes, severitiesPerClassification); Assertions.assertEquals(expectedValidator, factory.createValidator(null, settings)); options = new HashMap<>(); options.put("maps", "tccl:valid-classification.map"); // new option for whitelisting - options.put("whitelistedResourcePathPatterns", "/resourceType1/.*,/resourceType2"); - options.put("severitiesPerClassification", "INTERNAL=DEBUG"); + options.put("whitelistedResourcePathPatterns", "/resourceType1/.*,/resourceType2,\n/resourceType3"); + options.put("severitiesPerClassification", "INTERNAL=DEBUG,\nINTERNAL_DEPRECATED=INFO"); settings = new ValidatorSettingsImpl(false, ValidationMessageSeverity.WARN, options); Assertions.assertEquals(expectedValidator, factory.createValidator(null, settings)); // test with multiple validation maps including whitespaces in the maps string options = new HashMap<>(); options.put("maps", "tccl:valid-classification.map,tccl:empty-map-1.map,\n \t tccl:empty-map-2.map"); - options.put("whitelistedResourcePathPatterns", "/resourceType1/.*,/resourceType2"); - options.put("severitiesPerClassification", "INTERNAL=DEBUG"); + options.put("whitelistedResourcePathPatterns", "/resourceType1/.*,/resourceType2,\n/resourceType3"); + options.put("severitiesPerClassification", "INTERNAL=DEBUG,\nINTERNAL_DEPRECATED=INFO"); settings = new ValidatorSettingsImpl(false, ValidationMessageSeverity.WARN, options); ContentClassificationMap emptyMap = new ContentClassificationMapImpl(""); expectedValidator = new AemClassificationValidator(ValidationMessageSeverity.WARN, new CompositeContentClassificationMap(map, emptyMap, emptyMap), whiteListedResourceTypes, severitiesPerClassification);