Class RestListener

All Implemented Interfaces:
FrankElement, HasApplicationContext, HasName, HasPhysicalDestination, IConfigurable, IListener<Message>, IPushingListener<Message>, IScopeProvider, NameAware, RequestReplyListener, ServiceClient, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

@Deprecated(forRemoval=true, since="9.0") @ConfigurationWarning("Please use the ApiListener instead") @DestinationType(HTTP) public class RestListener extends PushingListenerAdapter implements HasPhysicalDestination
Deprecated, for removal: This API element is subject to removal in a future version.
Listener that allows a Receiver to receive messages as a REST webservice. Prepends the configured URI pattern with rest/. When you are writing a new Frank config, you are recommended to use an ApiListener instead. You can find all serviced URI patterns in the Frank!Console: main menu item Webservice, heading Available REST Services.

It's possible to use the ApiListener instead with the same path (/rest). Custom pages can be added to the console (using a comma separated list, no spaces) with the following property customViews.names=MyApplication. Specify details for each view, the url is either a relative path from the web-content folder or an external url, eq. http://google.com/ customViews.MyApplication.name=Custom View customViews.MyApplication.url=myWebapp

Note: Servlets' multipart configuration expects a Content-Type of multipart/form-data (see http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html). So do not use other multipart content types like multipart/related

Author:
Niels Meijer, Gerrit van Brakel
  • Constructor Details

    • RestListener

      public RestListener()
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Details

    • start

      public void start()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IListener
      Prepares the listener for receiving messages. start() is called once each time the listener is started.
      Specified by:
      start in interface IListener<Message>
      Overrides:
      start in class PushingListenerAdapter
    • stop

      public void stop()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IListener
      Close all resources used for listening. Called once each time the listener is stopped.
      Specified by:
      stop in interface IListener<Message>
      Overrides:
      stop in class PushingListenerAdapter
    • processRequest

      public Message processRequest(Message message, PipeLineSession session) throws ListenerException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: ServiceClient
      Method to implement for processing a request. This will usually delegate to a IListener implementation.
      TODO: We may want to add the correlationId parameter back to this method, for cleaner calling and cleaner implementation.
      Specified by:
      processRequest in interface ServiceClient
      Overrides:
      processRequest in class PushingListenerAdapter
      Parameters:
      message - Message to process
      session - PipeLineSession of the request. If the request has a correlation ID, it should be put into this session.
      Returns:
      Resulting Message.
      Throws:
      ListenerException - Thrown if an exception occurs.
    • transformToJson

      public Message transformToJson(Message message) throws PipeRunException, ConfigurationException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
      PipeRunException
      ConfigurationException
    • transformToXml

      public Message transformToXml(Message message) throws PipeRunException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
      PipeRunException
    • getPhysicalDestinationName

      public String getPhysicalDestinationName()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      getPhysicalDestinationName in interface HasPhysicalDestination
    • getRestUriPattern

      public String getRestUriPattern()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setUriPattern

      public void setUriPattern(String uriPattern)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Uri pattern to match, the {uri} part in https://mydomain.com/ibis4something/rest/{uri}, where mydomain.com and ibis4something refer to 'your ibis'.
    • setMethod

      public void setMethod(String method)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Method (e.g. GET or POST) to match
    • setEtagSessionKey

      public void setEtagSessionKey(String etagSessionKey)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Key of session variable to store etag
    • setContentTypeSessionKey

      public void setContentTypeSessionKey(String contentTypeSessionKey)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Key of Session variable that determines requested content type, overrides produces
    • setRestPath

      public void setRestPath(String restPath)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Can be either /rest or /rest-public and must correspond with the available RestListenerServlet path(s).
    • setAuthRoles

      public void setAuthRoles(String string)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Comma separated list of authorization roles which are granted for this rest service
      Default value
      IbisWebService,IbisObserver,IbisDataAdmin,IbisAdmin,IbisTester
    • setWriteToSecLog

      public void setWriteToSecLog(boolean b)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setWriteSecLogMessage

      public void setWriteSecLogMessage(boolean b)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setRetrieveMultipart

      public void setRetrieveMultipart(boolean b)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Indicates whether the parts of a multipart entity should be retrieved and put in session keys. This can only be done once!
      Default value
      true
    • setConsumes

      public void setConsumes(RestListener.MediaTypes consumes)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Mediatype (e.g. XML, JSON, TEXT) the RestServiceDispatcher receives as input
      Default value
      XML
    • setProduces

      public void setProduces(RestListener.MediaTypes produces)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Mediatype (e.g. XML, JSON, TEXT) the RestServiceDispatcher sends as output, if set to json the ibis will automatically try to convert the xml message
      Default value
      XML
    • setValidateEtag

      public void setValidateEtag(boolean b)
      Deprecated, for removal: This API element is subject to removal in a future version.
      If set to true the ibis will automatically validate and process etags
      Default value
      false
    • setGenerateEtag

      public void setGenerateEtag(boolean b)
      Deprecated, for removal: This API element is subject to removal in a future version.
      If set to true the ibis will automatically create an etag
      Default value
      false
    • setAutomaticallyTransformToAndFromJson

      public void setAutomaticallyTransformToAndFromJson(boolean b)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Uses an JsonPipe to convert the json-input to xml, and xml-output to json. Use with caution, a properly configured Input/Output-wrapper can do much more and is more robust!
      Default value
      true