Skip to content

v3.0.0 Migration Guide — io.miragon namespace

v3.0.0 moves bpmn-to-code to the miragon namespace. Nothing about how the plugin works changes — only the published coordinates and package names.

  • Maven group: io.github.emaarcoio.miragon
  • Gradle plugin id: io.github.emaarco.bpmn-to-code-gradleio.miragon.bpmn-to-code-gradle
  • Generated runtime imports: io.github.emaarco.bpmn.runtime.*io.miragon.bpmn.runtime.*

Coming from io.github.emaarco?

bpmn-to-code now lives here under io.miragon. If you are still on the old io.github.emaarco coordinates, you can switch at your own pace:

Old surfaceStill works after switching to io.miragon?How
Generated code importing io.github.emaarco.bpmn.runtime.*The io.miragon runtime jar still ships those types as @Deprecated aliases, so you can switch coordinates without regenerating right away. Removed in 4.0.
io.github.emaarco:* dependency coordinates and id("io.github.emaarco.bpmn-to-code-gradle")✅ (from the legacy release)The final io.github.emaarco 3.0.0 is published from the old emaarco/bpmn-to-code repo and redirects to io.miragon. This project itself only publishes io.miragon.

The deprecated runtime aliases are a safety net for an incremental switch, not a place to stay — the old import package is removed in 4.0. Switch coordinates and regenerate per module as described below.

Migrating

Gradle

kotlin
plugins {
    // before
    id("io.github.emaarco.bpmn-to-code-gradle") version "2.x"
    // after
    id("io.miragon.bpmn-to-code-gradle") version "3.0.0"
}

The plugin auto-adds the io.miragon:bpmn-to-code-runtime dependency for you. After switching, regenerate your Process API (./gradlew generateBpmnModelApi) so the generated imports point at io.miragon.bpmn.runtime.*.

Maven

xml
<plugin>
    <groupId>io.miragon</groupId>
    <artifactId>bpmn-to-code-maven</artifactId>
    <version>3.0.0</version>
</plugin>

If you declared the runtime or testing modules explicitly, update their groupId to io.miragon too, then regenerate (mvn generate-sources).

Regenerate, then drop the old imports

Within a single module, don't mix old- and new-package runtime types — the deprecated io.github.emaarco.bpmn.runtime.ProcessId and the new io.miragon.bpmn.runtime.ProcessId are distinct types. Regenerate the Process API and update your own imports together, in one step per module.

Why

bpmn-to-code is moving under the miragon brand so it can be hosted and supported as a company-backed project. Development continues as before — this is a packaging/branding change, not a change of maintainership or behavior.