From 5aca9a8bbe8d8e1fbe6aa0ee1f8ab6e346fd50d7 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 21:51:18 +0100 Subject: [PATCH 1/5] Adapting tests and improving logging for conflict cases --- .../processor/processing/BuilderDefinitionCreator.java | 6 ++---- .../simple/builders/processor/BuilderProcessorTest.java | 5 ++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java index 220aeb03..ee55fd62 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java @@ -191,13 +191,11 @@ private static List extractSetterFields( result.getBuilderTypeName(), result.getGenerics()); for (ExecutableElement mth : methods) { - context.debugStartOperation( - "Analyzing method: %s with %d parameter(s)", - mth.getSimpleName(), mth.getParameters().size()); + String methodName = mth.getSimpleName().toString(); + context.debugStartOperation("Analyzing method: %s", methodName); if (isMethodRelevantForBuilder(mth, context)) { // Extract the original field name from the setter method (before any renaming) - String methodName = mth.getSimpleName().toString(); String originalFieldName = StringUtils.uncapitalize(Strings.CI.removeStart(methodName, "set")); diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java index 62fc1699..141a9036 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java @@ -35,7 +35,6 @@ import javax.tools.JavaFileObject; import org.javahelpers.simple.builders.processor.testing.ProcessorAsserts; import org.javahelpers.simple.builders.processor.testing.ProcessorTestUtils; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** Tests for the {@link BuilderProcessor} class. */ @@ -2682,7 +2681,7 @@ public class InnerClass { } @Test - @Disabled("Missing feature: #131") + // @Disabled("Missing feature: #131") void shouldHandleOverloadedSettersForSameFieldWithoutConflicts() { // Given String packageName = "test"; @@ -2697,7 +2696,7 @@ void shouldHandleOverloadedSettersForSameFieldWithoutConflicts() { private java.util.List names; public java.util.List getNames() { return names; } - public void setNames(String[] names) { this.names = names; } + public void setNames(java.util.List names) { this.names = names; } public void setNames(String... names) { this.names = java.util.List.of(names); } """); From 8b727fad81134c9537e28b393968f8b7ad6f2509 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 22:00:42 +0100 Subject: [PATCH 2/5] Improving logging and adapting tests --- .../processor/processing/BuilderDefinitionCreator.java | 4 ++-- .../simple/builders/processor/BuilderProcessorTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java index ee55fd62..f5f9620a 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java @@ -191,11 +191,11 @@ private static List extractSetterFields( result.getBuilderTypeName(), result.getGenerics()); for (ExecutableElement mth : methods) { - String methodName = mth.getSimpleName().toString(); - context.debugStartOperation("Analyzing method: %s", methodName); + context.debugStartOperation("Analyzing method: %s", mth.toString()); if (isMethodRelevantForBuilder(mth, context)) { // Extract the original field name from the setter method (before any renaming) + String methodName = mth.getSimpleName().toString(); String originalFieldName = StringUtils.uncapitalize(Strings.CI.removeStart(methodName, "set")); diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java index 141a9036..9b42394c 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java @@ -103,7 +103,7 @@ void shouldLogDebugMessagesWhenVerboseModeEnabled() { "[DEBUG] ├─ Extracting builder definition from: test.VerboseTest", "[DEBUG] │ ├─ Builder will be generated as: test.VerboseTestBuilder", "[DEBUG] │ ├─ Analysing setters for finding fields", - "[DEBUG] │ │ ├─ Analyzing method: setName with 1 parameter(s)", + "[DEBUG] │ │ ├─ Analyzing method: setName(java.lang.String)", "[DEBUG] │ │ │ ├─ Processing method generators", "[DEBUG] │ │ │ │ ├─ Applying: BasicSetterGenerator (priority: 100)", "[DEBUG] │ │ │ │ ├─ Applying: StringFormatHelperGenerator (priority: 80)", From 315fadc7edb54391f8f258a50cf673755f699239 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 22:04:30 +0100 Subject: [PATCH 3/5] Adapting documentation for changed debug-logging --- docs/CONTRIBUTING.md | 2 +- docs/DEBUG_LOGGING.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 77ff56e0..8c675af9 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -235,7 +235,7 @@ For complete documentation, see [DEBUG_LOGGING.md](DEBUG_LOGGING.md). [DEBUG] ├─ Extracting builder definition from: test.Project [DEBUG] │ ├─ Builder will be generated as: test.ProjectBuilder [DEBUG] │ ├─ Analysing setters for finding fields -[DEBUG] │ │ ├─ Analyzing method: setName with 1 parameter(s) +[DEBUG] │ │ ├─ Analyzing method: setName(java.lang.String) [DEBUG] │ │ │ └─ Adding field: name (type: java.lang.String) [DEBUG] │ └─ Processed 1 possible setters: added 1 fields, skipped 0 [DEBUG] ├─ Code generation for builder: ProjectBuilder diff --git a/docs/DEBUG_LOGGING.md b/docs/DEBUG_LOGGING.md index a236e123..c4023aeb 100644 --- a/docs/DEBUG_LOGGING.md +++ b/docs/DEBUG_LOGGING.md @@ -94,9 +94,9 @@ When debug logging is enabled, you'll see detailed output with visual separators [INFO] [DEBUG] ├─ Extracting builder definition from: org.example.PersonDto [INFO] [DEBUG] │ ├─ Builder will be generated as: org.example.PersonDtoBuilder [INFO] [DEBUG] │ ├─ Analysing setters for finding fields -[INFO] [DEBUG] │ │ ├─ Analyzing method: setName with 1 parameter(s) +[INFO] [DEBUG] │ │ ├─ Analyzing method: setName(java.lang.String) [INFO] [DEBUG] │ │ │ └─ Adding field: name (type: java.lang.String) -[INFO] [DEBUG] │ │ ├─ Analyzing method: setAge with 1 parameter(s) +[INFO] [DEBUG] │ │ ├─ Analyzing method: setAge(int) [INFO] [DEBUG] │ │ │ └─ Adding field: age (type: int) [INFO] [DEBUG] │ └─ Processed 2 possible setters: added 2 fields, skipped 0 [INFO] [DEBUG] ├─ Code generation for builder: PersonDtoBuilder From 8c535ea980b81d9de4f49c4d2e4d44af0c5b7cf9 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 22:17:09 +0100 Subject: [PATCH 4/5] Removing "Disabled" annotation --- .../simple/builders/processor/BuilderProcessorTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java index 9b42394c..852a0cb3 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java @@ -2681,7 +2681,6 @@ public class InnerClass { } @Test - // @Disabled("Missing feature: #131") void shouldHandleOverloadedSettersForSameFieldWithoutConflicts() { // Given String packageName = "test"; From bc49b9f9d2a1815fbd2b3e8e1843727b3bb837b1 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 22:21:53 +0100 Subject: [PATCH 5/5] Changing ordering of methods and parameters to test conflict resolution --- .../simple/builders/processor/BuilderProcessorTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java index 852a0cb3..cbb3f980 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/BuilderProcessorTest.java @@ -2695,8 +2695,8 @@ void shouldHandleOverloadedSettersForSameFieldWithoutConflicts() { private java.util.List names; public java.util.List getNames() { return names; } + public void setNames(String[] names) { this.names = java.util.List.of(names); } public void setNames(java.util.List names) { this.names = names; } - public void setNames(String... names) { this.names = java.util.List.of(names); } """); // When