Class ApplicationManager

java.lang.Object
org.j7m.middleware.deployer.ApplicationManager

public final class ApplicationManager extends Object
Runtime-adjacent manager for classloader-based live application activation.

The manager is thread-safe. It owns extracted bundle directories, application classloaders, lifecycle objects, and registrations it creates. It delegates service export and registry binding to the existing Phase 1 runtime API and does not depend on concrete transport implementations.

  • Constructor Summary

    Constructors
    Constructor
    Description
    ApplicationManager(org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.application.api.ApplicationRepository repository)
    Creates an application manager.
    ApplicationManager(org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.application.api.ApplicationRepository repository, ApplicationPlatformLimits limits)
    Creates an application manager with explicit application-platform limits.
    ApplicationManager(org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.application.api.ApplicationRepository repository, ApplicationPlatformLimits limits, ManagedHostingOptions managedHostingOptions)
    Creates a manager with explicit trusted managed-profile capabilities.
    ApplicationManager(org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.application.api.ApplicationRepository repository, ApplicationPlatformLimits limits, ManagedHostingOptions managedHostingOptions, PublicKeyTrustStore signingTrust)
    Creates a host with explicit operator-owned bundle-signing trust.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.j7m.middleware.application.api.ApplicationActivation
    activate(org.j7m.middleware.application.api.ApplicationCoordinate coordinate, org.j7m.middleware.application.api.ApplicationActivationRequest request)
    Activates an application from a repository coordinate.
    org.j7m.middleware.application.api.ApplicationActivation
    active(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
    Returns the active snapshot for one exact application instance.
    Returns safe local application-platform status.
    Returns bounded safe lifecycle audit events emitted by this manager.
    org.j7m.middleware.application.api.ApplicationDeploymentResult
    deactivate(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
    Deactivates a running application instance.
    org.j7m.middleware.application.api.ApplicationDeploymentResult
    drain(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
    Drains a running application instance without stopping or unloading it.
    List<org.j7m.middleware.application.api.ApplicationActivation>
    Lists historical activation snapshots released from the active manager set.
    List<org.j7m.middleware.application.api.ApplicationActivation>
    list(org.j7m.middleware.application.api.ApplicationQuery query)
    Lists active application snapshots matching the query.
    org.j7m.middleware.application.api.ApplicationDeploymentPlan
    planActivation(org.j7m.middleware.application.api.ApplicationCoordinate coordinate)
    Creates an activation plan for an application coordinate.
    org.j7m.middleware.application.api.ApplicationDeploymentPlan
    planActivation(org.j7m.middleware.application.api.ApplicationCoordinate coordinate, boolean strictVerification, Map<String,String> configuration)
    Creates an activation plan without mutating runtime state.
    Optional<List<org.j7m.middleware.application.api.ManagedApplicationProbe>>
    probes(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
    Returns host-only probes bound to the exact activation generation.
    probeStatus(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
    Returns a cached bounded operational observation without executing application code.
    org.j7m.middleware.application.api.ApplicationDeploymentResult
    rollback(org.j7m.middleware.application.api.ApplicationInstanceId instanceId, org.j7m.middleware.application.api.ApplicationActivationRequest request)
    Rolls back a running upgraded application to its previous coordinate.
    serviceInterface(org.j7m.middleware.application.api.ApplicationInstanceId instanceId, String interfaceName)
    Loads an exported service interface class for an active application.
    org.j7m.middleware.application.api.ApplicationDeploymentResult
    unload(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
    Unloads a stopped application instance and releases local references.
    org.j7m.middleware.application.api.ApplicationDeploymentResult
    upgrade(org.j7m.middleware.application.api.ApplicationInstanceId instanceId, org.j7m.middleware.application.api.ApplicationCoordinate targetVersion, String strategy, org.j7m.middleware.application.api.ApplicationActivationRequest request)
    Performs a stop-start upgrade to an exact target coordinate.
    org.j7m.middleware.application.api.ApplicationDeploymentResult
    upgrade(org.j7m.middleware.application.api.ApplicationInstanceId instanceId, org.j7m.middleware.application.api.ApplicationCoordinate targetVersion, org.j7m.middleware.deployer.api.UpgradeOptions options, org.j7m.middleware.application.api.ApplicationActivationRequest request)
    Upgrades an active application using a local-runtime strategy.
    Returns upgrade and rollback history.

    Methods inherited from class Object

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

    • ApplicationManager

      public ApplicationManager(org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.application.api.ApplicationRepository repository)
      Creates an application manager.
      Parameters:
      runtime - runtime used for service export and registry binding
      repository - application repository used to fetch bundles
    • ApplicationManager

      public ApplicationManager(org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.application.api.ApplicationRepository repository, ApplicationPlatformLimits limits)
      Creates an application manager with explicit application-platform limits.
      Parameters:
      runtime - runtime used for service export and registry binding
      repository - application repository used to fetch bundles
      limits - bundle extraction and metadata limits
    • ApplicationManager

      public ApplicationManager(org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.application.api.ApplicationRepository repository, ApplicationPlatformLimits limits, ManagedHostingOptions managedHostingOptions)
      Creates a manager with explicit trusted managed-profile capabilities. Existing activation requests remain legacy unless j7m.annotations.profile is managed-v1.
      Parameters:
      runtime - runtime owning authenticated transports and exports
      repository - verified application repository
      limits - extraction and admission bounds, or null for defaults
      managedHostingOptions - host-owned finite integrations/policies; never bundle supplied
      Throws:
      IllegalArgumentException - for missing runtime or repository
      NullPointerException - for missing host options
    • ApplicationManager

      public ApplicationManager(org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.application.api.ApplicationRepository repository, ApplicationPlatformLimits limits, ManagedHostingOptions managedHostingOptions, PublicKeyTrustStore signingTrust)
      Creates a host with explicit operator-owned bundle-signing trust. Signature keys are independent of application metadata and repository verification records. Older constructors retain local development trust for compatibility.
      Parameters:
      runtime - authenticated runtime and export owner
      repository - application artifact repository
      limits - extraction and metadata bounds, or null for defaults
      managedHostingOptions - explicit host integration capabilities
      signingTrust - immutable operator-provided public signing keys; empty denies signed artifacts
      Throws:
      IllegalArgumentException - for missing runtime or repository
      NullPointerException - for missing options or trust store
  • Method Details

    • planActivation

      public org.j7m.middleware.application.api.ApplicationDeploymentPlan planActivation(org.j7m.middleware.application.api.ApplicationCoordinate coordinate)
      Creates an activation plan for an application coordinate.
      Parameters:
      coordinate - application coordinate to plan
      Returns:
      activation plan
    • planActivation

      public org.j7m.middleware.application.api.ApplicationDeploymentPlan planActivation(org.j7m.middleware.application.api.ApplicationCoordinate coordinate, boolean strictVerification, Map<String,String> configuration)
      Creates an activation plan without mutating runtime state.
      Parameters:
      coordinate - application coordinate to plan
      strictVerification - whether strict verification is required
      configuration - safe planning configuration
      Returns:
      activation plan
    • activate

      public org.j7m.middleware.application.api.ApplicationActivation activate(org.j7m.middleware.application.api.ApplicationCoordinate coordinate, org.j7m.middleware.application.api.ApplicationActivationRequest request)
      Activates an application from a repository coordinate.
      Parameters:
      coordinate - application coordinate to activate
      request - activation request
      Returns:
      activation snapshot
    • deactivate

      public org.j7m.middleware.application.api.ApplicationDeploymentResult deactivate(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
      Deactivates a running application instance.
      Parameters:
      instanceId - active instance id
      Returns:
      deactivation result
    • drain

      public org.j7m.middleware.application.api.ApplicationDeploymentResult drain(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
      Drains a running application instance without stopping or unloading it.

      The transition is idempotent for an already draining instance. A successful drain closes the managed invocation gate and invokes the application drain hook while preserving services, registrations, classloader or module-layer ownership, and cleanup diagnostics for the later stop/unload path.

      Parameters:
      instanceId - active instance id
      Returns:
      drain result
    • unload

      public org.j7m.middleware.application.api.ApplicationDeploymentResult unload(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
      Unloads a stopped application instance and releases local references.
      Parameters:
      instanceId - stopped instance id
      Returns:
      unload result
    • upgrade

      public org.j7m.middleware.application.api.ApplicationDeploymentResult upgrade(org.j7m.middleware.application.api.ApplicationInstanceId instanceId, org.j7m.middleware.application.api.ApplicationCoordinate targetVersion, String strategy, org.j7m.middleware.application.api.ApplicationActivationRequest request)
      Performs a stop-start upgrade to an exact target coordinate.
      Parameters:
      instanceId - active instance id
      targetVersion - target coordinate
      strategy - requested strategy, only stop-start is supported
      request - activation request for the target version
      Returns:
      deployment result
    • upgrade

      public org.j7m.middleware.application.api.ApplicationDeploymentResult upgrade(org.j7m.middleware.application.api.ApplicationInstanceId instanceId, org.j7m.middleware.application.api.ApplicationCoordinate targetVersion, org.j7m.middleware.deployer.api.UpgradeOptions options, org.j7m.middleware.application.api.ApplicationActivationRequest request)
      Upgrades an active application using a local-runtime strategy.
      Parameters:
      instanceId - active instance id
      targetVersion - target coordinate
      options - upgrade options
      request - activation request for the target version
      Returns:
      deployment result
    • rollback

      public org.j7m.middleware.application.api.ApplicationDeploymentResult rollback(org.j7m.middleware.application.api.ApplicationInstanceId instanceId, org.j7m.middleware.application.api.ApplicationActivationRequest request)
      Rolls back a running upgraded application to its previous coordinate.
      Parameters:
      instanceId - current upgraded instance id
      request - activation request for the previous version
      Returns:
      deployment result
    • list

      public List<org.j7m.middleware.application.api.ApplicationActivation> list(org.j7m.middleware.application.api.ApplicationQuery query)
      Lists active application snapshots matching the query.
      Parameters:
      query - application query
      Returns:
      matching activation snapshots
    • active

      public org.j7m.middleware.application.api.ApplicationActivation active(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
      Returns the active snapshot for one exact application instance.
      Parameters:
      instanceId - application instance id
      Returns:
      activation snapshot, or null when the instance is not currently active
    • historicalApplications

      public List<org.j7m.middleware.application.api.ApplicationActivation> historicalApplications()
      Lists historical activation snapshots released from the active manager set.
      Returns:
      immutable historical snapshot list
    • applicationStatus

      public Map<String,String> applicationStatus()
      Returns safe local application-platform status.
      Returns:
      immutable status metadata
    • serviceInterface

      public Class<?> serviceInterface(org.j7m.middleware.application.api.ApplicationInstanceId instanceId, String interfaceName)
      Loads an exported service interface class for an active application.
      Parameters:
      instanceId - application instance id
      interfaceName - service interface name
      Returns:
      interface class from the activation's classloader or module layer
    • upgradeHistory

      public List<String> upgradeHistory()
      Returns upgrade and rollback history.
      Returns:
      immutable history snapshot
    • auditEvents

      public List<String> auditEvents()
      Returns bounded safe lifecycle audit events emitted by this manager.
      Returns:
      immutable audit event snapshot
    • probes

      public Optional<List<org.j7m.middleware.application.api.ManagedApplicationProbe>> probes(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
      Returns host-only probes bound to the exact activation generation. Legacy profiles return Optional.empty; a managed activation without declared probes returns a present empty list. Callbacks reject new work after drain, execute outside host monitors and retain actual in-flight lifetime until application code exits, including after caller timeout.
      Parameters:
      instanceId - exact activation instance
      Returns:
      immutable finite callback inventory, never caller-authorized remote methods
      Throws:
      org.j7m.middleware.api.MiddlewareException - when the instance is unknown
    • probeStatus

      public Optional<ManagedProbeCoordinator.Snapshot> probeStatus(org.j7m.middleware.application.api.ApplicationInstanceId instanceId)
      Returns a cached bounded operational observation without executing application code. Legacy activations and managed activations without declared probes return empty. A present UNKNOWN observation never proves deployment readiness.
      Parameters:
      instanceId - exact owned activation generation
      Returns:
      fresh cached observation, or empty when no probes are registered
      Throws:
      org.j7m.middleware.api.MiddlewareException - if the activation does not exist