TWiki
>
CF Web
>
Software
>
WebCapabilities
>
OdysseyApplications
>
PackageDocumentationOdyssey2
>
OdysseyJavaCode
(2007-03-19,
IsaacMorland
)
(raw view)
E
dit
A
ttach
---+ Odyssey Java Code Here we document the organization and setup of the Java code used by the =odyssey-2= package. Code formatting & related standards are in OdysseyJavaCodingStandards. ---++ Introduction The code that runs in an Odyssey JVM comes from three places: * External JAR files * Common Java code * Specific Java code External JAR files are symlinked into =/software/odyssey-2/java-jar=, a regional directory. Java APIs that are not part of the basic Java installation but which are also not specifically part of Odyssey are linked in this way. Common Java code is supplied in source form in =/software/odyssey-2/data/default=. It is symlinked into =/software/odyssey-2/java-src=, a regional directory. This is code which is distributed to all Odyssey installations. Finally, specific Java code distinguishes the Odyssey installations in each region. It is kept in =/software/odyssey-2/java-src=. ---++ Execution When the Odyssey JVM starts, the $CLASSPATH is set to all the =.jar= files in =/software/odyssey-2/java-jar=, together with the directory =/software/odyssey-2/java-cls=. The =odysseyClassPath= command generates the correct $CLASSPATH. The =/software/odyssey-2/java-cls= is compiled from =/software/odyssey-2/java-src= upon package installation on the regional master. ---++ Compilation Upon package installation on the regional master, the entire contents of =/software/odyssey-2/java-src= are recompiled. The compiler output is saved in =/software/odyssey-2/data/javac/compileResult=. It is then compared to =/software/odyssey-2/data/javac/normalCompileResult=. If the two are identical, then compilation succeeds and installation completes by updating =/software/odyssey-2/java-cls= with the =.class= files generated by the compilation. Otherwise the differences are included in the output of installation. It does not seem to be feasible to eliminate all the warnings from this compilation process. In particular there is no way to tell =javac= to ignore specific warnings. So when the code is updated, once it is determined that the new code is correct, the =compileResult= should be copied to =normalCompileResult=. ---+++ Javadoc Documentation After the compilation has completely successfully, the Sun =javadoc= tool is invoked on the entire contents of the =java-src= directory, to populate the =java-doc= directory. This directory is symlinked into =data/static= so that the URL /odyssey-static/java-doc/ will contain the Javadoc documentation for the Java source code running the Odyssey installation in the region of the webserver. For example, the =core.cs= Odyssey Javadoc is available at http://www.cs.uwaterloo.ca/odyssey-static/java-doc/. ---++ Source Files Some of the source files in =/software/odyssey-2/java-src= are "common" code. At present this is the =zava= package, which contains the framework code, the and =uw= package, which contains the actual applications. The code in =zava= here provides the basic implementation framework used by Odyssey. It is not specific to any particular application or to UW. This should be a symlink to =/software/odyssey-2/data/default/zava=. The code in =uw= implements the various applications available through the Odyssey system. Roughly speaking, each sub-package of =uw= corresponds to an application. This should be a symlink to =/software/odyssey-2/data/default/uw=. Finally, the code in =content= gives the specific configuration for each region providing an Odyssey interface. -- Main.IsaacMorland - 24 Jan 2007
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r4
<
r3
<
r2
<
r1
|
B
acklinks
|
V
iew topic
|
WYSIWYG
|
M
ore topic actions
Topic revision: r4 - 2007-03-19
-
IsaacMorland
CF
Information in this area is meant for use by CSCF staff and is not official documentation, but anybody who is interested is welcome to use it if they find it useful.
CF Web
CF Web Home
Changes
Index
Search
Administration
Communication
Email
Hardware
HelpDeskGuide
Infrastructure
InternalProjects
Linux
MachineNotes
Macintosh
Management
Networking
Printing
Research
Security
Software
Solaris
StaffStuff
TaskGroups
TermGoals
Teaching
UserSupport
Vendors
Windows
XHier
Other Webs
CSEveryBody
Main
Sandbox
TWiki
UW
My links
People
CERAS
WatForm
Tetherless lab
Ubuntu Main.HowTo
eDocs
RGG NE notes
RGG
CS infrastructure
Grad images
Edit
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback