diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/neo4j/Neo4jHealthIndicator.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/neo4j/Neo4jHealthIndicator.java index a2824025a87c..4115d6bd27d2 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/neo4j/Neo4jHealthIndicator.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/neo4j/Neo4jHealthIndicator.java @@ -40,7 +40,8 @@ public class Neo4jHealthIndicator extends AbstractHealthIndicator { /** * The Cypher statement used to verify Neo4j is up. */ - static final String CYPHER = "match (n) return count(n) as nodes"; + static final String CYPHER = "CALL dbms.components() YIELD versions, edition" + + " UNWIND versions as version return version, edition"; private final SessionFactory sessionFactory; @@ -69,7 +70,7 @@ protected void doHealthCheck(Health.Builder builder) throws Exception { */ protected void extractResult(Session session, Health.Builder builder) throws Exception { Result result = session.query(CYPHER, Collections.emptyMap()); - builder.up().withDetail("nodes", result.queryResults().iterator().next().get("nodes")); + builder.up().withDetails(result.queryResults().iterator().next()); } } diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/neo4j/Neo4jHealthIndicatorTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/neo4j/Neo4jHealthIndicatorTests.java index 412bde8ec4e9..7630820d4797 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/neo4j/Neo4jHealthIndicatorTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/neo4j/Neo4jHealthIndicatorTests.java @@ -61,17 +61,21 @@ void before() { void neo4jUp() { Result result = mock(Result.class); given(this.session.query(Neo4jHealthIndicator.CYPHER, Collections.emptyMap())).willReturn(result); - int nodeCount = 500; Map expectedCypherDetails = new HashMap<>(); - expectedCypherDetails.put("nodes", nodeCount); + String edition = "community"; + String version = "4.0.0"; + expectedCypherDetails.put("edition", edition); + expectedCypherDetails.put("version", version); List> queryResults = new ArrayList<>(); queryResults.add(expectedCypherDetails); given(result.queryResults()).willReturn(queryResults); Health health = this.neo4jHealthIndicator.health(); assertThat(health.getStatus()).isEqualTo(Status.UP); Map details = health.getDetails(); - int nodeCountFromDetails = (int) details.get("nodes"); - assertThat(nodeCountFromDetails).isEqualTo(nodeCount); + String editionFromDetails = details.get("edition").toString(); + String versionFromDetails = details.get("version").toString(); + assertThat(editionFromDetails).isEqualTo(edition); + assertThat(versionFromDetails).isEqualTo(version); } @Test