هذا هو الأمر japicompat الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
japicompat - اختبار واجهات برمجة تطبيقات Java للتوافق الثنائي مع الإصدارات السابقة.
موجز
com.japicompat [-svqhtjw4] [-أو ملف خارجي] [-أنا تجاهل الملفات]
الوصف
com.japicompat هو جزء من japitools ، المصمم لاختبار التوافق بين واجهات برمجة تطبيقات Java.
لقد تم تصميمها في الأصل لاختبار التطبيقات المجانية لـ Java نفسها
التوافق مع JDK الخاص بشركة Sun، ولكن يمكن استخدامها أيضًا لاختبار التوافق مع الإصدارات السابقة
بين إصدارات أي API.
الأدوات هي japize وjapicompat. Japize هو برنامج Java يصدر قائمة بملفات
API بتنسيق يمكن قراءته آليًا. تقوم Japicompat بعد ذلك بأخذ قائمتين من هذا القبيل ومقارنتها
لهم من أجل التوافق الثنائي، كما هو محدد بواسطة Sun في مواصفات لغة Java.
OPTIONS
-s تعطيل عمليات التحقق من التوافق الثنائي الإضافية (فقط قم بإجراء عمليات التحقق المحددة بواسطة JLS).
-v تمكين عمليات التحقق من مشاكل التوافق البسيطة.
التحقق من SerialVersionUID: يُبلغ japicompat عن خطأ بسيط في حالة وجود فئة قابلة للتسلسل
يحتوي على SerialVersionUID مختلف بين الإصدارين.
التحقق من الإهمال: يُبلغ japicompat عن خطأ بسيط في حالة وجود فئة أو عضو
تم إهماله في واجهة برمجة التطبيقات الأصلية ولكن لم يتم إهماله في واجهة برمجة التطبيقات التي يتم التحقق منها.
-q تعطيل التقارير المرحلية.
-h يولد الإخراج بتنسيق HTML. تعتمد ملفات HTML المنتجة على japi.css
ملف للحصول على عرض تقديمي جذاب.
-t يولد الإخراج في تنسيق النص. هذا هو الافتراضي.
-j يولد المخرجات في شكل يمكن قراءته آليًا. يسمى التنسيق المنتج
يجب حفظ التنسيق "japio"، وبموجب الاتفاقية، بامتداد ملف ".japio".
يمكن استخدام الأدوات المساعدة japiotext وjapiohtml المستقلة لتحويل هذا التنسيق
إلى html أو نص (في الواقع، يستدعي japicompat japiotext أو japiohtml داخليًا إذا
يتم استخدام العلامات -h أو -t). يمكن أيضًا استخدام ملفات Japio مع العلامة -i to
دعم تجاهل الأخطاء الناجمة عن عدم التوافق بين إصدارات JDK.
-w تعطيل التحذيرات لتشغيل ملفات japi التي تجرها الدواب القديمة. بشكل افتراضي japicompat
سوف ينتج تحذيرات إذا تم تشغيلها على ملفات japi التي تم إنشاؤها في الأصل بواسطة أقدم
إصدارات japitools التي تحتوي على أخطاء معروفة لا يستطيع japifix إزالتها.
-4 استخدم الوضع المتوافق مع 1.4. يعمل هذا طالما أن واجهات برمجة التطبيقات المراد مقارنتها لا تحتوي على
1.5 العناصر فقط.
-o
إرسال الإخراج إلى بدلا من ستدوت. يعتمد تنسيق هذا الملف على
الأعلام -h و -t و -j.
-i
لنفترض أنك تحاول تنفيذ Java API. لديك (إلى حد كبير)
تغطية كاملة لإصدارات JDK المبكرة (1.0 و1.1) ولكن لا يزال لديها بعض منها
المسافة لتحقيق التغطية الكاملة 1.4 (وهذا وصف دقيق للجميع
تطبيقات Java للبرمجيات المجانية في وقت كتابة هذا التقرير). باستخدام japicompat ل
مقارنة تنفيذك مع JDK 1.4 تعطي نتائج دقيقة، لكنك قد تفعل ذلك أيضًا
تريد أن تظهر تغطيتك للإصدارات السابقة.
لسوء الحظ، لم تتبع Sun قواعد التوافق الثنائية الخاصة بها بين JDK
الإصدارات، ناهيك عن القواعد الموسعة التي تختبرها Japicompat. لذلك عند تشغيل ملف
بالمقارنة بين JDK 1.1 وتنفيذك، سوف تحصل على خطأ زائف
التقارير عندما تكون متوافقًا مع الإصدار 1.4 وليس 1.1.
من الواضح أن ما تريده حقًا هو تجاهل أخطاء مثل هذه وjapicompat
يوفر طريقة للقيام بذلك. أولاً، قم بإجراء مقارنة بين 1.1 و1.4 باستخدام -j
يُحوّل. ثم قم بإجراء المقارنة بين 1.1 والتنفيذ الخاص بك، وتمرير ملف
الخيار "-i" مع إخراج التشغيل السابق. على سبيل المثال:
$ japicompat -jo تجاهل-11-14.japio jdk11.japi.gz jdk14.japi.gz
$ japicompat -ho jdk11-myimpl.html -i تجاهل-11-14.japio jdk11.japi.gz
myimpl.japi.gz
يمكنك أيضًا الحصول على نفس التأثير عن طريق تشغيل:
$ japicompat -ho jdk11-myimpl.html -i jdk14.japi.gz jdk11.japi.gz myimpl.japi.gz
من الواضح أن هذا أسهل وأسرع في الكتابة، ولكنه يتطلب المقارنة بينهما
سيتم تشغيل jdk11 و jdk14 في كل مرة. يسمح لك إنشاء ملف japio يدويًا
ليتم حفظه واستخدامه مرة أخرى في المرة القادمة، مما يتيح تشغيل japicompat
مرتين بسرعة.
ملفات japi المقابلة لواجهات برمجة التطبيقات المراد مقارنتها.
يختبر japicompat على وجه التحديد أن الوسيطة الثانية متوافقة مع الإصدارات السابقة
مع الأول. لذلك، فإن التنفيذ المثالي لـ JDK 1.1 لن ينتج عنه أي شيء
الأخطاء بغض النظر عن ترتيب الوسائط، ولكن التنفيذ المثالي لـ
يجب اختبار JDK1.1 بالإضافة إلى أجزاء من JDK1.2 على النحو التالي:
$ japicompat jdk11.japi.gz myimpl.japi.gz
$ japicompat myimpl.japi.gz jdk12.japi.gz
ربما يكون من المستحيل تنفيذ تطبيق يجتاز هذين الاختبارين،
نظرًا لأن JDK1.2 الخاص بشركة Sun ينتج العديد من الأخطاء عند اختباره مقابل JDK1.1. انظر
مناقشة الخيار -i أعلاه للحصول على طريقة للتعامل مع هذا الموقف.
يمكن تمرير الملفات المضغوطة (.japi.gz) أو غير المضغوطة (.japi) إليها
japicompat: يُستخدم امتداد الملف لتحديد ما إذا كان سيتم إدخال توجيه الإخراج أم لا
من خلال gzip أم لا.
استخدم japicompat عبر الإنترنت باستخدام خدمات onworks.net