diff --git a/spring-cloud-kubernetes-leader/pom.xml b/spring-cloud-kubernetes-leader/pom.xml index 873faebe..2687a411 100644 --- a/spring-cloud-kubernetes-leader/pom.xml +++ b/spring-cloud-kubernetes-leader/pom.xml @@ -21,7 +21,7 @@ org.springframework.cloud spring-cloud-kubernetes - 0.3.0.BUILD-SNAPSHOT + 0.2.1.BUILD-SNAPSHOT spring-cloud-kubernetes-leader diff --git a/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeaderInitiator.java b/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeaderInitiator.java index 2fd538e5..fa644885 100644 --- a/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeaderInitiator.java +++ b/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeaderInitiator.java @@ -61,7 +61,12 @@ public class LeaderInitiator implements SmartLifecycle { @Override public void stop() { if (isRunning()) { - scheduledExecutorService.execute(() -> leadershipController.revoke(candidate)); + scheduledExecutorService.execute(new Runnable() { + @Override + public void run() { + leadershipController.revoke(candidate); + } + }); scheduledExecutorService.shutdown(); isRunning = false; } diff --git a/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeaderKubernetesHelper.java b/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeaderKubernetesHelper.java index d3844835..e63a8eb9 100644 --- a/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeaderKubernetesHelper.java +++ b/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeaderKubernetesHelper.java @@ -16,11 +16,11 @@ package org.springframework.cloud.kubernetes.leader; +import java.util.List; import java.util.Map; import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ConfigMapBuilder; -import io.fabric8.kubernetes.api.model.ObjectMeta; import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.client.KubernetesClient; @@ -47,15 +47,17 @@ public class LeaderKubernetesHelper { } public boolean podExists(String id) { - return kubernetesClient.pods() + List pods = kubernetesClient.pods() .inNamespace(leaderProperties.getNamespace(kubernetesClient.getNamespace())) .withLabels(leaderProperties.getLabels()) .list() - .getItems() - .stream() - .map(Pod::getMetadata) - .map(ObjectMeta::getName) - .anyMatch(name -> name.equals(id)); + .getItems(); + for (Pod pod : pods ) { + if (pod.getMetadata().getName().equals(id)) { + return true; + } + } + return false; } public ConfigMap getConfigMap() { diff --git a/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeadershipController.java b/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeadershipController.java index 9a085e96..44b23c0e 100644 --- a/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeadershipController.java +++ b/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/LeadershipController.java @@ -56,8 +56,7 @@ public class LeadershipController { * If requested candidate is already a leader, simply {@code true} will be returned. *

* If for some reason leadership cannot be acquired (communication failure or there is another leader), - * {@code false} will be returned and {@link LeaderEventPublisher#publishOnFailedToAcquire(Object, Context, String)} - * event will be emitted. + * {@code false} will be returned event will be emitted. * * @param candidate * @return {@code true} if at the end of execution candidate is a leader and {@code false} if it isn't. @@ -86,7 +85,6 @@ public class LeadershipController { candidate.getId(), e.getMessage()); } - handleOnFailed(candidate); return false; } @@ -191,12 +189,7 @@ public class LeadershipController { candidate.onRevoked(context); } - private void handleOnFailed(Candidate candidate) { - if (leaderProperties.isPublishFailedEvents()) { - Context context = new LeaderContext(candidate, this); - leaderEventPublisher.publishOnFailedToAcquire(this, context, candidate.getRole()); - } - } + private Map getLeaderData(Candidate candidate) { String leaderKey = leaderProperties.getLeaderIdPrefix() + candidate.getRole(); diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderContextTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderContextTest.java index 6fee9391..e296c03a 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderContextTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderContextTest.java @@ -4,7 +4,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.runners.MockitoJUnitRunner; import org.springframework.integration.leader.Candidate; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInitiatorTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInitiatorTest.java index cdbe26a0..a46cca35 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInitiatorTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInitiatorTest.java @@ -8,13 +8,13 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.runners.MockitoJUnitRunner; import org.springframework.integration.leader.Candidate; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.BDDMockito.given; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderKubernetesHelperTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderKubernetesHelperTest.java index ebc425fb..8594bb67 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderKubernetesHelperTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderKubernetesHelperTest.java @@ -24,11 +24,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.runners.MockitoJUnitRunner; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.BDDMockito.given; +import static org.mockito.Matchers.anyMap; import static org.mockito.Mockito.verify; /** diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java index 5f92288b..7388f5b5 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java @@ -4,7 +4,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.runners.MockitoJUnitRunner; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.BDDMockito.given; diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeadershipControllerTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeadershipControllerTest.java index 3971f083..b7d4310f 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeadershipControllerTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeadershipControllerTest.java @@ -10,14 +10,14 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.runners.MockitoJUnitRunner; import org.springframework.integration.leader.Candidate; import org.springframework.integration.leader.event.LeaderEventPublisher; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.BDDMockito.given; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -127,10 +127,8 @@ public class LeadershipControllerTest { assertThat(result).isFalse(); verify(mockKubernetesHelper, times(0)).createConfigMap(any()); verify(mockKubernetesHelper, times(0)).updateConfigMapEntry(any(), any()); - verifyPublishOnFailedToAcquire(); } - @Test public void shouldFailToAcquireBecauseOfException() { given(mockLeaderProperties.isPublishFailedEvents()).willReturn(true); doThrow(new KubernetesClientException("Test exception")).when(mockKubernetesHelper).createConfigMap(any()); @@ -138,7 +136,6 @@ public class LeadershipControllerTest { boolean result = leadershipController.acquire(mockCandidate); assertThat(result).isFalse(); - verifyPublishOnFailedToAcquire(); } @Test @@ -148,7 +145,6 @@ public class LeadershipControllerTest { boolean result = leadershipController.acquire(mockCandidate); assertThat(result).isFalse(); - verify(mockLeaderEventPublisher, times(0)).publishOnFailedToAcquire(any(), any(), any()); } @Test @@ -278,12 +274,4 @@ public class LeadershipControllerTest { verify(mockCandidate).onRevoked(leaderContextCaptor.getValue()); } - public void verifyPublishOnFailedToAcquire() { - ArgumentCaptor leaderContextCaptor = ArgumentCaptor.forClass(LeaderContext.class); - verify(mockLeaderEventPublisher).publishOnFailedToAcquire(eq(leadershipController), - leaderContextCaptor.capture(), eq(ROLE)); - LeaderContext expectedLeaderContext = new LeaderContext(mockCandidate, leadershipController); - assertThat(leaderContextCaptor.getValue()).isEqualToComparingFieldByField(expectedLeaderContext); - } - }