Summary
This is a continuation (phase II) of the bigbang refactoring going on in the bigbang branch here:
https://svn.apache.org/repos/asf/directory/apacheds/branches/bigbang-with-dependencies
For more information on the big bang effort please look here:
http://www.nabble.com/-ApacheDS---BigBang--Status-Report-tf4585474.html#a13089517
Progress
AOK: Alex, CCU: Chris, CKO: Christine, DDJ: David, EER: Ersin, ELE: Emmanuel, ERO: Enrique, MAL: Martin, PAM: Pierre-Arnaud, SSE: Stefan (S), SZR: Stefan (Z)
Task |
duration |
when |
who |
status |
---|---|---|---|---|
Core Integration Testing |
7 days |
|
|
|
Item 2 |
|
|
DDJ |
|
Item 3 |
10 days |
sept 30 |
AKA |
(!)80% |
Item 4 |
|
|
SZR |
|
Complete Usable Core Integration Testing Framework
The integration framework specified in the following document for the core will be implemented to a degree which will make it useful. The features may not be complete however the reduction in integration testing of the core should drop dramatically by using this framework.
Core Integration Testing Framework
Replace Attribute and Attributes
We will be replacing the use of Attributes and Attribute interfaces inside the server with server specific schema aware representations for entries and their attribute values. These schema aware objects utilize schema information to conduct simple operations like contains() and equals() checks properly. Hence this cleans up several bug ridden regions of the server where these check may or may not be performed correctly.
More information on this initiative is available ServerValue, ServerAttribute and ServerEntry.
While doing this several other changes will be drawn in because of the dependencies impacted by this change. These are noted in other sections of this document.
Participants
Alex Karasulu
Emmanuel Lécharny
Replace NamingEnumeration
The server uses java.naming.NamingEnumeration objects to stream out results as if it was a cursor. Besides causing problems with exception handling and usage it prevents returning ServerEntry objects. This must be replaced with the proper Cursor construct. These changes will tunnel deep into the jdbm implementation of partitions but much code will be cleaned up and made more efficient.
More information on this initiative is available Cursors.
Participants
Alex Karasulu
Emmanuel Lécharny
Replace ModificationItem
We no longer need to use JNDI analogs which are not schema aware and cause issues with simple operations, so it makes sense to get rid of using ModificationItems. These objects should be using ServerValues and ServerAttributes to do their bidding.
Participants
Alex Karasulu
Emmanuel Lécharny
Clean Up LDIF Entry
Makes sense to cleanup the LDIF Entry so that it uses ServerValues when used in the server and ClientValues when used outside of the server.
Participants
Alex Karasulu
Emmanuel Lécharny
Replace SearchControl
Again this analog should go to complete the picture. For the server side there is no reason to be using strings for the values of attributes instead of AttributeTypes themselves.
Participants
Alex Karasulu
Emmanuel Lécharny
Revamp Invocation Stack
Before we can completely remove JNDI from the picture the InvocationStack must be made non-static and must use OpContexts instead of JNDI Contexts as elements in the stack.
Participants
Alex Karasulu
Emmanuel Lécharny
Complete JNDI Wrapper Decoupling
Once all these changes are made then the JNDI wrapper can be better decoupled from the JNDI wrapper. Which is what it now becomes once we remove native JNDI support. These server constructs are simply transformed to and from JNDI constructs to rid the server of ambiguities.
Sticky Points
- Stored Procedure subsystem optionally passes JNDI Contexts into procedures.
- PartitionNexusProxy must go away - need a means to pump operations directly into InterceptorChain