আপনার নতুন প্যাকেজড লাইব্রেরি পুরানো সংস্করণ সহ পিছনে বাইনারি সামঞ্জস্যপূর্ণ (বিসি) নয়। এই কারণে গ্রন্থাগারের কিছু ক্লায়েন্ট যা পুনরায় সংকলিত হয় না তার ব্যতিক্রম ছুঁড়ে ফেলতে পারে।
এটি জাভা লাইব্রেরি এপিআই-তে পরিবর্তনের সম্পূর্ণ তালিকা যা গ্রন্থাগারের পুরাতন সংস্করণে নির্মিত ক্লায়েন্টদের জাভা.লাং ফেলে দিতে পারে। বেমানান ক্লাস চ্যাঞ্জেরর যদি তারা কোনও নতুন (যেমন বিসি ভাঙা) চালায়:
- চূড়ান্ত নয় এমন ক্ষেত্র স্থির হয়ে ওঠে,
- অ-ধ্রুবক ক্ষেত্রটি স্থির হয় না,
- ক্লাস ইন্টারফেস হয়ে ওঠে,
- ইন্টারফেস ক্লাস হয়ে,
- আপনি যদি ক্লাস / ইন্টারফেসে একটি নতুন ক্ষেত্র যোগ করেন (বা নতুন সুপার-ক্লাস / সুপার ইন্টারফেস যুক্ত করেন) তবে ক্লায়েন্ট শ্রেণি সি এর একটি সুপার ইন্টারফেস থেকে একটি স্ট্যাটিক ক্ষেত্র উত্তরাধিকার সূত্রে প্রাপ্ত একটি যুক্ত ক্ষেত্র (একই নামে) আড়াল করতে পারে সি এর সুপার-ক্লাস (খুব বিরল কেস)।
নোট : অনেক আছে অন্যান্য ব্যতিক্রম : অন্যান্য বেমানান পরিবর্তন দ্বারা সৃষ্ট NoSuchFieldError , NoSuchMethodError , IllegalAccessError , InstantiationError , VerifyError , NoClassDefFoundError এবং AbstractMethodError ।
বিসি সম্পর্কে আরও ভাল কাগজটি হ'ল জিম ডেস রিভিয়ারস দ্বারা লিখিত "বিবর্তিত জাভা-ভিত্তিক এপিআই 2: অ্যাভিভিং এপিআই বাইনারি সামঞ্জস্যতা" ।
এ জাতীয় পরিবর্তনগুলি সনাক্ত করার জন্য কিছু স্বয়ংক্রিয় সরঞ্জাম রয়েছে :
আপনার লাইব্রেরির জন্য জাপি-কমপ্লায়েন্স-পরীক্ষকের ব্যবহার:
japi-compliance-checker OLD.jar NEW.jar
ক্লিরার সরঞ্জামের ব্যবহার:
java -jar clirr-core-0.6-uber.jar -o OLD.jar -n NEW.jar
শুভকামনা!