Fix startup sequence for classes that have due Manager/Adapter interfaces

This commit is contained in:
Kelven Yang 2013-01-08 18:42:12 -08:00
parent b274c570f9
commit cc23a23324
5 changed files with 6 additions and 9 deletions

View File

@ -58,4 +58,6 @@
<bean id="eventBus" class = "org.apache.cloudstack.framework.eventbus.EventBusBase" />
<bean id="userVmManager" class ="com.cloud.vm.UserVmManagerImpl" />
</beans>

View File

@ -23,7 +23,6 @@ import javax.ejb.Local;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.agent.IAgentControl;
import com.cloud.agent.api.Answer;
@ -66,7 +65,6 @@ import com.cloud.utils.script.Script2.ParamType;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.State;
@Component
@Local(value = ServerResource.class)
public class BareMetalResourceBase implements ServerResource {
private static final Logger s_logger = Logger.getLogger(BareMetalResourceBase.class);

View File

@ -28,8 +28,6 @@ import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.StopAnswer;
@ -104,8 +102,6 @@ import com.cloud.vm.VirtualMachineName;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.VirtualMachineProfile.Param;
@Component
@Primary
@Local(value={BareMetalVmManager.class, BareMetalVmService.class})
public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMetalVmManager, BareMetalVmService, Manager,
StateListener<State, VirtualMachine.Event, VirtualMachine> {

View File

@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.Comparator;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@ -453,7 +452,9 @@ public class ManagementServerImpl implements ManagementServer {
Map<String, Object> params = new HashMap<String, Object>();
for(Adapter adapter : adapters.values()) {
try {
if(!ComponentContext.isPrimary(adapter, Adapter.class))
// we also skip Adapter class that is both a manager class and a adapter class
if(!ComponentContext.isPrimary(adapter, Adapter.class) ||
Manager.class.isAssignableFrom(ComponentContext.getTargetClass(adapter)))
continue;
if(!adapter.configure(adapter.getClass().getSimpleName(), params)) {

View File

@ -36,6 +36,7 @@ import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
import org.apache.cloudstack.engine.service.api.OrchestrationService;
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import com.cloud.acl.ControlledEntity.ACLType;
@ -239,7 +240,6 @@ import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao;
import com.cloud.vm.dao.VMInstanceDao;
@Component
@Local(value = { UserVmManager.class, UserVmService.class })
public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager {
private static final Logger s_logger = Logger