ใน Fabric8 วิธีที่ต้องการรับการเชื่อมต่อ ActiveMQ คือผ่าน mq -fabric โปรไฟล์ ซึ่งจัดเตรียมออบเจ็กต์ ActitveMQConnection ผ่าน Declarative Services ตัวอย่างนี้มีให้ใน GitHubซึ่งได้ผลดีทีเดียว
อย่างไรก็ตาม ฉันยังไม่พบวิธีสำหรับ Declarative Services และ Blueprint Services เพื่อทำงานร่วมกันใน Fabric8 (หรือสภาพแวดล้อม OSGI ใด ๆ จริงๆ) ดังนั้นแอปพลิเคชัน OSGI ของฉันต้องใช้ DS หรือพิมพ์เขียว การผสมทั้งสองอย่างดูเหมือนจะไม่ใช่ทางเลือก
หากคุณต้องการใช้พิมพ์เขียว (ซึ่งฉันทำ) คุณต้องสร้างนายหน้าผ่าน UI ของเว็บก่อน จากนั้นกลับไปที่คอนโซลแล้วพิมพ์ cluster-list ค้นหาพอร์ตที่ Fabric8 กำหนดให้กับ นายหน้าแล้วกำหนดค่าการเชื่อมต่อในพิมพ์เขียวดังนี้:
<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>
แม้ว่าวิธีนี้จะได้ผล แต่ก็ไม่เหมาะกับการใช้งานมากนัก เนื่องจากมีขั้นตอนที่ต้องดำเนินการด้วยตนเองบางขั้นตอนที่ฉันต้องการหลีกเลี่ยงหากเป็นไปได้ ปัญหาหลักคือฉันไม่รู้ว่าพอร์ตนั้นจะเป็นอย่างไร ฉันได้รวมไฟล์ปรับแต่งต่างๆ แล้วและไม่พบมันเลย
มีวิธีที่สะอาดกว่าและเป็นอัตโนมัติมากขึ้นในการรับการเชื่อมต่อ ActiveMQ ใน Fabric8 ผ่านพิมพ์เขียวหรือเราต้องใช้ Declarative Services หรือไม่