in arthur-impl/src/main/java/org/apache/geronimo/arthur/impl/nativeimage/generator/ConfigurationGenerator.java [86:105]
public void run() {
// ensure to have a writtable instance (see Context#setProperty(String, String))
final HashMap<String, String> properties = ofNullable(this.extensionProperties).map(HashMap::new).orElseGet(HashMap::new);
properties.put("workingDirectory", workingDirectory.toAbsolutePath().toString());
final DefautContext context = new DefautContext(configuration, classFinder, methodFinder, fieldFinder, implementationFinder, properties);
for (final ArthurExtension extension : extensions) {
log.debug("Executing {}", extension);
context.setModified(false);
extension.execute(context);
if (context.isModified()) { // todo: loop while it modifies the context?
log.info("Extension {} updated build context", extension.getClass().getName());
}
}
try {
updateConfiguration(context);
} catch (final IOException e) {
throw new IllegalStateException(e);
}
}