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 4
Date Fri, 20 May 2016 09:04:39 GMT
Another update...

progress, progress !

[INFO]
------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] ApacheDS ........................................... SUCCESS [ 
3.052 s]
[INFO] ApacheDS I18n ...................................... SUCCESS [ 
3.003 s]
[INFO] ApacheDS Core Constants ............................ SUCCESS [ 
1.183 s]
[INFO] ApacheDS Core API .................................. SUCCESS [
35.066 s]
[INFO] ApacheDS Core Shared ............................... SUCCESS [ 
2.037 s]
[INFO] ApacheDS Interceptors .............................. SUCCESS [ 
0.254 s]
[INFO] ApacheDS AdministrativePoint Interceptor ........... SUCCESS [ 
2.148 s]
[INFO] ApacheDS Authentication Interceptor ................ SUCCESS [ 
2.900 s]
[INFO] ApacheDS Interceptor to increment numeric attributes SUCCESS [ 
1.603 s]
[INFO] ApacheDS Authorization Interceptor ................. SUCCESS [ 
3.958 s]
[INFO] ApacheDS ChangeLog Interceptor ..................... SUCCESS [ 
2.630 s]
[INFO] ApacheDS Collective Attribute Interceptor .......... SUCCESS [ 
1.401 s]
[INFO] ApacheDS Event Interceptor ......................... SUCCESS [ 
1.454 s]
[INFO] ApacheDS Exception Interceptor ..................... SUCCESS [ 
1.338 s]
[INFO] ApacheDS Journal Interceptor ....................... SUCCESS [ 
1.394 s]
[INFO] ApacheDS Normalization Interceptor ................. SUCCESS [ 
2.332 s]
[INFO] ApacheDS Operational Attribute Interceptor ......... SUCCESS [ 
1.423 s]
[INFO] ApacheDS Referral Interceptor ...................... SUCCESS [ 
1.574 s]
[INFO] ApacheDS Schema Interceptor ........................ SUCCESS [ 
3.977 s]
[INFO] ApacheDS Subtree Interceptor ....................... SUCCESS [ 
4.722 s]
[INFO] ApacheDS Triggers Interceptor ...................... SUCCESS [ 
2.909 s]
[INFO] ApacheDS Core ...................................... SUCCESS [ 
3.975 s]
[INFO] ApacheDS Core AVL .................................. SUCCESS [ 
4.375 s]
[INFO] ApacheDS Generalized (X) DBM Partition ............. SUCCESS [ 
9.532 s]
[INFO] ApacheDS LDIF Partition ............................ SUCCESS [ 
6.069 s]
[INFO] ApacheDS JDBM Partition ............................ SUCCESS [ 
9.540 s]
[INFO] ApacheDS Mavibot Partition ......................... SUCCESS [ 
6.879 s]
[INFO] ApacheDS Core Annotations .......................... SUCCESS [
19.801 s]
[INFO] ApacheDS Core JNDI ................................. SUCCESS [ 
2.173 s]
[INFO] ApacheDS Protocol Kerberos Codec ................... SUCCESS [
10.014 s]
[INFO] ApacheDS Interceptors for Kerberos ................. SUCCESS [ 
1.643 s]
[INFO] ApacheDS Protocol Dhcp ............................. SUCCESS [ 
1.739 s]
[INFO] ApacheDS Protocol Shared ........................... SUCCESS [ 
1.386 s]
[INFO] ApacheDS Protocol Dns .............................. SUCCESS [ 
2.718 s]
[INFO] ApacheDS Protocol Kerberos ......................... SUCCESS [ 
3.577 s]
[INFO] ApacheDS Protocol Ldap ............................. SUCCESS [
10.668 s]
[INFO] ApacheDS Protocol Ntp .............................. SUCCESS [ 
1.807 s]
[INFO] Apacheds Server Annotations ........................ SUCCESS [
20.643 s]
[INFO] ApacheDS Server Config ............................. SUCCESS [
10.646 s]
[INFO] ApacheDS Server JNDI ............................... SUCCESS [ 
3.197 s]
[INFO] ApacheDS Test Framework ............................ SUCCESS [
28.505 s]
[INFO] ApacheDS All ....................................... SUCCESS [ 
4.080 s]
[INFO] ApacheDS Logger Interceptor ........................ SUCCESS [ 
1.182 s]
[INFO] ApacheDS Password Hashing Interceptor .............. SUCCESS [ 
1.385 s]
[INFO] ApacheDS Core Integration .......................... FAILURE
[02:42 min]
[INFO] ApacheDS Protocol Kerberos Test .................... SKIPPED
[INFO] ApacheDS Server Integration ........................ SKIPPED
[INFO] ApacheDS DirectoryService-WebApp bridge ............ SKIPPED
[INFO] ApacheDS Jetty HTTP Server Integration ............. SKIPPED
[INFO] ApacheDS Service Builder ........................... SKIPPED
[INFO] Apache Directory LDAP Client API test .............. SKIPPED
[INFO] kerberos-client .................................... SKIPPED
[INFO] ApacheDS Service ................................... SKIPPED
[INFO] ApacheDS Wrapper ................................... SKIPPED
[INFO] ApacheDS Installers ................................ SKIPPED
[INFO] ApacheDS OSGi Integration Tests .................... SKIPPED
[INFO]
------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO]
------------------------------------------------------------------------


This is 6 more modules passing green.

Now, the core-integ module is the one that need to pass (so is
server-integ). And thsi is where things get complicated !

Tests run: 707, Failures: 56, Errors: 48, Skipped: 134

Which is still better than my first run, where I got 33 failures and 164
errors!

At this point, I have met some limits in the process. Not using a
normalized version of the DN/RDN is a bit painful : first of all, all
the caches are using a String, not a Dn (namingContexts, entryCache,
etc). Swicching to a Dn is not that complex, but trust me on that,
debugging it when I forgot to migrate one of thos cache was a pain...

Also the first performance test I conducted (lookup) shown that the
server is way slower. 3x slower, actually. *But* this is to be expected,
due to the brutal migration I'm doing. I focused on the lookup operation
breafly last night. The first iteration shown that it was 3x times
slower than the trunk version. I just applied a few imrovement - mainly
using a static variable to store the adminDn, instead of using a String
-, plus some speedup in the API (Value.compateTo() can simply compare
the String before trying to normalized them. Most of teh time, it's
enough). Avoiding useless Dn parsing was enough to get in par with trunk
(with a 5% penalty though). Note that it's very preliminary, there is
room for some other improvements...

But now I'm facing some more interesting challenges, like :

        NamingEnumeration<SearchResult> list = sysRoot.search( "",
            "(uniqueMember=cn = Kevin  Spacey , dc = example , dc =
ORG)", controls );

that does not return any result, because teh uniqueMember value is not
correctly retreived. This is because we do the comparison  using Strings
instead of Dn. I have to see if that can be fixed easily.

OTOH, the other option would be to bring back the DN normalized from
into the Dn and Rdn classes, using it in the server.

I'll tall you more about that this week-end !

Mime
View raw message