community-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Chase <gregch...@apache.org>
Subject Support for Apache Geode in Apache Zest
Date Thu, 16 Jun 2016 06:12:30 GMT
Dear Geode contributors,
I just got some detail about support for Apache Geode by Apache Zest in its
persistence abstraction.  It will be a while before they have a new
release, but this support is available in their github already.

Here is the implementation,
https://github.com/apache/zest-java/blob/develop/extensions/entitystore-geode/src/main/java/org/apache/zest/entitystore/geode/GeodeEntityStoreMixin.java

AND the configuration options that are supported initially can be seen in;
https://github.com/apache/zest-java/blob/develop/extensions/entitystore-geode/src/main/java/org/apache/zest/entitystore/geode/GeodeConfiguration.java


What does this mean? Well, Zest has a persistence abstraction for its
runtime model, and users can swap out any of the other Entity Stores
without code changes beyond the "assembly" (start up).

Entities are declared like this;

public interface Book
{
    @Optional
    Property<ISBN> isbn();

    @Immutable
    Property<String> title();

    @Immutable
    Association<Author> author();

    @UseDefaults
    ManyAssociation<Review> reviews();

    @UseDefaults
    NamedAssociation<Distributor> distributors();
}

We can then do

@UnitOfWorkPropagation(MANDATORY)
public void createNewBook( String title, Author author )
{
    UnitOfWork uow = unitOfWorkFactory.currentUnitOfWork() )
    EntityBuilder<Book> builder = uow.newEntityBuilder(Book.class);
    builder.instance().title().set( title );
    builder.instance().author().set( author );
    builder.newInstance();
}

No implementation class needed for the Book interface. But if we had
additional methods on the Book interface, we can assign one or more
"Mixins", and each mixin can handle one or more of those methods.

Regards,

-Greg

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message