/* Copyright 2013 Pascal Christoph.
* Licensed under the Eclipse Public License 1.0 */
package org.lobid.lodmill;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import org.antlr.runtime.RecognitionException;
import org.apache.commons.io.FileUtils;
import org.culturegraph.mf.morph.Metamorph;
import org.culturegraph.mf.runner.Flux;
import org.culturegraph.mf.stream.converter.xml.XmlDecoder;
import org.culturegraph.mf.stream.source.OaiPmhOpener;
import org.junit.Test;
/**
* @author Pascal Christoph
*
*/
@SuppressWarnings("javadoc")
public class LobidOrganisationsOaiPmhUpdateOnlineTest {
@Test
public void testFlow() throws IOException {
final String PATH = "tmp";
final OaiPmhOpener opener = createOpener();
final XmlDecoder xmldecoder = new XmlDecoder();
final PicaXmlHandler handler = new PicaXmlHandler();
final Metamorph metamorph =
new Metamorph("morph_zdb-isil-file-pica2ld.xml");
final PipeLobidOrganisationEnrichment enrich = createEnricher();
final Triples2RdfModel triple2model = new Triples2RdfModel();
triple2model.setInput("TURTLE");
final RdfModelFileWriter writer = createWriter(PATH);
opener.setReceiver(xmldecoder).setReceiver(handler).setReceiver(metamorph)
.setReceiver(enrich).setReceiver(triple2model).setReceiver(writer);
opener.process("http://services.d-nb.de/oai/repository");
opener.closeStream();
FileUtils.deleteDirectory(new File(PATH));
}
private static PipeLobidOrganisationEnrichment createEnricher() {
final PipeLobidOrganisationEnrichment enrich =
new PipeLobidOrganisationEnrichment();
enrich.setSerialization("TURTLE");
enrich.setGeonameFilename("geonames_DE.csv");
return enrich;
}
private static OaiPmhOpener createOpener() {
final OaiPmhOpener opener = new OaiPmhOpener();
opener.setDateFrom("2013-08-11");
opener.setDateUntil("2013-08-12");
opener.setMetadataPrefix("PicaPlus-xml");
opener.setSetSpec("bib");
return opener;
}
private static RdfModelFileWriter createWriter(final String PATH) {
final RdfModelFileWriter writer = new RdfModelFileWriter();
writer.setProperty("http://purl.org/lobid/lv#isil");
writer.setEndIndex(2);
writer.setStartIndex(0);
writer.setFileSuffix("nt");
writer.setSerialization("N-TRIPLE");
writer.setTarget(PATH);
return writer;
}
@Test
public void testFluxOaipmh()
throws IOException, URISyntaxException, RecognitionException {
File fluxFile = new File(Thread.currentThread().getContextClassLoader()
.getResource("oaipmh-zdbIsil2ld.flux").toURI());
Flux.main(new String[] { fluxFile.getAbsolutePath() });
}
}