Repository navigation
[Refactor] Architecture, contracts and ergonomics audit (Part 3: Engine SRP decomposition & dead code purge) (#643) - #648
Merged
remiceres merged 4 commits intoOct 26, 2026
Conversation
…te and visitor dispatching (#643) - Eradicate legacy dead event classes (Event, EventImpl, EventListener, KgramEventDispatcher) - Remove unused event manager references in Memory, Mappings, and Environments - Extract EvaluationState from Eval to isolate execution counters and cooperative cancellation - Extract EvalVisitorDispatcher to isolate ProcessVisitor and ResultListener lifecycle hooks - Encapsulate all Exp fields as private - Add comprehensive unit tests with zero SonarLint alerts and 100% test pass
…legacy stubs (#643) - Guard federated SERVICE execution against silent local fallback (throw QueryEvaluationException unless SILENT) - Delete dead classes QueryDefinitionChecker and Merge - Purge unused flags (isCheck, isConnect, COUNT_PROFILE, CACHE_MODE) and dead Exp fields (level, num, generated) - Consolidate empty edge arrays in Memory and remove dead Matcher mode - Reduce cognitive complexity of Eval.service by extracting processServiceMappings - Update unit tests with 100% pass
…ution materialization (#643) - Introduce GroupAggregator SPI to decouple Mappings from sparql.bridge.DirectGroupAggregation - Extract SolutionMaterializer from Memory.java to isolate query solution mapping materialization and projection - Extract BindingStack to manage low-level node/edge arrays and backjump levels - Introduce AutoCloseable ExecutionSession in SparqlQueryExecutor for clean producer lifecycle management - Add unit tests for GroupAggregator, BindingStack, and ExecutionSession with 100% pass
|
Test Results 422 files 422 suites 26s ⏱️ Results for commit de42126. ♻️ This comment has been updated with latest results. |
…ty and volatile aggregator (#643) - Guard ExecutionSession constructor against resource leaks if Eval.create fails - Make Mappings.groupAggregator volatile for thread-safe access - Remove orphan BindingStack to keep codebase strictly pruned of unused classes - Add comprehensive fallback tests in GroupAggregatorTest (null and false returning)
|
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR delivers Part 3 of the architectural audit and refactoring track (#643), targeting the modern KGRAM query execution engine (
fr.inria.corese.core.next.query.impl.engine).1. Legacy Event System Purge & Eval State Extraction
Event.java,EventImpl.java,EventListener.java,KgramEventDispatcher.java.EvaluationState.java(lifecycle, cancellation, timeout tracking) andEvalVisitorDispatcher.java(visitor dispatching).Exp.javafields.2. P0 Quick Wins & Safety
Eval.service()against silent local fallback when no provider is configured. ThrowsQueryEvaluationExceptionunless explicitSERVICE SILENTis requested.QueryDefinitionChecker.javaandMerge.java.isCheck,isConnect,COUNT_PROFILE,CACHE_MODE) and dead fields inExp.java(level,num,generated).Eval.service()by extractingprocessServiceMappings().3. P1 SRP Decomposition & Dependency Inversion
Mappings.javafromsparql.bridge.DirectGroupAggregationvia the new functional SPIGroupAggregator.java.SolutionMaterializer.javafromMemory.javato isolate solution mapping construction, projection, and sorting key evaluation.BindingStack.javato manage primitive node/edge array bindings and backjump level indices.ExecutionSession.javainSparqlQueryExecutor.java(AutoCloseable) ensuring clean lifecycle closure for producers.Validation
corese-core(3,200+ tests).NextModuleBoundaryTest).