I’m proposing some changes to the Partition API. The
- Moving partition-related
classes to org.apache.ldap.server.partition. This is to provide a cleaner
Partition API, separate from other classes.
- Renaming interface
ContextPartition to Partition. This is just to avoid confusion with the
new class called PartitionContext. See next item.
- Creating new interfaces
PartitionConfig and PartitionContext. This is similar to ServletConfig and
ServletContext. The PartitionConfig holds the configuration information
for each partition. The PartitionContext provides information about the
context in which the partition is running (i.e. the server).
- Creating new class
GenericPartitionConfig and GenericPartitionContext. These classes provide
the default implementation of PartitionConfig and PartitionContext. These
classes are only used internally, they won’t be exposed in the API.
- Creating a new class
AbstractPartition that implements Partition. This becomes the base class
for all partitions.
AbstractContextPartition to AbstractDbPartition and make it extends the
AbstractPartition. This becomes the base class for all partitions using
the JDBM database (e.g. ApplicationPartition and SystemPartition).
Note that these changes won’t be backward compatible,
so those who have implemented custom partition would need to fix their code a
little bit. But things should become simpler now, you don’t have to
implement an interface anymore, you can just extend from the base class.
Any suggestions? Comments? Please let me know if this is ok.
I will submit a patch that includes these changes and also the documentations
(xdocs). Thanks a lot.
Endi S. Dewata