package io.cattle.platform.app;
import io.cattle.iaas.healthcheck.service.impl.AgentHealthcheckHostLookup;
import io.cattle.iaas.healthcheck.service.impl.AgentHealthcheckInstancesLookup;
import io.cattle.iaas.healthcheck.service.impl.HealthcheckCleanupMonitorImpl;
import io.cattle.iaas.healthcheck.service.impl.HealthcheckServiceImpl;
import io.cattle.iaas.healthcheck.service.impl.HostHealthcheckHostLookup;
import io.cattle.iaas.healthcheck.service.impl.HostMapHealthcheckInstancesLookup;
import io.cattle.iaas.labels.service.impl.LabelsServiceImpl;
import io.cattle.platform.activity.ActivityService;
import io.cattle.platform.agent.impl.AgentLocatorImpl;
import io.cattle.platform.agent.instance.dao.impl.AgentInstanceDaoImpl;
import io.cattle.platform.agent.instance.factory.impl.AgentInstanceFactoryImpl;
import io.cattle.platform.agent.instance.link.process.AgentInstanceLinkActivate;
import io.cattle.platform.agent.instance.serialization.AgentInstanceAuthObjectPostProcessor;
import io.cattle.platform.agent.instance.service.AgentMetadataService;
import io.cattle.platform.api.formatter.DefaultIdFormatter;
import io.cattle.platform.async.retry.RetryTimeoutService;
import io.cattle.platform.async.retry.impl.RetryTimeoutServiceImpl;
import io.cattle.platform.configitem.version.dao.impl.ConfigItemStatusDaoImpl;
import io.cattle.platform.configitem.version.impl.ConfigItemStatusManagerImpl;
import io.cattle.platform.configitem.version.impl.ConfigUpdatePublisher;
import io.cattle.platform.core.cache.DBCacheManager;
import io.cattle.platform.core.cleanup.BadDataCleanup;
import io.cattle.platform.core.cleanup.TableCleanup;
import io.cattle.platform.docker.process.dao.impl.ComposeDaoImpl;
import io.cattle.platform.docker.service.impl.ComposeManagerImpl;
import io.cattle.platform.docker.storage.DockerImageCredentialLookup;
import io.cattle.platform.docker.storage.DockerStoragePoolDriver;
import io.cattle.platform.docker.storage.dao.impl.DockerStorageDaoImpl;
import io.cattle.platform.docker.storage.process.PullTaskCreate;
import io.cattle.platform.docker.transform.DockerTransformerImpl;
import io.cattle.platform.engine.eventing.impl.ProcessEventListenerImpl;
import io.cattle.platform.engine.manager.impl.DefaultProcessManager;
import io.cattle.platform.engine.manager.impl.ProcessRecordDao;
import io.cattle.platform.engine.manager.impl.jooq.JooqProcessRecordDao;
import io.cattle.platform.engine.server.ProcessServer;
import io.cattle.platform.engine.server.impl.ProcessInstanceDispatcherImpl;
import io.cattle.platform.engine.server.impl.ProcessReplayTask;
import io.cattle.platform.engine.server.impl.ProcessServerImpl;
import io.cattle.platform.eventing.annotation.AnnotatedListenerRegistration;
import io.cattle.platform.eventing.memory.InMemoryEventService;
import io.cattle.platform.extension.dynamic.DynamicExtensionHandler;
import io.cattle.platform.extension.dynamic.dao.impl.ExternalHandlerDaoImpl;
import io.cattle.platform.extension.dynamic.impl.ExternalDynamicExtensionHandlerImpl;
import io.cattle.platform.extension.impl.EMUtils;
import io.cattle.platform.extension.impl.ExtensionManagerImpl;
import io.cattle.platform.framework.encryption.EncryptionUtils;
import io.cattle.platform.framework.encryption.handler.impl.TransformationServiceImpl;
import io.cattle.platform.framework.encryption.impl.Aes256Encrypter;
import io.cattle.platform.framework.encryption.impl.Sha256Hasher;
import io.cattle.platform.framework.secret.SecretsService;
import io.cattle.platform.framework.secret.SecretsServiceImpl;
import io.cattle.platform.ha.monitor.dao.impl.PingInstancesMonitorDaoImpl;
import io.cattle.platform.ha.monitor.impl.PingInstancesMonitorImpl;
import io.cattle.platform.hazelcast.membership.DBDiscovery;
import io.cattle.platform.hazelcast.membership.dao.ClusterMembershipDAO;
import io.cattle.platform.hazelcast.membership.dao.impl.ClusterMembershipDAOImpl;
import io.cattle.platform.host.service.HostApiRSAKeyProvider;
import io.cattle.platform.host.service.impl.HostApiServiceImpl;
import io.cattle.platform.iaas.api.auditing.AuditServiceImpl;
import io.cattle.platform.iaas.api.auditing.dao.impl.AuditLogDaoImpl;
import io.cattle.platform.jmx.JmxPublisherFactory;
import io.cattle.platform.liquibase.Loader;
import io.cattle.platform.lock.impl.LockDelegatorImpl;
import io.cattle.platform.lock.impl.LockManagerImpl;
import io.cattle.platform.lock.provider.impl.InMemoryLockProvider;
import io.cattle.platform.metadata.dao.impl.MetadataDaoImpl;
import io.cattle.platform.metadata.service.impl.MetadataServiceImpl;
import io.cattle.platform.network.impl.NetworkServiceImpl;
import io.cattle.platform.object.ObjectDefaultsProvider;
import io.cattle.platform.object.defaults.JsonDefaultsProvider;
import io.cattle.platform.object.impl.DefaultObjectManager;
import io.cattle.platform.object.impl.TransactionDelegateImpl;
import io.cattle.platform.object.meta.TypeSet;
import io.cattle.platform.object.meta.impl.DefaultObjectMetaDataManager;
import io.cattle.platform.object.monitor.impl.ResourceMonitorImpl;
import io.cattle.platform.object.postinit.ObjectDataPostInstantiationHandler;
import io.cattle.platform.object.postinit.ObjectDefaultsPostInstantiationHandler;
import io.cattle.platform.object.postinit.SetPropertiesPostInstantiationHandler;
import io.cattle.platform.object.postinit.SpecialFieldsPostInstantiationHandler;
import io.cattle.platform.object.postinit.UUIDPostInstantiationHandler;
import io.cattle.platform.object.process.impl.DefaultObjectProcessManager;
import io.cattle.platform.object.process.impl.ObjectExecutionExceptionHandler;
import io.cattle.platform.object.purge.impl.PurgeMonitorImpl;
import io.cattle.platform.object.purge.impl.RemoveMonitorImpl;
import io.cattle.platform.object.serialization.impl.DefaultObjectSerializerFactoryImpl;
import io.cattle.platform.object.util.CommonsConverterStartup;
import io.cattle.platform.process.containerevent.ContainerEventCreate;
import io.cattle.platform.process.host.HostRemoveMonitorImpl;
import io.cattle.platform.process.monitor.EventNotificationChangeMonitor;
import io.cattle.platform.process.progress.ProcessProgressImpl;
import io.cattle.platform.register.dao.impl.RegisterDaoImpl;
import io.cattle.platform.resource.pool.impl.ResourcePoolManagerImpl;
import io.cattle.platform.resource.pool.mac.MacAddressGeneratorFactory;
import io.cattle.platform.resource.pool.mac.MacAddressPrefixGeneratorFactory;
import io.cattle.platform.resource.pool.port.EnvironmentPortGeneratorFactory;
import io.cattle.platform.resource.pool.port.HostPortGeneratorFactory;
import io.cattle.platform.resource.pool.subnet.SubnetAddressGeneratorFactory;
import io.cattle.platform.sample.data.SampleDataStartupV10;
import io.cattle.platform.sample.data.SampleDataStartupV11;
import io.cattle.platform.sample.data.SampleDataStartupV12;
import io.cattle.platform.sample.data.SampleDataStartupV13;
import io.cattle.platform.sample.data.SampleDataStartupV14;
import io.cattle.platform.sample.data.SampleDataStartupV3;
import io.cattle.platform.sample.data.SampleDataStartupV5;
import io.cattle.platform.sample.data.SampleDataStartupV6;
import io.cattle.platform.sample.data.SampleDataStartupV7;
import io.cattle.platform.sample.data.SampleDataStartupV8;
import io.cattle.platform.sample.data.SampleDataStartupV9;
import io.cattle.platform.service.launcher.ServiceAccountCreateStartup;
import io.cattle.platform.servicediscovery.dao.impl.ServiceConsumeMapDaoImpl;
import io.cattle.platform.servicediscovery.dao.impl.ServiceDaoImpl;
import io.cattle.platform.servicediscovery.dao.impl.ServiceExposeMapDaoImpl;
import io.cattle.platform.servicediscovery.deployment.impl.DeploymentManagerImpl;
import io.cattle.platform.servicediscovery.deployment.impl.planner.ServiceDeploymentPlannerFactoryImpl;
import io.cattle.platform.servicediscovery.deployment.impl.unit.DeploymentUnitInstanceFactoryImpl;
import io.cattle.platform.servicediscovery.service.impl.AgentServiceLookup;
import io.cattle.platform.servicediscovery.service.impl.GlobalHostActivateServiceLookup;
import io.cattle.platform.servicediscovery.service.impl.HostServiceLookup;
import io.cattle.platform.servicediscovery.service.impl.InstanceServiceLookup;
import io.cattle.platform.servicediscovery.service.impl.ServiceDiscoveryServiceImpl;
import io.cattle.platform.servicediscovery.service.impl.SkipServiceLookup;
import io.cattle.platform.servicediscovery.upgrade.impl.UpgradeManagerImpl;
import io.cattle.platform.spring.resource.SpringUrlListFactory;
import io.cattle.platform.storage.ImageCredentialLookup;
import io.cattle.platform.storage.service.dao.impl.ImageDaoImpl;
import io.cattle.platform.storage.service.impl.StorageServiceImpl;
import io.cattle.platform.storage.simulator.pool.SimulatorStoragePoolDriver;
import io.cattle.platform.storage.simulator.process.SimulatorPoolCreate;
import io.cattle.platform.systemstack.catalog.impl.CatalogServiceImpl;
import io.cattle.platform.systemstack.listener.SystemStackUpdate;
import io.cattle.platform.systemstack.service.ProjectTemplateService;
import io.cattle.platform.task.cleanup.CleanupTaskInstances;
import io.cattle.platform.task.dao.impl.TaskDaoImpl;
import io.cattle.platform.task.eventing.impl.TaskManagerEventListenerImpl;
import io.cattle.platform.task.impl.TaskManagerImpl;
import io.cattle.platform.token.impl.JwtTokenServiceImpl;
import io.github.ibuildthecloud.gdapi.factory.SchemaFactory;
import io.github.ibuildthecloud.gdapi.json.JacksonMapper;
import io.github.ibuildthecloud.gdapi.model.Transformer;
import io.github.ibuildthecloud.gdapi.util.TransformationService;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScans;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScans({
@ComponentScan("io.cattle.platform.core.dao.impl"),
@ComponentScan("io.cattle.iaas.healthcheck.process"),
@ComponentScan("io.cattle.platform.register.process"),
@ComponentScan("io.cattle.platform.agent.instance.process"),
@ComponentScan("io.cattle.platform.servicediscovery.process"),
@ComponentScan("io.cattle.platform.systemstack.process")
})
public class SystemServicesConfig {
@Bean
ActivityService activityService() {
return new ActivityService();
}
@Bean
AgentInstanceDaoImpl agentInstanceDaoImpl() {
return new AgentInstanceDaoImpl();
}
@Bean
AgentInstanceFactoryImpl AgentInstanceFactory() {
return new AgentInstanceFactoryImpl();
}
@Bean
AgentInstanceAuthObjectPostProcessor agentInstanceAuthObjectPostProcessor() {
return new AgentInstanceAuthObjectPostProcessor();
}
@Bean
AgentInstanceLinkActivate agentInstanceLinkActivate() {
return new AgentInstanceLinkActivate();
}
@Bean
AgentLocatorImpl AgentLocator() {
return new AgentLocatorImpl();
}
@Bean
DefaultIdFormatter DefaultIdFormatter(@Qualifier("CoreSchemaFactory") SchemaFactory factory) {
Map<String, String> mapping = new HashMap<>();
mapping.put("stack", "st");
mapping.put("secret", "se");
DefaultIdFormatter idF = new DefaultIdFormatter();
idF.setSchemaFactory(factory);
idF.setPlainTypes(new HashSet<>(Arrays.asList("typeDocumentation", "scripts")));
idF.setTypeMappings(mapping);
return idF;
}
@Bean
RetryTimeoutService RetryTimeoutService(@Qualifier("EventExecutorService") ExecutorService es) {
RetryTimeoutServiceImpl rts = new RetryTimeoutServiceImpl();
rts.setExecutorService(es);
return rts;
}
@Bean
TableCleanup DatabaseCleanupService() {
return new TableCleanup();
}
@Bean
BadDataCleanup BadDataCleanup() {
return new BadDataCleanup();
}
@Bean
Sha256Hasher sha256Hasher(ExtensionManagerImpl em) {
return EMUtils.add(em, Transformer.class, new Sha256Hasher(), "SHA256");
}
@Bean
Aes256Encrypter aes256Encrypter(ExtensionManagerImpl em) {
return EMUtils.add(em, Transformer.class, new Aes256Encrypter(), "AES256");
}
@SuppressWarnings("unchecked")
@Bean
TransformationService transformationService(ExtensionManagerImpl em) {
TransformationServiceImpl ts = new TransformationServiceImpl();
ts.setTransformers((Map<String, Transformer>)(Map<?, ?>)em.map("transformer"));
return ts;
}
@Bean
EncryptionUtils encryptionUtils() {
return new EncryptionUtils();
}
@Bean
ConfigUpdatePublisher configUpdatePublisher() {
return new ConfigUpdatePublisher();
}
@Bean
ConfigItemStatusManagerImpl configItemStatusManagerImpl() {
return new ConfigItemStatusManagerImpl();
}
@Bean
ConfigItemStatusDaoImpl configItemStatusDaoImpl() {
return new ConfigItemStatusDaoImpl();
}
@Bean
DBCacheManager dbCacheManager() {
return new DBCacheManager();
}
@Bean
DockerTransformerImpl dockerTransformerImpl() {
return new DockerTransformerImpl();
}
@Bean
ImageCredentialLookup dockerImageCredentialLookup(ExtensionManagerImpl em) {
return EMUtils.add(em, ImageCredentialLookup.class, new DockerImageCredentialLookup(), "DockerImageCredentialLookup");
}
@Bean
DockerStoragePoolDriver dockerStoragePoolDriver() {
return new DockerStoragePoolDriver();
}
@Bean
PullTaskCreate PullTaskCreate(ExtensionManagerImpl em) {
return new PullTaskCreate();
}
@Bean
DockerStorageDaoImpl DockerStorageDaoImpl() {
return new DockerStorageDaoImpl();
}
@Bean
InMemoryEventService EventService(@Qualifier("EventExecutorService") ExecutorService executorService) {
InMemoryEventService eventService = new InMemoryEventService();
eventService.setExecutorService(executorService);
return eventService;
}
@Bean
AnnotatedListenerRegistration AnnotatedListenerRegistration() {
return new AnnotatedListenerRegistration();
}
@Bean
ExternalDynamicExtensionHandlerImpl externalDynamicExtensionHandlerImpl(ExtensionManagerImpl em) {
ExternalDynamicExtensionHandlerImpl edeh = new ExternalDynamicExtensionHandlerImpl();
EMUtils.add(em, DynamicExtensionHandler.class, edeh);
return edeh;
}
@Bean
ExternalHandlerDaoImpl externalHandlerDaoImpl() {
return new ExternalHandlerDaoImpl();
}
@Bean
PingInstancesMonitorDaoImpl pingInstancesMonitorDaoImpl() {
return new PingInstancesMonitorDaoImpl();
}
@Bean
PingInstancesMonitorImpl pingInstancesMonitorImpl() {
return new PingInstancesMonitorImpl();
}
@Bean
HealthcheckServiceImpl healthcheckServiceImpl() {
return new HealthcheckServiceImpl();
}
@Bean
AgentHealthcheckHostLookup agentHealthcheckHostLookup() {
return new AgentHealthcheckHostLookup();
}
@Bean
HostHealthcheckHostLookup hostHealthcheckHostLookup() {
return new HostHealthcheckHostLookup();
}
@Bean
AgentHealthcheckInstancesLookup agentHealthcheckInstancesLookup() {
return new AgentHealthcheckInstancesLookup();
}
@Bean
HostMapHealthcheckInstancesLookup hostMapHealthcheckInstancesLookup() {
return new HostMapHealthcheckInstancesLookup();
}
@Bean
HealthcheckCleanupMonitorImpl healthcheckCleanupMonitorImpl() {
return new HealthcheckCleanupMonitorImpl();
}
@Bean
HostApiServiceImpl hostApiServiceImpl() {
return new HostApiServiceImpl();
}
@Bean
JwtTokenServiceImpl jwtTokenServiceImpl() {
return new JwtTokenServiceImpl();
}
@Bean
HostApiRSAKeyProvider hostApiRSAKeyProvider() {
return new HostApiRSAKeyProvider();
}
@Bean
TypeSet HostOnlyTypeSet(ExtensionManagerImpl em) {
TypeSet typeSet = new TypeSet("HostOnlyTypeSet");
typeSet.setTypeNames(Arrays.asList(
"hostOnlyNetwork,parent=network"
));
EMUtils.add(em, TypeSet.class, typeSet, "HostOnlyTypeSet");
return typeSet;
}
@Bean
SpringUrlListFactory JmxTransConfig() {
SpringUrlListFactory factory = new SpringUrlListFactory();
factory.setResources(Arrays.asList(
"classpath:jmxtrans.json",
"classpath*:jmxtrans/*.json",
"classpath:org/jmxtrans/embedded/config/jmxtrans-internals.json",
"classpath:org/jmxtrans/embedded/config/jvm-sun-hotspot.json"
));
return factory;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Bean
JmxPublisherFactory jmxPublisherFactory(@Qualifier("JmxTransConfig") List urls) {
JmxPublisherFactory factory = new JmxPublisherFactory();
factory.setResources(urls);
return factory;
}
@Bean
LabelsServiceImpl LabelsServiceImpl() {
return new LabelsServiceImpl();
}
@Bean
MetadataServiceImpl MetadataServiceImpl() {
return new MetadataServiceImpl();
}
@Bean
MetadataDaoImpl MetadataDaoImpl() {
return new MetadataDaoImpl();
}
@Bean
DefaultObjectMetaDataManager DefaultObjectMetaDataManager(ExtensionManagerImpl em) {
return new DefaultObjectMetaDataManager();
}
@Bean
DefaultObjectManager defaultObjectManager(@Qualifier("LockingJooqConfiguration") io.cattle.platform.db.jooq.config.Configuration config,
@Qualifier("CoreSchemaFactory") SchemaFactory schemaFactory) {
DefaultObjectManager om = new DefaultObjectManager();
om.setLockingConfiguration(config);
om.setSchemaFactory(schemaFactory);
return om;
}
@Bean
SpecialFieldsPostInstantiationHandler specialFieldsPostInstantiationHandler() {
return new SpecialFieldsPostInstantiationHandler();
}
@Bean
JsonDefaultsProvider jsonDefaultsProvider(@Qualifier("CoreSchemaFactory") SchemaFactory schemaFactory) {
io.cattle.platform.object.defaults.JsonDefaultsProvider provider = new JsonDefaultsProvider();
provider.setDefaultPath("schema/defaults");
provider.setDefaultOverridePath("schema/defaults/overrides");
provider.setSchemaFactory(schemaFactory);
return provider;
}
@Bean
ObjectDefaultsPostInstantiationHandler objectDefaultsPostInstantiationHandler(JsonDefaultsProvider provider) {
ObjectDefaultsPostInstantiationHandler handler = new ObjectDefaultsPostInstantiationHandler();
handler.setDefaultProviders(Arrays.asList((ObjectDefaultsProvider)provider));
return handler;
}
@Bean
ObjectDataPostInstantiationHandler ObjectDataPostInstantiationHandler() {
return new ObjectDataPostInstantiationHandler();
}
@Bean
SetPropertiesPostInstantiationHandler setPropertiesPostInstantiationHandler() {
return new SetPropertiesPostInstantiationHandler();
}
@Bean
UUIDPostInstantiationHandler UUIDPostInstantiationHandler() {
return new UUIDPostInstantiationHandler();
}
@Bean
DefaultObjectSerializerFactoryImpl DefaultObjectSerializerFactoryImpl() {
return new DefaultObjectSerializerFactoryImpl();
}
@Bean
CommonsConverterStartup CommonsConverterStartup() {
return new CommonsConverterStartup();
}
@Bean
TransactionDelegateImpl TransactionDelegateImpl() {
return new TransactionDelegateImpl();
}
@Bean
PurgeMonitorImpl PurgeMonitorImpl() {
return new PurgeMonitorImpl();
}
@Bean
RemoveMonitorImpl RemoveMonitorImpl() {
return new RemoveMonitorImpl();
}
@Bean
HostRemoveMonitorImpl EvacuateMonitorImpl() {
return new HostRemoveMonitorImpl();
}
@Bean
ProcessReplayTask ProcessReplayTask() {
return new ProcessReplayTask();
}
@Bean
ProcessEventListenerImpl ProcessEventListenerImpl() {
return new ProcessEventListenerImpl();
}
@Bean
ProcessRecordDao JooqProcessRecordDao() {
return new JooqProcessRecordDao();
}
@Bean
ClusterMembershipDAO ClusterMembershipDAO() {
return new ClusterMembershipDAOImpl();
}
@Bean
ProcessServer ProcessServer() {
return new ProcessServerImpl();
}
@Bean
ProcessInstanceDispatcherImpl ProcessInstanceDispatcherImpl() {
return new ProcessInstanceDispatcherImpl();
}
@Bean
DefaultProcessManager DefaultProcessManager(ExtensionManagerImpl em) {
return new DefaultProcessManager();
}
@Bean
ObjectExecutionExceptionHandler ObjectExecutionExceptionHandler() {
return new ObjectExecutionExceptionHandler();
}
@Bean
DefaultObjectProcessManager DefaultObjectProcessManager(@Qualifier("CoreSchemaFactory") SchemaFactory schemaFactory) {
DefaultObjectProcessManager manager = new DefaultObjectProcessManager();
manager.setSchemaFactory(schemaFactory);
return manager;
}
@Bean
RegisterDaoImpl RegisterDaoImpl() {
return new RegisterDaoImpl();
}
@Bean
TypeSet RegisterTypeSet(ExtensionManagerImpl em) {
TypeSet typeSet = new TypeSet("RegisterTypeSet");
typeSet.setTypeNames(Arrays.asList(
"register,parent=genericObject",
"registrationToken,parent=credential"
));
EMUtils.add(em, TypeSet.class, typeSet, "RegisterTypeSet");
return typeSet;
}
@Bean
ResourceMonitorImpl ResourceMonitorImpl() {
return new ResourceMonitorImpl();
}
@Bean
ResourcePoolManagerImpl ResourcePoolManagerImpl() {
return new ResourcePoolManagerImpl();
}
@Bean
SubnetAddressGeneratorFactory SubnetAddressGeneratorFactory() {
return new SubnetAddressGeneratorFactory();
}
@Bean
MacAddressPrefixGeneratorFactory MacAddressPrefixGeneratorFactory() {
return new MacAddressPrefixGeneratorFactory();
}
@Bean
MacAddressGeneratorFactory MacAddressGeneratorFactory() {
return new MacAddressGeneratorFactory();
}
@Bean
HostPortGeneratorFactory HostPortGeneratorFactory() {
return new HostPortGeneratorFactory();
}
@Bean
EnvironmentPortGeneratorFactory EnvironmentPortGeneratorFactory() {
return new EnvironmentPortGeneratorFactory();
}
@Bean
SampleDataStartupV3 SampleDataStartupV3() {
return new SampleDataStartupV3();
}
@Bean
SampleDataStartupV6 SampleDataStartupV6() {
return new SampleDataStartupV6();
}
@Bean
SampleDataStartupV5 SampleDataStartupV5() {
return new SampleDataStartupV5();
}
@Bean
SampleDataStartupV7 SampleDataStartupV7() {
return new SampleDataStartupV7();
}
@Bean
SampleDataStartupV8 SampleDataStartupV8() {
return new SampleDataStartupV8();
}
@Bean
SampleDataStartupV9 SampleDataStartupV9() {
return new SampleDataStartupV9();
}
@Bean
SampleDataStartupV10 SampleDataStartupV10() {
return new SampleDataStartupV10();
}
@Bean
SampleDataStartupV11 SampleDataStartupV11() {
return new SampleDataStartupV11();
}
@Bean
SampleDataStartupV12 SampleDataStartupV12() {
return new SampleDataStartupV12();
}
@Bean
SampleDataStartupV13 SampleDataStartupV13() {
return new SampleDataStartupV13();
}
@Bean
SampleDataStartupV14 SampleDataStartupV14() {
return new SampleDataStartupV14();
}
@Bean
ServiceConsumeMapDaoImpl ServiceConsumeMapDaoImpl() {
return new ServiceConsumeMapDaoImpl();
}
@Bean
ServiceExposeMapDaoImpl ServiceExposeMapDaoImpl(@Qualifier("LockingJooqConfiguration") io.cattle.platform.db.jooq.config.Configuration config) {
io.cattle.platform.servicediscovery.dao.impl.ServiceExposeMapDaoImpl dao = new ServiceExposeMapDaoImpl();
dao.setLockingConfiguration(config);
return dao;
}
@Bean
ServiceDaoImpl ServiceDaoImpl() {
return new ServiceDaoImpl();
}
@Bean
ServiceDiscoveryServiceImpl ServiceDiscoveryServiceImpl() {
return new ServiceDiscoveryServiceImpl();
}
@Bean
GlobalHostActivateServiceLookup GlobalHostActivateServiceLookup() {
return new GlobalHostActivateServiceLookup();
}
@Bean
HostServiceLookup HostServiceLookup() {
return new HostServiceLookup();
}
@Bean
InstanceServiceLookup InstanceServiceLookup() {
return new InstanceServiceLookup();
}
@Bean
SkipServiceLookup SkipServiceLookup() {
return new SkipServiceLookup();
}
@Bean
AgentServiceLookup AgentServiceLookup() {
return new AgentServiceLookup();
}
@Bean
DeploymentManagerImpl DeploymentManagerImpl() {
return new DeploymentManagerImpl();
}
@Bean
DeploymentUnitInstanceFactoryImpl DeploymentUnitInstanceFactoryImpl() {
return new DeploymentUnitInstanceFactoryImpl();
}
@Bean
ServiceDeploymentPlannerFactoryImpl ServiceDeploymentPlannerFactoryImpl() {
return new ServiceDeploymentPlannerFactoryImpl();
}
@Bean
UpgradeManagerImpl UpgradeManagerImpl() {
return new UpgradeManagerImpl();
}
@Bean
ProcessProgressImpl ProcessProgressImpl() {
return new ProcessProgressImpl();
}
@Bean
AuditServiceImpl AuditServiceImpl() {
return new AuditServiceImpl();
}
@Bean
AuditLogDaoImpl AuditLogDaoImpl() {
return new AuditLogDaoImpl();
}
@Bean
JacksonMapper JacksonMapper() {
return new JacksonMapper();
}
@Bean
StorageServiceImpl StorageServiceImpl(ExtensionManagerImpl em) {
return new StorageServiceImpl();
}
@Bean
ImageDaoImpl ImageDaoImpl() {
return new ImageDaoImpl();
}
@Bean
InMemoryLockProvider LockProvider() {
return new InMemoryLockProvider();
}
@Bean
LockManagerImpl LockManagerImpl(@Qualifier("LockProvider") io.cattle.platform.lock.provider.LockProvider provider) {
LockManagerImpl lock = new LockManagerImpl();
lock.setLockProvider(provider);
return lock;
}
@Bean
LockDelegatorImpl LockDelegatorImpl(@Qualifier("EventExecutorService") ExecutorService es) {
LockDelegatorImpl delegator = new LockDelegatorImpl();
delegator.setExecutorService(es);
return delegator;
}
@Bean
SystemStackUpdate SystemStackUpdate() {
return new SystemStackUpdate();
}
@Bean
CatalogServiceImpl CatalogServiceImpl() {
return new CatalogServiceImpl();
}
@Bean
ProjectTemplateService ProjectTemplateService() {
return new ProjectTemplateService();
}
@Bean
TaskManagerImpl TaskManagerImpl() {
return new TaskManagerImpl();
}
@Bean
TaskManagerEventListenerImpl TaskManagerEventListenerImpl() {
return new TaskManagerEventListenerImpl();
}
@Bean
TaskDaoImpl TaskDaoImpl() {
return new TaskDaoImpl();
}
@Bean
CleanupTaskInstances CleanupTaskInstances() {
return new CleanupTaskInstances();
}
@Bean
SimulatorStoragePoolDriver SimulatorStoragePoolDriver() {
return new SimulatorStoragePoolDriver();
}
@Bean
SimulatorPoolCreate SimulatorPoolCreate() {
return new SimulatorPoolCreate();
}
@Bean
ComposeDaoImpl ComposeDaoImpl() {
return new ComposeDaoImpl();
}
@Bean
ComposeManagerImpl ComposeManagerImpl() {
return new ComposeManagerImpl();
}
@Bean
ServiceAccountCreateStartup ServiceAccountCreateStartup() {
return new ServiceAccountCreateStartup();
}
@Bean
NetworkServiceImpl NetworkServiceImpl() {
return new NetworkServiceImpl();
}
@Bean
AgentMetadataService AgentMetadataService() {
return new AgentMetadataService();
}
@Bean
DBDiscovery DBDiscovery(Loader loader) {
return new DBDiscovery();
}
@Bean
ContainerEventCreate ContainerEventCreate() {
return new ContainerEventCreate();
}
@Bean
EventNotificationChangeMonitor EventNotificationChangeMonitor() {
return new EventNotificationChangeMonitor();
}
@Bean
SecretsService SecretsService() {
return new SecretsServiceImpl();
}
}