Using Spring Data with Cassandra 3 extends Spring's power into more NoSQL. This detailed tutorial includes setting up Apache Cassandra and some basic interactions.
SonarQube (and the SonarGraph plugin) can automatically scan your code base for cyclic dependencies. Their combined power replaces some lost functionality.
If functional programming has your attention, let's start with the basics: functions. You can store functions as objects, take them as arguments, return them, and more.
This guide will make sure your existing Java 7 and 8 legacy code will run on Java 9, with detailed examples and a focus on Java 9's impending modularity.
Serialization Filtering is the minimum that Oracle could provide in order to stop being blamed for not doing anything about the critical Deserialization attacks. It is a first step in the right direction but it does not completely solve the problem and is not suitable for enterprise production environments.
When it comes to dynamic SQL, all jOOQ statements are dynamic. You can also look to functional programming-optimized tricks like the Strategy Pattern to help.
Apache Lucene's indexing and searching capabilities make it attractive for any number of uses—development or academic. See an example of how the search engine works.