File tree Expand file tree Collapse file tree 5 files changed +59
-7
lines changed
typescript-generator-core/src
main/java/cz/habarta/typescript/generator
test/java/cz/habarta/typescript/generator
typescript-generator-maven-plugin/src/main/java/cz/habarta/typescript/generator/maven Expand file tree Collapse file tree 5 files changed +59
-7
lines changed Original file line number Diff line number Diff line change 33
44
55public enum JsonLibrary {
6- jackson1 , jackson2
6+ jackson1 , jackson2 , jaxb
77}
Original file line number Diff line number Diff line change @@ -68,15 +68,24 @@ public TypeProcessor getTypeProcessor() {
6868
6969 public ModelParser getModelParser () {
7070 if (modelParser == null ) {
71- if (settings .jsonLibrary == JsonLibrary .jackson2 ) {
72- modelParser = new Jackson2Parser (settings , getTypeProcessor ());
73- } else {
74- modelParser = new Jackson1Parser (settings , getTypeProcessor ());
75- }
71+ modelParser = createModelParser ();
7672 }
7773 return modelParser ;
7874 }
7975
76+ private ModelParser createModelParser () {
77+ switch (settings .jsonLibrary ) {
78+ case jackson1 :
79+ return new Jackson1Parser (settings , getTypeProcessor ());
80+ case jackson2 :
81+ return new Jackson2Parser (settings , getTypeProcessor ());
82+ case jaxb :
83+ return new Jackson2Parser (settings , getTypeProcessor (), /*useJaxbAnnotations*/ true );
84+ default :
85+ throw new RuntimeException ();
86+ }
87+ }
88+
8089 public ModelCompiler getModelCompiler () {
8190 if (modelCompiler == null ) {
8291 modelCompiler = new ModelCompiler (settings , getTypeProcessor ());
Original file line number Diff line number Diff line change 55import com .fasterxml .jackson .annotation .JsonTypeInfo ;
66import com .fasterxml .jackson .databind .*;
77import com .fasterxml .jackson .databind .ser .*;
8+ import com .fasterxml .jackson .module .jaxb .JaxbAnnotationIntrospector ;
89import cz .habarta .typescript .generator .*;
910import java .lang .annotation .Annotation ;
1011import java .lang .reflect .Member ;
@@ -17,7 +18,15 @@ public class Jackson2Parser extends ModelParser {
1718 private final ObjectMapper objectMapper = new ObjectMapper ();
1819
1920 public Jackson2Parser (Settings settings , TypeProcessor typeProcessor ) {
21+ this (settings , typeProcessor , false );
22+ }
23+
24+ public Jackson2Parser (Settings settings , TypeProcessor typeProcessor , boolean useJaxbAnnotations ) {
2025 super (settings , typeProcessor );
26+ if (useJaxbAnnotations ) {
27+ AnnotationIntrospector introspector = new JaxbAnnotationIntrospector (objectMapper .getTypeFactory ());
28+ objectMapper .setAnnotationIntrospector (introspector );
29+ }
2130 }
2231
2332 @ Override
Original file line number Diff line number Diff line change 1+
2+ package cz .habarta .typescript .generator ;
3+
4+ import javax .xml .bind .annotation .*;
5+ import org .junit .Assert ;
6+ import org .junit .Test ;
7+
8+
9+ public class JaxbTest {
10+
11+ @ Test
12+ public void test () {
13+ final Settings settings = TestUtils .settings ();
14+ settings .jsonLibrary = JsonLibrary .jaxb ;
15+ final String output = new TypeScriptGenerator (settings ).generateTypeScript (Input .from (MyJaxbBean .class ));
16+ Assert .assertTrue (output .contains ("king" ));
17+ Assert .assertFalse (output .contains ("age" ));
18+ }
19+
20+ @ XmlRootElement
21+ private static class MyJaxbBean {
22+
23+ @ XmlElement (name = "king" )
24+ public String name ;
25+
26+ @ XmlTransient
27+ public int age ;
28+
29+ }
30+
31+ }
Original file line number Diff line number Diff line change @@ -103,7 +103,10 @@ public class GenerateMojo extends AbstractMojo {
103103
104104 /**
105105 * Library used in JSON classes.
106- * Supported values are 'jackson1', 'jackson2'.
106+ * Supported values are
107+ * 'jackson1' (annotations from 'org.codehaus.jackson.annotate' package),
108+ * 'jackson2' (annotations from 'com.fasterxml.jackson.annotation' package),
109+ * `jaxb` (annotations from 'javax.xml.bind.annotation' package).
107110 * Required parameter, recommended value is 'jackson2'.
108111 */
109112 @ Parameter (required = true )
You can’t perform that action at this time.
0 commit comments