Skip to content

Update the install4j installer project for 4.7.0 and install4j 13 - #491

Merged
tonygermano merged 5 commits into
OpenIntegrationEngine:mainfrom
tonygermano:install4j
Oct 16, 2026
Merged

tonygermano merged 5 commits into
OpenIntegrationEngine:mainfrom
tonygermano:install4j

Conversation

@tonygermano

Copy link
Copy Markdown
Member

Summary

Bring the installer project in tools/install4j up to date for 4.7.0. It converts the project to install4j 13.1.1, applies the changes used to build the 4.6.0 installers, and fixes problems with the 4.7.0 build output. It also makes the project file easier to review. Line endings are normalized, so a save in install4j no longer rewrites every line.

Fixes #341.

Changes

Repository housekeeping

  • Normalize *.install4j files to LF in git and mark them as text. install4j rewrites the whole file with the platform's line endings on save, so the CRLF file showed every line as changed after a save on Linux.
  • Add .git-blame-ignore-revs listing the normalization commit, so git blame and GitHub skip it.
  • Ignore the *.install4j~ backups that install4j writes on every save.

install4j 11 → 13

  • Open the project in install4j 13.1.1 and save it, with no manual edits. install4j migrated several beans and properties; the commit message lists them.

Installer changes

  • Run UninstallPreviousAction before installing files, so the installer can upgrade an existing installation. Files in conf are kept. (From the 4.6.0 build.)
  • Build all media sets by default. (From the 4.6.0 build.)
  • Raise javaMaxVersion from 25 to 999 so newer Java releases are accepted ([BUG] 4.6.0 does not allow running on java versions higher than 25 #341).
  • Bundle Adoptium JDK 21.0.12.1+1 instead of Zulu 17.0.15. The minimum Java version stays at 17.
  • Set mediaRoot to ../.. so the project builds no matter what the checkout directory is called.
  • Fix the publisher URL to openintegrationengine.org.
  • Stop installing the oieserver and oieserver.ps1 scripts, which conflict with the oieserver launcher that install4j generates.
  • Install configure-from-env only from the main file set, so upgrades replace it. It was in both file sets, which caused an error.
  • Remove the oiemanager launcher and stale exclusions for files that are no longer built (webapps, manager-lib, mirth-manager-launcher.jar).
  • Update the installer readme for upgrades and take the version from ${compiler:sys.version}. Remove the unused inline "Preview Release" text from the readme screen.

Merging

Please merge this with a fast-forward, not squash or rebase. .git-blame-ignore-revs refers to the normalization commit by its hash, and squashing or rebasing would change that hash.

Testing

  • Opened and saved the project in install4j 13.1.1.
  • Checked that ${compiler:sys.version} is substituted in the readme screen in install4j's preview mode.
  • Ran a dry run build

🤖 Generated with Claude Code

install4j does not keep a project file's existing line endings. It
rewrites the whole file with the platform's endings on save, so saving
on Linux turned every line of the CRLF file into a change.

Mark *.install4j as text so git stores it with LF and checks it out
with native endings. A save on either platform then shows only the
real changes. This commit only converts the stored file from CRLF to
LF.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Tony Germano <[email protected]>
List commits that only change formatting or line endings so git blame
skips them. GitHub uses this file automatically. Locally, set
blame.ignoreRevsFile to use it.

Start with the line-ending normalization of the install4j project
file.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Tony Germano <[email protected]>
The installer project sets backupOnSave, so every save in install4j
leaves a copy of the previous version next to the project file with
a trailing ~. Ignore those backups so they are not committed by
mistake.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Tony Germano <[email protected]>
Open the project in install4j 13.1.1 and save it. There are no manual
edits. install4j migrated the project file as follows:

- Numeric overwrite modes become named values ("never", "alwaysAsk").
- The update alert form component becomes a streamlined installation
  chooser set to UPDATE_ONLY, and conditions on
  sys.confirmedUpdateInstallation now check
  sys.streamlinedInstallation.
- The updateInstallationDirectory property on the startup action is
  replaced by a separate SetInstallationDirectoryAction.
- CreateProgramGroupAction becomes CreateDefaultStartMenuEntriesAction.
  The custom uninstaller menu name is dropped in favor of folderName
  and linkDirectory.
- Screen title font settings move into widget styles, with a default
  "Standard" widget style added.
- The wizard image edge colors are moved and slightly adjusted, and
  the imageEdgeBorder property is dropped.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Tony Germano <[email protected]>
Bring over the installer changes that were made to build the 4.6.0
release, and update the project for the 4.7.0 build output.

From the 4.6.0 build:

- Run an UninstallPreviousAction before installing files, so an
  upgrade removes the old installation's files first. Files installed
  with uninstallMode "never", such as conf, are kept.
- Drop buildAll="false" from buildIds.

For 4.7.0:

- Set mediaRoot to "../.." so it resolves to the repository root from
  tools/install4j. The old "../../../engine" value only worked when the
  repository was checked out into a directory named "engine".
- Bundle the Adoptium JDK 21.0.12.1+1 instead of Zulu 17.0.15. The
  minimum Java version stays at 17.
- Raise javaMaxVersion from 25 to 999 so newer Java releases are not
  rejected. Fixes OpenIntegrationEngine#341.
- Fix the publisher URL to openintegrationengine.org.
- Exclude the oieserver and oieserver.ps1 scripts from both file sets
  so they are not installed. They conflict with the oieserver launcher
  that install4j generates.
- Exclude configure-from-env from the file set that is never
  overwritten or uninstalled. It was in both file sets, which caused
  an error. It is now only in the main file set, so an upgrade
  removes the old copy and installs the new one.
- Remove the oiemanager launcher and the per-media-set exclusions of
  it. Its mirth-manager-launcher.jar is no longer built, and the
  Windows x64 archive was the only media set that did not exclude it.
- Drop the webapps, manager-lib and mirth-manager-launcher.jar file
  exclusions. These are no longer in the server/setup build output.
- Update the installer readme for upgrades. It now says that the
  installer can upgrade an existing installation and what an upgrade
  keeps, and it shows the version from ${compiler:sys.version} so it
  does not need to be edited for each release. The note on defaults
  now points to the conf directory, since log paths are set in
  log4j2.properties rather than mirth.properties.
- Remove the stale inline "Preview Release" text from the readme
  screen. The screen reads readme.html, so the inline copy was never
  shown.

install4j also renumbered the default widget style and added an id to
the screen title's label widget style when it saved the project.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Tony Germano <[email protected]>
@github-actions

Copy link
Copy Markdown

Test Results

128 files  ±0  128 suites  ±0   3m 39s ⏱️ +45s
729 tests ±0  729 ✅ ±0  0 💤 ±0  0 ❌ ±0 
819 runs  ±0  813 ✅ ±0  6 💤 ±0  0 ❌ ±0 

Results for commit f9ba73e. ± Comparison against base commit a750221.

@tonygermano
tonygermano merged commit f9ba73e into OpenIntegrationEngine:main Oct 16, 2026
11 checks passed
@tonygermano
tonygermano deleted the install4j branch October 16, 2026 16:55
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.

[BUG] 4.6.0 does not allow running on java versions higher than 25

4 participants