एक OSGi सेवा का एक उदाहरण एक बार बंडल संदर्भ से लिया गया है है यह अवैध हो जाते हैं जब सेवा बंद कर दिया है?
नहीं, संदर्भ स्वयं ही अमान्य नहीं होता है। जब तक कंटेनर में कुछ ऐसा हो रहा है, तब तक यह जीसी'एड भी नहीं हो सकता है।
हालांकि, यह अभी भी उपयोगी होगा या नहीं, केवल सेवा कार्यान्वयन पर ही निर्भर करता है, न कि कंटेनर।
मेरे शुरुआती परीक्षण बताते हैं कि सेवा उदाहरण का उपयोग सेवा बंडल के बाद भी किया जा सकता है> रोक दिया गया है, जो ओएसजीआई की गतिशील प्रकृति की मेरी समझ के विपरीत है।
विनिर्देश स्वयं ही इंगित करते हैं कि ऐसे संदर्भ नहीं होने चाहिए, लेकिन यह विनिर्देशकों पर निर्भर करता है कि वे विनिर्देशों को सही ढंग से कार्यान्वित करने के लिए सावधानी बरतें; इसका मतलब है कि कोई विरोधाभास नहीं है, केवल यही तथ्य है कि आप उन बंडलों को लागू और तैनात कर सकते हैं जो विनिर्देशों के अनुसार सही तरीके से व्यवहार नहीं करते हैं।
मैं यह है कि क्या OSGi कंटेनर में एक और बंडल से एक सेवा को पुन: प्राप्त (ServiceTracker के माध्यम से) वास्तव में है, यह एक नया उदाहरण पैदा नहीं करता करने पर निर्भर करता है या यह आप उदाहरण है कि करने के लिए एक सूचक देता है लगता है कंटेनर में पंजीकृत है?
कंटेनर सेवा के नए उदाहरण नहीं बनाता है, सिवाय इसके कि कोई सर्विसफैक्टरी शामिल है (चश्मा देखें)। एक सेवा की तलाश में हमेशा आपको कंटेनर में पंजीकृत उदाहरण के लिए एक सूचक होना चाहिए।
सेवा बंद होने के बाद सेवा उदाहरण का उपयोग करने में कोई खतरा है?
यह केवल सेवा कार्यान्वयन पर निर्भर करता है; हालांकि, एक बंडल में ऐसा करके, आप स्वचालित रूप से एक बंडल बनाते हैं जो चश्मा के अनुरूप नहीं है।
प्रैक्टिस में, संसाधनों और संदर्भों को जारी करने के लिए कई सेवाएं लागू की जाती हैं और अब ठीक से प्रतिक्रिया नहीं देगी।
धन्यवाद, दुर्भाग्य से एक निश्चित नहीं हाँ या के रूप में मैं आशा व्यक्त की थी नहीं! –