diggsweden / DCAT-AP-SE-Processor

GNU General Public License v3.0
9 stars 8 forks source link

Parametrisera katalogen där filer ska produceras #22

Open jonasseglare opened 1 year ago

jonasseglare commented 1 year ago

Contact Details

jonas.ostlund@arbetsformedlingen.se

What benefits does the suggestion solve?

I dagsläget använder vi DCAT-AP-SE-Processor som ett Javabibliotek från ett annat projekt och anropar metoden public String createDcat(MultiValuedMap<String, String> apiSpecMap) i klassen Manager. Resultatet av detta anrop är, förutom returvärdet i form av en sträng, att följande två filer produceras i katalogen där programmet körs:

Det betyder t.ex. att när man kör enhetstesterna med mvn test hamnar filerna i roten till det här projektet. Eller om man använder den här koden som ett bibliotek hamnar filerna i katalogen som man kör programmet från. Det vore bra att kunna specificera var de här filerna ska produceras: var någonstans filer skapas är något som man som användare av biblioteket vill kunna kontrollera.

Feature suggestion description

Jag föreslår att man lägger till en variabel outputDirectory någonstans som specificerar var filerna output.json och dcat.rdf ska produceras. Dess defaultvärde är katalogen som programmet körs ifrån. Men man kan ändra den om man vill, t.ex. så att dess värde är build/debug eller något annat passande.

Alternative solutions

Vi använder som sagt koden som ett Javabibliotek i vårt projekt, d.v.s. koden körs i samma JVM-process. Men man skulle kunna köra koden som en egen process med ProcessBuilder och då specificera från vilken katalog koden körs så att man därigenom kontrollerar var filerna produceras.

Additional information

De ställen där sökvägar för filerna som produceras behöver uppdateras är följande:

Manager.java:
 ---- printToFile(result, "dcat.rdf");
parser/ApiDefinitionParser.java:
 ---- FileOutputStream output = new FileOutputStream("output.json");
 ---- FileReader reader = new FileReader("output.json");