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

Reply via email to