@JsonCreator public RealtimePlumberSchool( @JsonProperty("windowPeriod") Period windowPeriod, @JsonProperty("basePersistDirectory") File basePersistDirectory, @JsonProperty("segmentGranularity") IndexGranularity segmentGranularity ) { this.windowPeriod = windowPeriod; this.basePersistDirectory = basePersistDirectory; this.segmentGranularity = segmentGranularity; this.versioningPolicy = new IntervalStartVersioningPolicy(); this.rejectionPolicyFactory = new ServerTimeRejectionPolicyFactory(); // Workaround for Jackson issue where if maxPendingPersists is null, all JacksonInjects fail this.maxPendingPersists = RealtimePlumberSchool.DEFAULT_MAX_PENDING_PERSISTS; Preconditions.checkNotNull(windowPeriod, "RealtimePlumberSchool requires a windowPeriod."); Preconditions.checkNotNull(basePersistDirectory, "RealtimePlumberSchool requires a basePersistDirectory."); Preconditions.checkNotNull(segmentGranularity, "RealtimePlumberSchool requires a segmentGranularity."); }
@JsonCreator public FlushingPlumberSchool( @JsonProperty("flushDuration") Duration flushDuration, @JsonProperty("windowPeriod") Period windowPeriod, @JsonProperty("basePersistDirectory") File basePersistDirectory, @JsonProperty("segmentGranularity") IndexGranularity segmentGranularity ) { this.flushDuration = flushDuration; this.windowPeriod = windowPeriod; this.basePersistDirectory = basePersistDirectory; this.segmentGranularity = segmentGranularity; this.versioningPolicy = new IntervalStartVersioningPolicy(); this.rejectionPolicyFactory = new ServerTimeRejectionPolicyFactory(); // Workaround for Jackson issue where if maxPendingPersists is null, all JacksonInjects fail this.maxPendingPersists = RealtimePlumberSchool.DEFAULT_MAX_PENDING_PERSISTS; Preconditions.checkNotNull(flushDuration, "FlushingPlumberSchool requires a flushDuration."); Preconditions.checkNotNull(windowPeriod, "FlushingPlumberSchool requires a windowPeriod."); Preconditions.checkNotNull(basePersistDirectory, "FlushingPlumberSchool requires a basePersistDirectory."); Preconditions.checkNotNull(segmentGranularity, "FlushingPlumberSchool requires a segmentGranularity."); }