directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Karasulu <>
Subject Re: [OT] [Trivia] How big is our code base?
Date Wed, 02 Feb 2005 18:54:17 GMT
I agree with all of this - I'm really glad someone took the inititive to 
stand up and lead us to a better path.  All the +++1's are inline.

Enrique Rodriguez wrote:

> Alex, Trustin,
> In light of the size of the codebase, this is a good time to take a step
> back and review the conceptual homogeneity of the component and package
> layout.  Some suggestions:

Good advice true - I was getting a bit worried about the size.

> 1)  Move all the protocol providers into their own folder, including
> LDAP.  This would remove NTP, Kerberos, DNS, Changepw, and DHCP from the
> top level.  Within each of these subprojects I further propose to keep
> the component and package layout the same.  Right now I have been using
> core, main, and protocol.  It would be great to get LDAP and the other
> protocols into a unified convention.

Absolutely ++++1 to that.

> 2)  Move LDAP to MINA.  NTP, Kerberos, DNS, Changepw, and DHCP currently
> all uni-jar with MINA.  We of course want to have LDAP on MINA and 
> Trustin has this for February.

> 3)  Consolidate ASN.1.  LDAP and Kerberos use different ASN.1 codebases,
> a result of their independent development.  We've discussed this and of
> course work has begun.


> 4)  Break out a kerberos-common.  Right now changepw depends on
> kerberos-core, which is one big package.  In the future kerberos-common
> could also be used for kerberos and changepw clients.

Yeah I see what you mean.  This is similar to the way we have LDAP 
partitioned right now.  There's the ldap trunk with common library code 
and clients and other pieces of the puzzle for LDAP.  Then you have the 
server core and then the server protocol that talks LDAP over the wire 
in the apacheds side.  This approach you are suggesting makes even more 
sense than the LDAP case because you have other protocols that depend on 
the Kerberos common and utilties classes you have such as changepw.  
Plus other protocols that are unrelated like DNS or LDAP will need to 
depend on this kerberos common library.  It will be nice to depend on 
this and not have deps on the ApacheDS Kerberos service.

Yeah this is definately a good route to go.


> To reiterate:
> Enrique:    move protocols to protocols dir.
> Alex:       break out LDAP protocol, move to protocols dir.

fine by me

> Trustin:    convert LDAP to MINA, adopt package conventions.
> Alex et al: new ASN.1 library.

yep I think we have some help with this thanks to Emmanuel and perhaps 
even Allan

> Alex et al: move LDAP to new ASN.1 library.

no problem

> Enrique:    move Kerberos and Changepw to new ASN.1 library.
> Enrique:    break out kerberos-common and update kerberos and changepw.
> Other than the ASN.1 library, the rest should be easy to do this month.

Perhaps we can fit it all in ;)  - I'd love to release a 0.9 that has 
serious performance and feature advances in the next one or two months.  
We want to release often.

> -enrique
> Alex Karasulu wrote:
>> I got curious after Emmanuel asked me how big our code base was.  I 
>> took a guess and figured the whole directory project probably had 
>> like 200K lines of code in it.  Emmanuel guessed like 250K lines.  It 
>> nagged me a little cuz we really had no clue so I wrote and checked 
>> in a script to occationally report the number of lines within each 
>> trunk.  Here's what the first run reported:
>> lines of code in ./ldap/trunk = 99386
>> lines of code in ./naming/trunk = 15850
>> lines of code in ./apacheds/trunk = 63578
>> lines of code in ./asn1/trunk = 30759
>> lines of code in ./sandbox/trunk = 3630
>> lines of code in ./ntp/trunk = 1618
>> lines of code in ./apseda/trunk = 15177
>> lines of code in ./kerberos/trunk = 12947
>> lines of code in ./dns/trunk = 4242
>> lines of code in ./changepw/trunk = 2291
>> lines of code in ./network/trunk = 14353
>> lines of code in ./protocol/trunk = 583
>> lines of code in ./dhcp/trunk = 4911
>> lines of code in ./authx/trunk = 8071
>> Total: 277396
>> I was a little shocked to see these numbers.  That's a boat load - 
>> this is mostly from 16 months of incubation.  I guess we were both 
>> off a little bit.  Overall too much code is a bad thing so this 
>> number might not be something to be proud of.  However note that a 
>> lot of code within the ldap and apacheds trunks is generated by antlr 
>> and the directory plugin.  It would be interesting to see just how 
>> much hmmmm....
>> -Alex

View raw message