diff --git a/pom.xml b/pom.xml
index 0edf749a1..dae537275 100644
--- a/pom.xml
+++ b/pom.xml
@@ -222,10 +222,6 @@
provided
-
- org.springframework.boot
- spring-boot-starter-cache
-
org.hibernate.orm
@@ -235,7 +231,6 @@
org.ehcache
ehcache
- runtime
jakarta
diff --git a/src/main/java/org/tb/SalatApplication.java b/src/main/java/org/tb/SalatApplication.java
index 67b13bfbd..1dd65290f 100644
--- a/src/main/java/org/tb/SalatApplication.java
+++ b/src/main/java/org/tb/SalatApplication.java
@@ -19,8 +19,6 @@
public class SalatApplication {
public static void main(String[] args) {
- // To use environment variables in the ehcache.xml as replacements
- System.getenv().forEach(System::setProperty);
SpringApplication.run(SalatApplication.class, args);
}
diff --git a/src/main/java/org/tb/common/configuration/HibernateSecondLevelCacheConfiguration.java b/src/main/java/org/tb/common/configuration/HibernateSecondLevelCacheConfiguration.java
index a23efed81..8dda4f258 100644
--- a/src/main/java/org/tb/common/configuration/HibernateSecondLevelCacheConfiguration.java
+++ b/src/main/java/org/tb/common/configuration/HibernateSecondLevelCacheConfiguration.java
@@ -1,18 +1,37 @@
package org.tb.common.configuration;
import org.hibernate.cache.jcache.ConfigSettings;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.orm.jpa.HibernatePropertiesCustomizer;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.cache.jcache.JCacheCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ResourceLoader;
-@Configuration(proxyBeanMethods = false)
-@EnableCaching
+import javax.cache.CacheManager;
+import javax.cache.Caching;
+import javax.cache.spi.CachingProvider;
+import java.io.IOException;
+import java.net.URI;
+
+
+@Configuration
public class HibernateSecondLevelCacheConfiguration {
@Bean
- public HibernatePropertiesCustomizer hibernateSecondLevelCacheCustomizer(JCacheCacheManager cacheManager) {
- return (properties) -> properties.put(ConfigSettings.CACHE_MANAGER, cacheManager.getCacheManager());
+ public HibernatePropertiesCustomizer hibernateSecondLevelCacheCustomizer(ResourceLoader resourceLoader,
+ @Value("${salat.cache.max-entries}") String maxCacheEntries,
+ @Value("${salat.cache.expiry-tti}") String expiryTti) {
+ return (properties) -> {
+ try {
+ URI uri = resourceLoader.getResource("classpath:ehcache.xml").getURI();
+ CachingProvider cachingProvider = Caching.getCachingProvider();
+ System.setProperty("EHCACHE_EXPIRY_TTI", expiryTti);
+ System.setProperty("EHCACHE_RESOURCES_HEAP_ENTRIES", maxCacheEntries);
+ CacheManager cacheManager = cachingProvider.getCacheManager(uri, cachingProvider.getDefaultClassLoader());
+ properties.put(ConfigSettings.CACHE_MANAGER, cacheManager);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ };
}
}
diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml
index 2198bbb59..5078fb975 100644
--- a/src/main/resources/application.yaml
+++ b/src/main/resources/application.yaml
@@ -76,6 +76,9 @@ salat:
mail-host: localhost
auth-service:
cache-expiry: 1s
+ cache:
+ max-entries: 1000
+ expiry-tti: 10
springdoc:
swagger-ui:
path: /api/doc/
diff --git a/src/main/resources/ehcache.xml b/src/main/resources/ehcache.xml
index 7c008a094..945c914e9 100644
--- a/src/main/resources/ehcache.xml
+++ b/src/main/resources/ehcache.xml
@@ -13,10 +13,10 @@
- 10
+ ${EHCACHE_EXPIRY_TTI}
- ${MAX_CACHE_ENTRIES}
+ ${EHCACHE_RESOURCES_HEAP_ENTRIES}