
CVE-2019-14900
Hibernate ORM هي مكتبة توفر دعمًا لرسم الخرائط الكائني/العلائقي (ORM) للتطبيقات والمكتبات والأطر البرمجية.
كما توفر تنفيذًا لمواصفة JPA، وهي المواصفة القياسية لجافا الخاصة بـ ORM.
هذا هو مستودع شيفرتها المصدرية: راجع Hibernate.org للحصول على معلومات إضافية.
يتطلب البناء توفّر JDK لجافا 8 في JAVA_HOME.
ستحتاج إلى Git للحصول على المصدر.
تستخدم Hibernate Gradle كأداة بناء. راجع قسم مدخل إلى Gradle أدناه إذا كنت جديدًا على Gradle.
يجب على المساهمين قراءة دليل المساهمة.
راجع الأدلة الخاصة بإعداد IntelliJ أو Eclipse كبيئة تطوير لك.
اطّلع على قسم البدء في CONTRIBUTING.md لبدء العمل على الشيفرة المصدرية لـ Hibernate.
تستخدم Hibernate Jenkins لتلبية احتياجاتها من التكامل المستمر (CI). يُبنى المشروع باستمرار مع كل عملية دفع إلى المستودع الرئيسي. بشكل عام، هناك عدد من الوظائف المختلفة، يمكن الاطلاع على جميعها في http://ci.hibernate.org/view/ORM/
يصف هذا القسم بعض الأساسيات التي قد يحتاج المطورون والمساهمون الجدد في Gradle إلى معرفتها ليصبحوا منتجين بسرعة. توثيق Gradle مُتقن جدًا؛ وهناك وثيقتان على وجه الخصوص لا غنى عنهما:
للمساهمين الذين لا يستخدمون Gradle في الأساس ولا يريدون تثبيته، يقدم Gradle ميزة رائعة
تسمى الغلاف (Wrapper). تتيح لك تشغيل عمليات بناء Gradle دون توزيعة Gradle مثبتة مسبقًا
وبطريقة لا تتطلب أي إعدادات (zero-conf). تقوم Hibernate بإعداد غلاف Gradle نيابةً عنك. إذا كنت تفضل استخدام الغلاف
وعدم تثبيت Gradle (أو لضمان استخدام إصدار Gradle المخصص للبناءات الأقدم)، فما عليك سوى استخدام
الأمر gradlew (أو gradlew.bat) بدلاً من gradle (أو gradle.bat) في المناقشات التالية.
لاحظ أن gradlew متاح فقط في الدليل الجذر للمشروع، لذا اعتمادًا على دليل العمل الخاص بك قد تحتاج
إلى تعديل المسار إلى gradlew أيضًا.
تستخدم الأمثلة صيغة gradle، ولكن ما عليك سوى استبدال gradle بـ gradlew (بمسار نسبي صحيح) إذا كنت ترغب في استخدام
الغلاف.
سبب آخر لاستخدام gradlew هو أنه يستخدم الإصدار المحدد من Gradle الذي صُمم البناء ليعمل به.
يستخدم Gradle مفهوم مهام البناء (المكافئة لأهداف Ant أو مراحل/أهداف Maven). يمكنك الحصول على قائمة بالمهام المتاحة عبر
gradle tasks
لتنفيذ مهمة عبر جميع الوحدات، ما عليك سوى تنفيذ تلك المهمة من الدليل الجذر. سيزور Gradle كل مشروع فرعي وينفذ تلك المهمة إذا كان المشروع الفرعي يعرّفها. لتنفيذ مهمة في وحدة معينة يمكنك إما:
cd للانتقال إلى دليل تلك الوحدة وتنفيذ المهمةgradle hibernate-core:testيمكن إجراء الاختبار على قاعدة بيانات محددة بطريقتين مختلفتين:
قريبًا...
يعرّف بناء Hibernate عدة «ملفات تعريفية» (profiles) لاختبار قواعد البيانات في databases.gradle. هذه
الملفات التعريفية يمكن تنشيطها بالاسم باستخدام خاصية البناء db، والتي يمكن تمريرها إما
كخاصية نظام JVM (-D) أو كخاصية مشروع Gradle (-P). الأمثلة أدناه تستخدم نهج
خاصية مشروع Gradle.
gradle clean build -Pdb=pgsql
لتشغيل اختبار من بيئة التطوير المتكاملة (IDE)، يجب التأكد من حدوث توسعات الخصائص. استخدم الأمر التالي:
gradle clean compile -Pdb=pgsql
ملاحظة: إذا كنت تشغّل اختبارات ضد برنامج تشغيل JDBC غير متوفر عبر Maven central، فتأكد من إضافة هذه البرامج إلى ذاكرة التخزين المؤقت لمستودع Maven المحلي (~/.m2/repository) أو (الأفضل) إضافته إلى خادم مستودع Maven شخصي
يمكنك تشغيل أي اختبار على أي قاعدة بيانات معينة تم تكوينها في ملف تعريفي databases.gradle.
كل ما عليك فعله هو تشغيل الأمر التالي:
gradlew setDataBase -Pdb=pgsql
أو يمكنك استخدام النسخة المختصرة:
gradlew sDB -Pdb=pgsql
يمكنك القيام بذلك من الوحدة التي تهتم باختبارها أو من المجلد الجذر hibernate-orm.
بعد ذلك، ما عليك سوى اختيار أي اختبار من IDE وتشغيله كالمعتاد. ستختار Hibernate تكوين قاعدة البيانات من ملف hibernate.properties
الذي تم إعداده بواسطة مهمة Gradle setDataBase.