You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2010/04/28 21:48:49 UTC
svn commit: r939064 - in /directory/apacheds/trunk:
core-api/src/main/java/org/apache/directory/server/core/
core/src/main/java/org/apache/directory/server/core/
core/src/test/java/org/apache/directory/server/core/authz/support/
core/src/test/java/org/...
Author: kayyagari
Date: Wed Apr 28 19:48:49 2010
New Revision: 939064
URL: http://svn.apache.org/viewvc?rev=939064&view=rev
Log:
o added support for storing the contextCSN attribute used in replication
o added set/getSyncPeriodMillis() methods to the DirectoryService interface
o updated the classes implementing DirectoryService
Modified:
directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/DirectoryService.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java
directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java
Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/DirectoryService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/DirectoryService.java?rev=939064&r1=939063&r2=939064&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/DirectoryService.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/DirectoryService.java Wed Apr 28 19:48:49 2010
@@ -494,4 +494,32 @@ public interface DirectoryService extend
* @param schemaManager The SchemaManager to associate
*/
void setSchemaManager( SchemaManager schemaManager );
+
+
+ /**
+ * the highest committed CSN value
+ *
+ * @param lastCommittedCsnVal the CSN value
+ */
+ void setContextCsn( String lastCommittedCsnVal );
+
+
+ /**
+ * @return the current highest committed CSN value
+ */
+ String getContextCsn();
+
+
+ /**
+ * the time interval at which the DirectoryService's data is flushed to disk
+ *
+ * @param syncPeriodMillis the syncPeriodMillis to set
+ */
+ void setSyncPeriodMillis( long syncPeriodMillis );
+
+
+ /**
+ * @return the syncPeriodMillis
+ */
+ long getSyncPeriodMillis();
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java?rev=939064&r1=939063&r2=939064&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java Wed Apr 28 19:48:49 2010
@@ -45,6 +45,7 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.changelog.Tag;
import org.apache.directory.server.core.changelog.TaggableSearchableChangeLogStore;
import org.apache.directory.server.core.collective.CollectiveAttributeInterceptor;
+import org.apache.directory.server.core.entry.ClonedServerEntry;
import org.apache.directory.server.core.event.EventInterceptor;
import org.apache.directory.server.core.event.EventService;
import org.apache.directory.server.core.exception.ExceptionInterceptor;
@@ -229,7 +230,8 @@ public class DefaultDirectoryService imp
/** The maximum size for an incoming PDU */
private int maxPDUSize = Integer.MAX_VALUE;
-
+ /** the value of last successful add/update operation's CSN */
+ private String contextCsn;
/**
* The synchronizer thread. It flush data on disk periodically.
@@ -912,7 +914,19 @@ public class DefaultDirectoryService imp
workerThread.start();
}
+ // load the last stored valid CSN value
+ LookupOperationContext loc = new LookupOperationContext( getAdminSession() );
+ loc.setDn( systemPartition.getSuffixDn() );
+ loc.setAttrsId( new String[]{ "+" } );
+ ClonedServerEntry entry = systemPartition.lookup( loc );
+ EntryAttribute cntextCsnAt = entry.get( SchemaConstants.CONTEXT_CSN_AT );
+ if( cntextCsnAt != null )
+ {
+ // this is a multivalued attribute but current syncrepl provider implementation stores only ONE value at ou=system
+ contextCsn = cntextCsnAt.getString();
+ }
+
started = true;
if ( !testEntries.isEmpty() )
@@ -1694,7 +1708,7 @@ public class DefaultDirectoryService imp
/**
- * @return the syncPeriodMillis
+ * {@inheritDoc}
*/
public long getSyncPeriodMillis()
{
@@ -1703,10 +1717,28 @@ public class DefaultDirectoryService imp
/**
- * @param syncPeriodMillis the syncPeriodMillis to set
+ * {@inheritDoc}
*/
public void setSyncPeriodMillis( long syncPeriodMillis )
{
this.syncPeriodMillis = syncPeriodMillis;
}
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getContextCsn()
+ {
+ return contextCsn;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void setContextCsn( String lastKnownCsn )
+ {
+ this.contextCsn = lastKnownCsn;
+ }
}
Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java?rev=939064&r1=939063&r2=939064&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java Wed Apr 28 19:48:49 2010
@@ -888,6 +888,18 @@ public class MaxImmSubFilterTest
// TODO Auto-generated method stub
}
+
+ public String getContextCsn()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void setContextCsn( String lastKnownCsn )
+ {
+ // TODO Auto-generated method stub
+
+ }
}
Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java?rev=939064&r1=939063&r2=939064&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java Wed Apr 28 19:48:49 2010
@@ -708,5 +708,20 @@ public class InterceptorChainTest
// TODO Auto-generated method stub
}
+
+
+ public String getContextCsn()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ public void setContextCsn( String lastKnownCsn )
+ {
+ // TODO Auto-generated method stub
+
+ }
+
}
}