adaptive-caching-framework

Changes

evaluation/Applications/AP/spring-petclinic/spring-petclinic.iml 141(+0 -141)

framework/autonomicmanager/autonomicmanager.iml 69(+0 -69)

framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/cachemanager/util/support/AbstractCacheManager.java 194(+0 -194)

Details

diff --git a/framework/autonomicmanager/README.md b/framework/autonomicmanager/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/framework/autonomicmanager/README.md
diff --git a/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/cachemanager/util/CacheManagerFactory.java b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/cachemanager/util/CacheManagerFactory.java
new file mode 100644
index 0000000..22dea02
--- /dev/null
+++ b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/cachemanager/util/CacheManagerFactory.java
@@ -0,0 +1,63 @@
+package br.ufrgs.inf.prosoft.adaptivecaching.cachemanager.util;
+
+import br.ufrgs.inf.prosoft.adaptivecaching.cachemanager.extensions.ehcache.EhCacheCacheManager;
+import br.ufrgs.inf.prosoft.adaptivecaching.cachemanager.extensions.guava.GuavaCacheManager;
+import br.ufrgs.inf.prosoft.adaptivecaching.cachemanager.model.CacheManager;
+import br.ufrgs.inf.prosoft.adaptivecaching.configuration.annotation.types.CacheProviderType;
+import br.ufrgs.inf.prosoft.adaptivecaching.exceptions.CacheProviderException;
+import net.sf.ehcache.config.CacheConfiguration;
+import net.sf.ehcache.config.PersistenceConfiguration;
+import net.sf.ehcache.management.ManagementService;
+import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.management.MBeanServer;
+import java.lang.management.ManagementFactory;
+
+public class CacheManagerFactory {
+    static Logger logger = LoggerFactory.getLogger(CacheManagerFactory.class);
+
+    public static CacheManager getCacheManager(CacheProviderType cacheProviderType) {
+        switch (cacheProviderType) {
+            case GUAVA:
+                logger.debug("Cache provider is configured to Guava.");
+                return new GuavaCacheManager();
+//            case MEMCACHED:
+//                break;
+//            case REDIS:
+            //redis cache manager
+//        JedisConnectionFactory cf = new JedisConnectionFactory();
+//        cf.setHostName("127.0.0.1");
+//        cf.setPort(6379);
+//        RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
+//        redisTemplate.setConnectionFactory(cf);
+//        RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate);
+//        redisCacheManager.setDefaultExpiration(300);
+//        this.cacheManager = redisCacheManager;
+//        this.cache = redisCacheManager.getCache("test");
+//                break;
+//            case CAFFEINE:
+//                break;
+            case EHCACHE:
+                logger.debug("Cache provider is configured to EhCache.");
+                net.sf.ehcache.CacheManager cm = net.sf.ehcache.CacheManager.newInstance();
+
+                //monitoring hit and miss ratio:
+                MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
+                ManagementService.registerMBeans(cm, mBeanServer, false, false, false, true);
+
+                //Create a Cache specifying its configuration.
+                net.sf.ehcache.Cache adaptiveCache = new net.sf.ehcache.Cache(
+                        new CacheConfiguration("adaptivecaching", 10000)
+                                .memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LRU)
+                                .eternal(true)
+                                .overflowToOffHeap(false)
+                                .persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.NONE)));
+                cm.addCache(adaptiveCache);
+                return new EhCacheCacheManager(cm);
+            default:
+                throw new CacheProviderException("The specified cache manager [" + cacheProviderType + "] does not have an available implementation.");
+        }
+    }
+}
diff --git a/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/CacheProviderException.java b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/CacheProviderException.java
new file mode 100644
index 0000000..b54f147
--- /dev/null
+++ b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/CacheProviderException.java
@@ -0,0 +1,7 @@
+package br.ufrgs.inf.prosoft.adaptivecaching.exceptions;
+
+/**
+ * Created by jhonnymertz on 04/06/17.
+ */
+public class CacheProviderException {
+}
diff --git a/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/ConfigurationException.java b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/ConfigurationException.java
new file mode 100644
index 0000000..dfb73b0
--- /dev/null
+++ b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/ConfigurationException.java
@@ -0,0 +1,16 @@
+package br.ufrgs.inf.prosoft.adaptivecaching.exceptions;
+
+public class ConfigurationException extends RuntimeException {
+
+    public ConfigurationException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ConfigurationException(Throwable cause) {
+        super(cause);
+    }
+
+    public ConfigurationException(String message) {
+        super(message);
+    }
+}
diff --git a/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/StorageException.java b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/StorageException.java
new file mode 100644
index 0000000..9fef947
--- /dev/null
+++ b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/exceptions/StorageException.java
@@ -0,0 +1,12 @@
+package br.ufrgs.inf.prosoft.adaptivecaching.exceptions;
+
+public class StorageException extends RuntimeException {
+
+    public StorageException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public StorageException(Throwable cause) {
+        super(cause);
+    }
+}
diff --git a/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/application/usersession/UserGetterFactory.java b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/application/usersession/UserGetterFactory.java
new file mode 100644
index 0000000..4f398f3
--- /dev/null
+++ b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/application/usersession/UserGetterFactory.java
@@ -0,0 +1,7 @@
+package br.ufrgs.inf.prosoft.adaptivecaching.monitoring.application.usersession;
+
+/**
+ * Created by jhonnymertz on 05/06/17.
+ */
+public class UserGetterFactory {
+}
diff --git a/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/cache/CacheMonitorFactory.java b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/cache/CacheMonitorFactory.java
new file mode 100644
index 0000000..33cead8
--- /dev/null
+++ b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/cache/CacheMonitorFactory.java
@@ -0,0 +1,7 @@
+package br.ufrgs.inf.prosoft.adaptivecaching.monitoring.cache;
+
+/**
+ * Created by jhonnymertz on 04/06/17.
+ */
+public class CacheMonitorFactory {
+}
diff --git a/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/storage/RepositoryFactory.java b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/storage/RepositoryFactory.java
new file mode 100644
index 0000000..240cdf1
--- /dev/null
+++ b/framework/autonomicmanager/src/main/java/br/ufrgs/inf/prosoft/adaptivecaching/monitoring/storage/RepositoryFactory.java
@@ -0,0 +1,7 @@
+package br.ufrgs.inf.prosoft.adaptivecaching.monitoring.storage;
+
+/**
+ * Created by jhonnymertz on 04/06/17.
+ */
+public class RepositoryFactory {
+}