Greetings,
 
I'm trying to write a custom partition that will be used as context partition, but I'd like to continue to use the Btree/Jdbm partition implementation for the system configuration partition.
 
With a little trial and error (mostly errors), I've found out that several methods in the JdbmPartition (used by the system configuration partition partition) will not work unless preceeded by a corresponding "fix-ups" provided by the interceptors.  For example, calls to to the methods in org.apache.directory.server.core.normalization.NormalizationService must be made, or BindDNs can not be resolved.  Unfortunately,  MyCustomPartition, doesn't like the way that LdapDNs, attributes and filters are normalized by org.apache.directory.server.core.normalization.NormalizationService. 
 
In other words, there appears to be more than at least one situation where a correlation between interceptors and partitions is necessary, but what we have (at least in Apache DS 1.0.x) is a design where all interceptors in the chain are called regardles of the partition that will eventually be invoked. To configure per-partition interception.
 
Perhaps what I'm looking for is a way that I can insert my interceptor first in the chain and then optionally skip other interceptors if I encounter a DN or base that I know will invoke my partition?  According to documentation for ApacheDS 1.0.x (http://directory.apache.org/apacheds/1.0/interceptors.html) the Nexus is called by a "special interceptor" at the end of the chain.  Therefore, it seems very difficult to skip interceptors in the chain without also elimintating the call to PartitionNexus ...
 
I suppose my real question is why ApacheDS wasn't designed so that interceptors could (optionally) be configured for association only with a certain suffix or partition.  This would allow the configuration flexibility that I would need -- to use both the JdbmPartition and my own customPartition without having to undo all of the normalization, schema, referral (,etc) stuff in my own customPartition that I didn't want done in the first place...
 
Does this make any sense?
 
--
Matt