Skip to content

Commit 8905bb5

Browse files
Merge pull request #112 from vojtechhabarta/jackson-modules
Using discovered jackson2 modules
2 parents 5b88edc + b120085 commit 8905bb5

File tree

6 files changed

+32
-2
lines changed

6 files changed

+32
-2
lines changed

sample-maven/pom.xml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,17 @@
1212
<dependency>
1313
<groupId>com.fasterxml.jackson.jaxrs</groupId>
1414
<artifactId>jackson-jaxrs-json-provider</artifactId>
15-
<version>2.7.4</version>
15+
<version>2.8.6</version>
16+
</dependency>
17+
<dependency>
18+
<groupId>com.fasterxml.jackson.datatype</groupId>
19+
<artifactId>jackson-datatype-hibernate5</artifactId>
20+
<version>2.8.6</version>
21+
</dependency>
22+
<dependency>
23+
<groupId>org.hibernate</groupId>
24+
<artifactId>hibernate-core</artifactId>
25+
<version>5.2.6.Final</version>
1626
</dependency>
1727
</dependencies>
1828

@@ -21,7 +31,7 @@
2131
<plugin>
2232
<groupId>cz.habarta.typescript-generator</groupId>
2333
<artifactId>typescript-generator-maven-plugin</artifactId>
24-
<version>1.10-SNAPSHOT</version>
34+
<version>1.15-SNAPSHOT</version>
2535
<executions>
2636
<execution>
2737
<id>generate</id>
@@ -31,6 +41,7 @@
3141
<phase>process-classes</phase>
3242
<configuration>
3343
<jsonLibrary>jackson2</jsonLibrary>
44+
<disableJackson2ModuleDiscovery>false</disableJackson2ModuleDiscovery>
3445
<classes>
3546
<class>cz.habarta.typescript.generator.sample.Person</class>
3647
</classes>

sample-maven/src/main/java/cz/habarta/typescript/generator/sample/Person.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,7 @@ public class Person {
1212
public List<String> tags;
1313
public Map<String, String> emails;
1414

15+
@javax.persistence.Transient
16+
public String excluded;
17+
1518
}

typescript-generator-core/src/main/java/cz/habarta/typescript/generator/Settings.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public class Settings {
4848
public List<Class<? extends Annotation>> includePropertyAnnotations = new ArrayList<>();
4949
public List<Class<? extends Annotation>> optionalAnnotations = new ArrayList<>();
5050
public boolean displaySerializerWarning = true;
51+
public boolean disableJackson2ModuleDiscovery = false;
52+
public ClassLoader classLoader = null;
5153

5254

5355
public void setStringQuotes(StringQuotes quotes) {

typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public Jackson2Parser(Settings settings, TypeProcessor typeProcessor) {
3636

3737
public Jackson2Parser(Settings settings, TypeProcessor typeProcessor, boolean useJaxbAnnotations) {
3838
super(settings, typeProcessor);
39+
if (!settings.disableJackson2ModuleDiscovery) {
40+
objectMapper.registerModules(ObjectMapper.findModules(settings.classLoader));
41+
}
3942
if (useJaxbAnnotations) {
4043
AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(objectMapper.getTypeFactory());
4144
objectMapper.setAnnotationIntrospector(introspector);

typescript-generator-gradle-plugin/src/main/java/cz/habarta/typescript/generator/gradle/GenerateTask.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class GenerateTask extends DefaultTask {
4848
public List<String> optionalAnnotations;
4949
public StringQuotes stringQuotes;
5050
public boolean displaySerializerWarning = true;
51+
public boolean disableJackson2ModuleDiscovery;
5152

5253
@TaskAction
5354
public void generate() throws Exception {
@@ -106,6 +107,8 @@ public void generate() throws Exception {
106107
settings.loadOptionalAnnotations(classLoader, optionalAnnotations);
107108
settings.setStringQuotes(stringQuotes);
108109
settings.displaySerializerWarning = displaySerializerWarning;
110+
settings.disableJackson2ModuleDiscovery = disableJackson2ModuleDiscovery;
111+
settings.classLoader = classLoader;
109112
settings.validateFileName(new File(outputFile));
110113

111114
// TypeScriptGenerator

typescript-generator-maven-plugin/src/main/java/cz/habarta/typescript/generator/maven/GenerateMojo.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,12 @@ public class GenerateMojo extends AbstractMojo {
293293
@Parameter(defaultValue = "true")
294294
private boolean displaySerializerWarning;
295295

296+
/**
297+
* Turns off Jackson2 automatic module discovery.
298+
*/
299+
@Parameter
300+
private boolean disableJackson2ModuleDiscovery;
301+
296302
@Parameter(defaultValue = "${project}", readonly = true, required = true)
297303
private MavenProject project;
298304

@@ -342,6 +348,8 @@ public void execute() {
342348
settings.loadOptionalAnnotations(classLoader, optionalAnnotations);
343349
settings.setStringQuotes(stringQuotes);
344350
settings.displaySerializerWarning = displaySerializerWarning;
351+
settings.disableJackson2ModuleDiscovery = disableJackson2ModuleDiscovery;
352+
settings.classLoader = classLoader;
345353
settings.validateFileName(outputFile);
346354

347355
// TypeScriptGenerator

0 commit comments

Comments
 (0)