private Properties initProperties()

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);
        }
    }