After writing some testcases for the meta stuff the past couple of days,
something has been bugging me.  It's not a major issue, but it does get
into the overloading of terms/accronyms.

It is the use of SPI which in the Java world is commonly associated with
Service Providers Interface to refer to an API which is the Application
Programmer's Interface.

The difference is one of which side of the system we are programming
towards.  For example, in JCE we have two sets of APIs.  The API designed
for clients to use cryptography is simply called the API.  The API designed
for cryptographic algorithm providers is called the SPI.  The separation
is only necessary if there is a different API for providers and users.

In our world, the service definitions (i.e. component interfaces and
Avalon Framework) is simply the API.  It is the same interface for both
service providers and users alike.  There is nothing special to
differentiate them.  For the Meta stuff, the users are the containers.

Also, for the meta package we have the API (called meta/spi) and the
"implementation" (called meta/impl).  The implementation is not an
implementation of the API.  It is a set of writers/builders for component
meta information.  If there were some interfaces for defining how to
use the builders and writers in the API library, then the "impl"
package would definitely be an implementation.

So to make a long story short, I would like to have us move toward
standardizing on "API" as the designator for the API specific packages
and not use "SPI" unless it is truly separate from the API.  Also, more
specifically, for the Meta package, I would liks us to have the builder
and writer interfaces defined in the API package.

If there is no objection, I will start on that after lunch EST.

--

"They that give up essential liberty to obtain a little temporary safety
 deserve neither liberty nor safety."
                - Benjamin Franklin



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to