Class ReplicationClient

    • Method Detail

      • ensureOpen

        protected final void ensureOpen()
        Throws AlreadyClosedException if the client has already been closed.
      • handleUpdateException

        protected void handleUpdateException​(Throwable t)
        Called when an exception is hit by the replication thread. The default implementation prints the full stacktrace to the InfoStream set in setInfoStream(InfoStream), or the default one. You can override to log the exception elswhere.

        NOTE: if you override this method to throw the exception further, the replication thread will be terminated. The only way to restart it is to call stopUpdateThread() followed by startUpdateThread(long, String).

      • requiredFiles

        protected Map<String,​List<RevisionFile>> requiredFiles​(Map<String,​List<RevisionFile>> newRevisionFiles)
        Returns the files required for replication. By default, this method returns all files that exist in the new revision, but not in the handler.
      • startUpdateThread

        public void startUpdateThread​(long intervalMillis,
                                      String threadName)
        Start the update thread with the specified interval in milliseconds. For debugging purposes, you can optionally set the name to set on Thread.setName(String). If you pass null, a default name will be set.
        Throws:
        IllegalStateException - if the thread has already been started
      • stopUpdateThread

        public void stopUpdateThread()
        Stop the update thread. If the update thread is not running, silently does nothing. This method returns after the update thread has stopped.
      • isUpdateThreadAlive

        public boolean isUpdateThreadAlive()
        Returns true if the update thread is alive. The update thread is alive if it has been started and not stopped, as well as didn't hit an error which caused it to terminate (i.e. handleUpdateException(Throwable) threw the exception further).
      • updateNow

        public void updateNow()
                       throws IOException
        Executes the update operation immediately, irregardless if an update thread is running or not.
        Throws:
        IOException
      • setInfoStream

        public void setInfoStream​(InfoStream infoStream)
        Sets the InfoStream to use for logging messages.