4040import javax .xml .transform .TransformerException ;
4141import javax .xml .transform .URIResolver ;
4242import javax .xml .transform .stream .StreamSource ;
43+ import net .sf .saxon .lib .ResourceResolverWrappingURIResolver ;
4344import net .sf .saxon .lib .UnparsedTextURIResolver ;
4445import net .sf .saxon .s9api .SaxonApiException ;
4546import net .sf .saxon .s9api .Serializer ;
4849import net .sf .saxon .value .DateTimeValue ;
4950import org .apache .http .HttpHeaders ;
5051import org .apache .jena .ontology .OntModelSpec ;
51- import org .apache .jena .query .ResultSet ;
5252import org .apache .jena .query .ResultSetFormatter ;
53- import org .apache .jena .rdf . model . Model ;
53+ import org .apache .jena .query . ResultSetRewindable ;
5454import org .slf4j .Logger ;
5555import org .slf4j .LoggerFactory ;
5656
6161@ Provider
6262@ Singleton
6363@ Produces ({MediaType .TEXT_HTML + ";charset=UTF-8" , MediaType .APPLICATION_XHTML_XML + ";charset=UTF-8" })
64- public class ResultSetXSLTWriter extends XSLTWriterBase implements MessageBodyWriter <ResultSet >
64+ public class ResultSetXSLTWriter extends XSLTWriterBase implements MessageBodyWriter <ResultSetRewindable >
6565{
6666
6767 private static final Logger log = LoggerFactory .getLogger (ResultSetXSLTWriter .class );
@@ -82,11 +82,11 @@ public ResultSetXSLTWriter(XsltExecutable xsltExec, OntModelSpec ontModelSpec, D
8282 @ Override
8383 public boolean isWriteable (Class <?> type , Type genericType , Annotation [] annotations , MediaType mediaType )
8484 {
85- return (ResultSet .class .isAssignableFrom (type ));
85+ return (ResultSetRewindable .class .isAssignableFrom (type ));
8686 }
8787
8888 @ Override
89- public void writeTo (ResultSet results , Class <?> type , Type genericType , Annotation [] annotations , MediaType mediaType , MultivaluedMap <String , Object > headerMap , OutputStream entityStream ) throws IOException , WebApplicationException
89+ public void writeTo (ResultSetRewindable results , Class <?> type , Type genericType , Annotation [] annotations , MediaType mediaType , MultivaluedMap <String , Object > headerMap , OutputStream entityStream ) throws IOException , WebApplicationException
9090 {
9191 if (log .isTraceEnabled ()) log .trace ("Writing ResultSet with HTTP headers: {} MediaType: {}" , headerMap , mediaType );
9292
@@ -124,7 +124,7 @@ public void writeTo(ResultSet results, Class<?> type, Type genericType, Annotati
124124 out .setOutputProperty (Serializer .Property .DOCTYPE_PUBLIC , "-//W3C//DTD XHTML 1.0 Strict//EN" );
125125 }
126126
127- xsltTrans .setURIResolver (( URIResolver )getDataManager ());
127+ xsltTrans .setResourceResolver ( new ResourceResolverWrappingURIResolver (( URIResolver )getDataManager () ));
128128 xsltTrans .getUnderlyingController ().setUnparsedTextURIResolver ((UnparsedTextURIResolver )getDataManager ());
129129 xsltTrans .getUnderlyingController ().setCurrentDateTime (DateTimeValue .fromZonedDateTime (ZonedDateTime .now ())); // TO-DO: make TZ configurable
130130 xsltTrans .setStylesheetParameters (getParameters (headerMap ));
0 commit comments