You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2021/12/11 19:05:40 UTC

[groovy] branch master updated: GROOVY-10409: Bump qdox to 2.0.1

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/master by this push:
     new 3cc9dc6  GROOVY-10409: Bump qdox to 2.0.1
3cc9dc6 is described below

commit 3cc9dc6d2eb051b581d956e9813c9460f8dc1de8
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Dec 12 03:02:40 2021 +0800

    GROOVY-10409: Bump qdox to 2.0.1
---
 gradle/verification-metadata.xml                   |  5 +++
 .../apache/groovy/docgenerator/DocGenerator.groovy | 36 +++++++++++++---------
 versions.properties                                |  2 +-
 3 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 5652187..ee5f7f5 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -447,6 +447,11 @@
             <pgp value="31fae244a81d64507b47182e1b2718089ce964b8"/>
          </artifact>
       </component>
+      <component group="com.thoughtworks.qdox" name="qdox" version="2.0.1">
+         <artifact name="qdox-2.0.1.jar">
+            <pgp value="b02137d875d833d9b23392ecae5a7fb608a0221c"/>
+         </artifact>
+      </component>
       <component group="com.thoughtworks.xstream" name="xstream" version="1.4.11.1">
          <artifact name="xstream-1.4.11.1.jar">
             <pgp value="050a37a2e0577f4baa095b52602ec18d20c4661c"/>
diff --git a/subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy b/subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy
index c8189c2..a1da0c3 100644
--- a/subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy
+++ b/subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy
@@ -18,11 +18,11 @@
  */
 package org.apache.groovy.docgenerator
 
-import com.thoughtworks.qdox.JavaDocBuilder
+import com.thoughtworks.qdox.JavaProjectBuilder
 import com.thoughtworks.qdox.model.JavaClass
 import com.thoughtworks.qdox.model.JavaMethod
 import com.thoughtworks.qdox.model.JavaParameter
-import com.thoughtworks.qdox.model.Type
+import com.thoughtworks.qdox.model.JavaType
 import groovy.cli.internal.CliBuilderInternal
 import groovy.text.SimpleTemplateEngine
 import groovy.text.Template
@@ -59,7 +59,7 @@ class DocGenerator {
      * with its methods, javadoc comments and tags.
      */
     private static DocSource parseSource(List<File> sourceFiles) {
-        JavaDocBuilder builder = new JavaDocBuilder()
+        JavaProjectBuilder builder = new JavaProjectBuilder()
         sourceFiles.each {
             if (it.exists()) {
                 builder.addSource(it.newReader())
@@ -264,7 +264,7 @@ class DocGenerator {
     private static class DocSource {
         SortedSet<DocPackage> packages = new TreeSet<DocPackage>(SORT_KEY_COMPARATOR)
 
-        void add(Type type, JavaMethod javaMethod) {
+        void add(JavaType type, JavaMethod javaMethod) {
             DocType tempDocType = new DocType(type: type)
 
             DocPackage aPackage = packages.find { it.name == tempDocType.packageName }
@@ -287,20 +287,20 @@ class DocGenerator {
             def allTypes = allDocTypes.collectEntries{ [it.fullyQualifiedClassName, it] }
             allTypes.each { name, docType ->
                 if (name.startsWith('primitives-and-primitive-arrays')) return
-                Type next = docType.javaClass.superClass
+                JavaType next = docType.javaClass.superClass
                 while (next != null) {
                     if (allTypes.keySet().contains(next.value)) {
                         docType.inheritedMethods[allTypes[next.value]] = allTypes[next.value].docMethods
                     }
-                    next = next.javaClass.superClass
+                    next = next.superClass
                 }
-                def remaining = docType.javaClass.implementedInterfaces.toList()
+                def remaining = docType.javaClass.interfaces.toList()
                 while (!remaining.isEmpty()) {
                     def nextInt = remaining.remove(0)
                     if (allTypes.keySet().contains(nextInt.fullyQualifiedName)) {
                         docType.inheritedMethods[allTypes[nextInt.fullyQualifiedName]] = allTypes[nextInt.fullyQualifiedName].docMethods
                     }
-                    remaining.addAll(nextInt.implementedInterfaces.toList())
+                    remaining.addAll(nextInt.interfaces.toList())
                 }
             }
         }
@@ -327,17 +327,25 @@ class DocGenerator {
     }
 
     private static class DocType {
-        private Type type
+        private JavaType type
         final String shortComment = "" // empty because cannot get a comment of JDK
         SortedSet<DocMethod> docMethods = new TreeSet<DocMethod>(SORT_KEY_COMPARATOR)
         Map<String, List<DocMethod>> inheritedMethods = new LinkedHashMap<String, List<DocMethod>>()
 
         JavaClass getJavaClass() {
-            type.javaClass
+            type
+        }
+
+        boolean isPrimitive(JavaType type) {
+            def componentType = type
+            for (; componentType.array; componentType = componentType.componentType) {
+                // do nothing
+            }
+            return componentType.primitive
         }
 
         String getPackageName() {
-            if (type.primitive) {
+            if (isPrimitive(type)) {
                 return DocPackage.PRIMITIVE_TYPE_PSEUDO_PACKAGE
             }
             def fqcn = fullyQualifiedClassName
@@ -352,14 +360,14 @@ class DocGenerator {
         }
 
         String getFullyQualifiedClassName() {
-            if (type.primitive) {
+            if (isPrimitive(type)) {
                 return DocPackage.PRIMITIVE_TYPE_PSEUDO_PACKAGE + '.' + type.toString()
             }
             DocUtil.resolveJdkClassName(type.toString())
         }
 
         boolean isInterface() {
-            type.javaClass.isInterface()
+            type.isInterface()
         }
 
         String getSortKey() {
@@ -435,7 +443,7 @@ class DocGenerator {
         }
 
         boolean isStatic() {
-            javaMethod.parentClass.name == 'DefaultGroovyStaticMethods'
+            javaMethod.declaringClass.name == 'DefaultGroovyStaticMethods'
         }
 
         String getSortKey() {
diff --git a/versions.properties b/versions.properties
index 4f75648..58c42f8 100644
--- a/versions.properties
+++ b/versions.properties
@@ -41,7 +41,7 @@ log4j=1.2.17
 log4j2=2.15.0
 openbeans=1.0.2
 picocli=4.6.2
-qdox=1.12.1
+qdox=2.0.1
 slf4j=1.7.32
 xmlunit=1.6
 xstream=1.4.18