Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
97 lines (93 sloc) 6.24 KB


Support storing of Enum

Support encoding of Calendar field type.

Support encoding of BigDecimal field type.

Support encoding of BigInteger field type.

Externalize query’s pagination key to string and re-internalize it later.

Support S3 field

Add simple S3 function to Jsoda.

Add S3 list iterator.

Support Atomic Counters in DynamoDB and emulate in SimpleDB

Support updateItem in DynamoDB and emulate in SimpleDB. setAction(AttributeAction)

MemCache integration

Add JSON-Dao to support getting and putting data in JSON. Add toJson and fromJson util methods in Jsoda.

Custom marshaller beside JSON of field to marshal/de-marshal to string. Low priority.

Support batchGetItem in DynamoDB and emulate for SimpleDB. Is it needed? Low priority.

Index table for DynamoDB, for secondary index and query. Low priority.

TODOs for 0.9

Add samples

Make Serializable optional. Revamp CachePolicy and Serializable class for caching.

Expose the dump method via Jsoda to aid debugging.

Support varargs and array in batchPut()

Support varargs and array in batchDelete()

Extendable annotation handling framework

Move data generation, cleansing, and data validation to annotation handling framework.

Data cleansing: Remove char (-), remove all digits, trim, touppoer, tolower, MaxValue, MinValue, AbsValue, Ceil/floor.

Add field validation: Required, MaxSize, MinSizexb, StartsWith, EndsWith, Contains, NotContains, RegexMatch, OneOf, MaskMatch, EmailMatch,

Refactor BuiltinFunc and ReflectUtil to wwutil.model

Add gh-pages

Publish javadoc

Add for about and tutorial.

Support findBy a field

TODOs for 0.8

Refactor and migrate Jsoda into its own package

Add makeCacheKey in Jsoda and call it from other places instead of building cache keys all over the place

Add caching id/rangekey to CacheByName

Combine Dao.get(arg1) and Dao.get(arg1, arg2)

Support get by id/rangekey

Support DynamoDB delete

Support DynamoDB batch delete

Replace Column annotation with AttrName annotation

Support Long/Integer type Id

Force registration of model class with dbtype, to override dbtype annotation.

Dynamic registration at the first use of an object via its class.

Refactor utest to test both SimpleDB and DynamoDB at one place.

Add more vigorous unit tests.

Add dummy MemCacheable as the default cache service.

Refactor object caching service out of Jsoda

Refactor and clean up the Jsoda class.

Support delete by id/rangekey, int/long/Integer/Long

Unit test delete in SimpleDB and DynamoDB.

Support batchDelete on id/rangekey, int/long/Integer/Long

Refactor query construction. Pass Query object to DbService implementation class to generate native query.

Move SimpleDB query generation from Query to SimpleDBMgr.

Support mixing of Select Id, other_fields for SimpleDB query.

  1. Support standalone Select Id => Select itemName() as before.
  2. Support Select Id, other1, other2 => Select other1, other2. Fill in Id in post query processing.

Fill in Id/RangeKey in post query processing for DynamoDB when only other fields are selected.

Support select count(*) in Query, for SimpleDB.

Support select count(*) in Query, for DynamoDB.

Add unit test for select count(*) for different queries.

Add query support for DynamoDB.

Support scan in Query. For DynamoDB, if query has a filter on Id AND a filter on ARangeKey, do query. Otherwise, do scan.

Support building filter conditions in DynamoDB



For DynamoDB, filter’s field must be the ARangeKey field

Support multi-operands for some of the comparison operator, like IN.

Add id and rangekey attributes to AttrFieldMap in Jsoda.

Support withConsistentRead in Query, for both SimpleDB and DynamoDB.

Support order by.

For DynamoDB, order by field must be the RangeKey field. Asc/Desc change the scan direction.

Add test for PrePersist and PostLoad

Add test for inherited model class

Migrate all annotations out of javax.persistence to remove dependency on ebj3-persistence.jar

Add PreValidation annotation.

Formalize order of operations in storing object: PrePersist, built-in basic value generators, built-in composite generators, PreValidation, built-in validation.

Strigify/de-strigify each supported data type in DataUtil.

Validate the list of supported field data types.

Support encoding of additional primitives data type like boolean, char, short.

Encode any other field object type other than in JSON

Support Set<ParamType> data type for field. Use Multi-Value for DynamoDB and JSON for SimpleDB.

Map Set<Integer>, Set<Long>, Set<Float>, Set<Double>, and Set<String> data type to DynamoDB Multi-Value.

Put different db objects into different namespaces of a cache, in case the same model is registered in more than one db.

Support and test putting null value on field, not saving the AttributeValue. Check with IS NULL and IS NOT NULL queries.

Integrate Apache Commons Logging

Iterator for query result. Add flag to disable caching objects in list result.

Query.hasNext(), Query.reset() to reset.

Support auto-increment version field for optimistic locking. Increment the version field in pre-store stage. PutIf(…, “version”, expected_old_version).

Add field value generators: DefaultGUID, DefaultComposite, and ModifiedTime.

Id annotation has two parts @Id(HashKey), @Id(RangeKey).

Combine the semantic of Id/RangeKey in DynamoDB and SimpleDB. Id is not unique by itself in the pair in DynamoDB.

Emulate composite key in SimpleDB. Revamp all the querying mechanism in SimpleDB.

Jump to Line
Something went wrong with that request. Please try again.