== 1. in-memory compile: Person + Main, BuilderProcessor supplied directly success=true generated=[com.acme.PersonBuilder] classes=[com.acme.Main, com.acme.Person, com.acme.PersonBuilder] == 2. error cases: javac diagnostics produced via Messager interface -> ERROR /com/acme/Shape.java:4: @GenerateBuilder can only be applied to a class or a record, not to interface abstract class -> ERROR /com/acme/Animal.java:4: @GenerateBuilder cannot be applied to abstract class Animal two constructors -> ERROR /com/acme/Point.java:4: Point must have exactly one non-private constructor, but has 2 generic class -> ERROR /com/acme/Box.java:4: @GenerateBuilder does not support generic types such as Box == 3. rounds, with -Abuilder.debug=true builder round 1: annotations=[com.ankurm.builder.GenerateBuilder] roots=[com.acme.Person] processingOver=false builder round 2: annotations=[] roots=[com.acme.PersonBuilder] processingOver=false builder round 3: annotations=[] roots=[] processingOver=true == 4. no setProcessors(): discovered through META-INF/services via -processorpath success=true generated=[com.acme.PersonBuilder] == 5. -proc:none: the processor never runs success=false generated=[] ERROR /com/acme/Main.java:5: cannot find symbol == 6. a processor that forgot @SupportedSourceVersion WARNING: No SupportedSourceVersion annotation found on com.ankurm.builder.LazyProcessor, returning RELEASE_6. WARNING: Supported source version 'RELEASE_6' from annotation processor 'com.ankurm.builder.LazyProcessor' less than -source '25'