fix: leader module now uses 0.2.x parent and is java7 compatible.
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-kubernetes</artifactId>
|
||||
<version>0.3.0.BUILD-SNAPSHOT</version>
|
||||
<version>0.2.1.BUILD-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>spring-cloud-kubernetes-leader</artifactId>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<Pod> 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() {
|
||||
|
||||
@@ -56,8 +56,7 @@ public class LeadershipController {
|
||||
* If requested candidate is already a leader, simply {@code true} will be returned.
|
||||
* <p>
|
||||
* 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<String, String> getLeaderData(Candidate candidate) {
|
||||
String leaderKey = leaderProperties.getLeaderIdPrefix() + candidate.getRole();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<LeaderContext> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user