On 10/20/11 12:33 PM, Alex Karasulu wrote:That's a good question. The problem is that in some case, and mostly on the API, one codec for an extended operation *might* have different implementations depending on the targeted software (and we probably can thank M$ for such a mess).
On Thu, Oct 20, 2011 at 1:18 PM, Emmanuel Lecharny<email@example.com>wrote:
On 10/20/11 12:06 PM, Alex Karasulu wrote:
On Thu, Oct 20, 2011 at 12:43 PM, Guillaume Nodet<firstname.lastname@example.org>Those codec are not supposed to be written by external users.
I think you first need to define your constraints and what you want to
focus on.functionality extension points:
Excellent point so let's recap a little. In the API we have certain
1). Codec Extensions
These extension points are for adding support LDAP extended operation and
LDAP control support so the API can handle them explicitly as structured
elements rather than opaque unstructured data. This is pretty well defined
and understood by the Directory Team I think and we opted for using a
non-OSGi based ClassLoader mechanism. If this has changed please correct
I disagree with the this statement above. If codec extensions are not to be
written by non-API committers then why are we going to all this trouble
class loading them and making them pluggable?
Well, assuming that writing a codec is not frankly easy, I'd rather have a request and write it myself...
Our users might want to implement a control using our API for an LDAP server
which exposes controls or extended operations which we have not supported.
This provides a means for them to extend our API and achieve their goals.
Well, I was more thinking about Full Metal Jacket, here :)
Since when was I knighted by the Queen :-D.Another part of the problem is making this work in both a non-OSGi clientAye aye, sir !
side API environment in addition to an OSGi based environment in both
ApacheDS and Studio.
Is this correct?
If we can have a solution that cover the three cases, I buy it. If we have to class load the Java way schema element because the API will be used outside of an OSGi container, then be it.
Sorry to beat a dead horse here but OK so we are not trying to use OSGi forAlso we had some conversations in the past of not actually using OSGi toNope, this is exactly the problem we have : be able to class-load those
load schema into the API. Sorry I don't have a email reference to the past
thread. Did our position change on this topic in the recent past?
schema extensions the ol' Java way (ie, class.forName() )
loading schema in all environments: client API, apacheds, and studio?
Well, when I wrote 'I trust Guillaume', that does not mean I don't trsut you. It's just that I have not the background to dispute his knowledge.
This is not a trust issue with anyone.If you want someone to be able to write a jar to extend the api which willSeems currently to be the only path we can use. We may ask on Felix's
work in a non osgi environment and (with minimal changes) in an osgicreated in OSGi to handle intractable problems with split packages where
environment, go for fragments.
Forgive me, but the fragment approach seems like a hack. Fragments were
had no way to merge the split. Now we're using it as a main stream feature
to work around these hairy issues. Please note that I am not saying we
should abandon it, just playing devil's advocate here. We obviously need
more thought on the constraints which you've made very apparent here in
post. Thanks for it.
mailing list to see if there is some other way, but I trust Guillaume here.
I must admit that I'm more a lurker than an actor of this discussion. I can just brng some light on what we currently have, and the needs that we have.
It's a matter of exploration and lack
of being up to date on my part. Hope no one misinterprets my questions as a
lack of trust. I'm finding discrepancies in what I learned in the past with
the proposed direction today and asking about it.
I'm not sure that simply declaring extensions in a different package is enough. It seems more like a class-loader and visibility issue in this case, AFAIU.
can you be a bit more explicit here, for people like me who ae
(damn, I *knew* I should have jumped into the OSGi wagon one year ago, at
least... That's the problem when beig lazzy :/ )
> From my limited understanding the fragments feature was created to handle
situations when you had split packages but could not merge those packages
because you did not have access to the code or some sh*t like that.
These extensions should not be in the same package space. Those adding
schema or other extensions should not be adding them into the same packages
used by the API. In that case my logic leads me to the question: why use