Ravi Nori has uploaded a new change for review.

Change subject: engine : Use infinispan to cache data
......................................................................

engine : Use infinispan to cache data

Use infinispan to cache data

Change-Id: Ie08852607f7b27ce248564a5c36ea83b8def8ad1
Signed-off-by: Ravi Nori <[email protected]>
---
M backend/manager/conf/standalone.xml
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/InfinispanCacheWrapper.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapCacheWrapper.java
D 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapWrapperImpl.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java
9 files changed, 82 insertions(+), 52 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/14370/1

diff --git a/backend/manager/conf/standalone.xml 
b/backend/manager/conf/standalone.xml
index f573019..b91cfd1 100644
--- a/backend/manager/conf/standalone.xml
+++ b/backend/manager/conf/standalone.xml
@@ -231,6 +231,21 @@
                     <eviction max-entries="10000"/>
                     <expiration interval="60000"/>
                 </local-cache>
+                <local-cache name="entity-multi-async-tasks">
+                    <transaction mode="NONE"/>
+                    <eviction max-entries="10000"/>
+                    <expiration interval="60000"/>
+                </local-cache>
+                <local-cache name="executionContext">
+                    <transaction mode="NONE"/>
+                    <eviction max-entries="10000"/>
+                    <expiration interval="60000"/>
+                </local-cache>
+                <local-cache name="commandMap">
+                    <transaction mode="NONE"/>
+                    <eviction max-entries="10000"/>
+                    <expiration interval="60000"/>
+                </local-cache>
             </cache-container>
         </subsystem>
         <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
index e1a7765..cda5385 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
@@ -1,7 +1,19 @@
 package org.ovirt.engine.core.bll.tasks;
 
+import java.util.Map;
+
 public class CacheProviderFactory {
-    public static <K, V> CacheWrapper<K, V> getCacheWrapper(String name) {
-        return new MapWrapperImpl<K, V>();
+    private static CacheWrapper cacheWrapper = new InfinispanCacheWrapper();
+
+    public static <K, V> Map<K, V> getCache(String name) {
+        return getCacheWrapper().getCache(name);
+    }
+
+    public static void setCacheWrapper(CacheWrapper aCacheWrapper) {
+        cacheWrapper = aCacheWrapper;
+    }
+
+    public static CacheWrapper getCacheWrapper() {
+        return cacheWrapper;
     }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
index 4ce085c..b9bc3a0 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
@@ -1,12 +1,9 @@
 package org.ovirt.engine.core.bll.tasks;
 
-public interface CacheWrapper<K, V> {
+import java.util.Map;
 
-    void put(K key, V value);
+public interface CacheWrapper {
 
-    V get(K key);
+    <K, V> Map<K,V> getCache(String name);
 
-    void remove(final K key);
-
-    public boolean containsKey(K key);
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
index b4be650..b791054 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
@@ -43,18 +43,21 @@
 
 public class CommandCoordinatorImpl extends CommandCoordinator {
 
-    private static final String EXECUTION_CONTEXT_MAP_NAME = 
"executionContext";
+    public static final String EXECUTION_CONTEXT_MAP_NAME = "executionContext";
+    public static final String ENTITY_MULTI_ASYNC_TASKS_MAP_NAME = 
"entity-multi-async-tasks";
     private static final CommandCoordinatorImpl instance = new 
CommandCoordinatorImpl();
     private static final Log log = 
LogFactory.getLog(CommandCoordinatorImpl.class);
 
     public static CommandCoordinatorImpl getInstance() {
         return instance;
     }
-    CacheWrapper<NGuid, ExecutionContext> executionContextMap;
+    private final Map<NGuid, ExecutionContext> executionContextMap;
+    private final Map<Object, EntityMultiAsyncTasks> multiTasksByEntities;
     CommandEntityDAO commandEntityDAO = new CommandEntityDAOImpl();
 
     private CommandCoordinatorImpl() {
-        executionContextMap = CacheProviderFactory.<NGuid, 
ExecutionContext>getCacheWrapper(EXECUTION_CONTEXT_MAP_NAME);
+        executionContextMap = CacheProviderFactory.<NGuid, 
ExecutionContext>getCache(EXECUTION_CONTEXT_MAP_NAME);
+        multiTasksByEntities = new HashMap<>();
     }
 
     @Override
@@ -367,8 +370,6 @@
     private AsyncTaskManager getAsyncTaskManager() {
         return AsyncTaskManager.getInstance(this);
     }
-    private final Map<Object, EntityMultiAsyncTasks> multiTasksByEntities =
-            new HashMap<Object, EntityMultiAsyncTasks>();
     private static final Object _lockObject = new Object();
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java
index 96b8434..0a4db6d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java
@@ -1,15 +1,16 @@
 package org.ovirt.engine.core.bll.tasks;
 
+import java.util.Map;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.NGuid;
 
 public class CommandEntityDAOImpl implements CommandEntityDAO {
 
-    private static final String COMMAND_MAP_NAME = "commandMap";
-    CacheWrapper<NGuid, CommandEntity> commandMap;
+    public static final String COMMAND_MAP_NAME = "commandMap";
+    Map<NGuid, CommandEntity> commandMap;
 
     public CommandEntityDAOImpl() {
-        commandMap = CacheProviderFactory.<NGuid, 
CommandEntity>getCacheWrapper(COMMAND_MAP_NAME);
+        commandMap = CacheProviderFactory.<NGuid, 
CommandEntity>getCache(COMMAND_MAP_NAME);
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/InfinispanCacheWrapper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/InfinispanCacheWrapper.java
new file mode 100644
index 0000000..10394f1
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/InfinispanCacheWrapper.java
@@ -0,0 +1,24 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ovirt.engine.core.bll.tasks;
+
+import java.util.Map;
+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;
+
+class InfinispanCacheWrapper implements CacheWrapper {
+
+    public InfinispanCacheWrapper() {
+    }
+
+    @Override
+    public <K, V> Map<K, V> getCache(String name) {
+        CacheContainer cacheContainer = 
EjbUtils.findBean(BeanType.CACHE_CONTAINER, BeanProxyType.LOCAL);
+        return cacheContainer.getCache(name);
+    }
+
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapCacheWrapper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapCacheWrapper.java
new file mode 100644
index 0000000..fd99976
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapCacheWrapper.java
@@ -0,0 +1,12 @@
+package org.ovirt.engine.core.bll.tasks;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class MapCacheWrapper implements CacheWrapper {
+
+    @Override
+    public <K, V> Map<K, V> getCache(String name) {
+        return new HashMap<K, V>();
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapWrapperImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapWrapperImpl.java
deleted file mode 100644
index d704993..0000000
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapWrapperImpl.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.ovirt.engine.core.bll.tasks;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class MapWrapperImpl<K, V> implements CacheWrapper<K, V> {
-
-    private final Map<K,V> cache = new HashMap<>();
-
-    public MapWrapperImpl() {
-    }
-
-    @Override
-    public void put(final K key, final V value) {
-        getCache().put(key, value);
-    }
-
-    @Override
-    public V get(final K key) {
-        return getCache().get(key);
-    }
-
-    @Override
-    public void remove(final K key) {
-        getCache().remove(key);
-    }
-
-    public Map<K, V> getCache() {
-        return cache;
-    }
-
-    @Override
-    public boolean containsKey(final K key) {
-        return getCache().containsKey(key);
-    }
-}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java
index 1f62a36..be84eb9 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java
@@ -20,6 +20,8 @@
 import org.junit.experimental.theories.Theories;
 import org.junit.experimental.theories.Theory;
 import org.junit.runner.RunWith;
+import org.ovirt.engine.core.bll.tasks.CacheProviderFactory;
+import org.ovirt.engine.core.bll.tasks.MapCacheWrapper;
 import org.ovirt.engine.core.bll.tasks.interfaces.SPMTask;
 import org.ovirt.engine.core.common.action.AddImageFromScratchParameters;
 import org.ovirt.engine.core.common.action.CreateCloneOfTemplateParameters;
@@ -156,6 +158,7 @@
         
params.setParentCommand(RandomUtils.instance().nextEnum(VdcActionType.class));
         params.setParentParameters(params);
 
+        CacheProviderFactory.setCacheWrapper(new MapCacheWrapper());
         AsyncTaskCreationInfo info = nextAsyncTaskCreationInfo();
 
         SPMTask spmAsyncTask = cmd.concreteCreateTask(Guid.Empty, info, 
cmd.getParameters().getParentCommand());
@@ -180,6 +183,7 @@
         PermissionsOperationsParametes params = new 
PermissionsOperationsParametes();
         AddPermissionCommand<PermissionsOperationsParametes> cmd = spy(
                 new 
AddPermissionCommand<PermissionsOperationsParametes>(params));
+        CacheProviderFactory.setCacheWrapper(new MapCacheWrapper());
         cmd.concreteCreateTask(Guid.Empty, nextAsyncTaskCreationInfo(), 
VdcActionType.Unknown);
     }
 


--
To view, visit http://gerrit.ovirt.org/14370
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie08852607f7b27ce248564a5c36ea83b8def8ad1
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to