1. Take a piece of paper, write your name on it

2. Write the nine topics to prepare for the exam next Wednesday 

3. Write the code for (randomly selected now) the shortest program that keeps time

This part is: 

  * closed-book, closed-computer, 

  * 10 minutes long, on paper,

  * can talk only with whoever is sitting next to you. 

Then after 10 minutes we collect the papers and Yiming looks through them.

Meanwhile Griffin shows Lab 10 (thirty minutes). 

Then after 40 minutes overall we: 

  (a) either explain the time problem (if it turns out you didn't know it)

  (b) or explain some other problem that isn't understood (based on your feedback) 

Attendance for this lab: Jiahao, Yiqing Shi, Mitch T, Glenn K, Blake S, Chris C, Kendall N, 
Sarah S, Nico P, Skylar M, Justin F, MItch S, Chetan C, Kirk H, Chris D, Younghun K, 

[cgdillon@silo ~]$ pwd
/u/cgdillon
[cgdillon@silo ~]$ cd c212-workspace/
[cgdillon@silo c212-workspace]$ cd apache-tomcat-7.0.35/
[cgdillon@silo apache-tomcat-7.0.35]$ echo $CATALINA_HOME

[cgdillon@silo apache-tomcat-7.0.35]$ source .tomcat-settings
[cgdillon@silo apache-tomcat-7.0.35]$ echo $CATALINA_HOME
/u/cgdillon/c212-workspace/apache-tomcat-7.0.35
[cgdillon@silo apache-tomcat-7.0.35]$ cd ~/c212-workspace/
[cgdillon@silo c212-workspace]$ nano -w installIceblox
[cgdillon@silo c212-workspace]$ cat installIceblox
mkdir $CATALINA_HOME/webapps/iceblox
mkdir $CATALINA_HOME/webapps/iceblox/WEB-INF
mkdir $CATALINA_HOME/webapps/iceblox/WEB-INF/classes
mkdir $CATALINA_HOME/webapps/iceblox/WEB-INF/lib
cp /l/www/classes/c212/fall2010/notes/iceblox/Iceblox.java $CATALINA_HOME/webapps/iceblox
cp /l/www/classes/c212/fall2010/notes/iceblox/iceblox.gif  $CATALINA_HOME/webapps/iceblox
cp /l/www/classes/c212/fall2010/notes/iceblox/iceblox.html $CATALINA_HOME/webapps/iceblox
[cgdillon@silo c212-workspace]$

Then make it executable and run it:

[cgdillon@silo c212-workspace]$ ls -ld installIceblox
-rw------- 1 cgdillon students 454 Nov  3 17:19 installIceblox
[cgdillon@silo c212-workspace]$ chmod u+x installIceblox
[cgdillon@silo c212-workspace]$ ls -ld installIceblox
-rwx------ 1 cgdillon students 454 Nov  3 17:19 installIceblox
[cgdillon@silo c212-workspace]$ ./installIceblox
[cgdillon@silo c212-workspace]$

Next go to the context for Iceblox and compile the program:

[cgdillon@silo c212-workspace]$ cd $CATALINA_HOME/webapps/iceblox
[cgdillon@silo iceblox]$ ls -l
total 40
-rw------- 1 cgdillon students  9719 Nov  3 17:21 iceblox.gif
-rw------- 1 cgdillon students   191 Nov  3 17:21 iceblox.html
-rw------- 1 cgdillon students 17927 Nov  3 17:21 Iceblox.java
drwx------ 4 cgdillon students  4096 Nov  3 17:21 WEB-INF
[cgdillon@silo iceblox]$ javac Iceblox.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
Note: Iceblox.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
[cgdillon@silo iceblox]$

Now make sure the URL to your server is on the exception site list and call your applet online. 

  (a) http://silo.cs.indiana.edu:24071/ or something like this you need to add

  (b) Control Panel -> Java -> Security

Then restart Firefox and try your luck:

   http://silo.cs.indiana.edu:24071/iceblox/iceblox.html

Next install the Chat:

[cgdillon@silo iceblox]$ pwd
/u/cgdillon/c212-workspace/apache-tomcat-7.0.35/webapps/iceblox
[cgdillon@silo iceblox]$ cd ~/c212-workspace/
[cgdillon@silo c212-workspace]$ nano -w installChat
[cgdillon@silo c212-workspace]$ ls -ld install*
-rw------- 1 cgdillon students 622 Nov  3 17:30 installChat
-rwx------ 1 cgdillon students 454 Nov  3 17:19 installIceblox
[cgdillon@silo c212-workspace]$ chmod u+x installChat
[cgdillon@silo c212-workspace]$ ls -ld install*
-rwx------ 1 cgdillon students 622 Nov  3 17:30 installChat
-rwx------ 1 cgdillon students 454 Nov  3 17:19 installIceblox
[cgdillon@silo c212-workspace]$ ./installChat
[cgdillon@silo c212-workspace]$ cat installChat
mkdir $CATALINA_HOME/webapps/chat
mkdir $CATALINA_HOME/webapps/chat/WEB-INF
mkdir $CATALINA_HOME/webapps/chat/WEB-INF/classes
mkdir $CATALINA_HOME/webapps/chat/WEB-INF/lib
cp /l/www/classes/c212/fall2012/chat/Chat.java        $CATALINA_HOME/webapps/chat/WEB-INF/classes
cp /l/www/classes/c212/fall2012/chat/ChatServlet.java $CATALINA_HOME/webapps/chat/WEB-INF/classes
cp /l/www/classes/c212/fall2012/chat/web.xml          $CATALINA_HOME/webapps/chat/WEB-INF
cp /l/www/classes/c212/fall2012/chat/ChatApplet.java  $CATALINA_HOME/webapps/chat
cp /l/www/classes/c212/fall2012/chat/HttpMessage.java $CATALINA_HOME/webapps/chat
[cgdillon@silo c212-workspace]$

Go there and compile then play with it online. 

[cgdillon@silo c212-workspace]$ pwd
/u/cgdillon/c212-workspace
[cgdillon@silo c212-workspace]$ cd $CATALINA_HOME/webapps/chat
[cgdillon@silo chat]$ ls
ChatApplet.java  HttpMessage.java  WEB-INF
[cgdillon@silo chat]$ tree .
.
+-- ChatApplet.java
+-- HttpMessage.java
+-- WEB-INF
    +-- classes
    |   +-- Chat.java
    |   +-- ChatServlet.java
    +-- lib
    +-- web.xml

3 directories, 5 files
[cgdillon@silo chat]$ nano -w ChatApplet.java
[cgdillon@silo chat]$ javac *.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
[cgdillon@silo chat]$ grep -n 24071 *.java
ChatApplet.java:55:              new URL("http://silo.cs.indiana.edu:24071/chat/servlet/ChatServlet");
ChatApplet.java:66:              new URL("http://silo.cs.indiana.edu:24071/chat/servlet/ChatServlet");
[cgdillon@silo chat]$

Now I am going to make the same changes on the server side. 

[cgdillon@silo chat]$ clear
[cgdillon@silo chat]$ tree .
.
+-- ChatApplet.class
+-- ChatApplet.java
+-- HttpMessage.class
+-- HttpMessage.java
+-- WEB-INF
    +-- classes
    |   +-- Chat.java
    |   +-- ChatServlet.java
    +-- lib
    +-- web.xml

3 directories, 7 files
[cgdillon@silo chat]$ cd WEB-INF/
[cgdillon@silo WEB-INF]$ cd classes/
[cgdillon@silo classes]$ ls -l
total 8
-rw------- 1 cgdillon students 1424 Nov  3 17:31 Chat.java
-rw------- 1 cgdillon students 1718 Nov  3 17:31 ChatServlet.java
[cgdillon@silo classes]$ nano -w Chat.java
[cgdillon@silo classes]$ grep -n 24071 Chat.java
36:       + "codebase=\"http://silo.cs.indiana.edu:24071/chat\"\n"
[cgdillon@silo classes]$ javac *.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
[cgdillon@silo classes]$

Now I can play online.

--

silo.cs.indiana.edu:24071/chat/servlet/Chat

[cgdillon@silo classes]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.7.0
[cgdillon@silo classes]$ javac -version
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
javac 1.8.0_111
[cgdillon@silo classes]$ $JAVA_HOME/bin/javac -version
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
javac 1.7.0_111
[cgdillon@silo classes]$

[cgdillon@silo classes]$ pwd
/u/cgdillon/c212-workspace/apache-tomcat-7.0.35/webapps/chat/WEB-INF/classes
[cgdillon@silo classes]$ clear
[cgdillon@silo classes]$ pwd
/u/cgdillon/c212-workspace/apache-tomcat-7.0.35/webapps/chat/WEB-INF/classes
[cgdillon@silo classes]$ ls -l
total 24
-rw------- 1 cgdillon students 1581 Nov  3 17:36 Chat.class
-rw------- 1 cgdillon students 1425 Nov  3 17:36 Chat.java
-rw------- 1 cgdillon students 1332 Nov  3 17:36 ChatServlet.class
-rw------- 1 cgdillon students 1718 Nov  3 17:31 ChatServlet.java
-rw------- 1 cgdillon students  775 Nov  3 17:36 MessageSink.class
-rw------- 1 cgdillon students  371 Nov  3 17:36 MessageSource.class
[cgdillon@silo classes]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.7.0
[cgdillon@silo classes]$ rm *.class
rm: remove regular file ‘Chat.class’? y
rm: remove regular file ‘ChatServlet.class’? y
rm: remove regular file ‘MessageSink.class’? y
rm: remove regular file ‘MessageSource.class’? y
[cgdillon@silo classes]$ $JAVA_HOME/bin/javac *.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
[cgdillon@silo classes]$ $CATALINA_HOME/bin/shutdown.sh
Using CATALINA_BASE:   /u/cgdillon/c212-workspace/apache-tomcat-7.0.35
Using CATALINA_HOME:   /u/cgdillon/c212-workspace/apache-tomcat-7.0.35
Using CATALINA_TMPDIR: /u/cgdillon/c212-workspace/apache-tomcat-7.0.35/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.7.0
Using CLASSPATH:       /u/cgdillon/c212-workspace/apache-tomcat-7.0.35/bin/bootstrap.jar:/u/cgdillon/c212-workspace/apache-tomcat-7.0.35/bin/tomcat-juli.jar
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
[cgdillon@silo classes]$ $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE:   /u/cgdillon/c212-workspace/apache-tomcat-7.0.35
Using CATALINA_HOME:   /u/cgdillon/c212-workspace/apache-tomcat-7.0.35
Using CATALINA_TMPDIR: /u/cgdillon/c212-workspace/apache-tomcat-7.0.35/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.7.0
Using CLASSPATH:       /u/cgdillon/c212-workspace/apache-tomcat-7.0.35/bin/bootstrap.jar:/u/cgdillon/c212-workspace/apache-tomcat-7.0.35/bin/tomcat-juli.jar
[cgdillon@silo classes]$