Skip to content

Commit 407e800

Browse files
committed
Merge branch '3.x' of github.com:FasterXML/jackson-modules-base into 3.x
2 parents c5c6d87 + 8f711c4 commit 407e800

10 files changed

Lines changed: 49 additions & 36 deletions

File tree

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ not datatype, data format, or JAX-RS provider modules.
4040
<!-- 29-Jan-2018, tatu: No need for this, with Java 8
4141
<module>paranamer</module>
4242
-->
43+
<module>spi-subtypes</module>
4344
</modules>
4445

4546
<url>https://github.com/FasterXML/jackson-modules-base</url>

release-notes/VERSION

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ Active maintainers:
2424

2525
3.1.0 (not yet released)
2626

27+
#229: Add `jackson-module-spi-subtypes` module
28+
(contributed by @black-06)
2729
#317: (afterburner, mrbean) Update byte-buddy to latest (1.17.8) from 1.15.1
2830
#320: (mrbean) Remove shade plugin from 3.1 MrBean
2931
(fix by @cowtowncoder, w/ Claude code)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// SPI Subtypes Main artifact Module descriptor
2+
module tools.jackson.module.spisubtypes
3+
{
4+
requires com.fasterxml.jackson.annotation;
5+
6+
requires tools.jackson.core;
7+
requires tools.jackson.databind;
8+
9+
exports tools.jackson.module.spisubtypes;
10+
11+
provides tools.jackson.databind.JacksonModule with
12+
tools.jackson.module.spisubtypes.SubtypesModule;
13+
}

spi-subtypes/src/main/java/com/fasterxml/jackson/module/spisubtypes/JacksonSubType.java renamed to spi-subtypes/src/main/java/tools/jackson/module/spisubtypes/JacksonSubType.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
package com.fasterxml.jackson.module.spisubtypes;
1+
package tools.jackson.module.spisubtypes;
22

33
import java.lang.annotation.ElementType;
44
import java.lang.annotation.Retention;
55
import java.lang.annotation.RetentionPolicy;
66
import java.lang.annotation.Target;
77

88
import com.fasterxml.jackson.annotation.JacksonAnnotation;
9-
import com.fasterxml.jackson.annotation.JsonSubTypes;
109
import com.fasterxml.jackson.annotation.JsonTypeName;
1110

1211
/**
@@ -16,7 +15,7 @@
1615
* name will be constructed by type id mechanism.
1716
* Default name is usually based on class name.
1817
* <p>
19-
* It's the same as {@link JsonSubTypes.Type}.
18+
* It's the same as {@link com.fasterxml.jackson.annotation.JsonSubTypes.Type}.
2019
*
2120
* @since 2.21 / 3.1
2221
*/

spi-subtypes/src/main/java/com/fasterxml/jackson/module/spisubtypes/PackageVersion.java.in renamed to spi-subtypes/src/main/java/tools/jackson/module/spisubtypes/PackageVersion.java.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package @package@;
22

3-
import com.fasterxml.jackson.core.Version;
4-
import com.fasterxml.jackson.core.Versioned;
5-
import com.fasterxml.jackson.core.util.VersionUtil;
3+
import tools.jackson.core.Version;
4+
import tools.jackson.core.Versioned;
5+
import tools.jackson.core.util.VersionUtil;
66

77
/**
88
* Automatically generated from PackageVersion.java.in during

spi-subtypes/src/main/java/com/fasterxml/jackson/module/spisubtypes/SubtypesAnnotationIntrospector.java renamed to spi-subtypes/src/main/java/tools/jackson/module/spisubtypes/SubtypesAnnotationIntrospector.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.module.spisubtypes;
1+
package tools.jackson.module.spisubtypes;
22

33
import java.util.ArrayList;
44
import java.util.Collections;
@@ -7,11 +7,12 @@
77
import java.util.concurrent.ConcurrentHashMap;
88
import java.util.function.Function;
99

10-
import com.fasterxml.jackson.core.Version;
10+
import tools.jackson.core.Version;
1111

12-
import com.fasterxml.jackson.databind.AnnotationIntrospector;
13-
import com.fasterxml.jackson.databind.introspect.Annotated;
14-
import com.fasterxml.jackson.databind.jsontype.NamedType;
12+
import tools.jackson.databind.AnnotationIntrospector;
13+
import tools.jackson.databind.cfg.MapperConfig;
14+
import tools.jackson.databind.introspect.Annotated;
15+
import tools.jackson.databind.jsontype.NamedType;
1516

1617
/**
1718
* Annotation introspector that handles {@link JacksonSubType} annotation.
@@ -23,7 +24,10 @@
2324
*
2425
* @since 2.21 / 3.1
2526
*/
26-
public class SubtypesAnnotationIntrospector extends AnnotationIntrospector {
27+
public class SubtypesAnnotationIntrospector extends AnnotationIntrospector
28+
{
29+
private static final long serialVersionUID = 3L;
30+
2731
private final ConcurrentHashMap<Class<?>, List<NamedType>> subtypes = new ConcurrentHashMap<>();
2832

2933
@Override
@@ -32,7 +36,7 @@ public Version version() {
3236
}
3337

3438
@Override
35-
public List<NamedType> findSubtypes(Annotated a) {
39+
public List<NamedType> findSubtypes(MapperConfig<?> config, Annotated a) {
3640
registerTypes(a.getRawType());
3741

3842
List<NamedType> list1 = _findSubtypes(a.getRawType(), a::getAnnotation);

spi-subtypes/src/main/java/com/fasterxml/jackson/module/spisubtypes/SubtypesModule.java renamed to spi-subtypes/src/main/java/tools/jackson/module/spisubtypes/SubtypesModule.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
package com.fasterxml.jackson.module.spisubtypes;
1+
package tools.jackson.module.spisubtypes;
22

3-
import com.fasterxml.jackson.core.Version;
4-
import com.fasterxml.jackson.databind.Module;
3+
import tools.jackson.core.Version;
4+
import tools.jackson.databind.JacksonModule;
55

66
/**
77
* Subtypes module for registering subtypes without annotating the parent class.
88
* See <a href="https://github.com/FasterXML/jackson-databind/issues/2104">this issues</a> in jackson-databind.
99
*
1010
* @since 2.21 / 3.1
1111
*/
12-
public class SubtypesModule extends Module {
12+
public class SubtypesModule extends JacksonModule {
1313

1414
protected SubtypesAnnotationIntrospector _introspector;
1515

@@ -18,7 +18,7 @@ public SubtypesModule() {
1818
}
1919

2020
public SubtypesModule(SubtypesAnnotationIntrospector introspector) {
21-
this._introspector = introspector;
21+
_introspector = introspector;
2222
}
2323

2424
@Override

spi-subtypes/src/moditect/module-info.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

spi-subtypes/src/test/java/com/fasterxml/jackson/module/spisubtypes/WithJacksonSubTypesTest.java renamed to spi-subtypes/src/test/java/tools/jackson/module/spisubtypes/WithJacksonSubTypesTest.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
package com.fasterxml.jackson.module.spisubtypes;
1+
package tools.jackson.module.spisubtypes;
22

33
import java.util.Arrays;
44
import java.util.List;
55
import java.util.Objects;
66
import java.util.stream.Stream;
77

8+
import org.junit.jupiter.params.ParameterizedTest;
9+
import org.junit.jupiter.params.provider.MethodSource;
10+
811
import com.fasterxml.jackson.annotation.JsonSubTypes;
912
import com.fasterxml.jackson.annotation.JsonTypeInfo;
10-
import com.fasterxml.jackson.databind.ObjectMapper;
11-
import com.fasterxml.jackson.databind.json.JsonMapper;
13+
import tools.jackson.databind.ObjectMapper;
14+
import tools.jackson.databind.json.JsonMapper;
15+
1216
import com.google.auto.service.AutoService;
13-
import org.junit.jupiter.params.ParameterizedTest;
14-
import org.junit.jupiter.params.provider.MethodSource;
1517

1618
import static org.junit.jupiter.api.Assertions.*;
1719

spi-subtypes/src/test/java/com/fasterxml/jackson/module/spisubtypes/WithoutJacksonSubTypesTest.java renamed to spi-subtypes/src/test/java/tools/jackson/module/spisubtypes/WithoutJacksonSubTypesTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
package com.fasterxml.jackson.module.spisubtypes;
1+
package tools.jackson.module.spisubtypes;
22

33
import java.util.Objects;
44

5+
import org.junit.jupiter.api.Test;
6+
57
import com.fasterxml.jackson.annotation.JsonSubTypes;
68
import com.fasterxml.jackson.annotation.JsonTypeInfo;
7-
import com.fasterxml.jackson.databind.ObjectMapper;
8-
import com.fasterxml.jackson.databind.json.JsonMapper;
9+
import tools.jackson.databind.ObjectMapper;
10+
import tools.jackson.databind.json.JsonMapper;
911
import com.google.auto.service.AutoService;
10-
import org.junit.jupiter.api.Test;
1112

1213
import static org.junit.jupiter.api.Assertions.assertEquals;
1314
import static org.junit.jupiter.api.Assertions.assertTrue;
1415

15-
1616
/**
1717
* test {@link JacksonSubType} works alone, without {@link JsonSubTypes}
1818
*/

0 commit comments

Comments
 (0)