in src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java [208:245]
public void addRepoinitExtention(@NotNull String source, @Nullable String repoInitText, @Nullable String runMode, @NotNull FeaturesManager featuresManager)
throws IOException, ConverterException {
if (repoInitText == null || repoInitText.trim().isEmpty()) {
return;
}
if ("seed".equalsIgnoreCase(runMode)) {
try {
List<Operation> ops = new RepoInitParserService().parse(new StringReader(repoInitText));
for (Operation op : ops) {
op.accept(new NoOpVisitor() {
@Override
public void visitCreateServiceUser(CreateServiceUser createServiceUser) {
recordSystemUserIds(createServiceUser.getUsername());
}
});
}
} catch (RepoInitParsingException e) {
throw new ConverterException(e.getMessage(), e);
}
return;
}
try (Formatter formatter = new Formatter()) {
if (enforcePrincipalBased() || alwaysForceSystemUserPath) {
List<Operation> ops = new RepoInitParserService().parse(new StringReader(repoInitText));
processor.apply(ops, formatter,this);
} else {
formatter.format("%s", repoInitText);
}
String text = formatter.toString().trim();
if (!text.isEmpty()) {
featuresManager.addOrAppendRepoInitExtension(source, text, runMode);
}
} catch (RepoInitParsingException e) {
throw new ConverterException(e.getMessage(), e);
}
}