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="eventBus" class = "org.apache.cloudstack.framework.eventbus.EventBusBase" />
<bean id="userVmManager" class ="com.cloud.vm.UserVmManagerImpl" />
</beans> </beans>

View File

@ -23,7 +23,6 @@ import javax.ejb.Local;
import javax.naming.ConfigurationException; import javax.naming.ConfigurationException;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.agent.IAgentControl; import com.cloud.agent.IAgentControl;
import com.cloud.agent.api.Answer; 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;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
@Component
@Local(value = ServerResource.class) @Local(value = ServerResource.class)
public class BareMetalResourceBase implements ServerResource { public class BareMetalResourceBase implements ServerResource {
private static final Logger s_logger = Logger.getLogger(BareMetalResourceBase.class); 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 javax.naming.ConfigurationException;
import org.apache.log4j.Logger; 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.Answer;
import com.cloud.agent.api.StopAnswer; 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;
import com.cloud.vm.VirtualMachineProfile.Param; import com.cloud.vm.VirtualMachineProfile.Param;
@Component
@Primary
@Local(value={BareMetalVmManager.class, BareMetalVmService.class}) @Local(value={BareMetalVmManager.class, BareMetalVmService.class})
public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMetalVmManager, BareMetalVmService, Manager, public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMetalVmManager, BareMetalVmService, Manager,
StateListener<State, VirtualMachine.Event, VirtualMachine> { StateListener<State, VirtualMachine.Event, VirtualMachine> {

View File

@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
@ -453,7 +452,9 @@ public class ManagementServerImpl implements ManagementServer {
Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> params = new HashMap<String, Object>();
for(Adapter adapter : adapters.values()) { for(Adapter adapter : adapters.values()) {
try { 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; continue;
if(!adapter.configure(adapter.getClass().getSimpleName(), params)) { 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.cloudstack.engine.service.api.OrchestrationService;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.cloud.acl.ControlledEntity.ACLType; 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.UserVmDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
@Component
@Local(value = { UserVmManager.class, UserVmService.class }) @Local(value = { UserVmManager.class, UserVmService.class })
public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager { public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager {
private static final Logger s_logger = Logger private static final Logger s_logger = Logger