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
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
) 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?