まず、はい、私は検索しました。私はちょっと混乱していると思います。私は答えを知っていると思うので、私が正しいと思った例を描きましょう。私はその答えが正しいと思います。ありがとう。ああ、私は、endChoice()の行のいくつかは厳密に必要ではなく、Camelはそれを理解することを知っていますが、それらを使用しない理由がない限り、ブロックはきれいに描かれています。Camel end vs endChoice - 通常のクエリではありません
.choice()
.when(X1)
// do stuff
.choice()
.when(Y)
//do more stuff
.endChoice() // close inner when block
.end() // close inner choice block
.endChoice() // close first outer when
.when(X2)
// do other stuff
.endChoice() // close second outer when
.end() // close outer choice
ので、APIでの私の元の外観は、私が)最後は()(選択と分割し、そのendChoiceなどのクロージングもののためだと思ったときとそうでないような選択オプションを閉じるためでした。後者は実際にはChoiceDefinitionを返すend()です。それは名前を少し良くする。
しかし、私がend()内の "close inner choice block"というラベルを取り除くと、これは次の行endChoice()を実行することを意味します。これは内部選択ブロックを閉じますか?それを考えると、when(X2)はまだwhen(X1)ブロック内にあります。ですから、私はend()を取り除くのではなく、endChoice()に置き換える必要があると思います。結果は次のようになります:
.choice()
.when(X1)
// do stuff
.choice()
.when(Y)
//do more stuff
.endChoice() // close inner when block
.endChoice() // close inner choice block
.endChoice() // close first outer when
.when(X2)
// do other stuff
.endChoice() // close second outer when
.end() // close outer choice
これはCamelでこれを処理する方法ですか?それとも、私が欠けている簡単な方法がありますか?御時間ありがとうございます。
良いアドバイス、私も選択肢を入れないようにしています。あなたの同僚かあなたの未来の自己はあなたに感謝します;)。 – helpermethod