package io.cattle.platform.configitem.server.model.impl;
import io.cattle.platform.configitem.context.impl.ServiceMetadataInfoFactory;
import io.cattle.platform.configitem.registry.ConfigItemRegistry;
import io.cattle.platform.configitem.server.model.ConfigItem;
import io.cattle.platform.configitem.server.model.ConfigItemFactory;
import io.cattle.platform.configitem.version.ConfigItemStatusManager;
import io.cattle.platform.configitem.version.dao.ConfigItemStatusDao;
import io.cattle.platform.object.ObjectManager;
import io.cattle.platform.util.type.InitializationTask;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
import javax.inject.Inject;
public class MetadataConfigItemFactory implements ConfigItemFactory, InitializationTask {
@Inject
ServiceMetadataInfoFactory factory;
@Inject
ObjectManager objectManager;
@Inject
ConfigItemStatusManager versionManager;
@Inject
ConfigItemStatusDao statusDao;
@Inject
ConfigItemRegistry itemRegistry;
@Override
public Collection<ConfigItem> getConfigItems() throws IOException {
return Arrays.<ConfigItem>asList(new MetadataConfigItem(objectManager, factory, versionManager, itemRegistry));
}
@Override
public void start() {
MetadataConfigItem item;
try {
item = new MetadataConfigItem(objectManager, factory, versionManager, itemRegistry);
} catch (IOException e) {
throw new IllegalStateException("Reseting metadata config item", e);
}
statusDao.reset(item.getName(), item.getSourceRevision());
}
}