
CVE-2019-14900
Hibernate ORM ist eine Bibliothek, die Anwendungen, Bibliotheken und Frameworks mit Object/Relational Mapping (ORM)-Unterstützung versorgt.
Sie bietet auch eine Implementierung der JPA-Spezifikation, dem standardmäßigen Java-Spezifikation für ORM.
Dies ist das Repository des Quellcodes: weitere Informationen finden Sie unter Hibernate.org.
Der Build erfordert ein Java 8 JDK als JAVA_HOME.
Sie benötigen Git, um den Quellcode zu beziehen.
Hibernate verwendet Gradle als Build-Tool. Lesen Sie den Abschnitt Gradle-Grundlagen unten, falls Sie mit Gradle nicht vertraut sind.
Mitwirkende sollten den Beitragsleitfaden lesen.
Siehe die Anleitungen zur Einrichtung von IntelliJ oder Eclipse als Entwicklungsumgebung.
Schauen Sie sich den Abschnitt Erste Schritte in CONTRIBUTING.md an, um mit der Arbeit am Hibernate-Quellcode zu beginnen.
Hibernate verwendet Jenkins für seine CI-Anforderungen. Das Projekt wird bei jedem Push in das Upstream-Repository kontinuierlich gebaut. Insgesamt gibt es einige verschiedene Jobs, die alle unter http://ci.hibernate.org/view/ORM/ eingesehen werden können.
Dieser Abschnitt beschreibt einige Grundlagen, die Entwickler und Mitwirkende, die neu bei Gradle sind, möglicherweise benötigen, um schnell produktiv zu werden. Die Gradle-Dokumentation ist sehr gut; zwei sind besonders unverzichtbar:
Für Mitwirkende, die Gradle nicht anderweitig verwenden und es nicht installieren möchten, bietet Gradle eine sehr coole Funktion namens Wrapper. Sie ermöglicht es, Gradle-Builds ohne eine zuvor installierte Gradle-Distribution auf eine Weise ohne Konfiguration auszuführen. Hibernate konfiguriert den Gradle Wrapper für Sie. Wenn Sie den Wrapper verwenden und Gradle nicht installieren möchten (oder sicherstellen möchten, dass Sie die für ältere Builds vorgesehene Gradle-Version verwenden), würden Sie einfach den Befehl gradlew (oder gradlew.bat) anstelle von gradle (oder gradle.bat) in den folgenden Diskussionen verwenden. Beachten Sie, dass gradlew nur im Stammverzeichnis des Projekts verfügbar ist, daher müssen Sie je nach Arbeitsverzeichnis möglicherweise auch den Pfad zu gradlew anpassen.
Beispiele verwenden die gradle-Syntax, aber tauschen Sie einfach gradlew (entsprechend relativ) gegen gradle, wenn Sie den Wrapper verwenden möchten.
Ein weiterer Grund für die Verwendung von gradlew ist, dass es die exakte Version von Gradle verwendet, für die der Build definiert ist.
Gradle verwendet das Konzept von Build-Tasks (äquivalent zu Ant-Targets oder Maven-Phasen/Goals). Sie erhalten eine Liste der verfügbaren Tasks über
gradle tasks
Um einen Task über alle Module hinweg auszuführen, führen Sie diesen Task einfach aus dem Stammverzeichnis aus. Gradle besucht jedes Unterprojekt und führt diesen Task aus, wenn das Unterprojekt ihn definiert. Um einen Task in einem bestimmten Modul auszuführen, können Sie entweder:
cd) und den Task ausführengradle hibernate-core:test sagen.Das Testen gegen eine bestimmte Datenbank kann auf zwei verschiedene Arten erfolgen:
Demnächst verfügbar...
Der Hibernate-Build definiert mehrere Datenbank-Test-"Profile" in databases.gradle. Diese Profile können über den db-Build-Eigenschaft aktiviert werden, die entweder als JVM-Systemeigenschaft (-D) oder als Gradle-Projekteigenschaft (-P) übergeben werden kann. Beispiele unten verwenden den Gradle-Projekteigenschaftsansatz.
gradle clean build -Pdb=pgsql
Um einen Test aus Ihrer IDE auszuführen, müssen Sie sicherstellen, dass die Eigenschaftenerweiterungen stattfinden. Verwenden Sie den folgenden Befehl:
gradle clean compile -Pdb=pgsql
HINWEIS: Wenn Sie Tests gegen einen JDBC-Treiber ausführen, der nicht über Maven Central verfügbar ist, stellen Sie sicher, dass Sie diese Treiber zu Ihrem lokalen Maven-Repo-Cache (~/.m2/repository) hinzufügen oder (besser) ihn zu einem persönlichen Maven-Repo-Server hinzufügen
Sie können jeden Test auf einer bestimmten Datenbank ausführen, die in einem databases.gradle-Profil konfiguriert ist.
Alles, was Sie tun müssen, ist den folgenden Befehl auszuführen:
gradlew setDataBase -Pdb=pgsql
oder Sie können die Kurzversion verwenden:
gradlew sDB -Pdb=pgsql
Sie können dies von dem Modul aus tun, das Sie testen möchten, oder aus dem Stammverzeichnis hibernate-orm.
Danach wählen Sie einfach einen beliebigen Test aus der IDE aus und führen ihn wie gewohnt aus. Hibernate übernimmt die Datenbankkonfiguration aus der Datei hibernate.properties, die durch den Gradle-Task setDataBase eingerichtet wurde.