private List<File> getAllPossibleExternalConfigDirFilenames(final File configDirectory, final List<String> profiles) {
val applicationName = casConfigurationPropertiesEnvironmentManager.getApplicationName();
val appNameLowerCase = applicationName.toLowerCase();
val fileNames = CollectionUtils.wrapList("application", appNameLowerCase, applicationName)
.stream()
.distinct()
.flatMap(appName -> EXTENSIONS
.stream()
.map(ext -> new File(configDirectory, String.format("%s.%s", appName, ext))))
.collect(Collectors.toList());
fileNames.addAll(profiles
.stream()
.flatMap(profile -> EXTENSIONS
.stream()
.flatMap(ext -> PROFILE_PATTERNS
.stream().map(pattern -> new File(configDirectory, String.format(pattern, profile, ext))))).collect(Collectors.toList()));
fileNames.add(new File(configDirectory, appNameLowerCase.concat(".groovy")));
return fileNames;
}