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
This commit is contained in:
Stephane Nicoll 2017-01-04 10:46:17 +01:00
parent 2ea7187165
commit bf7271afa5
5 changed files with 19 additions and 9 deletions

View File

@ -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;
}

View File

@ -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<String> 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);
}

View File

@ -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"));
}

View File

@ -63,7 +63,7 @@
<commons-pool.version>1.6</commons-pool.version>
<commons-pool2.version>2.4.2</commons-pool2.version>
<couchbase-client.version>2.3.6</couchbase-client.version>
<couchbase-cache-client.version>2.0.0</couchbase-cache-client.version>
<couchbase-cache-client.version>2.1.0</couchbase-cache-client.version>
<crashub.version>1.3.2</crashub.version>
<derby.version>10.13.1.1</derby.version>
<dom4j.version>1.6.1</dom4j.version>

View File

@ -4094,7 +4094,7 @@ cache:
public CacheManagerCustomizer<CouchbaseCacheManager> cacheManagerCustomizer() {
return c -> {
c.prepareCache("biz", CacheBuilder.newInstance(anotherBucket())
.withExpirationInMillis(2000));
.withExpiration(2));
};
}