Skip to content

renaming interface to runtime; moving in-memory from Scala to Kotlin#1948

Open
dragoslav wants to merge 18 commits into
masterfrom
release-6.0.0-in-memory-kotlin
Open

renaming interface to runtime; moving in-memory from Scala to Kotlin#1948
dragoslav wants to merge 18 commits into
masterfrom
release-6.0.0-in-memory-kotlin

Conversation

@dragoslav

Copy link
Copy Markdown
Collaborator
  • renaming module baker interface to runtime
  • removing BakerF.Config - keeping existing BakerConfig
  • moving baker in-memory runtime to a new module
    • converting in-memory from Scala to Kotlin, but keeping existing tests in Scala

w8mr and others added 18 commits May 11, 2026 14:00
- Migrated all 7 annotation files from Java to Kotlin
- Updated pom.xml with Kotlin build configuration
- Maintained full backward compatibility with Java consumers
- All annotations preserve runtime retention and proper targets
- Verified with full Maven build: all 21 modules compile successfully
- No breaking changes: existing Java, Scala, and Kotlin code works without modification
Create TestDataBuilders.kt to enable true unit testing by providing
helper functions that create Petri net objects without dependencies
on the full Recipe DSL pipeline.

Key features:
- Reuses RecipeCompiler helpers (interactionTransitionOf, createPlace, etc.)
- Supports creating EventDescriptor, EventTransition, InteractionTransition
- Enables testing individual functions without pipeline setup
- Made RecipeComponents and TransitionCollections internal for test access

All 82 existing tests still pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Converted all arc building and helper function tests to use TestDataBuilders
instead of the full Recipe DSL pipeline, achieving true unit testing.

Tests rewritten (11 total):
- buildInternalEventArcs - now creates transitions/events directly
- buildEventLimiterArcs - creates event transitions with firing limits
- buildEventPreconditionArcs (3 tests) - uses builder preconditions
- buildPreconditionErrors (4 tests) - uses builder transitions
- buildSensoryEventArcs - creates event transitions directly
- buildMultipleOutputFacilitatorArcs - creates shared ingredient transitions
- buildInteractionArcs - creates all components with builders
- buildMultipleOutputFacilitatorTransitions (2 tests) - no pipeline needed

Enhanced TestDataBuilders:
- Added outputEventIngredients parameter to simpleInteractionTransition
- Fixed InteractionFailureStrategy to use recipe.common.BlockInteraction()
- All builders now properly handle Scala interop

Benefits:
- Tests run faster (no Recipe DSL overhead)
- Tests are truly isolated (no pipeline dependencies)
- Clearer test intent (explicit test data creation)
- Easier to debug (minimal moving parts)

All 82 compiler tests still pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
#1940)

* Update the compiler to mostly use the kotlin data classes. Only the InteractionTransition and it's used clases are scala.
Next to all kotlin petrinet

* Removed interaction helper functio
Made originalName non-nullable in InteractionDescriptor
* Extracted baker-recipe-manager module from baker-akka-runtime

* Extracted Timeouts from AkkaBakerConfig

* Extracted akka baker actor system from akka baker runtime
Release 6.0.0 Scala and Kotlin recipe compilers with output comparison
Base automatically changed from release-6.0.0 to master June 25, 2026 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants