Skip to content

Instantly share code, notes, and snippets.

@bigkahuna1uk
Created June 8, 2013 12:53
import org.apache.commons.lang.Validate;
public class Restarter {
private final IMessagingClient messagingClient;
private Status status;
public Restarter(IMessagingClient client) {
Validate.notNull(client, "Messaging client must be specified");
this.messagingClient = client;
}
public void restart(Status newStatus) {
if (isTransistionFromFailureToStarted(newStatus)) {
messagingClient.stop();
messagingClient.start();
}
}
private boolean isTransistionFromFailureToStarted(Status newStatus) {
if (null == status) {
status = newStatus;
return false;
}
if (Status.FAILED == newStatus) {
status = newStatus;
}
boolean isTransitionFromFailure = (Status.FAILED == status) && (Status.STARTED == newStatus);
if (isTransitionFromFailure) {
status = newStatus;
}
return isTransitionFromFailure;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment