directory-api mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel L├ęcharny <elecha...@gmail.com>
Subject Re: API changes impact on ApacheDS, take 10
Date Tue, 21 Jun 2016 07:16:58 GMT
Almost there...

All the server-integ test are now passing after many fixes all over teh
API and the server code.

I'm now dealing with the client API test, and I'm facing 5 errors. The
main issue is with Filters. Let me explain :

We use one data structure to store a parsed Filter : ExprNode (it has
many inherited classes). These classes stoe the assertion value using a
Value, which is typed (either a String or a byte[], depending on the
value type : Human Readable or not). The problem is that we can't
determinate if a value is binary or not if we don't know about the
AttribteType HR status. On teh client side, if we are not schema Aware,
we can't tell if something like : '(userPassword=\\30\\5C\\30\\0D\\06)'
is a binary value or not if we don't know that 'userPassword' is not
HumanReadable.

But we should not really care : teh filter is *never* processed on the
client side, we just parse it, and send it to the server, as a byte[]
anyway. We even have ways to pretty print the filter if needed.

The thing is that on the server side, we care about the type, and the
value is stored in a Value instance (which is schema aware).

We have a few possible solution :
- define 2 different implementatiosn for the Filter classes, one for the
client and one for the server.
- make the client schemaAware, no matter what
- store a binary value on the client side no matter what, when we parse
the value

My take is that option 1 would be over complicated, and would require a
full rewrite of a lot of parts of the client and server.

Option 2 would not work, simply because we may not be able to be
schemaAware everytime

That left option 3, which *should* work. I will evaluate it.

At this point, this is the very last step, as there is not so much
modules to check before having a full server working with teh refactored
API.

I'll see if I have time for such a refactoring in teh few next days !


Mime
View raw message