You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/05/28 10:53:41 UTC

[groovy] branch GROOVY_3_0_X updated (ddd8035 -> 1507f38)

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

paulk pushed a change to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git.


    from ddd8035  clean up some legacy comments
     new 8727f1b  Also output aborted tests in JUnit 5 GroovyJUnitRunnerHelper (closes #1258)
     new d174370  GROOVY-9571: groovydoc: add default ctor only for (abstract) classes (closes #1257)
     new 3eead07  GROOVY-9573: groovydoc: show arrays properly (closes #1259)
     new 1507f38  GROOVY-9576: groovydoc: hide enum $INIT static method (closes #1261)

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/groovy/antlr/GroovydocVisitor.java  | 14 ++++--
 .../groovy/tools/groovydoc/GroovyDocToolTest.java  | 55 ++++++++++++++++++++++
 .../groovydoc/testfiles/GroovyInterface1.groovy    |  2 +
 .../junit5/plugin/GroovyJUnitRunnerHelper.groovy   |  2 +-
 4 files changed, 67 insertions(+), 6 deletions(-)


[groovy] 04/04: GROOVY-9576: groovydoc: hide enum $INIT static method (closes #1261)

Posted by pa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1507f38a547b072f98d1260dcab480f7d8cb4fe2
Author: Mikko Värri <vm...@linuxbox.fi>
AuthorDate: Mon May 25 23:12:05 2020 +0300

    GROOVY-9576: groovydoc: hide enum $INIT static method (closes #1261)
    
    While the normal enum constructors can only be invoked from inside the
    enum class, this method can bypass that.  We probably shouldn't
    document it on every groovy enum.
---
 .../java/org/apache/groovy/antlr/GroovydocVisitor.java  |  2 ++
 .../groovy/tools/groovydoc/GroovyDocToolTest.java       | 17 +++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java b/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
index d804f8d..39ed1f2 100644
--- a/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
+++ b/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
@@ -199,6 +199,8 @@ public class GroovydocVisitor extends ClassCodeVisitorSupport {
 
     @Override
     public void visitMethod(MethodNode node) {
+        if (currentClassDoc.isEnum() && "$INIT".equals(node.getName()))
+            return;
         SimpleGroovyMethodDoc meth = new SimpleGroovyMethodDoc(node.getName(), currentClassDoc);
         meth.setReturnType(new SimpleGroovyType(makeType(node.getReturnType())));
         setConstructorOrMethodCommon(node, meth);
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
index 4785d1a..4984f92 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
@@ -685,6 +685,23 @@ public class GroovyDocToolTest extends GroovyTestCase {
         assertEquals("There has to be a reference to class Enum", "Enum", m.group(3));
     }
 
+    public void testEnumInitNotDocumented() throws Exception {
+        final String base = "org/codehaus/groovy/tools/groovydoc/testfiles";
+        final String klass = "EnumWithDeprecatedConstants";
+        htmlTool.add(Arrays.asList(
+            base + "/"+ klass +".groovy"
+        ));
+
+        final MockOutputTool output = new MockOutputTool();
+        htmlTool.renderToOutput(output, MOCK_DIR);
+
+        final String groovydoc = output.getText(MOCK_DIR + "/" + base + "/"+ klass +".html");
+
+        final Matcher ctor = Pattern.compile(Pattern.quote("$INIT")).matcher(groovydoc);
+
+        assertFalse("enum $INIT static method should not be documented", ctor.find());
+    }
+
     public void testClassAliasing() throws Exception {
 
         List<String> srcList = new ArrayList<String>();


[groovy] 01/04: Also output aborted tests in JUnit 5 GroovyJUnitRunnerHelper (closes #1258)

Posted by pa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8727f1b716386af63fe349594b735a8568bac75a
Author: Björn Kautler <Bj...@Kautler.net>
AuthorDate: Tue May 26 13:41:52 2020 +0200

    Also output aborted tests in JUnit 5 GroovyJUnitRunnerHelper (closes #1258)
---
 .../src/main/groovy/groovy/junit5/plugin/GroovyJUnitRunnerHelper.groovy | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/subprojects/groovy-test-junit5/src/main/groovy/groovy/junit5/plugin/GroovyJUnitRunnerHelper.groovy b/subprojects/groovy-test-junit5/src/main/groovy/groovy/junit5/plugin/GroovyJUnitRunnerHelper.groovy
index 1c1a1d3..0b74f55 100644
--- a/subprojects/groovy-test-junit5/src/main/groovy/groovy/junit5/plugin/GroovyJUnitRunnerHelper.groovy
+++ b/subprojects/groovy-test-junit5/src/main/groovy/groovy/junit5/plugin/GroovyJUnitRunnerHelper.groovy
@@ -38,7 +38,7 @@ class GroovyJUnitRunnerHelper {
         launcher.registerTestExecutionListeners(listener)
         launcher.registerTestExecutionListeners(LoggingListener.forJavaUtilLogging())
         launcher.execute(request)
-        println listener.summary.with{ "JUnit5 launcher: passed=$testsSucceededCount, failed=$testsFailedCount, skipped=$testsSkippedCount, time=${timeFinished-timeStarted}ms" }
+        println listener.summary.with{ "JUnit5 launcher: passed=$testsSucceededCount, aborted=$testsAbortedCount, failed=$testsFailedCount, skipped=$testsSkippedCount, time=${timeFinished-timeStarted}ms" }
         if (listener.summary.failures) {
             listener.summary.printFailuresTo(new PrintWriter(System.out, true))
             return listener.summary.failures[0].exception


[groovy] 03/04: GROOVY-9573: groovydoc: show arrays properly (closes #1259)

Posted by pa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 3eead07efc5f369fc5397905df9faa0c9fbe808f
Author: Mikko Värri <vm...@linuxbox.fi>
AuthorDate: Tue May 26 22:04:14 2020 +0300

    GROOVY-9573: groovydoc: show arrays properly (closes #1259)
---
 .../org/apache/groovy/antlr/GroovydocVisitor.java   |  8 +++++---
 .../groovy/tools/groovydoc/GroovyDocToolTest.java   | 21 +++++++++++++++++++++
 .../groovydoc/testfiles/GroovyInterface1.groovy     |  2 ++
 3 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java b/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
index 28893f5..d804f8d 100644
--- a/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
+++ b/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
@@ -293,9 +293,11 @@ public class GroovydocVisitor extends ClassCodeVisitorSupport {
     }
 
     private String makeType(ClassNode node) {
-        return node.getName().replace('.', '/').replace('$', '.')
-                + genericTypesAsString(node.getGenericsTypes())
-                ;
+        final ClassNode cn = node.isArray() ? node.getComponentType() : node;
+        return cn.getName().replace('.', '/').replace('$', '.')
+            + genericTypesAsString(cn.getGenericsTypes())
+            + (node.isArray() ? "[]" : "")
+            ;
     }
 
     @Override
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
index 5ee4709..4785d1a 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
@@ -1111,6 +1111,27 @@ public class GroovyDocToolTest extends GroovyTestCase {
         assertTrue("Property detail should be found", detail.find());
     }
 
+    public void testArray() throws Exception {
+        final String base = "org/codehaus/groovy/tools/groovydoc/testfiles";
+        htmlTool.add(Arrays.asList(
+            base + "/GroovyInterface1.groovy"
+        ));
+
+        final MockOutputTool output = new MockOutputTool();
+        htmlTool.renderToOutput(output, MOCK_DIR);
+
+        final String groovydoc = output.getText(MOCK_DIR + "/" + base + "/GroovyInterface1.html");
+
+        final String klass = Pattern.quote("<a href='https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html' title='Class'>Class</a>");
+        final String groovyInterface1 = Pattern.quote("<a href='../../../../../../org/codehaus/groovy/tools/groovydoc/testfiles/GroovyInterface1.html' title='GroovyInterface1'>GroovyInterface1</a>");
+
+        final Matcher klassArray = Pattern.compile(klass + "&lt;\\? extends " + groovyInterface1 + "&gt;\\[]").matcher(groovydoc);
+        final Matcher primArray = Pattern.compile(Pattern.quote("byte[]")).matcher(groovydoc);
+
+        assertTrue("Class<? extends GroovyInterface1>[] is found instead of Class[]", klassArray.find());
+        assertTrue("byte[] is found instead of [B", primArray.find());
+    }
+
     public void testScript() throws Exception {
         List<String> srcList = new ArrayList<String>();
         srcList.add("org/codehaus/groovy/tools/groovydoc/testfiles/Script.groovy");
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/GroovyInterface1.groovy b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/GroovyInterface1.groovy
index a2a9138..5cb8ede 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/GroovyInterface1.groovy
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/GroovyInterface1.groovy
@@ -28,4 +28,6 @@ interface GroovyInterface1 {
      * @see JavaClassWithDiamond#link()
      */
     void link()
+
+    Class<? extends GroovyInterface1>[] parse(byte[] data)
 }


[groovy] 02/04: GROOVY-9571: groovydoc: add default ctor only for (abstract) classes (closes #1257)

Posted by pa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d1743703c2edbf26b8e4c6da38841abfe9a036ff
Author: Mikko Värri <vm...@linuxbox.fi>
AuthorDate: Mon May 25 20:39:09 2020 +0300

    GROOVY-9571: groovydoc: add default ctor only for (abstract) classes (closes #1257)
---
 .../java/org/apache/groovy/antlr/GroovydocVisitor.java  |  4 ++--
 .../groovy/tools/groovydoc/GroovyDocToolTest.java       | 17 +++++++++++++++++
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java b/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
index 1d7c940..28893f5 100644
--- a/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
+++ b/subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java
@@ -139,8 +139,8 @@ public class GroovydocVisitor extends ClassCodeVisitorSupport {
         classDocs.put(currentClassDoc.getFullPathName(), currentClassDoc);
         super.visitClass(node);
         SimpleGroovyClassDoc parent = currentClassDoc;
-        if (currentClassDoc.constructors().length == 0) {
-            // add default no-arg constructor
+        if (currentClassDoc.isClass() && currentClassDoc.constructors().length == 0) {
+            // add default no-arg constructor, but not for interfaces, traits, enums, or annotation definitions
             SimpleGroovyConstructorDoc cons = new SimpleGroovyConstructorDoc(name, currentClassDoc);
             cons.setPublic(true);
             currentClassDoc.add(cons);
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
index a252360..5ee4709 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
@@ -157,6 +157,23 @@ public class GroovyDocToolTest extends GroovyTestCase {
         assertTrue(constructorDoc.indexOf("<parameter type=\"java.lang.ClassLoader\" name=\"parent\" />") > 0);
     }
 
+    public void testInterfaceConstructor() throws Exception {
+        final String base = "org/codehaus/groovy/tools/groovydoc/testfiles";
+        final String groovyInterface = "GroovyInterface1";
+        htmlTool.add(Arrays.asList(
+            base + "/"+ groovyInterface +".groovy"
+        ));
+
+        final MockOutputTool output = new MockOutputTool();
+        htmlTool.renderToOutput(output, MOCK_DIR);
+
+        final String groovydoc = output.getText(MOCK_DIR + "/" + base + "/"+ groovyInterface +".html");
+
+        final Matcher ctor = Pattern.compile(Pattern.quote("GroovyInterface1()")).matcher(groovydoc);
+
+        assertFalse("The Groovy interface should not have default constructor", ctor.find());
+    }
+
     public void testClassComment() throws Exception {
         List<String> srcList = new ArrayList<String>();
         String base = "org/codehaus/groovy/tools/groovydoc/testfiles/Builder";