Skip to content

Commit a8b31af

Browse files
committed
Migrate to Jackson3
1 parent f783b45 commit a8b31af

File tree

15 files changed

+43
-43
lines changed

15 files changed

+43
-43
lines changed

pom.xml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<gitHubRepo>jenkinsci/bitbucket-branch-source-plugin</gitHubRepo>
3030
<hpi.bundledArtifacts>scribejava-core,scribejava-java8</hpi.bundledArtifacts>
3131
<hpi.strictBundledArtifacts>true</hpi.strictBundledArtifacts>
32-
<jenkins.baseline>2.504</jenkins.baseline>
32+
<jenkins.baseline>2.516</jenkins.baseline>
3333
<jenkins.version>${jenkins.baseline}.3</jenkins.version>
3434
<ban-junit4-imports.skip>false</ban-junit4-imports.skip>
3535
<hpi.compatibleSinceVersion>937.0.0</hpi.compatibleSinceVersion>
@@ -71,16 +71,10 @@
7171
<dependency>
7272
<groupId>io.jenkins.tools.bom</groupId>
7373
<artifactId>bom-${jenkins.baseline}.x</artifactId>
74-
<version>5804.v80587a_38d937</version>
74+
<version>6128.v8e4ce4620a_2b_</version>
7575
<scope>import</scope>
7676
<type>pom</type>
7777
</dependency>
78-
<!-- TODO until in BOM -->
79-
<dependency>
80-
<groupId>org.jenkins-ci.plugins</groupId>
81-
<artifactId>credentials</artifactId>
82-
<version>1480.v2246fd131e83</version>
83-
</dependency>
8478
</dependencies>
8579
</dependencyManagement>
8680
<dependencies>
@@ -96,10 +90,15 @@
9690
<groupId>io.jenkins.plugins</groupId>
9791
<artifactId>commons-collections4-api</artifactId>
9892
</dependency>
93+
<!-- Needed by scribejava-core -->
9994
<dependency>
10095
<groupId>org.jenkins-ci.plugins</groupId>
10196
<artifactId>jackson2-api</artifactId>
10297
</dependency>
98+
<dependency>
99+
<groupId>io.jenkins.plugins</groupId>
100+
<artifactId>jackson3-api</artifactId>
101+
</dependency>
103102
<dependency>
104103
<groupId>org.jenkins-ci.plugins</groupId>
105104
<artifactId>structs</artifactId>

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketCloudWorkspace.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
package com.cloudbees.jenkins.plugins.bitbucket.api;
2525

2626
import com.fasterxml.jackson.annotation.JsonProperty;
27-
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
2827
import java.util.List;
2928
import java.util.Map;
29+
import tools.jackson.databind.annotation.JsonDeserialize;
3030

3131
public class BitbucketCloudWorkspace implements BitbucketWorkspace {
3232
@JsonProperty("uuid")

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketHref.java

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,14 @@
2323
*/
2424
package com.cloudbees.jenkins.plugins.bitbucket.api;
2525

26-
import com.fasterxml.jackson.core.JsonParser;
27-
import com.fasterxml.jackson.core.ObjectCodec;
28-
import com.fasterxml.jackson.databind.DeserializationContext;
29-
import com.fasterxml.jackson.databind.JsonDeserializer;
30-
import com.fasterxml.jackson.databind.JsonNode;
31-
import java.io.IOException;
3226
import java.util.ArrayList;
3327
import java.util.List;
3428
import org.kohsuke.accmod.Restricted;
3529
import org.kohsuke.accmod.restrictions.DoNotUse;
30+
import tools.jackson.core.JsonParser;
31+
import tools.jackson.databind.DeserializationContext;
32+
import tools.jackson.databind.JsonNode;
33+
import tools.jackson.databind.ValueDeserializer;
3634

3735
/**
3836
* A Href for something on bitbucket.
@@ -71,20 +69,18 @@ public void setHref(String href) {
7169
this.href = href;
7270
}
7371

74-
public static class Deserializer extends JsonDeserializer<List<BitbucketHref>> {
72+
public static class Deserializer extends ValueDeserializer<List<BitbucketHref>> {
7573

7674
@Override
77-
public List<BitbucketHref> deserialize(JsonParser p, DeserializationContext ctx)
78-
throws IOException {
75+
public List<BitbucketHref> deserialize(JsonParser p, DeserializationContext ctx) {
7976
List<BitbucketHref> result = new ArrayList<>();
80-
ObjectCodec codec = p.getCodec();
81-
JsonNode node = codec.readTree(p);
77+
JsonNode node = ctx.readTree(p);
8278
if (node.isArray()) {
8379
for (JsonNode n : node) {
84-
result.add(codec.treeToValue(n, BitbucketHref.class));
80+
result.add(ctx.readTreeAsValue(n, BitbucketHref.class));
8581
}
8682
} else {
87-
result.add(codec.treeToValue(node, BitbucketHref.class));
83+
result.add(ctx.readTreeAsValue(node, BitbucketHref.class));
8884
}
8985
return result;
9086
}

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketProject.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
*/
2424
package com.cloudbees.jenkins.plugins.bitbucket.api;
2525

26-
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
2726
import java.util.List;
2827
import java.util.Map;
28+
import tools.jackson.databind.annotation.JsonDeserialize;
2929

3030
public class BitbucketProject implements BitbucketTeam {
3131

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@
5555
import com.cloudbees.jenkins.plugins.bitbucket.impl.util.JsonParser;
5656
import com.damnhandy.uri.template.UriTemplate;
5757
import com.damnhandy.uri.template.impl.Operator;
58-
import com.fasterxml.jackson.core.JacksonException;
59-
import com.fasterxml.jackson.core.type.TypeReference;
6058
import edu.umd.cs.findbugs.annotations.CheckForNull;
6159
import edu.umd.cs.findbugs.annotations.NonNull;
6260
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -85,6 +83,8 @@
8583
import org.apache.hc.core5.http.HttpHost;
8684
import org.apache.hc.core5.http.HttpStatus;
8785
import org.apache.hc.core5.http.message.BasicNameValuePair;
86+
import tools.jackson.core.JacksonException;
87+
import tools.jackson.core.type.TypeReference;
8888

8989
import static java.util.concurrent.TimeUnit.HOURS;
9090
import static java.util.concurrent.TimeUnit.MINUTES;

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/repository/BitbucketCloudRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketRepository;
2929
import com.fasterxml.jackson.annotation.JsonIgnore;
3030
import com.fasterxml.jackson.annotation.JsonProperty;
31-
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
3231
import java.util.ArrayList;
3332
import java.util.Date;
3433
import java.util.HashMap;
3534
import java.util.List;
3635
import java.util.Map;
36+
import tools.jackson.databind.annotation.JsonDeserialize;
3737

3838
public class BitbucketCloudRepository implements BitbucketRepository {
3939

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/impl/util/DateUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@
2323
*/
2424
package com.cloudbees.jenkins.plugins.bitbucket.impl.util;
2525

26-
import com.fasterxml.jackson.databind.util.StdDateFormat;
2726
import edu.umd.cs.findbugs.annotations.CheckForNull;
2827
import edu.umd.cs.findbugs.annotations.NonNull;
2928
import edu.umd.cs.findbugs.annotations.Nullable;
3029
import java.text.ParseException;
3130
import java.util.Calendar;
3231
import java.util.Date;
3332
import java.util.TimeZone;
33+
import tools.jackson.databind.util.StdDateFormat;
3434

3535
public final class DateUtils {
3636

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/impl/util/JsonParser.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,6 @@
2424
package com.cloudbees.jenkins.plugins.bitbucket.impl.util;
2525

2626
import com.fasterxml.jackson.annotation.JsonInclude.Include;
27-
import com.fasterxml.jackson.core.type.TypeReference;
28-
import com.fasterxml.jackson.databind.DeserializationFeature;
29-
import com.fasterxml.jackson.databind.JsonNode;
30-
import com.fasterxml.jackson.databind.json.JsonMapper;
31-
import com.fasterxml.jackson.databind.util.StdDateFormat;
3227
import java.io.IOException;
3328
import java.io.InputStream;
3429
import java.io.InputStreamReader;
@@ -37,6 +32,11 @@
3732
import java.nio.charset.StandardCharsets;
3833
import org.kohsuke.accmod.Restricted;
3934
import org.kohsuke.accmod.restrictions.NoExternalUse;
35+
import tools.jackson.core.type.TypeReference;
36+
import tools.jackson.databind.DeserializationFeature;
37+
import tools.jackson.databind.JsonNode;
38+
import tools.jackson.databind.json.JsonMapper;
39+
import tools.jackson.databind.util.StdDateFormat;
4040

4141
/**
4242
* Jackson based JSON parser
@@ -73,8 +73,8 @@ public static JsonNode toJson(String value) throws IOException {
7373
private static JsonMapper createMapper(){
7474
return JsonMapper.builder()
7575
.defaultDateFormat(new StdDateFormat())
76-
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
77-
.serializationInclusion(Include.NON_NULL)
76+
.disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) // Jackson 3 fail on unknown primitives by default
77+
.changeDefaultPropertyInclusion(incl -> incl.withContentInclusion(Include.NON_NULL).withValueInclusion(Include.NON_NULL))
7878
.build();
7979
}
8080
}

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/impl/webhook/cloud/CloudWebhookManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import com.cloudbees.jenkins.plugins.bitbucket.impl.webhook.AbstractWebhookManager;
3939
import com.cloudbees.jenkins.plugins.bitbucket.util.BitbucketCredentialsUtils;
4040
import com.damnhandy.uri.template.UriTemplate;
41-
import com.fasterxml.jackson.core.type.TypeReference;
4241
import com.google.common.base.Objects;
4342
import edu.umd.cs.findbugs.annotations.NonNull;
4443
import hudson.Extension;
@@ -58,6 +57,7 @@
5857
import org.apache.commons.collections.CollectionUtils;
5958
import org.apache.commons.lang3.Strings;
6059
import org.jenkinsci.plugins.plaincredentials.StringCredentials;
60+
import tools.jackson.core.type.TypeReference;
6161

6262
import static java.util.concurrent.TimeUnit.HOURS;
6363
import static java.util.concurrent.TimeUnit.MINUTES;

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/impl/webhook/server/ServerWebhookManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import com.cloudbees.jenkins.plugins.bitbucket.server.client.repository.BitbucketServerWebhook;
3939
import com.cloudbees.jenkins.plugins.bitbucket.util.BitbucketCredentialsUtils;
4040
import com.damnhandy.uri.template.UriTemplate;
41-
import com.fasterxml.jackson.core.type.TypeReference;
4241
import com.google.common.base.Objects;
4342
import edu.umd.cs.findbugs.annotations.NonNull;
4443
import hudson.Extension;
@@ -57,6 +56,7 @@
5756
import jenkins.model.Jenkins;
5857
import org.apache.commons.collections.CollectionUtils;
5958
import org.jenkinsci.plugins.plaincredentials.StringCredentials;
59+
import tools.jackson.core.type.TypeReference;
6060

6161
import static java.util.concurrent.TimeUnit.HOURS;
6262
import static java.util.concurrent.TimeUnit.MINUTES;

0 commit comments

Comments
 (0)