configuration validation

This commit is contained in:
Athou
2014-08-16 12:40:39 +02:00
parent 2a780dd2bb
commit b886379d34

View File

@@ -6,11 +6,13 @@ import io.dropwizard.db.DataSourceFactory;
import java.util.Date; import java.util.Date;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import lombok.Getter; import lombok.Getter;
import org.apache.commons.lang.time.DateUtils; import org.apache.commons.lang.time.DateUtils;
import org.hibernate.validator.constraints.NotBlank;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
@@ -34,21 +36,30 @@ public class CommaFeedConfiguration extends Configuration {
@Getter @Getter
public static class ApplicationSettings { public static class ApplicationSettings {
@JsonProperty @JsonProperty
@NotNull
@NotBlank
private String contextPath; private String contextPath;
@JsonProperty @JsonProperty
@NotNull
@NotBlank
private String publicUrl; private String publicUrl;
@JsonProperty @JsonProperty
@NotNull
private boolean allowRegistrations; private boolean allowRegistrations;
@JsonProperty @JsonProperty
private String googleAnalyticsTrackingCode; private String googleAnalyticsTrackingCode;
@JsonProperty @JsonProperty
@NotNull
@Min(1)
private int backgroundThreads; private int backgroundThreads;
@JsonProperty @JsonProperty
@NotNull
@Min(1)
private int databaseUpdateThreads; private int databaseUpdateThreads;
@JsonProperty @JsonProperty
@@ -67,27 +78,38 @@ public class CommaFeedConfiguration extends Configuration {
private String smtpPassword; private String smtpPassword;
@JsonProperty @JsonProperty
@NotNull
private boolean heavyLoad; private boolean heavyLoad;
@JsonProperty @JsonProperty
@NotNull
private boolean pubsubhubbub; private boolean pubsubhubbub;
@JsonProperty @JsonProperty
@NotNull
private boolean imageProxyEnabled; private boolean imageProxyEnabled;
@JsonProperty @JsonProperty
@NotNull
@Min(0)
private int queryTimeout; private int queryTimeout;
@JsonProperty @JsonProperty
@NotNull
@Min(0)
private int keepStatusDays; private int keepStatusDays;
@JsonProperty @JsonProperty
@NotNull
@Min(0)
private int refreshIntervalMinutes; private int refreshIntervalMinutes;
@JsonProperty @JsonProperty
@NotNull
private CacheType cache; private CacheType cache;
@JsonProperty @JsonProperty
@NotNull
private String announcement; private String announcement;
public Date getUnreadThreshold() { public Date getUnreadThreshold() {