diff options
7 files changed, 67 insertions, 3 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerTestDriver.java b/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerTestDriver.java index 8243ad07760..a3e264c16ee 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerTestDriver.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerTestDriver.java @@ -127,7 +127,7 @@ public class RequestHandlerTestDriver implements AutoCloseable { public String read() { ByteBuffer nextBuffer = content.read(); if (nextBuffer == null) return null; // end of transmission - return Charset.forName("utf-8").decode(nextBuffer).toString(); + return StandardCharsets.UTF_8.decode(nextBuffer).toString(); } /** Returns the number of bytes available in the handler right now */ diff --git a/document/abi-spec.json b/document/abi-spec.json index e53cf09f07e..c9191aa2fdb 100644 --- a/document/abi-spec.json +++ b/document/abi-spec.json @@ -399,6 +399,8 @@ "public com.yahoo.document.DocumentId getId()", "public void <init>(com.yahoo.document.DocumentPut)", "public void <init>(com.yahoo.document.DocumentPut, com.yahoo.document.Document)", + "public boolean equals(java.lang.Object)", + "public int hashCode()", "public java.lang.String toString()" ], "fields": [] @@ -1929,6 +1931,8 @@ "public java.lang.String getSelection()", "public boolean isPresent()", "public static com.yahoo.document.TestAndSetCondition fromConditionString(java.util.Optional)", + "public boolean equals(java.lang.Object)", + "public int hashCode()", "public java.lang.String toString()" ], "fields": [ diff --git a/document/src/main/java/com/yahoo/document/DocumentPut.java b/document/src/main/java/com/yahoo/document/DocumentPut.java index c5ce2e7e181..e24388cd65f 100644 --- a/document/src/main/java/com/yahoo/document/DocumentPut.java +++ b/document/src/main/java/com/yahoo/document/DocumentPut.java @@ -1,6 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document; +import java.util.Objects; + /** * @author Vegard Sjonfjell */ @@ -47,6 +49,20 @@ public class DocumentPut extends DocumentOperation { } @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DocumentPut that = (DocumentPut) o; + return document.equals(that.document) && + getCondition().equals(that.getCondition()); + } + + @Override + public int hashCode() { + return Objects.hash(document, getCondition()); + } + + @Override public String toString() { return "put of document " + getId(); } diff --git a/document/src/main/java/com/yahoo/document/TestAndSetCondition.java b/document/src/main/java/com/yahoo/document/TestAndSetCondition.java index 6a189fc2969..a582807e38c 100644 --- a/document/src/main/java/com/yahoo/document/TestAndSetCondition.java +++ b/document/src/main/java/com/yahoo/document/TestAndSetCondition.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document; +import java.util.Objects; import java.util.Optional; /** @@ -43,6 +44,19 @@ public class TestAndSetCondition { } @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TestAndSetCondition that = (TestAndSetCondition) o; + return conditionStr.equals(that.conditionStr); + } + + @Override + public int hashCode() { + return Objects.hash(conditionStr); + } + + @Override public String toString() { StringBuilder string = new StringBuilder(); string.append("condition '"); diff --git a/documentapi/abi-spec.json b/documentapi/abi-spec.json index e531e886dd9..6b44153faca 100644 --- a/documentapi/abi-spec.json +++ b/documentapi/abi-spec.json @@ -170,7 +170,10 @@ "public java.util.Optional priority()", "public java.util.Optional fieldSet()", "public java.util.Optional route()", - "public java.util.OptionalInt traceLevel()" + "public java.util.OptionalInt traceLevel()", + "public boolean equals(java.lang.Object)", + "public int hashCode()", + "public java.lang.String toString()" ], "fields": [] }, diff --git a/documentapi/src/main/java/com/yahoo/documentapi/DocumentOperationParameters.java b/documentapi/src/main/java/com/yahoo/documentapi/DocumentOperationParameters.java index 3258c2f5b2c..05535e540b5 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/DocumentOperationParameters.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/DocumentOperationParameters.java @@ -5,6 +5,7 @@ import com.yahoo.document.fieldset.FieldSet; import com.yahoo.document.fieldset.FieldSetRepo; import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol; +import java.util.Objects; import java.util.Optional; import java.util.OptionalInt; @@ -68,4 +69,30 @@ public class DocumentOperationParameters { public Optional<String> route() { return Optional.ofNullable(route); } public OptionalInt traceLevel() { return traceLevel >= 0 ? OptionalInt.of(traceLevel) : OptionalInt.empty(); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DocumentOperationParameters that = (DocumentOperationParameters) o; + return traceLevel == that.traceLevel && + priority == that.priority && + Objects.equals(fieldSet, that.fieldSet) && + Objects.equals(route, that.route); + } + + @Override + public int hashCode() { + return Objects.hash(priority, fieldSet, route, traceLevel); + } + + @Override + public String toString() { + return "DocumentOperationParameters{" + + "priority=" + priority + + ", fieldSet='" + fieldSet + '\'' + + ", route='" + route + '\'' + + ", traceLevel=" + traceLevel + + '}'; + } + } diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestDriver.java b/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestDriver.java index 35d29fd9e44..eebaf1f579f 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestDriver.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestDriver.java @@ -41,7 +41,7 @@ import java.util.concurrent.atomic.AtomicInteger; * {@link BootstrapLoader} that provides convenient access to the {@link ContainerActivator} and {@link * CurrentContainer} interfaces. A typical test case using this class looks as follows:</p> * <pre> - * {@literal @}Test + *{@literal @}Test * public void requireThatMyComponentIsWellBehaved() { * TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(); * ContainerBuilder builder = driver.newContainerBuilder(); |