diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/AppsService.java b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/AppsService.java index e55a2b6a9848612991d6da043ad5718b04ccccc6..b2509ca3ab3b5f1fa7dd10661d108df2e4cda1c4 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/AppsService.java +++ b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/AppsService.java @@ -17,17 +17,26 @@ package org.maxkey.persistence.service; +import java.time.Duration; import java.util.List; import org.apache.mybatis.jpa.persistence.JpaBaseService; +import org.ehcache.UserManagedCache; +import org.ehcache.config.builders.ExpiryPolicyBuilder; +import org.ehcache.config.builders.UserManagedCacheBuilder; import org.maxkey.domain.apps.Apps; import org.maxkey.domain.apps.UserApps; import org.maxkey.persistence.mapper.AppsMapper; import org.springframework.stereotype.Repository; @Repository -public class AppsService extends JpaBaseService{ +public class AppsService extends JpaBaseService{ + protected final static UserManagedCache appsDetailsStore = + UserManagedCacheBuilder.newUserManagedCacheBuilder(String.class, Apps.class) + .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofHours(1))) + .build(true); + public AppsService() { super(AppsMapper.class); } @@ -55,4 +64,14 @@ public class AppsService extends JpaBaseService{ public List queryMyApps(UserApps userApplications){ return getMapper().queryMyApps(userApplications); } + + //cache for running + public void storeCacheAppDetails(String appId, Apps appDetails) { + appsDetailsStore.put(appId, appDetails); + } + + public Apps getCacheAppDetails(String appId) { + Apps appDetails=appsDetailsStore.get(appId); + return appDetails; + } }