Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.
- Is an agile dynamic language based on Java virtual machine.
- Built on the powerful Java language and added many features learned in languages like Python, Ruby and Smalltalk.
- Offers Java developers the most modern programming language features in the world, and low learning costs (almost zero).
- Support DSL (Domain Specific Languages Domain Definition Language) and other concise syntax, make your code easier to read and maintain.
- Goovy has native type handling, object orientation, and an Ant DSL that make it easy to create shell scripts.
- Developers efficiency is greatly improved by reducing framework code when developing Web, GUI, database or console applications.
- Support unit testing and simulation (object), can simplify the test.
- Seamless integration of all existing Java objects and libraries.
- Compile directly into Java bytecode so Groovy can be used anywhere Java is used.
Apache Groovy 3.0.4 has been released.
- [GROOVY-4554] – JavaStubGenerator doesn’t play nicely with package-info.groovy files
- [GROOVY-8774] – Stub generator doesn’t handle package-info
- [GROOVY-9398] – GroovyScriptEngine cannot recompile a class that uses generic parameters
- [GROOVY-9405] – Junit 5 IncompatibleClassChangeError
- [GROOVY-9432] – ClassNotFoundException when attempting to use Picocli via Grapes
- [GROOVY-9465] – GroovyDoc: class-header is not always displayed
- [GROOVY-9501] – MissingPropertyException for access to private static field from inner class when subclassing
- [GROOVY-9505] – java.lang.UnsupportedOperationException: This feature requires ASM8 on JDK 14 in Spock tests
- [GROOVY-9506] – Joint compilation is broken
- [GROOVY-9507] – JSP style loop in StreamingTemplateEngine template results in TemplateParseException
- [GROOVY-9508] – groovyConsole CLI plumbing for –enable-preview command-line switch is missing one part
- [GROOVY-9511] – Annotation spanning lines is not supported by Parrot
- [GROOVY-9515] – MethodHandle with spread args should not be cached
- [GROOVY-9517] – CompileStatic typeCasting runtime error from Class Array to Class List
- [GROOVY-9518] – Closure argument types not inferred when calling a constructor
- [GROOVY-9519] – CLIBuilder: Option with “type: Integer, defaultValue ‘0’” results in Boolean if default value is applied
- [GROOVY-9522] – Throwing NPE when I use ternary operator with something special
- [GROOVY-9526] – Failed to reload classes with generic parameters
- [GROOVY-9527] – Bump javaparser to 3.15.21
- [GROOVY-9528] – CLIBuilder: “error: Missing required options” when unknown options are provided
- [GROOVY-9529] – Static type checking сannot choose between Map#getAt(Object) and Object#getAt(String) methods
- [GROOVY-9543] – groovydoc multiple issues with generics
- [GROOVY-9546] – Annotations on class signature are rendered incorrectly
- [GROOVY-9547] – @see tags are not working properly
- [GROOVY-9556] – Stub generated without the effect of AST transformation makes joint compilation fail
- [GROOVY-9502] – Bump junit to 5.6.2
- [GROOVY-9503] – Bump javaparser to 3.15.18
- [GROOVY-9520] – Update Spotbugs/Spotbugs plugin to 4.0.2/4.0.5
- [GROOVY-9536] – Bump testng to 7.2.0
- [GROOVY-9537] – Bump xstream version to 1.4.12
- [GROOVY-9538] – Bump checkstyle version to 8.3.2
- [GROOVY-9539] – Bump jackson version to 2.11.0
- [GROOVY-9540] – Bump spotbugs plugin to 4.0.8
- [GROOVY-9544] – Bump gradle to 6.4
- [GROOVY-9551] – Bump JavaParser to 3.15.22
- [GROOVY-9552] – Bump Ant versions to address: [CVE-2020-1945] Apache Ant insecure temporary file vulnerability
- [GROOVY-9553] – Bump picocli to 4.3.2
- [GROOVY-9557] – Bump gradle to 6.4.1
- [GROOVY-9559] – Bump log4j2 version to 2.13.3
- [GROOVY-9560] – Update Spotbugs/Spotbugs plugin to 4.0.3/4.2.0
- [GROOVY-9531] – Improve CliBuilder docs for Groovy 3.0
- [GROOVY-9504] – Add support for Path to slurper classes
- [GROOVY-9512] – Control the fallback threshold of indy with different switch
- [GROOVY-9545] – DGM: add toArray(Class) extension method for java.util.stream.Stream
- [GROOVY-9549] – groovydoc: implemented interfaces not shown in class description