From bf7271afa59772914f1b38d650fc4ae6052fe18c Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Wed, 4 Jan 2017 10:46:17 +0100 Subject: [PATCH] Upgrade to Couchbase Cache Client 2.1.0 As of 2.1 cache expiration times are to be set in seconds. This commit migrates to the new method, yet keeping the milliseconds unit. Closes gh-7824 --- .../boot/autoconfigure/cache/CacheProperties.java | 14 ++++++++++++-- .../cache/CouchbaseCacheConfiguration.java | 6 +++--- .../cache/CacheAutoConfigurationTests.java | 4 ++-- spring-boot-dependencies/pom.xml | 2 +- .../src/main/asciidoc/spring-boot-features.adoc | 2 +- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheProperties.java index b351c40a91d..4965f41a388 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package org.springframework.boot.autoconfigure.cache; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.TimeUnit; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.DeprecatedConfigurationProperty; @@ -146,7 +147,8 @@ public class CacheProperties { public static class Couchbase { /** - * Entry expiration in milliseconds. By default the entries never expire. + * Entry expiration in milliseconds. By default the entries never expire. Note + * that this value is ultimately converted to seconds. */ private int expiration; @@ -154,6 +156,14 @@ public class CacheProperties { return this.expiration; } + /** + * Return the expiration in seconds. + * @return the expiration in seconds + */ + public int getExpirationSeconds() { + return (int) TimeUnit.MILLISECONDS.toSeconds(this.expiration); + } + public void setExpiration(int expiration) { this.expiration = expiration; } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java index a66dda2b1bb..3813a40a61e 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,8 +60,8 @@ public class CouchbaseCacheConfiguration { public CouchbaseCacheManager cacheManager() { List cacheNames = this.cacheProperties.getCacheNames(); CouchbaseCacheManager cacheManager = new CouchbaseCacheManager( - CacheBuilder.newInstance(this.bucket).withExpirationInMillis( - this.cacheProperties.getCouchbase().getExpiration()), + CacheBuilder.newInstance(this.bucket).withExpiration( + this.cacheProperties.getCouchbase().getExpirationSeconds()), cacheNames.toArray(new String[cacheNames.size()])); return this.customizers.customize(cacheManager); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java index d2c5f12de95..14b8141a85a 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -250,7 +250,7 @@ public class CacheAutoConfigurationTests { assertThat(cacheManager.getCacheNames()).containsOnly("foo", "bar"); Cache cache = cacheManager.getCache("foo"); assertThat(cache).isInstanceOf(CouchbaseCache.class); - assertThat(((CouchbaseCache) cache).getTtl()).isEqualTo(2000); + assertThat(((CouchbaseCache) cache).getTtl()).isEqualTo(2); assertThat(((CouchbaseCache) cache).getNativeCache()) .isEqualTo(this.context.getBean("bucket")); } diff --git a/spring-boot-dependencies/pom.xml b/spring-boot-dependencies/pom.xml index 9373d191436..add8b4a293a 100644 --- a/spring-boot-dependencies/pom.xml +++ b/spring-boot-dependencies/pom.xml @@ -63,7 +63,7 @@ 1.6 2.4.2 2.3.6 - 2.0.0 + 2.1.0 1.3.2 10.13.1.1 1.6.1 diff --git a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index c5e8f8b2a33..7ae10ce4372 100644 --- a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -4094,7 +4094,7 @@ cache: public CacheManagerCustomizer cacheManagerCustomizer() { return c -> { c.prepareCache("biz", CacheBuilder.newInstance(anotherBucket()) - .withExpirationInMillis(2000)); + .withExpiration(2)); }; }