TopLogic - the automated application engine
  • Releases
  • Dokumentation
  • Github
  • Discord
  1. Home
  2. Releases
  3. TL_8.0.0-alpha4
  4. #29286

8.0.0-alpha4
TopLogic Release

2026-05-21

enhancement

major
#28388
ResourceProvider via model annotation
#29236
ChangeLog: Filtering on composition tree of a root object
#29267
TreeLayout: 2D sub-grid for nodes with high fan-out
minor
#29249
Failed check should not be reported as "Internal error"
#29262
Application-specific browser tab title via component channel
#29286
Migrate Java source encoding from ISO-8859-1 to UTF-8.

defect

major
#29257
Missing object type in transient revisions
minor
#29284
Flow diagram: Font metric does not fit - texts flow beyond their frame
enhancement

minor

#29286

Migrate Java source encoding from ISO-8859-1 to UTF-8.

I18NMigration

Change Java source file encoding to UTF-8

The TopLogic engine historically uses ISO-8859-1 as source encoding(project.build.sourceEncoding in the parent POMs, Eclipse settings, resource bundles, doclet generator). This is unwieldy when using modern tools, browsers, diff viewers and external editors and regularly leads to mojibake with umlauts.

This ticket converts the engine completely to UTF-8.

Scope

  • *.java source files recoded (970+ files in the engine reactor).
  • *.properties files recoded (hand-maintained resource bundles under WEB-INF/conf/resources and generated META-INF/messages_*.properties).
  • project.build.sourceEncoding=UTF-8 in the three parent POMs.
  • data.proto (msgbuf source in com.top_logic.graphic.blocks) had itself U+FFFD replacements at °`; fixed so that msgbuf does not overwrite the fix in `ImageOrientation.java on every build.
  • Eclipse settings:
    • <project>, src/main/java, src/test/java to UTF-8; removed obsolete =ISO-8859-1 overrides.
    • One explicit encoding//<path>=UTF-8 line per .properties file in .settings/org.eclipse.core.resources.prefs (1392 entries). Folder-level or project default overrides do not work with .properties because the Java properties content type of Eclipse is assigned ISO-8859-1; only file-level overrides prevail against the content type default.
  • Core-Resource-I/O(ResourcesModule, ResourceFile/`LineReader`) reads and writes UTF-8.
  • Doclet-Generator(MessagesGenerator, TLDoclet) writes UTF-8 without \uXXXX escaping. The Normalize-Mojos(tl:normalize, tl:normalize-resource-file) also replace remaining \u-Escapes in hand-maintained bundles with real UTF-8 characters.
  • Util loader(PropertiesHelper, Country, XMain, FileCompiler, RefactorResources, ConvertThemeSettings, StackTraceDecoder, HelpPageIndex, DocumentationImporter, StreamUtilities.storeNormalized, ResourceResolver, ResourceMappingUtil, Ticket26529TransferVariantsToDynamicStorage Write page) converted. Audit via tl-mcp callers_of(Properties.load)/`store`.
  • Ticket26529TransferVariantsToDynamicStorage (read side) and MigrateResourcesToJavaDoc intentionally stay with ISO-8859-1 (legacy migration tools for old file formats). Kafka and ZooKeeper starters stay with Properties.load default(external configs, different convention).
  • tl-archetype-app: Template POMs and .settings/org.eclipse.core.resources.prefs adjusted so that newly generated projects are initially UTF-8 compliant.
  • tl-maven-plugin added to tl-parent-all <pluginManagement> (lazy, no chicken-and-egg in the fresh build). This makes mvn tl:<goal> from the engine root work, and eliminates hardcoded <version>8.0.0-SNAPSHOT</version> entries in the other parent POMs.

Code migration

For TopLogic-based applications that are upgrading to a UTF-8 engine, there is a new Maven Goal:

mvn tl:migrate-to-utf8

No version suffix required: the plugin is inherited from tl-parent-app as soon as the customer-pom.xml <parent> version has been upgraded to the new release.

The goal completes four steps in one call:

  1. **Source-Files**: converts .java and .properties files from ISO-8859-1 to UTF-8. per file is classified:
    • Pure ASCII: unchanged.
    • Already valid UTF-8: skipped and listed in the report as already-utf8 (indication of intent or existing mojibake).
    • Real ISO-8859-1: rewritten in UTF-8.
  2. **POMs**: flips project.build.sourceEncoding in every pom.xml from ISO-8859-1 to UTF-8.
  3. **Eclipse-Prefs**: in .settings/org.eclipse.core.resources.prefs encoding/<project>, encoding/src, encoding//src/main/java and encoding//src/test/java are set to UTF-8, obsolete =ISO-8859-1 overrides are removed.
  4. **Eclipse .properties overrides**: for each .properties file found, an encoding//<path>=UTF-8 line is created (prevents the ISO-8859-1 behavior of the Java properties content type in Eclipse).

Parameter:

  • -DbaseDir=<path> - target directory (default: project directory or CWD).
  • -Dextensions=java,properties[,xml,...] - Extensions to be converted.
  • -DdryRun=true - Reports without writing.
  • -DskipSources=true / -DskipPoms=true / -DskipEclipse=true - skip individual phases.

Customer upgrade flow

  1. Commit or push local changes - the goal writes directly.
  2. In the pom.xml pull up the <parent> version to the new release.
  3. mvn tl:migrate-to-utf8 (optionally before -DdryRun=true for preview).
  4. mvn install.
  5. Close and reopen .properties editors already opened in Eclipse so that the tooltip no longer shows determined from content type.

Customer-specific modules with .properties files are also converted; values with umlauts then end up on the disk as real UTF-8 bytes instead of \uXXXX escapes.

Status

Converted in branch CWS/CWS_29286_java_utf8. Validated: Fresh checkout reactor build (empty local repo) passes; tl:migrate-to-utf8 is idempotent against the engine reactor; tl:normalize-resource-file replaces verifiably remaining €` escapes with `€.

  • Get Started
  • Github
  • Discord
  • Das Unternehmen hinter TopLogic
  • Softwareentwicklung heute
  • Kontakt

© Copyright – Business Operation Systems GmbH

  • top-logic.com
  • Nutzungsbedingungen
  • Impressum
  • Rechtlicher Hinweis
  • Datenschutz
  • DE
  • Login