प्रोजेक्ट Jigsaw का उद्देश्य
Jigsaw प्रोजेक्ट का प्राथमिक उद्देश्य Java 9 में मॉड्यूल बनाने के लिए मॉड्यूलरिटी अवधारणा पेश करना और फिर उसी को JDK पर लागू करना है।
मॉड्यूलरिटी (Jigsaw) के लाभ
- मजबूत एनकैप्सुलेशन: मॉड्यूल केवल उन हिस्सों तक पहुंच सकते हैं जो उपयोग के लिए उपलब्ध हैं। जब तक पैकेज को module-info.java फाइल में स्पष्ट रूप से निर्यात नहीं किया जाता, पैकेज में पब्लिक क्लासेस पब्लिक नहीं हो सकतीं।
- स्पष्ट निर्भरताएं: एक मॉड्यूल को आवश्यक क्लॉज के माध्यम से उन अन्य मॉड्यूल्स की घोषणा करनी चाहिए जिनका वे उपयोग करते हैं। मॉड्यूल्स को बिल्ड-टाइम, कंपाइल-टाइम या रनटाइम पर संक्षिप्त रनटाइम बनाने के लिए जोड़ा जाता है जिसे तुलनात्मक रूप से छोटे कंप्यूटिंग डिवाइसेज पर आसानी से स्केल किया जा सकता है।
- विश्वसनीय: रनटाइम त्रुटियों के उन्मूलन के बाद, एप्लिकेशन अधिक विश्वसनीय हो जाता है। उदाहरण के लिए, हमें ध्यान देना चाहिए कि हमारे एप्लिकेशंस गायब क्लासेस के कारण रनटाइम के दौरान विफल होते हैं जिसके परिणामस्वरूप ClassNotFoundException होता है।
Jigsaw प्रोजेक्ट का हिस्सा विभिन्न JEPs (JDK एनहांसमेंट प्रपोजल)
- JEP 200 - मॉड्यूलर JDK: Java Platform Module System (JPMS) का उपयोग JDK को मॉड्यूल्स के एक सेट में मॉड्यूलराइज़ करने के लिए करता है जिन्हें बिल्ड-टाइम, कंपाइल-टाइम या रनटाइम पर जोड़ा जा सकता है।
- JEP 201 - मॉड्यूलर सोर्स कोड: JDK के सोर्स कोड को मॉड्यूल्स में मॉड्यूलराइज़ करता है और मॉड्यूल्स को कंपाइल करने के लिए बिल्ड टूल्स को अपग्रेड करता है।
- JEP 220 - मॉड्यूलर रनटाइम इमेजेस: मॉड्यूल्स को समायोजित करने के लिए JRE और JDK रनटाइम इमेजेस को पुनर्गठित करने में मदद करता है, सुरक्षा, प्रदर्शन, और रखरखाव में सुधार करता है।
- JEP 260 - अधिकांश आंतरिक APIs को एनकैप्सुलेट करें: अधिकांश आंतरिक APIs को सीधे या रिफ्लेक्शन के माध्यम से एक्सेस करने की अनुमति देता है। आंतरिक APIs को एक्सेस करना काफी जोखिम भरा है जो बदलने के लिए बाध्य हैं। उपयोग को रोकने के लिए, मॉड्यूल्स में संकुचित और केवल वे आंतरिक APIs उपयोग के लिए उपलब्ध हैं।
- JEP 261 - मॉड्यूल सिस्टम: JVM, Java प्रोग्रामिंग भाषा, और अन्य मानक APIs को बदलकर मॉड्यूल सिस्टम Java विनिर्देश को कार्यान्वित करने के लिए जिम्मेदार।
- JEP 282 - Jlink, द Java लिंकर: मॉड्यूल्स और उनकी निर्भरताओं को छोटे रनटाइम्स में पैक करने की अनुमति देता है।
प्रोजेक्ट Jigsaw Java प्लेटफॉर्म में मॉड्यूलरिटी लाता है, जिससे स्केलेबिलिटी, सुरक्षा, और रखरखाव में सुधार होता है।