Application Layer | org.dspace.app.* |
Business Logic Layer | org.dspace.* |
Storage Layer | org.dspace.storage.* |
Each layer is divided into subsystems. These are stored in separate packages. Only the public API of each subsystem should be used by other subsystems. Additionally, subsystems in the Application Layer should not use the Storage Layer directly.
The top level of each package must contain only public classes and methods that
are part of the public API of the subsystem. This way, conservative use of
import
ensures that subsystems are only using appropriate public
APIs.
Test classes for subsystems that have automatic self-tests reside in a
test
sub-package. For example, the browse subsystem tests reside
in org.dspace.browse.test
. Such test classes must also have a name
that ends in Test.Java
, for example BrowseTest.java
.
Each of the layers and the packages that are part of them are described below.
org.dspace.app
. Subsystems in the application layer should not
use the storage layer directly.
org.dspace
, and some core
classes in org.dspace.core
. Sub-packages of org.dspace that are
not in org.dspace.app
or org.dspace.storage
are
business logic subsystems.
org.dspace.content
(the content management API) is probably the
most useful to applications. Other subsystems are generally only directly used
by applications providing administrative functionality.
org.dspace.storage.rdbms
and
org.dspace.storage.bitstore
respectively. Any new storage
subsystems should also be sub-packages of org.dspace.storage
.
More detailed architectural information for the current stable release of DSpace can be found here:
http://dspace.org/technology/system-docs/
If you're using a beta or earlier version of DSpace, you should download the 'dspace-docs' documentation package corresponding to the version you're using from the SourceForge download page: