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
>
>
>
>
>
>