[infinispan-dev] Contributing to Infinispan: API, Commons, Core
Tristan Tarrant
ttarrant at redhat.com
Thu Nov 3 03:37:07 EDT 2011
Dear all,
here are the paragraphs I want to add to the "Contributing to
Infinispan" page in relation to the API, Commons, Core split. Comment
please on clarity, grammar, spelling, etc
API, Commons, Core
In order to provide proper separation between public APIs, common
utilities and the actual implementation of Infinispan, these are split
into 3 modules: infinispan-api, infinispan-commons and infinispan-core.
This separation also makes sure that modules, such as the remote
clients, don't have to depend on infinispan-core and its transitive
dependencies. The following paragraphs describe the role of each of
these modules and give indication as to what goes where.
API
The infinispan-api module should only contain the public interfaces
which can be used in any context (local, remote, etc). Ideally it should
not contain any concrete classes, however this rule can be relaxed for
small, self-contained classes which need to be referenced from the API
interfaces. When promoting interfaces from infinispan-core to
infinispan-api, please bear in mind the type of functionality that is
being exposed: if something only makes sense for local mode and not for
remote mode (e.g. eviction), then it should remain in infinispan-core.
Commons
The infinispan-commons module contains utility classes which can be
reused across other modules. Classes in infinispan-commons should be
self-contained and not pull in unnecessary dependencies. They should
also make no reference to configuration aspects specific to a particular
environment.
Core
The infinispan-core module contains the actual implementation used for
local/embedded mode. When adding new functionality to the APIs, it is
generally safe to start by putting them in infinispan-core and promoting
them to infinispan-api only when it is deemed to do so and it makes
sense across the various use-cases.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20111103/1c52b772/attachment.html
More information about the infinispan-dev
mailing list