Dowsers provide framework related on Domain Driven Development, Command Queries Request Segregation, Event Sourcing stuff.
An Introduction on entities subject
Some idea:
- On Entity Store:
- Add Event Store concept with Java Chronicle Implementation, and / or Mongo db
- Add Entity Store based on mongo db
- Ehcache memory store implementation
- add Json Query language
- Adding Web Service default implementation for:
- manage crud entity
- execute command
- calling view with filtering, limit, sort and skip methods
- Adding tool to build administrative web application based on meta
- View concept:
- add split operator on a item
- define a splitter based on iterable attribute
- Update doc
- Extends Spring Configuration:
- permit lazy initialization of MetaEntityContextProvider
- Extends find capability on EntityStore (see Issue #1). Now we can make some basic search like “find all entity reference of type X with attribute Y equal to Z”
- Fix bug issue #6 : MetaEntityStoreSupport looking meta on invalid reference.
- Simplify Spring configuration
- add access on EntityMapper from EntityManager (no deep knowledge of dowsers his required)
- Adding View concept:
- definition with aggregation of attribute, filter and join
- in memory implementation that follow runtime
- strategy to initialize view on start:
- do nothing
- wait to feed all view
- feed all view in background
- add possibility to register meta information from spring configuration
- add more test case on meta analyzer, entity serializer
- add possibility to add meta attribute dynamically even if meta attribute is not registered (or provided by meta context).
- add utility methods on entity Manager
- change some methods name on Reference to avoid error
- fix analyzer bug with Entity interface
- rename core.Version to Sequence
- extends EntityStore and EntityManager: adding a way to find all Reference on a specific entities collection
- add spring factory support
- Define Entity core (Reference, Attribute, Entity, Dynamic and proxy implementation, Serialization, Meta data, …)
- Define Entity Store with few implementation:
- In memory for testing
- Json data on File system
- Sharing pattern
- Caching with guava
- Define Meta entity Provider:
- Annnotation definition support
- File system definition
- In memory definition
- Filter based on meta data version or guava Predicate
- Define entity Manager
- Add Command Pattern Implementation
<dependency>
<groupId>org.intelligents-ia.dowsers</groupId>
<artifactId>dowsers-entity-manager</artifactId>
<version>1.0.3</version>
</dependency>
<repositories>
<repository>
<id>intelligents-ia-releases</id>
<name>Intelligents-ia releases repository</name>
<url>http://mvn.intelligents-ia.com/releases</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
This project is my personal study on this pattern. If you’re interested by this subject, you could spend some time on this link:
- Domain-Driven Design and Command-Query Separation example application, Erik Rozendaal, Xebia
- From martinfowler.com, Event Sourcing
- Fohjin.DDD
- cqrs-domain-events
- axonframework.org
- ncqrs