MongoDB 起動前に Flapdoodle のダウンロードプロキシを設定する
トランジションベースの Flapdoodle 構成で DownloadPackage をカスタマイズし、ウォームキャッシュがプロキシ経路を飛ばす場合があることを覚えておきましょう。
MongoDB のアーカイブ取得中に起動が失敗する場合は、Flapdoodle のパッケージダウンローダーを設定します。HTTP プロキシ一覧は、公開ダウンロード経路の候補エンドポイントを提供できます。データベースクライアントはまだ後続の接続を行っていません。
最近のトランジションベースのカスタマイズでは、DownloadPackage を通じてプロキシを指定します。
Mongod mongod = new Mongod() {
@Override
public DownloadPackage downloadPackage() {
return DownloadPackage.withDefaults()
.withDownloadConfig(DownloadConfig.defaults()
.withProxyFactory(() -> Proxys.httpProxy("proxy.example", 8080)));
}
};選択した Flapdoodle MongoDB と embedded-process のライブラリからクラスを取得し、このカスタマイズした Mongod をアプリケーションまたはテスト構成で使用します。ラムダが HTTP プロキシを提供し、アーカイブ URL はダウンロード先のままです。
キャッシュからの起動が成功しても、そのプロキシは使われません。パッケージのトランジションは最初にダウンロードキャッシュを確認するため、起動結果を評価するときはキャッシュヒットと実際のアーカイブ取得を区別してください。
このパターンはトランジション API に属します。古い RuntimeConfig ビルダーや Spring Boot の旧 DownloadConfigBuilderCustomizer は、カスタマイズとキャッシュレイアウトのインターフェースが異なります。アプリケーションの依存関係の世代に例を合わせてください。