Class JVMud

java.lang.Object
io.github.protasm.jvmud.execution.application.JVMud
All Implemented Interfaces:
AutoCloseable

public final class JVMud extends Object implements AutoCloseable
Application entry point and supervisor. Owns public endpoints, administrator identities and worker lifecycles. LPC execution belongs exclusively to separate worker JVMs; the engine remains available with no mudlibs.
  • Constructor Summary

    Constructors
    Constructor
    Description
    JVMud(EngineConfiguration configuration)
    Construction declares application configuration without booting a mudlib or binding a socket.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Engine TLS administration port.
    Names available for administrative startup, including mudlibs not yet running.
    void
    Blocks on engine lifetime, independently of the number of running mudlibs.
    Public endpoint binding address.
    void
    Closes engine admission, terminates every worker, and releases private state ownership.
    Human-readable engine and worker status, with no credentials.
    Same-account bootstrap and recovery socket path.
    static void
    main(String[] args)
    Operating-system entry point; command-line parsing delegates to the engine launcher.
    Returns lifecycle snapshots without waiting for a blocked worker.
    int
    Engine directory port; it never admits players to a mudlib.
    Revalidates the administrative filesystem boundary before stopping and restarting a mudlib.
    Host-facing restart using the previous port pair; administration uses restartManagedMudlib for boundary checks.
    void
    Starts the engine's player, TLS administration and same-account recovery endpoints with zero mudlibs.
    startMudlib(MudlibSpec spec, int playerPort, int adminPort)
    Boots a host-supplied manifest and publishes its port pair only after both bindings succeed.
    startMudlib(String name, int playerPort, int adminPort)
    Starts an administrator-selected name within the host-configured mudlib directory.
    void
    Stops only the selected mudlib, closing its listeners and active connections.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JVMud

      public JVMud(EngineConfiguration configuration)
      Construction declares application configuration without booting a mudlib or binding a socket.
  • Method Details

    • availableMudlibs

      public List<String> availableMudlibs() throws IOException
      Names available for administrative startup, including mudlibs not yet running.
      Throws:
      IOException
    • startMudlib

      public MudlibStatus startMudlib(String name, int playerPort, int adminPort) throws IOException
      Starts an administrator-selected name within the host-configured mudlib directory.
      Throws:
      IOException
    • restartManagedMudlib

      public MudlibStatus restartManagedMudlib(String id) throws IOException
      Revalidates the administrative filesystem boundary before stopping and restarting a mudlib.
      Throws:
      IOException
    • main

      public static void main(String[] args) throws IOException
      Operating-system entry point; command-line parsing delegates to the engine launcher.
      Throws:
      IOException
    • start

      public void start() throws IOException
      Starts the engine's player, TLS administration and same-account recovery endpoints with zero mudlibs.
      Throws:
      IOException
    • startMudlib

      public MudlibStatus startMudlib(MudlibSpec spec, int playerPort, int adminPort) throws IOException
      Boots a host-supplied manifest and publishes its port pair only after both bindings succeed. Administration must use the name overload, which first enforces the catalog boundary.
      Throws:
      IOException
    • stopMudlib

      public void stopMudlib(String id)
      Stops only the selected mudlib, closing its listeners and active connections.
    • restartMudlib

      public MudlibStatus restartMudlib(String id) throws IOException
      Host-facing restart using the previous port pair; administration uses restartManagedMudlib for boundary checks.
      Throws:
      IOException
    • mudlibs

      public List<MudlibStatus> mudlibs()
      Returns lifecycle snapshots without waiting for a blocked worker.
    • describe

      public String describe()
      Human-readable engine and worker status, with no credentials.
    • port

      public int port()
      Engine directory port; it never admits players to a mudlib.
    • adminPort

      public int adminPort()
      Engine TLS administration port.
    • localSocket

      public Path localSocket()
      Same-account bootstrap and recovery socket path.
    • bindAddress

      public String bindAddress()
      Public endpoint binding address.
    • await

      public void await() throws IOException
      Blocks on engine lifetime, independently of the number of running mudlibs.
      Throws:
      IOException
    • close

      public void close()
      Closes engine admission, terminates every worker, and releases private state ownership.
      Specified by:
      close in interface AutoCloseable