Files
Athou_commafeed/src/main/java/com/commafeed/CommaFeedConfiguration.java

129 lines
2.5 KiB
Java
Raw Normal View History

package com.commafeed;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;
import java.util.Date;
import java.util.ResourceBundle;
import javax.validation.Valid;
2014-08-16 12:40:39 +02:00
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import lombok.Getter;
2014-10-28 16:36:09 +01:00
import org.apache.commons.lang3.time.DateUtils;
2014-08-16 12:40:39 +02:00
import org.hibernate.validator.constraints.NotBlank;
2014-09-22 09:51:55 +02:00
import com.commafeed.backend.cache.RedisPoolFactory;
import com.commafeed.frontend.session.SessionManagerFactory;
import com.fasterxml.jackson.annotation.JsonProperty;
@Getter
public class CommaFeedConfiguration extends Configuration {
2014-08-09 13:26:03 +02:00
public static enum CacheType {
NOOP, REDIS
}
private ResourceBundle bundle;
public CommaFeedConfiguration() {
bundle = ResourceBundle.getBundle("application");
}
@Valid
@NotNull
@JsonProperty("database")
private DataSourceFactory database = new DataSourceFactory();
2014-09-22 09:51:55 +02:00
@Valid
@NotNull
@JsonProperty("redis")
private RedisPoolFactory redisPoolFactory = new RedisPoolFactory();
2014-08-18 13:09:54 +02:00
@Valid
@NotNull
@JsonProperty("session")
private SessionManagerFactory sessionManagerFactory = new SessionManagerFactory();
@Valid
@NotNull
@JsonProperty("app")
private ApplicationSettings applicationSettings;
public String getVersion() {
return bundle.getString("version");
}
public String getGitCommit() {
return bundle.getString("git.commit");
}
@Getter
public static class ApplicationSettings {
2014-08-16 12:40:39 +02:00
@NotNull
@NotBlank
private String publicUrl;
2014-08-16 12:40:39 +02:00
@NotNull
private boolean allowRegistrations;
private String googleAnalyticsTrackingCode;
2014-08-16 12:40:39 +02:00
@NotNull
@Min(1)
private int backgroundThreads;
2014-08-16 12:40:39 +02:00
@NotNull
@Min(1)
private int databaseUpdateThreads;
private String smtpHost;
private int smtpPort;
private boolean smtpTls;
private String smtpUserName;
private String smtpPassword;
2014-11-07 09:38:55 +01:00
private String smtpFromAddress;
2014-08-16 12:40:39 +02:00
@NotNull
private boolean heavyLoad;
2014-08-16 12:40:39 +02:00
@NotNull
private boolean pubsubhubbub;
2014-08-16 12:40:39 +02:00
@NotNull
private boolean imageProxyEnabled;
2014-08-16 12:40:39 +02:00
@NotNull
@Min(0)
private int queryTimeout;
2014-08-16 12:40:39 +02:00
@NotNull
@Min(0)
private int keepStatusDays;
2014-08-16 12:40:39 +02:00
@NotNull
@Min(0)
private int refreshIntervalMinutes;
2014-08-16 12:40:39 +02:00
@NotNull
2014-08-09 13:26:03 +02:00
private CacheType cache;
2014-08-16 12:40:39 +02:00
@NotNull
private String announcement;
public Date getUnreadThreshold() {
int keepStatusDays = getKeepStatusDays();
return keepStatusDays > 0 ? DateUtils.addDays(new Date(), -1 * keepStatusDays) : null;
}
}
}