This is an automated email from the ASF dual-hosted git repository. piotr pushed a commit to branch non_string_header_key in repository https://gitbox.apache.org/repos/asf/iggy.git
commit df3348fb464fd0c82fc9eec8c21c9b6185b98a95 Merge: b1cc06dc2 d4f9ebc10 Author: spetz <[email protected]> AuthorDate: Fri Jan 30 13:17:59 2026 +0100 merge .github/actions/go/pre-merge/action.yml | 2 +- bdd/go/Dockerfile | 2 +- .../org/apache/iggy/bdd/BasicMessagingSteps.java | 1 + .../iggy/examples/async/AsyncConsumerExample.java | 10 +- .../apache/iggy/examples/async/AsyncProducer.java | 12 +- .../consumer/GettingStartedConsumer.java | 2 +- .../producer/GettingStartedProducer.java | 2 +- .../consumer/MessageEnvelopeConsumer.java | 2 +- .../producer/MessageEnvelopeProducer.java | 2 +- .../consumer/MessageHeadersConsumer.java | 2 +- .../producer/MessageHeadersProducer.java | 2 +- .../multitenant/consumer/MultiTenantConsumer.java | 4 +- .../multitenant/producer/MultiTenantProducer.java | 4 +- .../sinkdataproducer/SinkDataProducer.java | 2 +- .../iggy/examples/streambuilder/StreamBasic.java | 2 +- foreign/java/README.md | 129 ++++++++ .../flink/source/IggyPartitionSplitReader.java | 2 +- .../iggy/connector/flink/source/IggySource.java | 12 +- .../flink/source/IggySourceSplitEnumerator.java | 2 +- .../flink/example/AsyncTcpMessagePollTest.java | 30 +- .../flink/example/AsyncTcpMessageSendTest.java | 26 +- .../iggy/flink/example/SendTextDataTest.java | 11 +- .../pinot/consumer/IggyPartitionGroupConsumer.java | 9 +- .../pinot/metadata/IggyStreamMetadataProvider.java | 9 +- foreign/java/java-sdk/build.gradle.kts | 18 ++ .../src/main/java/org/apache/iggy/Iggy.java | 86 +++++- .../src/main/java/org/apache/iggy/IggyVersion.java | 135 ++++++++ .../org/apache/iggy/builder/HttpClientBuilder.java | 66 ++++ .../org/apache/iggy/builder/TcpClientBuilder.java | 86 ++++++ .../apache/iggy/client/async/MessagesClient.java | 12 +- .../apache/iggy/client/async/StreamsClient.java | 22 +- .../org/apache/iggy/client/async/TopicsClient.java | 10 +- .../org/apache/iggy/client/async/UsersClient.java | 4 +- .../iggy/client/async/tcp/AsyncIggyTcpClient.java | 307 +++---------------- .../async/tcp/AsyncIggyTcpClientBuilder.java | 246 +++++++++++++++ .../iggy/client/async/tcp/AsyncTcpConnection.java | 17 +- .../client/async/tcp/ConsumerGroupsTcpClient.java | 4 +- .../iggy/client/async/tcp/MessagesTcpClient.java | 30 +- .../iggy/client/async/tcp/StreamsTcpClient.java | 34 +-- .../iggy/client/async/tcp/TopicsTcpClient.java | 60 ++-- .../iggy/client/async/tcp/UsersTcpClient.java | 13 +- .../blocking/http/ConsumerGroupsHttpClient.java | 5 +- .../iggy/client/blocking/http/IggyHttpClient.java | 76 ++++- .../blocking/http/IggyHttpClientBuilder.java | 237 +++++++++++++++ .../client/blocking/http/InternalHttpClient.java | 75 ++++- .../client/blocking/http/SystemHttpClient.java | 3 +- .../iggy/client/blocking/http/UrlValidator.java | 60 ++++ .../iggy/client/blocking/http/UsersHttpClient.java | 5 +- .../client/blocking/http/error/IggyHttpError.java | 22 -- .../iggy/client/blocking/tcp/IggyTcpClient.java | 338 +++++---------------- .../client/blocking/tcp/IggyTcpClientBuilder.java | 245 +++++++++++++++ .../client/blocking/tcp/InternalTcpClient.java | 15 +- .../iggy/client/blocking/tcp/UsersTcpClient.java | 5 +- .../java/org/apache/iggy/config/RetryPolicy.java | 130 ++++++++ .../exception/IggyAuthenticationException.java | 70 +++++ .../iggy/exception/IggyAuthorizationException.java | 63 ++++ .../IggyClientException.java} | 32 +- .../iggy/exception/IggyConflictException.java | 69 +++++ .../exception/IggyConnectionClosedException.java | 52 ++++ .../IggyConnectionException.java} | 32 +- .../IggyEmptyResponseException.java} | 32 +- .../org/apache/iggy/exception/IggyErrorCode.java | 162 ++++++++++ .../org/apache/iggy/exception/IggyException.java | 58 ++++ .../IggyInvalidArgumentException.java} | 32 +- .../IggyMalformedResponseException.java} | 28 +- .../IggyMissingCredentialsException.java} | 34 ++- .../IggyNotConnectedException.java} | 25 +- .../IggyOperationNotSupportedException.java | 72 +++++ .../IggyProtocolException.java} | 32 +- .../exception/IggyResourceNotFoundException.java | 76 +++++ .../apache/iggy/exception/IggyServerException.java | 206 +++++++++++++ .../IggyTimeoutException.java} | 36 ++- .../IggyTlsException.java} | 32 +- .../iggy/exception/IggyValidationException.java | 80 +++++ .../org/apache/iggy/identifier/Identifier.java | 5 +- .../org/apache/iggy/message/BytesMessageId.java | 3 +- .../java/org/apache/iggy/message/HeaderKind.java | 3 +- .../java/org/apache/iggy/message/MessageState.java | 4 +- .../java/org/apache/iggy/message/Partitioning.java | 3 +- .../org/apache/iggy/serde/BytesSerializer.java | 11 +- .../apache/iggy/topic/CompressionAlgorithm.java | 4 +- .../main/java/org/apache/iggy/user/UserStatus.java | 3 +- .../src/main/resources/iggy-version.properties | 3 + .../src/test/java/org/apache/iggy/IggyTest.java | 74 ++++- .../test/java/org/apache/iggy/IggyVersionTest.java | 113 +++++++ .../client/async/AsyncClientIntegrationTest.java | 41 ++- .../iggy/client/async/AsyncPollMessageTest.java | 31 +- .../async/tcp/AsyncIggyTcpClientBuilderTest.java | 187 ++---------- .../iggy/client/blocking/IntegrationTest.java | 1 + .../client/blocking/http/HttpClientFactory.java | 3 +- .../client/blocking/http/UrlValidatorTest.java | 90 ++++++ .../client/blocking/tcp/BytesSerializerTest.java | 13 +- .../blocking/tcp/IggyTcpClientBuilderTest.java | 103 +++---- .../iggy/client/blocking/tcp/TcpClientFactory.java | 13 +- .../apache/iggy/exception/IggyErrorCodeTest.java | 149 +++++++++ .../iggy/exception/IggyServerExceptionTest.java | 156 ++++++++++ 96 files changed, 3683 insertions(+), 1200 deletions(-) diff --cc foreign/java/java-sdk/src/main/java/org/apache/iggy/message/HeaderKind.java index fe1bf2ebf,00f024c25..753a9ee5a --- a/foreign/java/java-sdk/src/main/java/org/apache/iggy/message/HeaderKind.java +++ b/foreign/java/java-sdk/src/main/java/org/apache/iggy/message/HeaderKind.java @@@ -19,38 -19,23 +19,39 @@@ package org.apache.iggy.message; +import com.fasterxml.jackson.annotation.JsonProperty; + import org.apache.iggy.exception.IggyInvalidArgumentException; public enum HeaderKind { + @JsonProperty("raw") Raw(1), + @JsonProperty("string") String(2), + @JsonProperty("bool") Bool(3), + @JsonProperty("int8") Int8(4), + @JsonProperty("int16") Int16(5), + @JsonProperty("int32") Int32(6), + @JsonProperty("int64") Int64(7), + @JsonProperty("int128") Int128(8), + @JsonProperty("uint8") Uint8(9), + @JsonProperty("uint16") Uint16(10), + @JsonProperty("uint32") Uint32(11), + @JsonProperty("uint64") Uint64(12), + @JsonProperty("uint128") Uint128(13), + @JsonProperty("float32") Float32(14), + @JsonProperty("float64") Float64(15); private final int code; diff --cc foreign/java/java-sdk/src/main/java/org/apache/iggy/message/Partitioning.java index 50a1e8a67,c725eb4ee..c451510d2 --- a/foreign/java/java-sdk/src/main/java/org/apache/iggy/message/Partitioning.java +++ b/foreign/java/java-sdk/src/main/java/org/apache/iggy/message/Partitioning.java @@@ -20,8 -20,7 +20,9 @@@ package org.apache.iggy.message; import org.apache.commons.lang3.ArrayUtils; + import org.apache.iggy.exception.IggyInvalidArgumentException; +import org.apache.iggy.serde.Base64Serializer; +import tools.jackson.databind.annotation.JsonSerialize; import java.nio.ByteBuffer; diff --cc foreign/java/java-sdk/src/main/java/org/apache/iggy/serde/BytesSerializer.java index 8e61d6df7,9971575ee..cc6f6bd11 --- a/foreign/java/java-sdk/src/main/java/org/apache/iggy/serde/BytesSerializer.java +++ b/foreign/java/java-sdk/src/main/java/org/apache/iggy/serde/BytesSerializer.java @@@ -23,8 -23,8 +23,9 @@@ import io.netty.buffer.ByteBuf import io.netty.buffer.Unpooled; import org.apache.commons.lang3.ArrayUtils; import org.apache.iggy.consumergroup.Consumer; + import org.apache.iggy.exception.IggyInvalidArgumentException; import org.apache.iggy.identifier.Identifier; +import org.apache.iggy.message.HeaderKey; import org.apache.iggy.message.HeaderValue; import org.apache.iggy.message.Message; import org.apache.iggy.message.MessageHeader; @@@ -218,8 -217,8 +219,8 @@@ public final class BytesSerializer } ByteBuf buffer = Unpooled.buffer(8, 8); byte[] valueAsBytes = value.toByteArray(); - if (valueAsBytes.length > 9 || valueAsBytes.length == 9 && valueAsBytes[0] != 0) { + if (valueAsBytes.length > 9 || (valueAsBytes.length == 9 && valueAsBytes[0] != 0)) { - throw new IllegalArgumentException("Value too large for U64: " + value); + throw new IggyInvalidArgumentException("Value too large for U64: " + value); } ArrayUtils.reverse(valueAsBytes); buffer.writeBytes(valueAsBytes, 0, Math.min(8, valueAsBytes.length)); @@@ -235,8 -234,8 +236,8 @@@ } ByteBuf buffer = Unpooled.buffer(16, 16); byte[] valueAsBytes = value.toByteArray(); - if (valueAsBytes.length > 17 || valueAsBytes.length == 17 && valueAsBytes[0] != 0) { + if (valueAsBytes.length > 17 || (valueAsBytes.length == 17 && valueAsBytes[0] != 0)) { - throw new IllegalArgumentException("Value too large for U128: " + value); + throw new IggyInvalidArgumentException("Value too large for U128: " + value); } ArrayUtils.reverse(valueAsBytes); buffer.writeBytes(valueAsBytes, 0, Math.min(16, valueAsBytes.length));
