petclinic-uncached

Merge pull request #182 from snicoll/ehcache3 Upgrade to

8/29/2016 5:18:22 PM

Changes

pom.xml 28(+5 -23)

src/main/resources/ehcache.xml 17(+0 -17)

src/main/resources/ehcache.xsd 419(+0 -419)

Details

pom.xml 28(+5 -23)

diff --git a/pom.xml b/pom.xml
index 880e7be..ca960c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,10 +60,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>
@@ -75,18 +71,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>
@@ -124,14 +108,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));
+            }
+        };
+    }
+
 }