Crossfire JXClient, Trunk
Main.java
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * - Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * - Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the distribution.
14  *
15  * - Neither the name of Oracle nor the names of its
16  * contributors may be used to endorse or promote products derived
17  * from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 /*
33  * This source code is provided to illustrate the usage of a given feature
34  * or technique and has been deliberately simplified. Additional steps
35  * required for a production-quality application, such as security checks,
36  * input validation and proper error handling, might not be present in
37  * this sample code.
38  */
39 
40 
41 package com.sun.sample.scriptpad;
42 
43 import javax.script.*;
44 import java.io.*;
45 
52 public class Main {
53  public static void main(String[] args) throws Exception {
54 
55  // create a ScriptEngineManager
56  ScriptEngineManager m = new ScriptEngineManager();
57  // get an instance of JavaScript script engine
58  ScriptEngine engine = m.getEngineByName("js");
59 
60  // expose the current script engine as a global variable
61  engine.put("engine", engine);
62 
63  // evaluate few scripts that are bundled in "resources"
64  eval(engine, "conc.js");
65  eval(engine, "gui.js");
66  eval(engine, "scriptpad.js");
67  eval(engine, "mm.js");
68  }
69 
70  private static void eval(ScriptEngine engine, String name)
71  throws Exception {
72  /*
73  * This class is compiled into a jar file. The jar file
74  * contains few scripts under /resources URL.
75  */
76  InputStream is = Main.class.getResourceAsStream("/resources/" + name);
77  // current script file name for better error messages
78  engine.put(ScriptEngine.FILENAME, name);
79  // evaluate the script in the InputStream
80  engine.eval(new InputStreamReader(is));
81  }
82 }
com.sun.sample.scriptpad.Main.main
static void main(String[] args)
Definition: Main.java:53
com.sun.sample.scriptpad.Main
Definition: Main.java:52
com.sun.sample.scriptpad.Main.eval
static void eval(ScriptEngine engine, String name)
Definition: Main.java:70
name
A Simple Chat Server Example the server takes input from a it handles the startup and handles incoming connections on the listening sockets It keeps a list of connected client and provides methods for sending a message to them Client represents a connected it provides methods for reading writing from to the underlying socket It also contains a buffer of input read from the user DataReader provides the interface of the two states a user can be in Waiting for a name(and not receiving any messages while doing so, implemented by NameReader) and waiting for messages from the user(implemented by MessageReader). ClientReader contains the "main loop" for a connected client. NameReader is the initial state for a new client