From 33406ca9efc3f89f6f3c4db700fbb92c3982d9a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Habarta?= Date: Mon, 13 Apr 2020 00:30:43 +0200 Subject: [PATCH] Support build using Java 13 and 14 - solve error: "As of JDK 13, the com.sun.javadoc API is no longer supported" - generated `test-javadoc.xml` file moved to sources - only re-generate this file using `test-javadoc` Maven profile --- typescript-generator-core/pom.xml | 102 +- .../typescript/generator/JavadocTest.java | 2 +- .../generator/JaxrsApplicationTest.java | 2 +- .../typescript/generator/NumberEnumTest.java | 2 +- .../src/test/javadoc/test-javadoc.xml | 3483 +++++++++++++++++ 5 files changed, 3542 insertions(+), 49 deletions(-) create mode 100644 typescript-generator-core/src/test/javadoc/test-javadoc.xml diff --git a/typescript-generator-core/pom.xml b/typescript-generator-core/pom.xml index d0cdaf232..a3d5bd4a5 100644 --- a/typescript-generator-core/pom.xml +++ b/typescript-generator-core/pom.xml @@ -165,52 +165,6 @@ - - org.apache.maven.plugins - maven-javadoc-plugin - 3.0.1 - - - test-xml-doclet - process-test-classes - - test-javadoc - - - com.github.markusbernhardt.xmldoclet.XmlDoclet - -d ${project.build.directory} -filename test-javadoc.xml - false - - - com.github.markusbernhardt - xml-doclet - 1.0.5 - - - javax.xml.bind - jaxb-api - ${jaxb.version} - - - com.sun.xml.bind - jaxb-impl - ${jaxb.version} - - - org.glassfish.jaxb - jaxb-runtime - ${jaxb.version} - - - javax.activation - javax.activation-api - ${javax.activation.version} - - - - - - org.apache.maven.plugins maven-jar-plugin @@ -241,4 +195,60 @@ + + + test-javadoc + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.0.1 + + + test-xml-doclet + process-test-classes + + test-javadoc + + + com.github.markusbernhardt.xmldoclet.XmlDoclet + -d ${project.basedir}/src/test/javadoc -filename test-javadoc.xml + false + + + com.github.markusbernhardt + xml-doclet + 1.0.5 + + + javax.xml.bind + jaxb-api + ${jaxb.version} + + + com.sun.xml.bind + jaxb-impl + ${jaxb.version} + + + org.glassfish.jaxb + jaxb-runtime + ${jaxb.version} + + + javax.activation + javax.activation-api + ${javax.activation.version} + + + + + + + + + + + diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java index bf152b423..079e972ec 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java @@ -18,7 +18,7 @@ public class JavadocTest { @Test public void testJavadoc() { final Settings settings = TestUtils.settings(); - settings.javadocXmlFiles = Arrays.asList(new File("target/test-javadoc.xml")); + settings.javadocXmlFiles = Arrays.asList(new File("src/test/javadoc/test-javadoc.xml")); final TypeProcessor typeProcessor = new DefaultTypeProcessor(); { final Model model = new Jackson2Parser(settings, typeProcessor).parseModel(ClassWithJavadoc.class); diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java index 78389eefe..b78579728 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java @@ -442,7 +442,7 @@ public void testJavadoc() { final Settings settings = TestUtils.settings(); settings.outputFileType = TypeScriptFileType.implementationFile; settings.generateJaxrsApplicationInterface = true; - settings.javadocXmlFiles = Arrays.asList(new File("target/test-javadoc.xml")); + settings.javadocXmlFiles = Arrays.asList(new File("src/test/javadoc/test-javadoc.xml")); final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(OrganizationApplication.class)); Assert.assertTrue(output.contains("Returns person with specified ID.")); } diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/NumberEnumTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/NumberEnumTest.java index 8dd000993..a79f55ea2 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/NumberEnumTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/NumberEnumTest.java @@ -75,7 +75,7 @@ public void testNonConstAnnotationEnum() { @Test public void testJavadoc() { final Settings settings = TestUtils.settings(); - settings.javadocXmlFiles = Arrays.asList(new File("target/test-javadoc.xml")); + settings.javadocXmlFiles = Arrays.asList(new File("src/test/javadoc/test-javadoc.xml")); final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(SomeCode.class)); Assert.assertTrue(output.contains("Documentation for SomeCode enum.")); Assert.assertTrue(output.contains("Documentation for VALUE0.")); diff --git a/typescript-generator-core/src/test/javadoc/test-javadoc.xml b/typescript-generator-core/src/test/javadoc/test-javadoc.xml new file mode 100644 index 000000000..760e4c352 --- /dev/null +++ b/typescript-generator-core/src/test/javadoc/test-javadoc.xml @@ -0,0 +1,3483 @@ + + + + + + + + RUNTIME + + + + + + java.lang.annotation.ElementType.TYPE_USE + java.lang.annotation.ElementType.TYPE_PARAMETER + + + + + + + + RUNTIME + + + + + + + + RUNTIME + + + + + + + + RUNTIME + + + + + + java.lang.annotation.ElementType.TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _A + + + + + + + + _B + + + + + + + + _C + + + + + + + + + + + + + Documentation for SomeCode enum. + + + + + Documentation for VALUE0. + + + Documentation for VALUE1. + + + + + NUMBER_INT + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJECT + + + + + + + + + + + + + + + + + + + + NUMBER_INT + + + + + + + + + + + + + + Documentation for DummyEnum. + + + + + ff0000 + + + 00ff00 + + + 0000ff + + + + + + + NAME + + + + kind + + + + + + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.ImmutablesTest.Square.class, name="square") + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.ImmutablesTest.Rectangle.class, name="rectangle") + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.ImmutablesTest.Circle.class, name="circle") + + + + + + + + + + + + + + + + + cz.habarta.typescript.generator.ImmutableCircle + + + + + + + + + + cz.habarta.typescript.generator.ImmutableCircle + + + + + + java.io.Serializable + + + + + + + + + + + + + + + + + + + + + + + + + + + cz.habarta.typescript.generator.CustomTypeMappingTest.CodedValueSerializer + + + + + + + + + + + + + CLASS + + + + PROPERTY + + + + @class + + + + + + + + + + + + + id + + + + + + + + + {id} + + + + + + + + + + + + + + + + /test + + + + + + + /account + + + + + Documentation for InterfaceWithJavadoc. + + Documentation for interface getter property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Exception + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Immutable implementation of {@link ImmutablesTest.Circle}. + <p> + Use the builder to create immutable instances: + {@code new ImmutablesTest.Circle.Builder()}. + + + + + + + + + radius + + + + + + Copy the current immutable object by setting a value for the {@link ImmutablesTest.Circle#radius() radius} attribute. + A value strict bits equality used to prevent copying of the same value by returning {@code this}. + + + + + + + + + This instance is equal to all instances of {@code ImmutableCircle} that have equal attribute values. + + + + + + + + + + Computes a hash code from attributes: {@code radius}. + + + + + + Prints the immutable value {@code Circle} with attribute values. + + + + + + Creates an immutable copy of a {@link ImmutablesTest.Circle} value. + Uses accessors to get values to initialize the new immutable instance. + If an instance is already immutable, it is returned as is. + + + + + + + + + + + ImmutablesTest.Circle + + + + Immutables + + + + + + all + + + + + + + + org.immutables.processor.ProxyProcessor + + + + + + Builds instances of type {@link ImmutableCircle ImmutableCircle}. + Initialize attributes and then invoke the {@link #build()} method to create an + immutable instance. + <p><em>{@code Builder} is not thread-safe and generally should not be stored in a field or collection, + but instead used immediately to create instances.</em> + + + Creates a builder for {@link ImmutableCircle ImmutableCircle} instances. + + + Fill a builder with attribute values from the provided {@code Circle} instance. + Regular attribute values will be replaced with those from the given instance. + Absent optional values will not replace present values. + + + + + + + + + Initializes the value for the {@link ImmutablesTest.Circle#radius() radius} attribute. + + + + + + + + + + radius + + + + + Builds a new {@link ImmutableCircle ImmutableCircle}. + + + + + + + + ImmutablesTest.Circle + + + + Immutables + + + + + + Immutable implementation of {@link ImmutablesTest.Rectangle}. + <p> + Use the builder to create immutable instances: + {@code new ImmutablesTest.Rectangle.Builder()}. + + + + + + + + width + + + + + + + + + + + height + + + + + + Copy the current immutable object by setting a value for the {@link ImmutablesTest.Rectangle#width() width} attribute. + A value strict bits equality used to prevent copying of the same value by returning {@code this}. + + + + + + + + + Copy the current immutable object by setting a value for the {@link ImmutablesTest.Rectangle#height() height} attribute. + A value strict bits equality used to prevent copying of the same value by returning {@code this}. + + + + + + + + + This instance is equal to all instances of {@code ImmutableRectangle} that have equal attribute values. + + + + + + + + + + Computes a hash code from attributes: {@code width}, {@code height}. + + + + + + Prints the immutable value {@code Rectangle} with attribute values. + + + + + + Creates an immutable copy of a {@link ImmutablesTest.Rectangle} value. + Uses accessors to get values to initialize the new immutable instance. + If an instance is already immutable, it is returned as is. + + + + + + + + + + + ImmutablesTest.Rectangle + + + + Immutables + + + + + + all + + + + + + + + org.immutables.processor.ProxyProcessor + + + + + + Builds instances of type {@link ImmutableRectangle ImmutableRectangle}. + Initialize attributes and then invoke the {@link #build()} method to create an + immutable instance. + <p><em>{@code Builder} is not thread-safe and generally should not be stored in a field or collection, + but instead used immediately to create instances.</em> + + + Creates a builder for {@link ImmutableRectangle ImmutableRectangle} instances. + + + Fill a builder with attribute values from the provided {@code Rectangle} instance. + Regular attribute values will be replaced with those from the given instance. + Absent optional values will not replace present values. + + + + + + + + + Initializes the value for the {@link ImmutablesTest.Rectangle#width() width} attribute. + + + + + + + + + + width + + + + + Initializes the value for the {@link ImmutablesTest.Rectangle#height() height} attribute. + + + + + + + + + + height + + + + + Builds a new {@link ImmutableRectangle ImmutableRectangle}. + + + + + + + + ImmutablesTest.Rectangle + + + + Immutables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cz.habarta.typescript.generator.ImmutableRectangle + + + + + + + + + + cz.habarta.typescript.generator.ImmutableRectangle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cz.habarta.typescript.generator.compiler.SymbolTable.NameConflictException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NATURAL + + + + + + + + + + + + + + + + + + + + + + OBJECT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + changedNameProperty + + + + + + + + + + + NAME + + + + PROPERTY + + + + type + + + + + + + + + + + + + + + true + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + true + + + + + + + + + + + + + false + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NAME + + + + kind + + + + PROPERTY + + + + + + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.DuplicatePropertyTest.DuplicateKind1.class, name="kind_1") + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.DuplicatePropertyTest.DuplicateKind2.class, name="kind_2") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tests that custom mapping a superclass to a primitive doesn't cause errors. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A + + + + A + + + + + + + + + B + + + + B + + + + + + + + + + + + + + + + + + + + _ + + + + 2 + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.RuntimeException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rawtypes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(cz.habarta.typescript.generator.Jackson2PolymorphismTest.Y.class) + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(cz.habarta.typescript.generator.Jackson2PolymorphismTest.X.class) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + api + + + + + + + + + + + + + name + + + + + + + + + search-limit + + + + + + + + + + + + + + { organizationCode : [a-z]+ }/{organizationId} + + + + + + + OrgApi + + + + + + organizations + + + + + + + + organizationId + + + + + + + + + + + + + + + + + + organizationCode + + + + + + + + + + + + + + + + + + + + + + Returns person with specified ID. + + + + + + + + + + address-id + + + + + + + + + address/{address-id} + + + + + + + people/{personId} + + + + + + + + personId + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + search + + + + + + + + + search + + + + + + + + + + person-id + + + + + + + + + {person-id:.+} + + + + + + + conflict + + + + + + application/json + + + + + + application/json + + + + + + + + + + + + + target + + + + + + + + + + + somePath + + + + + + + enum-query-param + + + + + + + + + + + + + + + + + + + description + + + + + + + + + + + + + + + + + + + + + + message + + + + + + + + + + + + bean-param + + + + + + application/json + + + + + + + + + + + + + id + + + + + + + + + {id: [0-9]{1,99}} + + + + + + + objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NAME + + + + type + + + + + + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.TaggedUnionsTest.InProgressResult.class, name="in-progress") + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.TaggedUnionsTest.FinishedResult.class, name="finished") + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.TaggedUnionsTest.FailedResult.class, name="error") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NAME + + + + type + + + + + + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(cz.habarta.typescript.generator.TaggedUnionsTest.FlippedGenericParameters.class) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NAME + + + + PROPERTY + + + + + + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.TaggedUnionsTest.Foo.class, name="Foo") + @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value=cz.habarta.typescript.generator.TaggedUnionsTest.Bar.class, name="Bar") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Documentation for ClassWithJavadoc. First line. + Second line. + + + + Documentation for getter property. + + + + + Documentation for documentedField. + + + + Documentation for documentedEnumField. + + + + Documentation for renamed field. + + + + newName + + + + + + + + + + + + + This class comes with an embedded example! + + <pre>{@code + public class Example { + // indentation and line breaks are kept + + {@literal @}SuppressWarnings + public List<String> generics() { + return null; + } + } + }</pre> + + + + + + + + Class documentation <br> + ------------------- <br/> + Some documentation <br /> for this class.<br> + + + + + First sentence. + + <p> Long + paragraph </p> + + <p>Second + paragraph</p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +