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 b351c40a91..4965f41a38 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 a66dda2b1b..3813a40a61 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 d2c5f12de9..14b8141a85 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 9373d19143..add8b4a293 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 c5e8f8b2a3..7ae10ce437 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)); }; }