What's new in EzyPlatform 1.5.2?

This release focuses on Java version compatibility checks for both the platform and projects, extending Socket configuration with plugin-defined Protocols and load priority, and improving the Admin experience.
  1. Added Java version compatibility checks when installing projects
    When a project is packed, the SDK now detects the highest Java version required by its libraries and stores it as java.version in the project's info.properties file. When installing a project from the Market or uploading a project file, Admin compares this value with the current Java version and rejects the installation if the server's Java version is lower, showing a clear message with the required and current versions. The current Java version is also sent to the Market when downloading a project, so the Market can return a compatible build.
  2. Added Java version compatibility checks when updating EzyPlatform
    Each EzyPlatform release now declares its required Java version via java.version in platform.properties. Admin checks this requirement before downloading, preparing, and installing a new platform version. If the current Java version is not compatible, the update is stopped, the downloaded version is deleted, and Admin asks you to upgrade Java before trying again, preventing a server from being updated to a version it cannot run.
  3. Displayed the required Java version of projects in Admin
    The add-module, module list, and module details pages now show the Java version required by the latest version of each project. When a project requires a newer Java version than the one the server is running, a tooltip explains the incompatibility, so you can spot the issue before installing or updating.
  4. Added the set-java-version SDK command
    Added the set-java-version <properties file> <lib folders...> command to ezy.sh. It scans all JAR files in the given folders, detects the highest Java version required by their classes, and writes it as java.version into the properties file, also printing which JAR files decided the result.
  5. Added Protocol configuration for Socket plugins
    Socket plugins can now declare their own Protocols through the protocol.setting_file property in module.properties. When Socket starts, Protocols from each plugin are registered automatically, with zoneName and pluginName properties filled in if not provided. Protocols whose names already exist are skipped, and the pack and export commands now include the Protocol setting file automatically.
  6. Added Protocol overrides in Socket settings
    Socket settings now support a protocols section, allowing you to configure writerThreadPoolSize and add or override each Protocol by name with active, address, port, sslActive, maxRequestSize, serverCreator, configFile, and custom properties. This makes it possible to adjust Protocols per environment without modifying plugin files.
  7. Added load priority for Socket plugins
    Socket plugins are now registered in order of the priority value in module.properties, then by plugin name. This gives a stable, predictable load order, which is important when plugins share a Zone or depend on settings registered by other plugins.
  8. Added Enable/Disable controls for the Web server in Admin
    The Web dashboard now provides Enable and Disable buttons, matching the existing controls for Socket. When the Web server is disabled, Admin no longer pings it from the home page or the Web dashboard, avoiding unnecessary requests and misleading connection errors.
  9. Improved the Admin interface
    The Source Sans Pro font is now bundled with Admin instead of being loaded from Google Fonts, so the Admin, login, setup, and reset-password pages display correctly in offline or internal network environments. The date range picker now lets the start and end calendars be navigated independently, making it easier to select long date ranges.
  10. Extended SDK customization
    EnvironmentManager now provides getJavaVersion() to retrieve the Java version of the running server. WebViewLanguageDecorator now exposes webLanguageService to subclasses, making it easier to customize how languages are decorated in Web views.