//get versions
final RepositoryResult<Version> versions = versioningService.listVersions(resource);
//get serializer
final VersionSerializer serializer = versionSerializerService.getSerializer(types);
//create response serialisation
StreamingOutput entity = new StreamingOutput() {
@Override
public void write(OutputStream output) throws IOException, WebApplicationException {
serializer.write(resource,versions,output);
}
};
//create Header Links
Set<String> links = new HashSet<String>();
links.add("<" + MementoUtils.timegateURI(resource_string, configurationService.getBaseUri()) + ">;rel=timegate");
links.add("<" + resource_string + ">;rel=original");
//create response
return Response
.ok()
.header("Link", CollectionUtils.fold(links," ,"))
.header("Content-Type", serializer.getContentType().toString())
.entity(entity)
.build();
} catch (SailException e) {
return Response.status(Response.Status.NOT_FOUND).entity("Cannot list versions").build();