Пример #1
0
 /**
  * Disable the cursors opened on the head log file log, by closing their underlying cursor.
  * Returns the state of each cursor just before the close operation.
  *
  * @return the pairs (cursor, cursor state) for each cursor pointing to head log file.
  * @throws ChangelogException If an error occurs.
  */
 private List<Pair<AbortableLogCursor<K, V>, CursorState<K, V>>> disableOpenedCursorsOnHead()
     throws ChangelogException {
   final List<Pair<AbortableLogCursor<K, V>, CursorState<K, V>>> openCursorsStates =
       new ArrayList<>();
   final LogFile<K, V> headLogFile = getHeadLogFile();
   for (AbortableLogCursor<K, V> cursor : openCursors) {
     if (cursor.isAccessingLogFile(headLogFile)) {
       openCursorsStates.add(Pair.of(cursor, cursor.getState()));
       cursor.closeUnderlyingCursor();
     }
   }
   return openCursorsStates;
 }
Пример #2
0
 /**
  * Returns the key bounds for the provided log file.
  *
  * @return the pair of (lowest key, highest key) that correspond to records stored in the
  *     corresponding log file.
  * @throws ChangelogException if an error occurs while retrieving the keys
  */
 private Pair<K, K> getKeyBounds(final LogFile<K, V> logFile) throws ChangelogException {
   try {
     final String name = logFile.getFile().getName();
     final String[] keys =
         name.substring(0, name.length() - Log.LOG_FILE_SUFFIX.length())
             .split(LOG_FILE_NAME_SEPARATOR);
     return Pair.of(
         recordParser.decodeKeyFromString(keys[0]), recordParser.decodeKeyFromString(keys[1]));
   } catch (Exception e) {
     throw new ChangelogException(
         ERR_CHANGELOG_UNABLE_TO_RETRIEVE_KEY_BOUNDS_FROM_FILE.get(logFile.getFile().getPath()),
         e);
   }
 }
 /**
  * Adds listeners for service names that match the provided predicate.
  *
  * @param l Listener to be added.
  * @param servicePredicate The predicate.
  */
 public void addServiceListener(ConfigurationListener l, Predicate<String> servicePredicate) {
   serviceListeners.add(Pair.of(l, servicePredicate));
 }
 /**
  * Adds listener for all services.
  *
  * @param l Listener to be added.
  */
 public void addListener(ConfigurationListener l) {
   serviceListeners.add(Pair.<ConfigurationListener, Predicate<String>>of(l, null));
 }