summaryrefslogtreecommitdiffstats
path: root/vespa-feed-client
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-06-14 14:00:09 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-06-14 14:00:09 +0200
commit23cbd8709a46962bf825fa3c986b4019ceca7747 (patch)
treefc149407977fbc3284a0d73a0b4f7c8a0202f6a1 /vespa-feed-client
parent291e527fb70897742f16caa4b3c7062cc6e47708 (diff)
Export Javadoc + monitor for ABI changes
Diffstat (limited to 'vespa-feed-client')
-rw-r--r--vespa-feed-client/abi-spec.json332
-rw-r--r--vespa-feed-client/pom.xml9
-rw-r--r--vespa-feed-client/src/main/java/ai/vespa/feed/client/package-info.java9
3 files changed, 350 insertions, 0 deletions
diff --git a/vespa-feed-client/abi-spec.json b/vespa-feed-client/abi-spec.json
new file mode 100644
index 00000000000..06da776b6c6
--- /dev/null
+++ b/vespa-feed-client/abi-spec.json
@@ -0,0 +1,332 @@
+{
+ "ai.vespa.feed.client.BenchmarkingCluster": {
+ "superClass": "java.lang.Object",
+ "interfaces": [
+ "ai.vespa.feed.client.Cluster"
+ ],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void <init>(ai.vespa.feed.client.Cluster)",
+ "public void dispatch(ai.vespa.feed.client.HttpRequest, java.util.concurrent.CompletableFuture)",
+ "public ai.vespa.feed.client.OperationStats stats()",
+ "public void close()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.DocumentId": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public static ai.vespa.feed.client.DocumentId of(java.lang.String, java.lang.String, java.lang.String)",
+ "public static ai.vespa.feed.client.DocumentId of(java.lang.String, java.lang.String, long, java.lang.String)",
+ "public static ai.vespa.feed.client.DocumentId of(java.lang.String, java.lang.String, java.lang.String, java.lang.String)",
+ "public static ai.vespa.feed.client.DocumentId of(java.lang.String)",
+ "public java.lang.String documentType()",
+ "public java.lang.String namespace()",
+ "public java.util.OptionalLong number()",
+ "public java.util.Optional group()",
+ "public java.lang.String userSpecific()",
+ "public boolean equals(java.lang.Object)",
+ "public int hashCode()",
+ "public java.lang.String toString()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.FeedClient$CircuitBreaker$State": {
+ "superClass": "java.lang.Enum",
+ "interfaces": [],
+ "attributes": [
+ "public",
+ "final",
+ "enum"
+ ],
+ "methods": [
+ "public static ai.vespa.feed.client.FeedClient$CircuitBreaker$State[] values()",
+ "public static ai.vespa.feed.client.FeedClient$CircuitBreaker$State valueOf(java.lang.String)"
+ ],
+ "fields": [
+ "public static final enum ai.vespa.feed.client.FeedClient$CircuitBreaker$State CLOSED",
+ "public static final enum ai.vespa.feed.client.FeedClient$CircuitBreaker$State HALF_OPEN",
+ "public static final enum ai.vespa.feed.client.FeedClient$CircuitBreaker$State OPEN"
+ ]
+ },
+ "ai.vespa.feed.client.FeedClient$CircuitBreaker": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public",
+ "interface",
+ "abstract"
+ ],
+ "methods": [
+ "public abstract void success()",
+ "public abstract void failure()",
+ "public abstract ai.vespa.feed.client.FeedClient$CircuitBreaker$State state()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.FeedClient$OperationType": {
+ "superClass": "java.lang.Enum",
+ "interfaces": [],
+ "attributes": [
+ "public",
+ "final",
+ "enum"
+ ],
+ "methods": [
+ "public static ai.vespa.feed.client.FeedClient$OperationType[] values()",
+ "public static ai.vespa.feed.client.FeedClient$OperationType valueOf(java.lang.String)"
+ ],
+ "fields": [
+ "public static final enum ai.vespa.feed.client.FeedClient$OperationType PUT",
+ "public static final enum ai.vespa.feed.client.FeedClient$OperationType UPDATE",
+ "public static final enum ai.vespa.feed.client.FeedClient$OperationType REMOVE"
+ ]
+ },
+ "ai.vespa.feed.client.FeedClient$RetryStrategy": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public",
+ "interface",
+ "abstract"
+ ],
+ "methods": [
+ "public boolean retry(ai.vespa.feed.client.FeedClient$OperationType)",
+ "public int retries()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.FeedClient": {
+ "superClass": "java.lang.Object",
+ "interfaces": [
+ "java.io.Closeable"
+ ],
+ "attributes": [
+ "public",
+ "interface",
+ "abstract"
+ ],
+ "methods": [
+ "public abstract java.util.concurrent.CompletableFuture put(ai.vespa.feed.client.DocumentId, java.lang.String, ai.vespa.feed.client.OperationParameters)",
+ "public abstract java.util.concurrent.CompletableFuture update(ai.vespa.feed.client.DocumentId, java.lang.String, ai.vespa.feed.client.OperationParameters)",
+ "public abstract java.util.concurrent.CompletableFuture remove(ai.vespa.feed.client.DocumentId, ai.vespa.feed.client.OperationParameters)",
+ "public abstract ai.vespa.feed.client.OperationStats stats()",
+ "public ai.vespa.feed.client.FeedClient$CircuitBreaker$State circuitBreakerState()",
+ "public abstract void close(boolean)",
+ "public void close()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.FeedClientBuilder": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public static ai.vespa.feed.client.FeedClientBuilder create(java.net.URI)",
+ "public static ai.vespa.feed.client.FeedClientBuilder create(java.util.List)",
+ "public ai.vespa.feed.client.FeedClientBuilder setConnectionsPerEndpoint(int)",
+ "public ai.vespa.feed.client.FeedClientBuilder setMaxStreamPerConnection(int)",
+ "public ai.vespa.feed.client.FeedClientBuilder setSslContext(javax.net.ssl.SSLContext)",
+ "public ai.vespa.feed.client.FeedClientBuilder setHostnameVerifier(javax.net.ssl.HostnameVerifier)",
+ "public ai.vespa.feed.client.FeedClientBuilder addRequestHeader(java.lang.String, java.lang.String)",
+ "public ai.vespa.feed.client.FeedClientBuilder addRequestHeader(java.lang.String, java.util.function.Supplier)",
+ "public ai.vespa.feed.client.FeedClientBuilder setRetryStrategy(ai.vespa.feed.client.FeedClient$RetryStrategy)",
+ "public ai.vespa.feed.client.FeedClientBuilder setCircuitBreaker(ai.vespa.feed.client.FeedClient$CircuitBreaker)",
+ "public ai.vespa.feed.client.FeedClientBuilder setCertificate(java.nio.file.Path, java.nio.file.Path)",
+ "public ai.vespa.feed.client.FeedClientBuilder setCertificate(java.util.Collection, java.security.PrivateKey)",
+ "public ai.vespa.feed.client.FeedClientBuilder setCertificate(java.security.cert.X509Certificate, java.security.PrivateKey)",
+ "public ai.vespa.feed.client.FeedClientBuilder setCaCertificatesFile(java.nio.file.Path)",
+ "public ai.vespa.feed.client.FeedClientBuilder setCaCertificates(java.util.Collection)",
+ "public ai.vespa.feed.client.FeedClient build()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.FeedException": {
+ "superClass": "java.lang.RuntimeException",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void <init>(java.lang.String)",
+ "public void <init>(java.lang.String, java.lang.Throwable)",
+ "public void <init>(java.lang.Throwable)"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.GracePeriodCircuitBreaker": {
+ "superClass": "java.lang.Object",
+ "interfaces": [
+ "ai.vespa.feed.client.FeedClient$CircuitBreaker"
+ ],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void <init>(java.time.Duration, java.time.Duration)",
+ "public void success()",
+ "public void failure()",
+ "public ai.vespa.feed.client.FeedClient$CircuitBreaker$State state()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.JsonFeeder$Builder": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public ai.vespa.feed.client.JsonFeeder$Builder withTimeout(java.time.Duration)",
+ "public ai.vespa.feed.client.JsonFeeder$Builder withRoute(java.lang.String)",
+ "public ai.vespa.feed.client.JsonFeeder$Builder withTracelevel(int)",
+ "public ai.vespa.feed.client.JsonFeeder build()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.JsonFeeder$ResultCallback": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public",
+ "interface",
+ "abstract"
+ ],
+ "methods": [
+ "public void onNextResult(ai.vespa.feed.client.Result, java.lang.Throwable)",
+ "public void onError(java.lang.Throwable)",
+ "public void onComplete()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.JsonFeeder": {
+ "superClass": "java.lang.Object",
+ "interfaces": [
+ "java.io.Closeable"
+ ],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public static ai.vespa.feed.client.JsonFeeder$Builder builder(ai.vespa.feed.client.FeedClient)",
+ "public java.util.concurrent.CompletableFuture feedSingle(java.lang.String)",
+ "public java.util.concurrent.CompletableFuture feedMany(java.io.InputStream, ai.vespa.feed.client.JsonFeeder$ResultCallback)",
+ "public java.util.concurrent.CompletableFuture feedMany(java.io.InputStream)",
+ "public void close()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.JsonParseException": {
+ "superClass": "ai.vespa.feed.client.FeedException",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void <init>(java.lang.String)",
+ "public void <init>(java.lang.String, java.lang.Throwable)"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.OkCluster": {
+ "superClass": "java.lang.Object",
+ "interfaces": [
+ "ai.vespa.feed.client.Cluster"
+ ],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void dispatch(ai.vespa.feed.client.HttpRequest, java.util.concurrent.CompletableFuture)",
+ "public void close()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.OperationParameters": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public static ai.vespa.feed.client.OperationParameters empty()",
+ "public ai.vespa.feed.client.OperationParameters createIfNonExistent(boolean)",
+ "public ai.vespa.feed.client.OperationParameters testAndSetCondition(java.lang.String)",
+ "public ai.vespa.feed.client.OperationParameters timeout(java.time.Duration)",
+ "public ai.vespa.feed.client.OperationParameters route(java.lang.String)",
+ "public ai.vespa.feed.client.OperationParameters tracelevel(int)",
+ "public boolean createIfNonExistent()",
+ "public java.util.Optional testAndSetCondition()",
+ "public java.util.Optional timeout()",
+ "public java.util.Optional route()",
+ "public java.util.OptionalInt tracelevel()",
+ "public boolean equals(java.lang.Object)",
+ "public int hashCode()",
+ "public java.lang.String toString()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.OperationStats": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void <init>(long, java.util.Map, long, long, long, long, long, long, long)",
+ "public long requests()",
+ "public long responses()",
+ "public long successes()",
+ "public java.util.Map responsesByCode()",
+ "public long exceptions()",
+ "public long inflight()",
+ "public long averageLatencyMillis()",
+ "public long minLatencyMillis()",
+ "public long maxLatencyMillis()",
+ "public long bytesSent()",
+ "public long bytesReceived()",
+ "public java.lang.String toString()"
+ ],
+ "fields": []
+ },
+ "ai.vespa.feed.client.Result$Type": {
+ "superClass": "java.lang.Enum",
+ "interfaces": [],
+ "attributes": [
+ "public",
+ "final",
+ "enum"
+ ],
+ "methods": [
+ "public static ai.vespa.feed.client.Result$Type[] values()",
+ "public static ai.vespa.feed.client.Result$Type valueOf(java.lang.String)"
+ ],
+ "fields": [
+ "public static final enum ai.vespa.feed.client.Result$Type success",
+ "public static final enum ai.vespa.feed.client.Result$Type conditionNotMet",
+ "public static final enum ai.vespa.feed.client.Result$Type failure"
+ ]
+ },
+ "ai.vespa.feed.client.Result": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public ai.vespa.feed.client.Result$Type type()",
+ "public ai.vespa.feed.client.DocumentId documentId()",
+ "public java.util.Optional resultMessage()",
+ "public java.util.Optional traceMessage()"
+ ],
+ "fields": []
+ }
+} \ No newline at end of file
diff --git a/vespa-feed-client/pom.xml b/vespa-feed-client/pom.xml
index 85377c25241..b0d12431c05 100644
--- a/vespa-feed-client/pom.xml
+++ b/vespa-feed-client/pom.xml
@@ -20,6 +20,11 @@
<dependencies>
<!-- compile scope -->
<dependency>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>annotations</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<scope>compile</scope>
@@ -100,6 +105,10 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>abi-check-plugin</artifactId>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/vespa-feed-client/src/main/java/ai/vespa/feed/client/package-info.java b/vespa-feed-client/src/main/java/ai/vespa/feed/client/package-info.java
new file mode 100644
index 00000000000..e058b9b921e
--- /dev/null
+++ b/vespa-feed-client/src/main/java/ai/vespa/feed/client/package-info.java
@@ -0,0 +1,9 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+/**
+ * @author bjorncs
+ */
+
+@PublicApi
+package ai.vespa.feed.client;
+
+import com.yahoo.api.annotations.PublicApi; \ No newline at end of file