Roy Golan has uploaded a new change for review. Change subject: core: Inject CacheManager instead of jndi lookup ......................................................................
core: Inject CacheManager instead of jndi lookup - Make CacheManager a @Singleton bean - don't do a jndi lookup for every invocation just to get the internal cache instance Change-Id: I02f480abf1739c717f37f174d968b780f7fbd2a0 Signed-off-by: Roy Golan <rgo...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/BackendService.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/TimeoutBase.java A backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/utils/CacheManager.java D backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/cache/CacheManager.java 5 files changed, 45 insertions(+), 17 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/36/41036/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java index 066408d..c39ef25 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java @@ -37,6 +37,7 @@ import org.ovirt.engine.core.bll.job.JobRepositoryCleanupManager; import org.ovirt.engine.core.bll.job.JobRepositoryFactory; import org.ovirt.engine.core.bll.quota.QuotaManager; +import org.ovirt.engine.core.common.BackendService; import org.ovirt.engine.core.common.EngineWorkingMode; import org.ovirt.engine.core.common.action.LoginUserParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; @@ -67,6 +68,7 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.generic.DBConfigUtils; import org.ovirt.engine.core.dal.job.ExecutionMessageDirector; +import org.ovirt.engine.core.dal.utils.CacheManager; import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.searchbackend.BaseConditionFieldAutoCompleter; import org.ovirt.engine.core.searchbackend.OsValueAutoCompleter; @@ -109,6 +111,8 @@ private DbFacade dbFacade; @Inject @Any private Instance<SchedulerUtil> taskSchedulers; + @Inject @Any + private Instance<BackendService> services; public static BackendInternal getInstance() { return Injector.get(BackendInternal.class); @@ -194,6 +198,9 @@ for (SchedulerUtil taskScheduler : taskSchedulers) { log.info("Started task scheduler {}", taskScheduler); } + // initialize CDI services + loadService(CacheManager.class); + // initialize configuration utils to use DB Config.setConfigUtils(new DBConfigUtils()); // we need to initialize os-info before the compensations take place because of VmPoolCommandBase#osRepository @@ -285,6 +292,10 @@ AcctUtils.reportReason(Acct.ReportReason.STARTUP, "Starting up engine"); } + private void loadService(Class<? extends BackendService> service) { + log.info("Start {} ", services.select(service).get()); + } + /** * It removes unused vm icons that remains in DB due to potential errors in commands. */ diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/BackendService.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/BackendService.java new file mode 100644 index 0000000..5fed74d --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/BackendService.java @@ -0,0 +1,4 @@ +package org.ovirt.engine.core.common; + +public interface BackendService { +} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/TimeoutBase.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/TimeoutBase.java index aab6454..fa69e2d 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/TimeoutBase.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/TimeoutBase.java @@ -1,8 +1,8 @@ package org.ovirt.engine.core.dal.dbbroker.auditloghandling; -import java.util.concurrent.TimeUnit; +import org.ovirt.engine.core.dal.utils.CacheManager; -import org.ovirt.engine.core.utils.cache.CacheManager; +import java.util.concurrent.TimeUnit; public abstract class TimeoutBase { private boolean mUseTimeout; diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/utils/CacheManager.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/utils/CacheManager.java new file mode 100644 index 0000000..3a3a6d3 --- /dev/null +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/utils/CacheManager.java @@ -0,0 +1,28 @@ +package org.ovirt.engine.core.dal.utils; + +import org.infinispan.Cache; +import org.infinispan.manager.CacheContainer; +import org.ovirt.engine.core.common.BackendService; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import javax.inject.Singleton; + +@Singleton +public class CacheManager implements BackendService { + + public static final String TIMEOUT_BASE = "timeout-base"; + + @Resource(lookup = "java:jboss/infinispan/ovirt-engine") + private CacheContainer cacheContainer; + private static Cache<String, String> cache; + + @PostConstruct + private void init() { + cache = cacheContainer.getCache(TIMEOUT_BASE); + } + + public static Cache<String, String> getTimeoutBaseCache() { + return cache; + } +} diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/cache/CacheManager.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/cache/CacheManager.java deleted file mode 100644 index 2423b50..0000000 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/cache/CacheManager.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.ovirt.engine.core.utils.cache; - -import org.infinispan.Cache; -import org.infinispan.manager.CacheContainer; -import org.ovirt.engine.core.utils.ejb.BeanProxyType; -import org.ovirt.engine.core.utils.ejb.BeanType; -import org.ovirt.engine.core.utils.ejb.EjbUtils; - -public class CacheManager { - - public static Cache<String, String> getTimeoutBaseCache() { - CacheContainer cacheContainer = EjbUtils.findBean(BeanType.CACHE_CONTAINER, BeanProxyType.LOCAL); - return cacheContainer.getCache("timeout-base"); - } -} -- To view, visit https://gerrit.ovirt.org/41036 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I02f480abf1739c717f37f174d968b780f7fbd2a0 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Roy Golan <rgo...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches