Class AbstractHttpRegistrySidecar<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>>

java.lang.Object
org.refcodes.rest.AbstractHttpRegistrySidecar<DESC,B>
Type Parameters:
DESC - the generic type
B - the generic type
All Implemented Interfaces:
org.refcodes.component.Configurable<HttpRegistryContext<DESC>>, org.refcodes.component.Destroyable, org.refcodes.component.Destroyable.DestroyAutomaton, org.refcodes.component.Initializable, org.refcodes.component.Initializable.InitializeAutomaton, org.refcodes.component.InitializedAccessor, org.refcodes.component.LifecycleComponent, org.refcodes.component.LifecycleComponent.LifecycleAutomaton, org.refcodes.component.LifecycleStatusAccessor, org.refcodes.component.Pausable, org.refcodes.component.Pausable.PauseAutomaton, org.refcodes.component.Resumable, org.refcodes.component.Resumable.ResumeAutomaton, org.refcodes.component.RunningAccessor, org.refcodes.component.Startable, org.refcodes.component.Startable.StartAutomaton, org.refcodes.component.Stoppable, org.refcodes.component.Stoppable.StopAutomaton, org.refcodes.mixin.AliasAccessor, org.refcodes.mixin.AliasAccessor.AliasBuilder<B>, org.refcodes.mixin.AliasAccessor.AliasMutator, org.refcodes.mixin.AliasAccessor.AliasProperty, org.refcodes.mixin.InstanceIdAccessor, org.refcodes.mixin.InstanceIdAccessor.InstanceIdBuilder<B>, org.refcodes.mixin.InstanceIdAccessor.InstanceIdMutator, org.refcodes.mixin.InstanceIdAccessor.InstanceIdProperty, org.refcodes.mixin.PortAccessor, org.refcodes.mixin.PortAccessor.PortBuilder<B>, org.refcodes.mixin.PortAccessor.PortMutator, org.refcodes.mixin.PortAccessor.PortProperty, IpAddressAccessor, IpAddressAccessor.IpAddressBuilder<B>, IpAddressAccessor.IpAddressMutator, IpAddressAccessor.IpAddressProperty, HttpRegistry<DESC,B>, HttpRegistrySidecar<DESC,B>, HttpRegistryUrlAccessor, HttpRegistryUrlAccessor.HttpRegistryUrlBuilder<B>, HttpRegistryUrlAccessor.HttpRegistryUrlMutator, HttpRegistryUrlAccessor.HttpRegistryUrlProperty, HttpServerDescriptorAccessor<DESC>, HttpServerDescriptorAccessor.HttpServerDescriptorBuilder<DESC,B>, HttpServerDescriptorAccessor.HttpServerDescriptorMutator<DESC>, HttpServerDescriptorAccessor.HttpServerDescriptorProperty<DESC>, HttpServerDescriptorFactory<DESC>, PingPathAccessor, PingPathAccessor.PingPathBuilder<B>, PingPathAccessor.PingPathMutator, PingPathAccessor.PingPathProperty, TrustStoreDescriptorAccessor, TrustStoreDescriptorAccessor.TrustStoreDescriptorBuilder<B>, TrustStoreDescriptorAccessor.TrustStoreDescriptorMutator, TrustStoreDescriptorAccessor.TrustStoreDescriptorProperty, org.refcodes.web.HostAccessor, org.refcodes.web.HostAccessor.HostBuilder<B>, org.refcodes.web.HostAccessor.HostMutator, org.refcodes.web.HostAccessor.HostProperty, org.refcodes.web.SchemeAccessor, org.refcodes.web.SchemeAccessor.SchemeBuilder<B>, org.refcodes.web.SchemeAccessor.SchemeMutator, org.refcodes.web.SchemeAccessor.SchemeProperty, org.refcodes.web.VirtualHostAccessor, org.refcodes.web.VirtualHostAccessor.VirtualHostBuilder<B>, org.refcodes.web.VirtualHostAccessor.VirtualHostMutator, org.refcodes.web.VirtualHostAccessor.VirtualHostProperty

public abstract class AbstractHttpRegistrySidecar<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>> extends Object implements HttpRegistrySidecar<DESC,B>
Abstract class for easily decorating a HttpRegistrySidecar.
  • Field Details

    • _lifeCycleAutomaton

      protected org.refcodes.component.LifecycleMachine.ManualLifecycleMachine _lifeCycleAutomaton
    • _pingRequestObserver

      protected RestRequestConsumer _pingRequestObserver
  • Constructor Details

    • AbstractHttpRegistrySidecar

      public AbstractHttpRegistrySidecar()
  • Method Details

    • isRunning

      public boolean isRunning()
      Specified by:
      isRunning in interface org.refcodes.component.RunningAccessor
    • isInitialized

      public boolean isInitialized()
      Specified by:
      isInitialized in interface org.refcodes.component.InitializedAccessor
    • getLifecycleStatus

      public org.refcodes.component.LifecycleStatus getLifecycleStatus()
      Specified by:
      getLifecycleStatus in interface org.refcodes.component.LifecycleStatusAccessor
    • pause

      public void pause() throws org.refcodes.component.PauseException

      Some "deactivated" status is communicated to the registry server.

      Specified by:
      pause in interface HttpRegistry<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>>
      Specified by:
      pause in interface org.refcodes.component.Pausable
      Throws:
      org.refcodes.component.PauseException
    • stop

      public void stop() throws org.refcodes.component.StopException

      Some "out-of-order" status is communicated to the registry server. Also stops a "ping" or "heartbeat" daemon.

      Specified by:
      stop in interface HttpRegistry<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>>
      Specified by:
      stop in interface org.refcodes.component.Stoppable
      Throws:
      org.refcodes.component.StopException
    • start

      public void start() throws org.refcodes.component.StartException

      Some "up-and-running" status is communicated to the registry server. May also start a "ping" or "heartbeat" daemon.

      Specified by:
      start in interface HttpRegistry<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>>
      Specified by:
      start in interface org.refcodes.component.Startable
      Throws:
      org.refcodes.component.StartException
    • resume

      public void resume() throws org.refcodes.component.ResumeException

      Some "up-and-running (again)" status is communicated to the registry server.

      Specified by:
      resume in interface HttpRegistry<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>>
      Specified by:
      resume in interface org.refcodes.component.Resumable
      Throws:
      org.refcodes.component.ResumeException
    • initialize

      public void initialize() throws org.refcodes.component.InitializeException
      Initializes the HttpRegistry by registering it at the service registry with a status such as "starting" or "initializing" or "not-ready-yet".
      Specified by:
      initialize in interface HttpRegistry<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>>
      Specified by:
      initialize in interface org.refcodes.component.Initializable
      Throws:
      org.refcodes.component.InitializeException - the initialize exception
    • isStoppable

      public boolean isStoppable()
      Specified by:
      isStoppable in interface org.refcodes.component.Stoppable.StopAutomaton
    • isPausable

      public boolean isPausable()
      Specified by:
      isPausable in interface org.refcodes.component.Pausable.PauseAutomaton
    • isStartable

      public boolean isStartable()
      Specified by:
      isStartable in interface org.refcodes.component.Startable.StartAutomaton
    • isResumable

      public boolean isResumable()
      Specified by:
      isResumable in interface org.refcodes.component.Resumable.ResumeAutomaton
    • isStopped

      public boolean isStopped()
      Specified by:
      isStopped in interface org.refcodes.component.Stoppable.StopAutomaton
    • isPaused

      public boolean isPaused()
      Specified by:
      isPaused in interface org.refcodes.component.Pausable.PauseAutomaton
    • isInitalizable

      public boolean isInitalizable()
      Specified by:
      isInitalizable in interface org.refcodes.component.Initializable.InitializeAutomaton
    • destroy

      public void destroy()

      This server is taken (removed) from the registry server. Also stops a "ping" or "heartbeat" daemon. Finally the connection is closed.

      Specified by:
      destroy in interface org.refcodes.component.Destroyable
      Specified by:
      destroy in interface HttpRegistry<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>>
    • isDestroyable

      public boolean isDestroyable()
      Specified by:
      isDestroyable in interface org.refcodes.component.Destroyable.DestroyAutomaton
    • isDestroyed

      public boolean isDestroyed()
      Specified by:
      isDestroyed in interface org.refcodes.component.Destroyable.DestroyAutomaton
    • setInstanceId

      public void setInstanceId(String aInstanceId)
      Specified by:
      setInstanceId in interface org.refcodes.mixin.InstanceIdAccessor.InstanceIdMutator
    • getInstanceId

      public String getInstanceId()
      Specified by:
      getInstanceId in interface org.refcodes.mixin.InstanceIdAccessor
    • setHost

      public void setHost(String aHost)
      Specified by:
      setHost in interface org.refcodes.web.HostAccessor.HostMutator
    • getHost

      public String getHost()
      Specified by:
      getHost in interface org.refcodes.web.HostAccessor
    • getVirtualHost

      public String getVirtualHost()
      Specified by:
      getVirtualHost in interface org.refcodes.web.VirtualHostAccessor
    • setVirtualHost

      public void setVirtualHost(String aVirtualHost)
      Specified by:
      setVirtualHost in interface org.refcodes.web.VirtualHostAccessor.VirtualHostMutator
    • getIpAddress

      public int[] getIpAddress()
      Specified by:
      getIpAddress in interface IpAddressAccessor
    • setIpAddress

      public void setIpAddress(int[] aIpAddress)
      Specified by:
      setIpAddress in interface IpAddressAccessor.IpAddressMutator
    • getTrustStoreDescriptor

      public TrustStoreDescriptor getTrustStoreDescriptor()
      Specified by:
      getTrustStoreDescriptor in interface TrustStoreDescriptorAccessor
    • setTrustStoreDescriptor

      public void setTrustStoreDescriptor(TrustStoreDescriptor aTrustStoreDescriptor)
      Specified by:
      setTrustStoreDescriptor in interface TrustStoreDescriptorAccessor.TrustStoreDescriptorMutator
    • getHttpServerDescriptor

      public DESC getHttpServerDescriptor()
      Retrieves the HttpServerDescriptor from the HttpServerDescriptor property.
      Specified by:
      getHttpServerDescriptor in interface HttpServerDescriptorAccessor<DESC extends HttpServerDescriptor>
      Returns:
      The HttpServerDescriptor stored by the HttpServerDescriptor property.
    • setHttpServerDescriptor

      public void setHttpServerDescriptor(DESC aServerDescriptor)
      Sets the HttpServerDescriptor for the HttpServerDescriptor property.
      Specified by:
      setHttpServerDescriptor in interface HttpServerDescriptorAccessor.HttpServerDescriptorMutator<DESC extends HttpServerDescriptor>
      Parameters:
      aServerDescriptor - The HttpServerDescriptor to be stored by the HttpServerDescriptor property.
    • getHttpRegistryUrl

      public org.refcodes.web.Url getHttpRegistryUrl()
      Retrieves the URL from the URL property locating the service registry registry.
      Specified by:
      getHttpRegistryUrl in interface HttpRegistryUrlAccessor
      Returns:
      The URL stored by the URL property.
    • setHttpRegistryUrl

      public void setHttpRegistryUrl(org.refcodes.web.Url aRegistryUrl)
      Sets the URL for the URL property locating the service registry registry.
      Specified by:
      setHttpRegistryUrl in interface HttpRegistryUrlAccessor.HttpRegistryUrlMutator
      Parameters:
      aRegistryUrl - The service registry registry URL to be stored by the URL property.
    • getAlias

      public String getAlias()
      Specified by:
      getAlias in interface org.refcodes.mixin.AliasAccessor
    • setAlias

      public void setAlias(String aAlias)
      Specified by:
      setAlias in interface org.refcodes.mixin.AliasAccessor.AliasMutator
    • getPingPath

      public String getPingPath()
      Retrieves the ping path from the ping path property.
      Specified by:
      getPingPath in interface PingPathAccessor
      Returns:
      The ping path stored by the ping path property.
    • setPingPath

      public void setPingPath(String aPingPath)
      Sets the ping path for the ping path property.
      Specified by:
      setPingPath in interface PingPathAccessor.PingPathMutator
      Parameters:
      aPingPath - The ping path to be stored by the ping path property.
    • toHost

      protected static String toHost(String aHost, org.refcodes.web.HostAccessor.HostProperty aProperty) throws UnknownHostException
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aHost - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
      Throws:
      UnknownHostException - thrown in case the local machine's host cannot be resolved when the provided host is null.
    • toVirtualHost

      protected static String toVirtualHost(String aVirtualHost, org.refcodes.web.VirtualHostAccessor.VirtualHostProperty aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aVirtualHost - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
    • toIpAddress

      protected static int[] toIpAddress(int[] aIpAddress, IpAddressAccessor.IpAddressProperty aProperty) throws IOException
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aIpAddress - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
      Throws:
      IOException - thrown in case the local machine's IP-Address cannot be resolved when the provided IP-Address is null.
    • toAlias

      protected static String toAlias(String aAlias, org.refcodes.mixin.AliasAccessor.AliasProperty aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aAlias - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
    • toScheme

      protected static org.refcodes.data.Scheme toScheme(org.refcodes.data.Scheme aScheme, org.refcodes.web.SchemeAccessor.SchemeProperty aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aScheme - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
    • toPort

      protected static int toPort(int aPort, org.refcodes.mixin.PortAccessor.PortProperty aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aPort - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
    • toInstanceId

      protected static String toInstanceId(String aInstanceId, String aHost, org.refcodes.mixin.InstanceIdAccessor.InstanceIdProperty aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aInstanceId - The value to be used when not null.
      aHost - The value to be used when instance TID is null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
    • toPingPath

      protected static String toPingPath(String aPingPath, String aDefaultPingPath, PingPathAccessor.PingPathProperty aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aPingPath - The value to be used when not null.
      aDefaultPingPath - The value to be used when the ping path is null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
    • toTrustStoreDescriptor

      protected static TrustStoreDescriptor toTrustStoreDescriptor(TrustStoreDescriptor aStoreDescriptor, TrustStoreDescriptorAccessor.TrustStoreDescriptorProperty aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aStoreDescriptor - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
    • toHttpRegistryUrl

      protected static org.refcodes.web.Url toHttpRegistryUrl(org.refcodes.web.Url aRegistryUrl, HttpRegistryUrlAccessor.HttpRegistryUrlProperty aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Parameters:
      aRegistryUrl - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.
    • toHttpServerDescriptor

      protected static <DESC extends HttpServerDescriptor> DESC toHttpServerDescriptor(DESC aServerDescriptor, HttpServerDescriptorAccessor.HttpServerDescriptorProperty<DESC> aProperty)
      Resolves the property from the provided value and the provided property and the and sets the property in case the provided value is not null.
      Type Parameters:
      DESC - The type of the server discovery descriptor (the object describing your service and locating the service registry).
      Parameters:
      aServerDescriptor - The value to be used when not null.
      aProperty - The property to be used when the value is null and which is to be set when the value is not null.
      Returns:
      The value when not null, else the value of the provided property.