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 2006/12/31 01:18:30 UTC
svn commit: r491353 - in /directory/branches/trunks/schema/apacheds:
core/src/main/java/org/apache/directory/server/core/schema/
schema-registries/src/main/java/org/apache/directory/server/schema/registries/
Author: akarasulu
Date: Sat Dec 30 16:18:30 2006
New Revision: 491353
URL: http://svn.apache.org/viewvc?view=rev&rev=491353
Log:
moving data access operations to a schema partition dao
Added:
directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java
Modified:
directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java
directory/branches/trunks/schema/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/AbstractSchemaLoader.java
Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java?view=diff&rev=491353&r1=491352&r2=491353
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java Sat Dec 30 16:18:30 2006
@@ -33,7 +33,6 @@
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
-import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import org.apache.directory.server.core.partition.Partition;
@@ -48,12 +47,9 @@
import org.apache.directory.server.schema.registries.NameFormRegistry;
import org.apache.directory.server.schema.registries.NormalizerRegistry;
import org.apache.directory.server.schema.registries.ObjectClassRegistry;
-import org.apache.directory.server.schema.registries.OidRegistry;
import org.apache.directory.server.schema.registries.Registries;
import org.apache.directory.server.schema.registries.SyntaxCheckerRegistry;
import org.apache.directory.server.schema.registries.SyntaxRegistry;
-import org.apache.directory.shared.ldap.filter.ExprNode;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
import org.apache.directory.shared.ldap.name.LdapDN;
import org.apache.directory.shared.ldap.schema.AttributeType;
import org.apache.directory.shared.ldap.schema.Normalizer;
@@ -61,6 +57,7 @@
import org.apache.directory.shared.ldap.schema.Syntax;
import org.apache.directory.shared.ldap.schema.MatchingRule;
import org.apache.directory.shared.ldap.schema.syntax.SyntaxChecker;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -76,9 +73,9 @@
/** static class logger */
private final static Logger log = LoggerFactory.getLogger( PartitionSchemaLoader.class );
+ private final SchemaPartitionDao dao;
private SchemaEntityFactory factory;
private Partition partition;
- private OidRegistry oidRegistry;
private AttributeTypeRegistry attrRegistry;
@@ -86,8 +83,9 @@
{
this.factory = new SchemaEntityFactory( bootstrapRegiistries );
this.partition = partition;
- this.oidRegistry = bootstrapRegiistries.getOidRegistry();
this.attrRegistry = bootstrapRegiistries.getAttributeTypeRegistry();
+
+ dao = new SchemaPartitionDao( this.partition, bootstrapRegiistries );
}
@@ -117,54 +115,23 @@
loadWithDependencies( enabledSchemaSet, registries );
}
-
+
public Map<String,Schema> getSchemas() throws NamingException
{
- Map<String,Schema> schemas = new HashMap<String,Schema>();
- NamingEnumeration list = listSchemas();
- while( list.hasMore() )
- {
- SearchResult sr = ( SearchResult ) list.next();
- Schema schema = factory.getSchema( sr.getAttributes() );
- schemas.put( schema.getSchemaName(), schema );
- }
-
- return schemas;
+ return dao.getSchemas();
}
public Set<String> getSchemaNames() throws NamingException
{
- Set<String> schemaNames = new HashSet<String>();
- NamingEnumeration list = listSchemas();
- while( list.hasMore() )
- {
- SearchResult sr = ( SearchResult ) list.next();
- schemaNames.add( ( String ) sr.getAttributes().get( "cn" ).get() );
- }
-
- return schemaNames;
+ return dao.getSchemaNames();
}
- private NamingEnumeration listSchemas() throws NamingException
- {
- LdapDN base = new LdapDN( "ou=schema" );
- base.normalize( attrRegistry.getNormalizerMapping() );
- ExprNode filter = new SimpleNode( oidRegistry.getOid( "objectClass" ), "metaSchema", SimpleNode.EQUALITY );
- SearchControls searchControls = new SearchControls();
- searchControls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
-
- return partition.search( base, new HashMap(), filter, searchControls );
- }
-
-
public Schema getSchema( String schemaName ) throws NamingException
{
- LdapDN dn = new LdapDN( "cn=" + schemaName + ",ou=schema" );
- dn.normalize( attrRegistry.getNormalizerMapping() );
- return factory.getSchema( partition.lookup( dn ) );
+ return dao.getSchema( schemaName );
}
Added: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java?view=auto&rev=491353
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java (added)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java Sat Dec 30 16:18:30 2006
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.server.core.schema;
+
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+
+import org.apache.directory.server.core.partition.Partition;
+import org.apache.directory.server.schema.bootstrap.Schema;
+import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
+import org.apache.directory.server.schema.registries.OidRegistry;
+import org.apache.directory.server.schema.registries.Registries;
+import org.apache.directory.shared.ldap.NotImplementedException;
+import org.apache.directory.shared.ldap.filter.ExprNode;
+import org.apache.directory.shared.ldap.filter.SimpleNode;
+import org.apache.directory.shared.ldap.name.LdapDN;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * A specialized data access object for managing schema objects in the
+ * schema partition.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class SchemaPartitionDao
+{
+ /** static class logger */
+ private final static Logger log = LoggerFactory.getLogger( SchemaPartitionDao.class );
+
+ private final Partition partition;
+ private final Registries bootstrapRegistries;
+ private final SchemaEntityFactory factory;
+ private final OidRegistry oidRegistry;
+ private final AttributeTypeRegistry attrRegistry;
+
+
+ /**
+ * Creates a schema dao object backing information within a schema partition.
+ *
+ * @param partition
+ * @throws NamingException
+ */
+ public SchemaPartitionDao( Partition partition, Registries bootstrapRegistries ) throws NamingException
+ {
+ this.partition = partition;
+ this.bootstrapRegistries = bootstrapRegistries;
+ this.factory = new SchemaEntityFactory( this.bootstrapRegistries );
+ this.oidRegistry = this.bootstrapRegistries.getOidRegistry();
+ this.attrRegistry = this.bootstrapRegistries.getAttributeTypeRegistry();
+ }
+
+
+ public Map<String,Schema> getSchemas() throws NamingException
+ {
+ Map<String,Schema> schemas = new HashMap<String,Schema>();
+ NamingEnumeration list = listSchemas();
+ while( list.hasMore() )
+ {
+ SearchResult sr = ( SearchResult ) list.next();
+ Schema schema = factory.getSchema( sr.getAttributes() );
+ schemas.put( schema.getSchemaName(), schema );
+ }
+
+ return schemas;
+ }
+
+
+ public Set<String> getSchemaNames() throws NamingException
+ {
+ Set<String> schemaNames = new HashSet<String>();
+ NamingEnumeration list = listSchemas();
+ while( list.hasMore() )
+ {
+ SearchResult sr = ( SearchResult ) list.next();
+ schemaNames.add( ( String ) sr.getAttributes().get( "cn" ).get() );
+ }
+
+ return schemaNames;
+ }
+
+
+ private NamingEnumeration listSchemas() throws NamingException
+ {
+ LdapDN base = new LdapDN( "ou=schema" );
+ base.normalize( attrRegistry.getNormalizerMapping() );
+ ExprNode filter = new SimpleNode( oidRegistry.getOid( "objectClass" ), "metaSchema", SimpleNode.EQUALITY );
+ SearchControls searchControls = new SearchControls();
+ searchControls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+
+ return partition.search( base, new HashMap(), filter, searchControls );
+ }
+
+
+ public Schema getSchema( String schemaName ) throws NamingException
+ {
+ LdapDN dn = new LdapDN( "cn=" + schemaName + ",ou=schema" );
+ dn.normalize( attrRegistry.getNormalizerMapping() );
+ return factory.getSchema( partition.lookup( dn ) );
+ }
+
+
+ public Schema getSchema( String schemaName, Properties schemaProperties ) throws NamingException
+ {
+ return getSchema( schemaName );
+ }
+
+
+ public String getSchemaNameForAttribute( String attributeName ) throws NamingException
+ {
+ throw new NotImplementedException();
+ }
+}
Modified: directory/branches/trunks/schema/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/AbstractSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/AbstractSchemaLoader.java?view=diff&rev=491353&r1=491352&r2=491353
==============================================================================
--- directory/branches/trunks/schema/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/AbstractSchemaLoader.java (original)
+++ directory/branches/trunks/schema/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/AbstractSchemaLoader.java Sat Dec 30 16:18:30 2006
@@ -19,6 +19,7 @@
*/
package org.apache.directory.server.schema.registries;
+
import java.util.Map;
import java.util.Properties;
import java.util.Stack;
@@ -30,7 +31,6 @@
import org.slf4j.LoggerFactory;
-
/**
* An abstract class with a utility method and setListener() implemented.
*
@@ -87,6 +87,7 @@
{
if ( registries.getLoadedSchemas().containsKey( schema.getSchemaName() ) )
{
+ log.warn( "{} schema has already been loaded" + schema.getSchemaName() );
return;
}