Releases: replicant4j/replicant
Releases · replicant4j/replicant
v6.127
Changes in this release:
- Remove
CacheType.EXTERNAL
as no longer in use. - Cascade cache invalidations to dependent cached type graphs to avoid failure scenario when a chain of cached graphs as an invalidation in internal node of chain.
v6.126
Changes in this release:
- Reduce debug logging level around subscribing to "required channels".
- Avoid attempting to subscribe to required type channel if already subscribed.
v6.125
Changes in this release:
- Pause arez when changing the replicant connection, otherwise if the server initiates a close and the client has pending requests then the code will react during subscription purge and generate an error while the connection is null but the state has yet to be updated.
- Ensure non-cached required type graphs are transmitted to the client.
v6.123
Changes in this release:
- Update the
org.realityforge.zemeckis
artifact to version0.14
. - Update the
org.realityforge.react4j
artifacts to version0.190
. - Update the
org.realityforge.arez
artifacts to version0.205
. - Update the
org.realityforge.grim
artifacts to version0.09
. - Upgrade to require JDK 17 as a baseline.
v6.122
Changes in this release:
- Modify
AbstractSessionContextImpl.generateTempIdTable(...)
so that it chunks the insertions into the temp id table to work around limitations in some versions of SQL server of a maximum of 1000 rows in an INSERT statement.
v6.121
Changes in this release:
- Use
tryLock()
rather than lock in implementation ofremoveClosedSessions()
,pingSessions()
,removeAllSessions()
inReplicantSessionManagerImpl
to avoid deadlocks. These actions will just be skipped if they would otherwise cause blocking. - Avoid attempting bulk subscribe attempts submitted to the server for an existing subscription a matching filter.
- Generate a
AttemptedToUpdateStaticFilterException
exception when attempting to update a channel with a static filter. - Rework the way we expand changes for processing so that we break it down into cycles and for each cycle we:
- collect pending channel links
- select the highest priority channel with pending links
- select the channel links for the selected channel and perform a bulk subscribe for all channel links with the same channel id
- Add
isExplicitSubscribe
parameter tobulkCollectDataForSubscribe(...)
andbulkCollectDataForSubscriptionUpdate(...)
onReplicantSessionManagerImpl
to enable controlling the behaviour in generated domgen code.
v6.120
Changes in this release:
- Expose the "productionMode" compilation time parameter using
Replicant.isProductionMode()
. - Add
SystemSchema.getInwardChannelLinks(int)
,SystemSchema.getOutwardChannelLinks(int)
,EntitySchema.getOutwardChannelLinks()
andChannelSchema.getOutwardChannelLinks()
helper methods. These are not used at runtime but are primarily intended for usage in supporting tooling and testing infrastructure
v6.119
Changes in this release:
- Change the
ChannelLinkSchema.auto
property to being a boolean rather than an int.
v6.118
Changes in this release:
- Introduce
ChannelLinkSchema
entities that are not used at runtime but are a placeholder to store additional data about a channel/graph. - Add
EntityMessage.safeGetLinks()
helper method that initializes a links field if not present. - Rename
linkSourceGraphToTargetGraph(...)
tobulkLinkFromSourceGraphToTargetGraph(...)
inAbstractSessionContextImpl
to match conventions present in domgen generated code. - Add initial support for "bulk" loading of type graphs. While "bulk" loading is a bit of a misnomer given that type graphs have at most 1 subscription, the term is synonymous with loading using SQL queries in domgen generated code.
- Remove return value from bulk loading methods as implementations never return false, they generate an exception or perform the bulk load.
- Fix a bug in
AbstractSessionContextImpl.bulkLinkFromSourceGraphToTargetGraph(...)
where the ids used in linking from the source graph to the target graph were incorrectly inverted.
v6.117
Changes in this release:
- Pass the ChangeSet when performing bulk subscribe except on the outermost call where locks are acquired as the bulk subscribe methods may be invoked when expanding links outside the initial transaction.