Class AbstractRESTProvider

  • All Implemented Interfaces:
    adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.SizeOfHandler, adams.flow.core.FlowContextHandler, RESTProvider, Serializable
    Direct Known Subclasses:
    EchoServer, GenericServer, GroovyServer

    public abstract class AbstractRESTProvider
    extends adams.core.option.AbstractOptionHandler
    implements RESTProvider
    Ancestor for servers providing webservices.
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_Owner

        protected adams.flow.core.Actor m_Owner
        the owning actor.
      • m_URL

        protected String m_URL
        the URL of the webservice.
      • m_Running

        protected boolean m_Running
        whether the webservice is running.
      • m_Server

        protected org.apache.cxf.endpoint.Server m_Server
        the server.
    • Constructor Detail

      • AbstractRESTProvider

        public AbstractRESTProvider()
    • Method Detail

      • defineOptions

        public void defineOptions()
        Adds options to the internal list of options.
        Specified by:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class adams.core.option.AbstractOptionHandler
      • setFlowContext

        public void setFlowContext​(adams.flow.core.Actor value)
        Sets the actor that executes this webservice.
        Specified by:
        setFlowContext in interface adams.flow.core.FlowContextHandler
        Specified by:
        setFlowContext in interface RESTProvider
        Parameters:
        value - the owner
      • getFlowContext

        public adams.flow.core.Actor getFlowContext()
        Returns the owning actor.
        Specified by:
        getFlowContext in interface adams.flow.core.FlowContextHandler
        Specified by:
        getFlowContext in interface RESTProvider
        Returns:
        the owner
      • getDefaultURL

        public abstract String getDefaultURL()
        Returns the default URL for the service.
        Returns:
        the URL
      • setURL

        public void setURL​(String value)
        Sets the URL to use.
        Parameters:
        value - the URL to use
      • getURL

        public String getURL()
        Returns the URL used for the service.
        Specified by:
        getURL in interface RESTProvider
        Returns:
        the URL
      • URLTipText

        public String URLTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getDefaultInInterceptor

        protected AbstractInInterceptorGenerator getDefaultInInterceptor()
        Returns the default interceptor for incoming messages.
        Returns:
        the interceptor
      • inInterceptorTipText

        public String inInterceptorTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getDefaultOutInterceptor

        protected AbstractOutInterceptorGenerator getDefaultOutInterceptor()
        Returns the default interceptor for outgoing messages.
        Returns:
        the interceptor
      • outInterceptorTipText

        public String outInterceptorTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • check

        protected void check()
        Performs some initial checks before starting the service.

        Default implementation does nothing.
      • log

        public void log​(String msg,
                        String id)
        Logs an error message if a valid global log actor has been set up.
        Parameters:
        msg - the message to log
        id - an optional ID of the data token that failed in the web service
      • configureInterceptors

        protected void configureInterceptors​(org.apache.cxf.jaxrs.JAXRSServerFactoryBean factory)
        Configures the interceptors/logging for the factory (incoming and outgoing).
        Parameters:
        factory - the factory to configure
        See Also:
        m_InInterceptor, m_OutInterceptor
      • configureTLS

        protected void configureTLS​(org.apache.cxf.jaxrs.JAXRSServerFactoryBean factory)
                             throws Exception
        Configures TLS support (if using https:// and actors present in flow).
        Parameters:
        factory - the factory to configure
        Throws:
        IllegalStateException - if https used but failed to configure TLS params
        Exception
      • doStart

        protected abstract org.apache.cxf.endpoint.Server doStart()
                                                           throws Exception
        Performs the actual start of the service.
        Returns:
        the server instance
        Throws:
        Exception - if start fails
      • start

        public String start()
        Starts the service.
        Specified by:
        start in interface RESTProvider
        Returns:
        null if successful, otherwise error message
      • isRunning

        public boolean isRunning()
        Returns whether the service is running.
        Specified by:
        isRunning in interface RESTProvider
        Returns:
        true if running
      • doStop

        protected void doStop()
                       throws Exception
        Performs the actual stop of the service.
        Throws:
        Exception - if stopping fails
      • stop

        public String stop()
        Stops the service.
        Specified by:
        stop in interface RESTProvider
        Returns:
        null if successful, otherwise error message
      • cleanUp

        public void cleanUp()
        Cleans up data structures, frees up memory.
        Specified by:
        cleanUp in interface adams.core.CleanUpHandler
        Specified by:
        cleanUp in interface RESTProvider