@startuml :Run recipe; if (maven-compiler-plugin defined) then (false) stop else (true) :analyze plugin; if (source and target version differ) then (true) stop else (false) if (Uses maven.compiler.* properties) then (true) :set java.version property to value of maven.compiler.source; else (false) if (uses custom property for version) then (true) :set java.version property to value of custom property; :set source and target to maven.compiler.source and maven.compiler.target; if (custom property used elsewehere) then (true) :replace occurrences with java.version; endif else (false) :read fixed value; :set java.version property to fixed value; :set source and target to maven.compiler.source and maven.compiler.target; endif endif :remove maven.compiler.* from properties; :only java.version and no maven.compiler.* property defined and maven-compiler-plugin uses maven.compiler.* properties; stop endif endif @enduml