Class DefaultIsolationProvider

java.lang.Object
org.j7m.middleware.isolation.DefaultIsolationProvider
All Implemented Interfaces:
AutoCloseable, org.j7m.middleware.api.isolation.IsolationProvider

public final class DefaultIsolationProvider extends Object
Composite first-party isolation provider.

The provider delegates IsolationMode.IN_PROCESS_POLICY work to InProcessIsolationProvider and IsolationMode.LOCAL_PROCESS work to LocalProcessIsolationProvider. It is thread-safe and owns the delegated providers for its lifecycle.

  • Constructor Summary

    Constructors
    Constructor
    Description
    DefaultIsolationProvider(org.j7m.middleware.api.isolation.IsolationProviderId id, IsolationConfig config)
    Creates a composite provider.
  • Method Summary

    Modifier and Type
    Method
    Description
    List<org.j7m.middleware.api.isolation.IsolationAuditEvent>
    void
    final org.j7m.middleware.api.isolation.IsolationPolicyDecision
    evaluateEnvironment(org.j7m.middleware.api.isolation.IsolationSubject subject, org.j7m.middleware.api.isolation.EnvironmentPolicy policy, String name, String value)
     
    final org.j7m.middleware.api.isolation.IsolationPolicyDecision
    evaluateFileSystem(org.j7m.middleware.api.isolation.IsolationSubject subject, org.j7m.middleware.api.isolation.FileSystemPolicy policy, org.j7m.middleware.api.isolation.FileSystemAccess access, Path path)
     
    final org.j7m.middleware.api.isolation.IsolationPolicyDecision
    evaluateNetworkEgress(org.j7m.middleware.api.isolation.IsolationSubject subject, org.j7m.middleware.api.isolation.NetworkEgressPolicy policy, URI destination)
     
    final org.j7m.middleware.api.isolation.IsolationHealth
     
    final org.j7m.middleware.api.isolation.IsolationProviderId
    id()
     
    org.j7m.middleware.api.isolation.IsolationMetricsSnapshot
    final org.j7m.middleware.api.isolation.IsolationRecoveryReport
     
    org.j7m.middleware.api.isolation.IsolationExecutionHandle
    start(org.j7m.middleware.api.isolation.IsolationExecutionRequest request)
    Set<org.j7m.middleware.api.isolation.IsolationMode>
    final org.j7m.middleware.api.isolation.IsolationProviderType
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.j7m.middleware.api.isolation.IsolationProvider

    execute
  • Constructor Details

    • DefaultIsolationProvider

      public DefaultIsolationProvider(org.j7m.middleware.api.isolation.IsolationProviderId id, IsolationConfig config)
      Creates a composite provider.
      Parameters:
      id - provider identifier
      config - provider configuration
  • Method Details

    • supportedModes

      public Set<org.j7m.middleware.api.isolation.IsolationMode> supportedModes()
      Specified by:
      supportedModes in interface org.j7m.middleware.api.isolation.IsolationProvider
    • start

      public org.j7m.middleware.api.isolation.IsolationExecutionHandle start(org.j7m.middleware.api.isolation.IsolationExecutionRequest request)
    • auditEvents

      public List<org.j7m.middleware.api.isolation.IsolationAuditEvent> auditEvents()
      Specified by:
      auditEvents in interface org.j7m.middleware.api.isolation.IsolationProvider
    • metrics

      public org.j7m.middleware.api.isolation.IsolationMetricsSnapshot metrics()
      Specified by:
      metrics in interface org.j7m.middleware.api.isolation.IsolationProvider
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface org.j7m.middleware.api.isolation.IsolationProvider
    • id

      public final org.j7m.middleware.api.isolation.IsolationProviderId id()
      Specified by:
      id in interface org.j7m.middleware.api.isolation.IsolationProvider
    • type

      public final org.j7m.middleware.api.isolation.IsolationProviderType type()
      Specified by:
      type in interface org.j7m.middleware.api.isolation.IsolationProvider
    • evaluateFileSystem

      public final org.j7m.middleware.api.isolation.IsolationPolicyDecision evaluateFileSystem(org.j7m.middleware.api.isolation.IsolationSubject subject, org.j7m.middleware.api.isolation.FileSystemPolicy policy, org.j7m.middleware.api.isolation.FileSystemAccess access, Path path)
      Specified by:
      evaluateFileSystem in interface org.j7m.middleware.api.isolation.IsolationProvider
    • evaluateNetworkEgress

      public final org.j7m.middleware.api.isolation.IsolationPolicyDecision evaluateNetworkEgress(org.j7m.middleware.api.isolation.IsolationSubject subject, org.j7m.middleware.api.isolation.NetworkEgressPolicy policy, URI destination)
      Specified by:
      evaluateNetworkEgress in interface org.j7m.middleware.api.isolation.IsolationProvider
    • evaluateEnvironment

      public final org.j7m.middleware.api.isolation.IsolationPolicyDecision evaluateEnvironment(org.j7m.middleware.api.isolation.IsolationSubject subject, org.j7m.middleware.api.isolation.EnvironmentPolicy policy, String name, String value)
      Specified by:
      evaluateEnvironment in interface org.j7m.middleware.api.isolation.IsolationProvider
    • health

      public final org.j7m.middleware.api.isolation.IsolationHealth health()
      Specified by:
      health in interface org.j7m.middleware.api.isolation.IsolationProvider
    • recoveryReport

      public final org.j7m.middleware.api.isolation.IsolationRecoveryReport recoveryReport()
      Specified by:
      recoveryReport in interface org.j7m.middleware.api.isolation.IsolationProvider