|
[
Permlink
| « Hide
]
Alex Karasulu added a comment - 29/Aug/05 02:18 PM
Trustin I don't have a clear idea of how you intend to do this so I'm going to move this to the next release and assign it over to you.
As we talked about this long before, It'd like make ExceptionService only concentrate on converting NamingExceptions into LdapNamingExceptions, and move context partition integrity checks into DefaultContextPartitionNexus or ContextPartition implementations. What do you think?
I'm a bit nervous about doing this. I think its because I feel that some checks are generic and should be made on all partition implementations. If we push all these down into the context partition then it will be specific to one implementation. This may not be the case with the nexus however.
As far as I understand the situation, Trustin would like to have an ExceptionService which only makes what its mission is. Alex point is, that he do not want to remove the critical checks (which do not naturally belong to the ExceptionService). How about separating this piece in two interceptors: The ExceptionService converts the exceptions, and AlexGenericChecksInterceptor (working title) gets the generic checks? Or is it not desired to have many interceptors for basic tasks, which should normally not be removed?
Current integrity check doesn't work under high concurrency as you know. I think it is the duty of ComtextPartition implementation to do that at least at the point we don't have any synchronization. We can synchronize all operations using an interceptor but this is too inefficient.
Hi Stefan. That's a great suggestion. :)
Ok you guys know best on this one. Let's just try to make sure other partition implementations can get a benefit from some generic checks somehow. I think we talked about pushing this into nexus so that does in fact happen.
Let's extract integrity check code to IntegrityService or something similar just like Stefan suggested.
I've found our implementation (apacheds-core) throws an LdapNamingException with LDAP-specific error codes such as ALIASPROBLEM. I thought we can stop all classes from throwing LdapNamingException and make them throw NamingException instead, and then ExceptionService can convert them to corresponding LdapNamingExceptions 1:1. But it's not 1:1 right now. So I cannot divide ExceptionService into IntegrityService and ExceptionService logically.
I guess we need to standardize which type of exceptions we should throw for consistency. NamingException or LdapNamingException? I think LdapNamingException is the way to go. |
||||||||||||||||||||||||||||||||||||||||||||||||||