You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2010/10/01 12:58:58 UTC
svn commit: r1003477 -
/directory/apacheds/trunk/service/src/main/java/org/apache/directory/server/ApacheDsService.java
Author: pamarcelot
Date: Fri Oct 1 10:58:58 2010
New Revision: 1003477
URL: http://svn.apache.org/viewvc?rev=1003477&view=rev
Log:
Moved back modifications from kayyagari while I was working in the branch.
Modified:
directory/apacheds/trunk/service/src/main/java/org/apache/directory/server/ApacheDsService.java
Modified: directory/apacheds/trunk/service/src/main/java/org/apache/directory/server/ApacheDsService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/service/src/main/java/org/apache/directory/server/ApacheDsService.java?rev=1003477&r1=1003476&r2=1003477&view=diff
==============================================================================
--- directory/apacheds/trunk/service/src/main/java/org/apache/directory/server/ApacheDsService.java (original)
+++ directory/apacheds/trunk/service/src/main/java/org/apache/directory/server/ApacheDsService.java Fri Oct 1 10:58:58 2010
@@ -38,6 +38,7 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
import org.apache.directory.server.core.partition.Partition;
import org.apache.directory.server.core.partition.ldif.LdifPartition;
+import org.apache.directory.server.core.partition.ldif.SingleFileLdifPartition;
import org.apache.directory.server.core.schema.SchemaPartition;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.server.integration.http.HttpServer;
@@ -103,7 +104,7 @@ public class ApacheDsService
private SchemaManager schemaManager;
- private LdifPartition configPartition;
+ private SingleFileLdifPartition configPartition;
private ConfigPartitionReader cpReader;
@@ -135,7 +136,7 @@ public class ApacheDsService
initSchemaLdifPartition( partitionsDir );
initConfigPartition( partitionsDir );
- cpReader = new ConfigPartitionReader( configPartition );
+ cpReader = new ConfigPartitionReader( configPartition, partitionsDir );
// Initialize the LDAP server
initLdap( instanceLayout );
@@ -211,25 +212,25 @@ public class ApacheDsService
*/
private void initConfigPartition( File partitionsDir ) throws Exception
{
+ File configRepository = new File( partitionsDir.getParentFile(), "conf" );
- File configRepository = new File( partitionsDir, "config" );
+ File confFile = new File( configRepository, LdifConfigExtractor.LDIF_CONFIG_FILE );
- if ( configRepository.exists() )
+ if ( confFile.exists() )
{
LOG.info( "config partition already exists, skipping default config extraction" );
}
else
{
- LdifConfigExtractor.extract( partitionsDir, true );
+ LdifConfigExtractor.extractSingleFileConfig( configRepository, true );
isConfigPartitionFirstExtraction = true;
}
- configPartition = new LdifPartition();
+ configPartition = new SingleFileLdifPartition( confFile.getAbsolutePath() );
+
configPartition.setId( "config" );
configPartition.setSuffix( new DN( "ou=config" ) );
configPartition.setSchemaManager( schemaManager );
- configPartition.setWorkingDirectory( partitionsDir.getPath() + "/config" );
- configPartition.setPartitionDir( new File( configPartition.getWorkingDirectory() ) );
configPartition.initialize();
}
@@ -280,8 +281,15 @@ public class ApacheDsService
{
LOG.info( "begining to update config partition LDIF files after modifying manadatory attributes" );
+ // disable writes to the disk upon every modification to improve performance
+ configPartition.setEnableRewriting( false );
+
+ // perform updates
updateMandatoryOpAttributes( configPartition, directoryService );
+ // enable writes to disk, this will save the partition data first if found dirty
+ configPartition.setEnableRewriting( true );
+
LOG.info( "config partition data was successfully updated" );
}
@@ -374,7 +382,7 @@ public class ApacheDsService
/**
* Initialize the KERBEROS server
*/
- private void initKerberos( ) throws Exception
+ private void initKerberos() throws Exception
{
kdcServer = cpReader.createKdcServer();
if ( kdcServer == null )
@@ -407,7 +415,7 @@ public class ApacheDsService
/**
* Initialize the Change Password server
*/
- private void initChangePwd( ) throws Exception
+ private void initChangePwd() throws Exception
{
changePwdServer = cpReader.createChangePwdServer();
@@ -482,7 +490,6 @@ public class ApacheDsService
public void stop() throws Exception
{
-
// Stops the server
if ( ldapServer != null )
{