Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
be988d70
Commit
be988d70
authored
Jul 18, 2019
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish "Add HealthIndicator for Hazelcast"
See gh-17499
parent
fca5a2b8
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
21 additions
and
46 deletions
+21
-46
pom.xml
...g-boot-project/spring-boot-actuator-autoconfigure/pom.xml
+0
-5
package-info.java
...rk/boot/actuate/autoconfigure/hazelcast/package-info.java
+1
-1
HazelcastHealthIndicatorAutoConfigurationIntegrationTests.java
...castHealthIndicatorAutoConfigurationIntegrationTests.java
+2
-13
HazelcastHealthIndicatorAutoConfigurationTests.java
...lcast/HazelcastHealthIndicatorAutoConfigurationTests.java
+0
-1
HazelcastHealthIndicator.java
...work/boot/actuate/hazelcast/HazelcastHealthIndicator.java
+7
-18
HazelcastHealthIndicatorTests.java
...boot/actuate/hazelcast/HazelcastHealthIndicatorTests.java
+8
-8
production-ready-features.adoc
...oot-docs/src/main/asciidoc/production-ready-features.adoc
+3
-0
No files found.
spring-boot-project/spring-boot-actuator-autoconfigure/pom.xml
View file @
be988d70
...
...
@@ -64,11 +64,6 @@
<artifactId>
hazelcast-spring
</artifactId>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
com.hazelcast
</groupId>
<artifactId>
hazelcast-client
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
com.sun.mail
</groupId>
<artifactId>
jakarta.mail
</artifactId>
...
...
spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/package-info.java
View file @
be988d70
...
...
@@ -15,6 +15,6 @@
*/
/**
* Auto-configuration for
Hazelcast's actuator
.
* Auto-configuration for
actuator Hazelcast concerns
.
*/
package
org
.
springframework
.
boot
.
actuate
.
autoconfigure
.
hazelcast
;
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthIndicatorAutoConfigurationIntegrationTests.java
View file @
be988d70
...
...
@@ -16,11 +16,7 @@
package
org
.
springframework
.
boot
.
actuate
.
autoconfigure
.
hazelcast
;
import
com.hazelcast.client.config.ClientConfig
;
import
com.hazelcast.config.Config
;
import
com.hazelcast.core.Hazelcast
;
import
com.hazelcast.core.HazelcastInstance
;
import
org.junit.jupiter.api.AfterEach
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.actuate.autoconfigure.health.HealthIndicatorAutoConfiguration
;
...
...
@@ -40,17 +36,10 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
class
HazelcastHealthIndicatorAutoConfigurationIntegrationTests
{
private
final
HazelcastInstance
hazelcastServer
=
Hazelcast
.
newHazelcastInstance
(
new
Config
());
private
ApplicationContextRunner
contextRunner
=
new
ApplicationContextRunner
().
withBean
(
ClientConfig
.
class
)
private
ApplicationContextRunner
contextRunner
=
new
ApplicationContextRunner
()
.
withConfiguration
(
AutoConfigurations
.
of
(
HazelcastHealthIndicatorAutoConfiguration
.
class
,
HazelcastAutoConfiguration
.
class
,
HealthIndicatorAutoConfiguration
.
class
));
@AfterEach
void
shutdown
()
{
this
.
hazelcastServer
.
shutdown
();
}
@Test
void
hazelcastUp
()
{
this
.
contextRunner
.
run
((
context
)
->
{
...
...
@@ -66,7 +55,7 @@ class HazelcastHealthIndicatorAutoConfigurationIntegrationTests {
@Test
void
hazelcastDown
()
{
this
.
contextRunner
.
run
((
context
)
->
{
shutdown
();
context
.
getBean
(
HazelcastInstance
.
class
).
shutdown
();
assertThat
(
context
).
hasSingleBean
(
HazelcastHealthIndicator
.
class
);
Health
health
=
context
.
getBean
(
HazelcastHealthIndicator
.
class
).
health
();
assertThat
(
health
.
getStatus
()).
isEqualTo
(
Status
.
DOWN
);
...
...
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthIndicatorAutoConfigurationTests.java
View file @
be988d70
...
...
@@ -48,7 +48,6 @@ class HazelcastHealthIndicatorAutoConfigurationTests {
void
runWhenDisabledShouldNotCreateIndicator
()
{
this
.
contextRunner
.
withPropertyValues
(
"management.health.hazelcast.enabled:false"
)
.
run
((
context
)
->
assertThat
(
context
).
doesNotHaveBean
(
HazelcastHealthIndicator
.
class
)
.
doesNotHaveBean
(
HazelcastHealthIndicator
.
class
)
.
hasSingleBean
(
ApplicationHealthIndicator
.
class
));
}
...
...
spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/hazelcast/HazelcastHealthIndicator.java
View file @
be988d70
...
...
@@ -16,12 +16,7 @@
package
org
.
springframework
.
boot
.
actuate
.
hazelcast
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
com.hazelcast.core.Endpoint
;
import
com.hazelcast.core.HazelcastInstance
;
import
com.hazelcast.transaction.TransactionalTask
;
import
org.springframework.boot.actuate.health.AbstractHealthIndicator
;
import
org.springframework.boot.actuate.health.Health
;
...
...
@@ -29,15 +24,14 @@ import org.springframework.boot.actuate.health.HealthIndicator;
import
org.springframework.util.Assert
;
/**
* {@link HealthIndicator} for
a
Hazelcast.
* {@link HealthIndicator} for Hazelcast.
*
* @author Dmytro Nosan
* @author Stephane Nicoll
* @since 2.2.0
*/
public
class
HazelcastHealthIndicator
extends
AbstractHealthIndicator
{
private
static
final
TransactionalTask
<?>
TASK
=
(
context
)
->
null
;
private
final
HazelcastInstance
hazelcast
;
public
HazelcastHealthIndicator
(
HazelcastInstance
hazelcast
)
{
...
...
@@ -48,16 +42,11 @@ public class HazelcastHealthIndicator extends AbstractHealthIndicator {
@Override
protected
void
doHealthCheck
(
Health
.
Builder
builder
)
{
this
.
hazelcast
.
executeTransaction
(
TASK
);
builder
.
up
().
withDetails
(
getDetails
());
}
private
Map
<
String
,
Object
>
getDetails
()
{
Map
<
String
,
Object
>
details
=
new
LinkedHashMap
<>();
Endpoint
endpoint
=
this
.
hazelcast
.
getLocalEndpoint
();
details
.
put
(
"name"
,
this
.
hazelcast
.
getName
());
details
.
put
(
"uuid"
,
endpoint
.
getUuid
());
return
details
;
this
.
hazelcast
.
executeTransaction
((
context
)
->
{
builder
.
up
().
withDetail
(
"name"
,
this
.
hazelcast
.
getName
()).
withDetail
(
"uuid"
,
this
.
hazelcast
.
getLocalEndpoint
().
getUuid
());
return
null
;
});
}
}
spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/hazelcast/HazelcastHealthIndicatorTests.java
View file @
be988d70
...
...
@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.hazelcast;
import
com.hazelcast.core.Endpoint
;
import
com.hazelcast.core.HazelcastException
;
import
com.hazelcast.core.HazelcastInstance
;
import
com.hazelcast.transaction.TransactionalTask
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.actuate.health.Health
;
...
...
@@ -33,22 +34,23 @@ import static org.mockito.Mockito.mock;
* Tests for {@link HazelcastHealthIndicator}.
*
* @author Dmytro Nosan
* @author Stephane Nicoll
*/
class
HazelcastHealthIndicatorTests
{
private
final
HazelcastInstance
hazelcast
=
mock
(
HazelcastInstance
.
class
);
private
final
HazelcastHealthIndicator
healthIndicator
=
new
HazelcastHealthIndicator
(
this
.
hazelcast
);
@Test
void
hazelcastUp
()
{
Endpoint
endpoint
=
mock
(
Endpoint
.
class
);
when
(
this
.
hazelcast
.
getName
()).
thenReturn
(
"hz0-instance"
);
when
(
this
.
hazelcast
.
getLocalEndpoint
()).
thenReturn
(
endpoint
);
when
(
endpoint
.
getUuid
()).
thenReturn
(
"7581bb2f-879f-413f-b574-0071d7519eb0"
);
Health
health
=
this
.
healthIndicator
.
health
();
when
(
this
.
hazelcast
.
executeTransaction
(
any
())).
thenAnswer
((
invocation
)
->
{
TransactionalTask
<?>
task
=
invocation
.
getArgument
(
0
);
return
task
.
execute
(
null
);
});
Health
health
=
new
HazelcastHealthIndicator
(
this
.
hazelcast
).
health
();
assertThat
(
health
.
getStatus
()).
isEqualTo
(
Status
.
UP
);
assertThat
(
health
.
getDetails
()).
containsOnlyKeys
(
"name"
,
"uuid"
).
containsEntry
(
"name"
,
"hz0-instance"
)
.
containsEntry
(
"uuid"
,
"7581bb2f-879f-413f-b574-0071d7519eb0"
);
...
...
@@ -57,9 +59,7 @@ class HazelcastHealthIndicatorTests {
@Test
void
hazelcastDown
()
{
when
(
this
.
hazelcast
.
executeTransaction
(
any
())).
thenThrow
(
new
HazelcastException
());
Health
health
=
this
.
healthIndicator
.
health
();
Health
health
=
new
HazelcastHealthIndicator
(
this
.
hazelcast
).
health
();
assertThat
(
health
.
getStatus
()).
isEqualTo
(
Status
.
DOWN
);
}
...
...
spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc
View file @
be988d70
...
...
@@ -764,6 +764,9 @@ The following `HealthIndicators` are auto-configured by Spring Boot when appropr
|{sc-spring-boot-actuator}/elasticsearch/ElasticsearchHealthIndicator.{sc-ext}[`ElasticsearchHealthIndicator`]
|Checks that an Elasticsearch cluster is up.
|{sc-spring-boot-actuator}/hazelcast/HazelcastHealthIndicator.{sc-ext}[`HazelcastHealthIndicator`]
|Checks that an Hazelcast server is up.
|{sc-spring-boot-actuator}/influx/InfluxDbHealthIndicator.{sc-ext}[`InfluxDbHealthIndicator`]
|Checks that an InfluxDB server is up.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment