@Bean ArchaiusStartup ArchaiusStartup(ExtensionManagerImpl em, @Qualifier("GlobalProperties") Properties props, DataSourceFactory dsf, RefreshableFixedDelayPollingScheduler scheduler) { ArchaiusStartup.setGlobalDefaults(props); ArchaiusStartup startup = new ArchaiusStartup(); startup.setExtensionManager(em); startup.setDataSourceFactory(dsf); startup.setSchedulers(Arrays.asList(scheduler)); EMUtils.addConfig(em, new DefaultTransformedEnvironmentProperties(), "DefaultEnvironmentConfig"); EMUtils.addConfig(em, new TransformedEnvironmentProperties(), "EnvironmentConfig"); EMUtils.addConfig(em, new NamedSystemConfiguration(), "SystemConfig"); AbstractConfiguration localFileConfig = OptionalPropertiesConfigurationFactory.getConfiguration("cattle-local.properties"); EMUtils.addConfig(em, localFileConfig, "CattleLocalFileConfig"); NamedDynamicConfiguration dbConfig = new NamedDynamicConfiguration(new LazyJDBCSource(), scheduler); dbConfig.setSourceName("Database"); EMUtils.addConfig(em, dbConfig, "DatabaseConfig"); AbstractConfiguration cattleFileConfig = OptionalPropertiesConfigurationFactory.getConfiguration("cattle.properties"); EMUtils.addConfig(em, cattleFileConfig, "CattleFileConfig"); AbstractConfiguration cattleOverrideFileConfig = OptionalPropertiesConfigurationFactory.getConfiguration("cattle-override.properties"); EMUtils.addConfig(em, cattleOverrideFileConfig, "CattleOverrideFileConfig"); AbstractConfiguration cattleGlobalFileConfig = OptionalPropertiesConfigurationFactory.getConfiguration("cattle-global.properties"); EMUtils.addConfig(em, cattleGlobalFileConfig, "CattleGlobalFileConfig"); NamedMapConfiguration defaultsConfig = new NamedMapConfiguration(props); defaultsConfig.setSourceName("Code Packaged Defaults"); EMUtils.addConfig(em, defaultsConfig, "DefaultsConfig"); startup.init(); em.start(); startup.start(); return startup; }