2010-07-13 15 views
8

मैं जावा ऐप में रनटाइम के दौरान एक इंटरफ़ेस के सभी कार्यान्वयन को खोजना चाहता हूं, और जेएआर फ़ाइलों से गतिशील रूप से उन वर्गों को लोड करना चाहता हूं जो उपयोगकर्ता किसी फ़ोल्डर में जोड़ सकते हैं। यह मूल रूप से एक प्लग-इन सिस्टम है। मैं कुछ है कि हो सकता है एनोटेशन के साथ काम करता है, या सिर्फ एक अंतरफलक है कि बढ़ा दिया गया है के लिए लग रहा है करना चाहते हैं, बिना: - यह बहुत लचीला नहीं हैसरल जावा सेवा खोज ढांचा

  • उपयोग एसपीआई:

    मैं इस के लिए कुछ समाधान पाया बाहरी पाठ फ़ाइलों को भी जोड़ना है।

  • उपयोग Commons Discovery -, बंद रास्ते की तरह लग रहा है के रूप में अंतिम रिलीज 2005
  • में पीछे से 0.4 है प्रयोग Java Simple Plugin Framework. 5 minutes and it works. No XML. - यह बहुत ही अपरिपक्व तरह दिखता है।

क्या इसके लिए कोई अन्य व्यापक रूप से उपयोग किया जाने वाला समाधान है?

अद्यतन: कोड अलगाव की कोई आवश्यकता नहीं है, और ओएसजीआई अभी मेरी सरल आवश्यकताओं के लिए बहुत जटिल प्रतीत होता है। मैंने अपने इरादों को स्पष्ट करने के लिए इस प्रश्न के शीर्षक पर "सरल" भी जोड़ा।

+0

ओएसजीआई इस तरह की समस्याओं को हल कर सकता है और इसके अलावा मॉड्यूल अलग रखने के तरीकों को भी प्रदान करता है। यदि आपके पास प्लग-इन हैं जो अन्य पुस्तकालयों पर निर्भरता रखते हैं तो महत्वपूर्ण होगा। – Jesper

उत्तर

4

यह भारी तरफ थोड़ा है, लेकिन आप पर विचार करना चाहिए Apache Felix या Eclipse Equinox, दोनों OSGi कार्यान्वयन करना, जिससे बहुत ज्यादा जीवित और लात, लेकिन संभवतः अपनी आवश्यकताओं के लिए overkill रहे हैं। हालांकि, यह उन समस्याओं में से एक है जिसे ओएसजीआई को हल करने के लिए डिज़ाइन किया गया है।

0

@skaffman की तरह, ओएसजीआई और आधुनिक कार्यान्वयन पर एक आदर्श समाधान की तरह लगता है। यदि आप गॉइस बैंडवागन पर हैं, तो iPOJO पर विचार करें, जो ओएसजीआई स्टैक में एनोटेशन को पूरी तरह से शामिल करता है (किसी भी ओएसजीआई प्लेटफॉर्म पर आईपीओजेओ काम करता है)। यदि आप एक्सएमएल/स्प्रिंग बैंडवैगन में अधिक हैं, तो Blueprint का उपयोग करने पर विचार करें।

अंत में, जेएसपीएफ पर विचार करते हुए, मैं आपकी अपरिपक्वता के बारे में आपकी राय साझा नहीं करूंगा। उस परियोजना पर थोड़ा सा सहयोग करने के बाद, मुझे यह वास्तव में अपने क्षेत्र में उपयोगी लगता है, क्योंकि यह आसान प्लगइन उपयोग की अनुमति देता है, बिना परेशानी और क्लासपाथ सेपरियन जो ओएसजीआई प्रदान करता है।

+0

क्या आप जेएसपीएफ के एक साधारण उदाहरण के लिए एक लिंक पोस्ट कर सकते हैं? मैं उस ढांचे का उपयोग करने की कोशिश कर रहा हूं, लेकिन मैं वास्तव में समझ नहीं पा रहा हूं कि विकल्प सुविधा कैसे काम करती है। – capovawi

0

+1 एसपीआई - यह हल्का वजन है, थोड़ी सी रखरखाव (सेवाएं/* टेक्स्ट फाइलें) लेकिन जावा के क्लासलोडर किसी भी "ऑटोोडिसवरी" का काम 100% विश्वसनीय नहीं होने वाला है; आप एक साधारण प्रोग्राम के साथ पाठ फ़ाइलों की परेशानी को कम कर सकते हैं, जो किसी दिए गए प्रोजेक्ट/निर्देशिका के लिए उत्पन्न करता है और/या (मैं अनुशंसा करता हूं) परीक्षण करता है कि सभी कार्यान्वयन शामिल हैं

+2 ओएसजीआई - यदि आप जाने के इच्छुक हैं वेल्टरवेट, और नोट कार्यान्वयन हल्का और आसान हो रही है (उनमें से कम से कम कुछ!)

1

आप अपाचे नदी (पूर्व Jini) की सेवा खोज की कोशिश कर सकते

http://river.apache.org/

यह एक से सेवाओं को पता चलता है रिमोट इंटरफ़ेस और आपके लिए प्रॉक्सी डाउनलोड करता है, जो शीर्ष रूप से एक आरएमआई स्टब है।

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