This set of changes allow to have the schema synchronization working by
configuring synchronization for suffix cn=schema (issue 613) .
You may want to read the schema Synchronization documents before reviewing this
https://opends.dev.java.net/public/docs/dev-docs/SchemaSyncFeatureRequirements.html and
https://opends.dev.java.net/public/docs/dev-docs/SchemaSyncDesign.html
It includes :
- Change the PersistentServerState to use attribute ds-sync-state in the base entry
instead of a specific entry.
Add new unit test for the PersistentServerState class.
Change attribute ds-sync-state to be an operational attribute.
- Change the schema backend to allow storage of the ds-synch-state attribute in the
schema ldif File.
This change is arguable because I have chosen to make this as simple as possible
and therefore only allowed the storage of this attribute in the schema File.
While this has the advantage of being very simple it has
the drawback of adding some code in the schema backend that is only related to synchronization.
The other choice would be to add a generic service in the schema backend for storing
any type of attribute.
Please tell me if you think that this would be better.
- Disable the conflict resolution for cn=schema so that we don't polute the ldif entries
with the historical information
- Add unit test for schema synchronization
The work for schema synchronization is not complete with this.
A second round of modification is necessary for synchronizing the schema changes
done by manually editing the files or by dynamically loading a file.