petclinic-uncached
Changes
pom.xml 28(+5 -23)
Details
pom.xml 28(+5 -23)
diff --git a/pom.xml b/pom.xml
index 06741b4..fb363d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,10 +59,6 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
@@ -74,18 +70,6 @@
<artifactId>jstl</artifactId>
</dependency>
-
- <!-- used for EhCacheCacheManager -->
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjweaver</artifactId>
- <scope>runtime</scope>
- </dependency>
-
<!-- Date and Time -->
<dependency>
<groupId>joda-time</groupId>
@@ -123,14 +107,12 @@
<!-- EhCache -->
<dependency>
- <groupId>net.sf.ehcache</groupId>
+ <groupId>javax.cache</groupId>
+ <artifactId>cache-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
- <exclusions>
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<!-- Dandelion -->
diff --git a/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java b/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java
index fc4a0bc..4e1a6a0 100644
--- a/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java
+++ b/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java
@@ -1,6 +1,19 @@
package org.springframework.samples.petclinic.config;
+import java.util.concurrent.TimeUnit;
+import javax.cache.CacheManager;
+
+import org.ehcache.config.CacheConfiguration;
+import org.ehcache.config.builders.CacheConfigurationBuilder;
+import org.ehcache.config.builders.ResourcePoolsBuilder;
+import org.ehcache.config.units.EntryUnit;
+import org.ehcache.expiry.Duration;
+import org.ehcache.expiry.Expirations;
+import org.ehcache.jsr107.Eh107Configuration;
+
+import org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer;
import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@@ -11,4 +24,21 @@ import org.springframework.context.annotation.Profile;
@EnableCaching
@Profile("production")
public class CacheConfig {
+
+ @Bean
+ public JCacheManagerCustomizer cacheManagerCustomizer() {
+ return new JCacheManagerCustomizer() {
+ @Override
+ public void customize(CacheManager cacheManager) {
+ CacheConfiguration<Object, Object> config = CacheConfigurationBuilder
+ .newCacheConfigurationBuilder(Object.class, Object.class,
+ ResourcePoolsBuilder.newResourcePoolsBuilder()
+ .heap(100, EntryUnit.ENTRIES))
+ .withExpiry(Expirations.timeToLiveExpiration(Duration.of(60, TimeUnit.SECONDS)))
+ .build();
+ cacheManager.createCache("vets", Eh107Configuration.fromEhcacheCacheConfiguration(config));
+ }
+ };
+ }
+
}