Cycle detected: Fix for Circular dependency report by ArchUnit#128
Cycle detected: Fix for Circular dependency report by ArchUnit#128ichxorya wants to merge 6 commits intouseocl:masterfrom
Conversation
…duce the number "cycle count" from 55 to 34 by refactoring
|
@h-man2 I would love to ask for your guidance and review on this. I'm willing to re-do my commits if this PR is too big and clunky to review; but it's actually hard to avoid since the existing state of architectural cycle problem is not really good at the start. |
There was a problem hiding this comment.
Pull request overview
This PR addresses ArchUnit-reported circular dependencies (Issue #127) by refactoring package boundaries and introducing small abstraction interfaces so core runtime/model code no longer directly depends on parser/generator implementation details.
Changes:
- Decouple core system/generator/extension code from parser implementations via
InvariantCompiler,TypeCompiler, andIProcedureCompiler. - Move/rename several utility and SOIL-related classes/packages (e.g.,
SrcPos, sorting comparators, SOIL exceptions/types) to reduce cyclic package/module dependencies. - Update affected GUI/core tests, Maven configuration (test-jar), and add ArchUnit/cycle result artifacts.
Reviewed changes
Copilot reviewed 224 out of 225 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| use-gui/src/test/java/org/tzi/use/gui/views/diagrams/util/CreationTimeRecorderTest.java | Update TestModelUtil import to new package |
| use-gui/src/test/java/org/tzi/use/architecture/MavenCyclicDependenciesGUITest.java | Switch lifecycle annotation to JUnit Jupiter |
| use-gui/src/main/java/org/tzi/use/main/shell/Shell.java | Wire invariant/type/procedure compilers; manage per-system generator |
| use-gui/src/main/java/org/tzi/use/main/gui/swing/MainSwing.java | Set TypeCompiler and invariant compiler during startup |
| use-gui/src/main/java/org/tzi/use/main/gui/fx/JavaFXAppLauncher.java | Set TypeCompiler and invariant compiler during startup |
| use-gui/src/main/java/org/tzi/use/gui/mainFX/ModelBrowserSorting.java | Update sorting comparator package imports |
| use-gui/src/main/java/org/tzi/use/gui/mainFX/MainWindow.java | Set invariant compiler during model compilation |
| use-gui/src/main/java/org/tzi/use/gui/main/ModelBrowserSorting.java | Update sorting comparator imports (sys.sorting) |
| use-gui/src/main/java/org/tzi/use/gui/main/MainWindow.java | Set invariant compiler during model compilation |
| use-gui/pom.xml | Add use-core test-jar dependency for GUI tests |
| use-gui/maven_cyclic_dependencies_shell_results.csv | Add stored cycle-count artifact |
| use-gui/maven_cyclic_dependencies_runtime_results.csv | Add stored cycle-count artifact |
| use-gui/maven_cyclic_dependencies_gui_results.csv | Add stored cycle-count artifact |
| use-gui/maven_cyclic_dependencies_entire_project_results.csv | Add stored cycle-count artifact |
| use-core/src/test/java/org/tzi/use/utilcore/soil/VariableSetTest.java | Update VariableSet package import |
| use-core/src/test/java/org/tzi/use/utilcore/soil/VariableEnvironmentTest.java | Update SymbolTable usage/imports |
| use-core/src/test/java/org/tzi/use/utilcore/soil/SymbolTableTest.java | Update SymbolTable import package |
| use-core/src/test/java/org/tzi/use/utilcore/soil/StateChangesTest.java | Update TestModelUtil + StateDifference imports |
| use-core/src/test/java/org/tzi/use/uml/sys/soil/StatementEffectTest.java | Update VariableEnvironment import |
| use-core/src/test/java/org/tzi/use/uml/sys/ObjectCreation.java | Update TestModelUtil import |
| use-core/src/test/java/org/tzi/use/uml/sys/LinkTest.java | Update TestModelUtil import |
| use-core/src/test/java/org/tzi/use/uml/ocl/type/TypeTest2.java | Add new test file (currently non-JUnit) |
| use-core/src/test/java/org/tzi/use/uml/mm/statemachines/TestSignals.java | Update TestModelUtil import |
| use-core/src/test/java/org/tzi/use/uml/mm/statemachines/TestProtocolStateMachine.java | Update TestModelUtil import |
| use-core/src/test/java/org/tzi/use/uml/mm/ModelCreationTest.java | Add TestModelUtil import (new package) |
| use-core/src/test/java/org/tzi/use/uml/mm/MImportedModelTest.java | Add TestModelUtil import (new package) |
| use-core/src/test/java/org/tzi/use/uml/mm/MAssociationClassTest.java | Add TestModelUtil import (new package) |
| use-core/src/test/java/org/tzi/use/TestSystem.java | Update VariableEnvironment import |
| use-core/src/main/resources/grammars/use/USE.gpart | Import SrcPos from new util package |
| use-core/src/main/resources/grammars/testsuite/TestSuite.gpart | Import SrcPos from new util package |
| use-core/src/main/resources/grammars/soil/Soil.gpart | Import SrcPos from new util package |
| use-core/src/main/resources/grammars/shell/ShellCommand.gpart | Import SrcPos from new util package |
| use-core/src/main/resources/grammars/ocl/OCL.gpart | Import SrcPos from new util package |
| use-core/src/main/resources/grammars/generator/Generator.gpart | Import SrcPos from new util package |
| use-core/src/main/java/org/tzi/use/util/SrcPos.java | Move SrcPos to org.tzi.use.util package |
| use-core/src/main/java/org/tzi/use/uml/sys/StatementEvaluationResult.java | Update SOIL type/exception imports |
| use-core/src/main/java/org/tzi/use/uml/sys/sorting/UseModelElementFileOrderComparator.java | Move comparator package to uml.sys.sorting |
| use-core/src/main/java/org/tzi/use/uml/sys/sorting/UseFileOrderComparator.java | Move comparator package to uml.sys.sorting |
| use-core/src/main/java/org/tzi/use/uml/sys/sorting/package.html | Add package doc for sorting package |
| use-core/src/main/java/org/tzi/use/uml/sys/sorting/AlphabeticalOperationComparator.java | Move comparator package to uml.sys.sorting |
| use-core/src/main/java/org/tzi/use/uml/sys/sorting/AlphabeticalNamedElementComparator.java | Move comparator package to uml.sys.sorting |
| use-core/src/main/java/org/tzi/use/uml/sys/sorting/AlphabeticalInvariantComparator.java | Move comparator package to uml.sys.sorting |
| use-core/src/main/java/org/tzi/use/uml/sys/sorting/AlphabeticalConditionComparator.java | Move comparator package to uml.sys.sorting |
| use-core/src/main/java/org/tzi/use/uml/sys/sorting/AlphabeticalConditionByNameComparator.java | Move comparator package to uml.sys.sorting |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/VariableSet.java | Move VariableSet into uml.sys.soil |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/SoilEvaluationContext.java | Update VariableEnvironment import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MWhileStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MVariableDestructionStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MVariableAssignmentStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MStatement.java | Use util.SrcPos and move exception import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MSequenceStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MRValueOperationCall.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MRValueNewObject.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MRValueNewLinkObject.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MRValueExpression.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MRValue.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MOperationCallInverseStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MObjectRestorationStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MObjectOperationCallStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MObjectDestructionStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MNewObjectStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MNewLinkObjectStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MLinkInsertionStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MLinkDeletionStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MLibraryOperationCallStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MIterationStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MExitOperationStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MEnterOperationStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MEmptyStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MConditionalExecutionStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MBlockStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/MAttributeAssignmentStatement.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/EvalUtil.java | Update EvaluationFailedException import |
| use-core/src/main/java/org/tzi/use/uml/sys/soil/EvaluationFailedException.java | Move exception into uml.sys.soil package |
| use-core/src/main/java/org/tzi/use/uml/sys/MSystemState.java | Update StateDifference import |
| use-core/src/main/java/org/tzi/use/uml/sys/MSystem.java | Remove direct ASSL dep; add InvariantCompiler hook |
| use-core/src/main/java/org/tzi/use/uml/sys/MOperationCall.java | Use util.SrcPos |
| use-core/src/main/java/org/tzi/use/uml/sys/InvariantCompiler.java | Add new functional interface for invariant compilation |
| use-core/src/main/java/org/tzi/use/uml/sys/events/StatementExecutedEvent.java | Update StateDifference import |
| use-core/src/main/java/org/tzi/use/uml/sys/DerivedValueController.java | Update StateDifference import |
| use-core/src/main/java/org/tzi/use/uml/sys/DerivedLinkController.java | Update StateDifference import |
| use-core/src/main/java/org/tzi/use/uml/sys/DerivedAttributeController.java | Remove coverage visitor side-effect code; update imports |
| use-core/src/main/java/org/tzi/use/uml/ocl/extension/TypeCompiler.java | Add new functional interface for type compilation |
| use-core/src/main/java/org/tzi/use/uml/ocl/extension/RubyHelper.java | Move Ruby helper into extension package |
| use-core/src/main/java/org/tzi/use/uml/ocl/extension/ExtensionOperation.java | Adjust imports after RubyHelper move |
| use-core/src/main/java/org/tzi/use/uml/ocl/extension/ExtensionManager.java | Require injected TypeCompiler to decouple from OCLCompiler |
| use-core/src/main/java/org/tzi/use/uml/ocl/expr/VarDeclList.java | Remove parser-package imports (now in expr pkg) |
| use-core/src/main/java/org/tzi/use/uml/ocl/expr/VarDecl.java | Use util.SrcPos |
| use-core/src/main/java/org/tzi/use/uml/ocl/expr/Symtable.java | Move Symtable into uml.ocl.expr |
| use-core/src/main/java/org/tzi/use/uml/ocl/expr/SemanticException.java | Move exception into uml.ocl.expr |
| use-core/src/main/java/org/tzi/use/uml/ocl/expr/ExpSelectByType.java | Remove outdated import |
| use-core/src/main/java/org/tzi/use/uml/ocl/expr/ExpSelectByKind.java | Remove outdated import |
| use-core/src/main/java/org/tzi/use/uml/ocl/expr/Expression.java | Use util.SrcPos |
| use-core/src/main/java/org/tzi/use/uml/ocl/expr/ExprContext.java | Move ExprContext into uml.ocl.expr |
| use-core/src/main/java/org/tzi/use/uml/mm/statemachines/MStateMachine.java | Use util.SrcPos |
| use-core/src/main/java/org/tzi/use/uml/mm/statemachines/MProtocolStateMachine.java | Use util.SrcPos |
| use-core/src/main/java/org/tzi/use/uml/mm/MMPrintVisitor.java | Update sorting comparator imports |
| use-core/src/main/java/org/tzi/use/uml/mm/commonbehavior/communications/MTrigger.java | Switch to expr-package Symtable/SemanticException/ExprContext |
| use-core/src/main/java/org/tzi/use/uml/mm/commonbehavior/communications/MEvent.java | Switch to expr-package Symtable/SemanticException/ExprContext |
| use-core/src/main/java/org/tzi/use/uml/mm/commonbehavior/communications/MCallEvent.java | Switch to expr-package Symtable/SemanticException/ExprContext |
| use-core/src/main/java/org/tzi/use/parser/use/statemachines/ASTTransitionDefinition.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/statemachines/ASTStateMachine.java | Switch to expr-package SemanticException; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/use/statemachines/ASTStateDefinition.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/statemachines/ASTSignal.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/use/statemachines/ASTProtocolStateMachine.java | Switch to expr-package SemanticException; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/use/ASTPrePostClause.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/ASTPrePost.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/ASTOperation.java | Switch to expr-package SemanticException/Symtable; move CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/use/ASTModel.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/use/ASTInvariantClause.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/ASTImportStatement.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/use/ASTDataType.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/ASTConstraintDefinition.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/use/ASTClass.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/ASTAttribute.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/use/ASTAssociationEnd.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/ASTAssociationClass.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/use/ASTAssociation.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/testsuite/TestSuiteCompiler.java | Switch to expr-package SemanticException; update MTestSuite package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MVariationStart.java | Move testsuite sys classes to parser.testsuite.sys; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MVariationEnd.java | Move testsuite sys classes to parser.testsuite.sys; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MVariation.java | Move testsuite sys classes to parser.testsuite.sys; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MTestSuite.java | Move testsuite sys classes to parser.testsuite.sys; update CompilationFailedException usage |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MAssertSingleInvariant.java | Move testsuite sys asserts to parser.testsuite.sys; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MAssertPre.java | Move testsuite sys asserts; update VariableEnvironment import |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MAssertPost.java | Move testsuite sys asserts; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MAssertOclExpression.java | Move testsuite sys asserts; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MAssertGlobalInvariants.java | Move testsuite sys asserts; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MAssertClassInvariants.java | Move testsuite sys asserts; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/sys/MAssert.java | Move testsuite sys base assert; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTVariationStart.java | Update imports to new testsuite sys package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTVariationEnd.java | Update imports to new testsuite sys package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTVariation.java | Use util.SrcPos; update testsuite sys import |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTTestSuite.java | Switch to expr-package SemanticException; update MTestSuite package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTTestCase.java | Switch to expr-package SemanticException; update SymbolTable creation; update assert package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTAssertSingleInvariant.java | Switch to expr-package SemanticException; update assert package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTAssertPre.java | Switch to expr-package SemanticException; update assert package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTAssertPost.java | Switch to expr-package SemanticException; update assert package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTAssertOclExpression.java | Switch to expr-package SemanticException; update assert package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTAssertGlobalInvariants.java | Switch to expr-package SemanticException; update assert package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTAssertClassInvariants.java | Switch to expr-package SemanticException; update assert package |
| use-core/src/main/java/org/tzi/use/parser/testsuite/ASTAssert.java | Switch to expr-package SemanticException; use util.SrcPos; update assert package |
| use-core/src/main/java/org/tzi/use/parser/soil/SoilCompiler.java | Update SymbolTable creation + exception package |
| use-core/src/main/java/org/tzi/use/parser/soil/exceptions/CompilationFailedException.java | Move CompilationFailedException into parser.soil.exceptions; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/soil/environment/SymbolTable.java | Move SymbolTable into parser.soil.environment; decouple from AST types |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTWhileStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTVariableAssignmentStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTStatement.java | Update SymbolTable/VariableSet imports; adjust dirty-cause handling |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTSequenceStatement.java | Update VariableSet + CompilationFailedException imports |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTRValueNewObject.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTRValueNewLinkObject.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTRValueExpressionOrOpCall.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTRValue.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTOperationCallStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTObjectDestructionStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTNewObjectStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTNewLinkObjectStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTLinkInsertionStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTLinkDeletionStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTIterationStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTExitOperationStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTEnterOperationStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTEmptyStatement.java | Use util.SrcPos; update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTConditionalExecutionStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTBlockStatement.java | Switch to expr-package SemanticException; update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/soil/ast/ASTAttributeAssignmentStatement.java | Update CompilationFailedException import |
| use-core/src/main/java/org/tzi/use/parser/shell/ShellCommandCompiler.java | Update SymbolTable creation + exception package |
| use-core/src/main/java/org/tzi/use/parser/ocl/OCLCompiler.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTVariableInitialization.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTVariableDeclaration.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTUndefinedLiteral.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTUnaryExpression.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTTypeArgExpression.java | Switch to expr-package ExprContext/SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTType.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTTupleType.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTTupleLiteral.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTSimpleType.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTQueryExpression.java | Switch to expr-package ExprContext/SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTOperationExpression.java | Switch to expr-package ExprContext/SemanticException; use util.SrcPos |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTObjectReferenceExpression.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTObjectByUseIdExpression.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTModelQualifiedType.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTLetExpression.java | Switch to expr-package SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTIterateExpression.java | Switch to expr-package ExprContext/SemanticException/Symtable |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTInStateExpression.java | Switch to expr-package ExprContext/SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTIfExpression.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTExpression.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTEnumTypeDefinition.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTEnumLiteral.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTEmptyCollectionLiteral.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTElemVarsDeclaration.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTCollectionType.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTCollectionLiteral.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTCollectionItem.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTBinaryExpression.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/ocl/ASTAllInstancesExpression.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGVariableAssignment.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGProcedureCall.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGProcedure.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGOpExit.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGOpEnter.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGocl.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGLoop.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGInstruction.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGIfThenElse.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGBarrierInvariant.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGBarrierExpression.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGBarrier.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGAttributeAssignment.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGAtomicInstruction.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASTGAsslCall.java | Switch to expr-package SemanticException |
| use-core/src/main/java/org/tzi/use/parser/generator/ASSLCompiler.java | Switch to expr-package SemanticException; add PROCEDURE_COMPILER adapter |
| use-core/src/main/java/org/tzi/use/parser/Context.java | Import expr-package context/exception/symtable types |
| use-core/src/main/java/org/tzi/use/gen/tool/IProcedureCompiler.java | Add interface to decouple generator from parser |
| use-core/src/main/java/org/tzi/use/gen/tool/GGenerator.java | Use injected IProcedureCompiler instead of ASSLCompiler direct call |
| use-core/src/main/java/org/tzi/use/core/test/TestModelUtil.java | Move test model helper into use.core.test package |
| use-core/src/main/java/org/tzi/use/api/UseModelApi.java | Update SrcPos + exception imports after moves |
| use-core/src/main/java/module-info.java | Export updated/moved packages; adjust exports list |
| use-core/pom.xml | Build test-jar via maven-jar-plugin |
| pom.xml | Configure surefire pluginManagement (useModulePath=false) |
| docs/archunit-results/layers-current-failure-report.txt | Add stored ArchUnit layers report artifact |
| docs/archunit-results/cycles-current-failure-report.txt | Add stored ArchUnit cycles report artifact |
| .vscode/settings.json | Add workspace Java settings |
Comments suppressed due to low confidence (2)
use-core/src/main/java/org/tzi/use/util/SrcPos.java:22
SrcPosunnecessarily imports itself (import org.tzi.use.util.SrcPos;). This is redundant and can trigger unused-import checks; please remove the self-import and keep a blank line after the package declaration.
use-core/src/main/java/org/tzi/use/parser/soil/environment/SymbolTable.java:46- The Javadoc still references
ASTStatementin{@link #restoreState(ASTStatement) ...}/@see SymbolTable#restoreState(ASTStatement), butrestoreStatenow takesObjectand this class no longer depends onASTStatement. Please update these links/signatures in the Javadoc to match the new API.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (symbolTable.isDirty(name)) { | ||
| ASTStatement cause = symbolTable.getCause(name); | ||
| ASTStatement cause = (ASTStatement) symbolTable.getCause(name); | ||
| throw new CompilationFailedException( |
There was a problem hiding this comment.
symbolTable.getCause(name) now returns Object, but this code force-casts it to ASTStatement. If any future caller records a non-ASTStatement cause, this will throw ClassCastException while compiling statements. Consider avoiding the cast (use Object/String in the message) or tightening the SymbolTable API to return a safe type.
| package org.tzi.use.uml.ocl.type; | ||
|
|
||
| public class TypeTest2 { | ||
| public void testP() { | ||
| Type t = TypeFactory.mkBoolean(); | ||
| System.out.println(t.shortName()); | ||
| } | ||
| } |
There was a problem hiding this comment.
This class looks like an accidental/debug test: it has no JUnit annotation and prints to stdout, so it won’t run under the test suite but will compile as test code. Please remove it or convert it into a proper JUnit test with assertions (and no console output).
There was a problem hiding this comment.
@copilot apply changes based on this feedback Remove it for me
Edit: Seems that i have to do it myself
| private static final String RUNTIME_PACKAGE_RESULTS = "maven_cyclic_dependencies_runtime_results.csv"; | ||
| private static final String SHELL_PACKAGE_RESULTS = "maven_cyclic_dependencies_shell_results.csv"; | ||
|
|
||
| @Before | ||
| @BeforeEach | ||
| public void setup() { | ||
| // Delete the results file if it exists | ||
| File file = new File(GUI_PACKAGE_RESULTS); |
There was a problem hiding this comment.
The result files are written into the module working directory (see the *_RESULTS constants) and the setup only deletes one of them. Since these CSVs are also committed, running this test will modify tracked files and can accumulate results across runs. Consider writing under target/ (or a temp directory) and cleaning/overwriting all result files in @BeforeEach.
|
The changes of the PR are looking good. Could you provide some UML diagrams that describe the issue (the cycle) before the change and the new structure after the change? I think this would improve the description of the PR. |
I will make a document for this. Thank you for reminding! |
#127