Package adams.flow.rest
Class AbstractRESTProvider
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.flow.rest.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 Summary
Fields Modifier and Type Field Description protected AbstractInInterceptorGenerator
m_InInterceptor
the interceptor generator for incoming messages.protected AbstractOutInterceptorGenerator
m_OutInterceptor
the interceptor generator for outgoing messages.protected adams.flow.core.Actor
m_Owner
the owning actor.protected boolean
m_Running
whether the webservice is running.protected org.apache.cxf.endpoint.Server
m_Server
the server.protected String
m_URL
the URL of the webservice.
-
Constructor Summary
Constructors Constructor Description AbstractRESTProvider()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
check()
Performs some initial checks before starting the service.void
cleanUp()
Cleans up data structures, frees up memory.protected void
configureInterceptors(org.apache.cxf.jaxrs.JAXRSServerFactoryBean factory)
Configures the interceptors/logging for the factory (incoming and outgoing).protected void
configureTLS(org.apache.cxf.jaxrs.JAXRSServerFactoryBean factory)
Configures TLS support (if using https:// and actors present in flow).void
defineOptions()
Adds options to the internal list of options.protected abstract org.apache.cxf.endpoint.Server
doStart()
Performs the actual start of the service.protected void
doStop()
Performs the actual stop of the service.protected AbstractInInterceptorGenerator
getDefaultInInterceptor()
Returns the default interceptor for incoming messages.protected AbstractOutInterceptorGenerator
getDefaultOutInterceptor()
Returns the default interceptor for outgoing messages.abstract String
getDefaultURL()
Returns the default URL for the service.adams.flow.core.Actor
getFlowContext()
Returns the owning actor.AbstractInInterceptorGenerator
getInInterceptor()
Returns the interceptor for incoming messages.AbstractOutInterceptorGenerator
getOutInterceptor()
Returns the interceptor for outgoing messages.String
getURL()
Returns the URL used for the service.String
inInterceptorTipText()
Returns the tip text for this property.boolean
isRunning()
Returns whether the service is running.void
log(String msg, String id)
Logs an error message if a valid global log actor has been set up.String
outInterceptorTipText()
Returns the tip text for this property.void
setFlowContext(adams.flow.core.Actor value)
Sets the actor that executes this webservice.void
setInInterceptor(AbstractInInterceptorGenerator value)
Sets the interceptor for incoming messages.void
setOutInterceptor(AbstractOutInterceptorGenerator value)
Sets the interceptor for outgoing messages.void
setURL(String value)
Sets the URL to use.String
start()
Starts the service.String
stop()
Stops the service.String
URLTipText()
Returns the tip text for this property.-
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, destroy, finishInit, getDefaultLoggingLevel, getOptionManager, globalInfo, initialize, loggingLevelTipText, newOptionManager, reset, setLoggingLevel, toCommandLine, toString
-
Methods inherited from class adams.core.logging.LoggingObject
configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
-
-
-
-
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_InInterceptor
protected AbstractInInterceptorGenerator m_InInterceptor
the interceptor generator for incoming messages.
-
m_OutInterceptor
protected AbstractOutInterceptorGenerator m_OutInterceptor
the interceptor generator for outgoing messages.
-
m_Running
protected boolean m_Running
whether the webservice is running.
-
m_Server
protected org.apache.cxf.endpoint.Server m_Server
the server.
-
-
Method Detail
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptions
in interfaceadams.core.option.OptionHandler
- Overrides:
defineOptions
in classadams.core.option.AbstractOptionHandler
-
setFlowContext
public void setFlowContext(adams.flow.core.Actor value)
Sets the actor that executes this webservice.- Specified by:
setFlowContext
in interfaceadams.flow.core.FlowContextHandler
- Specified by:
setFlowContext
in interfaceRESTProvider
- Parameters:
value
- the owner
-
getFlowContext
public adams.flow.core.Actor getFlowContext()
Returns the owning actor.- Specified by:
getFlowContext
in interfaceadams.flow.core.FlowContextHandler
- Specified by:
getFlowContext
in interfaceRESTProvider
- 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 interfaceRESTProvider
- 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
-
setInInterceptor
public void setInInterceptor(AbstractInInterceptorGenerator value)
Sets the interceptor for incoming messages.- Specified by:
setInInterceptor
in interfaceRESTProvider
- Parameters:
value
- the interceptor
-
getInInterceptor
public AbstractInInterceptorGenerator getInInterceptor()
Returns the interceptor for incoming messages.- Specified by:
getInInterceptor
in interfaceRESTProvider
- 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
-
setOutInterceptor
public void setOutInterceptor(AbstractOutInterceptorGenerator value)
Sets the interceptor for outgoing messages.- Specified by:
setOutInterceptor
in interfaceRESTProvider
- Parameters:
value
- the interceptor
-
getOutInterceptor
public AbstractOutInterceptorGenerator getOutInterceptor()
Returns the interceptor for outgoing messages.- Specified by:
getOutInterceptor
in interfaceRESTProvider
- 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 logid
- 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 paramsException
-
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 interfaceRESTProvider
- Returns:
- null if successful, otherwise error message
-
isRunning
public boolean isRunning()
Returns whether the service is running.- Specified by:
isRunning
in interfaceRESTProvider
- 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 interfaceRESTProvider
- Returns:
- null if successful, otherwise error message
-
cleanUp
public void cleanUp()
Cleans up data structures, frees up memory.- Specified by:
cleanUp
in interfaceadams.core.CleanUpHandler
- Specified by:
cleanUp
in interfaceRESTProvider
-
-