diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 554eb2e29..a70aad950 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -861,6 +861,25 @@ public class Editor extends JFrame implements RunnerListener { JMenu menu = new JMenu("Help"); JMenuItem item; + item = new JMenuItem("Web Server Test"); + item.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + //WebServer ws = new WebServer(); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + try { + int port = WebServer.launch("/Users/fry/coconut/processing/build/shared/reference.zip"); + Base.openURL("http://127.0.0.1:" + port + "/reference/setup_.html"); + + } catch (IOException e1) { + e1.printStackTrace(); + } + } + }); + } + }); + menu.add(item); + /* item = new JMenuItem("Browser Test"); item.addActionListener(new ActionListener() { diff --git a/app/src/processing/app/WebServer.java b/app/src/processing/app/WebServer.java index 71f3dbbb0..01f6cc39e 100644 --- a/app/src/processing/app/WebServer.java +++ b/app/src/processing/app/WebServer.java @@ -1,51 +1,34 @@ +package processing.app; + import java.io.*; import java.net.*; import java.util.*; +import java.util.zip.*; + +//import javax.swing.SwingUtilities; /** * An example of a very simple, multi-threaded HTTP server. - * Implementation notes are in WebServer.html, and also - * as comments in the source code. - *
* Taken from this article on java.sun.com.
*/
-class WebServer implements HttpConstants {
-
- /* static class data/methods */
-
- /* print to stdout */
- protected static void p(String s) {
- System.out.println(s);
- }
-
- /* print to the log file */
- protected static void log(String s) {
- synchronized (log) {
- log.println(s);
- log.flush();
- }
- }
-
- static PrintStream log = null;
- /* our server's configuration information is stored
- * in these properties
- */
- protected static Properties props = new Properties();
+public class WebServer implements HttpConstants {
/* Where worker threads stand idle */
static Vector threads = new Vector();
/* the web server's virtual root */
- static File root;
+ //static File root;
/* timeout on client connections */
- static int timeout = 0;
+ static int timeout = 10000;
/* max # worker threads */
static int workers = 5;
+// static PrintStream log = System.out;
- /* load www-server.properties from java.home */
+
+ /*
static void loadProps() throws IOException {
File f = new File
(System.getProperty("java.home")+File.separator+
@@ -78,7 +61,7 @@ class WebServer implements HttpConstants {
}
}
- /* if no properties were specified, choose defaults */
+ // if no properties were specified, choose defaults
if (root == null) {
root = new File(System.getProperty("user.dir"));
}
@@ -99,58 +82,109 @@ class WebServer implements HttpConstants {
p("timeout="+timeout);
p("workers="+workers);
}
+ */
- public static void main(String[] a) throws Exception {
- int port = 8080;
- if (a.length > 0) {
- port = Integer.parseInt(a[0]);
- }
- loadProps();
- printProps();
- /* start worker threads */
+
+ /* print to stdout */
+// protected static void p(String s) {
+// System.out.println(s);
+// }
+
+ /* print to the log file */
+ protected static void log(String s) {
+ if (false) {
+ System.out.println(s);
+ }
+// synchronized (log) {
+// log.println(s);
+// log.flush();
+// }
+ }
+
+
+ //public static void main(String[] a) throws Exception {
+ static public int launch(String zipPath) throws IOException {
+ final ZipFile zip = new ZipFile(zipPath);
+ final HashMap404 Not Found
"+
+ "The requested resource was not found.");
ps.write(EOL);
ps.write(EOL);
- ps.println("Not Found\n\n"+
- "The requested resource was not found.\n");
}
+
void sendFile(File targ, PrintStream ps) throws IOException {
InputStream is = null;
ps.write(EOL);
@@ -351,7 +448,11 @@ outerloop:
} else {
is = new FileInputStream(targ.getAbsolutePath());
}
-
+ sendFile(is, ps);
+ }
+
+
+ void sendFile(InputStream is, PrintStream ps) throws IOException {
try {
int n;
while ((n = is.read(buf)) > 0) {
@@ -374,6 +475,7 @@ outerloop:
static void fillMap() {
setSuffix("", "content/unknown");
+
setSuffix(".uu", "application/octet-stream");
setSuffix(".exe", "application/octet-stream");
setSuffix(".ps", "application/postscript");
@@ -383,19 +485,24 @@ outerloop:
setSuffix(".snd", "audio/basic");
setSuffix(".au", "audio/basic");
setSuffix(".wav", "audio/x-wav");
+
setSuffix(".gif", "image/gif");
setSuffix(".jpg", "image/jpeg");
setSuffix(".jpeg", "image/jpeg");
+
setSuffix(".htm", "text/html");
setSuffix(".html", "text/html");
- setSuffix(".text", "text/plain");
+ setSuffix(".css", "text/css");
+ setSuffix(".java", "text/javascript");
+
+ setSuffix(".txt", "text/plain");
+ setSuffix(".java", "text/plain");
+
setSuffix(".c", "text/plain");
setSuffix(".cc", "text/plain");
setSuffix(".c++", "text/plain");
setSuffix(".h", "text/plain");
setSuffix(".pl", "text/plain");
- setSuffix(".txt", "text/plain");
- setSuffix(".java", "text/plain");
}
void listDirectory(File dir, PrintStream ps) throws IOException {
@@ -415,6 +522,7 @@ outerloop:
}
+
interface HttpConstants {
/** 2XX: generally "OK" */
public static final int HTTP_OK = 200;
@@ -459,6 +567,3 @@ interface HttpConstants {
public static final int HTTP_GATEWAY_TIMEOUT = 504;
public static final int HTTP_VERSION = 505;
}
-
-
-