[java] प्रोग्रामेटिक रूप से ओएसजीआई (विषुव) शुरू करें?


0 Answers

यह धागा थोड़ा सा हो सकता है, लेकिन वैसे भी ...

पैक्स में मैवेन यूआरएल के लिए उत्कृष्ट समर्थन है, यहां तक ​​कि एक लपेटने वाला यूआरएल हैंडलर भी आपको गतिशील रूप से गैर-ओग्सी जार को अच्छी साफ-सुथरे बंडलों में परिवर्तित करने की इजाजत देता है।

http://wiki.ops4j.org/display/paxurl/Mvn+Protocol

    <dependency>
        <groupId>org.ops4j.pax.url</groupId>
        <artifactId>pax-url-wrap</artifactId>
        <version>1.2.5</version>        
    </dependency>
    <dependency>
        <groupId>org.ops4j.pax.url</groupId>
        <artifactId>pax-url-mvn</artifactId>
        <version>1.2.5</version>        
    </dependency>

आदेश तब होगा:

install -s mvn:groupId:artifactId:version:classifier

नोट: चिकन-अंडे परिदृश्य - आपको इन्हें फ़ाइल का उपयोग करके इंस्टॉल करना होगा: यूआरएल हैंडलर पहले या उन्हें एक ऑटोोडोल्ड निर्देशिका में डाल दें।

करफ ने यह सब अपने विचलन में बनाया है, तो हो सकता है कि करफ लॉन्चर स्रोत पर नज़र डालें?

दूसरा नोट: स्नैपशॉट्स को तैनात करना रेपो यूआरएल में @ स्नैपशॉट्स को जोड़कर सक्षम है, कॉन्फ़िगरेशन को ConfigAdmin के माध्यम से प्रबंधित किया जाता है

अपने सभी पीओएम परिभाषित निर्भरताओं के प्रबंधन के मामले में कराफ सुविधाओं पर एक नज़र डालें - एक प्लगइन है जो एक एक्सएमएल फ़ाइल बनाने में सक्षम होगी जिसका उपयोग तब आपके पूरे ऐप को तैनात करने के लिए किया जा सकता है: http://karaf.apache.org/manual/2.1.99-SNAPSHOT/developers-guide/features-maven-plugin.html

इसके अलावा यह एक्सएमएल आर्टिफैक्ट आपके ओबीआर में तैनात किया जा सकता है, ताकि आप एक वेनिला फेलिक्स / इक्विनोक्स / करफ सेटअप ले सकें, एमवीएन यूआरएल हैंडलर जोड़ें और अपनी कंपनी के एमवीएन रेपो के साथ कॉन्फ़िगर करें और फिर पूरे ऐप को प्रावधान करें =)

Question

मैं आसानी से ओएसजीआई फ्रेमवर्क (अधिमानतः विषुव) शुरू करने और जावा मुख्य से अपने पोम में सूचीबद्ध किसी भी बंडल को लोड करने में सक्षम होना चाहता हूं।

क्या यह संभव है? यदि हां, तो कैसे?

ऐसा लगता है जैसे पैक्स उपकरण ऐसा करेंगे, लेकिन मुझे ऐसा कोई दस्तावेज नहीं दिख रहा है। मुझे पता है कि मैं इस तरह विषुव शुरू कर सकता हूं:

BundleContext context = EclipseStarter.startup( ( new String[] { "-console" } ), null );

लेकिन मैं और अधिक करना चाहता हूं - जैसे मैंने कहा: अधिक बंडलों को लोड करें, शायद कुछ सेवाएं शुरू करें, इत्यादि।






Related