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 2004/10/28 21:39:53 UTC
svn commit: rev 55888 - in incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve: jndi jndi/ibs schema schema/bootstrap
Author: akarasulu
Date: Thu Oct 28 12:39:53 2004
New Revision: 55888
Modified:
incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/EveContextFactory.java
incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java
incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/ibs/SchemaService.java
incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/schema/GlobalOidRegistry.java
incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/schema/bootstrap/BootstrapOidRegistry.java
Log:
Changes ...
o found a little bug in the OID registries and fixed it
o made operational attribute filtering use the schema now to determine
if an attribute is returned by checking the USAGE on the attributeType
Modified: incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/EveContextFactory.java
==============================================================================
--- incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/EveContextFactory.java (original)
+++ incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/EveContextFactory.java Thu Oct 28 12:39:53 2004
@@ -235,14 +235,12 @@
provider.addInterceptor( interceptor, state );
/*
- * Create and add the Eve scheam service interceptor to both the
- * before and after interceptor chains.
+ * Create and add the Eve schema service interceptor to before chain.
*/
state = new InvocationStateEnum[]{
- InvocationStateEnum.PREINVOCATION,
- InvocationStateEnum.POSTINVOCATION
+ InvocationStateEnum.PREINVOCATION
};
- interceptor = new SchemaService( root, globalRegistries );
+ interceptor = new SchemaService( root, globalRegistries, filterService );
provider.addInterceptor( interceptor, state );
/*
Modified: incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java
==============================================================================
--- incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java (original)
+++ incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java Thu Oct 28 12:39:53 2004
@@ -20,6 +20,7 @@
import javax.naming.Name;
import javax.naming.Context;
import javax.naming.NamingException;
+import javax.naming.NamingEnumeration;
import javax.naming.directory.*;
import org.apache.eve.RootNexus;
@@ -29,8 +30,11 @@
import org.apache.eve.jndi.BaseInterceptor;
import org.apache.eve.jndi.InvocationStateEnum;
import org.apache.eve.schema.GlobalRegistries;
+import org.apache.eve.schema.AttributeTypeRegistry;
import org.apache.ldap.common.util.DateUtils;
+import org.apache.ldap.common.schema.AttributeType;
+import org.apache.ldap.common.schema.UsageEnum;
/**
@@ -48,6 +52,7 @@
private final SearchResultFilter SEARCH_FILTER = new SearchResultFilter()
{
public boolean accept( DbSearchResult result, SearchControls controls )
+ throws NamingException
{
if ( controls.getReturningAttributes() == null )
{
@@ -60,7 +65,7 @@
/** the lookup filter to register with filter service */
private final LookupFilter LOOKUP_FILTER = new LookupFilter()
{
- public void filter( Name dn, Attributes entry )
+ public void filter( Name dn, Attributes entry ) throws NamingException
{
OperationalAttributeService.this.filter( entry );
}
@@ -76,9 +81,8 @@
/** the root nexus of the system */
private final RootNexus nexus;
/** a service used to filter search and lookup operations */
- private FilterService filteringService;
- /** the global schema object registries */
- private final GlobalRegistries globalRegistries;
+ private final FilterService filteringService;
+ private final AttributeTypeRegistry registry;
/**
@@ -97,11 +101,11 @@
throw new NullPointerException( "the nexus cannot be null" );
}
- this.globalRegistries = globalRegistries;
- if ( this.globalRegistries == null )
+ if ( globalRegistries == null )
{
throw new NullPointerException( "the global registries cannot be null" );
}
+ this.registry = globalRegistries.getAttributeTypeRegistry();
this.filteringService = filteringService;
if ( this.filteringService == null )
@@ -254,12 +258,20 @@
* @param attributes the resultant attributes to filter
* @return true always
*/
- private boolean filter( Attributes attributes )
+ private boolean filter( Attributes attributes ) throws NamingException
{
- attributes.remove( "creatorsName" );
- attributes.remove( "modifiersName" );
- attributes.remove( "createTimestamp" );
- attributes.remove( "modifyTimestamp" );
+ NamingEnumeration list = attributes.getIDs();
+
+ while ( list.hasMore() )
+ {
+ String attrId = ( String ) list.next();
+ AttributeType type = registry.lookup( attrId );
+
+ if ( type.getUsage() != UsageEnum.USERAPPLICATIONS )
+ {
+ attributes.remove( attrId );
+ }
+ }
return true;
}
Modified: incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/ibs/SchemaService.java
==============================================================================
--- incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/ibs/SchemaService.java (original)
+++ incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/jndi/ibs/SchemaService.java Thu Oct 28 12:39:53 2004
@@ -32,6 +32,7 @@
{
/** the root nexus to all database partitions */
private final RootNexus nexus;
+ private FilterService filterService;
/** the global schema object registries */
private final GlobalRegistries globalRegistries;
@@ -41,8 +42,10 @@
*
* @param nexus the root nexus to access all database partitions
* @param globalRegistries the global schema object registries
+ * @param filterService
*/
- public SchemaService( RootNexus nexus, GlobalRegistries globalRegistries )
+ public SchemaService( RootNexus nexus, GlobalRegistries globalRegistries,
+ FilterService filterService )
{
this.nexus = nexus;
if ( this.nexus == null )
@@ -54,6 +57,12 @@
if ( this.globalRegistries == null )
{
throw new NullPointerException( "the global registries cannot be null" );
+ }
+
+ this.filterService = filterService;
+ if ( this.filterService == null )
+ {
+ throw new NullPointerException( "the filter service cannot be null" );
}
}
}
Modified: incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/schema/GlobalOidRegistry.java
==============================================================================
--- incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/schema/GlobalOidRegistry.java (original)
+++ incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/schema/GlobalOidRegistry.java Thu Oct 28 12:39:53 2004
@@ -170,7 +170,9 @@
*/
public boolean hasOid( String name )
{
- return this.byName.contains( name ) || this.byOid.contains( name );
+ return this.byName.containsKey( name ) ||
+ this.byOid.containsKey( name ) ||
+ this.bootstrap.hasOid( name );
}
Modified: incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/schema/bootstrap/BootstrapOidRegistry.java
==============================================================================
--- incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/schema/bootstrap/BootstrapOidRegistry.java (original)
+++ incubator/directory/eve/trunk/backend/core/src/java/org/apache/eve/schema/bootstrap/BootstrapOidRegistry.java Thu Oct 28 12:39:53 2004
@@ -105,7 +105,7 @@
*/
public boolean hasOid( String name )
{
- return this.byName.contains( name ) || this.byOid.contains( name );
+ return this.byName.containsKey( name ) || this.byOid.containsKey( name );
}