Example usage for org.springframework.web.servlet.mvc.method.annotation ResponseBodyEmitter ResponseBodyEmitter

List of usage examples for org.springframework.web.servlet.mvc.method.annotation ResponseBodyEmitter ResponseBodyEmitter

Introduction

In this page you can find the example usage for org.springframework.web.servlet.mvc.method.annotation ResponseBodyEmitter ResponseBodyEmitter.

Prototype

public ResponseBodyEmitter() 

Source Link

Document

Create a new ResponseBodyEmitter instance.

Usage

From source file:com.graphaware.example.NodeStreamingApi.java

@RequestMapping(path = "v1", method = RequestMethod.GET)
public ResponseBodyEmitter streamV1() {
    final ResponseBodyEmitter emitter = new ResponseBodyEmitter();

    taskExecutor.execute(new Runnable() {
        @Override/*from w w w.  j a  va  2s  .  c  o m*/
        public void run() {
            boolean first = true;

            try (Transaction tx = database.beginTx()) {
                emitter.send("[");

                for (Node node : database.getAllNodes()) {
                    if (!first) {
                        emitter.send(",");
                    } else {
                        first = false;
                    }
                    emitter.send(new LongIdJsonNode(node));
                }

                emitter.send("]");
                emitter.complete();

                tx.success();
            } catch (Exception e) {
                emitter.completeWithError(e);
            }
        }
    });

    return emitter;
}