My quick list for Groovy 4: * invoke dynamic by default * incorporate subprojects/parser-antlr4 into root project and drop antlr2 parser * pattern matching / switch expressions (if not already part of Groovy 3) * improved instanceof flow typing: https://issues.apache.org/jira/browse/GROOVY-8687, https://issues.apache.org/jira/browse/GROOVY-8412, https://issues.apache.org/jira/browse/GROOVY-8411 * some annotations copied from property to getters/setters: https://issues.apache.org/jira/browse/GROOVY-8897 * unqualified enum constants in switch: https://issues.apache.org/jira/browse/GROOVY-8444 * libraries are modules * modulepath support
> What do people think about changing our maven coordinates with Groovy 4 from > org.codehaus.groovy to org.apache.groovy? Sounds good in theory. Would you also repackage all "org.codehaus.*" sources? Would you publish redirects in maven central so users could still get conflict management for other deps that pull in groovy? <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy</artifactId> <version>4.0.0</version> <distributionManagement> <relocation> <groupId>org.apache.groovy</groupId> <artifactId>groovy</artifactId> <version>4.0.0</version> </relocation> </distributionManagement> </project> Eric M.