This commit adds the support for creating a managed instance of the Neo4j Java driver. The low-level support for Neo4j is helpful in situations where the high-level abstraction of Spring Data Neo4j is not needed.

The PR is the foundation for the Spring Data Neo4j Starter update PR https://github.com/spring-projects/spring-boot/pull/22299 because it provides classes needed in the updated SDN starter.

Also there is the suggested related change for the initializer that enables the Neo4j driver dependency and allows the autoconfiguration to kick in: https://github.com/spring-io/start.spring.io/pull/483

Comment From: meistermeier

(Again) thanks for the valuable feedback. ❤️ I would now focus on this PR to get the foundation for the SDN 6 changes (and compilable code). At least I see a benefit of having these independent changes merged first and base the other PR(s) on this.

Comment From: snicoll

Yes! Thank you again.

Comment From: meistermeier

I hope that I fixed or clarified the problems you have found. Unfortunately I have overseen the formatting issues in the first run(s). There was also one in the Neo4jProperties but a gradle format did not touch it and in the next run it wasn't there anymore 🤷‍♀️

Comment From: meistermeier

Is there anything left to do for me or do you need any additional information?

Comment From: snicoll

I am good for this one, thanks @meistermeier!

Comment From: snicoll

Thanks a lot @meistermeier (and @michael-simons). I've polished things quite a bit in https://github.com/spring-projects/spring-boot/commit/8c418adb9b24f703cc8241d8bf225ce06290be3e and we have enough runway to adapt things if necessary.

I am going to review the actuator stuff that are relevant to the driver next. And finally move to Spring Data 2020.0.0-SNAPSHOT to upgrade to SDN 6.x. If you have time to rebase #22299, that would be much appreciated.

Comment From: meistermeier

Thanks a lot @snicoll . Rebasing and ensuring everything still works as expect is on my list next.