use of nl.knaw.huygens.timbuctoo.v5.dataset.dto.LogList in project timbuctoo by HuygensING.
the class ImportManager method generateLog.
public Future<ImportStatus> generateLog(String baseUri, String defaultGraph, RdfCreator creator) throws LogStorageFailedException {
importStatus.start(this.getClass().getSimpleName() + ".generateLog", baseUri);
try {
// add to the log structure
int[] index = new int[1];
logListStore.updateData(logList -> {
index[0] = logList.addEntry(LogEntry.create(baseUri, defaultGraph, creator));
return logList;
});
// schedule processing
return executorService.submit(() -> processLogsUntil(index[0]));
} catch (IOException e) {
importStatus.addError("Could not update logList", e);
throw new LogStorageFailedException(e);
}
}
use of nl.knaw.huygens.timbuctoo.v5.dataset.dto.LogList in project timbuctoo by HuygensING.
the class RsDocumentBuilder method getResourceList.
/**
* Get the resource list for the dataSet denoted by <code>ownerId</code> and <code>dataSetId</code>.
* The {@link Optional} is empty if the dataSet is not published and the given <code>user</code> == <code>null</code>
* or has no read access for the dataSet or the dataSet does not exist.
*
* @param user User that requests the list, may be <code>null</code>
* @param ownerId ownerId
* @param dataSetId dataSetId
* @return the resource list for the dataSet denoted by <code>ownerId</code> and <code>dataSetId</code>
*/
public Optional<Urlset> getResourceList(@Nullable User user, String ownerId, String dataSetId) throws IOException {
Urlset resourceList = null;
Optional<DataSet> maybeDataSet = dataSetRepository.getDataSet(user, ownerId, dataSetId);
if (maybeDataSet.isPresent()) {
DataSetMetaData dataSetMetaData = maybeDataSet.get().getMetadata();
LogList loglist = maybeDataSet.get().getImportManager().getLogList();
RsMd rsMd = new RsMd(Capability.RESOURCELIST.xmlValue).withAt(// lastImportDate set on server startup?
ZonedDateTime.parse(loglist.getLastImportDate()));
resourceList = new Urlset(rsMd).addLink(new RsLn(REL_UP, rsUriHelper.uriForRsDocument(dataSetMetaData, Capability.CAPABILITYLIST)));
FileStorage fileStorage = maybeDataSet.get().getFileStorage();
List<LogEntry> entries = loglist.getEntries();
entries.sort((e1, e2) -> {
if (e1.getImportStatus().isPresent() && e2.getImportStatus().isPresent()) {
return e1.getImportStatus().get().getDate().compareTo(e2.getImportStatus().get().getDate());
} else if (e1.getImportStatus().isPresent()) {
return 1;
} else {
return -1;
}
});
for (LogEntry logEntry : entries) {
Optional<String> maybeToken = logEntry.getLogToken();
if (maybeToken.isPresent()) {
String loc = rsUriHelper.uriForToken(dataSetMetaData, maybeToken.get());
Optional<CachedFile> maybeCachedFile = fileStorage.getFile(maybeToken.get());
if (maybeCachedFile.isPresent()) {
UrlItem item = new UrlItem(loc).withMetadata(new RsMd().withType(maybeCachedFile.get().getMimeType().toString()));
resourceList.addItem(item);
}
}
}
rsMd.withCompleted(ZonedDateTime.now(ZoneOffset.UTC));
}
return Optional.ofNullable(resourceList);
}
use of nl.knaw.huygens.timbuctoo.v5.dataset.dto.LogList in project timbuctoo by HuygensING.
the class RdfDescriptionSaverTest method setUp.
@Before
public void setUp() throws Exception {
descriptionFileName = "description.xml";
descriptionFile = new File(descriptionFileName);
logList = new LogList();
importStatus = new ImportStatus(logList);
testRdfDescriptionSaver = new RdfDescriptionSaver(descriptionFile, BASE_URI, importStatus);
testRdfDescriptionSaver.start(0);
}
use of nl.knaw.huygens.timbuctoo.v5.dataset.dto.LogList in project timbuctoo by HuygensING.
the class BdbSchemaStoreTest method generatesASchemaForAllAdded.
@Test
public void generatesASchemaForAllAdded() throws Exception {
final DummyDataStorage dataStore = new DummyDataStorage();
ChangeFetcher changeFetcher = new DummyChangeFetcher(CursorQuad.create("subj", "pred", Direction.OUT, ChangeType.ASSERTED, "obj", null, null, ""), CursorQuad.create("subj", RdfConstants.RDF_TYPE, Direction.OUT, ChangeType.ASSERTED, "type", null, null, ""), CursorQuad.create("obj", "pred", Direction.IN, ChangeType.ASSERTED, "subj", null, null, ""));
BdbSchemaStore schemaStore = new BdbSchemaStore(dataStore, new ImportStatus(new LogList()));
schemaStore.start();
schemaStore.onChangedSubject("subj", changeFetcher);
schemaStore.onChangedSubject("obj", changeFetcher);
schemaStore.finish();
assertThat(dataStore.getResult(), is("{\n" + " \"http://timbuctoo.huygens.knaw.nl/static/v5/vocabulary#unknown\" : {\n" + " \"name\" : \"http://timbuctoo.huygens.knaw.nl/static/v5/vocabulary#unknown\",\n" + " \"predicates\" : [ {\n" + " \"name\" : \"pred\",\n" + " \"direction\" : \"IN\",\n" + " \"valueTypes\" : { },\n" + " \"referenceTypes\" : {\n" + " \"type\" : 1\n" + " },\n" + " \"subjectsWithThisPredicate\" : 1,\n" + " \"subjectsWithThisPredicateAsList\" : 0,\n" + " \"hasBeenList\" : false,\n" + " \"hasBeenSingular\" : true\n" + " } ],\n" + " \"subjectsWithThisType\" : 1\n" + " },\n" + " \"type\" : {\n" + " \"name\" : \"type\",\n" + " \"predicates\" : [ {\n" + " \"name\" : \"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\",\n" + " \"direction\" : \"OUT\",\n" + " \"valueTypes\" : { },\n" + " \"referenceTypes\" : {\n" + " \"http://timbuctoo.huygens.knaw.nl/static/v5/vocabulary#unknown\" : 1\n" + " },\n" + " \"subjectsWithThisPredicate\" : 1,\n" + " \"subjectsWithThisPredicateAsList\" : 0,\n" + " \"hasBeenList\" : false,\n" + " \"hasBeenSingular\" : true\n" + " }, {\n" + " \"name\" : \"pred\",\n" + " \"direction\" : \"OUT\",\n" + " \"valueTypes\" : { },\n" + " \"referenceTypes\" : {\n" + " \"http://timbuctoo.huygens.knaw.nl/static/v5/vocabulary#unknown\" : 1\n" + " },\n" + " \"subjectsWithThisPredicate\" : 1,\n" + " \"subjectsWithThisPredicateAsList\" : 0,\n" + " \"hasBeenList\" : false,\n" + " \"hasBeenSingular\" : true\n" + " } ],\n" + " \"subjectsWithThisType\" : 1\n" + " }\n" + "}"));
}
Aggregations