Revert "Remove dependency on org.json:json"

This reverts commit 490756c79e.
This commit is contained in:
ruben 2023-01-02 18:42:24 +00:00
parent 7c7ba29283
commit a1a8925ae4
7 changed files with 42 additions and 9 deletions

View File

@ -72,6 +72,7 @@
<mockitojupiter.version>4.8.1</mockitojupiter.version>
<jacksonanotation.version>2.14.0</jacksonanotation.version>
<jackson.version>2.14.0</jackson.version>
<json.version>20220924</json.version>
<slf4j.version>2.0.3</slf4j.version>
<jakarta.annotation.version>2.1.1</jakarta.annotation.version>
<lombok.version>1.18.24</lombok.version>
@ -134,6 +135,11 @@
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
</dependency>
<!-- Included to enforce common version-->
<dependency>
<groupId>jakarta.annotation</groupId>

View File

@ -3,6 +3,7 @@ package org.telegram.abilitybots.api.objects;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.MoreObjects;
import org.json.JSONPropertyIgnore;
import java.io.Serializable;
import java.util.Objects;

View File

@ -90,6 +90,10 @@
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>

View File

@ -18,6 +18,7 @@
package org.telegram.telegrambots.meta.exceptions;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.telegram.telegrambots.meta.api.objects.ApiResponse;
@ -47,7 +48,20 @@ public class TelegramApiRequestException extends TelegramApiException {
super(message);
}
public TelegramApiRequestException(String message, ApiResponse<?> response) {
public TelegramApiRequestException(String message, JSONObject object) {
super(message);
apiResponse = object.getString(ERRORDESCRIPTIONFIELD);
errorCode = object.getInt(ERRORCODEFIELD);
if (object.has(PARAMETERSFIELD)) {
try {
parameters = OBJECT_MAPPER.readValue(object.getJSONObject(PARAMETERSFIELD).toString(), ResponseParameters.class);
} catch (IOException e) {
log.error(e.getLocalizedMessage(), e);
}
}
}
public TelegramApiRequestException(String message, ApiResponse response) {
super(message);
apiResponse = response.getErrorDescription();
errorCode = response.getErrorCode();

View File

@ -152,6 +152,10 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>

View File

@ -8,6 +8,7 @@ import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.telegram.telegrambots.bots.DefaultBotOptions;
@ -255,9 +256,13 @@ public class DefaultBotSession implements BotSession {
lock.wait(500);
}
} else {
List<Update> updates = request.deserializeResponse(responseContent);
backOff.reset();
return updates;
try {
List<Update> updates = request.deserializeResponse(responseContent);
backOff.reset();
return updates;
} catch (JSONException e) {
log.error("Error deserializing update: " + responseContent, e);
}
}
} catch (SocketException | InvalidObjectException | TelegramApiRequestException e) {
log.error(e.getLocalizedMessage(), e);

View File

@ -1,7 +1,5 @@
package org.telegram.telegrambots.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Strings;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
@ -11,6 +9,8 @@ import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.telegram.telegrambots.Constants;
import org.telegram.telegrambots.bots.DefaultAbsSender;
import org.telegram.telegrambots.bots.DefaultBotOptions;
@ -29,7 +29,6 @@ import static org.telegram.telegrambots.Constants.SOCKET_TIMEOUT;
public final class WebhookUtils {
private static final ContentType TEXT_PLAIN_CONTENT_TYPE = ContentType.create("text/plain", StandardCharsets.UTF_8);
private static final ObjectMapper objectMapper = new ObjectMapper();
private WebhookUtils() {
@ -67,7 +66,7 @@ public final class WebhookUtils {
builder.addTextBody(SetWebhook.MAXCONNECTIONS_FIELD, setWebhook.getMaxConnections().toString(), TEXT_PLAIN_CONTENT_TYPE);
}
if (setWebhook.getAllowedUpdates() != null) {
builder.addTextBody(SetWebhook.ALLOWEDUPDATES_FIELD, objectMapper.writeValueAsString(setWebhook.getAllowedUpdates()), TEXT_PLAIN_CONTENT_TYPE);
builder.addTextBody(SetWebhook.ALLOWEDUPDATES_FIELD, new JSONArray(setWebhook.getAllowedUpdates()).toString(), TEXT_PLAIN_CONTENT_TYPE);
}
if (setWebhook.getIpAddress() != null) {
builder.addTextBody(SetWebhook.IPADDRESS_FIELD, setWebhook.getIpAddress(), TEXT_PLAIN_CONTENT_TYPE);
@ -96,7 +95,7 @@ public final class WebhookUtils {
throw new TelegramApiRequestException("Error setting webhook:" + responseContent);
}
}
} catch (JsonProcessingException e) {
} catch (JSONException e) {
throw new TelegramApiRequestException("Error deserializing setWebhook method response", e);
} catch (IOException e) {
throw new TelegramApiRequestException("Error executing setWebook method", e);