Hi David,

Congratulations on the summer gig.  Just a few comments on top of Emmanuel's comments.  I 
also agree with David's comments that working with Graphs is "The" challenge, 
although it's easy to understand that someone might want something very light weight that 
they can use to quickly persist an object to ADS.  This would be a sub-use case of 
working with Graph's, so it's a good place to start experimenting.

Interesting. Ole already worked on such a matter, I think you can benefit from what he did :
http://svn.apache.org/repos/asf/directory/sandbox/oersoy/das.testing/

Here' link to the current repository:

http://svn.apache.org/viewvc/incubator/tuscany/java/das/ldap/das.ldap/

This is an EMF based implementation of a Data Access Service for LDAP.  I'll 
give you a quick overview so that you get a sense of what pieces you might be 
able to extract information from in order to enable your use cases.  In general 
it works like this (Note that Ecore is just XMI, which is almost like XML 
Schema):

WRITE:
XML Schema > Ecore > Ecore Based Java Classes > Instance Graph > LDAP (ADS Only)
Annotated Java Interfaces > Ecore > Ecore Based Java Classes > Instance Graph > 
LDAP (ADS Only)
Ecore > Ecore Based Java Classes > Instance Graph > LDAP (ADS Only)

Note that Ecore is the common denominator for all these other models (Annotated Java Intefaces, XML Schema, etc). For example one could do ObjectClasses > Ecore
and then the rest is done, when using the DAS.

Note that DAS.write(graph) will write the ObjectClasses for the EObject 
instances, if they don't already exist.  So if you replace the meta data 
provided by EObject instances via their EClass instance, with java annotations 
you'll be able to use the same approach to generate ObjectClasses.  However in 
order to understand how this works you have to know a little about EClass 
instances.  This is a meta object contained by all EMF EObject instances (Which 
are also Object instances).  They describe all the methods and properties of 
the EObject.  There's a really good article on that here:

http://www.devx.com/Java/Article/29093

READ:
DAS.create(dn); That will restore the Graph using a generated factory

UPDATE:
DAS.update(graph);

Updates the correspnding LDAP entries per the objects in the graph.

DELETE:
DAS.delete(graph);

Delete the entire graph;

So if you understand how to work with an EClass (In addition to EAttribute and 
EReference instances), you can examine the CRUD methods on the DAS to see how 
they perform the JNDI operations that you would need to create an ObjectClass 
schema, delete one, store a java class per a newly defined schema, etc.

Hope that helps.
Cheers,
- Ole

Reply via email to