From 076dcc021932d917e399469e9205bfcf5dd52dd9 Mon Sep 17 00:00:00 2001 From: Subhashni Balakrishnan Date: Thu, 12 Jul 2018 11:29:09 -0700 Subject: [PATCH] DATACOUCH-389 - Update to Couchbase-Java-Client 2.6.0 Added the new committed environment configurables to the xml based configuration parser info. Also added couchbase FLE encryption library as bean instantiation introspects class methods and fails with ClassNotFound exception. Original Pull Request: #165. --- pom.xml | 11 +++++- .../CouchbaseEnvironmentFactoryBean.java | 37 ++++++++++++++++++- .../config/CouchbaseEnvironmentParser.java | 8 ++++ .../config/spring-couchbase-env-2.0.xsd | 8 ++++ .../CouchbaseEnvironmentParserTest.java | 7 ++++ .../configurations/couchbaseEnv-bean.xml | 7 ++++ 6 files changed, 75 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 378b09dc..13b46217 100644 --- a/pom.xml +++ b/pom.xml @@ -18,8 +18,8 @@ - 2.5.6 - 2.5.6 + 2.6.0 + 2.6.0 2.1.0.BUILD-SNAPSHOT spring.data.couchbase @@ -111,6 +111,13 @@ true + + + com.couchbase.client + encryption + 1.0.0 + + org.testcontainers testcontainers diff --git a/src/main/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentFactoryBean.java b/src/main/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentFactoryBean.java index 0f3cf8a0..26271e85 100644 --- a/src/main/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentFactoryBean.java +++ b/src/main/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentFactoryBean.java @@ -63,6 +63,9 @@ import org.springframework.beans.factory.config.AbstractFactoryBean; queryServiceConfig searchServiceConfig viewServiceConfig + cryptoManager + tracer + orphanResponseReporter */ @Override @@ -210,4 +213,36 @@ import org.springframework.beans.factory.config.AbstractFactoryBean; public void setAnalyticsTimeout(long analyticsTimeout) { this.couchbaseEnvBuilder.analyticsTimeout(analyticsTimeout); } -} + + public void setConfigPollInterval(long configPollInterval) { + this.couchbaseEnvBuilder.configPollInterval(configPollInterval); + } + + public void setConfigPollFloorInterval(long configPollFloorInterval) { + this.couchbaseEnvBuilder.configPollFloorInterval(configPollFloorInterval); + } + + public void setCertAuthEnabled(boolean certAuthEnabled) { + this.couchbaseEnvBuilder.certAuthEnabled(certAuthEnabled); + } + + public void setOperationTracingEnabled(boolean operationTracingEnabled) { + this.couchbaseEnvBuilder.operationTracingEnabled(operationTracingEnabled); + } + + public void setOperationTracingServerDurationEnabled(boolean operationTracingServerDurationEnabled) { + this.couchbaseEnvBuilder.operationTracingServerDurationEnabled(operationTracingServerDurationEnabled); + } + + public void setOrphanResponseReportingEnabled(boolean orphanResponseReportingEnabled) { + this.couchbaseEnvBuilder.orphanResponseReportingEnabled(orphanResponseReportingEnabled); + } + + public void setCompressionMinSize(int compressionMinSize) { + this.couchbaseEnvBuilder.compressionMinSize(compressionMinSize); + } + + public void setCompressionMinRatio(double compressionMinRatio) { + this.couchbaseEnvBuilder.compressionMinRatio(compressionMinRatio); + } +} \ No newline at end of file diff --git a/src/main/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentParser.java b/src/main/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentParser.java index 6df59204..c4b8a015 100644 --- a/src/main/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentParser.java +++ b/src/main/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentParser.java @@ -135,6 +135,14 @@ public class CouchbaseEnvironmentParser extends AbstractSingleBeanDefinitionPars setPropertyValue(envDefinitionBuilder, envElement, "tcpNodelayEnabled", "tcpNodelayEnabled"); setPropertyValue(envDefinitionBuilder, envElement, "mutationTokensEnabled", "mutationTokensEnabled"); setPropertyValue(envDefinitionBuilder, envElement, "analyticsTimeout", "analyticsTimeout"); + setPropertyValue(envDefinitionBuilder, envElement, "configPollInterval", "configPollInterval"); + setPropertyValue(envDefinitionBuilder, envElement, "configPollFloorInterval", "configPollFloorInterval"); + setPropertyValue(envDefinitionBuilder, envElement, "certAuthEnabled", "certAuthEnabled"); + setPropertyValue(envDefinitionBuilder, envElement, "operationTracingEnabled", "operationTracingEnabled"); + setPropertyValue(envDefinitionBuilder, envElement, "operationTracingServerDurationEnabled", "operationTracingServerDurationEnabled"); + setPropertyValue(envDefinitionBuilder, envElement, "orphanResponseReportingEnabled", "orphanResponseReportingEnabled"); + setPropertyValue(envDefinitionBuilder, envElement, "compressionMinSize", "compressionMinSize"); + setPropertyValue(envDefinitionBuilder, envElement, "compressionMinRatio", "compressionMinRatio"); //retry strategy is particular, in the xsd this is an enum (FailFast, BestEffort) setPropertyValue(envDefinitionBuilder, envElement, "retryStrategy", "retryStrategy"); diff --git a/src/main/resources/org/springframework/data/couchbase/config/spring-couchbase-env-2.0.xsd b/src/main/resources/org/springframework/data/couchbase/config/spring-couchbase-env-2.0.xsd index 5741e6fb..9752a144 100644 --- a/src/main/resources/org/springframework/data/couchbase/config/spring-couchbase-env-2.0.xsd +++ b/src/main/resources/org/springframework/data/couchbase/config/spring-couchbase-env-2.0.xsd @@ -54,6 +54,14 @@ + + + + + + + + diff --git a/src/test/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentParserTest.java b/src/test/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentParserTest.java index d8aa3c60..6e5bbd67 100644 --- a/src/test/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentParserTest.java +++ b/src/test/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentParserTest.java @@ -99,6 +99,13 @@ public class CouchbaseEnvironmentParserTest { assertThat(env.tcpNodelayEnabled(), allOf(equalTo(false), not(defaultEnv.tcpNodelayEnabled()))); assertThat(env.mutationTokensEnabled(), allOf(equalTo(true), not(defaultEnv.mutationTokensEnabled()))); assertThat(env.analyticsTimeout(), is(equalTo(30L))); + assertThat(env.configPollInterval(), is(equalTo(50L))); + assertThat(env.configPollFloorInterval(), is(equalTo(30L))); + assertThat(env.operationTracingEnabled(), allOf(equalTo(false), not(defaultEnv.operationTracingEnabled()))); + assertThat(env.operationTracingServerDurationEnabled(), allOf(equalTo(false), not(defaultEnv.operationTracingServerDurationEnabled()))); + assertThat(env.orphanResponseReportingEnabled(), allOf(equalTo(false), not(defaultEnv.orphanResponseReportingEnabled()))); + assertThat(env.compressionMinSize(), is(equalTo(100))); + assertThat(env.compressionMinRatio(), is(equalTo(0.90))); } @AfterClass diff --git a/src/test/resources/configurations/couchbaseEnv-bean.xml b/src/test/resources/configurations/couchbaseEnv-bean.xml index 5337f812..975cf2fb 100644 --- a/src/test/resources/configurations/couchbaseEnv-bean.xml +++ b/src/test/resources/configurations/couchbaseEnv-bean.xml @@ -43,6 +43,13 @@ tcpNodelayEnabled="false" mutationTokensEnabled="true" analyticsTimeout = "30" + configPollInterval="50" + configPollFloorInterval="30" + operationTracingServerDurationEnabled="false" + operationTracingEnabled="false" + orphanResponseReportingEnabled="false" + compressionMinSize="100" + compressionMinRatio="0.90" /> \ No newline at end of file