Modeling Reactive Systems in Java