Class ApplicationManagerHost
java.lang.Object
org.j7m.middleware.cluster.ApplicationManagerHost
- All Implemented Interfaces:
HostingSupervisor, ManagedInvocation
Actual ApplicationManager hosting adapter with revision-pinned admission and counted in-flight
calls. ArtifactRepositoryClient verifies signed D14 metadata and every byte before repository
publication; the application manager also enforces its configured bundle verification policy.
Managed readiness and canary admission consume fresh application probe observations; missing,
failed or expired managed observations hold traffic. Legacy readiness remains RUNNING-based.
Inspection never waits for application probe code while holding this host's monitor.
This adapter upgrades hosted applications, not the middleware executable.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordServer-configured service binding; remote callers supply its alias only. -
Constructor Summary
ConstructorsConstructorDescriptionApplicationManagerHost(String nodeId, org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.deployer.ApplicationManager manager, org.j7m.middleware.application.repository.LocalApplicationRepository repository, org.j7m.middleware.application.repository.ArtifactRepositoryClient artifacts, Path staging, Map<String, ApplicationManagerHost.Contract> contracts, org.j7m.middleware.application.api.ApplicationActivationRequest activationRequest) Creates a host around the application's real manager. -
Method Summary
Modifier and TypeMethodDescriptionvoidCloses admission and waits for admitted invocations before invoking the runtime drain hook.inspect()Reads actual application admission state.byte[]Invokes a configured service contract; callers cannot select classes or methods.byte[]invokeRevision(String expectedRelease, String requestId, String contract, byte[] payload, Instant deadline) Invokes only when the admission gate still hosts the selected revision.voidreplace(ReleaseDescriptor release, Instant deadline) Replaces a drained instance using a verified trusted release and reopens admission.
-
Constructor Details
-
ApplicationManagerHost
public ApplicationManagerHost(String nodeId, org.j7m.middleware.api.MiddlewareRuntime runtime, org.j7m.middleware.deployer.ApplicationManager manager, org.j7m.middleware.application.repository.LocalApplicationRepository repository, org.j7m.middleware.application.repository.ArtifactRepositoryClient artifacts, Path staging, Map<String, ApplicationManagerHost.Contract> contracts, org.j7m.middleware.application.api.ApplicationActivationRequest activationRequest) Creates a host around the application's real manager.- Parameters:
nodeId- configured identityruntime- actual runtimemanager- actual manager owning this applicationrepository- actual manager repositoryartifacts- authenticated signed artifact sourcestaging- private artifact staging directorycontracts- fixed invocation aliasesactivationRequest- server-selected activation policy
-
-
Method Details
-
inspect
Reads actual application admission state.- Specified by:
inspectin interfaceHostingSupervisor- Returns:
- hosted revision and admission counters
-
drain
Closes admission and waits for admitted invocations before invoking the runtime drain hook.- Specified by:
drainin interfaceHostingSupervisor- Parameters:
deadline- absolute deadline- Throws:
IOException- on incomplete drain
-
replace
Replaces a drained instance using a verified trusted release and reopens admission.- Specified by:
replacein interfaceHostingSupervisor- Parameters:
release- server-catalog releasedeadline- absolute deadline- Throws:
IOException- for verification or uncertain runtime replacement
-
invoke
public byte[] invoke(String requestId, String contract, byte[] payload, Instant deadline) throws IOException Invokes a configured service contract; callers cannot select classes or methods.- Specified by:
invokein interfaceManagedInvocation- Parameters:
requestId- stable business request identitycontract- server-configured contract aliaspayload- bounded opaque application bytesdeadline- absolute deadline- Returns:
- independent application result bytes
- Throws:
IOException- unavailable, drained or unknown completion
-
invokeRevision
public byte[] invokeRevision(String expectedRelease, String requestId, String contract, byte[] payload, Instant deadline) throws IOException Invokes only when the admission gate still hosts the selected revision.- Specified by:
invokeRevisionin interfaceManagedInvocation- Parameters:
expectedRelease- selected revisionrequestId- stable identitycontract- configured aliaspayload- application bytesdeadline- absolute deadline- Returns:
- application response
- Throws:
IOException- when revision pinning is unsupported or admission fails
-