Skip to content

Commit 0c142ba

Browse files
committed
Fixing use of recently deprecated classes JsonToBeanConverter and BeanToJsonConverter, second try
1 parent d36f497 commit 0c142ba

24 files changed

+69
-77
lines changed

java/client/src/org/openqa/selenium/firefox/Preferences.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import com.google.common.io.LineReader;
2828

2929
import org.openqa.selenium.WebDriverException;
30-
import org.openqa.selenium.remote.JsonToBeanConverter;
30+
import org.openqa.selenium.json.Json;
3131

3232
import java.io.File;
3333
import java.io.FileReader;
@@ -92,7 +92,7 @@ public Preferences(Reader defaults, Reader reader) {
9292
private void readDefaultPreferences(Reader defaultsReader) {
9393
try {
9494
String rawJson = CharStreams.toString(defaultsReader);
95-
Map<String, Object> map = new JsonToBeanConverter().convert(Map.class, rawJson);
95+
Map<String, Object> map = new Json().toType(rawJson, Map.class);
9696

9797
Map<String, Object> frozen = (Map<String, Object>) map.get("frozen");
9898
for (Map.Entry<String, Object> entry : frozen.entrySet()) {

java/client/src/org/openqa/selenium/json/Json.java

+5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import com.google.gson.Gson;
2121
import com.google.gson.GsonBuilder;
22+
import com.google.gson.JsonElement;
2223
import com.google.gson.JsonParseException;
2324
import com.google.gson.TypeAdapter;
2425
import com.google.gson.TypeAdapterFactory;
@@ -57,6 +58,10 @@ public String toJson(Object toConvert) {
5758
return toJson.convert(toConvert);
5859
}
5960

61+
public JsonElement toJsonElement(Object toConvert) {
62+
return toJson.convertObject(toConvert);
63+
}
64+
6065
public <T> T toType(Object source, Class<T> typeOfT) {
6166
return toBean.convert(typeOfT, source);
6267
}

java/client/src/org/openqa/selenium/remote/ProtocolHandshake.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ public Optional<Result> createSession(HttpClient client, InputStream newSessionB
228228
// W3C spec properly. Oh well.
229229
Map<?, ?> blob;
230230
try {
231-
blob = new JsonToBeanConverter().convert(Map.class, response.getContentString());
231+
blob = new Json().toType(response.getContentString(), Map.class);
232232
} catch (JsonException e) {
233233
throw new WebDriverException(
234234
"Unable to parse remote response: " + response.getContentString());

java/client/src/org/openqa/selenium/remote/RemoteWebDriver.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import org.openqa.selenium.internal.FindsByName;
5959
import org.openqa.selenium.internal.FindsByTagName;
6060
import org.openqa.selenium.internal.FindsByXPath;
61+
import org.openqa.selenium.json.Json;
6162
import org.openqa.selenium.logging.LocalLogs;
6263
import org.openqa.selenium.logging.LogType;
6364
import org.openqa.selenium.logging.LoggingHandler;
@@ -748,7 +749,7 @@ public Set<Cookie> getCookies() {
748749
Set<Cookie> toReturn = new HashSet<>();
749750

750751
List<Map<String, Object>> cookies =
751-
new JsonToBeanConverter().convert(List.class, returned);
752+
new Json().toType(returned, List.class);
752753
if (cookies == null) {
753754
return toReturn;
754755
}

java/client/src/org/openqa/selenium/remote/http/AbstractHttpResponseCodec.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,9 @@
2727
import static java.net.HttpURLConnection.HTTP_INTERNAL_ERROR;
2828
import static java.net.HttpURLConnection.HTTP_OK;
2929

30+
import org.openqa.selenium.json.Json;
3031
import org.openqa.selenium.json.JsonException;
31-
import org.openqa.selenium.remote.BeanToJsonConverter;
3232
import org.openqa.selenium.remote.ErrorCodes;
33-
import org.openqa.selenium.remote.JsonToBeanConverter;
3433
import org.openqa.selenium.remote.Response;
3534
import org.openqa.selenium.remote.ResponseCodec;
3635

@@ -44,8 +43,7 @@
4443
*/
4544
public abstract class AbstractHttpResponseCodec implements ResponseCodec<HttpResponse> {
4645
private final ErrorCodes errorCodes = new ErrorCodes();
47-
private final BeanToJsonConverter beanToJsonConverter = new BeanToJsonConverter();
48-
private final JsonToBeanConverter jsonToBeanConverter = new JsonToBeanConverter();
46+
private final Json json = new Json();
4947

5048
/**
5149
* Encodes the given response as a HTTP response message. This method is guaranteed not to throw.
@@ -59,7 +57,7 @@ public HttpResponse encode(Supplier<HttpResponse> factory, Response response) {
5957
? HTTP_OK
6058
: HTTP_INTERNAL_ERROR;
6159

62-
byte[] data = beanToJsonConverter.convert(getValueToEncode(response)).getBytes(UTF_8);
60+
byte[] data = json.toJson(getValueToEncode(response)).getBytes(UTF_8);
6361

6462
HttpResponse httpResponse = factory.get();
6563
httpResponse.setStatus(status);
@@ -79,7 +77,7 @@ public Response decode(HttpResponse encodedResponse) {
7977
String contentType = nullToEmpty(encodedResponse.getHeader(CONTENT_TYPE));
8078
String content = encodedResponse.getContentString().trim();
8179
try {
82-
return reconstructValue(jsonToBeanConverter.convert(Response.class, content));
80+
return reconstructValue(json.toType(content, Response.class));
8381
} catch (JsonException e) {
8482
if (contentType.startsWith("application/json")) {
8583
throw new IllegalArgumentException(

java/client/test/org/openqa/selenium/ProxyTest.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@
3131
import org.junit.runner.RunWith;
3232
import org.junit.runners.JUnit4;
3333
import org.openqa.selenium.Proxy.ProxyType;
34-
import org.openqa.selenium.remote.BeanToJsonConverter;
35-
import org.openqa.selenium.remote.JsonToBeanConverter;
34+
import org.openqa.selenium.json.Json;
3635

3736
import java.util.HashMap;
3837
import java.util.Map;
@@ -383,8 +382,8 @@ public void serialiazesAndDeserializesWithoutError() {
383382

384383
Capabilities caps = new ImmutableCapabilities(PROXY, proxy);
385384

386-
String rawJson = new BeanToJsonConverter().convert(caps);
387-
Capabilities converted = new JsonToBeanConverter().convert(Capabilities.class, rawJson);
385+
String rawJson = new Json().toJson(caps);
386+
Capabilities converted = new Json().toType(rawJson, Capabilities.class);
388387

389388
Object returnedProxy = converted.getCapability(PROXY);
390389
assertTrue(returnedProxy instanceof Proxy);

java/client/test/org/openqa/selenium/ie/InternetExplorerOptionsTest.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@
2727
import org.junit.runners.JUnit4;
2828
import org.openqa.selenium.Capabilities;
2929
import org.openqa.selenium.ImmutableCapabilities;
30-
import org.openqa.selenium.remote.BeanToJsonConverter;
31-
import org.openqa.selenium.remote.JsonToBeanConverter;
30+
import org.openqa.selenium.json.Json;
3231

3332
import java.util.Map;
3433

@@ -93,9 +92,9 @@ public void shouldSurviveASerializationRoundTrip() {
9392
.withInitialBrowserUrl("http://www.cheese.com")
9493
.addCommandSwitches("--cake");
9594

96-
String json = new BeanToJsonConverter().convert(options);
95+
String json = new Json().toJson(options);
9796
System.out.println("json = " + json);
98-
Capabilities capabilities = new JsonToBeanConverter().convert(Capabilities.class, json);
97+
Capabilities capabilities = new Json().toType(json, Capabilities.class);
9998

10099
assertEquals(options, capabilities);
101100

java/client/test/org/openqa/selenium/interactions/PointerInputTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import org.openqa.selenium.WrappedWebElement;
3434
import org.openqa.selenium.interactions.PointerInput.Kind;
3535
import org.openqa.selenium.interactions.PointerInput.Origin;
36-
import org.openqa.selenium.remote.BeanToJsonConverter;
36+
import org.openqa.selenium.json.Json;
3737
import org.openqa.selenium.remote.RemoteWebElement;
3838

3939
/**
@@ -53,7 +53,7 @@ public void encodesWrappedElementInMoveOrigin() {
5353
Duration.ofMillis(100), Origin.fromElement(element), 0, 0);
5454
Sequence sequence = new Sequence(move.getSource(), 0).addAction(move);
5555

56-
String rawJson = new BeanToJsonConverter().convert(sequence);
56+
String rawJson = new Json().toJson(sequence);
5757
ActionSequenceJson json = new Gson().fromJson(rawJson, ActionSequenceJson.class);
5858

5959
assertEquals(json.actions.size(), 1);

java/client/test/org/openqa/selenium/remote/ErrorHandlerTest.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import org.openqa.selenium.WebDriverException;
5858
import org.openqa.selenium.interactions.InvalidCoordinatesException;
5959
import org.openqa.selenium.interactions.MoveTargetOutOfBoundsException;
60+
import org.openqa.selenium.json.Json;
6061

6162
import java.util.HashMap;
6263
import java.util.HashSet;
@@ -520,7 +521,7 @@ private static void assertStackTracesEqual(StackTraceElement[] expected,
520521

521522
@SuppressWarnings({"unchecked"})
522523
private static Map<String, Object> toMap(Object o) throws Exception {
523-
String rawJson = new BeanToJsonConverter().convert(o);
524-
return new JsonToBeanConverter().convert(Map.class, rawJson);
524+
String rawJson = new Json().toJson(o);
525+
return new Json().toType(rawJson, Map.class);
525526
}
526527
}

java/client/test/org/openqa/selenium/remote/HttpRequest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.apache.http.client.methods.HttpUriRequest;
2828
import org.apache.http.entity.StringEntity;
2929
import org.apache.http.util.EntityUtils;
30+
import org.openqa.selenium.json.Json;
3031
import org.openqa.selenium.remote.internal.HttpClientFactory;
3132

3233
import java.io.IOException;
@@ -95,7 +96,7 @@ public HttpUriRequest prepare(String url, Object payload) {
9596
post.addHeader("Content-Type", "application/json; charset=utf8");
9697

9798
if (payload != null) {
98-
String content = new BeanToJsonConverter().convert(payload);
99+
String content = new Json().toJson(payload);
99100
post.setEntity(new StringEntity(content, "UTF-8"));
100101
}
101102
return post;

java/client/test/org/openqa/selenium/remote/JsonWireProtocolResponseTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.openqa.selenium.ImmutableCapabilities;
3232
import org.openqa.selenium.SessionNotCreatedException;
3333
import org.openqa.selenium.WebDriverException;
34+
import org.openqa.selenium.json.Json;
3435

3536
import java.net.MalformedURLException;
3637
import java.util.Map;
@@ -108,7 +109,7 @@ public void shouldProperlyPopulateAnError() {
108109
WebDriverException exception = new SessionNotCreatedException("me no likey");
109110

110111
ImmutableMap<String, ?> payload = ImmutableMap.of(
111-
"value", new Gson().fromJson(new BeanToJsonConverter().convert(exception), Map.class),
112+
"value", new Gson().fromJson(new Json().toJson(exception), Map.class),
112113
"status", ErrorCodes.SESSION_NOT_CREATED);
113114

114115
InitialHandshakeResponse initialResponse = new InitialHandshakeResponse(

java/client/test/org/openqa/selenium/remote/http/JsonHttpResponseCodecTest.java

+6-11
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,9 @@
3939
import org.junit.runners.JUnit4;
4040
import org.openqa.selenium.ScriptTimeoutException;
4141
import org.openqa.selenium.WebDriverException;
42-
import org.openqa.selenium.remote.BeanToJsonConverter;
42+
import org.openqa.selenium.json.Json;
4343
import org.openqa.selenium.remote.Dialect;
4444
import org.openqa.selenium.remote.ErrorCodes;
45-
import org.openqa.selenium.remote.JsonToBeanConverter;
4645
import org.openqa.selenium.remote.RemoteWebElement;
4746
import org.openqa.selenium.remote.Response;
4847

@@ -61,8 +60,7 @@ public void convertsResponses_success() {
6160
assertThat(converted.getStatus(), is(HTTP_OK));
6261
assertThat(converted.getHeader(CONTENT_TYPE), is(JSON_UTF_8.toString()));
6362

64-
Response rebuilt = new JsonToBeanConverter().convert(
65-
Response.class, new String(converted.getContent(), UTF_8));
63+
Response rebuilt = new Json().toType(new String(converted.getContent(), UTF_8), Response.class);
6664

6765
assertEquals(response.getStatus(), rebuilt.getStatus());
6866
assertEquals(new ErrorCodes().toState(response.getStatus()), rebuilt.getState());
@@ -80,8 +78,7 @@ public void convertsResponses_failure() {
8078
assertThat(converted.getStatus(), is(HTTP_INTERNAL_ERROR));
8179
assertThat(converted.getHeader(CONTENT_TYPE), is(JSON_UTF_8.toString()));
8280

83-
Response rebuilt = new JsonToBeanConverter().convert(
84-
Response.class, new String(converted.getContent(), UTF_8));
81+
Response rebuilt = new Json().toType(new String(converted.getContent(), UTF_8), Response.class);
8582

8683
assertEquals(response.getStatus(), rebuilt.getStatus());
8784
assertEquals(new ErrorCodes().toState(response.getStatus()), rebuilt.getState());
@@ -154,8 +151,7 @@ public void decodeJsonResponseMissingContentType() {
154151

155152
HttpResponse httpResponse = new HttpResponse();
156153
httpResponse.setStatus(HTTP_OK);
157-
httpResponse.setContent(
158-
new BeanToJsonConverter().convert(response).getBytes(UTF_8));
154+
httpResponse.setContent(new Json().toJson(response).getBytes(UTF_8));
159155

160156
Response decoded = codec.decode(httpResponse);
161157
assertEquals(response.getStatus(), decoded.getStatus());
@@ -189,7 +185,7 @@ public void decodeJsonResponseWithTrailingNullBytes() {
189185
public void shouldConvertElementReferenceToRemoteWebElement() {
190186
HttpResponse response = new HttpResponse();
191187
response.setStatus(HTTP_OK);
192-
response.setContent(new BeanToJsonConverter().convert(ImmutableMap.of(
188+
response.setContent(new Json().toJson(ImmutableMap.of(
193189
"status", 0,
194190
"value", ImmutableMap.of(Dialect.OSS.getEncodedElementKey(), "345678"))).getBytes(UTF_8));
195191

@@ -206,8 +202,7 @@ public void shouldAttemptToConvertAnExceptionIntoAnActualExceptionInstance() {
206202

207203
HttpResponse httpResponse = new HttpResponse();
208204
httpResponse.setStatus(HTTP_CLIENT_TIMEOUT);
209-
httpResponse.setContent(
210-
new BeanToJsonConverter().convert(response).getBytes(UTF_8));
205+
httpResponse.setContent(new Json().toJson(response).getBytes(UTF_8));
211206

212207
Response decoded = codec.decode(httpResponse);
213208
assertEquals(ErrorCodes.ASYNC_SCRIPT_TIMEOUT, decoded.getStatus().intValue());

java/client/test/org/openqa/selenium/testing/drivers/GridSupplier.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
import org.openqa.selenium.Capabilities;
2121
import org.openqa.selenium.WebDriver;
22+
import org.openqa.selenium.json.Json;
2223
import org.openqa.selenium.remote.DesiredCapabilities;
23-
import org.openqa.selenium.remote.JsonToBeanConverter;
2424
import org.openqa.selenium.remote.LocalFileDetector;
2525
import org.openqa.selenium.remote.RemoteWebDriver;
2626
import org.openqa.selenium.remote.http.HttpClient;
@@ -83,7 +83,7 @@ private synchronized void startServers() {
8383

8484
// Keep polling the status page of the hub until it claims to be ready
8585
HttpClient client = new ApacheHttpClient.Factory().createClient(hub.getWebDriverUrl());
86-
JsonToBeanConverter toBean = new JsonToBeanConverter();
86+
Json json = new Json();
8787
Wait<HttpClient> wait = new FluentWait<>(client)
8888
.ignoring(RuntimeException.class)
8989
.withTimeout(30, TimeUnit.SECONDS);
@@ -95,7 +95,7 @@ private synchronized void startServers() {
9595
} catch (IOException e) {
9696
throw new RuntimeException(e);
9797
}
98-
Map<?, ?> value = toBean.convert(Map.class, response.getContentString());
98+
Map<?, ?> value = json.toType(response.getContentString(), Map.class);
9999

100100
return ((Map<?, ?>) value.get("value")).get("ready") == Boolean.TRUE;
101101
});

java/server/src/org/openqa/grid/internal/utils/configuration/GridNodeConfiguration.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,8 @@
3838
import org.openqa.grid.internal.utils.configuration.converters.NoOpParameterSplitter;
3939
import org.openqa.grid.internal.utils.configuration.validators.FileExistsValueValidator;
4040
import org.openqa.selenium.MutableCapabilities;
41-
import org.openqa.selenium.remote.BeanToJsonConverter;
41+
import org.openqa.selenium.json.Json;
4242
import org.openqa.selenium.remote.DesiredCapabilities;
43-
import org.openqa.selenium.remote.JsonToBeanConverter;
4443

4544
import java.lang.reflect.Type;
4645
import java.net.MalformedURLException;
@@ -475,9 +474,9 @@ public JsonElement serialize(List<MutableCapabilities> desiredCapabilities, Type
475474
JsonSerializationContext jsonSerializationContext) {
476475

477476
JsonArray capabilities = new JsonArray();
478-
BeanToJsonConverter converter = new BeanToJsonConverter();
477+
Json json = new Json();
479478
for (MutableCapabilities dc : desiredCapabilities) {
480-
capabilities.add(converter.convertObject(dc));
479+
capabilities.add(json.toJsonElement(dc));
481480
}
482481
return capabilities;
483482
}
@@ -493,9 +492,9 @@ public List<MutableCapabilities> deserialize(JsonElement jsonElement, Type type,
493492

494493
if (jsonElement.isJsonArray()) {
495494
List<MutableCapabilities> desiredCapabilities = new ArrayList<>();
496-
JsonToBeanConverter converter = new JsonToBeanConverter();
495+
Json json = new Json();
497496
for (JsonElement arrayElement : jsonElement.getAsJsonArray()) {
498-
desiredCapabilities.add(converter.convert(DesiredCapabilities.class, arrayElement));
497+
desiredCapabilities.add(json.toType(arrayElement, DesiredCapabilities.class));
499498
}
500499
return desiredCapabilities;
501500
}

java/server/src/org/openqa/grid/web/servlet/HubW3CStatusServlet.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import org.openqa.grid.internal.Registry;
2828
import org.openqa.grid.internal.RemoteProxy;
2929
import org.openqa.selenium.internal.BuildInfo;
30-
import org.openqa.selenium.remote.BeanToJsonConverter;
30+
import org.openqa.selenium.json.Json;
3131

3232
import java.io.IOException;
3333
import java.util.List;
@@ -86,7 +86,7 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
8686
"value", value.build());
8787

8888
// Write out a minimal W3C status response.
89-
byte[] payload = new BeanToJsonConverter().convert(payloadObj).getBytes(UTF_8);
89+
byte[] payload = new Json().toJson(payloadObj).getBytes(UTF_8);
9090

9191
resp.setStatus(HTTP_OK);
9292
resp.setHeader("Content-Type", JSON_UTF_8.toString());

java/server/src/org/openqa/grid/web/servlet/NodeW3CStatusServlet.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import com.google.common.collect.ImmutableMap;
2626

2727
import org.openqa.selenium.internal.BuildInfo;
28-
import org.openqa.selenium.remote.BeanToJsonConverter;
28+
import org.openqa.selenium.json.Json;
2929

3030
import java.io.IOException;
3131
import java.util.Map;
@@ -67,7 +67,7 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
6767
"value", value.build());
6868

6969
// Write out a minimal W3C status response.
70-
byte[] payload = new BeanToJsonConverter().convert(payloadObj).getBytes(UTF_8);
70+
byte[] payload = new Json().toJson(payloadObj).getBytes(UTF_8);
7171

7272
resp.setStatus(HTTP_OK);
7373
resp.setHeader("Content-Type", JSON_UTF_8.toString());

java/server/src/org/openqa/grid/web/servlet/RegistrationServlet.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,9 @@
3030
import org.openqa.grid.internal.Registry;
3131
import org.openqa.grid.internal.RemoteProxy;
3232
import org.openqa.grid.internal.utils.configuration.GridNodeConfiguration;
33-
import org.openqa.selenium.Capabilities;
3433
import org.openqa.selenium.MutableCapabilities;
34+
import org.openqa.selenium.json.Json;
3535
import org.openqa.selenium.remote.DesiredCapabilities;
36-
import org.openqa.selenium.remote.JsonToBeanConverter;
3736

3837
import java.io.BufferedReader;
3938
import java.io.IOException;
@@ -174,9 +173,9 @@ private void considerV2Json(GridNodeConfiguration configuration, JsonObject json
174173
if (json.has("capabilities")) {
175174
configuration.capabilities.clear();
176175
JsonArray capabilities = json.get("capabilities").getAsJsonArray();
176+
Json converter = new Json();
177177
for (int i = 0; i < capabilities.size(); i++) {
178-
MutableCapabilities cap = new JsonToBeanConverter()
179-
.convert(DesiredCapabilities.class, capabilities.get(i));
178+
MutableCapabilities cap = converter.toType(capabilities.get(i), DesiredCapabilities.class);
180179
configuration.capabilities.add(cap);
181180
}
182181
}

0 commit comments

Comments
 (0)