--- projects/cms/source/server/README 2000/12/06 16:45:59 1.2 +++ projects/cms/source/server/README 2001/05/20 00:57:47 1.10 @@ -1,28 +1,122 @@ -i-scream Server Startup -======================= +i-scream Server README +====================== -Current startup sequence: +ANT build vs Make build +----------------------- -uk.ac.ukc.iscream.core.Core -uk.ac.ukc.iscream.clientinterface.ClientInterfaceMain -uk.ac.ukc.iscream.dbinterface.DBInterfaceMain -uk.ac.ukc.iscream.filtermanager.FilterManager -uk.ac.ukc.iscream.rootfilter.RootFilterMain -uk.ac.ukc.iscream.filter.FilterMain +There are now two methods of compiling the server distribution. The existing +Makefile method is still supported, but is of course limited in the OS's on +which it can be run. The preffered method will be an XML based build script +using ANT (http://jakarta.apache.org/ant) which will run on any platform. +However, at this stage the ANT scripts are not completely finished and may +have some odd behaviour. -The following sequence of commands should suffice. They will probably need -to be run in seperate terminal windows. +We envisage both the Makefile and ANT setups being maintained for some time, +giving the developer a choice. This document still outlines the Makefile +method of compiling, and will do so until such a point as the ANT scripts +are deemed reliable. If, however, you wish to give the ant script a whirl, +try the following after setting up ANT (see the ANT website for details); -make runcore -make runclientinterface -make rundbinterface -make runfiltermanager -make runrootfilter NAME=root -make runfilter NAME=filter1 +ant help -If all is working this will ensure every component, including the IDL, is -compiled as required before execution. +Compiling +--------- -nb. you will need to ensure your classpath is correctly set prior to - running, otherwise java will fail to find the jacorb classes and the - XML parsing packages. +The server can now easily be compiled without worrying about setting up any +of the CLASSPATH's, or setting the path to JacORB. It's all self contained. + +Typical sequence to compile; + +./configure +make build +make install prefix=/some/path +make clean + +In more detail, the first line ensures that the required libraries are +available, and sets the Makefiles up so they know where everything is. +The second line compiles all of the code and creates a JAR file in the +build directory. +The install line installs the server and libraries to a given location, +along with the configuration files. +Finally, the last line cleans up. + +Running +------- + +It is recommended that the components are started up in the following order. + +(This can be on multiple hosts if required, as long as the order is correct). + +Core +ClientInterfaceMain +DBInterface +FilterManager +RootFilter +FilterMain +Client + +It is not necessary to start both the ClientInterfaceMain and DBInterface, +the server will handle only one or both. Multiple Filter's can be started +as required. + +These are all loaded through the ComponentManager. More details on how to +operate this will be provided later on. Typing "make run" will make an +attempt to load it up. + +Check build/etc/default.properties to set the startup list and order. + +nb. You will need to ensure that the relevant libraries are in the + build/lib directory. See the README in there for details. + +Makefile +======== +The following targets are available; + +build + + Compile the entire server package, include the IDL file. Generates the + JAR file for the final package. + +run + + Run's the server from the JAR file in /build. + +clean + + Cleans all compiled code, and javadoc pages. + +distclean + + Also cleans files left by configure, including the libraries. + +install + + Installs the server to a given directory. Also takes a prefix; + make install prefix = /usr/i-scream + +cvsbuild + + Builds any tagged version of the server from CVS. This saves the need to + checkout a version to build it, as it's all done automatically; + make install rev = RELEASE_1 + Default tag is HEAD. + +javadoc + + Builds all the javadoc pages in the `doc' directory. + +buildutil + + (it is recommended you run a "make clean" first) + Builds a seperate JAR file, in `build' called `iscream-util.jar'. + This file contains just the uk.ac.ukc.iscream.util package for + use in other parts of the system, such as the clients. + +createtable + + Creates the ipacket table in the mySQL database. This is required for + the database side of the server. + +droptable + + Drops an ipacket table from the mySQL database if one exists.