diff --git a/core/oslc4j-jena-provider/src/main/java/org/eclipse/lyo/oslc4j/provider/jena/AbstractOslcRdfXmlProvider.java b/core/oslc4j-jena-provider/src/main/java/org/eclipse/lyo/oslc4j/provider/jena/AbstractOslcRdfXmlProvider.java index 41828901a..0aef525f9 100644 --- a/core/oslc4j-jena-provider/src/main/java/org/eclipse/lyo/oslc4j/provider/jena/AbstractOslcRdfXmlProvider.java +++ b/core/oslc4j-jena-provider/src/main/java/org/eclipse/lyo/oslc4j/provider/jena/AbstractOslcRdfXmlProvider.java @@ -35,6 +35,8 @@ import org.apache.jena.rdf.model.ModelFactory; import org.apache.jena.rdf.model.RDFReaderI; import org.apache.jena.rdf.model.RDFWriterI; +import org.apache.jena.riot.RDFDataMgr; +import org.apache.jena.riot.RDFFormat; import org.apache.jena.riot.RDFLanguages; import org.apache.jena.util.FileUtils; import org.eclipse.lyo.oslc4j.core.OSLC4JConstants; @@ -147,9 +149,13 @@ private void writeObjectsTo(final Object[] objects, final OutputStream outputStr String xmlDeclaration = "\n"; outputStream.write(xmlDeclaration.getBytes()); } - writer.write(model, - outputStream, - null); + if (writer instanceof RdfXmlAbbreviatedWriter) { + writer.write(model, + outputStream, + null); + } else { + RDFDataMgr.write(outputStream, model, resolveFormat(serializationLanguage)); + } Instant finish = Instant.now(); log.trace("writeObjectsTo - Execution Duration: {} ms", Duration.between(start, finish).toMillis()); } @@ -160,7 +166,22 @@ private void writeObjectsTo(final Object[] objects, final OutputStream outputStr } } - private RDFWriterI getRdfWriter(final String serializationLanguage, final Model model) { + private RDFFormat resolveFormat(String serializationLanguage) { + switch (serializationLanguage) { + case RDFLanguages.strLangRDFXML: + return RDFFormat.RDFXML_PLAIN; + case RDFLanguages.strLangTurtle: + return RDFFormat.TURTLE_PRETTY; + case RDFLanguages.strLangNTriples: + return RDFFormat.NTRIPLES_UTF8; + case RDFLanguages.strLangJSONLD: + return RDFFormat.JSONLD10_COMPACT_PRETTY; + default: + throw new IllegalArgumentException(); + } + } + + private RDFWriterI getRdfWriter(final String serializationLanguage, final Model model) { RDFWriterI writer; if (serializationLanguage.equals(FileUtils.langXMLAbbrev)) {