Koneksi ActiveMQ di Fabric8 menggunakan Blueprint, bukan DS

Di Fabric8, cara yang lebih disukai untuk mendapatkan koneksi ActiveMQ adalah melalui mq -fabric profile, yang menyediakan objek ActitveMQConnection melalui Layanan Deklaratif. Contohnya diberikan di GitHub, yang berfungsi dengan baik.

Namun, saya belum menemukan cara agar Layanan Deklaratif dan Layanan Cetak Biru dapat berkolaborasi di Fabric8 (atau lingkungan OSGI apa pun), oleh karena itu, aplikasi OSGI saya harus menggunakan DS atau cetak biru. Mencampur keduanya sepertinya bukan suatu pilihan.

Jika Anda ingin menggunakan cetak biru (yang saya lakukan), Anda harus terlebih dahulu membuat broker melalui UI web, lalu kembali ke konsol dan mengetik cluster-list, cari port yang ditetapkan Fabric8 ke broker dan kemudian konfigurasikan koneksi dalam cetak biru seperti:

<bean id="activemqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  <property name="brokerURL" value="tcp://mydomain:33056" />
  <property name="userName" value="admin" />
  <property name="password" value="admin" />
</bean>

Meskipun cara ini berhasil, cara ini tidak sepenuhnya ramah penerapan, karena melibatkan beberapa langkah manual yang ingin saya hindari jika memungkinkan. Masalah utamanya adalah saya tidak tahu port apa yang akan digunakan. Saya telah menyisir file konfigurasi dan tidak dapat menemukannya di mana pun.

Apakah ada cara yang lebih bersih dan otomatis untuk mendapatkan koneksi ActiveMQ di Fabric8 melalui cetak biru, atau haruskah kita menggunakan Layanan Deklaratif?


person Aston    schedule 10.06.2014    source sumber


Jawaban (1)


Menemukan solusi untuk masalah ini di fabric-camel-demo, yang mengilustrasikan cara membuat instance kacang ActiveMQConnectionFactory di Fabric8 melalui Blueprint.

<!-- use the fabric protocol in the brokerURL to connect to the ActiveMQ broker registered as default name -->
<!-- notice we could have used amq as the component name in Camel, and avoid any configuration at all,
as the amq component is provided out of the box when running in fabric -->
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="discovery:(fabric:default)"/>
    <property name="userName" value="admin"/>
    <property name="password" value="admin"/>
</bean>

Semoga ini membantu!

person Aston    schedule 11.06.2014