anchor.diff:  
   [[boot-features-kotlin-configuration-properties]]
   === `@ConfigurationProperties`
  -`@ConfigurationProperties` currently only works with `lateinit` or nullable `var`
  -properties (the former is recommended), since immutable classes initialized by
  -constructors are {github-issues}8762[not yet supported].
  +As of Spring Boot 2.2, `@ConfigurationProperties` supports classes with immutable `val` properties.
   
   [source,kotlin,indent=0]
   ----
   @ConfigurationProperties("example.kotlin")
  -class KotlinExampleProperties {
  -
  -	lateinit var name: String
  -
  -	lateinit var description: String
  -
  -	val myService = MyService()
  -
  -	class MyService {
  -
  -		lateinit var apiToken: String
  -
  -		lateinit var uri: URI
  -
  -	}
  -
  -}
  -----
  -
  -TIP: To generate <<appendix.adoc#configuration-metadata-annotation-processor,your own
  -metadata>> using the annotation processor, {kotlin-documentation}kapt.html[`kapt` should
  -be configured] with the `spring-boot-configuration-processor` dependency.
  +data class KotlinExampleProperties(
  +		val name: String,
  +		val description: String,
  +		val myService: MyService
  +)
  +
  +data class MyService(
  +	val apiToken: String,
  +	val uri: URI
  +)
  +----
  +
  +WARNING: <<appendix.adoc#configuration-metadata-annotation-processor,Metadata>> is not working yet.
   
   
   [[boot-features-kotlin-testing]]
  
positive.code: 
  [[boot-features-kotlin-requirements]]
  === Requirements
  Spring Boot supports Kotlin 1.2.x. To use Kotlin, `org.jetbrains.kotlin:kotlin-stdlib` and
  `org.jetbrains.kotlin:kotlin-reflect` must be present on the classpath. The
  `kotlin-stdlib` variants `kotlin-stdlib-jdk7` and `kotlin-stdlib-jdk8` can also be used.
  
  
negative.code: 
  [[boot-features-kotlin-dependency-management]]
  === Dependency management
  In order to avoid mixing different versions of Kotlin dependencies on the classpath,
  https://search.maven.org/artifact/org.jetbrains.kotlin/kotlin-bom/[Kotlin BOM] is
  included in Spring Boot dependency management to set the version of Kotlin dependencies.
  
  With Maven, the Kotlin version can be customized via the `kotlin.version` property and
  plugin management is provided for `kotlin-maven-plugin`. With Gradle, the Spring Boot
  