Skip to main content

Override Process

Overriding lets you replace a single JDito process from a dependency (for example, a valueProcess, contentProcess, or library logic) without forking the entire module.

warning

Use overrides only as a last resort.

Before overriding, talk to the module author whose process you want to change. Validate whether you truly need an override or whether the required behavior can be achieved via a Service or EntityService. Services make extensions simpler and more maintainable, and they keep you aligned with the modularization model.

When to use overrides

Prefer overrides only if an Extension Point or a Service cannot deliver the required behavior.

danger

Overridden processes lose modularization benefits.

Improvements made by the original module authors will not flow into your overridden process automatically. You must track upstream changelogs and changes and manually integrate them into your override process.

Risks and maintenance implications

Overriding breaks the update path of the original module for the affected process.

  • You lose automatic upstream improvements for that process.
  • You must manually align your override with future updates from the original module.
  • Each override adds long‑term maintenance cost and potential merge effort during upgrades.
  • Overrides can hide integration issues until runtime if not thoroughly tested.
warning

Before creating an override, ensure you are not undermining modularization. Prefer a maintainable extension (via Extension Points or Services) when possible.

note

Excluding code from a build: In some cases, you can use includeInBuild to omit specific code paths instead of overriding logic.

How to override a process

  1. Open the target process in the Designer.
  2. Click the "Override Process" button in the toolbar.
    override process
    Figure: Overriding a process in the Designer
  3. The Designer creates an overridden copy in your module's modification folder.
  4. Implement the required JDito logic in your overridden process.

During transpilation, your override replaces the original implementation. In the Designer, you can switch between your override and its source using the "Open Original Process" action.

info

Overridden processes behave like local source code during development and are merged into the transpiled project.

Best practices

  • Keep overrides as small and focused as possible.
  • Document why the override exists, the upstream version it was based on, and acceptance criteria.
  • Add automated tests that cover both the overridden behavior and integration boundaries.
  • Periodically review upstream changes and reconcile your override.
  • Prefer composition to duplication: call shared helpers or Services to avoid logic drift.