Skip to content

Latest commit

 

History

History
131 lines (116 loc) · 6.17 KB

File metadata and controls

131 lines (116 loc) · 6.17 KB

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 X.Y semantic versioning.

[Unreleased]

Added

  • ThreadPoolConfig.Builder now validates parameters (issue #44)
  • ApplicationContext.getDeployedAt() to track actual deployment timestamp
  • PlatformManager interface for dependency inversion (issue #36)
  • Native application execution support (issue #46)
    • NativeProcessLauncher for managing native executable processes
    • ApplicationManager now detects descriptor.isNativeImage() flag and routes to process launcher
    • ApplicationContextImpl tracks native Process for native image applications
    • Native process lifecycle management (start, stop with graceful shutdown)
    • Output redirection from native processes to platform logging
    • Support for GraalVM native images and other compiled executables
  • Container orchestration support (Docker/Podman/LXC)
    • ContainerLauncher for managing containerized applications
    • Support for Docker, Podman, and LXC container runtimes
    • Automatic image pulling for Docker/Podman
    • Container lifecycle management (launch, stop, remove)
    • Port mappings, volume mounts, environment variables, network configuration
    • Container output redirection to platform logging
    • Configuration via properties: container.runtime, container.image, container.ports, container.volumes
  • Swing Desktop UI (platform-java-swing-ui module)
    • Native desktop management interface using Java Swing
    • Application deployment via file chooser dialog
    • Lifecycle controls: Deploy, Start, Stop, Undeploy
    • Real-time metrics table (CPU time, heap usage, thread count)
    • Auto-refresh every 2 seconds
    • Input validation for application ID and main class
    • Native look and feel for the operating system
  • Terminal UI (platform-java-terminal-ui module)
    • Full-screen terminal interface using Lanterna (modern pure-Java terminal library)
    • Keyboard-driven navigation (arrow keys and vi-style j/k)
    • Color-coded application states (green=running, yellow=stopped, red=failed)
    • Real-time metrics updates (CPU time, heap, threads)
    • Lifecycle controls: Start, Stop, Undeploy
    • Auto-refresh every 2 seconds
    • Status bar with operation feedback and help text
    • Perfect for SSH sessions and headless server management
    • Pure Java (no native dependencies)

Fixed

  • ThreadPoolConfig.Builder missing parameter validation (issue #44)
  • ApplicationResponseDTO returns actual deployment time instead of current time (issue #45)
  • Tight coupling - ApplicationManager now implements PlatformManager interface (issue #36)
  • Updated all dependent modules to use PlatformManager interface instead of concrete ApplicationManager (issue #36)
  • ApplicationManager synchronization bottleneck - replaced class-level locking with fine-grained per-application locking (issue #37)

Performance

  • ApplicationManager now uses per-application ReentrantLock instead of synchronized methods
  • Enables parallel operations on different applications
  • Significantly improved scalability and throughput

Testing

  • Added comprehensive unit tests for platform-java-core module
  • Created ApplicationManagerConcurrencyTest to verify fine-grained locking
  • Added tests for DependencyResolver, ApplicationReloader, NativeLibraryLoader, ClassLoaderVersion
  • Added tests for NativeProcessLauncher and ContainerLauncher
  • Added tests for platform-java-swing-ui module (SwingConsoleTest, DeployDialogTest)
  • Added tests for platform-java-terminal-ui module (TerminalConsoleTest)
  • Test coverage at 39% instruction coverage (74 tests across 12 test classes)
  • Focus on API contracts and configuration validation
  • Integration tests require actual executables/containers
  • Swing UI tests limited to API validation due to headless environment constraints
  • Terminal UI tests limited to API validation due to TTY requirements

Documentation

  • NATIVE_EXECUTION.md - Complete guide to native process deployment (GraalVM, Rust, Go, C++)
  • CONTAINER_DEPLOYMENT.md - Complete guide to container orchestration (Docker/Podman/LXC)
  • platform-java-core/README.md - Module documentation with all components and deployment modes
  • platform-java-rest-api/README.md - Complete REST API reference with all endpoints
  • platform-java-web-console/README.md - Browser-based UI documentation
  • platform-java-swing-ui/README.md - Desktop UI documentation
  • platform-java-terminal-ui/README.md - Terminal UI documentation with keyboard controls
  • Updated README.md with all UI modules in management interfaces and deployment mechanisms
  • Updated QUICKSTART.md with all UI launch instructions (Web, Swing, Terminal)
  • All classes have complete Javadoc (NativeProcessLauncher, ContainerLauncher, SwingConsole, DeployDialog, TerminalConsole)

Changed

  • CI/CD pipeline now active with automated version bumping and artifact publishing

[1.1] - 2024-05-23

Added

  • Initial plugin ecosystem implementation
  • Storage plugins: S3, Database, Redis
  • Service registry plugins: Consul, Etcd, Eureka
  • Configuration plugins: Consul, Etcd, Vault, ZooKeeper
  • Cluster plugins: Consul, Etcd, Redis, ZooKeeper
  • REST API plugin: Netty-based high-performance server
  • Comprehensive README documentation for all modules
  • Test coverage documentation explaining coverage percentages
  • CI/CD pipeline with automatic versioning and deployment
  • GitHub Actions workflow for build, test, and deploy
  • PackageCloud.io integration for artifact publishing

Changed

  • Removed all wildcard imports, replaced with explicit imports
  • Added X.Y semantic versioning with auto-increment on main branch

Documentation

  • All modules have comprehensive JavaDoc coverage
  • README files for all 9 plugin modules
  • Test coverage explanations for integration modules
  • CI/CD documentation in ci/README.md

[1.0] - Earlier

Added

  • Core platform modules
  • Classloader isolation
  • Thread pool management
  • Security framework
  • Monitoring infrastructure
  • JMS messaging support
  • Configuration system
  • File system watcher
  • Deployment management
  • REST API framework
  • Web console
  • JMX metrics
  • Prometheus metrics
  • OpenTelemetry integration
  • Application launcher
  • Sample applications