public Impl()

in winegrower-core/src/main/java/org/apache/winegrower/Ripener.java [320:361]


        public Impl(final Configuration configuration) {
            this.configuration = configuration;

            final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
            if (configuration.isUseLifecycleCallbacks()) {
                final List<LifecycleCallbacks> callbacks = StreamSupport.stream(
                        ServiceLoader.load(LifecycleCallbacks.class, contextClassLoader).spliterator(), false)
                        .sorted(comparing(LifecycleCallbacks::order))
                        .collect(toList());
                if (configuration.getLifecycleCallbacks() == null) {
                    configuration.setLifecycleCallbacks(callbacks);
                } else {
                    configuration.setLifecycleCallbacks(Stream.concat(
                            configuration.getLifecycleCallbacks().stream(),
                            callbacks.stream()).sorted(comparing(LifecycleCallbacks::order))
                            .collect(toList()));
                }
            } else if (configuration.getLifecycleCallbacks() == null) {
                configuration.setLifecycleCallbacks(emptyList());
            }
            runCallbacks(LifecycleCallbacks::processConfiguration, configuration);

            final Collection<ConfigurationListener> configurationListeners = new ArrayList<>();
            final Collection<DefaultEventAdmin.EventHandlerInstance> eventListeners = new ArrayList<>();
            this.services = new OSGiServices(this, configurationListeners, eventListeners);
            this.registry = new BundleRegistry(services, configuration);

            try (final InputStream stream = contextClassLoader.getResourceAsStream("winegrower.properties")) {
                loadConfiguration(stream);
            } catch (final IOException e) {
                LOGGER.warn(e.getMessage());
            }

            this.configurationAdmin = loadConfigurationAdmin(configurationListeners);
            this.eventAdmin = loadEventAdmin(eventListeners);
            registerBuiltInService(ConfigurationAdmin.class, this.configurationAdmin, new Hashtable<>());
            registerBuiltInService(EventAdmin.class, this.eventAdmin, new Hashtable<>());
            registerBuiltInService(org.osgi.service.log.LoggerFactory.class, loadLoggerFactory(), new Hashtable<>());
            if (DefaultConfigurationAdmin.class.isInstance(configurationAdmin)) {
                DefaultConfigurationAdmin.class.cast(configurationAdmin).preload(configuration.getDefaultConfigurationAdminPids());
            }
        }