Skip to content

Commit d18c7b8

Browse files
committed
Naming and other cleanup
1 parent baafb52 commit d18c7b8

File tree

6 files changed

+77
-17
lines changed

6 files changed

+77
-17
lines changed

src/main/java/io/nats/client/support/JsonEncoding.java renamed to src/main/java/io/nats/client/support/Encoding.java

Lines changed: 71 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,69 @@
1313

1414
package io.nats.client.support;
1515

16-
public abstract class JsonEncoding {
17-
private JsonEncoding() {} /* ensures cannot be constructed */
16+
import java.io.UnsupportedEncodingException;
17+
import java.net.URLDecoder;
18+
import java.nio.charset.StandardCharsets;
19+
import java.util.Base64;
20+
21+
public abstract class Encoding {
22+
private Encoding() {} /* ensures cannot be constructed */
23+
24+
/**
25+
* base64 url encode a byte array to a byte array
26+
* @param input the input byte array to encode
27+
* @return the encoded byte array
28+
* @deprecated prefer base64UrlEncode
29+
*/
30+
@Deprecated
31+
public static byte[] base64Encode(byte[] input) {
32+
return Base64.getUrlEncoder().withoutPadding().encode(input);
33+
}
34+
35+
/**
36+
* base64 url encode a byte array to a byte array
37+
* @param input the input byte array to encode
38+
* @return the encoded byte array
39+
*/
40+
public static byte[] base64UrlEncode(byte[] input) {
41+
return Base64.getUrlEncoder().withoutPadding().encode(input);
42+
}
43+
44+
/**
45+
* base64 url encode a byte array to a string
46+
* @param input the input byte array to encode
47+
* @return the encoded string
48+
*/
49+
public static String toBase64Url(byte[] input) {
50+
return new String(base64UrlEncode(input));
51+
}
52+
53+
/**
54+
* base64 url encode a string to a string
55+
* @param input the input string to encode
56+
* @return the encoded string
57+
*/
58+
public static String toBase64Url(String input) {
59+
return new String(base64UrlEncode(input.getBytes(StandardCharsets.US_ASCII)));
60+
}
61+
62+
/**
63+
* base64 url decode a byte array
64+
* @param input the input byte array to decode
65+
* @return the decoded byte array
66+
*/
67+
public static byte[] base64UrlDecode(byte[] input) {
68+
return Base64.getUrlDecoder().decode(input);
69+
}
70+
71+
/**
72+
* get a string from a base64 url encoded byte array
73+
* @param input the input string to decode
74+
* @return the decoded string
75+
*/
76+
public static String fromBase64Url(String input) {
77+
return new String(base64UrlDecode(input.getBytes(StandardCharsets.US_ASCII)));
78+
}
1879

1980
public static String jsonDecode(String s) {
2081
int len = s.length();
@@ -109,4 +170,12 @@ public static StringBuilder jsonEncode(StringBuilder sb, String s) {
109170
}
110171
return sb;
111172
}
173+
174+
public static String uriDecode(String source) {
175+
try {
176+
return URLDecoder.decode(source.replace("+", "%2B"), "UTF-8");
177+
} catch (UnsupportedEncodingException e) {
178+
return source;
179+
}
180+
}
112181
}

src/main/java/io/nats/client/support/JsonUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.Objects;
2222

2323
import static io.nats.client.support.DateTimeUtils.DEFAULT_TIME;
24-
import static io.nats.client.support.JsonEncoding.jsonEncode;
24+
import static io.nats.client.support.Encoding.jsonEncode;
2525
import static io.nats.client.support.JsonValueUtils.instance;
2626

2727
/**

src/main/java/io/nats/client/support/JsonValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import java.math.BigInteger;
1818
import java.util.*;
1919

20-
import static io.nats.client.support.JsonEncoding.jsonEncode;
20+
import static io.nats.client.support.Encoding.jsonEncode;
2121
import static io.nats.client.support.JsonUtils.*;
2222

2323
public class JsonValue implements JsonSerializable {

src/main/java/io/nats/client/support/JsonValueUtils.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -333,11 +333,6 @@ public String toJson() {
333333
public JsonValue toJsonValue() {
334334
return jv;
335335
}
336-
337-
@Deprecated
338-
public JsonValue getJsonValue() {
339-
return jv;
340-
}
341336
}
342337

343338
public static ArrayBuilder arrayBuilder() {

src/test/java/io/nats/client/support/JsonEncodingTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2015-2018 The NATS Authors
1+
// Copyright 2015-2024 The NATS Authors
22
// Licensed under the Apache License, Version 2.0 (the "License");
33
// you may not use this file except in compliance with the License.
44
// You may obtain a copy of the License at:
@@ -18,8 +18,8 @@
1818

1919
import java.util.List;
2020

21-
import static io.nats.client.support.JsonEncoding.jsonDecode;
22-
import static io.nats.client.support.JsonEncoding.jsonEncode;
21+
import static io.nats.client.support.Encoding.jsonDecode;
22+
import static io.nats.client.support.Encoding.jsonEncode;
2323
import static org.junit.jupiter.api.Assertions.assertEquals;
2424

2525
public final class JsonEncodingTests {

src/test/java/io/nats/client/support/JsonParsingTests.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import java.time.ZonedDateTime;
2626
import java.util.*;
2727

28-
import static io.nats.client.support.JsonEncoding.jsonEncode;
28+
import static io.nats.client.support.Encoding.jsonEncode;
2929
import static io.nats.client.support.JsonParser.*;
3030
import static io.nats.client.support.JsonParser.Option.KEEP_NULLS;
3131
import static io.nats.client.support.JsonValueUtils.*;
@@ -814,8 +814,6 @@ public void testValueUtilsMapBuilder() {
814814
.put("jvNull", JsonValue.NULL)
815815
.put("empty_is_null", "");
816816
validateMap(false, false, builder.toJsonValue());
817-
//noinspection deprecation
818-
validateMap(false, false, builder.getJsonValue()); // coverage for deprecated
819817
validateMap(false, true, JsonParser.parseUnchecked(builder.toJson()));
820818
}
821819

@@ -896,8 +894,6 @@ public void testValueUtilsArrayBuilder() {
896894
.add(null)
897895
.add(JsonValue.NULL);
898896
validateArray(false, false, builder.toJsonValue());
899-
//noinspection deprecation
900-
validateArray(false, false, builder.getJsonValue()); // coverage for deprecated
901897
validateArray(false, true, JsonParser.parseUnchecked(builder.toJson()));
902898
}
903899

0 commit comments

Comments
 (0)