From 3e9f84992b1064df980254a8ee57ddc387049307 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Schmidt Date: Sun, 13 Jul 2025 20:16:21 +0200 Subject: [PATCH 1/4] feat: Add read-only getters for `Point.fields` and `Point.tags` This makes testing easier. --- .../java/com/influxdb/client/write/Point.java | 19 +++++++++++++++++ .../com/influxdb/client/write/PointTest.java | 21 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/client/src/main/java/com/influxdb/client/write/Point.java b/client/src/main/java/com/influxdb/client/write/Point.java index cc0d38c4d25..a8530f9ddf6 100644 --- a/client/src/main/java/com/influxdb/client/write/Point.java +++ b/client/src/main/java/com/influxdb/client/write/Point.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Set; import java.util.TreeMap; +import java.util.Collections; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -95,6 +96,24 @@ public static Point measurement(@Nonnull final String measurementName) { return new Point(measurementName); } + /** + * Returns a read-only reference to the tags. + * @return The point tags as read-only map. + */ + @Nonnull + public Map getTags() { + return Collections.unmodifiableMap(this.tags); + } + + /** + * Returns a read-only reference to the fields. + * @return The point fields as read-only map. + */ + @Nonnull + public Map getFields() { + return Collections.unmodifiableMap(this.fields); + } + /** * Adds or replaces a tag value for this point. * diff --git a/client/src/test/java/com/influxdb/client/write/PointTest.java b/client/src/test/java/com/influxdb/client/write/PointTest.java index e93827055e5..b71aad0afe6 100644 --- a/client/src/test/java/com/influxdb/client/write/PointTest.java +++ b/client/src/test/java/com/influxdb/client/write/PointTest.java @@ -24,13 +24,17 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.time.Instant; +import java.util.Collections; import java.util.HashMap; +import java.util.Map; import com.influxdb.client.domain.WritePrecision; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertThrows; + /** * @author Jakub Bednar (bednar@github) (11/10/2018 12:57) */ @@ -438,4 +442,21 @@ void addFields() { Assertions.assertThat(point.toLineProtocol()).isEqualTo("h2o,location=europe accepted=true,level=2i,power=2.56"); } + + @Test + void getFieldsGetTags() { + Point point = Point.measurement("h2 o") + .addTag("location", "europe") + .addField("level", 2); + + Map fields = point.getFields(); + Map tags = point.getTags(); + + Assertions.assertThat(fields).isEqualTo(Map.of("level",2L)); + Assertions.assertThat(tags).isEqualTo(Map.of("location","europe")); + + // Assert that returned maps are immutable + assertThrows(UnsupportedOperationException.class, () -> fields.put("test", "value")); + assertThrows(UnsupportedOperationException.class, () -> tags.put("test", "value")); + } } \ No newline at end of file From 42559dcdd44be3513250c8af59c14e24bca8eee9 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Schmidt Date: Sun, 13 Jul 2025 20:22:39 +0200 Subject: [PATCH 2/4] docs: Add #828 to changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca05fae6ec3..c4b8a81e69e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ - [#848](https://github.com/influxdata/influxdb-client-java/pull/848): new WriteOption config for capturing backpressure data +### Features + +- [#828](https://github.com/influxdata/influxdb-client-java/pull/828): Add read-only getters for `Point.fields` and `Point.tags` + ## 7.3.0 [2025-05-22] ### Features From e01137c08bff97bb27ba2d17257042804d060ff4 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Schmidt Date: Sun, 13 Jul 2025 20:29:56 +0200 Subject: [PATCH 3/4] style: Fix checkstyle warning --- client/src/main/java/com/influxdb/client/write/Point.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/main/java/com/influxdb/client/write/Point.java b/client/src/main/java/com/influxdb/client/write/Point.java index a8530f9ddf6..c8f6eee21be 100644 --- a/client/src/main/java/com/influxdb/client/write/Point.java +++ b/client/src/main/java/com/influxdb/client/write/Point.java @@ -26,11 +26,11 @@ import java.text.NumberFormat; import java.time.Instant; import java.util.Collection; +import java.util.Collections; import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.TreeMap; -import java.util.Collections; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; From 996b13ca64e8733b8d0b89611e2c3cbafdca72b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Bedn=C3=A1=C5=99?= Date: Thu, 18 Dec 2025 09:59:45 +0100 Subject: [PATCH 4/4] docs: update CHANGELOG.md --- CHANGELOG.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4b8a81e69e..799fe3dd554 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,14 @@ ## 7.5.0 [unreleased] -## 7.4.0 [2025-11-18] - ### Features -- [#848](https://github.com/influxdata/influxdb-client-java/pull/848): new WriteOption config for capturing backpressure data +- [#828](https://github.com/influxdata/influxdb-client-java/pull/828): Add read-only getters for `Point.fields` and `Point.tags` + +## 7.4.0 [2025-11-18] ### Features -- [#828](https://github.com/influxdata/influxdb-client-java/pull/828): Add read-only getters for `Point.fields` and `Point.tags` +- [#848](https://github.com/influxdata/influxdb-client-java/pull/848): new WriteOption config for capturing backpressure data ## 7.3.0 [2025-05-22]