Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 48355 invoked from network); 27 Aug 2009 21:13:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 27 Aug 2009 21:13:58 -0000 Received: (qmail 13695 invoked by uid 500); 27 Aug 2009 21:13:58 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 13637 invoked by uid 500); 27 Aug 2009 21:13:58 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 13628 invoked by uid 99); 27 Aug 2009 21:13:58 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Aug 2009 21:13:58 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Aug 2009 21:13:56 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A492C23888EC; Thu, 27 Aug 2009 21:13:36 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Thu, 27 Aug 2009 21:13:36 -0000 To: commits@directory.apache.org From: akarasulu@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090827211336.A492C23888EC@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 @@ org.apache.directory.server + apacheds-schema-loader + ${pom.version} + + + + org.apache.directory.server apacheds-xdbm-tools ${pom.version} 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 bootstrapSchemas = new HashSet(); - 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 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 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 schemaMap = new HashMap(); - /** 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 schemaMap = new HashMap(); + + 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(), + new HashMap(), 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 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