Here is a pointer to the various directories in the spp/src tree; I've tried to give an indication what they're used for, and (more importantly) when you might be interested in their contents.
The core source for SPP, that is, the stuff we expect to be most
portable, should live under core/. Package
names follow the normal java convention, so put your code
under uk/ac/portal/spp/ followed by the package
name.
Most people will be interested in writing Java under this
directory. You should be able to build your code using the
ant targets build-core and test-core.
Test classes should contain the string Test (with
that capitalisation) within their names.
These will live under uk/ac/portal/spp/ as detailed above.
Implementation of the core interfaces might live alongside the code, or might live in subpackages, according to taste (the latter may prove more preferable).
These are beans that are instantiated by the framework.
They may wish to implement the uk.ac.portal.spp.common.LoggerAware,
uk.ac.portal.spp.common.Configurable and
uk.ac.portal.spp.common.Destructible interfaces, and should
instantiate appropriate implementation classes and make their services
available through their JavaBean interface.
These are overlaid onto the stock Jetspeed target and consist
primarily of configuration file tweaks. New files that are to
be copied verbatim are under configuration/copy.
It may be necessary to modify some of these configuration
files in order to ensure that appropriate objects are instantiated
and to provide them with their configuration. However,
you generally won't have to deal with this directory much.
It is also necessary in one or two places to graft hooks into
existing configuration files in the stock Jetspeed tree. Such hooks
are implemented by creating files in the configuration/patch
directory. These are strongly Jetspeed-specific, and thus
only the build engineer and/or those dealing directly with
targetting Jetspeed will need to deal with these files.
Both sets of patches are applied by running the deploy-patch
ant target.
These follow a standard layout and live in subdirectories under
portlets/. Those people producing actual
portlet (presentation) code will need to deal with these
subdirectories.
The code under here is likely to be targetted at the Jetspeed
framework, and therefore is less portable (so put your real
functionality elsewhere!) However, the actual deployment of
a portlet into the Jetspeed framework is somewhat fiddly, so
the deployment itself is managed by the ant targets
build-portlets, test-portlets and
deploy, the latter of which will deploy the core
and portlet code.
To abstract away the potentially complex deployment issues with portlets, they should be laid out following this pattern. If they are so laid out, they can then be deployed automatically; if future changes to Jetspeed over the course of the project mean that the details of deployment change, only the build engineer need worry.
Therefore, the following subdirectories should be used for portlet layout:
portlets/portletname/velocity portlets/portletname/java portlets/portletname/configuration Pretty much everything else is only of concern to the build engineer, that is, to anyone maintaining the build process and overseeing the automation of SPP code into a predeployed Jetspeed webapp.
The ant target check-dependencies will set up
a lot of these extra directories. Care should be taken not to
check in any of the files that ant creates during the build process.
build.xml and build/ These are files that will be maintained by the build engineer.
class/ Ant compiles project source code into files under here. Do not commit any of the files under this directory.
scratch/ This directory is used for holding temporary files during the biuld process. Do not commit any of the files under this directory.
dependencies/ The directory structure under here holds external libraries that form dependencies of the SPP code. They are managed by the build process. Do not commit any of the files under this directory.
One of the things that check-dependencies does is
download necessary ant extensions. All the .jar files under
dependencies/build and dependencies/test/junitjar
should be installed in your ant lib/ directory.