directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pierre-Arnaud Marcelot ...@marcelot.net>
Subject Adding annotations to Configuration beans
Date Mon, 06 Dec 2010 14:02:32 GMT
Hi Dev,

I successfully integrated the newly introduced ApacheDS Configuration Reader (with all configuration
beans) in the ApacheDS 2.0 Configuration Editor for Apache Directory Studio.
The UI is not completely finished yet, but I can already load a configuration from an LDIF
file and I have access to the values of each bean. It's working really great...

Now, that the configuration can be read, it also need to be written, and I started working
on a Configuration Writer.

In order to achieve this, I'd like to propose the addition of several Annotation elements
that would be used in the Configuration Beans to help both the configuration writer and the
reader.
Adding these Annotation elements would help maintaining the reader and writer loosely coupled
with the beans and would facilitate additions of new configuration items (like those needed
by Antoine, or others from third parties implementations).

There 3 annotations I'd like to introduce:

- @AttributeType( attributeTypeId )
This annotation is intended to be used on a field of a configuration bean and indicates which
attribute type id this field is associated with.
I think it's a great addition as we're no longer in need to infer the id of the attribute
type from the name of the field ( same thing for having to truncate the 'ads-' prefix sometimes).
It's clear and easy.
Furthermore, only fields with this annotation should be read and written by the configuration
reader/writer (which allows the configuration beans to have extra fields that are not necessarily
read or written).

- @RDN
This annotation is intended to be used on a field of a configuration bean in conjunction with
the @AttibuteType annotation and indicates that this particular field is the one (and only
for a given configuration bean) to be used in the RDN of the associated entry 

- @Container( containerRdn )
This is intended to be used on a field of a configuration bean and more particularly on a
field referring to a composite (List, Set, etc.) bean value. It indicates where the adding
bean entries are to be placed (in which container entry) like the 'ou=servers' entry under
the defaultDirectoryService entry.

Any thoughts on this?

Thanks,
Pierre-Arnaud
Mime
View raw message