ショートバージョン:CamelContext
単一のJettyサーバーが着信リクエストを個別のバンドルにルーティングできるように
、個別のOSGiバンドル(サポートするプロセスを含む)で定義された複数のCamelルートを単一に共有/マージする方法はありますか?
背景: 実際の要件は機密であるため、これは架空の要件です...
私はウェブサイト用のモジュラー API バックエンドを構築しています。最初のフェーズでは単純な顧客登録を実装し、2 番目のフェーズではフォーラムのようなシステムを実装し、3 番目のフェーズでは wiki のようなシステムを実装します。各システムの開発が完了すると、他のコンポーネントを変更したり (理想的には) システムをオフラインにしたりせずに、新しいシステムを API バックエンドに追加できる必要があります。
このようなものを実装しようとして、私は各 API システムを独自の OSGi バンドルに入れ、Camel と Jetty を使用して着信 API 要求を処理し、各システムが jetty ベース URL の下にパスを登録し、それ宛てのメッセージを受信することを考えました。 Camelルーティングメカニズムから。この設計で問題が発生しました。各バンドルでルートを構成すると、それらは別々CamelContext
の で動作するため、最初のバンドルは実行されますが、2 番目のバンドルは同じポートで別の Jetty サーバーを生成しようとして失敗します。
RouteBuilder
次に、既存の「マスター」CamelContext
( suspend
、addRoutes
、 )を取得して追加する OSGi サービスを作成しresume
ます。マスターCamelContext
は個別の API バンドル内のサービス/プロセスを認識しないため、これは機能しません。また、XML ベースの構成も許可されていません。
私は問題を解決するさまざまな方法を受け入れます。