Background and Overview
- What is a JVM language
- Why is Groovy so much better than Java
- Installation of Groovy
Basic Syntax
- Skip semicolons and stuff
- Duck typing
- Groovy strings
- Groovy beans
Groovy Data-Types
- Lists
- Maps
- Ranges
- Regexes
Groovy Operators
- Null-catch operator
- Elvis operator
- Spread operator
- Spaceship operator
- as operator
- Operator overloading
- The versatile switch statement
Closures
- What is a closure
- Syntax
- How to deal with free variables
- Higher order functions
- Currying
Meta-Programming
- Inspection
- Groovy meta-class
- How to add new functions to old classes
- How to implement dynamic methods
- Use of expandos
- Use of GPath
Java API made Groovier
- Overview
- Iteration methods
- Text manipulation
- Dates and times
- Easy file handling
- Threads and processes
Groovy Annotations
- Overview of AST processing
- ToString
- EqualsAndHashCode
- TupleConstructor
- Canonical
- Immutable
- Singleton
- Sortable
Grape
- How to download and cache 3:rd party libraries
- Grape annotations
- Configuration
- Using the system class-loader
- The grape command-line tool
Groovy Shell Scripts
- What is groovy script
- Making it into a shell script
- Getting command-line arguments
Embedded Groovy
- Invoking Groovy from a Java program
- Java 8 syntax not supported
- Mixing Java and Groovy in the same call hierarchy
- Evaluating dynamic Groovy expressions
- Using the GroovyShell class
Groovy Builders
- What is a builder and why should I bother
- ObjectGraph Builder
- FileTree Builder
- Swing Builder
- Ant Builder
- How to implement your own builder
Processing XML
- Generating XML
- Reading/parsing XML
Processing JSON
- Generating JSON
- Reading/parsing JSON
Working with Databases
- Fetching the JDBC driver using Grape
- Creating a Sql object
- CRUD DB operations
- Using an in-memory database
Processing MS Excel
- Apache POI
- Generating YaML from Excel
Short about GPars
- What is GPars
- Concurrency for a modern world
Short about Gradle
- What is Gradle
- Smart build-tool for JVM languages and C/C++
Short about Spock and Geb
- What is Spock
- Unit testing done right
Short about Grails
- What is Grails
- Build modern web-apps in a jiffy
Groovy Frameworks
- Griffon
- Ratpack
- Jenkins
- SdkMan
- GrooScript