سؤال

هل من الممكن (وإذا كان الأمر كذلك ، آمن) تعديل بيان الحزمة في أي وقت خلال دورة حياتها (أي يفترض فقط بين التثبيت والحل).

أعتقد أن هناك طريقة أخرى لطرح السؤال ،

بعد التثبيت ، ولكن قبل الحل ، هل تم بالفعل تقييم MANIFEST بالكامل (أي سيتم تجاهل التغييرات الأخرى) مما يجعل تغييره متأخرًا جدًا؟

إذا كان كل ما سبق يبدو سخيفًا .. فسيكون سؤالي التالي هو ، هل يعتقد أي شخص أنه من الممكن (بدون اختراق إطار العمل السيئ) التفاف دقة MANIFEST (أي خطوة أداة تحميل الفصل للحصول على META-INF / MANIFEST. MF من حزمة) مع أداة مخصصة.

الخلفية: ضع في اعتبارك إطار عمل نمطي حالي ، لا يعتمد على OSGi ، وأود تبسيط الترحيل ، نحو OSGi ، من خلال تقديم القدرة على نشر نغمة "المكونات الإضافية" الحالية بدون تعديل ، وفي وقت التشغيل ، قم بإجراء تحليل ("المكونات الإضافية" محددة جيدًا لذا لا ينبغي أن يكون التعيين صعبًا) والذي يحولها إلى حزم OSGi حقيقية ، باستخدام عمليات وقت تشغيل BND لإنشاء بيان يمكن استخدامه بدلاً من يحتمل أن يكون غير موجود أو لا يحتوي على قائمة بيانات.

أتمنى أن يكون هذا منطقيًا (njbartlett!)

هل كانت مفيدة؟

المحلول

لماذا لا تحدد نظام عنوان URL الذي يغير البيان كجزء من عملية التثبيت / التحديث؟عندما يصل إطار العمل إلى الحزمة عبر URLConnection الخاص بك ، يمكنك إرجاع حزمة متغيرة مع البيان المتحور.هذا هو ما يفعله دعم حزمة الويب ويجب أن يعمل معك أيضًا.

نصائح أخرى

لا ، لا يمكنك فعل ذلك.تتم قراءة ملف JAR بالكامل (وبالتالي MANIFEST.MF) أثناء عملية التثبيت.لتغيير أي شيء في JAR ، يجب عليك إما تحديث الحزمة أو إلغاء التثبيت والتثبيت مرة أخرى.

فيما يتعلق بما تريد فعله بالفعل ، لماذا لا يمكنك فقط إجراء التحليل والتحول من خلال bnd قبل تثبيت JAR كحزمة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top