directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Karasulu <akaras...@apache.org>
Subject Re: New module for the ACI parser needed
Date Wed, 30 Jun 2010 11:23:38 GMT
On Wed, Jun 30, 2010 at 2:02 PM, Emmanuel L├ęcharny <elecharny@apache.org>wrote:

>  On 6/30/10 11:36 AM, Alex Karasulu wrote:
>
>> On Tue, Jun 29, 2010 at 6:09 PM, Emmanuel Lecharny<elecharny@gmail.com
>> >wrote:
>>
>>   Hi guys,
>>>
>>> while working on the ACI parser, I hit a wall : if we want the parsed ACI
>>> to be used directly in the server without having to convert
>>> EntryAttributes
>>> to JNDI Attribute, we have to make the ACI parser schema aware. As it's a
>>> good idea to do so, I checked if it was possible.
>>>
>>> Sadly, the ACI parser is part of the shared-ldap module, when the
>>> SchemaManager is in a separate module, depending on shared-ldap.
>>>
>>> In order to solve this issue, I see no better way than creating a new
>>> module (shared-aci), any other solution would be a real PITA (like
>>> post-processing the ACI once parsed to inject the schemaManager into the
>>> elements).
>>>
>>> I will try to create this new module, and will give you some feedback.
>>>
>>> Please feel free to comment.
>>>
>>>  Perhaps there's some functionality in the SchemaManager that can be
>> separated out into another class to be put into the shared area. Or as
>> another option the SchemaManager functionality for dealing with schema
>> lookups can be separated and put into shared.
>>
>> Basically my thinking is as follows:
>>
>>   o the parser just needs to be schema aware
>>
> That's done now. We had some discussion about AT that does not belongs to
> the SchemaManager when parsing an ACI (like some AT found in an entry which
> has an ExtensibleObject OC, but that does not make any sense to protect such
> external ATs).
>
>
Right we used some kind of resolver interface with an implementation that
wrapped the AT registry if I remember correctly. This was done to facilitate
decoupling.


>
>    o being schema aware (read-only) can be achieved either with
>> non-SchemaManager components or a new SchemaManager implementation
>>
> Well, I think the current SchemaManager is already good enough for that
> purpose. I don't really see the added value to create a new one.
>
>
I was saying a new implementation to avoid having to pull in the current
implementation's dependencies. For example you could implement a schema
manager that just implemented the needed lookup methods while making the
other methods stubs that threw exceptions when used. This way you can have a
SM but not pull in the server's dependencies into shared.


>  If the SchemaManager interface has write based methods the interface can
>> be
>> broken down into two separate interfaces to compose the SchemaManager
>> interface. Then the read only component of this contract can be placed and
>> implemented within shared.
>>
> Not sure I see where you are going to.


Basically trying to say that some methods of the SM may be needed in
scenarios outside of the server without pulling in server dependencies.
 This might hint that there are more atomic components than this course
grained SM. If that's the case a breakdown of the interface into parts might
help with decoupling.


>
>  The read only component need not interact with the DS since nothing needs
>> to
>> be changed in the registries. It's there for lookups. The code there can
>> then be reused elsewhere like in the server.
>>
>> This just shows us that the SchemaManager interface needs to be further
>> decomposed. Whether this warrants another shared module (shared-aci)
>> perhaps
>> is up for debate.
>>
> I'm not sure we want to separate the read/write interfaces for the Schema.
> There is no need to do so atm, I don't see the added value. Also it won't
> solve the problem I have.
>
>
Sounds like you're not understanding me. There are SM interface methods that
might need to go into a simpler interface that is extended by the SM is all
I was suggesting. Nothing definitive. You said we needed to make ACI schema
aware (capable of looking up schema elements and using them) but you do not
want to pull in some of the server dependencies.

I presumed the SM implementation had deps on server components because some
methods are used to change the schema while others used to lookup or access
other components. I was suggesting that we might want to break it up into
parts to avoid server dependencies.

No worries though if you already solved the problem.

-- 
Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org
To set up a meeting with me: http://tungle.me/AlexKarasulu

Mime
View raw message