Repository navigation
Conversation
Adds OutputLanguage.CSHARP, emitting a static class of const string constants so .NET workers talking to a JVM-hosted engine can stop hardcoding BPMN strings. Beta scope is constants only. Relations/Variants are omitted because every node of them derives from the JVM-only bpmn-to-code-runtime; in exchange the generated .cs file has no dependencies at all. Variable direction moves from the wrapper type into an XML doc comment. Emission is templated (CSharpWriter) since no C# poet library exists — recorded in ADR 020, which amends ADR 005. Output is compile-checked against the real C# compiler for all three engines, skipped when no .NET SDK is present and installed in CI. Closes #89
Contributor
|
Test Coverage
|
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.
Closes #89
What
Adds
OutputLanguage.CSHARP, generating astatic classofconst stringconstants so .NET workers talking to a JVM-hosted engine stop hardcoding BPMN strings.Beta scope
Constants only: process id, engine, elements, call activities, messages, service tasks, timers, errors, escalations, signals, variables.
Relations/Variantsare not generated — every node of them derives from the JVM-onlybpmn-to-code-runtime, so a partial navigation API would not compile. In exchange the generated.csfile has no dependencies at all. Variable direction moves from the wrapper type into an XML doc comment, so it still shows in IntelliSense.Two corrections to the issue
public static final" shape. Since typed navigation landed, every section exceptServiceTaskswraps values in runtime types — so plainconst stringis the only dependency-free option.static/js/app.js, which is dead code (index.htmlloadsmain.js). Web changes are inmain.js.app.js/json-app.jswant deleting in a separate cleanup.Notable
CSharpWriterdisambiguates a member whose name equals its enclosing type — C# rejects that (CS0542), which a BPMN element calledElementswould otherwise trigger. The JVM builders never hit it because their constants are UPPER_SNAKE.Emission is templated since no C# poet library exists. Recorded in ADR 020, which amends ADR 005.
Verification
TreatWarningsAsErrors=true): 0 warnings, 0 errors for Zeebe, Camunda 7, Operaton and nested subprocessesCSharpCompilationTestskips without a .NET SDK;actions/setup-dotnetadded tobuild-backend.ymlso it gates PRs.csfilename, C# highlighting, and the JVM runtime-dependency / library-sources panels correctly hidden — Kotlin path unchangedRelease
Intended to ship inside 6.0.0 — the version is already major from the existing breaking commits. Land this first, let release-please regenerate #88, then merge #88.