Class DefaultResourceRetriever

    • Field Detail

      • logger

        private static final org.slf4j.Logger logger
      • resourceSizeByteLimit

        private long resourceSizeByteLimit
      • connectTimeout

        private int connectTimeout
      • readTimeout

        private int readTimeout
      • DEFAULT_CONNECT_TIMEOUT

        private static final int DEFAULT_CONNECT_TIMEOUT
        See Also:
        Constant Field Values
    • Constructor Detail

      • DefaultResourceRetriever

        public DefaultResourceRetriever()
        Creates a new DefaultResourceRetriever instance. The limit on the size of retrieved resources is by default equal to Long.MAX_VALUE bytes.
    • Method Detail

      • getResourceSizeByteLimit

        public long getResourceSizeByteLimit()
        Gets the resource size byte limit. The resourceSizeByteLimit is used to create input stream with a limit on the number of bytes read.
        Returns:
        the resource size byte limit
      • setResourceSizeByteLimit

        public IResourceRetriever setResourceSizeByteLimit​(long resourceSizeByteLimit)
        Sets the resource size byte limit. The resourceSizeByteLimit is used to create input stream with a limit on the number of bytes read.
        Parameters:
        resourceSizeByteLimit - the resource size byte limit
        Returns:
        the IResourceRetriever instance
      • getConnectTimeout

        public int getConnectTimeout()
        Gets the connect timeout. The connect timeout is used to create input stream with a limited time to establish connection to resource.
        Returns:
        the connect timeout in milliseconds
      • setConnectTimeout

        public IResourceRetriever setConnectTimeout​(int connectTimeout)
        Sets the connect timeout. The connect timeout is used to create input stream with a limited time to establish connection to resource.
        Parameters:
        connectTimeout - the connect timeout in milliseconds
        Returns:
        the IResourceRetriever instance
      • getReadTimeout

        public int getReadTimeout()
        Gets the read timeout. The read timeout is used to create input stream with a limited time to receive data from resource.
        Returns:
        the read timeout in milliseconds
      • setReadTimeout

        public IResourceRetriever setReadTimeout​(int readTimeout)
        Sets the read timeout. The read timeout is used to create input stream with a limited time to receive data from resource.
        Parameters:
        readTimeout - the read timeout in milliseconds
        Returns:
        the IResourceRetriever instance
      • getInputStreamByUrl

        public java.io.InputStream getInputStreamByUrl​(java.net.URL url)
                                                throws java.io.IOException
        Gets the input stream with current limit on the number of bytes read, that connect with source URL for retrieving data from that connection.
        Specified by:
        getInputStreamByUrl in interface IResourceRetriever
        Parameters:
        url - the source URL
        Returns:
        the limited input stream or null if the URL was filtered
        Throws:
        java.io.IOException - if any input/output issue occurs
      • getByteArrayByUrl

        public byte[] getByteArrayByUrl​(java.net.URL url)
                                 throws java.io.IOException
        Gets the byte array that are retrieved from the source URL.
        Specified by:
        getByteArrayByUrl in interface IResourceRetriever
        Parameters:
        url - the source URL
        Returns:
        the byte array or null if the retrieving failed or the URL was filtered or the resourceSizeByteLimit was violated
        Throws:
        java.io.IOException - if any input/output issue occurs
      • urlFilter

        protected boolean urlFilter​(java.net.URL url)
        Method for filtering resources by URL. The default implementation allows for all URLs. Override this method if want to set filtering.
        Parameters:
        url - the source URL
        Returns:
        true if the resource can be retrieved and false otherwise