Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.5.12, 3.0.17
-
None
Description
https://issues.apache.org/jira/browse/GROOVY-10886
https://issues.apache.org/jira/browse/GROOVY-11130
In our project we try to update gradle from 6.8.2 to 8.2.1.
And gradle 6.8.2 -> use groovy 2.5.12
But gradle 8.2.1 -> use groovy 3.0.17
How we parse java/groovy files now ->
59 line
private Map<String, GroovyClassDoc> parseGroovy(String src, String packagePath, String file)
But it doesn't work for gradle 8.2.1 (groovy 3.0.17).
After discussion this issue in these tasks:
https://issues.apache.org/jira/browse/GROOVY-10886
https://issues.apache.org/jira/browse/GROOVY-11130
I try to use GroovyDocParser from org.codehaus.groovy.tools.groovydoc.antlr4
private Map<String, GroovyClassDoc> parseGroovy(String src, String packagePath, String file) throws RecognitionException, TokenStreamException { GroovyDocParser groovyDocParser = new GroovyDocParser(links, properties) def GroovyClassDocMap = groovyDocParser.getClassDocsFromSingleSource(packagePath, file, src) return GroovyClassDocMap }
And It seems to work. But I found this problem:
When I parse groovy enums, GroovyClassDoc has empty 'enumConstants' and all enum values are in 'fields'.
But our old implementation has: