(a)  Homework 07

(b)  Lab 10

(c)  Exam 03

import java.util.*; 

public class Player {
  int points;
  String name; 
  public Player(String name, int points) {
    this.name = name;
    this.points = points;
  }
  public String toString() {
    return this.name + ":" + this.points; 
  } 
  public static void main(String[] args) {
    ArrayList<Player> players = new ArrayList<Player>(); 
    players.add( new Player("Laura" , 22) ); 
    players.add( new Player("Laura" ,  9) ); 
    players.add( new Player("Leslie", 18) ); 
    players.add( new Player("Leslie", 21) ); 
    players.add( new Player("Lynn"  , 27) ); 
    players.add( new Player("Lynn"  , 17) ); 
    players.add( new Player("Leah"  , 29) ); 
    players.add( new Player("Leah"  , 18) ); 
    Collections.sort( players, new One()); 
    System.out.println( players ); 
    Collections.sort( players, new Two()); 
    System.out.println( players ); 
  }
}

public class One implements Comparator<Player> {
  public int compare(Player a, Player b) {
    // descending by points alphabetical where same points
    if (a.points > b.points) return -1; 
    else if (a.points < b.points) return 1; 
    else return a.name.compareTo(b.name); // in the interest of shortness no accessors  
  }
}

public class Two implements Comparator<Player> {
  public int compare(Player a, Player b) {
    // sort all <= 21 first descending, then > 21 ascending
    if (a.points <= 21 && b.points <= 21) {
      return b.points - a.points; // swap if a more points than b 
    } else if (a.points > 21 && b.points > 21) {
      return - (b.points - a.points); // swap if a less points than b       
    } else if (a.points <= 21 && b.points > 21) {
      return -1;
    } else { // a.points > 21 && b.points <= 21
      return 1; 
    } 
  }
}

Mitchell Kirk Nico Jordan Joshua Alex Menghan Drake Jerry YuanYuan Tianqi Chad 
Chetan Younghun Sarah Elizabeth Blake Rui Tobias Magdalena Yixuan Wang Ben B Max T 
Levi B Chris D Chris C Skylar M Quinton B Graham H Y Rong Nova R Olivia P Justin F 
Kyle McW Leanne M Jiahao Y Yiqing Shi Kyle R Glenn K


Welcome to DrJava.  Working directory is C:\Users\dgerman\Desktop
> run Player
[Leah:29, Lynn:27, Laura:22, Leslie:21, Leah:18, Leslie:18, Lynn:17, Laura:9]
[Leslie:21, Leah:18, Leslie:18, Lynn:17, Laura:9, Laura:22, Lynn:27, Leah:29]


http://silo.cs.indiana.edu:8346/c212/sum2016/0718b.phps

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

[xuemeng@silo ROOT]$ pwd
/u/xuemeng/c212-workspace/apache-tomcat-7.0.35/webapps/ROOT
[xuemeng@silo ROOT]$ cd
[xuemeng@silo ~]$ cd c212-workspace/
[xuemeng@silo c212-workspace]$ nano -w installIceblox
[xuemeng@silo c212-workspace]$ ls -ld installIceblox
-rw------- 1 xuemeng students 454 Nov  2 10:32 installIceblox
[xuemeng@silo c212-workspace]$ chmod u+x installIceblox
[xuemeng@silo c212-workspace]$ cd $CATALINA_HOME
[xuemeng@silo apache-tomcat-7.0.35]$ cd webapps/
[xuemeng@silo webapps]$ ks
-bash: ks: command not found
[xuemeng@silo webapps]$ clear
[xuemeng@silo webapps]$ ls
docs  examples  host-manager  manager  ROOT
[xuemeng@silo webapps]$ ls -l $CATALINA_HOME/../installIceblox
-rwx------ 1 xuemeng students 454 Nov  2 10:32 /u/xuemeng/c212-workspace/apache-tomcat-7.0.35/../installIceblox
[xuemeng@silo webapps]$ $CATALINA_HOME/../installIceblox
[xuemeng@silo webapps]$ ls -l
total 24
drwx------ 13 xuemeng students 4096 Oct 28 10:48 docs
drwx------  6 xuemeng students 4096 Oct 28 10:48 examples
drwx------  5 xuemeng students 4096 Oct 28 10:48 host-manager
drwx------  3 xuemeng students 4096 Nov  2 10:34 iceblox
drwx------  5 xuemeng students 4096 Oct 28 10:48 manager
drwx------  3 xuemeng students 4096 Oct 31 09:08 ROOT
[xuemeng@silo webapps]$ cd iceblox/
[xuemeng@silo iceblox]$ ls -l
total 40
-rw------- 1 xuemeng students  9719 Nov  2 10:34 iceblox.gif
-rw------- 1 xuemeng students   191 Nov  2 10:34 iceblox.html
-rw------- 1 xuemeng students 17927 Nov  2 10:34 Iceblox.java
drwx------ 4 xuemeng students  4096 Nov  2 10:34 WEB-INF
[xuemeng@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.
[xuemeng@silo iceblox]$ ls -l
total 56
-rw------- 1 xuemeng students 14798 Nov  2 10:35 Iceblox.class
-rw------- 1 xuemeng students  9719 Nov  2 10:34 iceblox.gif
-rw------- 1 xuemeng students   191 Nov  2 10:34 iceblox.html
-rw------- 1 xuemeng students 17927 Nov  2 10:34 Iceblox.java
drwx------ 4 xuemeng students  4096 Nov  2 10:34 WEB-INF
[xuemeng@silo iceblox]$ cat $CATALINA_HOME/conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <user username="francis" password="n3ws" roles="manager-gui"/>
</tomcat-users>
[xuemeng@silo iceblox]$

Use Firefox and state the URL that is allowed to run Java. 

[xuemeng@silo c212-workspace]$ pwd
/u/xuemeng/c212-workspace
[xuemeng@silo c212-workspace]$ ls -ld installIceblox
-rwx------ 1 xuemeng students 454 Nov  2 10:32 installIceblox
[xuemeng@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
[xuemeng@silo c212-workspace]$

Now let's do the chat system. 

[xuemeng@silo c212-workspace]$ nano -w installChat
[xuemeng@silo c212-workspace]$ ls -ld installChat
-rw------- 1 xuemeng students 623 Nov  2 10:53 installChat
[xuemeng@silo c212-workspace]$ chmod u+x installChat
[xuemeng@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

[xuemeng@silo c212-workspace]$

[xuemeng@silo c212-workspace]$ ./installChat
[xuemeng@silo c212-workspace]$

Now verify that the chat context is there. 

[xuemeng@silo c212-workspace]$ nano -w installChat
[xuemeng@silo c212-workspace]$ ls -ld installChat
-rw------- 1 xuemeng students 623 Nov  2 10:53 installChat
[xuemeng@silo c212-workspace]$ chmod u+x installChat
[xuemeng@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

Go inside the applet, change port, compile. 

[xuemeng@silo c212-workspace]$ clear
[xuemeng@silo c212-workspace]$ ./installChat
[xuemeng@silo c212-workspace]$ cd $CATALINA_HOME
[xuemeng@silo apache-tomcat-7.0.35]$ cd webapps/
[xuemeng@silo webapps]$ cd chat/
[xuemeng@silo chat]$ ls -l
total 12
-rw------- 1 xuemeng students 2386 Nov  2 10:55 ChatApplet.java
-rw------- 1 xuemeng students 1828 Nov  2 10:55 HttpMessage.java
drwx------ 4 xuemeng students 4096 Nov  2 10:55 WEB-INF
[xuemeng@silo chat]$ nano -w ChatApplet.java
[xuemeng@silo chat]$ grep 24127 *.java
ChatApplet.java:              new URL("http://silo.cs.indiana.edu:24127/chat/servlet/ChatServlet");
ChatApplet.java:              new URL("http://silo.cs.indiana.edu:24127/chat/servlet/ChatServlet");
[xuemeng@silo chat]$ grep -n 24127 *.java
ChatApplet.java:55:              new URL("http://silo.cs.indiana.edu:24127/chat/servlet/ChatServlet");
ChatApplet.java:66:              new URL("http://silo.cs.indiana.edu:24127/chat/servlet/ChatServlet");
[xuemeng@silo chat]$ $JAVA_HOME/bin/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.
[xuemeng@silo chat]$ ls -l
total 20
-rw------- 1 xuemeng students 3147 Nov  2 10:57 ChatApplet.class
-rw------- 1 xuemeng students 2388 Nov  2 10:56 ChatApplet.java
-rw------- 1 xuemeng students 2421 Nov  2 10:57 HttpMessage.class
-rw------- 1 xuemeng students 1828 Nov  2 10:55 HttpMessage.java
drwx------ 4 xuemeng students 4096 Nov  2 10:55 WEB-INF
[xuemeng@silo chat]$

Be careful what compiler you use. 

[xuemeng@silo chat]$ pwd
/u/xuemeng/c212-workspace/apache-tomcat-7.0.35/webapps/chat
[xuemeng@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
[xuemeng@silo chat]$

[xuemeng@silo chat]$ cd WEB-INF/
[xuemeng@silo WEB-INF]$ cd classes/
[xuemeng@silo classes]$ nano -w Chat.java
[xuemeng@silo classes]$ grep -n 24127 *.java
Chat.java:36:       + "codebase=\"http://silo.cs.indiana.edu:24127/chat\"\n"
[xuemeng@silo classes]$ $JAVA_HOME/bin/javac *.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
[xuemeng@silo classes]$ ls -l
total 24
-rw------- 1 xuemeng students 1635 Nov  2 10:59 Chat.class
-rw------- 1 xuemeng students 1425 Nov  2 10:59 Chat.java
-rw------- 1 xuemeng students 1332 Nov  2 10:59 ChatServlet.class
-rw------- 1 xuemeng students 1718 Nov  2 10:55 ChatServlet.java
-rw------- 1 xuemeng students  775 Nov  2 10:59 MessageSink.class
-rw------- 1 xuemeng students  371 Nov  2 10:59 MessageSource.class
[xuemeng@silo classes]$


http://silo.cs.indiana.edu:24127/chat/

http://silo.cs.indiana.edu:24127/iceblox/