JavaFX property mechanisms should work. They were written to support JavaFX GUIs, but should work just fine for non-gui logic, although I don't think it has been widely used for this purpose so far. I cannot speak with other competitive frameworks that can better meet your needs.
When you see the number of classes to support properties in JavaFX, it can be a little more complicated, but they tend to fit together well and there are many classes to not match object mismatches / primitive impedances. It is a pity that there is no better language support for such functions. Programming with the IDE and autocomplete works quite well, so you don't need to type as much. Listeners are dumped into jdk8 lambda expressions, so they can be quite brief.
Binding and listening structures are part of what makes it easy to configure and use JavaFX controls β they intercept change notifications for each element of the system.
JavaDoc is available . Unfortunately, the official documentation for bindings and collections do not do library justice in the detailed description of how to use its feature set. There is a useful article about using JavaFX properties with POJO .
The source for beans, binding, and property support for JavaFX is not yet open (although it is planned to be released in the next few months).
Use the Java version later than jdk7u6, and make sure the jfxrt.jar file from the distribution is in your class path, so you select the JavaFX classes. If you are not using any GUI components, you do not need to extend the JavaFX Application class in your program.
Relevant non-GUI packages are:
javafx.beans The javafx.beans package contains interfaces that define the most common form of observability.
javafx.beans.binding Characteristics
javafx.beans.property The javafx.beans.property package defines read-only and writable properties, as well as a number of implementations.
javafx.beans.property.adapter (adapts the standard properties of pojo beans to JavaFX properties).
javafx.beans.value The javafx.beans.value package contains the two main interfaces, ObservableValue and WritableValue, and all its sub-interfaces.
javafx.animation Provides a set of classes to simplify the use of transition-based animations (related to timekeeping).
javafx.collections Contains the main collections and utilities of the JavaFX collection
javafx.util.converter This package is for standard string converters for JavaFX.