The Eclipse JNoSQL is a framework whose has the goal to help Java developers to create Java EE applications with NoSQL, whereby they can make scalable application beyond enjoy the polyglot persistence.
To solve this problem the project have two layers:
- Communication API: An API just to communicate with the database, exactly what JDBC does to SQL. This API has four specializations, one for each kind of database.
- Abstraction API: An API to do integration and do the best integration with the Java developer. That be annotation drive and have integration with other technologies like Bean Validation, etc. To solve it this layer is a CDI based.
This way, the NoSQL vendors just need to implement the communicate API without warning about the another API. So, the project has two core project that is Diana, communication layer, and Artemis, the abstraction layer, project.
The basic building blocks hereby are:
- A simple API to support Column NoSQL Database
- A simple API to support Key-value NoSQL Database
- A simple API to support Graph NoSQL Database
- A simple API to support Document Database
- Convention over configuration
- Support for asynchronous queries
- Support for asynchronous writes operations
- An easy API to implement, so that NoSQL vendors can comply with it and test by themselves.
The API's focus is on simplicity and ease of use. Developers should only have to know a minimal set of artifacts to work with the solution. The API is built on latest Java 8 features and therefore fit perfectly with the functional features of Java 8.
Additionally, it provides:
Once Java ME supports Lambdas, default methods, method references and functional interfaces, an implementation targeting Java ME should be provided as well.
- A Java SE based implementation with minimal features and dependencies.
- A Java EE extension module for integration with Java EE
Extension modules for different features.