Coherent Logic Enterprise Data Adapter: The Foundation For Your Data Acquisition Strategy in Java

The Problem

You need to call a RESTful web service specifically for the purpose of bringing data in-house, for use in your business. The data needs to be modeled and persisted to any number of databases, it needs to run as either a standalone application, an embedded application, or an enterprise application; the solution should use common APIs for developing in the Java language; it should prevent unnecessary calls being made to the server, it should stop incorrect calls being made to the server, and it should be scriptable. The solution needs to be uniform for all web services the business calls, irrespective of the format (it should be able to work with both XML and JSON-based web services).

The Solution

The solution to this problem is to use the Coherent Logic Enterprise Data Adapter Framework.

The Coherent Logic Enterprise Data Adapter delivers the following:

  • A Maven Bill of Materials with baseline dependencies required for this and other projects.
  • A component framework expressed as Spring beans that is used to query a data source via a builder pattern.
  • A domain model based on the Java Persistence API (JPA) allowing data to be persisted to any relational supported by JPA / Hibernate.
  • An API that works with either RESTful or SOAP-based web services.
  • Predetermined dependencies for transforming XML, JSON, and CSV data; other formats can be easily handled as well.
  • A cache-neutral interface so that repeat queries for the same data are not performing expensive operations, such as making remote calls for data.

This framework is used by the following APIs — feel free to refer to any of these for implementation examples, or to use if the adapter is already available for the web services you’re planning to call:

The AbstractQueryBuilder assists developers in delivering a domain-specific language which looks almost identical to the URI they’re trying to invoke — for example:

the following URI:

is expressed in Java as:

    .series ()
    .observations ()

the following URI:

is expressed in Java as:


Since URIs are simple strings the AbstractQueryBuilder can be instantiated with a cache provider to prevent remote calls from being made by checking if the URI is already associated with an object in memory. This can increase application performance substantially.

See Also

[1] How to Consume RESTful Webservice in Java Spring
[2] Calling REST API from Java Code
[3] Consume REST Service in ADF
[4] Apache HTTP Utils
[5] Why ESB is Bad
[6] Spring RestTemplate XML Example
[7] Open Source Integration Middleware
[8] Extract, Transform, Load (ETL)
[9] Data Pipeline

One thought on “Coherent Logic Enterprise Data Adapter: The Foundation For Your Data Acquisition Strategy in Java”

Leave a Reply

Your email address will not be published. Required fields are marked *

We invite you to speak with us today about your next software project.