You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2009/08/27 23:13:36 UTC
svn commit: r808631 - in /directory: apacheds/branches/apacheds-schema/core/
apacheds/branches/apacheds-schema/core/src/main/java/org/apache/directory/server/core/
apacheds/branches/apacheds-schema/schema-loader/src/main/java/org/apache/directory/serve...
Author: akarasulu
Date: Thu Aug 27 21:13:35 2009
New Revision: 808631
URL: http://svn.apache.org/viewvc?rev=808631&view=rev
Log:
fixing initialization code to use LDIF files now for bootstrapping registries
Modified:
directory/apacheds/branches/apacheds-schema/core/pom.xml
directory/apacheds/branches/apacheds-schema/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
directory/apacheds/branches/apacheds-schema/schema-loader/src/main/java/org/apache/directory/server/schema/loader/ldif/LdifSchemaLoader.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaLoader.java
Modified: directory/apacheds/branches/apacheds-schema/core/pom.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-schema/core/pom.xml?rev=808631&r1=808630&r2=808631&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-schema/core/pom.xml (original)
+++ directory/apacheds/branches/apacheds-schema/core/pom.xml Thu Aug 27 21:13:35 2009
@@ -51,6 +51,12 @@
<dependency>
<groupId>org.apache.directory.server</groupId>
+ <artifactId>apacheds-schema-loader</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-xdbm-tools</artifactId>
<version>${pom.version}</version>
</dependency>
Modified: directory/apacheds/branches/apacheds-schema/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-schema/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java?rev=808631&r1=808630&r2=808631&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-schema/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java (original)
+++ directory/apacheds/branches/apacheds-schema/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java Thu Aug 27 21:13:35 2009
@@ -76,6 +76,7 @@
import org.apache.directory.server.schema.bootstrap.SystemSchema;
import org.apache.directory.server.schema.bootstrap.partition.DbFileListing;
import org.apache.directory.server.schema.bootstrap.partition.SchemaPartitionExtractor;
+import org.apache.directory.server.schema.loader.ldif.LdifSchemaLoader;
import org.apache.directory.server.schema.registries.DefaultRegistries;
import org.apache.directory.shared.ldap.NotImplementedException;
import org.apache.directory.shared.ldap.constants.AuthenticationLevel;
@@ -320,45 +321,8 @@
changeLog = new DefaultChangeLog();
journal = new DefaultJournal();
syncPeriodMillis = DEFAULT_SYNC_PERIOD;
-
- // --------------------------------------------------------------------
- // Load the bootstrap schemas to start up the schema partition
- // --------------------------------------------------------------------
-
- // setup temporary loader and temp registry
- BootstrapSchemaLoader loader = new BootstrapSchemaLoader();
- OidRegistry oidRegistry = new OidRegistry();
- registries = new Registries( "bootstrap", loader, oidRegistry );
-
- // load essential bootstrap schemas
- Set<Schema> bootstrapSchemas = new HashSet<Schema>();
- bootstrapSchemas.add( new ApachemetaSchema() );
- bootstrapSchemas.add( new ApacheSchema() );
- bootstrapSchemas.add( new CoreSchema() );
- bootstrapSchemas.add( new SystemSchema() );
-
- try
- {
- loader.loadWithDependencies( bootstrapSchemas, registries );
- }
- catch ( Exception e )
- {
- throw new IllegalStateException( ILLEGAL_STATE_MSG, e );
- }
-
- // run referential integrity tests
- List<Throwable> errors = registries.checkRefInteg();
-
- if ( !errors.isEmpty() )
- {
- NamingException e = new NamingException();
- e.setRootCause( errors.get( 0 ) );
- throw new IllegalStateException( ILLEGAL_STATE_MSG, e );
- }
-
- SerializableComparator.setRegistry( registries.getComparatorRegistry() );
-
csnFactory = new CsnFactory( replicaId );
+ registries = new Registries( new OidRegistry() );
}
@@ -1502,9 +1466,38 @@
}
// --------------------------------------------------------------------
+ // Load schemas into the schema registry from LDIF schema repository
+ // --------------------------------------------------------------------
+
+ LdifSchemaLoader loader = new LdifSchemaLoader( schemaDirectory );
+
+ try
+ {
+ loader.loadAllEnabled( registries );
+ }
+ catch ( Exception e )
+ {
+ throw new IllegalStateException( ILLEGAL_STATE_MSG, e );
+ }
+
+ // run referential integrity tests
+ List<Throwable> errors = registries.checkRefInteg();
+
+ if ( !errors.isEmpty() )
+ {
+ NamingException e = new NamingException();
+ e.setRootCause( errors.get( 0 ) );
+ throw new IllegalStateException( ILLEGAL_STATE_MSG, e );
+ }
+
+ SerializableComparator.setRegistry( registries.getComparatorRegistry() );
+
+ // --------------------------------------------------------------------
// Initialize schema partition
// --------------------------------------------------------------------
+
+
JdbmPartition schemaPartition = new JdbmPartition();
schemaPartition.setId( "schema" );
schemaPartition.setCacheSize( 1000 );
Modified: directory/apacheds/branches/apacheds-schema/schema-loader/src/main/java/org/apache/directory/server/schema/loader/ldif/LdifSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-schema/schema-loader/src/main/java/org/apache/directory/server/schema/loader/ldif/LdifSchemaLoader.java?rev=808631&r1=808630&r2=808631&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-schema/schema-loader/src/main/java/org/apache/directory/server/schema/loader/ldif/LdifSchemaLoader.java (original)
+++ directory/apacheds/branches/apacheds-schema/schema-loader/src/main/java/org/apache/directory/server/schema/loader/ldif/LdifSchemaLoader.java Thu Aug 27 21:13:35 2009
@@ -116,13 +116,6 @@
/** directory containing the schema LDIF file for ou=schema */
private final File baseDirectory;
- /**
- * A map of all available schema names to schema objects. This map is
- * populated when this class is created with all the schemas present in
- * the LDIF based schema repository.
- */
- private final Map<String,Schema> schemaMap = new HashMap<String,Schema>();
-
/** a filter for listing all the LDIF files within a directory */
private final FilenameFilter ldifFilter = new FilenameFilter()
{
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java?rev=808631&r1=808630&r2=808631&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java Thu Aug 27 21:13:35 2009
@@ -20,6 +20,7 @@
package org.apache.directory.shared.ldap.schema.registries;
+import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Stack;
@@ -45,9 +46,18 @@
/** static class logger */
private static final Logger LOG = LoggerFactory.getLogger( AbstractSchemaLoader.class );
+
protected SchemaLoaderListener listener;
+ /**
+ * A map of all available schema names to schema objects. This map is
+ * populated when this class is created with all the schemas present in
+ * the LDIF based schema repository.
+ */
+ protected final Map<String,Schema> schemaMap = new HashMap<String,Schema>();
+
+
public void setListener( SchemaLoaderListener listener )
{
this.listener = listener;
@@ -73,9 +83,22 @@
/**
+ * {@inheritDoc}
+ */
+ public final void loadAllEnabled( Registries registries ) throws Exception
+ {
+ for ( Schema schema : schemaMap.values() )
+ {
+ loadDepsFirst( schema, new Stack<String>(),
+ new HashMap<String,Schema>(), schema, registries );
+ }
+ }
+
+
+ /**
* Recursive method which loads schema's with their dependent schemas first
* and tracks what schemas it has seen so the recursion does not go out of
- * control with depenency cycle detection.
+ * control with dependency cycle detection.
*
* @param rootAncestor the triggering schema load request: the root ancestor of dependency chain
* @param beenthere stack of schema names we have visited and have yet to load
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java?rev=808631&r1=808630&r2=808631&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java Thu Aug 27 21:13:35 2009
@@ -19,8 +19,8 @@
*/
package org.apache.directory.shared.ldap.schema.registries;
-import java.util.ArrayList;
import java.util.List;
+import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import javax.naming.NamingException;
@@ -324,8 +324,6 @@
}
}
- //List<Throwable> checkRefInteg();
-
/**
* Gets a schema that has been loaded into these Registries.
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaLoader.java?rev=808631&r1=808630&r2=808631&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaLoader.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaLoader.java Thu Aug 27 21:13:35 2009
@@ -68,6 +68,14 @@
void loadWithDependencies( Schema schema, Registries registries ) throws Exception;
/**
+ * Loads all available enabled schemas.
+ *
+ * @param registries the registry to load all enabled schemas into
+ * @throws Exception if there are any failures
+ */
+ void loadAllEnabled( Registries registries ) throws Exception;
+
+ /**
* Loads a single schema. Do not try to resolve dependencies while implementing this method.
*
* @param schema the schema to load