Hi guys,

as we are trying to work on a Schema Aware API, we are facing some issues when it comes to connect and work with some other LdapServer, like OpenLDaP, AD, etc. Those issues were expected, and there is nothing serious, but we need to do some refactoring in order to ease the pain. Here is a list of known issues : o We have a mixed model for SchemaObject. They are mutable, they don't hold everything we need in the server, the APi and studio, and it's not versatile. We need to create a Immutable SchemaObject model, and have mutable objects we can use in Studio o We have some methods in SchemaObject classes that does not belong to those classes : addToRegistries(), for instance, should be a SchemaManager method o We need place holder schemaObjects, when we connect to a server which is not exposing all the SchemaObject we expect. For instance, openLDAP does not expose the AttributeTypeDescritpion syntax, and 13 other syntaxes referenced by ATs. AD does not expose any syntax at all, etc. Using a fake SchemaObject is mandatory to avoid NPE and other bizarre behaviors
o We need to handle MRU, NF, DCR and DSR
o We need to make a distinction between a Schema and a Schema file. Schema is the whole stuff, with all teh AT, OC etc. A SchemaFile is just a part of it. Currently we use Schema to describe files, not to describe the while set of SchemaObject. This must be clarified o We have a lot of useless conversions done. For instance, to load the schema from a remote server, we get the elements in a RDC format, convert them to SchemaObjects, then convert them to Entries, then we convert them to SchemaObjects again, because all those conversions are done inside some private methods. We must only use one pivot format, the SchemaObject, and convertto and from this format o We need to add decorators around existing SchemaObject to do those conversions (in and out) o We need to add some listeners in the SchemaManager to allow a third party (namely, studio) to know when something has changed in the schema

All those items are not complex ones, we are close to have something which can be use almost everywhere, but we need to get those items fixed if we want to have a solid and stable release. I'm going to address some of those points asap.

--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to