Skip to content

Commit

Permalink
vdsbroker: refactoring: Remove ResourceManager#getInstance()
Browse files Browse the repository at this point in the history
Removed last usages of the deprecated ResourceManager#getInstance() method.
Where impossible to use CDI field injection (mostly usages reachable from
constructors), manual lookup from the CDI context (using Injector#get())
was preferred.

Change-Id: I7a0fc848ceb0f76a877b9834ce24cd7fad4eab72
Signed-off-by: Martin Betak <mbetak@redhat.com>
  • Loading branch information
matobet committed Jul 4, 2017
1 parent e2aad59 commit 81a2d4b
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
@Singleton
public class ResourceManager implements BackendService {

private static ResourceManager instance;
private final Map<Guid, HashSet<Guid>> vdsAndVmsList = new ConcurrentHashMap<>();
private final Map<Guid, VdsManager> vdsManagersDict = new ConcurrentHashMap<>();
private final Set<Guid> asyncRunningVms =
Expand Down Expand Up @@ -100,24 +99,8 @@ private ResourceManager() {
this.parallelism = Config.getValue(ConfigValues.EventProcessingPoolSize);
}

/**
* TODO remove this after moving all places to use CDI.
* kept for backward compatibility.
*/
@Deprecated
public static ResourceManager getInstance() {
return instance;
}

private static void setInstance(ResourceManager manager) {
instance = manager;
}

@PostConstruct
private void init() {
// init the singleton. TODO remove once all code is using CDI
setInstance(this);

log.info("Start initializing {}", getClass().getSimpleName());
populateVdsAndVmsList();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
package org.ovirt.engine.core.vdsbroker;

import javax.annotation.PostConstruct;

import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;

public abstract class VdsIdVDSCommandBase<P extends VdsIdVDSCommandParametersBase> extends VDSCommandBase<P> {

private final boolean newHost;

protected VdsManager _vdsManager;

public VdsIdVDSCommandBase(P parameters, boolean newHost) {
super(parameters);
this.newHost = newHost;
}

@PostConstruct
private void init() {
if (!newHost) {
_vdsManager = ResourceManager.getInstance().getVdsManager(parameters.getVdsId());
_vdsManager = resourceManager.getVdsManager(getParameters().getVdsId());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ public void scheduleJobs() {
refreshRate,
TimeUnit.MILLISECONDS));

vmsRefresher = getRefresherFactory().create(this);
vmsRefresher = getRefresherFactory().create(this, resourceManager);
vmsRefresher.startMonitoring();

hostRefresher = new HostConnectionRefresher(this, resourceManager);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ public class EventVmStatsRefresher extends VmStatsRefresher {
private Subscription subscription;
@Inject
private VmDynamicDao vmDynamicDao;
private ResourceManager resourceManager;
private PollVmStatsRefresher allVmStatsOnlyRefresher;
private final ResourceManager resourceManager;
private final PollVmStatsRefresher allVmStatsOnlyRefresher;

@SuppressWarnings("deprecation")
public EventVmStatsRefresher(VdsManager manager) {
public EventVmStatsRefresher(VdsManager manager, ResourceManager resourceManager) {
super(manager);
// we still want to fetch GetAllVmStats as we did before
allVmStatsOnlyRefresher = Injector.injectMembers(new PollVmStatsRefresher(vdsManager));
resourceManager = ResourceManager.getInstance();
this.resourceManager = resourceManager;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@
import javax.inject.Singleton;

import org.ovirt.engine.core.di.Injector;
import org.ovirt.engine.core.vdsbroker.ResourceManager;
import org.ovirt.engine.core.vdsbroker.VdsManager;


@Singleton
public class RefresherFactory {

public VmStatsRefresher create(VdsManager vdsManager) {
return Injector.injectMembers(getRefresherForVds(vdsManager));
public VmStatsRefresher create(VdsManager vdsManager, ResourceManager resourceManager) {
return Injector.injectMembers(getRefresherForVds(vdsManager, resourceManager));
}

private VmStatsRefresher getRefresherForVds(VdsManager vdsManager) {
return new EventVmStatsRefresher(vdsManager);
private VmStatsRefresher getRefresherForVds(VdsManager vdsManager, ResourceManager resourceManager) {
return new EventVmStatsRefresher(vdsManager, resourceManager);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
import org.ovirt.engine.core.dao.VmDynamicDao;
import org.ovirt.engine.core.di.Injector;
import org.ovirt.engine.core.vdsbroker.ResourceManager;
import org.ovirt.engine.core.vdsbroker.VdsManager;
import org.slf4j.Logger;
Expand All @@ -42,7 +43,7 @@ public class VmsListFetcher {
public VmsListFetcher(VdsManager vdsManager) {
this.vdsManager = vdsManager;
this.dbFacade = DbFacade.getInstance();
this.resourceManager = ResourceManager.getInstance();
this.resourceManager = Injector.get(ResourceManager.class);
}

public VmsListFetcher(VdsManager vdsManager, DbFacade dbFacade, ResourceManager resourceManager) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogable;
import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableImpl;
import org.ovirt.engine.core.dao.VdsStaticDao;
import org.ovirt.engine.core.di.Injector;
import org.ovirt.engine.core.vdsbroker.ResourceManager;
import org.ovirt.engine.core.vdsbroker.TransportRunTimeException;
import org.ovirt.engine.core.vdsbroker.VdsManager;
Expand Down Expand Up @@ -61,7 +62,7 @@ protected VdsBrokerCommand(P parameters, VDS vds) {
}

protected IVdsServer initializeVdsBroker(Guid vdsId) {
VdsManager vdsmanager = ResourceManager.getInstance().getVdsManager(vdsId);
VdsManager vdsmanager = Injector.get(ResourceManager.class).getVdsManager(vdsId);
if (vdsmanager == null) {
throw new EngineException(EngineError.RESOURCE_MANAGER_VDS_NOT_FOUND,
String.format("Vds with id: %1$s was not found", vdsId));
Expand Down

0 comments on commit 81a2d4b

Please sign in to comment.