directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ole Ersoy <ole.er...@gmail.com>
Subject Re: [Schema] How do I write a new ObjectClass to ApacheDS
Date Thu, 29 Mar 2007 01:07:30 GMT
Hey Alex,

Yes - I think we're getting warmer!

Here's the thing.  Suppose I want to store an object that has String members

shoeSize
weight
height
name

etc.

I probably have name on some ObjectClass already defined in ApacheDS.

However I still want to duplicate name on a completely different 
ObjectClass.

The ObjectClass I want has a 1:1 correspondence with the Java Class I 
want to store.
That way a simple convention can be used to store the object, and no 
configuration file
or index searching is needed to include a preexisting ObjectClass that 
has the name attribute on it.

I guess I could create an index with all the LDAP attributeTypes and 
look to see whether a certain attribute
already exists, and use it, but I think it's simpler just to create a 
brand new ObjectClass.

Which leads me to another question.

Can ObjectClass names have periods or underscores in them

For Instance there's inetOrgPerson?

Could it be
inet.org.person?

The reason I ask is because I want to create ObjectClasses on the fly 
that are namespaced.

So if I have an Class with full namespace:

org.apache.directory.Configuration

that holds configuration data, I want to create an ObjectClass that has

the fully namespaced name of the corresponding Java Class. 

This way we avoid name collisions when someone from

trucks.example.com

and

vans.example.com

want to store their objects in ADS, and they
both have a Car Java Class that has a corresponding ObjectClass.

Hope fishing was a blast.  I'm sure you're really glad to out of the 
Sun, blue clear water,
and cool breeze environment and  be back in front of a monitor.

I was getting the shivers a little in Canada, but my Aunt "In law" had
DSL, so I managed to sneak a few injections.

Cheers,
- Ole


Alex Karasulu wrote:
> Hi Ole,
>  
> Looks like you got some good advice already.  Let me just add one more 
> suggestion
> while you're looking into creating a schema.  Sometimes you'll find 
> that the
> attributeTypes and objectClasses you're looking for are already 
> defined in published
> schemas.
>  
> For example for users you might want to take a look at something like 
> inetOrgPerson etc.
>  
> Second I suppose you're thinking of staying bleeding edge by using 1.5 
> rather than using
> 1.0.  I'd recommend this.  And if so then merely adding the schema 
> description entry for
> the objectClass in the ou=schema partition in the appropriate place 
> should work.  The schema
> is dynamic in 1.5 but I guess Emmanuel and Stephan already pointed 
> this out.
>  
> I will try to back read this thread.  As you can imagine I have a lot 
> to catch up on since
> I've been on vacation fishing all week :D.  Yeah I don't miss LDAP he he.
>  
> Regards,
> Alex
>  
> On 3/28/07, *Ole Ersoy* <ole.ersoy@gmail.com 
> <mailto:ole.ersoy@gmail.com>> wrote:
>
>     Hey Guys,
>
>     I'm in the middle of designing the DAS and
>     decided that I can probably make it way more efficient
>     if I create an ObjectClass per Java Class that I want to write to
>     ADS.
>
>     So how do I programmatically create a ObjectClass and store it
>     in ApacheDS?
>
>     Do we have a description somewhere or is this a standard JNDI thing?
>
>     Here's a little further elaboration on what I want to do for those
>     interested.
>
>     Keep in mind this is just an example.  The Class User could be any
>     java
>     class used in a model.
>
>     I have a Java Class >> User
>
>     The Class User has String members [firstName, lastName, password]
>
>     So I want to create a Structural ObjectClass in ApacheDS so that
>     I can add it as an attribute to the DN where a User instance will be
>     stored (The java object instance).
>
>     If I were doing this in a relational database, I would create a table
>     definition instead of a ObjectClass.
>
>     So I'm looking for something like this:
>
>     ObjectClass objectClass = LDAPSchemaFactory.createObjectClass();
>     objectClass.setName("User");
>     ObjectClassAttribute objectClassAttribute =
>     LDAPSchemaFactory.createObjectClassAttribute();
>     objectClassAttribute.setName("firstName");
>     objectClassAttribute.setType(LDAP_STRING_ATTRIBUTE_TYPE);
>
>     Then I would do something like:
>
>     ctx.storeObjectClass(objectClass);
>
>     The objectClass can now be assigned as an attribute to an ADS entry,
>     and if we were to look at all the ObjectClasses in ADS through
>     JXPlorer
>     or LDAP Studio,
>     we would see the User ObjectClass in the list.
>
>     Does that make sense?
>
>     Thanks,
>     - Ole
>
>
>
>
>
>


Mime
View raw message