2010-11-11 8 views
5

ग्रहण बंडल (उदाहरण के लिए। सक्रियक कोड के भीतर) कैसे रनटाइम पर निर्भर बंडल उदाहरण ढूंढ सकता है? मैं उन बंडलों को ढूंढना चाहता हूं जो ग्रहण ने निर्भरता आवश्यकताओं को पूरा करने के लिए चुना है, मैं स्वयं को अभिव्यक्ति को समझना नहीं चाहता हूं।रनटाइम पर ग्रहण में निर्भर बंडल खोजें

एक उदाहरण: मैं उन सभी बंडलों में "marker.txt" नामक सभी संसाधनों को ढूंढना चाहता हूं जिन पर मेरा वर्तमान बंडल निर्भर करता है। इसके अलावा पारगमन निर्भरताएं भी। इसे पूरा करने के लिए मुझे इन सभी बंडलों को शुरू करने में सक्षम होना चाहिए। सांख्यिक आईडी

bundle <id> 

निर्भरता सहित अधिक जानकारी के पाने के लिए सहित बंडलों की सूची के लिए

ss 

,:

उत्तर

4

निर्भरता निर्धारित करने का कोई आसान तरीका नहीं है। पैकेजएडमिन इंटरफ़ेस के माध्यम से जाने का सबसे अच्छा तरीका है। पैकेजएडमिन के लिए ओएसजीआई स्पेक देखें और विशेष रूप से आयात करेंबंडल प्राप्त करें: http://www.osgi.org/javadoc/r4v42/org/osgi/service/packageadmin/ExportedPackage.html#getImportingBundles()

आपको सभी स्थापित बंडलों के लिए निर्धारित करने की आवश्यकता है, जो आपके बंडल आयात कर रहे एक या अधिक पैकेज निर्यात करते हैं। इसे प्राप्त करने का सबसे आसान तरीका पैकेजएडमिन.getExportedPackages (बंडल बंडल) बंडल = शून्य पर कॉल करना है। यह सभी निर्यात किए गए पैकेजों की एक सरणी देता है। इसके बाद आपको इस सरणी को फिर से चलाने की आवश्यकता है और ExportPackage.getImportingBundles() पर कॉल करें।

0

आप एक OSGi सांत्वना खोल सकते हैं और निम्नलिखित आदेश जारी।

तुम भी

help 

अधिक आदेशों

+1

वह इस प्रोग्रामेटिक रूप से करना चाहता है। –

1

प्राप्त करने के लिए कृपया this question करने के लिए अपने जवाब देखने के लिए प्रयास करना चाहिए। 4.3 में एक नया बंडल वायरिंग एपीआई होगा जो इस तरह की चीजों को अनुमति देगा।

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