Hi,

Recently, a user raised an issue on the LDAP API indicating that result codes from extended operations were lost.
See https://issues.apache.org/jira/browse/DIRAPI-151.

I took some time to debug the issue and it turns out it's true and it's even bigger than that, the response is simply not parsed correctly and internally in the API the object we return is just a newly created response for the given extended operation.
The result code returned from the server is completely forgotten, same thing for the specific values included in the extended operation response.

On the server, Emmanuel also found that responses were not correctly encoded.

We're currently fixing that.

This issue lead us to have a look at how the extended operations are loaded and I took a chance at simplifying a bit (which will help resolving the issue) the list of factories we need to append in the command line.
We had properties like:
- default.controls
- extra.controls
- default.extendedOperation.requests
- default.extendedOperation.responses
- extra.extendedOperations

In the end, those default/extra distinctions didn't mean much and we needed to have them all the time.
Also, the titles of the properties like 'default.extendedOperation.responses' were misleading as it was only intended for some specific kind of unsolicited response (having no request).

I simplified it to two simple properties:
- apacheds.controls
- apacheds.extendedOperations

All tests, scripts and installers have been updated to reflect this change, so everything should be covered.

Thoughts?

Regards,
Pierre-Arnaud