Skip to content

Commit 799e2d1

Browse files
xerialclaude
andauthored
Fix Jackson deprecation warnings in MessagePackFactory (#903)
* Fix Jackson deprecation warnings in MessagePackFactory Replace deprecated _createContext(Object, boolean) calls with _createContext(ContentReference, boolean) to eliminate warnings when running tests with Jackson 2.18.4. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix Jackson deprecation warnings in MessagePackParserTest Replace deprecated JsonParser methods with their current equivalents: - getCurrentName() → currentName() - getTokenLocation() → currentTokenLocation() - getCurrentLocation() → currentLocation() 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix all remaining Jackson deprecation warnings - Replace deprecated ParserMinimalBase constructor with StreamReadConstraints - Add non-deprecated location methods (currentTokenLocation, currentLocation) - Update GeneratorBase constructor to use 4-parameter form with IOContext and JsonWriteContext - Add new createKeySerializer method signature for Jackson 2.18 - Keep deprecated methods for backward compatibility All tests pass and Jackson deprecation warnings are eliminated. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]>
1 parent 3021550 commit 799e2d1

File tree

5 files changed

+57
-26
lines changed

5 files changed

+57
-26
lines changed

msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackFactory.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.fasterxml.jackson.core.JsonFactory;
2020
import com.fasterxml.jackson.core.JsonGenerator;
2121
import com.fasterxml.jackson.core.JsonParser;
22+
import com.fasterxml.jackson.core.io.ContentReference;
2223
import com.fasterxml.jackson.core.io.IOContext;
2324
import org.msgpack.core.MessagePack;
2425
import org.msgpack.core.annotations.VisibleForTesting;
@@ -111,15 +112,15 @@ public JsonGenerator createGenerator(Writer w)
111112
public JsonParser createParser(byte[] data)
112113
throws IOException
113114
{
114-
IOContext ioContext = _createContext(data, false);
115+
IOContext ioContext = _createContext(ContentReference.rawReference(data), false);
115116
return _createParser(data, 0, data.length, ioContext);
116117
}
117118

118119
@Override
119120
public JsonParser createParser(InputStream in)
120121
throws IOException
121122
{
122-
IOContext ioContext = _createContext(in, false);
123+
IOContext ioContext = _createContext(ContentReference.rawReference(in), false);
123124
return _createParser(in, ioContext);
124125
}
125126

msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackGenerator.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@
1919
import com.fasterxml.jackson.core.ObjectCodec;
2020
import com.fasterxml.jackson.core.SerializableString;
2121
import com.fasterxml.jackson.core.base.GeneratorBase;
22+
import com.fasterxml.jackson.core.io.ContentReference;
23+
import com.fasterxml.jackson.core.io.IOContext;
2224
import com.fasterxml.jackson.core.io.SerializedString;
25+
import com.fasterxml.jackson.core.json.JsonWriteContext;
26+
import com.fasterxml.jackson.core.util.BufferRecycler;
2327
import org.msgpack.core.MessagePack;
2428
import org.msgpack.core.MessagePacker;
2529
import org.msgpack.core.annotations.Nullable;
@@ -185,21 +189,23 @@ else if (value instanceof NodeArray) {
185189
}
186190

187191
// This is an internal constructor for nested serialization.
192+
@SuppressWarnings("deprecation")
188193
private MessagePackGenerator(
189194
int features,
190195
ObjectCodec codec,
191196
OutputStream out,
192197
MessagePack.PackerConfig packerConfig,
193198
boolean supportIntegerKeys)
194199
{
195-
super(features, codec);
200+
super(features, codec, new IOContext(new BufferRecycler(), ContentReference.rawReference(out), false), JsonWriteContext.createRootContext(null));
196201
this.output = out;
197202
this.messagePacker = packerConfig.newPacker(out);
198203
this.packerConfig = packerConfig;
199204
this.nodes = new ArrayList<>();
200205
this.supportIntegerKeys = supportIntegerKeys;
201206
}
202207

208+
@SuppressWarnings("deprecation")
203209
public MessagePackGenerator(
204210
int features,
205211
ObjectCodec codec,
@@ -209,7 +215,7 @@ public MessagePackGenerator(
209215
boolean supportIntegerKeys)
210216
throws IOException
211217
{
212-
super(features, codec);
218+
super(features, codec, new IOContext(new BufferRecycler(), ContentReference.rawReference(out), false), JsonWriteContext.createRootContext(null));
213219
this.output = out;
214220
this.messagePacker = packerConfig.newPacker(getMessageBufferOutputForOutputStream(out, reuseResourceInGenerator));
215221
this.packerConfig = packerConfig;

msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackParser.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ private MessagePackParser(IOContext ctxt,
106106
boolean reuseResourceInParser)
107107
throws IOException
108108
{
109-
super(features);
109+
super(features, ctxt.streamReadConstraints());
110110

111111
this.codec = objectCodec;
112112
ioContext = ctxt;
@@ -583,15 +583,29 @@ public JsonStreamContext getParsingContext()
583583
}
584584

585585
@Override
586+
public JsonLocation currentTokenLocation()
587+
{
588+
return new JsonLocation(ioContext.contentReference(), tokenPosition, -1, -1);
589+
}
590+
591+
@Override
592+
public JsonLocation currentLocation()
593+
{
594+
return new JsonLocation(ioContext.contentReference(), currentPosition, -1, -1);
595+
}
596+
597+
@Override
598+
@Deprecated
586599
public JsonLocation getTokenLocation()
587600
{
588-
return new JsonLocation(ioContext.getSourceReference(), tokenPosition, -1, -1, (int) tokenPosition);
601+
return currentTokenLocation();
589602
}
590603

591604
@Override
605+
@Deprecated
592606
public JsonLocation getCurrentLocation()
593607
{
594-
return new JsonLocation(ioContext.getSourceReference(), currentPosition, -1, -1, (int) currentPosition);
608+
return currentLocation();
595609
}
596610

597611
@Override
@@ -627,6 +641,7 @@ public boolean isCurrentFieldId()
627641
}
628642

629643
@Override
644+
@Deprecated
630645
public String getCurrentName()
631646
throws IOException
632647
{

msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackSerializerFactory.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
package org.msgpack.jackson.dataformat;
1717

1818
import com.fasterxml.jackson.databind.JavaType;
19+
import com.fasterxml.jackson.databind.JsonMappingException;
1920
import com.fasterxml.jackson.databind.JsonSerializer;
2021
import com.fasterxml.jackson.databind.SerializationConfig;
22+
import com.fasterxml.jackson.databind.SerializerProvider;
2123
import com.fasterxml.jackson.databind.cfg.SerializerFactoryConfig;
2224
import com.fasterxml.jackson.databind.ser.BeanSerializerFactory;
2325

@@ -43,6 +45,13 @@ public MessagePackSerializerFactory(SerializerFactoryConfig config)
4345
}
4446

4547
@Override
48+
public JsonSerializer<Object> createKeySerializer(SerializerProvider prov, JavaType keyType, JsonSerializer<Object> defaultImpl) throws JsonMappingException
49+
{
50+
return new MessagePackKeySerializer();
51+
}
52+
53+
@Override
54+
@Deprecated
4655
public JsonSerializer<Object> createKeySerializer(SerializationConfig config, JavaType keyType, JsonSerializer<Object> defaultImpl)
4756
{
4857
return new MessagePackKeySerializer();

msgpack-jackson/src/test/java/org/msgpack/jackson/dataformat/MessagePackParserTest.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -317,43 +317,43 @@ public void testMessagePackParserDirectly()
317317

318318
JsonToken jsonToken = parser.nextToken();
319319
assertEquals(JsonToken.START_OBJECT, jsonToken);
320-
assertEquals(-1, parser.getTokenLocation().getLineNr());
321-
assertEquals(0, parser.getTokenLocation().getColumnNr());
322-
assertEquals(-1, parser.getCurrentLocation().getLineNr());
323-
assertEquals(1, parser.getCurrentLocation().getColumnNr());
320+
assertEquals(-1, parser.currentTokenLocation().getLineNr());
321+
assertEquals(0, parser.currentTokenLocation().getColumnNr());
322+
assertEquals(-1, parser.currentLocation().getLineNr());
323+
assertEquals(1, parser.currentLocation().getColumnNr());
324324

325325
jsonToken = parser.nextToken();
326326
assertEquals(JsonToken.FIELD_NAME, jsonToken);
327-
assertEquals("zero", parser.getCurrentName());
328-
assertEquals(1, parser.getTokenLocation().getColumnNr());
329-
assertEquals(6, parser.getCurrentLocation().getColumnNr());
327+
assertEquals("zero", parser.currentName());
328+
assertEquals(1, parser.currentTokenLocation().getColumnNr());
329+
assertEquals(6, parser.currentLocation().getColumnNr());
330330

331331
jsonToken = parser.nextToken();
332332
assertEquals(JsonToken.VALUE_NUMBER_INT, jsonToken);
333333
assertEquals(0, parser.getIntValue());
334-
assertEquals(6, parser.getTokenLocation().getColumnNr());
335-
assertEquals(7, parser.getCurrentLocation().getColumnNr());
334+
assertEquals(6, parser.currentTokenLocation().getColumnNr());
335+
assertEquals(7, parser.currentLocation().getColumnNr());
336336

337337
jsonToken = parser.nextToken();
338338
assertEquals(JsonToken.FIELD_NAME, jsonToken);
339-
assertEquals("one", parser.getCurrentName());
340-
assertEquals(7, parser.getTokenLocation().getColumnNr());
341-
assertEquals(11, parser.getCurrentLocation().getColumnNr());
339+
assertEquals("one", parser.currentName());
340+
assertEquals(7, parser.currentTokenLocation().getColumnNr());
341+
assertEquals(11, parser.currentLocation().getColumnNr());
342342
parser.overrideCurrentName("two");
343-
assertEquals("two", parser.getCurrentName());
343+
assertEquals("two", parser.currentName());
344344

345345
jsonToken = parser.nextToken();
346346
assertEquals(JsonToken.VALUE_NUMBER_FLOAT, jsonToken);
347347
assertEquals(1.0f, parser.getIntValue(), 0.001f);
348-
assertEquals(11, parser.getTokenLocation().getColumnNr());
349-
assertEquals(16, parser.getCurrentLocation().getColumnNr());
348+
assertEquals(11, parser.currentTokenLocation().getColumnNr());
349+
assertEquals(16, parser.currentLocation().getColumnNr());
350350

351351
jsonToken = parser.nextToken();
352352
assertEquals(JsonToken.END_OBJECT, jsonToken);
353-
assertEquals(-1, parser.getTokenLocation().getLineNr());
354-
assertEquals(16, parser.getTokenLocation().getColumnNr());
355-
assertEquals(-1, parser.getCurrentLocation().getLineNr());
356-
assertEquals(16, parser.getCurrentLocation().getColumnNr());
353+
assertEquals(-1, parser.currentTokenLocation().getLineNr());
354+
assertEquals(16, parser.currentTokenLocation().getColumnNr());
355+
assertEquals(-1, parser.currentLocation().getLineNr());
356+
assertEquals(16, parser.currentLocation().getColumnNr());
357357

358358
parser.close();
359359
parser.close(); // Intentional

0 commit comments

Comments
 (0)