YAWP! 1.5.0 Released

YAWP! 1.5.0 is ready and it brings:

Pipe API

The Pipe API is used to create an asynchronous information flow from one endpoint model (source) to another (sink). It can be used to create a variety of aggregation models without adding scalability bottle-necks.

See the Pipes API guide for more information on how to use them.

YAML configuration

From now on, the preferred way to configure YAWP! is using its YAML configuration file, here is an example file:

features:
  default:
    packagePrefix: com.yourpackage

The configuration file needs to be in the root classpath and to be called yawp.yml.

ThreadLocal YAWP client

After we’ve moved to the new YAWP!’s yaml configuration, it is possible to access the YAWP! client anywhere in our code. For instance, it is possible to use it from other servlets / services that we may have in our server app.

To use the new YAWP’s client, we just need to static import it:

import static io.yawp.repository.Yawp.yawp;

// then use it as a regular yawp client
yawp.save(person);
yawp(Person.class).where(...)

Shuffled Ids

Sometimes we may need to have sequential IDs in our endpoints. Those IDs are nice to be read by the users but they are not so nice with the datastore index architecture. To help with this, the @Id annotation now has an option to indicate that we want to shuffle the ID before it is saved or fetched from the datastore.

To use it, just set it to true:

@Id(shuffle = true)
private IdRef<Person> id;