directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Custine" <chris.cust...@gmail.com>
Subject Re: Trying to create a new partition configuration class
Date Thu, 28 Jun 2007 05:09:25 GMT
If I understand all of this correctly, I think the problem is that
PartitionConfiguration which is the base for
MutableBTreePartitionConfiguration and BTreePartitionConfiguration is
specific to JdbmPartition and instantiates the JdbmPartition.  We need to
make some improvements to make this easier and more intuitive, but in the
mean time you can do the following things to get you closer to a custom
partition:

1).  Take the PartitionConfiguration class and create a
JdbcPartitionConfiguration from it.  We need to make this more intuitive,
but this is just a POJO to receive the config properties from the
server.xmlthat are specific to your partition, and this bean creates
the partition
object when Spring initializes.
2).  You will need to implement your own actual partition (ie JdbcPartition
which extends AbstractPartition) and return a configured instance of it from
your JdbcPartitionConfiguration.getContextPartition().
3).  There are a few properties in PartitionConfiguration that look like
they are required, even though we have no interface to enforce.  In
particular it looks like getIndexedAttributes() is called by
DefaultDirectoryService, so you may have to keep a stub of it in your
JdbcPartitionConfig.

There may actually be other uses of methods in PartitionConfiguration that
are required, but this is an area that needs a little clean up so bear with
us...

Hopefully this helps you out a bit.  This is not an area that is completely
intuitive and I have actually never had to do this yet.  We are getting
ready to add some new optional partition types so we will undoubtedly be
running into the same issues and fixing them.  Please let me know how this
works out for you and if there are any inaccuracies in what I said.  I will
file a Jira issue about cleaning up the PartitionConfiguration heirarchy,
etc. so that we get that fixed.

Thanks,
Chris

On 6/27/07, Barber, Dan (Contractor) <Dan.Barber@polycom.com> wrote:
>
>  This is the initial part of my effort to extend ApacheDS to use a
> different partition. I'm trying to essentially replicate existing ApacheDS
> classes but as my own classes. Once I've got the service starting using all
> my own classes then I can begin to modify them for my purposes.
>
>
>
> First, I just made my own version of MutableBTreePartitionConfiguration,
> changing only the package and class names. Included a jar file with that new
> class in apache's lib directory, modified server.xml to now create the
> example.com partition using my new partition configuration class,
> everything worked perfectly.
>
>
>
> Next step, I don't think we want a BTree-based implementation, so I tried
> to extend directly from PartitionConfiguration. In that class I attempted to
> pretty much duplicate the functionality in both MutableBTreeConfiguration
> and BTreePartitionConfiguration. I can't seem to get this to work.
>
>
>
> Here's what I'm getting in apacheds's rolling log:
>
>
>
> [13:53:30] ERROR [org.apache.directory.daemon.Bootstrapper] - Failed on
> org.apache.directory.server.Service.init(InstallationLayout, String[])
>
> org.apache.directory.server.core.interceptor.InterceptorException: Failed
> to initialize interceptor chain. [Root exception is
> java.lang.NullPointerException]
>
>             at
> org.apache.directory.server.core.interceptor.InterceptorChain.init(
> InterceptorChain.java:257)
>
>             at
> org.apache.directory.server.core.DefaultDirectoryService.initialize(
> DefaultDirectoryService.java:1006)
>
>             at
> org.apache.directory.server.core.DefaultDirectoryService.startup(
> DefaultDirectoryService.java:254)
>
>             at
> org.apache.directory.server.core.jndi.AbstractContextFactory.getInitialContext
> (AbstractContextFactory.java:123)
>
>             at javax.naming.spi.NamingManager.getInitialContext(Unknown
> Source)
>
>             at javax.naming.InitialContext.getDefaultInitCtx(Unknown
> Source)
>
>             at javax.naming.InitialContext.init(Unknown Source)
>
>             at javax.naming.InitialContext.<init>(Unknown Source)
>
>             at javax.naming.directory.InitialDirContext.<init>(Unknown
> Source)
>
>             at org.apache.directory.server.Service.init(Service.java:96)
>
>             at org.apache.directory.daemon.Bootstrapper.callInit(
> Bootstrapper.java:151)
>
>             at
> org.apache.directory.daemon.ProcrunBootstrapper.prunsrvStart(
> ProcrunBootstrapper.java:65)
>
> Caused by: java.lang.NullPointerException
>
>             at
> org.apache.directory.server.core.partition.impl.btree.ExpressionEnumerator.enumConj
> (ExpressionEnumerator.java:250)
>
>             at
> org.apache.directory.server.core.partition.impl.btree.ExpressionEnumerator.enumerate
> (ExpressionEnumerator.java:140)
>
>             at
> org.apache.directory.server.core.partition.impl.btree.DefaultSearchEngine.search
> (DefaultSearchEngine.java:135)
>
>             at
> org.apache.directory.server.core.partition.impl.btree.BTreePartition.search
> (BTreePartition.java:431)
>
>             at
> org.apache.directory.server.core.partition.DefaultPartitionNexus.search(
> DefaultPartitionNexus.java:922)
>
>             at
> org.apache.directory.server.core.authz.GroupCache.initialize(
> GroupCache.java:146)
>
>             at org.apache.directory.server.core.authz.GroupCache.<init>(
> GroupCache.java:117)
>
>             at
> org.apache.directory.server.core.authz.AuthorizationService.init(
> AuthorizationService.java:200)
>
>             at
> org.apache.directory.server.core.interceptor.InterceptorChain.register0(
> InterceptorChain.java:419)
>
>             at
> org.apache.directory.server.core.interceptor.InterceptorChain.register(
> InterceptorChain.java:378)
>
>             at
> org.apache.directory.server.core.interceptor.InterceptorChain.init(
> InterceptorChain.java:243)
>
>             ... 11 more
>
>
>
> I've also attached the server.xml and java code for my new class. Any
> ideas what is going on?
>
>
>
> Thanks,
>
>
>
> Dan
>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message