# 컴팩트 생성자가 네 입력을 세 방식으로 처리한다 public MongoPlatformSettings { // Absent rather than empty is the normal case: a deployment that has opted the module in but // configured no platform profile yet must still start, so binding treats "no profiles" as an // empty map instead of a binding failure. profiles = profiles == null ? Map.of() : Map.copyOf(profiles); // Experimental, and therefore not a switch (MNG-INT-003). The driver-side source — watch, // resumeAfter/startAfter, cursor lifetime, reconnection — is not shipped; what exists is policy // and value objects that do not add up to a running consumer. Accepting the flag and ignoring // it // would leave an operator believing it took effect, so the value is refused rather than stored: // zero beans, zero threads, and a `true` that cannot be honoured never becomes one that looks // honoured. changeStreams = false; // Absent means the platform default, and a negative count is refused rather than clamped: a // requirement of -1 is not a lenient requirement, it is a typo, and reading it as "no // secondaries needed" is how a health view comes to report a cluster it never checked. if (requiredSecondaries == null) { requiredSecondaries = DEFAULT_REQUIRED_SECONDARIES; } if (requiredSecondaries < 0) { throw MongoOperationRejectedException.of( "config.secondaries", "the required secondary count must not be negative; " + requiredSecondaries + " is"); } # 시작 검증기의 변경 스트림 분기 104: if (changeStreamsEnabled && !capabilities.isStable(MongoCapability.CHANGE_STREAM)) { 105- throw MongoOperationRejectedException.of( 106- "startup.capability", # 그 분기가 내는 문장이 저장소에 나오는 곳 전수 …/autoconfigure/MongoStartupValidator.java:107: "change streams are enabled but unavailable here: " # changeStreams 라는 이름이 나오는 곳 전수 (다른 타입의 동명 정적 팩터리 포함) test/java/dev/caskeleton/adapter/outbound/mongo/autoconfigure/MongoStartupValidationTest.java:63: assertThat(MongoPlatformSettings.empty().changeStreams()) test/java/dev/caskeleton/adapter/outbound/mongo/autoconfigure/MongoStartupValidationTest.java:76: assertThat(asked.changeStreams()) test/java/dev/caskeleton/adapter/outbound/mongo/api/profile/MongoRuntimeProfileTest.java:66: assertThatThrownBy(() -> standalone.require(MongoTopologyRequirement.changeStreams())) main/java/dev/caskeleton/adapter/outbound/mongo/autoconfigure/MongoPlatformAutoConfiguration.java:363: properties.changeStreams(), # MongoStartupValidator 를 만드는 곳 전수 test/java/dev/caskeleton/adapter/outbound/mongo/autoconfigure/MongoStartupValidatorTest.java:143: return new MongoStartupValidator( main/java/dev/caskeleton/adapter/outbound/mongo/autoconfigure/MongoPlatformAutoConfiguration.java:354: new MongoStartupValidator(