Ciao a tutti

In questi giorni sto aggiornando a java 11 e ai moduli un progetto 
opensource che feci ben 10 anni fa: jrecordbind

Dopo molti tentativi, sono arrivato a qualcosa che compila e ha i test 
verdi ma solo quando girano nell'IDE!

Se lancio "mvn clean install" da terminale, i test falliscono con un 
messaggio del tipo

java.lang.IllegalAccessException: class org.fissore.jrecordbind.Utils 
(in module org.fissore.jrecordbind) cannot access class 
org.fissore.jrecordbindtests.test.MyEnumConverter (in module 
org.fissore.jrecordbindtests) because module 
org.fissore.jrecordbindtests does not export 
org.fissore.jrecordbindtests.test to module org.fissore.jrecordbind

Se al module-info del modulo di test aggiungo

exports org.fissore.jrecordbindtests.test to org.fissore.jrecordbind;

il compilatore si arrabbia con

module-info.java:[6,39] package is empty or does not exist: 
org.fissore.jrecordbindtests.test

Immagino succeda perchè le classi di test sono sotto src/test invece che 
src/main

Qualche anima pia ha un po' di tempo per aiutarmi a capire come uscirne? 
Il codice è su github, branch "3.0.0"

https://github.com/ffissore/jrecordbind/tree/3.0.0

Per darvi un po' di contesto:

jrecordbind è una libreria per leggere/scrivere file di testo a 
lunghezza fissa (un "tracciato record", tipo quelli che le poste vi 
danno con gli accrediti fatti su un conto corrente postale)

L'utente scrive un file XSD che definisce il tracciato record, con degli 
attributi non standard che servono a jrecordbind, soprattutto per 
convertire valori tipo enum, numeri o date

jrecordbind (che sta nel suo modulo) legge il file XSD e prova a 
istanziare le classi dei converter specificate negli attributi non 
standard, classi che stanno in un altro modulo: è qui che nasce il problema

ciao e grazie in anticipo

federico

Reply via email to