Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/basic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 8
java-version: 17
cache: 'gradle'

- name: Setup Gradle
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: '8'
java-version: '17'
distribution: 'temurin'

- name: Build with Gradle
Expand Down
7 changes: 4 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ task myJavadocs(type: Javadoc) {
source = sourceSets.main.allJava
}

sourceCompatibility = 8
sourceCompatibility = 17
version '1.33.0'

repositories {
Expand All @@ -27,7 +27,8 @@ dependencies {
annotationProcessor 'org.projectlombok:lombok:1.18.32'

implementation 'org.apache.httpcomponents:httpclient:4.5.13'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.3'
implementation platform('tools.jackson:jackson-bom:3.0.0')
implementation 'tools.jackson.core:jackson-databind'

testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.0','org.mockito:mockito-core:4.11.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0'
Expand All @@ -51,7 +52,7 @@ wrapper {
}

jacoco {
toolVersion = "0.8.5"
toolVersion = "0.8.11"
reportsDir = file("$buildDir/reports")
}

Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/crowdin/client/Sandbox.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.crowdin.client.core.model.Credentials;
import com.crowdin.client.core.model.ResponseObject;
import com.crowdin.client.users.model.User;
import lombok.var;

import java.io.FileNotFoundException;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.var;

@EqualsAndHashCode(callSuper = true)
@Data
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
import com.crowdin.client.core.http.exceptions.HttpBadRequestException;
import com.crowdin.client.core.http.exceptions.HttpBatchBadRequestException;
import com.crowdin.client.core.http.exceptions.HttpException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.TreeNode;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import tools.jackson.core.JsonParser;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.ValueDeserializer;
import tools.jackson.databind.ObjectMapper;

import java.io.IOException;

public class CrowdinApiExceptionDeserializer extends JsonDeserializer<CrowdinApiException> {
public class CrowdinApiExceptionDeserializer extends ValueDeserializer<CrowdinApiException> {

private final ObjectMapper objectMapper;

Expand All @@ -21,12 +21,12 @@ public CrowdinApiExceptionDeserializer(ObjectMapper objectMapper) {
}

@Override
public CrowdinApiException deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
TreeNode treeNode = p.getCodec().readTree(p);
TreeNode errors = treeNode.get("errors");
public CrowdinApiException deserialize(JsonParser p, DeserializationContext ctxt) {
JsonNode treeNode = ctxt.readTree(p);
JsonNode errors = treeNode.get("errors");

if (errors != null) {
TreeNode firstElement = errors.get(0);
JsonNode firstElement = errors.get(0);

if (firstElement != null && firstElement.get("index") != null) {
return this.objectMapper.treeToValue(treeNode, HttpBatchBadRequestException.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package com.crowdin.client.core.http.impl.json;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import tools.jackson.core.JsonParser;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.ValueDeserializer;
import lombok.SneakyThrows;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDeserializer extends JsonDeserializer<Date> {
public class DateDeserializer extends ValueDeserializer<Date> {

@Override
@SneakyThrows
public Date deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
public Date deserialize(JsonParser p, DeserializationContext ctxt) {
String date = p.getText();
if (date == null || date.isEmpty()) {
return null;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package com.crowdin.client.core.http.impl.json;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import tools.jackson.core.JsonParser;
import tools.jackson.core.JsonToken;
import tools.jackson.databind.*;
import tools.jackson.databind.deser.std.StdDeserializer;

import java.io.IOException;
import java.util.Collection;

public class EmptyArrayToNullDeserializer extends StdDeserializer<Object> implements ContextualDeserializer {
public class EmptyArrayToNullDeserializer extends StdDeserializer<Object> {
private JavaType type;

public EmptyArrayToNullDeserializer() {
Expand All @@ -22,14 +21,14 @@ public EmptyArrayToNullDeserializer(JavaType type) {
}

@Override
public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
if (p.getCurrentToken() == JsonToken.VALUE_NULL) {
public Object deserialize(JsonParser p, DeserializationContext ctxt) {
if (p.currentToken() == JsonToken.VALUE_NULL) {
return null;
}

Class<?> clazz = this.type != null ? this.type.getRawClass() : Object.class;

if (p.getCurrentToken() == JsonToken.START_ARRAY) {
if (p.currentToken() == JsonToken.START_ARRAY) {
if (!isCollectionType(clazz)) {
p.nextToken();
return null;
Expand All @@ -46,7 +45,7 @@ private static boolean isCollectionType(Class<?> type) {
}

@Override
public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) {
public ValueDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) {
return new EmptyArrayToNullDeserializer(property.getType());
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
package com.crowdin.client.core.http.impl.json;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
import tools.jackson.core.JsonParser;
import tools.jackson.core.JacksonException;
import tools.jackson.databind.BeanProperty;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.JavaType;
import tools.jackson.databind.ValueDeserializer;
import tools.jackson.databind.DatabindException;
import com.crowdin.client.core.model.EnumConverter;
import lombok.SneakyThrows;

import java.io.IOException;

public class EnumDeserializer extends JsonDeserializer<Enum> implements ContextualDeserializer {
public class EnumDeserializer extends ValueDeserializer<Enum> {

private JavaType type;

Expand All @@ -25,7 +24,7 @@ public EnumDeserializer(JavaType type) {
}

@Override
public JsonDeserializer<?> createContextual(DeserializationContext deserializationContext, BeanProperty beanProperty) throws JsonMappingException {
public ValueDeserializer<?> createContextual(DeserializationContext deserializationContext, BeanProperty beanProperty) throws DatabindException {
//beanProperty is null when the type to deserialize is the top-level type or a generic type, not a type of a bean property
JavaType type = deserializationContext.getContextualType() != null
? deserializationContext.getContextualType()
Expand All @@ -34,7 +33,7 @@ public JsonDeserializer<?> createContextual(DeserializationContext deserializati
}

@Override
public Enum deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
public Enum deserialize(JsonParser p, DeserializationContext ctxt) {
String text = p.getText();
return this.deserialize((Class<? extends Enum>) this.type.getRawClass(), text);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package com.crowdin.client.core.http.impl.json;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import tools.jackson.core.JsonGenerator;
import tools.jackson.databind.ValueSerializer;
import tools.jackson.databind.SerializationContext;
import com.crowdin.client.core.model.EnumConverter;
import lombok.SneakyThrows;

import java.io.IOException;

public class EnumSerializer extends JsonSerializer<Enum> {
public class EnumSerializer extends ValueSerializer<Enum> {
@Override
public void serialize(Enum value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
public void serialize(Enum value, JsonGenerator gen, SerializationContext serializers) {
Object val;
if (value instanceof EnumConverter) {
val = this.serialize(value, EnumConverter.class.cast(value));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@
import com.crowdin.client.sourcefiles.model.GeneralFileExportOptions;
import com.crowdin.client.sourcefiles.model.JavaScriptFileExportOptions;
import com.crowdin.client.sourcefiles.model.PropertyFileExportOptions;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.TreeNode;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import tools.jackson.core.JsonParser;
import tools.jackson.core.JacksonException;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.ValueDeserializer;
import tools.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;

public class FileExportOptionsDeserializer extends JsonDeserializer<ExportOptions> {
public class FileExportOptionsDeserializer extends ValueDeserializer<ExportOptions> {

private final ObjectMapper objectMapper;

Expand All @@ -25,9 +25,9 @@ public FileExportOptionsDeserializer(ObjectMapper objectMapper) {
}

@Override
public ExportOptions deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
TreeNode treeNode = p.getCodec().readTree(p);
Iterable<String> iterable = treeNode::fieldNames;
public ExportOptions deserialize(JsonParser p, DeserializationContext ctxt) {
JsonNode treeNode = ctxt.readTree(p);
Iterable<String> iterable = treeNode.propertyNames();
List<String> fields = StreamSupport
.stream(iterable.spliterator(), false)
.collect(Collectors.toList());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package com.crowdin.client.core.http.impl.json;

import com.crowdin.client.projectsgroups.model.*;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import tools.jackson.core.JsonParser;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.ValueDeserializer;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.ObjectMapper;

import java.io.IOException;

public class FileFormatSettingsDeserializer extends JsonDeserializer<FileFormatSettingsResource> {
public class FileFormatSettingsDeserializer extends ValueDeserializer<FileFormatSettingsResource> {

private final ObjectMapper objectMapper;

Expand All @@ -18,8 +18,8 @@ public FileFormatSettingsDeserializer(ObjectMapper objectMapper) {
}

@Override
public FileFormatSettingsResource deserialize(JsonParser parser, DeserializationContext ctx) throws IOException {
JsonNode parentNode = parser.getCodec().readTree(parser);
public FileFormatSettingsResource deserialize(JsonParser parser, DeserializationContext ctxt) {
JsonNode parentNode = ctxt.readTree(parser);

FileFormatSettingsResource resource = this.objectMapper.readValue(parentNode.toString(), FileFormatSettingsResource.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
import com.crowdin.client.sourcefiles.model.OtherFileImportOptions;
import com.crowdin.client.sourcefiles.model.SpreadsheetFileImportOptions;
import com.crowdin.client.sourcefiles.model.XmlFileImportOptions;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.TreeNode;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import tools.jackson.core.JsonParser;
import tools.jackson.core.JacksonException;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.ValueDeserializer;
import tools.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;

public class FileImportOptionsDeserializer extends JsonDeserializer<ImportOptions> {
public class FileImportOptionsDeserializer extends ValueDeserializer<ImportOptions> {

private final ObjectMapper objectMapper;

Expand All @@ -26,9 +26,9 @@ public FileImportOptionsDeserializer(ObjectMapper objectMapper) {
}

@Override
public ImportOptions deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
TreeNode treeNode = p.getCodec().readTree(p);
Iterable<String> iterable = treeNode::fieldNames;
public ImportOptions deserialize(JsonParser p, DeserializationContext ctxt) {
JsonNode treeNode = ctxt.readTree(p);
Iterable<String> iterable = treeNode.propertyNames();
List<String> fields = StreamSupport
.stream(iterable.spliterator(), false)
.collect(Collectors.toList());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@

import com.crowdin.client.sourcefiles.model.File;
import com.crowdin.client.sourcefiles.model.FileInfo;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.TreeNode;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import tools.jackson.core.JsonParser;
import tools.jackson.core.JacksonException;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.ValueDeserializer;
import tools.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;

public class FileInfoDeserializer extends JsonDeserializer<FileInfo> {
public class FileInfoDeserializer extends ValueDeserializer<FileInfo> {

private final ObjectMapper objectMapper;

Expand All @@ -23,9 +23,9 @@ public FileInfoDeserializer(ObjectMapper objectMapper) {
}

@Override
public FileInfo deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
TreeNode treeNode = p.getCodec().readTree(p);
Iterable<String> iterable = treeNode::fieldNames;
public FileInfo deserialize(JsonParser p, DeserializationContext ctxt) {
JsonNode treeNode = ctxt.readTree(p);
Iterable<String> iterable = treeNode.propertyNames();
List<String> fields = StreamSupport
.stream(iterable.spliterator(), false)
.collect(Collectors.toList());
Expand Down
Loading
Loading