Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,12 @@ public synchronized RepositoryConfig getRepositoryConfig(String id) {
File dataDir = getRepositoryDir(id);
if (new File(dataDir, CFG_FILE).exists()) {
File configFile = new File(dataDir, CFG_FILE);
try (InputStream input = new FileInputStream(configFile)) {
Model model = Rio.parse(input, configFile.toURI().toString(), CONFIG_FORMAT);
try {
Model model;
// We read the input and close it so that it may be reopend by the migration process
try (InputStream input = new FileInputStream(configFile)) {
model = Rio.parse(input, configFile.toURI().toString(), CONFIG_FORMAT);
}

Set<String> repositoryIDs = RepositoryConfigUtil.getRepositoryIDs(model);
if (repositoryIDs.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
package org.eclipse.rdf4j.console.command;

import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
Expand Down Expand Up @@ -132,7 +132,7 @@ private void convert(String fileFrom, String fileTo) {
String baseURI = pathFrom.toUri().toString();

try (BufferedInputStream r = new BufferedInputStream(Files.newInputStream(pathFrom));
BufferedWriter w = Files.newBufferedWriter(pathTo)) {
BufferedOutputStream w = new BufferedOutputStream(Files.newOutputStream(pathTo))) {
RDFWriter writer = Rio.createWriter(fmtTo.get(), w);
parser.setRDFHandler(writer);

Expand All @@ -141,6 +141,8 @@ private void convert(String fileFrom, String fileTo) {

parser.parse(r, baseURI);

w.flush();

long diff = (System.nanoTime() - startTime) / 1_000_000;
writeln("Data has been written to file (" + diff + " ms)");
} catch (IOException | RDFParseException | RDFHandlerException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@
*******************************************************************************/
package org.eclipse.rdf4j.console.command;

import java.io.IOException;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
Expand Down Expand Up @@ -127,8 +125,8 @@ private void export(Repository repository, String fileName, Resource... contexts
}

try (RepositoryConnection conn = repository.getConnection();
Writer w = Files.newBufferedWriter(path, StandardCharsets.UTF_8, StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING)) {
BufferedOutputStream w = new BufferedOutputStream(Files.newOutputStream(path, StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING))) {

RDFFormat fmt = Rio.getWriterFormatForFileName(fileName)
.orElseThrow(() -> new UnsupportedRDFormatException("No RDF parser for " + fileName));
Expand All @@ -139,6 +137,8 @@ private void export(Repository repository, String fileName, Resource... contexts

conn.export(writer, contexts);

w.flush();

long diff = (System.nanoTime() - startTime) / 1_000_000;
writeln("Data has been written to file (" + diff + " ms)");
} catch (IOException | UnsupportedRDFormatException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.rdf4j.console.command;

import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Files;
Expand Down Expand Up @@ -186,7 +186,7 @@ private void shacl(String dataPath, String shaclPath, String reportFile) {
writeln("Loading shapes from " + shaclPath);

URL shaclURL = new URL(shaclPath);
RDFFormat format = Rio.getParserFormatForFileName(reportFile).orElse(RDFFormat.TURTLE);
RDFFormat format = Rio.getParserFormatForFileName(shaclPath).orElse(RDFFormat.TURTLE);

try (SailRepositoryConnection conn = repo.getConnection()) {
conn.begin(IsolationLevels.NONE, ShaclSail.TransactionSettings.ValidationApproach.Disabled);
Expand Down Expand Up @@ -279,8 +279,9 @@ private void writeReport(Model model, String reportFile) {

RDFFormat format = Rio.getParserFormatForFileName(reportFile).orElse(RDFFormat.TURTLE);

try (Writer w = Files.newBufferedWriter(Paths.get(reportFile))) {
try (BufferedOutputStream w = new BufferedOutputStream(Files.newOutputStream(Paths.get(reportFile)))) {
Rio.write(model, w, format, cfg);
w.flush();
} catch (IOException ex) {
writeError("Could not write report to " + reportFile, ex);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@ public final void testConvert() {
assertTrue(o != null, "Invalid JSON");
}

@Test
public final void testConvertToBinary() {
File binary = new File(locationFile, "alien.brf");
cmd.execute("convert", from.getAbsolutePath(), binary.getAbsolutePath());

assertTrue(binary.length() > 0, "File is empty");
}

@Test
public final void testConvertWorkDir() {
setWorkingDir(cmd);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,15 @@ public final void testExportAll() throws RepositoryException, IOException {
nq.delete();
}

@Test
public final void testExportAllToBinary() throws RepositoryException {
File binary = new File(locationFile, "all.brf");
cmd.execute("export", binary.getAbsolutePath());
assertTrue(binary.length() > 0, "File is empty");

binary.delete();
}

@Test
public final void testExportWorkDir() throws RepositoryException, IOException {
setWorkingDir(cmd);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,44 @@ public final void testShaclValid() throws IOException {
assertFalse(io.wasErrorWritten());
}

@Test
public final void testShaclInvalidFormat() throws IOException {
File report = new File(locationFile, "testShaclInvalid.nt");
cmd.execute("verify", copyFromRes("ok.ttl"), copyFromRes("shacl_invalid.ttl"), report.toString());
assertTrue(io.wasErrorWritten());
assertTrue(Files.size(report.toPath()) > 0);
}

@Test
public final void testShaclValidFormat() throws IOException {
File report = new File(locationFile, "testShaclValid.nt");
assertTrue(report.createNewFile());
cmd.execute("verify", copyFromRes("ok.ttl"), copyFromRes("shacl_valid.ttl"), report.toString());

verify(mockConsoleIO, never()).writeError(anyString());
assertFalse(Files.size(report.toPath()) > 0);
assertFalse(io.wasErrorWritten());
}

@Test
public final void testShaclInvalidToBinary() throws IOException {
File report = new File(locationFile, "testShaclInvalid.brf");
cmd.execute("verify", copyFromRes("ok.ttl"), copyFromRes("shacl_invalid.ttl"), report.toString());
assertTrue(io.wasErrorWritten());
assertTrue(Files.size(report.toPath()) > 0);
}

@Test
public final void testShaclValidToBinary() throws IOException {
File report = new File(locationFile, "testShaclValid.brf");
assertTrue(report.createNewFile());
cmd.execute("verify", copyFromRes("ok.ttl"), copyFromRes("shacl_valid.ttl"), report.toString());

verify(mockConsoleIO, never()).writeError(anyString());
assertFalse(Files.size(report.toPath()) > 0);
assertFalse(io.wasErrorWritten());
}

@Test
public final void testShaclValidWorkDir() throws IOException {
setWorkingDir(cmd);
Expand Down
Loading