Uses `Gson.fromJson(..., TypeToken<T>)` instead of `fromJson(..., Type)` Also replaces some usage of the deprecated `JsonParser()` constructor.tags/10.4.0.87286
@@ -73,9 +73,12 @@ public class GithubApplicationClientImpl implements GithubApplicationClient { | |||
protected static final String WRITE_PERMISSION_NAME = "write"; | |||
protected static final String READ_PERMISSION_NAME = "read"; | |||
protected static final String FAILED_TO_REQUEST_BEGIN_MSG = "Failed to request "; | |||
private static final Type REPOSITORY_TEAM_LIST_TYPE = TypeToken.getParameterized(List.class, GsonRepositoryTeam.class).getType(); | |||
private static final Type REPOSITORY_COLLABORATORS_LIST_TYPE = TypeToken.getParameterized(List.class, GsonRepositoryCollaborator.class).getType(); | |||
private static final Type ORGANIZATION_LIST_TYPE = TypeToken.getParameterized(List.class, GithubBinding.GsonInstallation.class).getType(); | |||
private static final TypeToken<List<GsonRepositoryTeam>> REPOSITORY_TEAM_LIST_TYPE = new TypeToken<>() { | |||
}; | |||
private static final TypeToken<List<GsonRepositoryCollaborator>> REPOSITORY_COLLABORATORS_LIST_TYPE = new TypeToken<>() { | |||
}; | |||
private static final TypeToken<List<GithubBinding.GsonInstallation>> ORGANIZATION_LIST_TYPE = new TypeToken<>() { | |||
}; | |||
protected final GithubApplicationHttpClient githubApplicationHttpClient; | |||
protected final GithubAppSecurity appSecurity; | |||
private final GitHubSettings gitHubSettings; |
@@ -58,8 +58,10 @@ import static java.nio.charset.StandardCharsets.UTF_8; | |||
public class GitlabApplicationClient { | |||
private static final Logger LOG = LoggerFactory.getLogger(GitlabApplicationClient.class); | |||
private static final Gson GSON = new Gson(); | |||
private static final Type GITLAB_GROUP = TypeToken.getParameterized(List.class, GsonGroup.class).getType(); | |||
private static final Type GITLAB_USER = TypeToken.getParameterized(List.class, GsonUser.class).getType(); | |||
private static final TypeToken<List<GsonGroup>> GITLAB_GROUP = new TypeToken<>() { | |||
}; | |||
private static final TypeToken<List<GsonUser>> GITLAB_USER = new TypeToken<>() { | |||
}; | |||
protected static final String PRIVATE_TOKEN = "Private-Token"; | |||
private static final String GITLAB_GROUPS_MEMBERS_ENDPOINT = "/groups/%s/members"; |
@@ -75,7 +75,7 @@ public class Project { | |||
public static List<Project> parseJsonArray(String json) { | |||
Gson gson = new Gson(); | |||
return gson.fromJson(json, new TypeToken<LinkedList<Project>>() { | |||
}.getType()); | |||
}); | |||
} | |||
public long getId() { |
@@ -54,7 +54,8 @@ public class GenericPaginatedHttpClientImplTest { | |||
private static final String ENDPOINT = "/test-endpoint"; | |||
private static final Type STRING_LIST_TYPE = TypeToken.getParameterized(List.class, String.class).getType(); | |||
private static final TypeToken<List<String>> STRING_LIST_TYPE = new TypeToken<>() { | |||
}; | |||
private Gson gson = new Gson(); | |||
@@ -58,9 +58,8 @@ public class GsonEmail { | |||
} | |||
public static List<GsonEmail> parse(String json) { | |||
Type collectionType = new TypeToken<Collection<GsonEmail>>() { | |||
}.getType(); | |||
Gson gson = new Gson(); | |||
return gson.fromJson(json, collectionType); | |||
return gson.fromJson(json, new TypeToken<List<GsonEmail>>() { | |||
}); | |||
} | |||
} |
@@ -52,10 +52,9 @@ public class GsonTeam { | |||
} | |||
public static List<GsonTeam> parse(String json) { | |||
Type collectionType = new TypeToken<Collection<GsonTeam>>() { | |||
}.getType(); | |||
Gson gson = new Gson(); | |||
return gson.fromJson(json, collectionType); | |||
return gson.fromJson(json, new TypeToken<List<GsonTeam>>() { | |||
}); | |||
} | |||
public static class GsonOrganization { |
@@ -55,9 +55,9 @@ public class GsonGroup { | |||
} | |||
static List<GsonGroup> parse(String json) { | |||
Type collectionType = new TypeToken<Collection<GsonGroup>>() {}.getType(); | |||
Gson gson = new Gson(); | |||
return gson.fromJson(json, collectionType); | |||
return gson.fromJson(json, new TypeToken<List<GsonGroup>>() { | |||
}); | |||
} | |||
} |
@@ -48,7 +48,7 @@ public class QPMeasureData { | |||
} | |||
public static QPMeasureData fromJson(String json) { | |||
return new QPMeasureData(StreamSupport.stream(new JsonParser().parse(json).getAsJsonArray().spliterator(), false) | |||
return new QPMeasureData(StreamSupport.stream(JsonParser.parseString(json).getAsJsonArray().spliterator(), false) | |||
.map(jsonElement -> { | |||
JsonObject jsonProfile = jsonElement.getAsJsonObject(); | |||
return new QualityProfile( |
@@ -20,11 +20,10 @@ | |||
package org.sonar.server.authentication; | |||
import com.google.common.base.Strings; | |||
import com.google.common.reflect.TypeToken; | |||
import com.google.gson.Gson; | |||
import com.google.gson.GsonBuilder; | |||
import com.google.gson.reflect.TypeToken; | |||
import java.io.UnsupportedEncodingException; | |||
import java.lang.reflect.Type; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
import java.util.Optional; | |||
@@ -53,8 +52,8 @@ public class OAuth2AuthenticationParametersImpl implements OAuth2AuthenticationP | |||
*/ | |||
private static final String RETURN_TO_PARAMETER = "return_to"; | |||
private static final Type JSON_MAP_TYPE = new TypeToken<HashMap<String, String>>() { | |||
}.getType(); | |||
private static final TypeToken<Map<String, String>> JSON_MAP_TYPE = new TypeToken<>() { | |||
}; | |||
@Override | |||
public void init(HttpRequest request, HttpResponse response) { |
@@ -565,8 +565,7 @@ public class TreeActionIT { | |||
db.components().insertSnapshot(projectData.getMainBranchComponent()); | |||
Date now = new Date(); | |||
JsonParser jsonParser = new JsonParser(); | |||
JsonElement jsonTree = jsonParser.parseString(IOUtils.toString(getClass().getResource("tree-example.json"), UTF_8)); | |||
JsonElement jsonTree = JsonParser.parseString(IOUtils.toString(getClass().getResource("tree-example.json"), UTF_8)); | |||
JsonArray components = jsonTree.getAsJsonObject().getAsJsonArray("components"); | |||
for (int i = 0; i < components.size(); i++) { | |||
JsonElement componentAsJsonElement = components.get(i); |
@@ -1358,7 +1358,7 @@ public class SearchActionIT { | |||
.setParam("asc", "false") | |||
.execute(); | |||
JsonElement parse = new JsonParser().parse(response.getInput()); | |||
JsonElement parse = JsonParser.parseString(response.getInput()); | |||
assertThat(parse.getAsJsonObject().get("issues").getAsJsonArray()) | |||
.extracting(o -> o.getAsJsonObject().get("key").getAsString()) |
@@ -24,7 +24,6 @@ import com.google.common.collect.ListMultimap; | |||
import com.google.gson.Gson; | |||
import com.google.gson.JsonSyntaxException; | |||
import com.google.gson.reflect.TypeToken; | |||
import java.lang.reflect.Type; | |||
import java.util.Collections; | |||
import java.util.List; | |||
import java.util.Map; | |||
@@ -70,6 +69,8 @@ public class SetAction implements SettingsWsAction { | |||
private static final Collector<CharSequence, ?, String> COMMA_JOINER = Collectors.joining(","); | |||
private static final String MSG_NO_EMPTY_VALUE = "A non empty value must be provided"; | |||
private static final int VALUE_MAXIMUM_LENGTH = 4000; | |||
private static final TypeToken<Map<String, String>> MAP_TYPE_TOKEN = new TypeToken<>() { | |||
}; | |||
private final PropertyDefinitions propertyDefinitions; | |||
private final DbClient dbClient; | |||
@@ -305,11 +306,9 @@ public class SetAction implements SettingsWsAction { | |||
} | |||
private static Map<String, String> readOneFieldValues(String json, String key) { | |||
Type type = new TypeToken<Map<String, String>>() { | |||
}.getType(); | |||
Gson gson = GsonHelper.create(); | |||
try { | |||
return gson.fromJson(json, type); | |||
return gson.fromJson(json, MAP_TYPE_TOKEN); | |||
} catch (JsonSyntaxException e) { | |||
throw BadRequestException.create(format("JSON '%s' does not respect expected format for setting '%s'. Ex: {\"field1\":\"value1\", \"field2\":\"value2\"}", json, key)); | |||
} |
@@ -189,8 +189,7 @@ public class DefaultScannerWsClient implements ScannerWsClient { | |||
@CheckForNull | |||
private static String tryParseAsJsonError(String responseContent) { | |||
try { | |||
JsonParser parser = new JsonParser(); | |||
JsonObject obj = parser.parse(responseContent).getAsJsonObject(); | |||
JsonObject obj = JsonParser.parseString(responseContent).getAsJsonObject(); | |||
JsonArray errors = obj.getAsJsonArray("errors"); | |||
List<String> errorMessages = new ArrayList<>(); | |||
for (JsonElement e : errors) { |
@@ -123,7 +123,7 @@ public class JsonAssert { | |||
} | |||
private static String pretty(String json) { | |||
JsonElement gson = new JsonParser().parse(json); | |||
JsonElement gson = JsonParser.parseString(json); | |||
return new GsonBuilder().setPrettyPrinting().serializeNulls().create().toJson(gson); | |||
} | |||
} |