diff --git a/README.md b/README.md
index 1b7fbabd..00d55078 100644
--- a/README.md
+++ b/README.md
@@ -364,7 +364,7 @@ This project was made possible thanks to the following:
### Tools and Libraries
-- **[JavaPoet](https://github.com/palantir/javapoet)** - An excellent library for generating Java source code. Originally created by Square, now maintained by Palantir. JavaPoet made it straightforward to generate clean, readable builder code.
+- **[Roaster](https://github.com/forge/roaster)** - A fluent Java source generation and formatting library from the JBoss Forge ecosystem. Roaster is used to generate and format the builder source code.
- **[Google Compile Testing](https://github.com/google/compile-testing)** - Essential for testing annotation processors with comprehensive compilation diagnostics.
### Learning Resources
@@ -372,7 +372,7 @@ This project was made possible thanks to the following:
The following resources were invaluable for understanding annotation processing:
- **[Baeldung: Java Annotation Processing and Creating a Builder](https://www.baeldung.com/java-annotation-processing-builder)** - Comprehensive guide to annotation processing fundamentals
-- **[SkyRo Tech: Code Generation with JavaPoet in Practice](https://medium.com/skyro-tech/code-generation-with-javapoet-on-practice-bfbe8ca56a61)** - Practical examples of using JavaPoet
+- **[Roaster GitHub Repository](https://github.com/forge/roaster)** - Reference for Java source generation and formatting with Roaster
- **[Annotation Processing Demo](https://github.com/ledungcobra/annotation-processing-demo)** by Le Dung - Hands-on examples of annotation processor implementation
Thank you to all contributors and the Java community for making this project possible!
diff --git a/example/target/generated-sources/annotations/org/javahelpers/simple/builders/example/BookDtoBuilder.java b/example/target/generated-sources/annotations/org/javahelpers/simple/builders/example/BookDtoBuilder.java
index 3b58cd81..94e880ca 100644
--- a/example/target/generated-sources/annotations/org/javahelpers/simple/builders/example/BookDtoBuilder.java
+++ b/example/target/generated-sources/annotations/org/javahelpers/simple/builders/example/BookDtoBuilder.java
@@ -3,7 +3,6 @@
import static org.javahelpers.simple.builders.core.util.TrackedValue.changedValue;
import static org.javahelpers.simple.builders.core.util.TrackedValue.initialValue;
import static org.javahelpers.simple.builders.core.util.TrackedValue.unsetValue;
-
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -11,6 +10,8 @@
import java.util.Map;
import java.util.Optional;
import java.util.Set;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.javahelpers.simple.builders.core.util.BuilderToStringStyle;
import org.javahelpers.simple.builders.core.util.TrackedValue;
@@ -19,101 +20,83 @@
* Builder for {@code org.javahelpers.simple.builders.example.BookDto}.
*
* This builder provides a fluent API for creating instances of org.javahelpers.simple.builders.example.BookDto with
- * method chaining and validation. Use the static {@code create()} method
- * to obtain a new builder instance, configure the desired properties using
- * the setter methods, and then call {@code build()} to create the final DTO.
+ * method chaining and validation. Use the static {@code create()} method to obtain a new builder instance, configure
+ * the desired properties using the setter methods, and then call {@code build()} to create the final DTO.
*/
public class BookDtoBuilder {
+
/**
* Tracked value for author: the book author to set.
*/
private TrackedValue author = unsetValue();
-
/**
* Tracked value for available: true if available, false otherwise.
*/
private TrackedValue available = unsetValue();
-
/**
* Tracked value for category: the category code to set.
*/
private TrackedValue category = unsetValue();
-
/**
* Tracked value for discount: the discount percentage to set.
*/
private TrackedValue discount = unsetValue();
-
/**
* Tracked value for edition: the edition number to set.
*/
private TrackedValue edition = unsetValue();
-
/**
* Tracked value for exactPrice: the exact book price to set.
*/
private TrackedValue exactPrice = unsetValue();
-
/**
* Tracked value for genres: the set of genres to set.
*/
private TrackedValue> genres = unsetValue();
-
/**
* Tracked value for isbn: the ISBN to set.
*/
private TrackedValue isbn = unsetValue();
-
/**
* Tracked value for lastUpdated: the last update timestamp to set.
*/
private TrackedValue lastUpdated = unsetValue();
-
/**
* Tracked value for metadata: the metadata map to set.
*/
private TrackedValue