in knights/openwebbeans-knight/src/main/java/org/apache/geronimo/arthur/knight/openwebbeans/OpenWebBeansExtension.java [423:458]
private Properties initProperties(final Context context, final OpenWebBeansConfiguration configuration,
final String beanClassesList) {
try {
final Field field = OpenWebBeansConfiguration.class.getDeclaredField("configProperties");
field.setAccessible(true);
final Properties properties = Properties.class.cast(field.get(configuration));
enrichProperties(properties, true);
if (!Boolean.parseBoolean(context.getProperty("extension.openwebbeans.services.ignoreScannerService"))) {
properties.put("org.apache.webbeans.spi.ScannerService", "org.apache.openwebbeans.se.PreScannedCDISeScannerService");
}
properties.putIfAbsent("org.apache.openwebbeans.se.PreScannedCDISeScannerService.classes",
properties.getProperty("org.apache.openwebbeans.se.PreScannedCDISeScannerService.classesTemplate", "${classes}")
.replace("${classes}", beanClassesList));
if (!Boolean.parseBoolean(properties.getProperty("extension.openwebbeans.runtime.properties.skipOptimizations"))) {
properties.putIfAbsent("org.apache.webbeans.spi.deployer.skipValidations", "true");
properties.putIfAbsent("org.apache.webbeans.spi.deployer.skipVetoedOnPackages", "true");
}
final Predicate<String> droppedProperties = context.createPredicate("extension.openwebbeans.container.se.properties.runtime.excludes", EQUALS)
.orElseGet(() -> asList("configuration.ordinal", "org.apache.webbeans.lifecycle.standalone.fireApplicationScopeEvents")::contains);
properties.stringPropertyNames().stream().filter(droppedProperties).forEach(properties::remove);
final StringWriter writer = new StringWriter();
try (final StringWriter w = writer) {
properties.store(w, "Generated by Geronimo Arthur");
}
final Path workDir = Paths.get(requireNonNull(context.getProperty("workingDirectory"), "workingDirectory property"));
context.addNativeImageOption("-H:OpenWebBeansProperties=" +
dump(workDir, "openwebbeans.properties", writer.toString().replaceAll("(?m)^#.*", "")));
return properties;
} catch (final Exception e) {
throw new IllegalStateException("Incompatible OWB version", e);
}
}