Skip to content

Commit fac6d04

Browse files
committed
Update README
- Update README in subprojects
1 parent 14767e0 commit fac6d04

File tree

16 files changed

+136
-36
lines changed

16 files changed

+136
-36
lines changed

README.md

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@
1414
[![Spring Boot Version](https://img.shields.io/badge/Spring_Boot-3.4.13-blue?logo=springboot&style=flat&color=6db33f)](https://github.com/spring-projects/spring-boot/releases/tag/v3.4.13)
1515

1616

17-
[Grace](https://github.com/graceframework/grace-framework) is a fork of [Grails 5.1.x](https://github.com/apache/grails-core/tree/5.1.x) that started development in early 2022, it's a powerful and open-source One-Person web framework used to build enterprise-grade [Spring Boot](https://spring.io/projects/spring-boot/) applications with the powerful [Groovy](https://groovy-lang.org/) programming language. The core framework is very extensible and there are numerous [Plugins](https://github.com/grace-plugins/) available that provide easy integration of add-on features.
17+
[Grace framework](https://github.com/graceframework/grace-framework) is a fork of [Grails 5.1.x](https://github.com/apache/grails-core/tree/5.1.x) that started development in early 2022, it's a powerful and open-source One-Person web framework used to build enterprise-grade [Spring Boot](https://spring.io/projects/spring-boot/) applications with the powerful [Groovy](https://groovy-lang.org/) programming language. The core framework is very extensible and there are numerous [Plugins](https://github.com/grace-plugins/) available that provide easy integration of add-on features.
1818

1919
## Why Grace?
2020

2121
Grace inherits the excellent concepts and designs of Grails, and based on this, has undergone significant restructuring to ensure that each module is independent and decoupled, such as [Grace API](/grace-api), [Grace Boot](/grace-boot), [Grace CLI](/grace-cli), [Grace Plugin API](/grace-plugin-api), [Grace Spring Boot](/grace-spring-boot), [Grace Util](/grace-util). Meanwhile, in order to better focus on maintenance and upgrades, Grace also merged the previously spun-off modules, [Converters plugin](/grace-plugin-converters), [GSP](/grace-plugin-gsp), [Grace Test Support](/grace-test-support). [Grace Boot](/grace-boot/README.md), as an [Auto-configuration](/grace-boot/src/main/groovy/grails/boot/config/GrailsAutoConfiguration.java), it will load all other modules and plugins. Grace follows good modular design, and these modules can be used independently in Spring Boot applications.
2222

2323
Spring is the foundation for Grace, which is built on top of Spring Boot. To better support Spring Boot and integrate with other Spring ecosystems, Grace has rewritten `Plugin.doWithSpring()` using Spring Boot's [Auto-configuration](https://docs.spring.io/spring-boot/reference/using/auto-configuration.html), which also reduces redundant configurations and provides significant performance improvements. Grace has also provided [Configuration Metadata](https://docs.spring.io/spring-boot/specification/configuration-metadata/index.html) files include in Grace plugins' jars, the files are designed to let IDE developers offer contextual help and “code completion” as users are working with application.properties or application.yaml files. So, a Grace plugin is an extended Spring Boot Starter.
2424

25-
It is worth mentioning that Grace supports all current versions of Spring Boot, including [2.7](https://github.com/graceframework/grace-framework/releases/tag/v2022.2.9), [3.0](https://github.com/graceframework/grace-framework/releases/tag/v2023.0.3), [3.1](https://github.com/graceframework/grace-framework/releases/tag/v2023.1.0), [3.2](https://github.com/graceframework/grace-framework/releases/tag/v2023.2.0), [3.3](https://github.com/graceframework/grace-framework/releases/tag/v2023.3.0), [3.4](https://github.com/graceframework/grace-framework/releases/tag/v2024.0.0-RC1), and the latest [3.5](https://github.com/graceframework/grace-framework/releases/tag/v2024.1.0-M1). This makes the upgrade path easier and more manageable.
25+
It is worth mentioning that Grace supports all current versions of Spring Boot, including [2.7](https://github.com/graceframework/grace-framework/releases/tag/v2022.2.9), [3.0](https://github.com/graceframework/grace-framework/releases/tag/v2023.0.3), [3.1](https://github.com/graceframework/grace-framework/releases/tag/v2023.1.0), [3.2](https://github.com/graceframework/grace-framework/releases/tag/v2023.2.0), [3.3](https://github.com/graceframework/grace-framework/releases/tag/v2023.3.0), [3.4](https://github.com/graceframework/grace-framework/releases/tag/v2024.0.0), and [3.5](https://github.com/graceframework/grace-framework/releases/tag/v2024.1.0-M2). This makes the upgrade path easier and more manageable.
2626

27-
Grace has been actively developing, bringing numerous improvements and new features, including [Plugins](/grace-plugin-api/README.md), [GSP](/grace-plugin-gsp/README.md), [Console](/grace-console/README.md), [Shell](/grace-shell/README.md), and [Profiles](https://github.com/grace-profiles). Of course, it has also fixed a large number of legacy defects left in Grails 5, this makes developers happy.
27+
Grace has been actively developing, bringing numerous improvements and new features, including [Plugins](/grace-plugin-api/README.md), [Dynamic Modules](/grace-plugin-dynamic-modules/README.md), [GSP](/grace-plugin-gsp/README.md), [Console](/grace-console/README.md), [Shell](/grace-shell/README.md), [Views](/grace-views-core/README.md), and [Profiles](https://github.com/grace-profiles). Of course, it has also fixed a large number of legacy defects left in Grails 5, this makes developers happy.
2828

2929
You can learn more on the page [What's New in Grace Framework](https://github.com/graceframework/grace-framework/wiki/What's-New-in-Grace-Framework).
3030

@@ -40,6 +40,9 @@ Grace has better support Groovy than Spring Boot. Grace fully embraces Groovy to
4040

4141
Grace provides a powerful [CLI](/grace-shell/README.md) that allows you to quickly create new projects of many different types using [Application Profiles](https://github.com/grace-profiles) and [Templates](https://github.com/grace-templates) and get started easily. These are all extensible and easy to customize, you can create your own Profiles, Templates, and Commands to meet any of your needs. The learning curve for Grace is moderate and more straightforward than Spring Boot due to its emphasis on convention and simplicity.
4242

43+
[Spring Boot 4 has refactored its codebase into a more modular structure](https://spring.io/blog/2025/10/28/modularizing-spring-boot), this is the right direction for the future.
44+
Grace framework 2024 & 2025 will also start doing this. Grace's plugins will be independent, more focused, and at the same time, they will integrate better with Spring Boot's modules.
45+
4346
You can learn more on the page [Grace vs Spring Boot](https://github.com/graceframework/grace-framework/wiki/Grace-vs-Spring-Boot).
4447

4548
## Getting Started
@@ -51,6 +54,7 @@ To install Grace, visit https://github.com/graceframework/grace-framework/releas
5154
```bash
5255
$ grace create-app com.example.blog
5356
$ cd blog
57+
$ grace generate scaffold Post title:string
5458
$ grace run-app
5559
```
5660

@@ -82,16 +86,17 @@ Grace is first and foremost a web application framework, but it is also a platfo
8286

8387
[Grace Framework](https://github.com/graceframework/) repository contains core plugins and most commonly used plugins, which are provided by default when creating a project.
8488

85-
* [Grace Async and Events](https://github.com/graceframework/grace-async) provides asynchronous, parallel programming, Events APIs, which integrate Grace with various asynchronous libraries and frameworks such as GPars and RxJava.
86-
* [Grace Cache](https://github.com/graceframework/grace-cache) provides powerful and easy to use caching functionality to Grace applications and plugins.
89+
* [Grace Async](/grace-plugin-async/README.md) provides asynchronous, parallel programming, which integrate Grace with various asynchronous libraries and frameworks such as GPars and RxJava.
90+
* [Grace Cache](/grace-plugin-cache/README.md) provides powerful and easy to use caching functionality to Grace applications and plugins.
8791
* [Grace Data](https://github.com/graceframework/grace-data) formerly known as `GORM` is the data access toolkit to provides a rich set of APIs for accessing relational and non-relational data including implementations for Hibernate (SQL), MongoDB, etc.
8892
* [Grace Data Hibernate](https://github.com/graceframework/grace-data-hibernate) provides a GORM implementation for Hibernate ORM.
8993
* [Grace Data MongoDB](https://github.com/graceframework/grace-data-mongodb) provides a GORM implementation for the MongodB Document Database.
90-
* [Grace Database Migration](https://github.com/graceframework/grace-database-migration) helps you manage database changes uses the Liquibase library.
91-
* [Grace Fields](https://github.com/graceframework/grace-fields) is a plugin allows you to customize the rendering of input fields for properties of domain objects, command beans and POGOs based on their type, name, etc.
92-
* [Grace Geb](https://github.com/graceframework/grace-geb) provides the Geb dependencies and a `create-functional-test` command for generating Geb tests.
93-
* [Grace Scaffolding](https://github.com/graceframework/grace-scaffolding) is a plugin to generate scaffolded controllers and views for your Grace application.
94-
* [Grace Views](https://github.com/graceframework/grace-views) includes JSON views powered by Groovy's JsonBuilder, also provides the basis for implementation other view types.
94+
* [Grace Database Migration](/grace-plugin-database-migration/README.md) helps you manage database changes uses the Liquibase library.
95+
* [Grace Events](/grace-plugin-events/README.md) provides Events APIs, which integrate Grace with various asynchronous libraries and frameworks such as GPars and RxJava.
96+
* [Grace Fields](/grace-plugin-fields/README.md) is a plugin allows you to customize the rendering of input fields for properties of domain objects, command beans and POGOs based on their type, name, etc.
97+
* [Grace Geb](/grace-plugin-geb/README.md) provides the Geb dependencies and a `create-functional-test` command for generating Geb tests.
98+
* [Grace Scaffolding](/grace-plugin-scaffolding/README.md) is a plugin to generate scaffolded controllers and views for your Grace application.
99+
* [Grace Views](/grace-views-core/README.md) includes JSON views powered by Groovy's JsonBuilder, also provides the basis for implementation other view types.
95100

96101
[Grace Plugins](https://github.com/grace-plugins/) repository contains several plugins to develop applications more easier and productive.
97102

@@ -111,13 +116,13 @@ Grace profile is a simple directory that contains a `profile.yml` file and direc
111116

112117
Grace provides several profiles in the [Grace Profiles](https://github.com/grace-profiles) repository,
113118

114-
* `base` - a profile for other profiles to extend from
115-
* `plugin` - a profie to create a plugin
116-
* `profile` - a profie to create a custom profile
117-
* `rest-api` - a profie for REST API applications
119+
* `base` - A profile for other profiles to extend from
120+
* `plugin` - A profie to create a plugin
121+
* `profile` - A profie to create a custom profile
122+
* `rest-api` - A profie for REST API applications
118123
* `starter` - A profile for getting start to create anything you like
119-
* `web` - default profile to creae a web app
120-
* `web-plugin` - a profile for Web plugin that contains web resources `css` `js` `images`
124+
* `web` - The default profile to creae a web app
125+
* `web-plugin` - A profile for Web plugin that contains web resources `css` `js` `images`
121126

122127
## Guides
123128

grace-boot-hibernate/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## Grace Data Hibernate
2+
3+
[Grace Data Hibernate](https://github.com/graceframework/grace-data-hibernate) is the original implementation of GORM and has evolved dramatically over the years from a few Meta-programming functions into a complete data access framework with multiple implementations for different datastores relational and NoSQL, which provides a GORM implementation for [Hibernate ORM](https://hibernate.org/orm/).
4+
5+
Currently, this plugin has been migrate to Jakarta Namespace, and support [Hibernate 5.6](https://hibernate.org/orm/documentation/5.6/).

grace-boot-mongodb/README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
11
## grace-boot-mongodb
22

3-
Grace Boot MongoDB
3+
[Grace Data MongoDB](https://github.com/graceframework/grace-data-mongodb) provides a GORM implementation for the [MongodB](https://www.mongodb.com) Document Database.
4+
5+
MongoDB bridges the gap between key-value stores (which are fast and highly scalable) and traditional RDBMS systems (which provide rich queries and deep functionality).
6+
7+
MongoDB (from "humongous") is a scalable, high-performance, open source, document-oriented database.
8+
9+
This project aims to provide an object-mapping layer on top of Mongo to ease common activities such as:
10+
11+
* Marshalling from Mongo to Groovy/Java types and back again
12+
* Support for GORM dynamic finders, criteria and named queries
13+
* Session-managed transactions
14+
* Validating domain instances backed by the Mongo datastore

grace-cli/README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1-
## grace-cli
1+
## Grace CLI
2+
3+
This subproject provides two important APIs `Command` and `Generator`.
4+
5+
* `ApplicationCommand` allow you to create Gradle tasks in Grace project.
6+
* `Generator` is the new way to provide command `generate` for develpers.

grace-databinding/README.md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
## grace-databinding
1+
## Grace Databinding
22

3-
This subproject contains much of the core data binding code. The main class here is
4-
[SimpleDataBinder](./src/main/groovy/grails/databinding/SimpleDataBinder.groovy). Most of the other code
5-
here exists to support that. The real databinding used in a Grails app is
6-
[GrailsWebDataBinder](../grails-web-databinding/src/main/groovy/grails/web/databinding/WebDataBinding.groovy) which
7-
extends `SimpleDataBinder` and is defined in the `grails-web-databinding` subproject. `SimpleDataBinder` is where
8-
much of the core data binding logic is defined. The `GrailsWebDataBinder` subclass defines a lot of the logic that
9-
is specific to data binding in the context of a Grails app. For example, all of the GORM special handling that the
10-
data binder does is in `GrailsWebDataBinder`.
3+
This subproject contains much of the core data binding code.
4+
The main class here is [SimpleDataBinder](./src/main/groovy/grails/databinding/SimpleDataBinder.groovy).
5+
Most of the other code here exists to support that.
6+
7+
The real databinding used in a Grails app is [GrailsWebDataBinder](../grails-web-databinding/src/main/groovy/grails/web/databinding/WebDataBinding.groovy) which extends `SimpleDataBinder` and is defined in the `grails-web-databinding` subproject. `SimpleDataBinder` is where much of the core data binding logic is defined. The `GrailsWebDataBinder` subclass defines a lot of the logic that is specific to data binding in the context of a Grails app. For example, all of the GORM special handling that the data binder does is in `GrailsWebDataBinder`.

grace-gradle-plugin/README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,20 @@
1-
## Grace Gradle Plugins
1+
## Grace Gradle Plugin
22

3+
This A Gradle plugin for Grace which provides a bunch of useful plugins
4+
5+
The Grace Gradle Plugin provides Grace support in [Gradle](https://gradle.org).
6+
It allows you to package Grace plugins or profiles, run Grace applications, and use the dependency management provided by `spring-boot-dependencies`.
7+
Spring Boot's Gradle plugin requires Gradle 7.x (7.6.4 or later) or 8.x (8.4 or later) and can be used with Gradle's [configuration cache](https://docs.gradle.org/current/userguide/configuration_cache.html).
8+
9+
10+
| Plugin ID | Description |
11+
|------------------------------------|-------------|
12+
| `org.graceframework.grace-core` |The core Grace gradle plugin implementation |
13+
| `org.graceframework.grace-app` | Adds web specific extensions (same as `grace-web`) |
14+
| `org.graceframework.grace-doc` | Adds Grace doc publishing support |
15+
| `org.graceframework.grace-gsp` | Adds support for compiling Groovy Server Pages (GSP) |
16+
| `org.graceframework.grace-plugin` | A Gradle plugin for Grace plugins |
17+
| `org.graceframework.grace-profile` | A plugin that is capable of compiling a Grace profile into a JAR file for distribution |
18+
| `org.graceframework.grace-web` | Adds web specific extensions |
19+
| `org.graceframework.grace-json` | The Gradle plugin for Json Views |
20+
| `org.graceframework.grace-markup` | The Gradle plugin for Markup Views |

grace-plugin-async/README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,9 @@
1-
## grace-plugin-async
1+
## Grace Plugin Async
22

3+
[Grace Async](https://github.com/graceframework/grace-async) provides asynchronous, parallel programming, which integrate Grace with various asynchronous libraries and frameworks such as GPars and RxJava.
4+
5+
To use the Async framework you should add a dependency on the `async` plugin to your `build.gradle` file:
6+
7+
```
8+
implementation "org.graceframework:grace-plugin-async"
9+
```

grace-plugin-cache/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# grace-plugin-cache
1+
## Grace Plugin Cache
22

3-
Cache plugin provides powerful and easy to use caching functionality to Grace applications and plugins.
3+
Grace Cache provides powerful and easy to use caching functionality to Grace applications and plugins.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Grace Database Migration Plugin
1+
## Grace Database Migration
22

33
Grace Database Migration plugin helps you manage database changes while developing Grace applications.
44
The plugin uses the [Liquibase](https://liquibase.com) library.

grace-plugin-dynamic-modules/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,17 @@ Grace Dynamic Modules Plugin (GDMP) offer new ways of creating modular and maint
44

55
A Grace plugin can implement one or more plugin modules to develop and extend Grace applications.
66
We can use Dynamic Modules to maximize the use of Grace plugins and create an open, shared, and reusable plugins and modules.
7+
8+
Add `dynamic-modules` plugin to your `build.gradle`,
9+
10+
```gradle
11+
apply plugin: "org.graceframework.grace-gsp"
12+
13+
repositories {
14+
mavenCentral()
15+
}
16+
17+
dependencies {
18+
implementation "org.graceframework:grace-plugin-dynamic-modules"
19+
}
20+
```

0 commit comments

Comments
 (0)