| 1 | < | i-scream Server Startup | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 2 | < | ======================= | 
 
 
 
 
 
 
 
 
 | 1 | > | i-scream Server README | 
 
 
 
 
 | 2 | > | ====================== | 
 
 
 
 
 
 
 
 
 
 
 | 3 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 4 | < | Current startup sequence: | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 4 | > | ANT build vs Make build | 
 
 
 
 
 | 5 | > | ----------------------- | 
 
 
 
 
 
 
 
 
 
 
 | 6 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 7 | < | uk.ac.ukc.iscream.core.Core | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 8 | < | uk.ac.ukc.iscream.clientinterface.ClientInterfaceMain | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 8 | < | uk.ac.ukc.iscream.dbinterface.DBInterfaceMain | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 9 | < | uk.ac.ukc.iscream.filtermanager.FilterManager | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 10 | < | uk.ac.ukc.iscream.rootfilter.RootFilterMain | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 11 | < | uk.ac.ukc.iscream.filter.FilterMain | 
 
 
 
 
 
 
 
 
 | 7 | > | ** We have revamped the Makefile, but not the ANT build ** | 
 
 
 
 
 | 8 | > | ** So please use the Makefile for now ** | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 9 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 10 | < | The following sequence of commands should suffice. They will probably need | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 11 | < | to be run in seperate terminal windows. | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 10 | > | There are now two methods of compiling the server distribution. The existing | 
 
 
 
 
 | 11 | > | Makefile method is still supported, but is of course limited in the OS's on | 
 
 
 
 
 | 12 | > | which it can be run. The preffered method will be an XML based build script | 
 
 
 
 
 | 13 | > | using ANT (http://jakarta.apache.org/ant) which will run on any platform. | 
 
 
 
 
 | 14 | > | However, at this stage the ANT scripts are not completely finished and may | 
 
 
 
 
 | 15 | > | have some odd behaviour. | 
 
 
 
 
 
 
 
 
 
 
 | 16 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 17 | < | make runcore | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 18 | < | make runclientinterface | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 19 | < | make rundbinterface | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 20 | < | make runfiltermanager | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 21 | < | make runrootfilter | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 21 | < | make runfilter NAME=filter1 | 
 
 
 
 
 
 
 
 
 | 17 | > | We envisage both the Makefile and ANT setups being maintained for some time, | 
 
 
 
 
 | 18 | > | giving the developer a choice. This document still outlines the Makefile | 
 
 
 
 
 | 19 | > | method of compiling, and will do so until such a point as the ANT scripts | 
 
 
 
 
 | 20 | > | are deemed reliable. If, however, you wish to give the ant script a whirl, | 
 
 
 
 
 | 21 | > | try the following after setting up ANT (see the ANT website for details); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 22 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 23 | < | If all is working this will ensure every component, including the IDL, is | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 24 | < | compiled as required before execution. | 
 
 
 
 
 
 
 
 
 | 23 | > | ant help | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 24 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 25 | < | nb. you will need to ensure your classpath is correctly set prior to | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 26 | < | running, otherwise java will fail to find the jacorb classes and the | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 27 | < | XML parsing packages. | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 25 | > | Compiling | 
 
 
 
 
 | 26 | > | --------- | 
 
 
 
 
 | 27 | > |  | 
 
 
 
 
 | 28 | > | The server can now easily be compiled without worrying about setting up any | 
 
 
 
 
 | 29 | > | of the CLASSPATH's, or setting the path to JacORB. It's all self contained. | 
 
 
 
 
 | 30 | > |  | 
 
 
 
 
 | 31 | > | Typical sequence to compile; | 
 
 
 
 
 | 32 | > |  | 
 
 
 
 
 | 33 | > | ./configure | 
 
 
 
 
 | 34 | > | make build | 
 
 
 
 
 | 35 | > | make install prefix=/some/path | 
 
 
 
 
 | 36 | > | make clean | 
 
 
 
 
 | 37 | > |  | 
 
 
 
 
 | 38 | > | Alternatively there is a "make dist" target which will build a | 
 
 
 
 
 | 39 | > | distribution archive containing the built code, the javadoc, and | 
 
 
 
 
 | 40 | > | the source code. | 
 
 
 
 
 | 41 | > |  | 
 
 
 
 
 | 42 | > | In more detail, the first line ensures that the required libraries are | 
 
 
 
 
 | 43 | > | available, and sets the Makefiles up so they know where everything is. | 
 
 
 
 
 | 44 | > | The second line compiles all of the code and creates a JAR file in the | 
 
 
 
 
 | 45 | > | build directory. | 
 
 
 
 
 | 46 | > | The install line installs the server and libraries to a given location, | 
 
 
 
 
 | 47 | > | along with the configuration files. | 
 
 
 
 
 | 48 | > | Finally, the last line cleans up. | 
 
 
 
 
 | 49 | > |  | 
 
 
 
 
 | 50 | > | Running | 
 
 
 
 
 | 51 | > | ------- | 
 
 
 
 
 | 52 | > |  | 
 
 
 
 
 | 53 | > | It is recommended that the components are started up in the following order. | 
 
 
 
 
 | 54 | > |  | 
 
 
 
 
 | 55 | > | (This can be on multiple hosts if required, as long as the order is correct). | 
 
 
 
 
 | 56 | > |  | 
 
 
 
 
 | 57 | > | Core | 
 
 
 
 
 | 58 | > | ClientInterfaceMain | 
 
 
 
 
 | 59 | > | DBInterface | 
 
 
 
 
 | 60 | > | FilterManager | 
 
 
 
 
 | 61 | > | RootFilter | 
 
 
 
 
 | 62 | > | FilterMain | 
 
 
 
 
 | 63 | > | Client | 
 
 
 
 
 | 64 | > |  | 
 
 
 
 
 | 65 | > | It is not necessary to start both the ClientInterfaceMain and DBInterface, | 
 
 
 
 
 | 66 | > | the server will handle only one or both. Multiple Filter's can be started | 
 
 
 
 
 | 67 | > | as required. | 
 
 
 
 
 | 68 | > |  | 
 
 
 
 
 | 69 | > | These are all loaded through the ComponentManager. More details on how to | 
 
 
 
 
 | 70 | > | operate this will be provided later on. Typing "make run" will make an | 
 
 
 
 
 | 71 | > | attempt to load it up. | 
 
 
 
 
 | 72 | > |  | 
 
 
 
 
 | 73 | > | Check build/etc/default.properties to set the startup list and order. | 
 
 
 
 
 | 74 | > |  | 
 
 
 
 
 | 75 | > | nb. You will need to ensure that the relevant libraries are in the | 
 
 
 
 
 | 76 | > | build/lib directory. See the README in there for details. | 
 
 
 
 
 | 77 | > |  | 
 
 
 
 
 | 78 | > | Makefile | 
 
 
 
 
 | 79 | > | ======== | 
 
 
 
 
 | 80 | > | The following targets are available; | 
 
 
 
 
 | 81 | > |  | 
 
 
 
 
 | 82 | > | build | 
 
 
 
 
 | 83 | > |  | 
 
 
 
 
 | 84 | > | Compile the entire server package, include the IDL file. Generates the | 
 
 
 
 
 | 85 | > | JAR file for the final package. | 
 
 
 
 
 | 86 | > |  | 
 
 
 
 
 | 87 | > | run | 
 
 
 
 
 | 88 | > |  | 
 
 
 
 
 | 89 | > | Run's the server from the JAR file in /build. | 
 
 
 
 
 | 90 | > |  | 
 
 
 
 
 | 91 | > | clean | 
 
 
 
 
 | 92 | > |  | 
 
 
 
 
 | 93 | > | Cleans all compiled code, and javadoc pages. | 
 
 
 
 
 | 94 | > |  | 
 
 
 
 
 | 95 | > | distclean | 
 
 
 
 
 | 96 | > |  | 
 
 
 
 
 | 97 | > | Also cleans files left by configure, including the libraries. | 
 
 
 
 
 | 98 | > |  | 
 
 
 
 
 | 99 | > | install | 
 
 
 
 
 | 100 | > |  | 
 
 
 
 
 | 101 | > | Installs the server to a given directory. Also takes a prefix; | 
 
 
 
 
 | 102 | > | make install prefix = /usr/i-scream | 
 
 
 
 
 | 103 | > |  | 
 
 
 
 
 | 104 | > | dist | 
 
 
 
 
 | 105 | > |  | 
 
 
 
 
 | 106 | > | Builds a full distribution of the server. | 
 
 
 
 
 | 107 | > | make dist dest=/tmp | 
 
 
 
 
 | 108 | > |  | 
 
 
 
 
 | 109 | > | dist-bin | 
 
 
 
 
 | 110 | > |  | 
 
 
 
 
 | 111 | > | Builds a binary distribution of the server. | 
 
 
 
 
 | 112 | > | make dist dest=/tmp | 
 
 
 
 
 | 113 | > |  | 
 
 
 
 
 | 114 | > | javadoc | 
 
 
 
 
 | 115 | > |  | 
 
 
 
 
 | 116 | > | Builds all the javadoc pages in the `doc' directory. | 
 
 
 
 
 | 117 | > |  | 
 
 
 
 
 | 118 | > | src | 
 
 
 
 
 | 119 | > |  | 
 
 
 
 
 | 120 | > | Copies the whole src tree in to the `build/src' directory. | 
 
 
 
 
 | 121 | > |  | 
 
 
 
 
 | 122 | > | buildutil | 
 
 
 
 
 | 123 | > |  | 
 
 
 
 
 | 124 | > | (it is recommended you run a "make clean" first) | 
 
 
 
 
 | 125 | > | Builds a seperate JAR file, in `build' called `iscream-util.jar'. | 
 
 
 
 
 | 126 | > | This file contains just the uk.org.iscream.cms.server.util package | 
 
 
 
 
 | 127 | > | for use in other parts of the system, such as the clients. | 
 
 
 
 
 | 128 | > |  | 
 
 
 
 
 | 129 | > | createtable | 
 
 
 
 
 | 130 | > |  | 
 
 
 
 
 | 131 | > | Creates the ipacket table in the mySQL database. This is required for | 
 
 
 
 
 | 132 | > | the database side of the server. | 
 
 
 
 
 | 133 | > |  | 
 
 
 
 
 | 134 | > | droptable | 
 
 
 
 
 | 135 | > |  | 
 
 
 
 
 | 136 | > | Drops an ipacket table from the mySQL database if one exists. |