Skip to content

JasperFx 2.79.0

Choose a tag to compare

@jeremydmiller jeremydmiller released this 01 Oct 01:07

Fixes

  • #931 / #933: stores built against JasperFx ≤ 2.76 load again. In 2.77, IDocumentStoreDiagnostics.Subject and LoadDocumentAsync became abstract, so Marten 9.42 (and Polecat < 5.34, Fisher < 1.15) threw TypeLoadException at startup when resolved alongside JasperFx 2.77 or 2.78. Both members now have default implementations. On an older store, LoadDocumentAsync handles default-tenant loads through the store's own LoadDocumentJsonAsync, and anything it can't answer throws NotSupportedException with an upgrade message (#935).
  • New policy: in a minor release, members added to existing interfaces get default implementations. A ratchet test now enforces this for every public interface in JasperFx and JasperFx.Events (#937).

Features

  • #930: store-agnostic batch reads. IDocumentReadOperations.LoadManyAsync<T> (Guid / string ids) and IEventStoreOperations.FetchManyForWriting<T> (Guid / string ids: one handle per id, in order, each with its own version check). Both have default implementations that make one call per id; stores override them for a single round trip. Compliance coverage is included (#934).
  • #932: DocumentTypesAsync lists sub-classes. New DocumentTypeRef.RootTypeName / IsSubClass (#936).

Downstream follow-ups

marten#5550, polecat#712, fisher#374 (native batch reads); marten#5551, fisher#375, polecat#713 (sub-class listing); CritterWatch#1376, #1377.