
CVE-2019-14900
Hibernate ORM è una libreria che fornisce supporto per il mapping oggetto-relazionale (ORM) ad applicazioni, librerie e framework.
Fornisce anche un'implementazione della specifica JPA, che è la specifica Java standard per l'ORM.
Questo è il repository del suo codice sorgente: consulta Hibernate.org per ulteriori informazioni.
La compilazione richiede un JDK Java 8 come JAVA_HOME.
Avrai bisogno di Git per ottenere il codice sorgente.
Hibernate utilizza Gradle come strumento di compilazione. Consulta la sezione Gradle Primer qui sotto se sei nuovo a Gradle.
I collaboratori dovrebbero leggere la Guida al Contributo.
Consulta le guide per configurare IntelliJ o Eclipse come ambiente di sviluppo.
Dai un'occhiata alla sezione Getting Started in CONTRIBUTING.md per iniziare a lavorare sul codice sorgente di Hibernate.
Hibernate utilizza Jenkins per le sue esigenze di CI. Il progetto viene compilato continuamente ad ogni push sul repository upstream. In totale ci sono alcuni lavori diversi, tutti visibili su http://ci.hibernate.org/view/ORM/
Questa sezione descrive alcune nozioni di base che i sviluppatori e i contributori nuovi a Gradle potrebbero aver bisogno di conoscere per diventare produttivi rapidamente. La documentazione di Gradle è molto ben fatta; due in particolare sono indispensabili:
Per i contributori che non usano Gradle altrimenti e non vogliono installarlo, Gradle offre una funzionalità molto interessante chiamata wrapper. Ti permette di eseguire compilazioni Gradle senza una distribuzione Gradle precedentemente installata in modo zero-configurazione. Hibernate configura il Gradle wrapper per te. Se preferisci usare il wrapper e non installare Gradle (o per assicurarti di usare la versione di Gradle prevista per build più vecchie) ti basterà usare il comando gradlew (o gradlew.bat) invece di gradle (o gradle.bat) nelle discussioni seguenti. Nota che gradlew è disponibile solo nella directory radice del progetto, quindi a seconda della tua directory di lavoro potresti dover regolare anche il percorso di gradlew.
Gli esempi usano la sintassi gradle, ma basta sostituire gradlew (opportunamente relativo) con gradle se desideri usare il wrapper.
Un altro motivo per usare gradlew è che utilizza la versione esatta di Gradle con cui la build è definita per funzionare.
Gradle utilizza il concetto di build tasks (equivalenti ai target di Ant o alle fasi/obiettivi di Maven). Puoi ottenere un elenco dei task disponibili tramite
gradle tasks
Per eseguire un task su tutti i moduli, basta eseguire quel task dalla directory radice. Gradle visiterà ogni sottoprogetto ed eseguirà quel task se il sottoprogetto lo definisce. Per eseguire un task in un modulo specifico puoi:
cd in quella directory del modulo ed eseguire il taskgradle hibernate-core:testIl test su un database specifico può essere realizzato in 2 modi diversi:
Prossimamente...
La build di Hibernate definisce diversi 'profili' di test del database in databases.gradle. Questi profili possono essere attivati per nome utilizzando la proprietà di build db che può essere passata sia come proprietà di sistema JVM (-D) che come proprietà del progetto Gradle (-P). Gli esempi seguenti utilizzano l'approccio della proprietà del progetto Gradle.
gradle clean build -Pdb=pgsql
Per eseguire un test dal tuo IDE, devi assicurarti che le espansioni delle proprietà avvengano. Usa il seguente comando:
gradle clean compile -Pdb=pgsql
NOTA: Se stai eseguendo test su un driver JDBC che non è disponibile tramite Maven central, assicurati di aggiungere questi driver alla cache del repo Maven locale (~/.m2/repository) o (meglio) aggiungilo a un server di repo Maven personale
Puoi eseguire qualsiasi test su qualsiasi database particolare configurato in un profilo di databases.gradle.
Tutto ciò che devi fare è eseguire il seguente comando:
gradlew setDataBase -Pdb=pgsql
oppure puoi usare la versione abbreviata:
gradlew sDB -Pdb=pgsql
Puoi farlo dal modulo che ti interessa testare o dalla cartella radice hibernate-orm.
Successivamente, scegli un qualsiasi test dall'IDE ed eseguilo come al solito. Hibernate prenderà la configurazione del database dal file hibernate.properties che è stato impostato dal task Gradle setDataBase.