Apache Grails Core Documentation

repository·8.0.x·Indexed 25 days ago

https://github.com/apache/grails-core

Documentation for the Apache Grails web application framework built on Groovy. Includes details on core modules such as grails-codecs-core, grails-console, and GORM implementations for Hibernate 5, Hibernate 7, and MongoDB. Covers the Database Migration plugin using Liquibase, GORM for GraphQL schema generation, and integration guides for Spring Boot, Java, and Kotlin projects.

Tokens
240.2K
Snippets
803
Records
1.3K
Agent score
81%

What's inside Apache Grails Core

  1. Overview of Grails Async Framework

    8.0.x
    The Grails Async Framework provides APIs and libraries designed to integrate Grails applications with asynchronous libraries and frameworks. It specifically enables seamless integration with tools such as GPars and RxJava to handle asynchronous programming patterns within the Grails ecosystem.
  2. Overview of Grails Scaffolding Plugin

    8.0.x

    The Grails Scaffolding Plugin is designed to simplify the generation of CRUD (Create, Read, Update, Delete) interfaces for domain classes within Grails applications. It supports two primary modes:

    • Dynamic Scaffolding: Automatically generates controllers and views at runtime based on your domain model.
    • Static Scaffolding: Generates controller and view source code files that you can then customize manually.

    The plugin integrates directly with Grails' validation and constraints, ensuring that all generated forms and interfaces automatically respect the rules defined in your domain model.

  3. Overview of GORM for Hibernate 7

    8.0.x

    GORM for Hibernate 7 (grails-data-hibernate7) is the persistence layer for GORM (the GRAILS Object Relational Mapping framework). It maps Groovy domain classes to relational databases using Hibernate ORM 7 and Jakarta EE 10.

    Key features include:

    • Convention-based ORM mapping.
    • Full Hibernate 7 support using jakarta.* packages.
    • Spring Boot 3.5 integration.
    • Querying capabilities: Dynamic finders, named queries, where query DSL, HQL, and native SQL.
    • Advanced features: Optimistic locking, second-level caching, batch fetching, and multi-tenancy.
    • Association mapping: one-to-one, one-to-many, many-to-many, and basic collections.
    • Inheritance strategies: table-per-hierarchy, table-per-subclass, and table-per-concrete-class.
    • Mapping control: Groovy static mapping {} DSL for customizing table/column names, types, and strategies.
  4. Overview of Grails Database Migration Plugin

    8.0.x
    The Grails Database Migration plugin provides a structured way to manage database schema changes during Grails application development. It is built upon the Liquibase library and allows developers to define database migrations in text form using either a Groovy DSL or native Liquibase XML. These changelog files can be maintained in source control and organized hierarchically (e.g., a root changelog.groovy or changelog.xml that includes smaller feature-specific changelogs).
  5. Overview of Spring Security UI Plugin features

    8.0.x

    The Spring Security UI plugin provides CRUD screens and user management workflows. It includes several conditional features based on your configuration and other installed plugins:

    • ACL Controllers and Views: Enabled automatically if the ACL Plugin is installed.
    • Requestmaps support: Available if grails.plugin.springsecurity.securityConfigType is set to "Requestmap" or SecurityConfigType.Requestmap in application.groovy.
    • Persistent cookies support: Enabled if configured using the s2-create-persistent-token script.

    Security Note: CRUD screens are protected against Cross-Site Request Forgery (CSRF) attacks using the useToken attribute in forms.

  6. Introduction to the Spring Security Plugin

    8.0.x
    The Spring Security plugin integrates Spring Security into Grails applications. It provides sensible defaults while allowing extensive customization through configuration and the replacement of core components via interfaces. This plugin is designed to be highly configurable, allowing developers to tailor security settings to their specific application needs.