The GitHub Actions job "CI" on grails-core.git/feat/neo4j-gorm-registry-wiring 
has failed.
Run started by GitHub user borinquenkid (triggered by borinquenkid).

Head commit for run:
087b7bc10947579dfb60e9fa75f73883426858da / Walter Duque de Estrada 
<[email protected]>
feat: wire Neo4j adapter to GormRegistry's GormApiFactory mechanism

Completes the Neo4j GormRegistry migration plan's PR2: registers a
Neo4jGormApiFactory so entities backed by Neo4jDatastore resolve a
Neo4jGormStaticApi through GormRegistry instead of silently falling back
to the generic GormStaticApi. Without this, static/cypher-string API calls
(cypherStatic, findRelationship(s), findPath*, findShortestPath, find/
findAll with a cypher string) threw ClassCastException or
UnsupportedOperationException, since those methods only exist on
Neo4jGormStaticApi.

Turned out to require far less than the "rewrite Neo4jEntity/Node/
Relationship traits" originally scoped in the migration plan: Neo4j's
instance and validation APIs were already generic (GormInstanceApi/
GormValidationApi, no Neo4j-specific subclass), matching the
DefaultGormApiFactory's base implementations already. Only the static API
needed a factory override - mirroring MongoGormApiFactory's exact shape,
which only overrides createStaticApi() for the same reason.

Neo4jGormApiFactory#createStaticApi() resolves the datastore via
DatastoreResolver#resolve() rather than Neo4j's old bespoke
getDatastoreForQualifier()/datastoresByConnectionSource logic, since
qualifier/multi-datasource routing is now handled generically by
GormRegistry/GormApiResolver (the "O(M+N) scaling" work this plan depends
on). Verified this doesn't regress Neo4j's own multi-tenancy/multi-datasource
tests.

registerApiFactory() is called from Neo4jDatastore#initialize(), before
constructing the GormEnhancer whose constructor eagerly registers this
datastore's entities - registering after would leave those entities bound
to the generic factory forever, since GormEnhancer only registers each
entity once.

17 of the 34 tests marked @PendingFeature in the prior baseline-migration
commit now pass and had their annotations removed (ApiExtensionsSpec,
CypherQueryStringSpec, OneToManyUpdateSpec, MultiTenancySpec, PathSpec,
RelationshipSpec, NativeIdentityGeneratorSpec's saveAll test, whose fix
was already in place but unreachable until this factory was registered).
Full suite: 198/215 passing, 0 failures, 17 skipped (4 genuinely pending
- unrelated to this change - plus pre-existing @Ignore'd tests).

Co-Authored-By: Claude Sonnet 5 <[email protected]>

Report URL: https://github.com/apache/grails-core/actions/runs/29064697774

With regards,
GitHub Actions via GitBox

Reply via email to