Berin Loritsch wrote:
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.
In this *special* case, I would be ok with the following structure:
meta-api <--- The set of exceptions and serializable
descriptors that make up the meta-info
layer (currently called meta-spi) meta-spi <--- The set of container-side interfaces
that define the system (e.g. builder
and writer interfaces) - content is
currently mixed under the impl
package. meta-impl <-- The implementation of the SPI (as as
with the removal of the builder and
writer interfaces).Cheers, Steve.
--
Stephen J. McConnell mailto:[EMAIL PROTECTED] http://www.osm.net
Sent via James running under Merlin as an NT service. http://avalon.apache.org/sandbox/merlin
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
