Skip to content

Commit

Permalink
#15: Distinguish between immutable Boolean rules and Numeric rules (w…
Browse files Browse the repository at this point in the history
…ith limit read support)
  • Loading branch information
Benjamin Geisselmeier committed May 5, 2015
1 parent 9d3322d commit 8d3e6b6
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.levigo.jadice.server.converterclient.gui.clusterhealth.HealthStatus;
import org.levigo.jadice.server.converterclient.gui.clusterhealth.JmxHelper;

public class AverageExecutionTimeRule implements Rule<Long> {
public class AverageExecutionTimeRule implements NumericRule<Long> {

private final long limit;

Expand All @@ -18,6 +18,11 @@ public AverageExecutionTimeRule(long limit) {
public String getDescription() {
return "Average execution time";
}

@Override
public Long getLimit() {
return limit;
}

@Override
public EvaluationResult<Long> evaluate(MBeanServerConnection mbsc) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.levigo.jadice.server.converterclient.gui.clusterhealth.rule;

public interface ImmutableBooleanRule extends Rule<Boolean> {

boolean getExpectedValue();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.levigo.jadice.server.converterclient.gui.clusterhealth.rule;

public interface NumericRule<T extends Number> extends Rule<T> {

T getLimit();

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.levigo.jadice.server.converterclient.gui.clusterhealth.HealthStatus;
import org.levigo.jadice.server.converterclient.gui.clusterhealth.JmxHelper;

public class RecentAverageExecutionTimeRule implements Rule<Long> {
public class RecentAverageExecutionTimeRule implements NumericRule<Long> {

private final long limit;

Expand All @@ -18,6 +18,11 @@ public RecentAverageExecutionTimeRule(long limit) {
public String getDescription() {
return "Average execution time";
}

@Override
public Long getLimit() {
return limit;
}

@Override
public EvaluationResult<Long> evaluate(MBeanServerConnection mbsc) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.levigo.jadice.server.converterclient.gui.clusterhealth.HealthStatus;
import org.levigo.jadice.server.converterclient.gui.clusterhealth.JmxHelper;

public class RecentEfficiencyRule implements Rule<Float> {
public class RecentEfficiencyRule implements NumericRule<Float> {

private final float limit;

Expand All @@ -18,6 +18,11 @@ public RecentEfficiencyRule(float limit) {
public String getDescription() {
return "Recent efficiency";
}

@Override
public Float getLimit() {
return limit;
}

@Override
public EvaluationResult<Float> evaluate(MBeanServerConnection mbsc) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.levigo.jadice.server.converterclient.gui.clusterhealth.HealthStatus;
import org.levigo.jadice.server.converterclient.gui.clusterhealth.JmxHelper;

public class RecentFailureRateRule implements Rule<Float> {
public class RecentFailureRateRule implements NumericRule<Float> {

private final float limit;

Expand All @@ -18,6 +18,11 @@ public RecentFailureRateRule(float limit) {
public String getDescription() {
return "Recent failure rate";
}

@Override
public Float getLimit() {
return limit;
}

@Override
public EvaluationResult<Float> evaluate(MBeanServerConnection mbsc) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ public interface Rule<T> {
String getDescription();

EvaluationResult<T> evaluate(MBeanServerConnection mbsc);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,17 @@
import org.levigo.jadice.server.converterclient.gui.clusterhealth.HealthStatus;
import org.levigo.jadice.server.converterclient.gui.clusterhealth.JmxHelper;

public class ServerRunningRule implements Rule<Boolean> {
public class ServerRunningRule implements ImmutableBooleanRule {

@Override
public String getDescription() {
return "Instance is running";
}

@Override
public boolean getExpectedValue() {
return true;
}

@Override
public EvaluationResult<Boolean> evaluate(MBeanServerConnection mbsc) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.levigo.jadice.server.converterclient.gui.clusterhealth.HealthStatus;
import org.levigo.jadice.server.converterclient.gui.clusterhealth.JmxHelper;

public class TotalFailureRateRule implements Rule<Float> {
public class TotalFailureRateRule implements NumericRule<Float> {

private final float limit;

Expand All @@ -18,6 +18,11 @@ public TotalFailureRateRule(float limit) {
public String getDescription() {
return "Total failure rate";
}

@Override
public Float getLimit() {
return limit;
}

@Override
public EvaluationResult<Float> evaluate(MBeanServerConnection mbsc) {
Expand Down

0 comments on commit 8d3e6b6

Please sign in to comment.