هيكل تطبيق Apache Karaf OSGi
-
11-12-2019 - |
سؤال
أحتاج إلى إنشاء تطبيق ونشره في Karaf.لكنني بحاجة إلى استخدام مكون الجمل ومكون جافا (فاصوليا الربيع البسيطة).يجب أن يكون التدفق كما يلي:
WebService(not matter for me) -> camel-component -> spring-bean -> camel-component -> WebService(not matter for me).
هذا مجرد توجيه بسيط.لكن ما أحتاجه هو بنية دليل حزمة OSGi التي يقبلها karaf وينشرها.
على سبيل المثال.أملك:
su-camel
-src
-main
-resources
-META-INF
xbean.xml (spring-bean)
-test
-java
-resources
su-bean
-src
-main
-java
-resources
-META-INF
xbean.xml (spring-bean)
-test
-java
-resources
أقوم بتعبئة كل شيء باستخدام maven، لذا ما هي بنية الدليل التي يجب أن أحتفظ بها في حزمة OSGi .jar
الملف الذي سيتم نشر التطبيق بشكل صحيح؟كما ترون هناك اثنان src
الدلائل في su-camel
الوحدة النمطية، و su-bean
وحدة.
أعلم أن Servicemix يقبل .zip
ملف يحتوي على جميع المكونات المضافة بالبنية الموضحة أعلاه.هل يدعم karaf بنية كهذه؟
المحلول
سيكون حل OSGi المناسب هو إنشاء حزمتين، واحدة لكل مشروع ونشرهما معًا.إذا كنت لا ترغب في القيام بذلك، يمكنك استخدام خاصية Embed-Dependency في بيان مشروعك لتضمين حزم التبعية (الجمل).سيؤدي هذا إلى إنشاء حزمة واحدة فقط لتتمكن من نشرها
نصائح أخرى
الحل الأبسط هو إنشاء حزمة واحدة فقط من الفول وطريق الجمل.عادة ليست هناك حاجة لفصل المسار عن الحبة.إذا كنت بحاجة إلى تقسيمها لسبب ما، فما عليك سوى استخدام حزمتين.
لتسهيل عملية النشر، يمكنك استخدام ملف ميزة karaf حيث تقوم بإدراج الحزمتين وفي النهاية تبعياتهما الإضافية.يدعم Karaf أيضًا ملفات .kar التي يمكن أن تحتوي على العديد من الحزم.تعد ملفات kar هي الطريقة التي يجب اتباعها إذا لم يتمكن خادم karaf من الوصول إلى الريبو المخضرم.