package org.zstack.storage.backup; import org.springframework.beans.factory.annotation.Autowire; import org.springframework.beans.factory.annotation.Configurable; import org.zstack.core.workflow.FlowChainBuilder; import org.zstack.header.Component; import org.zstack.header.storage.backup.BackupStorageAllocatorStrategy; import org.zstack.header.storage.backup.BackupStorageAllocatorStrategyFactory; import org.zstack.header.storage.backup.BackupStorageAllocatorStrategyType; import org.zstack.header.storage.backup.BackupStorageConstant; import java.util.List; /** */ @Configurable(preConstruction = true, autowire = Autowire.BY_TYPE) public class DefaultBackupStorageAllocatorStrategyFactory implements BackupStorageAllocatorStrategyFactory, Component { private List<String> allocatorFlowNames; private FlowChainBuilder builder = new FlowChainBuilder(); public void setAllocatorFlowNames(List<String> allocatorFlowNames) { this.allocatorFlowNames = allocatorFlowNames; } @Override public BackupStorageAllocatorStrategyType getType() { return BackupStorageConstant.DEFAULT_ALLOCATOR_STRATEGY_TYPE; } @Override public BackupStorageAllocatorStrategy getAllocatorStrategy() { return new DefaultBackupStorageAllocatorStrategy(builder.build()); } @Override public boolean start() { builder.setFlowClassNames(allocatorFlowNames).construct(); return true; } @Override public boolean stop() { return true; } }