mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noël Rouvignac
08.46.2016 627a66edb6791bdab5d6e0ef0caf0f56b5b7a35e
OPENDJ-2536 Add and use JCIP annotations jar
19 files modified
218 ■■■■■ changed files
opendj-server-legacy/pom.xml 8 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Importer.java 11 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/common/DSInfo.java 15 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/ChangelogState.java 7 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/MsgQueue.java 10 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServerDomain.java 6 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/api/DBCursor.java 6 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/CompositeDBCursor.java 6 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/DomainDBCursor.java 11 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileChangeNumberIndexDBCursor.java 12 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileChangelogDB.java 5 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileReplicaDB.java 16 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileReplicaDBCursor.java 7 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/Log.java 35 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/MultiDomainDBCursor.java 11 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/ReplicationEnvironment.java 14 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationBroker.java 9 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationDomain.java 23 ●●●●● patch | view | raw | blame | history
pom.xml 6 ●●●● patch | view | raw | blame | history
opendj-server-legacy/pom.xml
@@ -21,7 +21,7 @@
  !
  ! CDDL HEADER END
  !
  !      Copyright 2011-2015 ForgeRock AS.
  !      Copyright 2011-2016 ForgeRock AS.
  !
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -227,6 +227,12 @@
      <artifactId>forgerock-persistit-core</artifactId>
      <version>4.3.1</version>
    </dependency>
    <dependency>
      <groupId>com.github.stephenc.jcip</groupId>
      <artifactId>jcip-annotations</artifactId>
      <version>1.0-1</version>
  </dependency>
  </dependencies>
  <build>
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Importer.java
@@ -21,12 +21,14 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2014-2015 ForgeRock AS
 *      Copyright 2014-2016 ForgeRock AS
 */
package org.opends.server.backends.pluggable.spi;
import java.io.Closeable;
import net.jcip.annotations.ThreadSafe;
import org.forgerock.opendj.ldap.ByteSequence;
import org.forgerock.opendj.ldap.ByteString;
@@ -34,10 +36,8 @@
 * Allows to run an import. For performance reasons, imports are run without transactions.
 * <p>
 * Since import is multi threaded, implementations must be thread-safe.
 * <p>
 *
 * @ThreadSafe
 */
@ThreadSafe
public interface Importer extends Closeable
{
  /**
@@ -86,4 +86,5 @@
  @Override
  void close();
}
}
opendj-server-legacy/src/main/java/org/opends/server/replication/common/DSInfo.java
@@ -22,20 +22,27 @@
 *
 *
 *      Copyright 2008-2010 Sun Microsystems, Inc.
 *      Portions copyright 2011-2015 ForgeRock AS
 *      Portions copyright 2011-2016 ForgeRock AS
 */
package org.opends.server.replication.common;
import java.util.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import net.jcip.annotations.Immutable;
/**
 * This class holds information about a DS connected to the topology. This
 * information is to be exchanged through the replication protocol in topology
 * messages, to keep every member (RS or DS) of the topology aware of the DS
 * topology.
 * <p>
 * @Immutable
 */
@Immutable
public final class DSInfo
{
  /** DS server id. */
opendj-server-legacy/src/main/java/org/opends/server/replication/server/ChangelogState.java
@@ -21,7 +21,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2013-2015 ForgeRock AS
 *      Copyright 2013-2016 ForgeRock AS
 */
package org.opends.server.replication.server;
@@ -30,6 +30,8 @@
import java.util.Set;
import java.util.concurrent.ConcurrentSkipListMap;
import net.jcip.annotations.ThreadSafe;
import org.opends.server.replication.common.CSN;
import org.opends.server.replication.common.MultiDomainServerState;
import org.opends.server.types.DN;
@@ -44,9 +46,8 @@
 * <p>
 * This class is used during replication initialization to decouple the code
 * that reads the changelogStateDB from the code that makes use of its data.
 *
 * @ThreadSafe
 */
@ThreadSafe
public class ChangelogState
{
  private final ConcurrentSkipListMap<DN, Long> domainToGenerationId = new ConcurrentSkipListMap<>();
opendj-server-legacy/src/main/java/org/opends/server/replication/server/MsgQueue.java
@@ -22,23 +22,25 @@
 *
 *
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2012-2015 ForgeRock AS.
 *      Portions Copyright 2012-2016 ForgeRock AS.
 */
package org.opends.server.replication.server;
import static org.opends.messages.ReplicationMessages.*;
import java.util.TreeMap;
import net.jcip.annotations.ThreadSafe;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.replication.common.CSN;
import org.opends.server.replication.protocol.UpdateMsg;
import static org.opends.messages.ReplicationMessages.*;
/**
 * This class is used to build ordered lists of UpdateMsg.
 * The order is defined by the order of the CSN of the UpdateMsg.
 * @ThreadSafe
 */
@ThreadSafe
public class MsgQueue
{
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -22,7 +22,7 @@
 *
 *
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2015 ForgeRock AS
 *      Portions Copyright 2011-2016 ForgeRock AS
 */
package org.opends.server.replication.server;
@@ -41,6 +41,8 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.ReentrantLock;
import net.jcip.annotations.GuardedBy;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
@@ -272,7 +274,7 @@
  private final Object pendingStatusMessagesLock = new Object();
  /** @GuardedBy("pendingStatusMessagesLock") */
  @GuardedBy("pendingStatusMessagesLock")
  private PendingStatusMessages pendingStatusMessages = new PendingStatusMessages();
  /**
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/api/DBCursor.java
@@ -21,13 +21,15 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2013-2015 ForgeRock AS
 *      Copyright 2013-2016 ForgeRock AS
 */
package org.opends.server.replication.server.changelog.api;
import java.io.Closeable;
import java.util.Objects;
import net.jcip.annotations.NotThreadSafe;
import org.opends.server.replication.common.CSN;
/**
@@ -88,8 +90,8 @@
 *
 * @param <T>
 *          type of the record being returned
 * \@NotThreadSafe
 */
@NotThreadSafe
public interface DBCursor<T> extends Closeable
{
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/CompositeDBCursor.java
@@ -21,7 +21,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2013-2015 ForgeRock AS
 *      Copyright 2013-2016 ForgeRock AS
 */
package org.opends.server.replication.server.changelog.file;
@@ -32,6 +32,8 @@
import java.util.Map.Entry;
import java.util.TreeMap;
import net.jcip.annotations.NotThreadSafe;
import org.opends.server.replication.common.CSN;
import org.opends.server.replication.protocol.UpdateMsg;
import org.opends.server.replication.server.changelog.api.ChangelogException;
@@ -45,8 +47,8 @@
 *
 * @param <T>
 *          The type of data associated with each cursor
 * \@NotThreadSafe
 */
@NotThreadSafe
abstract class CompositeDBCursor<T> implements DBCursor<UpdateMsg>
{
  private static final byte UNINITIALIZED = 0;
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/DomainDBCursor.java
@@ -20,7 +20,7 @@
 *
 * CDDL HEADER END
 *
 *      Copyright 2014-2015 ForgeRock AS
 *      Copyright 2014-2016 ForgeRock AS
 */
package org.opends.server.replication.server.changelog.file;
@@ -28,6 +28,8 @@
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentSkipListMap;
import net.jcip.annotations.NotThreadSafe;
import org.opends.server.replication.common.CSN;
import org.opends.server.replication.protocol.UpdateMsg;
import org.opends.server.replication.server.changelog.api.ChangelogException;
@@ -35,11 +37,8 @@
import org.opends.server.replication.server.changelog.api.ReplicationDomainDB;
import org.opends.server.types.DN;
/**
 * Cursor iterating over a replication domain's replica DBs.
 *
 * \@NotThreadSafe
 */
/** Cursor iterating over a replication domain's replica DBs. */
@NotThreadSafe
public class DomainDBCursor extends CompositeDBCursor<Void>
{
  /** Replaces null CSNs in ConcurrentSkipListMap that does not support null values. */
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileChangeNumberIndexDBCursor.java
@@ -21,22 +21,20 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2014 ForgeRock AS.
 *      Copyright 2014-2016 ForgeRock AS.
 */
package org.opends.server.replication.server.changelog.file;
import net.jcip.annotations.NotThreadSafe;
import org.opends.server.replication.server.changelog.api.ChangeNumberIndexRecord;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.api.DBCursor;
/**
 * A cursor on ChangeNumberIndexDB.
 *
 * \@NotThreadSafe
 */
/** A cursor on ChangeNumberIndexDB. */
@NotThreadSafe
class FileChangeNumberIndexDBCursor implements DBCursor<ChangeNumberIndexRecord>
{
  /** The underlying cursor. */
  private final DBCursor<Record<Long, ChangeNumberIndexRecord>> cursor;
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileChangelogDB.java
@@ -42,6 +42,8 @@
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import net.jcip.annotations.GuardedBy;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.DurationUnit;
@@ -101,9 +103,8 @@
  /**
   * The handler of the changelog database, the database stores the relation
   * between a change number and the associated cookie.
   * <p>
   * @GuardedBy("cnIndexDBLock")
   */
  @GuardedBy("cnIndexDBLock")
  private FileChangeNumberIndexDB cnIndexDB;
  private final AtomicReference<ChangeNumberIndexer> cnIndexer = new AtomicReference<>();
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileReplicaDB.java
@@ -21,15 +21,19 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2014-2015 ForgeRock AS
 *      Copyright 2014-2016 ForgeRock AS
 */
package org.opends.server.replication.server.changelog.file;
import static org.opends.messages.ReplicationMessages.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import net.jcip.annotations.Immutable;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.admin.std.server.MonitorProviderCfg;
@@ -50,8 +54,6 @@
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import static org.opends.messages.ReplicationMessages.*;
/**
 * Represents a replication server database for one server in the topology.
 * <p>
@@ -69,12 +71,8 @@
  /** The parser of records stored in Replica DB. */
  static final RecordParser<CSN, UpdateMsg> RECORD_PARSER = new ReplicaDBParser();
  /**
   * Class that allows atomically setting oldest and newest CSNs without
   * synchronization.
   *
   * @Immutable
   */
  /** Class that allows atomically setting oldest and newest CSNs without synchronization. */
  @Immutable
  private static final class CSNLimits
  {
    private final CSN oldestCSN;
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileReplicaDBCursor.java
@@ -21,13 +21,15 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2014 ForgeRock AS.
 *      Copyright 2014-2016 ForgeRock AS.
 */
package org.opends.server.replication.server.changelog.file;
import static org.opends.server.replication.server.changelog.api.DBCursor.KeyMatchingStrategy.*;
import static org.opends.server.replication.server.changelog.api.DBCursor.PositionStrategy.*;
import net.jcip.annotations.NotThreadSafe;
import org.opends.server.replication.common.CSN;
import org.opends.server.replication.protocol.UpdateMsg;
import org.opends.server.replication.server.changelog.api.ChangelogException;
@@ -56,9 +58,8 @@
 * record is newly available, a subsequent call to the {@code next()} method will
 * return {@code true} and the record will be available by calling {@code getRecord()}
 * method.
 *
 * \@NotThreadSafe
 */
@NotThreadSafe
class FileReplicaDBCursor implements DBCursor<UpdateMsg>
{
  /** The underlying cursor. */
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/Log.java
@@ -21,7 +21,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2014-2015 ForgeRock AS.
 *      Copyright 2014-2016 ForgeRock AS.
 */
package org.opends.server.replication.server.changelog.file;
@@ -46,6 +46,8 @@
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import net.jcip.annotations.GuardedBy;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Pair;
@@ -777,11 +779,8 @@
    }
  }
  /**
   * Abort all cursors opened on the provided log file.
   * <p>
   * @GuardedBy("exclusiveLock")
   */
  /** Abort all cursors opened on the provided log file. */
  @GuardedBy("exclusiveLock")
  private void abortCursorsOpenOnLogFile(LogFile<K, V> logFile)
  {
    for (AbortableLogCursor<K, V> cursor : openCursors)
@@ -985,8 +984,8 @@
   * <p>
   * All cursors opened on this log are temporarily disabled (closing underlying resources)
   * and then re-open with their previous state.
   * @GuardedBy("exclusiveLock")
   */
  @GuardedBy("exclusiveLock")
  private void rotateHeadLogFile() throws ChangelogException
  {
    // Temporarily disable cursors opened on head, saving their state
@@ -1064,10 +1063,8 @@
       + recordParser.encodeKeyToString(highestKey) + LOG_FILE_SUFFIX;
  }
  /**
   * Update the cursors that were pointing to head after a rotation of the head log file.
   * @GuardedBy("exclusiveLock")
   */
  /** Update the cursors that were pointing to head after a rotation of the head log file. */
  @GuardedBy("exclusiveLock")
  private void updateOpenedCursorsOnHeadAfterRotation(List<Pair<AbortableLogCursor<K, V>, CursorState<K, V>>> cursors)
      throws ChangelogException
  {
@@ -1086,7 +1083,7 @@
    }
  }
  /** @GuardedBy("exclusiveLock") */
  @GuardedBy("exclusiveLock")
  private void abortAllOpenCursors() throws ChangelogException
  {
    for (AbortableLogCursor<K, V> cursor : openCursors)
@@ -1098,12 +1095,12 @@
  /**
   * 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.
   * @GuardedBy("exclusiveLock")
   *
   * @return the pairs (cursor, cursor state) for each cursor pointing to head log file.
   * @throws ChangelogException
   *           If an error occurs.
   */
  @GuardedBy("exclusiveLock")
  private List<Pair<AbortableLogCursor<K, V>, CursorState<K, V>>> disableOpenedCursorsOnHead()
      throws ChangelogException
  {
@@ -1173,7 +1170,7 @@
    return Log.HEAD_LOG_FILE_NAME.equals(logFile.getFile().getName());
  }
  /** @GuardedBy("sharedLock") */
  @GuardedBy("sharedLock")
  private LogFile<K, V> findLogFileFor(final K key, KeyMatchingStrategy keyMatchingStrategy) throws ChangelogException
  {
    if (key == null || logFiles.lowerKey(key) == null)
@@ -1577,35 +1574,35 @@
    /**
     * Aborts this cursor. Once aborted, a cursor throws an
     * AbortedChangelogCursorException if it is used.
     * @GuardedBy("exclusiveLock")
     */
    @GuardedBy("exclusiveLock")
    void abort()
    {
      mustAbort = true;
    }
    /** @GuardedBy("exclusiveLock") */
    @GuardedBy("exclusiveLock")
    @Override
    CursorState<K, V> getState() throws ChangelogException
    {
      return delegate.getState();
    }
    /** @GuardedBy("exclusiveLock") */
    @GuardedBy("exclusiveLock")
    @Override
    void closeUnderlyingCursor()
    {
      delegate.closeUnderlyingCursor();
    }
    /** @GuardedBy("exclusiveLock") */
    @GuardedBy("exclusiveLock")
    @Override
    void reinitializeTo(final CursorState<K, V> cursorState) throws ChangelogException
    {
      delegate.reinitializeTo(cursorState);
    }
    /** @GuardedBy("exclusiveLock") */
    @GuardedBy("exclusiveLock")
    @Override
    boolean isAccessingLogFile(LogFile<K, V> logFile)
    {
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/MultiDomainDBCursor.java
@@ -20,7 +20,7 @@
 *
 * CDDL HEADER END
 *
 *      Copyright 2014-2015 ForgeRock AS
 *      Copyright 2014-2016 ForgeRock AS
 */
package org.opends.server.replication.server.changelog.file;
@@ -28,6 +28,8 @@
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentSkipListMap;
import net.jcip.annotations.NotThreadSafe;
import org.opends.server.replication.common.ServerState;
import org.opends.server.replication.protocol.UpdateMsg;
import org.opends.server.replication.server.changelog.api.ChangelogException;
@@ -35,11 +37,8 @@
import org.opends.server.replication.server.changelog.api.ReplicationDomainDB;
import org.opends.server.types.DN;
/**
 * Cursor iterating over a all the replication domain known to the changelog DB.
 *
 * \@NotThreadSafe
 */
/** Cursor iterating over a all the replication domain known to the changelog DB. */
@NotThreadSafe
public class MultiDomainDBCursor extends CompositeDBCursor<DN>
{
  private final ReplicationDomainDB domainDB;
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/ReplicationEnvironment.java
@@ -21,7 +21,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2014-2015 ForgeRock AS
 *      Copyright 2014-2016 ForgeRock AS
 */
package org.opends.server.replication.server.changelog.file;
@@ -50,6 +50,8 @@
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import net.jcip.annotations.GuardedBy;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.time.TimeService;
@@ -207,9 +209,8 @@
   * The current changelogState. This is in-memory version of what is inside the
   * on-disk changelogStateDB. It improves performances in case the
   * changelogState is read often.
   *
   * @GuardedBy("domainsLock")
   */
  @GuardedBy("domainsLock")
  private final ChangelogState changelogState;
  /** The list of logs that are in use for Replica DBs. */
@@ -222,11 +223,8 @@
   */
  private List<Log<Long, ChangeNumberIndexRecord>> logsCNIndexDB = new CopyOnWriteArrayList<>();
  /**
   * Maps each domain DN to a domain id that is used to name directory in file system.
   *
   * @GuardedBy("domainsLock")
   */
  /** Maps each domain DN to a domain id that is used to name directory in file system. */
  @GuardedBy("domainsLock")
  private final Map<DN, String> domains = new HashMap<>();
  /**
opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationBroker.java
@@ -22,7 +22,7 @@
 *
 *
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2015 ForgeRock AS
 *      Portions Copyright 2011-2016 ForgeRock AS
 */
package org.opends.server.replication.service;
@@ -39,6 +39,9 @@
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import net.jcip.annotations.GuardedBy;
import net.jcip.annotations.Immutable;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
@@ -65,7 +68,7 @@
   * Immutable class containing information about whether the broker is
   * connected to an RS and data associated to this connected RS.
   */
  // @Immutable
  @Immutable
  private static final class ConnectedRS
  {
@@ -205,7 +208,7 @@
   */
  /** Contains the last known state of the replication topology. */
  private final AtomicReference<Topology> topology = new AtomicReference<>(new Topology());
  /** <pre>@GuardedBy("this")</pre>. */
  @GuardedBy("this")
  private volatile int updateDoneCount;
  private volatile boolean connectRequiresRecovery;
opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationDomain.java
@@ -22,7 +22,7 @@
 *
 *
 *      Copyright 2008-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2015 ForgeRock AS
 *      Portions Copyright 2011-2016 ForgeRock AS
 */
package org.opends.server.replication.service;
@@ -36,12 +36,24 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketTimeoutException;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import net.jcip.annotations.Immutable;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
@@ -106,13 +118,10 @@
public abstract class ReplicationDomain
{
  /**
   * Contains all the attributes included for the ECL (External Changelog).
   */
  // @Immutable
  /** Contains all the attributes included for the ECL (External Changelog). */
  @Immutable
  private static final class ECLIncludes
  {
    final Map<Integer, Set<String>> includedAttrsByServer;
    final Set<String> includedAttrsAllServers;
pom.xml
@@ -21,7 +21,7 @@
  !
  ! CDDL HEADER END
  !
  !      Copyright 2011-2015 ForgeRock AS.
  !      Copyright 2011-2016 ForgeRock AS.
  !
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -57,8 +57,8 @@
        <url>https://stash.forgerock.org/projects/OPENDJ/repos/opendj/browse</url>
        <connection>scm:git:ssh://git@stash.forgerock.org:7999/opendj/opendj.git</connection>
        <developerConnection>scm:git:ssh://git@stash.forgerock.org:7999/opendj/opendj.git</developerConnection>
      <tag>HEAD</tag>
  </scm>
        <tag>HEAD</tag>
    </scm>
    <ciManagement>
        <system>jenkins</system>