2009-10-03 12 views
5

में tools.jar (सूर्य जेडीके) से com.sun.javadoc पर निर्भर करता है हमारे प्लगइन में से एक को केवल एक जेआरई नहीं, एक स्थापित जेडीके की आवश्यकता होती है। हमें com.sun.javadoc और tools.jar से दोस्तों की ज़रूरत है। मुझे नहीं लगता कि सूर्य का लाइसेंस पुनर्वितरण उपकरण को अनुमति देगा .jar (यदि आपके पास पहले से ही जेडीके है तो जरूरी नहीं है)।eclipse

ऐसा लगता है कि एक्लिप्स में एक निर्भरता के रूप में एक जेडीके निर्दिष्ट करने का कोई तरीका नहीं है। ग्रहण न्यूज ग्रुप में सभी उत्तरों का सुझाव है कि अंतिम उपयोगकर्ताओं को पहले अपने ग्रहण को ठीक से कॉन्फ़िगर करना होगा।

क्या आप किसी भी कामकाज को जानते हैं जो निर्भरता के लिए ग्रहण के ऑन-बोर्ड तंत्र का उपयोग करके पर निर्भर करता है, यह निर्भरता पर निर्भर करता है? ऐसा लगता है कि यह पैकेज मैनिफेस्ट में Import-Package के लिए भी मान्य नहीं है, उदा। com.sun.jdi।

, (एक काम के आसपास के रूप में, वर्तमान में हम केवल प्लगइन सक्रियण पर चेतावनी दे सकता है कि इस पुस्तकालय याद आ रही है।)

+0

नोट (http://www.nabble.com/Question-on-%22org.osgi.framework.system.packages%22-td22936822.html), ओएसजीआई आर 4.2 (इक्विनोक्स 3.5 में लागू) में हमारे पास है जोड़ा गया एक नई संपत्ति ('org.osgi.framework.system.packages.extra') जो कि वीएम से ढांचे के निर्धारण के लिए अधिक पैकेज जोड़ने के लिए उपयोग किया जा सकता है, लेकिन वर्तमान में कोई" बहिष्कृत "संपत्ति नहीं है। यह भी देखें http://www.mail-archive.com/[email protected]/msg02719.html – VonC

+0

http://docs.codehaus.org/display/JETTY/OSGi+Tips (config.ini देखें) विषुव ढांचा) – VonC

+0

अनुरोध के अनुसार, 'org.osgi.framework.system.packages' घोषणा के लिए घोषणा के फ़ाइल (आपके टुकड़े की config.ini) में बस मेरे जवाब में जोड़ा गया। – VonC

उत्तर

2

के बाद से ग्रहण एक OSGi वातावरण प्रदान करता है आप लेख "Exposing the boot classpath in OSGi" का उल्लेख सकता है, और उपयोग करने का प्रयास :

  • एक सिस्टम संकुल घोषणा
  • एक एक्सटेंशन बंडल (टुकड़ा) घोषणा
  • या बूट प्रतिनिधिमंडल

आपको आवश्यक जेडीके पैकेज निर्दिष्ट करके, ओएसजीआई ढांचा उन्हें लोड करने का प्रयास करेगा (और अगर यहां नहीं है तो विफल हो जाएंगे)।
जेडीके 5 या जेडीके 6 के लिए एक विशिष्ट निर्दिष्ट करके, आप जेडीके का सही संस्करण भी सुनिश्चित कर सकते हैं।

OSGi कल्पना फ्रेमवर्क (अपनी प्रणाली बंडल के माध्यम से) org.osgi.framework.system.packages संपत्ति का उपयोग कर प्रणाली संकुल के रूप में अपनी मूल वर्ग लोडर से किसी भी प्रासंगिक संकुल निर्यात करने के लिए अनुमति देता है।
होस्टिंग JDK को बंडल के रूप में होस्ट करने के रूप में एक व्यवहार्य विकल्प नहीं है, कोई भी इस सेटिंग का उपयोग सिस्टम बंडल (या आईडी 0 के साथ बंडल) को इन पैकेजों को निर्यात करने के लिए कर सकता है।
अधिकांश ओएसजीआई कार्यान्वयन पहले से ही इस संपत्ति का उपयोग सभी सार्वजनिक जेडीके पैकेज (ज्ञात जेडीके संस्करण के आधार पर) को निर्यात करने के लिए करते हैं।

org.osgi.framework.system.packages = \ 
    javax.accessibility,\ 
    javax.activity,\ 
    javax.crypto,\ 
    javax.crypto.interfaces,\ 
    … 
    org.xml.sax.helpers 

इस संपत्ति का उपयोग करना, एक अतिरिक्त संकुल है कि लोड किया जाएगा और ढांचे द्वारा प्रदान की और कहा कि अन्य बंडलों में तार कर किया जा सकता है जोड़ सकते हैं: नीचे जावा 1.6 के लिए एक विषुव विन्यास फाइल से एक टुकड़ा है ।

org.osgi.framework.system.packages = \ 
    javax.accessibility,\ 
    javax.activity,\ 
    … 
    org.xml.sax.helpers, \ 
    special.parent.package 

नोट: Bundle-RequiredExecutionEnvironment निर्दिष्ट करने के सरल समाधान केवल JRE, नहीं JDK के लिए है ...


विन्यास इस तरह का config का हिस्सा बनने की जरूरत है Equinox ढांचे की .ini (this example for Jetty और इसके config.ini देखें)।
आपके मामले में, यह आपके टुकड़े की config.ini में घोषित किया जाएगा।

+0

धन्यवाद, यह निश्चित रूप से सही दिशा में जाना प्रतीत होता है। अब मुझे यह पता लगाने की जरूरत है कि इस तरह के टुकड़े कैसे प्रदान करें। आपको नहीं पता होगा कि 'org.osgi.framework.system.packages' कहां जाना होगा? – ShiDoiSi