Skip to content

Releases: sai-pullabhotla/catatumbo

2.7.0

09 Mar 15:05
Compare
Choose a tag to compare
  • Enhanced the QueryResponse to provide access to metadata of the response (QueryResponseMetadata). This metadata can be used to determine the status of query execution/whether or not there are more results after the last cursor/limit.
  • Upgraded the underlying client library to the latest version, 1.64.0.

2.6.0

01 Oct 10:50
Compare
Choose a tag to compare
  • Updated the Optimistic Locking/Entity Versioning to use the parent transaction, if one exists.
  • Upgraded the underlying client library to the latest version, 1.46.0.

2.5.0

20 Feb 00:46
Compare
Choose a tag to compare
  • Added support for creating read-only or read-write transactions. Prior to this version, Transactions were always read-write.
    • Created a new enum named TransactionMode
    • EntityManager#newTransaction method is overloaded to accept the desired transaction mode.
    • EntityManager#executeInTransaction method is overloaded to accept the desired transaction mode.
  • Marked the TransactionalTask interface as a Functional Interface.
  • Upgraded the underlying client library to the latest version, 1.16.0.

2.4.0

11 Dec 01:01
Compare
Choose a tag to compare
  • Fixed an issue with persisting of unindexed List/Set values defined in an Embeddable.
  • Upgraded the underlying client library for Google Cloud Datastore to the latest version, 1.12.0.

2.3.0

17 Sep 13:20
Compare
Choose a tag to compare
  • Model classes (@Entity, @Embeddable and @MappedSuperClass) can now use Builder pattern, in addition to the previously supported Classic Java Beans pattern (a.k.a POJO). Builder pattern helps the cases where persistence objects need to be immutable or to ensure that the objects state is always valid/consistent.
  • Updated the EntityManager, DatastoreTransaction, DatastoreBatch to throw two specialized exceptions in certain cases:
    • EntityAlreadyExistsException - when attempting to insert a duplicate key
    • EntityNotFoundException - if the entity with the given key is not found, during an update operation
  • Fixed a couple of typos in the exception messages generated by the Marshaller
  • Upgraded the underlying client library for Google Cloud Datastore to the latest version, 1.5.1.

2.2.0

23 Jul 02:21
Compare
Choose a tag to compare
  • Added the ability to skip persistence of fields if their value is null. The Property and Embedded annotations now support defining a field as optional. When optional is set to true, and if the field is null, the corresponding property will be completely omitted when saving to the Datastore. PropertyOverride can be used to override the optionality of fields defined in an Embeddable or MappedSuperClass.
  • Added support for persisting/loading Map of Maps to/from Embedded Entity
  • Enhanced the Metadata API to return all Kinds excluding any System Kinds. Kind names that begin with double underscores will be omitted from the returned list.
  • Added support for deletion of all Entities of a given Kind, given the Kind name. This can be used in conjunction with the above feature to clean up an entire namespace (e.g. for cleaning up test data).
  • Upgraded the underlying google-cloud-datastore API to the latest version, 1.2.3.

2.1.0

21 Jun 03:17
Compare
Choose a tag to compare
  • Provides programmatic access to Datastore Statistics (information available on GCD Dashboard). Various statistics are available through the DatastoreStats interface.
  • Added support for strongly typed identifiers. This allows custom classes to be used as Entity Identifiers. For example, entity User may declare its Identifier as of type UserId.
  • Added two new methods to the EntityManager and DatastoreTransaction interfaces to retrieve entities by their Key (DatastoreKey).
  • Enhanced the EntityManager interface to support ID/Key allocation.
  • Marked the DatastoreKey interface as Serializable.
  • Upgraded the underlying google-cloud-datastore API to the latest version, 1.2.0.
  • Fixed potential NullPointerException and ClassCastException in the DatastoreProperty Entity (part of the Metadata API).

2.0.0

25 Apr 05:24
Compare
Choose a tag to compare
  • Migrated to Java 8. Catatumbo now requires Java 8 or later. Version 1.4.0 is the last version that supports Java 7.
  • Replaced the classic Reflection based Method invocations with MethodHandlers for better performance.
  • Added support for the following types from java.time package:
    • LocalDate - maps to String in the Cloud Datastore
    • LocalTime - maps to String in the Cloud Datastore
    • LocalDateTime - Maps to String in the Cloud Datastore
    • OffsetDateTime - Maps to DateTime in the Cloud Datastore
    • ZonedDateTime - Maps to DateTime in the Cloud Datastore
  • Entity fields that are annotated with CreatedTimestamp or UpdatedTimestamp annotations now support the below new types from the java.time package:
    • OffsetDateTime
    • ZonedDateTime
  • Enhanced the Query Parameter bindings (positional and named) to support all new types from the java.time package.
  • Upgraded the underlying google-cloud-datastore API to the latest version, 1.0.0-rc2.

1.4.0

14 Mar 04:46
Compare
Choose a tag to compare
  • Enhanced the EntityManagerFactory to allow creation of EntityManager using advanced options such as connection timeout and read timeout. A new class, ConnectionParameters was created for this purpose. The ConnectionParameters class provides a standardized and consistent way to create EntityManager either for Datastore on GCP or Datastore Emulator.
  • Added a new annotation named ProjectedEntity to support mapping the results of a projection query. Query Results (Entity Query or Projection Query) can either be mapped to an Entity or ProjectedEntity. Using ProjectedEntity enforces additional checks (e.g. persistence of Projection Entities is disallowed).
  • Fixed the DefaultDatastoreMetadata to catch any underlying exceptions and re-throw them as EntityManagerException.
  • Upgraded the underlying google-cloud-datastore API to the latest version, 0.9.4-beta.

1.3.1

28 Feb 03:38
Compare
Choose a tag to compare
  • Enhanced support for multi-tenancy. The new class, Tenant, lets each thread to maintain a different namespace. This allows a single instance of EntityManager to read from/write to multiple namespaces in the Cloud Datastore.
  • Added support for automatically setting the creation and modification timestamp of entities. Two new annotations, @CreatedTimestamp and @UpdatedTimestamp were introduced to facilitate this.
  • Added support for retrieving the Datastore Metadata. The new Metadata API (DatastoreMetadata) allows -
    • Retrieval of Namespaces in the Cloud Datastore
    • Retrieve all Kinds in a Namespace
    • Retrieve all indexed Properties and their data types in a given Kind.
  • Extended the support for optimistic locking technique to DatastoreAccess.update(List) methods.
  • Implementations of QueryRequest now support binding multiple positional parameters using the newly added var-arg method, addPositionalBindings.
  • Removed the following misspelled and deprecated methods that were first deprecated in version 1.0.2:
    • DatastoreBatch.Response#getGneratedKeys()
    • DatastoreTransaction.Response#getGneratedKeys()
  • Updated Catatumbo to use the latest version, 0.9.3, of Google Cloud Java Client for Datastore API.