Wasn't sure if this would work but it does
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.transform.BaseScript
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
import javax.ws.rs.core.CacheControl
import javax.ws.rs.core.StreamingOutput
import java.io.OutputStream
import java.io.BufferedWriter
import java.io.OutputStreamWriter
@BaseScript CustomEndpointDelegate delegate
streaming_test(httpMethod: "GET") {MultivaluedMap queryParams, String body ->
CacheControl cacheControl = new CacheControl()
cacheControl.setNoCache(true)
cacheControl.setMaxAge(-1)
cacheControl.setMustRevalidate(true)
return Response.ok().cacheControl(cacheControl).entity(new StreamingOutput() {
public void write(OutputStream outputStream) {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream))
for(int i = 0;i<10;i++) {
writer.write("Test ${i}\n")
writer.flush()
sleep(1000)
}
writer.close()
}
}).build()
}