Releases: dasomel/egovframe-launcher
Releases · dasomel/egovframe-launcher
Release list
Release v1.0.7
[1.0.7] - 2026-07-15
Fixed
- RSP publish timeout:
server/publishcopies every registered deployable (several exploded WARs on the shared Tomcat) and regularly exceeded the generic 15s RPC timeout, making the automation fall back to file mode ("RSP publish 실패: i/o timeout"). Publish calls now get a dedicated 120s timeout.
Release v1.0.6
[1.0.6] - 2026-07-15
Added
- Version Badge & Release Notes Popup: The header now shows the running launcher version (stamped at build time from the latest CHANGELOG entry). Clicking it opens a popup with per-release notes fetched from GitHub Releases, and the badge highlights when a newer release is available.
Fixed
- RSP Deploy Race (Context Dead with 404): Tomcat's
autoDeploycan start a context while RSP is still copying the exploded WAR intowebapps/, leaving it failed withNoClassDefFoundError(e.g.jakarta/json/JsonException) even though the jar is present. After publish, the launcher now polls the app URL and re-publishes once if it stays 404, triggering a clean redeploy.
Release v1.0.5
[1.0.5] - 2026-07-15
Fixed
- UI Freeze While Streaming Logs: The log console appended every SSE line via
textContent +=(rebuilding the whole string per line, O(n²)) and forced a reflow per line, freezing the tab under heavy output (e.g. the 11-service MSA stack). Incoming lines are now batched every 250ms into a single text-node append, total lines are capped at 4,000, and the card grid is only re-rendered when target state actually changes (plus no rendering in hidden tabs). - Case-Sensitive Table Names (Linux MySQL): eGovFrame apps mix uppercase DDL/mappers with lowercase runtime SQL (e.g.
EgovAccessConfiguration'scomtnemplyrscrtyestbsquery in common-components), which fails on the Linux container defaultlower_case_table_names=0. New MySQL containers are created with--lower-case-table-names=1(matching the Windows-MySQL dev standard). Existing containers keep working but log a migration hint (docker rm -f egov-launcher-mysql+ re-run DB setup), since MySQL 8 only accepts this setting at data-directory initialization. - Common Components table comments: DB setup now also imports
script/comment/mysql(tableCOMMENTmetadata) after DDL/DML.
Release v1.0.4
[1.0.4] - 2026-07-15
Added
- DB Setup for Common Components (WAR): The launcher now recognizes the
egovframe-common-componentsDB layout (script/ddl/mysql+script/dml/mysqlalongsideglobals.properties) as a fourth DB pattern. The sharedcomschema is created without dropping (it coexists with the MSA stack's data), scripts are imported tolerantly, andglobals.propertiesis deliberately left untouched — its password is encrypted viaegovPasswordResolver, so the expectedcom/com01MySQL account is provisioned instead. No rebuild needed after DB setup.
Fixed
- msa-edu Build on Windows: Gradle wrapper build steps declared as
sh gradlew ...failed withexec: "sh": executable file not found. On Windows they now run via the siblinggradlew.batautomatically.
Verified
- msa-edu DB Setup: Confirmed already covered by the existing
composepattern — its self-managinginit.sqlruns as-is under root and themsaportaluser is created from the compose file'sMYSQL_USER/MYSQL_PASSWORD.
Release v1.0.3
[1.0.3] - 2026-07-15
Fixed
- MSA Common Components 503 on Menu Links: The launcher only started 6 of the stack's services, so gateway routes to EgovAuthor, EgovCmmnCode, EgovLoginPolicy, EgovQuestionnaire and EgovSearch returned
503 Service Unavailable. All five are now part of the auto-start chain (the first four on random ports via Eurekalb://routing). - EgovSearch Port Bind Failure on Windows: EgovSearch's default port 9992 can fall inside a Windows (Hyper-V) excluded port range and fail to bind even though nothing is listening; the launcher now pins it to 19006. Note: the search feature still requires a separate OpenSearch (9200) + search-model (
EgovSearch-Config/model) installation — without them the service starts and routes, but search queries fail.
Release v1.0.2
[1.0.2] - 2026-07-15
Fixed
- Embedded-DB Seed Data Corruption (Windows): Korean seed data in embedded-database WAR templates (e.g. simple-homepage's HSQLDB
shtdb.sql) rendered as mojibake when Tomcat ran under the RSP backend, because Spring's<jdbc:script>reads seed SQL with the JVM default charset (MS949 on Korean Windows). The launcher now injectsencoding="UTF-8"into<jdbc:script>elements across cloned WAR projects before build/deploy. MySQL-backed templates (portal, enterprise) were unaffected since their schemas are imported via the container'sutf8mb4client.
Release v1.0.1
[1.0.1] - 2026-07-15
Fixed
- Windows RSP Auto-Start: Hardened RSP backend discovery on Windows — filter out processes with a null
CommandLinein the WMI query (which previously made the whole PowerShell pipeline fail) and broadened RSP process matching. - Korean Log Corruption (VSCode): Tomcat console log encoding is now aligned with the RSP backend JVM's default charset (MS949 on Korean Windows for JDK ≤ 17), so server logs streamed into VSCode's output view render Korean correctly.
- Korean Log Corruption (Launcher UI): Child JVMs (Maven, Spring Boot) on Windows are forced to UTF-8 output via
JAVA_TOOL_OPTIONS; isolatedCATALINA_BASEcopies pin their console handler to UTF-8 to match the launcher's UTF-8 web UI. - Docker Container Recovery: Containers stuck in
Createdstate (e.g. after a failed port bind ondocker run) are now removed and recreated instead of endlessly retryingdocker start; host-port conflicts (such as a locally installed MySQL service on 3306) fail fast with a clear message before pulling images, anddocker startfailures include the daemon's error output. - VSCode Extension Detection: Extension status/install now uses the
bin\code.cmdCLI shim when the configured VSCode path points at the GUI binary (Code.exe), which silently ignores--list-extensions/--install-extension— previously the launcher kept reporting an already-installed Server Connector extension as missing and could not install it. - RSP Fallback Diagnostics: When the RSP backend is not detected, the file-based fallback now logs why instead of proceeding silently.
Release v1.0.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[1.0.0] - 2026-07-14
Added
- Developer Control Panel (egov-launcher): Go-based lightweight GUI dashboard to run and monitor eGovFrame targets.
- Isolate Tomcat Instance Run: Automatically package WAR targets using
mvn packageand deploy them to target-specific isolated Tomcat instances with auto-assigned HTTP and shutdown ports to prevent port conflicts. - Docker Integration: Idempotent provisioning of shared database/messaging middleware:
- MySQL 8.0 (auto-importing schema scripts in execution order, preventing race conditions via authenticated query ping checks)
- Redis 7-alpine (configured with credentials where required)
- RabbitMQ 3 (configured with a pre-created valid
.erlang.cookiefile, owned byrabbitmq:rabbitmqwith600permissions to avoid start failures)
- Automatic JDK Discovery: Scan system JDKs and select JDK 17 as the default target, falling back to the highest major version.
- Live Logging: Log streaming via Server-Sent Events (SSE) directly to the dashboard console.
- VSCode Workspace Integration: Provide one-click button to open targets inside VSCode (
code) and check required extensions (e.g. RedHat Server Connector). - Multi-Platform Native Builds: Cross-compilation support in
Makefilefor macOS (darwin-amd64,darwin-arm64) and Windows (windows-amd64,windows-arm64). - CI/CD Pipeline: GitHub Actions workflow for automatic unit tests, packaging, and draft release generation for tag triggers.