10 Apr, 2014

3 commits

  • Rewritten DSConfig connection.
    dsconfig package.
    - Removed from dsconfig package the dependency on the SecureconnectionCliArgs and LDAPConsoleInteraction.
    - Removed unused class InternalManagementContextFactory
    
    Opendj-cli
    - Added to ConnectionFactoryProvider an interactive mode which, at this state, just ask for basic authentication fields.
    - Added cli messages.
    - Added printHeader(...) to ConsoleApplication.
    
    TOOLS SDK
    - Added non interactive mode to AuthRate, ldapsearch and modrate to allow anonymous connection. This need to be fixed independently.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10644 41b1ffd8-f28e-4786-ab96-9950f0a78031
    violette
     
  • … connector to use PKCS12 Trustmanager Provider
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10643 41b1ffd8-f28e-4786-ab96-9950f0a78031
    mark
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@10641 41b1ffd8-f28e-4786-ab96-9950f0a78031
    mark
     

08 Apr, 2014

6 commits


07 Apr, 2014

1 commit

  • - Fixed isDN function.
    - LDAPManagementContextFactory.java :removed the unused alwaysSSL var.
    - LDAPConnectionConsoleInteraction.java : 
      -- removed unused parameter canUseSSL.
      -- modified the cannotReadConnectionParameters => more clearer. (thanks to JN)
    N.B This LDAPConnectionConsoleInteraction class will disapear as soon as the SDK will provide the same 'prompt' capabilities.
    (and also because the code is absolutely unmaintainable and redundant.)
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10632 41b1ffd8-f28e-4786-ab96-9950f0a78031
    violette
     

04 Apr, 2014

4 commits


03 Apr, 2014

2 commits

  • - Moved AuthenticatedConnectionFactory from tools to cli.
      -- Undo modifications on tools about abstract authenticated connection factory. (and deleted the file)
      -- Deleted the file from the tools.
    - Added functions to opendj-cli Utils.
    - Trivial code cleanup.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10619 41b1ffd8-f28e-4786-ab96-9950f0a78031
    violette
     
  • JEChangelogDB.java:
    In ChangelogDBPurger.run(), changed code to:
    - support the absence of change number index DB. To simplify matters, code assumes that ds-cfg-compute-change-number does not change during the life time of an RS.
    - purged by using a CSN made up from the purge delay rather than using the previous cookie.
    - sleep 500 millis if there are no changes to purge, or sleep till the next change to purge.
    - gracefully shutdown without fuss in the logs.
    
    
    JEChangeNumberIndexDB.java
    In purgeUpTo(), return the oldest non purged CSN rather than the previous cookie + merged two branches of the code.
    
    ExternalChangeLogTest.java:
    Consequence of the change to JEChangeNumberIndexDB.
    Extracted method assertECLLimits() from ECLCompatTestLimits() + added a loop inside it to let the code persist changes asynchronously from the test thread.
    
    JEChangeNumberIndexDBTest.java:
    Renamed testTrim() to testPurge().
    In newReplicationServer(), enabled ds-cfg-compute-change-number.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10617 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     

02 Apr, 2014

3 commits

  • git-svn-id: https://svn.forgerock.org/opendj/trunk@10615 41b1ffd8-f28e-4786-ab96-9950f0a78031
    violette
     
  • 
    After OPENDJ-1174, change number index DB is now populated eagerly (was populated lazily).
    This means we can reap the benefits by changing how purging is done for changelogDB.
    Previous purge process was driven by the replicaDBs: first purge replicaDBs then purge the change number index DB and it was causing lots of problems like stale CNIndexDB records for example.
    New purge process is driven by the change number index DB: first purge change number index DB then purge the replicaDBs based on the oldest valid referenced record in the change number index DB.
    
    Moved JEChangeNumberIndexDB purge thread to JEChangelogDB + made it responsible for purging the ChangeNumberIndexDB and all the ReplicaDBs.
    In JEReplicaDB, thread is now only responsible for flushing, previously it was responsible for trimming and flushing which complicated the design and made it less efficient for both operations.
    
    
    
    JEChangelogDB.java:
    Added inner class ChangelogDBPurger.
    Added fields  purgeDelay, cnPurger and latestTrimDate.
    Extracted method startIndexer()
    Removed getChangeNumberIndexDB(boolean) + associated code.
    Reimplemented getDomainLatestTrimDate() and setPurgeDelay().
    
    JEChangeNumberIndexDB.java:
    No longer implements Runnable + removed run().
    Removed fields trimmingThread, trimAge and replicationServer.
    In ctor, removed ReplicationServer parameter.
    Removed startTrimmingThread(), setPurgeDelay() clear(DN, AtomicBoolean).
    Renamed clear(DN) to removeDomain(DN).
    Renamed trim(AtomicBoolean) to purgeUpTo(long).
    Added purgeUpToCookie(ChangeNumberIndexRecord).
    
    JEReplicaDB.java:
    Removed fields latestTrimDate and trimAge.
    In run(), no longer call trim().
    Removed getLatestTrimDate(), isQueueAboveLowMark(), setPurgeDelay() and getQueueSize().
    Renamed trim() to purgeUpTo(CSN).
    Made flush() private + reduced wait time on polling the msgQueue to speed up shutdown.
    Added getNumberRecords() for unit tests.
    
    JEReplicaDBCursor.java:
    Since flushing is now eager, removed all calls to JEReplicaDB.flush().
    Extracted methods closeCursor().
    
    ReplicationServer.java:
    Renamed getTrimAge() to getPurgeDelay() for consistency.
    
    ReplicationDB.java:
    Added getNumberRecords().
    
    ChangeNumberIndexer.java, ChangeNumberIndexerTest.java:
    Removed hacks due to old purging code.
    
    ExternalChangeLogTest.java:
    Called ChangelogDB.setPurgeDelay() instead of ChangeNumberIndexDB.setPurgeDelay(0).
    Consequence of the changes to JEReplicaDB.
    Removed method setPurgeDelayToInitialValue() that was not doing anything (JEChangeNumberIndexDB was always null).
    In getCNIndexDB(), removed useless null check.
    
    JEChangeNumberIndexDBTest.java:
    Removed constants value1, value2, value3 which are invalid cookies.
    Replaced them with fields previousCookie and cookies.
    Added clearCookie() method.
    In addRecord(), removed cookie parameter and build the cookie from the new fields.
    Consequence of the changes to JEChangeNumberIndexDB.
    
    JEReplicaDBTest.java:
    In waitChangesArePersisted(), used JEReplicaDB.getNumberRecords() instead of JEReplicaDB.getQueueSize() + added parameters describing the number of expected records + the counter record window.
    Replaced all calls to JEReplicaDB.flush() with calls to waitChangesArePersisted().
    Consequence of the changes to JEReplicaDB.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10614 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     
  • Added a comment about the getXXXAssertion() methods after CR-3308.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10613 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     

01 Apr, 2014

2 commits


31 Mar, 2014

3 commits

  • Code review: Matthew Swift
    
    Code fix after r10601.
    Several problems shown by continuous integration:
    * Deadlocks,
    * Long waits
    
    JEReplicaDB.java:
    In clear(), calling collectAllPermits() while holding the flushLock actually prevented flushing to happen because it also needed the flushLock. Calling collectAllPermits() does not require to hold the flushLock, and once this method returns the msgQueue should be empty anyway and all the changes should have been pushed to the DB (flush() first removes messages from msgQueue, then add to DB, then releases all permits). In effect, there is no need to synchronize on flushLock anymore.
    In trim(), the check for queue being below low mark was wrong (comparing queue size with number of bytes): extracted isQueueAboveLowMark() and fixed its definition + removed synchronized (flushLock) because it is now deemed unnecessary.
    In generateCursorFrom(), Removed unnecessary call to flush() because that method is also called from JEReplicaDBCursor ctor.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10608 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     
  • …formatted shell commands; OPENDJ-1376: Add <userinput> and potential <computeroutput> to <screen> content
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10607 41b1ffd8-f28e-4786-ab96-9950f0a78031
    mark
     
  • …NDJ-1376: Add <userinput> and potential <computeroutput> to <screen> content
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10606 41b1ffd8-f28e-4786-ab96-9950f0a78031
    mark
     

28 Mar, 2014

4 commits

  • git-svn-id: https://svn.forgerock.org/opendj/trunk@10604 41b1ffd8-f28e-4786-ab96-9950f0a78031
    mark
     
  • Fixed checkstyle failure.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10603 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     
  • In JEReplicaDB, simplified the logic that handled the internal queue that is used before actually persisting UpdateMsg changes to the underlying Berkeley JE DB.
    Simplified the publisher/consumer model (msgQueue.add() / msgQueue.remove()) by relying on a LinkedBlockingQueue and a semaphore, instead of many synchronized blocks and fields that cluttered this code.
    
    
    
    JEReplicaDB.java:
    Changed msgQueue from LinkedList to LinkedBlockingQueue.
    Removed fields queueMaxSize, queueLowmark, queueHimark, queueLowmarkBytes, queueHimarkBytes, queueByteSize and replaced them all with queueSizeBytes Semaphore.
    Removed clearQueue() and getChanges().
    Added collectAllPermits().
    Added immutable CSNLimits class to remove the need for synchronizing on oldest and newest CSNs.
    
    ReplicationDB.java:
    In addEntries(), now return the total size of the persisted messages (return type was void).
    
    JEReplicaDBTest.java:
    In testTrim(), allowed the test to finish + made the code clearer.
    
    replication.properties:
    Added an error message for adding a change to the JEReplicaDB.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10601 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     
  • This introduces a dependency on a -SNAPSHOT in order to check that everything runs fine in Jenkins as well before the release, which is coming real soon now.
    
    If ever the whole thing goes wrong, or we cannot release, I'll revert to remove the -SNAPSHOT dependency.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10599 41b1ffd8-f28e-4786-ab96-9950f0a78031
    mark
     

27 Mar, 2014

1 commit


26 Mar, 2014

5 commits


25 Mar, 2014

4 commits


24 Mar, 2014

2 commits