2012-07-13 13 views
5

मेरे पास एक टुकड़ा बंडल है जिसे मैंने दूसरी पार्टी की जार में कुछ अतिरिक्त कार्यक्षमता तक पहुंचने के लिए बनाया है। मेरे टुकड़े को इस नई कार्यक्षमता का पर्दाफाश करने के लिए एक सेवा पंजीकृत करनी चाहिए। यह काम नहीं लग रहा है। समस्या निवारण में गहराई से पहले, मैं जानना चाहता हूं कि यह भी अनुमति है या नहीं? यही है, फेलिक्स एससीआर का बंडल वॉचर टुकड़े को देख या अनदेखा करता है?क्या ओएसजीआई खंड बंडल एक घोषणात्मक सेवा प्रकाशित कर सकता है?

उत्तर

8

आह, मुझे अपने आप को spec में जवाब मिला, खंड 112.4.2: "एक खंड में निर्दिष्ट एक सेवा-घटक प्रकट शीर्षलेख एससीआर द्वारा अनदेखा किया जाता है।" यह 3.14.3 के अनुरूप है: "निम्नलिखित सूची में हेडर शामिल हैं जिनका उपयोग किसी खंड बंडल में नहीं किया जाना चाहिए: बंडल-एक्टिवेटर"

+1

भी देखें http://stackoverflow.com/questions/8592860/component-inside-a-fragment-never-activated है, जो इस बात की पुष्टि है कि तुम क्या सिर्फ इतना कहा, लेकिन जोड़ा जानकारी के साथ कि ब्लूप्रिंट टुकड़ों के लिए काम करता है। –

2

हां। लेकिन मेजबान बंडल इसके लिए खुला होना चाहिए। खुलेपन से, मेरा मतलब है कि मेजबान बंडल में Service-Components हेडर कॉन्फ़िगर किया जाना चाहिए ताकि खंड में किसी भी वर्णनकर्ता पाए जाएंगे। उदाहरण के लिए:

Service-Components: OSGI-INF/*.xml 

मेजबान बंडल सभी संलग्न टुकड़े की OSGi-INF/ फ़ोल्डर में सभी .xml फ़ाइलें मिल जाएगा।

मैंने देखा कि एक्लिप्स स्मार्टहोम प्रोजेक्ट ने अपने यूआई को और अधिक अनुकूलन करने के लिए इस समाधान का उपयोग किया है।

अधिक जानकारी: http://apache-felix.18485.x6.nabble.com/DS-amp-fragments-td5004610.html

संबंधित मुद्दे