The controller source repository is split between Java services (Java source code) and System services (native source code). This document details the directories you can expect to see when checking out the source code. You can always easily view the current Subversion structure via the web interface.
Controller Java Services
The controller Java services source repository is structured as follows:
/trunk/Controller/JavaServices
/build
/src
/org/openremote/controller
/console
/core
/docs
/etc
/bin
/lib
/server/controller
/conf
/lib
/downloads
/system
/deployers
/services
/startup
The purpose of each directory is explained in some detail below.
Build Directory
This directory contains what is required to build the controller Java services. Apache Ant is used as the build tool (version 1.7.0). You can fetch the required version easily be checking out the 'Tools' top level directory from OpenRemote Subversion repository. Helper scripts for both Windows and bash shell are provided. File build.xml
contains the actual build instructions that Ant executes.
See Building OpenRemote Controller for more information.
Src Directory
Contains all the Java source code structured according to Java packaging.
'Console' package contains HTTP and REST interfaces for the client consoles to connect to the controller.
'Core' package contains bootstrap code to initialize and startup the controller service.
Docs Directory
Collection of Java source and Javadoc packages for external Java libraries used in building the controller. This directory is not necessary for either building or running the controller. It serves as a convenient repository of source code level documentation to setup in your IDE or other development environment.
Etc Directory
Contains the core of the controller. At the top level, the 'etc' directory is split into three subdirectories: 'bin', 'lib' and 'server'.
In the 'bin' directory there's a startup bash script for the controller, 'run.sh'. This script will kick start the controller bootstrap process. It will load the minimal 'run.jar' binary in the same directory which will start the dynamic creation of the controller kernel. More details on what happens when starting the controller is described in the Controller Bootstrap Process.
In 'lib' directory there are more Java library binaries required to bootstrap and create the controller kernel at startup. These libraries will be loaded dynamically as the controller kernel is being created.
server/controller/conf
TODO
server/controller/lib
TODO
server/controller/downloads
TODO
server/controller/system
TODO
Controller System Services
Nothing here yet.
