Book Image

Learning Reactive Programming with Java 8

By : Nickolay Tzvetinov
Book Image

Learning Reactive Programming with Java 8

By: Nickolay Tzvetinov

Overview of this book

Table of Contents (15 chapters)
Learning Reactive Programming with Java 8
About the Author
About the Reviewers

Resource management

If we look back at the HTTP request method that we used in Chapter 6, Using Concurrency and Parallelism with Schedulers and Chapter 5, Combinators, Conditionals, and Error Handling, it has this signature: Observable<Map> requestJson(HttpAsyncClient client, String url).

Instead of just calling a method that makes a request to a URL and returns the response as JSON, we create a HttpAsyncClient instance, have to start the it and pass it to the requestJson() method. But there is more: we need to close the client after we read the result, and because the observable is asynchronous, we need to wait for its OnCompleted notification and then to do the closing. This is very complex and should be changed. The Observable, which read from files, need to create streams/readers/channels and close them when all the subscribers are unsubscribed. The Observable, emitting data from a database should set up and then close all the connections, statements, and result sets that are used...