Ahhh - You are still out there - Lucky Dog!

Thanks for wading through all these "Books" while on vacation!

Man - You hit every nail right on the head, so I'm just going to write at the
top of this mail.

I was just about to hit send on another mail, and then I saw you replied to this one.

Anyways I'll send the other one too, just in case it helps others following the discussion,
but my only question now is

how do I create an ObjectClass on the fly before storing a (Java Class instance)?

On the wiki here:
http://cwiki.apache.org/confluence/display/DIRxSRVx11/Schema+Subsystem+Redesign

It says:
The new design will enable dynamic yet persistent updates to schema elements within the server.

So how do I do it using a JNDI Context?

I need something like:

ObjectClass objectClass = LDAPFactory.createObjectClass();
objectClass.setName(myJavaObjectInstance.class.getFullyQualifiedName() ); //Sets the name of the object class to the fully qualified name of the java class

ObjectClassAttribute objectClassNameAttribute = LDAPFactory.createObjectClassAttribute();

objectClassNameAttribute.setName("name");
objectClassNameAttribute.setContainer(objectClass);

etc.

then

ctx.storeObjectClass(objectClass);

Does that make any sense?

Thanks again!
- Ole






Alex Karasulu wrote:
Hi Ole,

On 3/28/07, *Ole Ersoy* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    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. No problem. Really it does not matter; you can create a new xyzName attribute. Sometimes that's not so bad. Now I see that you want to autogenerate a schema from the Class metadata and creating the attributes for your objectClass with namespace qualification might
be a good idea.

    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.

Yep I agree (now that I understand your motives more) just create all the LDAP metadata you need on the fly to establish the mapping.
    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.

Nah don't bother.

    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?

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

Gotchya.

SNIP ...

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.
Hey I still have a few more days to go :). It's not over yet. Regards,
Alex

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* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> 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
>
>
>
>
>
>


Reply via email to