Skip to content

Commit 04b6b9a

Browse files
authored
HADOOP-16908. Prune Jackson 1 from the codebase and restrict it's usage for future (apache#3789)
Signed-off-by: Akira Ajisaka <[email protected]>
1 parent 0714142 commit 04b6b9a

File tree

32 files changed

+290
-140
lines changed

32 files changed

+290
-140
lines changed

hadoop-common-project/hadoop-common/pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,24 @@
147147
<groupId>com.sun.jersey</groupId>
148148
<artifactId>jersey-json</artifactId>
149149
<scope>compile</scope>
150+
<exclusions>
151+
<exclusion>
152+
<groupId>org.codehaus.jackson</groupId>
153+
<artifactId>jackson-core-asl</artifactId>
154+
</exclusion>
155+
<exclusion>
156+
<groupId>org.codehaus.jackson</groupId>
157+
<artifactId>jackson-mapper-asl</artifactId>
158+
</exclusion>
159+
<exclusion>
160+
<groupId>org.codehaus.jackson</groupId>
161+
<artifactId>jackson-jaxrs</artifactId>
162+
</exclusion>
163+
<exclusion>
164+
<groupId>org.codehaus.jackson</groupId>
165+
<artifactId>jackson-xc</artifactId>
166+
</exclusion>
167+
</exclusions>
150168
</dependency>
151169
<dependency>
152170
<groupId>com.sun.jersey</groupId>

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsJsonBuilder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121
import org.apache.commons.lang3.exception.ExceptionUtils;
2222
import org.apache.hadoop.classification.InterfaceAudience;
2323
import org.apache.hadoop.classification.InterfaceStability;
24-
import org.codehaus.jackson.map.ObjectMapper;
25-
import org.codehaus.jackson.map.ObjectWriter;
24+
25+
import com.fasterxml.jackson.databind.ObjectMapper;
26+
import com.fasterxml.jackson.databind.ObjectWriter;
2627
import org.slf4j.Logger;
2728
import org.slf4j.LoggerFactory;
2829

hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterClientRejectOverload.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
import org.apache.hadoop.ipc.RemoteException;
5151
import org.apache.hadoop.ipc.StandbyException;
5252
import org.apache.hadoop.test.GenericTestUtils;
53-
import org.codehaus.jackson.map.ObjectMapper;
53+
54+
import com.fasterxml.jackson.databind.ObjectMapper;
5455
import org.junit.After;
5556
import org.junit.Rule;
5657
import org.junit.Test;

hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/ProvidedVolumeImpl.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
import java.util.concurrent.atomic.AtomicLong;
3333
import java.util.concurrent.locks.ReentrantReadWriteLock;
3434

35+
import com.fasterxml.jackson.annotation.JsonProperty;
36+
import com.fasterxml.jackson.databind.ObjectMapper;
37+
import com.fasterxml.jackson.databind.ObjectWriter;
38+
3539
import org.apache.hadoop.classification.InterfaceAudience;
3640
import org.apache.hadoop.conf.Configuration;
3741
import org.apache.hadoop.fs.FileSystem;
@@ -60,10 +64,6 @@
6064
import org.apache.hadoop.util.ReflectionUtils;
6165
import org.apache.hadoop.util.Time;
6266
import org.apache.hadoop.util.Timer;
63-
import org.codehaus.jackson.annotate.JsonProperty;
64-
import org.codehaus.jackson.map.ObjectMapper;
65-
import org.codehaus.jackson.map.ObjectReader;
66-
import org.codehaus.jackson.map.ObjectWriter;
6767

6868
import org.apache.hadoop.classification.VisibleForTesting;
6969

@@ -371,14 +371,11 @@ public void releaseReservedSpace(long bytesToRelease) {
371371

372372
private static final ObjectWriter WRITER =
373373
new ObjectMapper().writerWithDefaultPrettyPrinter();
374-
private static final ObjectReader READER =
375-
new ObjectMapper().reader(ProvidedBlockIteratorState.class);
376374

377375
private static class ProvidedBlockIteratorState {
378376
ProvidedBlockIteratorState() {
379377
iterStartMs = Time.now();
380378
lastSavedMs = iterStartMs;
381-
atEnd = false;
382379
lastBlockId = -1L;
383380
}
384381

@@ -390,9 +387,6 @@ private static class ProvidedBlockIteratorState {
390387
@JsonProperty
391388
private long iterStartMs;
392389

393-
@JsonProperty
394-
private boolean atEnd;
395-
396390
// The id of the last block read when the state of the iterator is saved.
397391
// This implementation assumes that provided blocks are returned
398392
// in sorted order of the block ids.

hadoop-project/pom.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,22 @@
870870
<groupId>stax</groupId>
871871
<artifactId>stax-api</artifactId>
872872
</exclusion>
873+
<exclusion>
874+
<groupId>org.codehaus.jackson</groupId>
875+
<artifactId>jackson-core-asl</artifactId>
876+
</exclusion>
877+
<exclusion>
878+
<groupId>org.codehaus.jackson</groupId>
879+
<artifactId>jackson-mapper-asl</artifactId>
880+
</exclusion>
881+
<exclusion>
882+
<groupId>org.codehaus.jackson</groupId>
883+
<artifactId>jackson-jaxrs</artifactId>
884+
</exclusion>
885+
<exclusion>
886+
<groupId>org.codehaus.jackson</groupId>
887+
<artifactId>jackson-xc</artifactId>
888+
</exclusion>
873889
</exclusions>
874890
</dependency>
875891
<dependency>

hadoop-tools/hadoop-azure/pom.xml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -178,18 +178,6 @@
178178
<scope>compile</scope>
179179
</dependency>
180180

181-
<dependency>
182-
<groupId>org.codehaus.jackson</groupId>
183-
<artifactId>jackson-mapper-asl</artifactId>
184-
<scope>compile</scope>
185-
</dependency>
186-
187-
<dependency>
188-
<groupId>org.codehaus.jackson</groupId>
189-
<artifactId>jackson-core-asl</artifactId>
190-
<scope>compile</scope>
191-
</dependency>
192-
193181
<dependency>
194182
<groupId>org.wildfly.openssl</groupId>
195183
<artifactId>wildfly-openssl</artifactId>

hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/contracts/services/ListResultEntrySchema.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
package org.apache.hadoop.fs.azurebfs.contracts.services;
2020

21-
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
22-
import org.codehaus.jackson.annotate.JsonProperty;
21+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
22+
import com.fasterxml.jackson.annotation.JsonProperty;
2323

2424
import org.apache.hadoop.classification.InterfaceStability;
2525

hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/contracts/services/ListResultSchema.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
import java.util.List;
2222

23-
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
24-
import org.codehaus.jackson.annotate.JsonProperty;
23+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
24+
import com.fasterxml.jackson.annotation.JsonProperty;
2525

2626
import org.apache.hadoop.classification.InterfaceStability;
2727

hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/oauth2/AzureADAuthenticator.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@
3030
import java.util.Map;
3131

3232
import org.apache.hadoop.util.Preconditions;
33-
import org.codehaus.jackson.JsonFactory;
34-
import org.codehaus.jackson.JsonParser;
35-
import org.codehaus.jackson.JsonToken;
33+
34+
import com.fasterxml.jackson.core.JsonFactory;
35+
import com.fasterxml.jackson.core.JsonParser;
36+
import com.fasterxml.jackson.core.JsonToken;
3637
import org.slf4j.Logger;
3738
import org.slf4j.LoggerFactory;
3839

@@ -451,7 +452,7 @@ private static AzureADToken parseTokenFromStream(
451452
long expiresOnInSecs = -1;
452453

453454
JsonFactory jf = new JsonFactory();
454-
JsonParser jp = jf.createJsonParser(httpResponseStream);
455+
JsonParser jp = jf.createParser(httpResponseStream);
455456
String fieldName, fieldValue;
456457
jp.nextToken();
457458
while (jp.hasCurrentToken()) {

hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/AbfsHttpOperation.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@
3030

3131
import org.apache.hadoop.fs.azurebfs.utils.UriUtils;
3232
import org.apache.hadoop.security.ssl.DelegatingSSLSocketFactory;
33-
import org.codehaus.jackson.JsonFactory;
34-
import org.codehaus.jackson.JsonParser;
35-
import org.codehaus.jackson.JsonToken;
36-
import org.codehaus.jackson.map.ObjectMapper;
3733

34+
import com.fasterxml.jackson.core.JsonFactory;
35+
import com.fasterxml.jackson.core.JsonParser;
36+
import com.fasterxml.jackson.core.JsonToken;
37+
import com.fasterxml.jackson.databind.ObjectMapper;
3838
import org.slf4j.Logger;
3939
import org.slf4j.LoggerFactory;
4040

@@ -467,7 +467,7 @@ private void processStorageErrorResponse() {
467467
return;
468468
}
469469
JsonFactory jf = new JsonFactory();
470-
try (JsonParser jp = jf.createJsonParser(stream)) {
470+
try (JsonParser jp = jf.createParser(stream)) {
471471
String fieldName, fieldValue;
472472
jp.nextToken(); // START_OBJECT - {
473473
jp.nextToken(); // FIELD_NAME - "error":

hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/contract/ListResultSchemaTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import java.io.IOException;
2222

23-
import org.codehaus.jackson.map.ObjectMapper;
23+
import com.fasterxml.jackson.databind.ObjectMapper;
2424
import org.junit.Test;
2525

2626
import org.apache.hadoop.fs.azurebfs.contracts.services.ListResultEntrySchema;

hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-infra/src/main/java/org/apache/hadoop/tools/dynamometer/DynoInfraUtils.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,10 @@
5454
import org.apache.hadoop.util.Time;
5555
import org.apache.hadoop.yarn.YarnUncaughtExceptionHandler;
5656
import org.apache.hadoop.yarn.api.ApplicationConstants.Environment;
57-
import org.codehaus.jackson.JsonFactory;
58-
import org.codehaus.jackson.JsonParser;
59-
import org.codehaus.jackson.JsonToken;
57+
58+
import com.fasterxml.jackson.core.JsonFactory;
59+
import com.fasterxml.jackson.core.JsonParser;
60+
import com.fasterxml.jackson.core.JsonToken;
6061
import org.slf4j.Logger;
6162

6263

@@ -484,7 +485,7 @@ static Set<String> parseStaleDataNodeList(String liveNodeJsonString,
484485
final Set<String> dataNodesToReport = new HashSet<>();
485486

486487
JsonFactory fac = new JsonFactory();
487-
JsonParser parser = fac.createJsonParser(IOUtils
488+
JsonParser parser = fac.createParser(IOUtils
488489
.toInputStream(liveNodeJsonString, StandardCharsets.UTF_8.name()));
489490

490491
int objectDepth = 0;
@@ -554,7 +555,7 @@ static String fetchNameNodeJMXValue(Properties nameNodeProperties,
554555
}
555556
InputStream in = conn.getInputStream();
556557
JsonFactory fac = new JsonFactory();
557-
JsonParser parser = fac.createJsonParser(in);
558+
JsonParser parser = fac.createParser(in);
558559
if (parser.nextToken() != JsonToken.START_OBJECT
559560
|| parser.nextToken() != JsonToken.FIELD_NAME
560561
|| !parser.getCurrentName().equals("beans")

hadoop-tools/hadoop-resourceestimator/pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,24 @@
8181
<dependency>
8282
<groupId>com.sun.jersey</groupId>
8383
<artifactId>jersey-json</artifactId>
84+
<exclusions>
85+
<exclusion>
86+
<groupId>org.codehaus.jackson</groupId>
87+
<artifactId>jackson-core-asl</artifactId>
88+
</exclusion>
89+
<exclusion>
90+
<groupId>org.codehaus.jackson</groupId>
91+
<artifactId>jackson-mapper-asl</artifactId>
92+
</exclusion>
93+
<exclusion>
94+
<groupId>org.codehaus.jackson</groupId>
95+
<artifactId>jackson-jaxrs</artifactId>
96+
</exclusion>
97+
<exclusion>
98+
<groupId>org.codehaus.jackson</groupId>
99+
<artifactId>jackson-xc</artifactId>
100+
</exclusion>
101+
</exclusions>
84102
</dependency>
85103
<dependency>
86104
<groupId>junit</groupId>

hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/synthetic/SynthTraceJobProducer.java

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@
1717
*/
1818
package org.apache.hadoop.yarn.sls.synthetic;
1919

20+
import com.fasterxml.jackson.annotation.JsonCreator;
21+
import com.fasterxml.jackson.annotation.JsonProperty;
22+
import com.fasterxml.jackson.core.JsonFactory;
23+
import com.fasterxml.jackson.core.JsonFactoryBuilder;
24+
import com.fasterxml.jackson.core.JsonParser;
25+
import com.fasterxml.jackson.databind.JsonMappingException;
26+
import com.fasterxml.jackson.databind.ObjectMapper;
2027
import org.slf4j.Logger;
2128
import org.slf4j.LoggerFactory;
2229
import org.apache.commons.math3.distribution.AbstractRealDistribution;
@@ -30,18 +37,13 @@
3037
import org.apache.hadoop.yarn.api.records.ExecutionType;
3138
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
3239
import org.apache.hadoop.yarn.sls.appmaster.MRAMSimulator;
33-
import org.codehaus.jackson.annotate.JsonCreator;
34-
import org.codehaus.jackson.annotate.JsonProperty;
35-
import org.codehaus.jackson.map.JsonMappingException;
36-
import org.codehaus.jackson.map.ObjectMapper;
3740

3841
import javax.xml.bind.annotation.XmlRootElement;
3942
import java.io.IOException;
4043
import java.util.*;
4144
import java.util.concurrent.atomic.AtomicInteger;
4245

43-
import static org.codehaus.jackson.JsonParser.Feature.INTERN_FIELD_NAMES;
44-
import static org.codehaus.jackson.map.DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES;
46+
import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
4547

4648
/**
4749
* This is a JobStoryProducer that operates from distribution of different
@@ -84,15 +86,16 @@ public SynthTraceJobProducer(Configuration conf, Path path)
8486
this.conf = conf;
8587
this.rand = new JDKRandomGenerator();
8688

87-
ObjectMapper mapper = new ObjectMapper();
88-
mapper.configure(INTERN_FIELD_NAMES, true);
89+
JsonFactoryBuilder jsonFactoryBuilder = new JsonFactoryBuilder();
90+
jsonFactoryBuilder.configure(JsonFactory.Feature.INTERN_FIELD_NAMES, true);
91+
ObjectMapper mapper = new ObjectMapper(jsonFactoryBuilder.build());
8992
mapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
9093

9194
FileSystem ifs = path.getFileSystem(conf);
9295
FSDataInputStream fileIn = ifs.open(path);
9396

9497
// Initialize the random generator and the seed
95-
this.trace = mapper.readValue(fileIn, Trace.class);
98+
this.trace = mapper.readValue(fileIn.getWrappedStream(), Trace.class);
9699
this.seed = trace.rand_seed;
97100
this.rand.setSeed(seed);
98101
// Initialize the trace
@@ -538,9 +541,9 @@ public Sample(@JsonProperty("val") Double val,
538541
if(val!=null){
539542
if(std==null){
540543
// Constant
541-
if(dist!=null || discrete!=null || weights!=null){
542-
throw new JsonMappingException("Instantiation of " + Sample.class
543-
+ " failed");
544+
if (dist != null || discrete != null || weights != null) {
545+
throw JsonMappingException
546+
.from((JsonParser) null, "Instantiation of " + Sample.class + " failed");
544547
}
545548
mode = Mode.CONST;
546549
this.val = val;
@@ -550,9 +553,9 @@ public Sample(@JsonProperty("val") Double val,
550553
this.weights = null;
551554
} else {
552555
// Distribution
553-
if(discrete!=null || weights != null){
554-
throw new JsonMappingException("Instantiation of " + Sample.class
555-
+ " failed");
556+
if (discrete != null || weights != null) {
557+
throw JsonMappingException
558+
.from((JsonParser) null, "Instantiation of " + Sample.class + " failed");
556559
}
557560
mode = Mode.DIST;
558561
this.val = val;
@@ -563,9 +566,9 @@ public Sample(@JsonProperty("val") Double val,
563566
}
564567
} else {
565568
// Discrete
566-
if(discrete==null){
567-
throw new JsonMappingException("Instantiation of " + Sample.class
568-
+ " failed");
569+
if (discrete == null) {
570+
throw JsonMappingException
571+
.from((JsonParser) null, "Instantiation of " + Sample.class + " failed");
569572
}
570573
mode = Mode.DISC;
571574
this.val = 0;
@@ -576,9 +579,9 @@ public Sample(@JsonProperty("val") Double val,
576579
weights = new ArrayList<>(Collections.nCopies(
577580
discrete.size(), 1.0));
578581
}
579-
if(weights.size() != discrete.size()){
580-
throw new JsonMappingException("Instantiation of " + Sample.class
581-
+ " failed");
582+
if (weights.size() != discrete.size()) {
583+
throw JsonMappingException
584+
.from((JsonParser) null, "Instantiation of " + Sample.class + " failed");
582585
}
583586
this.weights = weights;
584587
}

0 commit comments

Comments
 (0)