Get in Touch
 Duration 21 hours

Course Outline

Introduction to Groovy

  • Overview of Apache Groovy
  • Historical context and evolution of the language
  • Integration with the Java Virtual Machine
  • Role as both a scripting and general-purpose programming language
  • Typical use cases for Groovy
  • Application within Java-based projects
  • Benefits of combining Groovy with Java
  • Preview of the sample application

Overview of Groovy Features

  • Dynamic typing and optional static typing support
  • Scripting capabilities
  • Concise syntax and language enhancements
  • Closures and functional programming
  • Groovy collections and extended APIs
  • Operator overloading features
  • String interpolation techniques
  • Safe navigation and Elvis operator usage
  • Developing Domain-Specific Languages
  • Meta-programming capabilities
  • Introduction to the Groovy Development Kit (GDK)

Setting up the Development Environment

  • Installation and configuration of Groovy
  • Managing different Groovy distributions
  • Utilizing Groovy via the command line
  • Executing Groovy scripts
  • IDE setup and configuration
  • Initializing a new Groovy project
  • Dependency management strategies
  • Integrating Groovy with existing Java projects
  • Environment configuration for containerized applications

Writing Your First Groovy Application

  • Creating a fundamental Groovy script
  • Analyzing Groovy script structure
  • Executing Groovy applications
  • Utilizing the println statement
  • Variable handling and management
  • Defining and implementing methods
  • Writing comments and documentation
  • Developing a basic sample application
  • Compiling Groovy code

Getting Familiar with Groovy's Syntax

  • Statements and expressions in Groovy
  • Use of semicolons and optional syntax elements
  • Variables and constant definitions
  • Dynamic vs. explicit typing
  • String literals and interpolation
  • Single-line and multi-line string handling
  • Operators and expression evaluation
  • Groovy-specific operators and shortcuts
  • Null handling mechanisms
  • Safe navigation operators
  • The Elvis operator
  • Multiple assignment techniques

Using Groovy's Data Types and Collections

  • Primitive and object-based types
  • Numeric operations and number handling
  • String and character manipulation
  • Boolean logic
  • Date and time value handling
  • List structures
  • Map structures
  • Set structures
  • Range definitions
  • Iterating through collections
  • Collection transformation techniques
  • Filtering and searching within collections
  • Data sorting and grouping
  • Groovy-specific collection methods

Using Groovy Closures

  • Conceptual understanding of closures
  • Closure syntax and structure
  • Defining closure parameters
  • Implicit closure parameters
  • Methods for invoking closures
  • Storing closures in variables
  • Passing closures as method arguments
  • Returning closures from methods
  • Interfacing closures with collections
  • Applying closures for filtering and transformation
  • Scope rules and variable capture
  • Leveraging closures for functional programming
  • Practical closure patterns

Controlling Program Flow with Groovy Control Structures

  • Conditional logic implementation
  • if and else statements
  • Nested conditional structures
  • switch statement usage
  • Loops and iteration mechanisms
  • for, while, and do-while loops
  • Incorporating ranges into loops
  • Using closures for iteration
  • break and continue control
  • Exception handling strategies
  • try, catch, and finally blocks
  • Throwing and handling custom exceptions
  • Groovy-specific control flow features

Implementing Object Oriented Programming (OOP) in Your Application

  • Class definition in Groovy
  • Properties and field management
  • Constructor implementation
  • Method definition and usage
  • Encapsulation principles
  • Inheritance mechanisms
  • Interface implementation
  • Abstract class usage
  • Polymorphism concepts
  • Method overriding
  • Method overloading
  • Groovy getter and setter conventions
  • Traits functionality
  • Enum usage
  • Building domain models for the sample application

Runtime MetaProgramming and Compile Time MetaProgramming

  • Introduction to Groovy meta-programming concepts
  • Dynamic method invocation
  • Expando object usage
  • Runtime manipulation of methods and properties
  • Categories and extension mechanisms
  • MetaClass interaction
  • Dynamically adding methods
  • Intercepting method calls
  • Compile-time transformation techniques
  • Common AST transformations
  • Best practices for responsible meta-programming
  • Practical meta-programming examples

Working with Builders

  • Introduction to the builder pattern
  • Purpose and utility of Groovy builders
  • Constructing hierarchical structures
  • XML builder implementation
  • JSON builder implementation
  • HTML and markup generation
  • Configuring builder output formats
  • Utilizing closures within builders
  • Development of custom builders
  • Applying builders in Domain-Specific Languages

Accessing a Database with Groovy

  • Core database connectivity concepts
  • Establishing connections between Groovy apps and databases
  • JDBC and Groovy database API integration
  • Database connection configuration
  • SQL query execution
  • Retrieving and reading query results
  • Data insertion, updating, and deletion
  • Use of parameterized queries
  • Transaction management
  • Handling database exceptions
  • Utilizing the Groovy SQL module
  • Implementing database functionality in the sample app

Calling Java from Groovy

  • Groovy-Java interoperability overview
  • Accessing Java classes within Groovy
  • Invoking Java methods
  • Integration with Java libraries
  • Utilizing Java collections
  • Handling Java exceptions in Groovy
  • Comparing Groovy and Java syntax
  • Calling Groovy code from Java
  • Mixing Groovy and Java source files
  • Integrating Groovy into legacy Java applications
  • Interoperability best practices

Connecting to REST Services and Applications

  • Introduction to REST API interactions
  • HTTP concepts relevant to Groovy
  • Constructing and sending HTTP requests
  • Handling GET, POST, PUT, and DELETE operations
  • Managing request parameters and headers
  • Parsing JSON responses
  • Creating JSON request payloads
  • Authentication handling
  • Managing HTTP error responses
  • Consuming external REST services
  • Integrating REST capabilities into the sample application

Working with the GDK

  • Introduction to the Groovy Development Kit
  • Enhanced Java API features
  • String manipulation utilities
  • Enhanced collection operations
  • File and directory management
  • File reading and writing operations
  • Stream processing
  • XML processing capabilities
  • JSON processing capabilities
  • Date and time manipulation
  • Utility methods and convenience APIs
  • Selecting the appropriate GDK tools for tasks

Unit Testing a Groovy Application

  • Overview of testing strategies for Groovy
  • Test-driven development (TDD) principles
  • Writing effective unit tests
  • Integration of testing frameworks
  • Structuring test classes and methods
  • Using assertions
  • Testing class and method logic
  • Testing closure behavior
  • Exception testing scenarios
  • Mocking external dependencies
  • Data-driven testing approaches
  • Testing database interactions
  • Testing REST API integrations
  • Executing tests and analyzing results

Troubleshooting

  • Diagnosing Groovy syntax errors
  • Debugging runtime issues
  • Resolving compilation problems
  • Troubleshooting Java interoperability challenges
  • Debugging closure and collection operations
  • Investigating database connectivity issues
  • Troubleshooting REST API integration problems
  • Debugging meta-programming side effects
  • Leveraging logging and diagnostic tools
  • Practical troubleshooting drills

Summary and Conclusion

  • Recap of Groovy language fundamentals
  • Review of syntax, data types, and collections
  • Summary of closures and functional programming
  • Review of object-oriented programming concepts
  • Summary of meta-programming and builder patterns
  • Review of database and REST integrations
  • Review of Groovy and Java interoperability
  • Summary of GDK capabilities
  • Review of testing best practices
  • Best practices for Groovy application development
  • Final practical exercise
  • Open questions and discussion

Requirements

  • Basic programming experience in any language

Number of participants


Price per participant (excl. VAT)

Testimonials (1)

Upcoming Courses

Related Categories