golf 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. data/golf.gemspec +1 -1
  2. data/lib/golf/version.rb +1 -1
  3. metadata +1 -121
  4. data/golf-java/README.markdown +0 -41
  5. data/golf-java/THANKS.markdown +0 -14
  6. data/golf-java/build/classes.zip +0 -0
  7. data/golf-java/build/com/thinkminimo/golf/GolfResource$MimeMapping$MimeMappingSingleton.class +0 -0
  8. data/golf-java/build/com/thinkminimo/golf/GolfResource$MimeMapping.class +0 -0
  9. data/golf-java/build/com/thinkminimo/golf/GolfResource.class +0 -0
  10. data/golf-java/build/com/thinkminimo/golf/GolfServlet$1.class +0 -0
  11. data/golf-java/build/com/thinkminimo/golf/GolfServlet$GolfContext.class +0 -0
  12. data/golf-java/build/com/thinkminimo/golf/GolfServlet$GolfParams.class +0 -0
  13. data/golf-java/build/com/thinkminimo/golf/GolfServlet$GolfSession.class +0 -0
  14. data/golf-java/build/com/thinkminimo/golf/GolfServlet$PermanentRedirectException.class +0 -0
  15. data/golf-java/build/com/thinkminimo/golf/GolfServlet$RedirectException.class +0 -0
  16. data/golf-java/build/com/thinkminimo/golf/GolfServlet$StoredJSVM.class +0 -0
  17. data/golf-java/build/com/thinkminimo/golf/GolfServlet.class +0 -0
  18. data/golf-java/build/com/thinkminimo/golf/JsonpTunnel.class +0 -0
  19. data/golf-java/build/com/thinkminimo/golf/Main$1.class +0 -0
  20. data/golf-java/build/com/thinkminimo/golf/Main$RingList.class +0 -0
  21. data/golf-java/build/com/thinkminimo/golf/Main.class +0 -0
  22. data/golf-java/build/com/thinkminimo/golf/ProxyServlet.class +0 -0
  23. data/golf-java/build/com/yahoo/platform/yui/compressor/CssCompressor.class +0 -0
  24. data/golf-java/build/com/yahoo/platform/yui/compressor/JarClassLoader.class +0 -0
  25. data/golf-java/build/com/yahoo/platform/yui/compressor/JavaScriptCompressor.class +0 -0
  26. data/golf-java/build/com/yahoo/platform/yui/compressor/JavaScriptIdentifier.class +0 -0
  27. data/golf-java/build/com/yahoo/platform/yui/compressor/JavaScriptToken.class +0 -0
  28. data/golf-java/build/com/yahoo/platform/yui/compressor/ScriptOrFnScope.class +0 -0
  29. data/golf-java/build/depends.zip +0 -0
  30. data/golf-java/build/golf +0 -2
  31. data/golf-java/build/org/json/JSONArray.class +0 -0
  32. data/golf-java/build/org/json/JSONException.class +0 -0
  33. data/golf-java/build/org/json/JSONObject$1.class +0 -0
  34. data/golf-java/build/org/json/JSONObject$Null.class +0 -0
  35. data/golf-java/build/org/json/JSONObject.class +0 -0
  36. data/golf-java/build/org/json/JSONString.class +0 -0
  37. data/golf-java/build/org/json/JSONStringer.class +0 -0
  38. data/golf-java/build/org/json/JSONTokener.class +0 -0
  39. data/golf-java/build/org/json/JSONWriter.class +0 -0
  40. data/golf-java/build/resources.zip +0 -0
  41. data/golf-java/build.xml +0 -174
  42. data/golf-java/dist/golf.zip +0 -0
  43. data/golf-java/lib/ant-launcher.jar +0 -0
  44. data/golf-java/lib/ant.jar +0 -0
  45. data/golf-java/lib/commons-codec-1.4.jar +0 -0
  46. data/golf-java/lib/commons-collections-3.2.1.jar +0 -0
  47. data/golf-java/lib/commons-fileupload-1.2.1.jar +0 -0
  48. data/golf-java/lib/commons-httpclient-3.1.jar +0 -0
  49. data/golf-java/lib/commons-io-1.4.jar +0 -0
  50. data/golf-java/lib/commons-lang-2.4.jar +0 -0
  51. data/golf-java/lib/commons-logging-1.1.1.jar +0 -0
  52. data/golf-java/lib/cssparser-0.9.5.jar +0 -0
  53. data/golf-java/lib/getopt-0.1-dev.jar +0 -0
  54. data/golf-java/lib/htmlunit-2.6.jar +0 -0
  55. data/golf-java/lib/htmlunit-core-js-2.6.jar +0 -0
  56. data/golf-java/lib/java-xmlbuilder-1.jar +0 -0
  57. data/golf-java/lib/jets3t-0.7.0.jar +0 -0
  58. data/golf-java/lib/jetty-6.1.15.jar +0 -0
  59. data/golf-java/lib/jetty-util-6.1.15.jar +0 -0
  60. data/golf-java/lib/log4j-1.2.15.jar +0 -0
  61. data/golf-java/lib/nekohtml-1.9.13.jar +0 -0
  62. data/golf-java/lib/sac-1.3.jar +0 -0
  63. data/golf-java/lib/serializer-2.7.1.jar +0 -0
  64. data/golf-java/lib/servlet-api-2.5-20081211.jar +0 -0
  65. data/golf-java/lib/xalan-2.7.1.jar +0 -0
  66. data/golf-java/lib/xercesImpl-2.9.1.jar +0 -0
  67. data/golf-java/lib/xml-apis-1.3.04.jar +0 -0
  68. data/golf-java/resources/app_error.html +0 -60
  69. data/golf-java/resources/error.html +0 -29
  70. data/golf-java/resources/forcebot.txt +0 -0
  71. data/golf-java/resources/forceclient.txt +0 -0
  72. data/golf-java/resources/forceproxy.txt +0 -0
  73. data/golf-java/resources/head.html +0 -0
  74. data/golf-java/resources/jquery.address.js +0 -439
  75. data/golf-java/resources/jquery.golf.js +0 -945
  76. data/golf-java/resources/jquery.js +0 -4376
  77. data/golf-java/resources/jsdetect.html +0 -23
  78. data/golf-java/resources/loading.gif +0 -0
  79. data/golf-java/resources/new.html +0 -45
  80. data/golf-java/resources/new.static.html +0 -45
  81. data/golf-java/resources/noscript.forceclient.html +0 -11
  82. data/golf-java/resources/noscript.html +0 -18
  83. data/golf-java/resources/noscript.static.html +0 -15
  84. data/golf-java/resources/project.xml +0 -21
  85. data/golf-java/resources/proxy_project.xml +0 -11
  86. data/golf-java/resources/proxy_web.xml +0 -40
  87. data/golf-java/resources/static_project.xml +0 -37
  88. data/golf-java/resources/version +0 -1
  89. data/golf-java/resources/web.xml +0 -36
  90. data/golf-java/resources/welcome2golf.html +0 -50
  91. data/golf-java/src/com/thinkminimo/golf/GolfResource.java +0 -582
  92. data/golf-java/src/com/thinkminimo/golf/GolfServlet.java +0 -1055
  93. data/golf-java/src/com/thinkminimo/golf/JsonpTunnel.java +0 -86
  94. data/golf-java/src/com/thinkminimo/golf/Main.java +0 -1299
  95. data/golf-java/src/com/thinkminimo/golf/ProxyServlet.java +0 -577
  96. data/golf-java/src/com/yahoo/platform/yui/compressor/CssCompressor.java +0 -188
  97. data/golf-java/src/com/yahoo/platform/yui/compressor/JarClassLoader.java +0 -158
  98. data/golf-java/src/com/yahoo/platform/yui/compressor/JavaScriptCompressor.java +0 -1281
  99. data/golf-java/src/com/yahoo/platform/yui/compressor/JavaScriptIdentifier.java +0 -55
  100. data/golf-java/src/com/yahoo/platform/yui/compressor/JavaScriptToken.java +0 -28
  101. data/golf-java/src/com/yahoo/platform/yui/compressor/ScriptOrFnScope.java +0 -160
  102. data/golf-java/src/org/json/JSONArray.java +0 -934
  103. data/golf-java/src/org/json/JSONException.java +0 -27
  104. data/golf-java/src/org/json/JSONObject.java +0 -1550
  105. data/golf-java/src/org/json/JSONString.java +0 -18
  106. data/golf-java/src/org/json/JSONStringer.java +0 -78
  107. data/golf-java/src/org/json/JSONTokener.java +0 -422
  108. data/golf-java/src/org/json/JSONWriter.java +0 -323
  109. data/golf-java/test/client/golftest/README.markdown +0 -3
  110. data/golf-java/test/client/golftest/components/com/thinkminimo/golf/test/Harness.css +0 -114
  111. data/golf-java/test/client/golftest/components/com/thinkminimo/golf/test/Harness.html +0 -17
  112. data/golf-java/test/client/golftest/components/com/thinkminimo/golf/test/Harness.js +0 -81
  113. data/golf-java/test/client/golftest/components/com/thinkminimo/golf/test/Harness.res/asc.gif +0 -0
  114. data/golf-java/test/client/golftest/components/com/thinkminimo/golf/test/Harness.res/bg.gif +0 -0
  115. data/golf-java/test/client/golftest/components/com/thinkminimo/golf/test/Harness.res/desc.gif +0 -0
  116. data/golf-java/test/client/golftest/components/com/thinkminimo/golf/test/Harness.res/test/test.html +0 -1
  117. data/golf-java/test/client/golftest/controller.js +0 -131
  118. data/golf-java/test/client/golftest/forceclient.txt +0 -0
  119. data/golf-java/test/client/golftest/forceproxy.txt +0 -0
  120. data/golf-java/test/client/golftest/head.html +0 -1
  121. data/golf-java/test/client/golftest/scripts/jquery.tablesort.js +0 -75
  122. data/golf-java/test/client/golftest/styles/style.css +0 -18
  123. data/golf-java/test/client/golftest/test/test.html +0 -1
@@ -1,582 +0,0 @@
1
- package com.thinkminimo.golf;
2
-
3
- import java.io.*;
4
- import java.net.*;
5
- import java.util.*;
6
- import javax.servlet.*;
7
-
8
- public class GolfResource {
9
-
10
- public static final int SOURCE_NONE = 0;
11
- public static final int SOURCE_FILE = 1;
12
- public static final int SOURCE_JAR = 2;
13
-
14
- public static class MimeMapping extends HashMap<String, String> {
15
- protected MimeMapping() {
16
- put(".3dm", "x-world/x-3dmf");
17
- put(".3dmf", "x-world/x-3dmf");
18
- put(".a", "application/octet-stream");
19
- put(".aab", "application/x-authorware-bin");
20
- put(".aam", "application/x-authorware-map");
21
- put(".aas", "application/x-authorware-seg");
22
- put(".abc", "text/vnd.abc");
23
- put(".acgi", "text/html");
24
- put(".afl", "video/animaflex");
25
- put(".ai", "application/postscript");
26
- put(".aif", "audio/aiff");
27
- put(".aif", "audio/x-aiff");
28
- put(".aifc", "audio/aiff");
29
- put(".aifc", "audio/x-aiff");
30
- put(".aiff", "audio/aiff");
31
- put(".aiff", "audio/x-aiff");
32
- put(".aim", "application/x-aim");
33
- put(".aip", "text/x-audiosoft-intra");
34
- put(".ani", "application/x-navi-animation");
35
- put(".aos", "application/x-nokia-9000-communicator-add-on-software");
36
- put(".aps", "application/mime");
37
- put(".arc", "application/octet-stream");
38
- put(".arj", "application/arj");
39
- put(".arj", "application/octet-stream");
40
- put(".art", "image/x-jg");
41
- put(".asf", "video/x-ms-asf");
42
- put(".asm", "text/x-asm");
43
- put(".asp", "text/asp");
44
- put(".asx", "application/x-mplayer2");
45
- put(".asx", "video/x-ms-asf");
46
- put(".asx", "video/x-ms-asf-plugin");
47
- put(".au", "audio/basic");
48
- put(".au", "audio/x-au");
49
- put(".avi", "application/x-troff-msvideo");
50
- put(".avi", "video/avi");
51
- put(".avi", "video/msvideo");
52
- put(".avi", "video/x-msvideo");
53
- put(".avs", "video/avs-video");
54
- put(".bcpio", "application/x-bcpio");
55
- put(".bin", "application/mac-binary");
56
- put(".bin", "application/macbinary");
57
- put(".bin", "application/octet-stream");
58
- put(".bin", "application/x-binary");
59
- put(".bin", "application/x-macbinary");
60
- put(".bm", "image/bmp");
61
- put(".bmp", "image/bmp");
62
- put(".bmp", "image/x-windows-bmp");
63
- put(".boo", "application/book");
64
- put(".book", "application/book");
65
- put(".boz", "application/x-bzip2");
66
- put(".bsh", "application/x-bsh");
67
- put(".bz", "application/x-bzip");
68
- put(".bz2", "application/x-bzip2");
69
- put(".c", "text/plain");
70
- put(".c", "text/x-c");
71
- put(".c++", "text/plain");
72
- put(".cat", "application/vnd.ms-pki.seccat");
73
- put(".cc", "text/plain");
74
- put(".cc", "text/x-c");
75
- put(".ccad", "application/clariscad");
76
- put(".cco", "application/x-cocoa");
77
- put(".cdf", "application/cdf");
78
- put(".cdf", "application/x-cdf");
79
- put(".cdf", "application/x-netcdf");
80
- put(".cer", "application/pkix-cert");
81
- put(".cer", "application/x-x509-ca-cert");
82
- put(".cha", "application/x-chat");
83
- put(".chat", "application/x-chat");
84
- put(".class", "application/java");
85
- put(".class", "application/java-byte-code");
86
- put(".class", "application/x-java-class");
87
- put(".com", "application/octet-stream");
88
- put(".com", "text/plain");
89
- put(".conf", "text/plain");
90
- put(".cpio", "application/x-cpio");
91
- put(".cpp", "text/x-c");
92
- put(".cpt", "application/mac-compactpro");
93
- put(".cpt", "application/x-compactpro");
94
- put(".cpt", "application/x-cpt");
95
- put(".crl", "application/pkcs-crl");
96
- put(".crl", "application/pkix-crl");
97
- put(".crt", "application/pkix-cert");
98
- put(".crt", "application/x-x509-ca-cert");
99
- put(".crt", "application/x-x509-user-cert");
100
- put(".csh", "text/x-script.csh");
101
- put(".css", "text/css");
102
- put(".cxx", "text/plain");
103
- put(".dcr", "application/x-director");
104
- put(".deepv", "application/x-deepv");
105
- put(".def", "text/plain");
106
- put(".der", "application/x-x509-ca-cert");
107
- put(".dif", "video/x-dv");
108
- put(".dir", "application/x-director");
109
- put(".dl", "video/dl");
110
- put(".dl", "video/x-dl");
111
- put(".doc", "application/msword");
112
- put(".dot", "application/msword");
113
- put(".dp", "application/commonground");
114
- put(".drw", "application/drafting");
115
- put(".dump", "application/octet-stream");
116
- put(".dv", "video/x-dv");
117
- put(".dvi", "application/x-dvi");
118
- put(".dwf", "drawing/x-dwf (old)");
119
- put(".dwf", "model/vnd.dwf");
120
- put(".dwg", "application/acad");
121
- put(".dwg", "image/vnd.dwg");
122
- put(".dwg", "image/x-dwg");
123
- put(".dxf", "application/dxf");
124
- put(".dxf", "image/vnd.dwg");
125
- put(".dxf", "image/x-dwg");
126
- put(".dxr", "application/x-director");
127
- put(".el", "text/x-script.elisp");
128
- put(".elc", "application/x-bytecode.elisp (compiled elisp)");
129
- put(".elc", "application/x-elc");
130
- put(".env", "application/x-envoy");
131
- put(".eps", "application/postscript");
132
- put(".es", "application/x-esrehber");
133
- put(".etx", "text/x-setext");
134
- put(".evy", "application/envoy");
135
- put(".evy", "application/x-envoy");
136
- put(".exe", "application/octet-stream");
137
- put(".f", "text/plain");
138
- put(".f", "text/x-fortran");
139
- put(".f77", "text/x-fortran");
140
- put(".f90", "text/plain");
141
- put(".f90", "text/x-fortran");
142
- put(".fdf", "application/vnd.fdf");
143
- put(".fif", "application/fractals");
144
- put(".fif", "image/fif");
145
- put(".fli", "video/fli");
146
- put(".fli", "video/x-fli");
147
- put(".flo", "image/florian");
148
- put(".flx", "text/vnd.fmi.flexstor");
149
- put(".fmf", "video/x-atomic3d-feature");
150
- put(".for", "text/plain");
151
- put(".for", "text/x-fortran");
152
- put(".fpx", "image/vnd.fpx");
153
- put(".fpx", "image/vnd.net-fpx");
154
- put(".frl", "application/freeloader");
155
- put(".funk", "audio/make");
156
- put(".g", "text/plain");
157
- put(".g3", "image/g3fax");
158
- put(".gif", "image/gif");
159
- put(".gl", "video/gl");
160
- put(".gl", "video/x-gl");
161
- put(".gsd", "audio/x-gsm");
162
- put(".gsm", "audio/x-gsm");
163
- put(".gsp", "application/x-gsp");
164
- put(".gss", "application/x-gss");
165
- put(".gtar", "application/x-gtar");
166
- put(".gz", "application/x-compressed");
167
- put(".gz", "application/x-gzip");
168
- put(".gzip", "application/x-gzip");
169
- put(".gzip", "multipart/x-gzip");
170
- put(".h", "text/plain");
171
- put(".h", "text/x-h");
172
- put(".hdf", "application/x-hdf");
173
- put(".help", "application/x-helpfile");
174
- put(".hgl", "application/vnd.hp-hpgl");
175
- put(".hh", "text/plain");
176
- put(".hh", "text/x-h");
177
- put(".hlb", "text/x-script");
178
- put(".hlp", "application/hlp");
179
- put(".hlp", "application/x-helpfile");
180
- put(".hlp", "application/x-winhelp");
181
- put(".hpg", "application/vnd.hp-hpgl");
182
- put(".hpgl", "application/vnd.hp-hpgl");
183
- put(".hqx", "application/binhex");
184
- put(".hqx", "application/binhex4");
185
- put(".hqx", "application/mac-binhex");
186
- put(".hqx", "application/mac-binhex40");
187
- put(".hqx", "application/x-binhex40");
188
- put(".hqx", "application/x-mac-binhex40");
189
- put(".hta", "application/hta");
190
- put(".htc", "text/x-component");
191
- put(".htm", "text/html");
192
- put(".html", "text/html");
193
- put(".htmls", "text/html");
194
- put(".htt", "text/webviewhtml");
195
- put(".htx", "text/html");
196
- put(".ice", "x-conference/x-cooltalk");
197
- put(".ico", "image/x-icon");
198
- put(".idc", "text/plain");
199
- put(".ief", "image/ief");
200
- put(".iefs", "image/ief");
201
- put(".iges", "application/iges");
202
- put(".iges", "model/iges");
203
- put(".igs", "application/iges");
204
- put(".igs", "model/iges");
205
- put(".ima", "application/x-ima");
206
- put(".imap", "application/x-httpd-imap");
207
- put(".inf", "application/inf");
208
- put(".ins", "application/x-internett-signup");
209
- put(".ip", "application/x-ip2");
210
- put(".isu", "video/x-isvideo");
211
- put(".it", "audio/it");
212
- put(".iv", "application/x-inventor");
213
- put(".ivr", "i-world/i-vrml");
214
- put(".ivy", "application/x-livescreen");
215
- put(".jam", "audio/x-jam");
216
- put(".jav", "text/plain");
217
- put(".jav", "text/x-java-source");
218
- put(".java", "text/plain");
219
- put(".java", "text/x-java-source");
220
- put(".jcm", "application/x-java-commerce");
221
- put(".jfif", "image/jpeg");
222
- put(".jfif", "image/pjpeg");
223
- put(".jfif-tbnl", "image/jpeg");
224
- put(".jpe", "image/jpeg");
225
- put(".jpe", "image/pjpeg");
226
- put(".jpeg", "image/jpeg");
227
- put(".jpeg", "image/pjpeg");
228
- put(".jpg", "image/jpeg");
229
- put(".jpg", "image/pjpeg");
230
- put(".jps", "image/x-jps");
231
- put(".js", "text/javascript");
232
- put(".jut", "image/jutvision");
233
- put(".kar", "audio/midi");
234
- put(".kar", "music/x-karaoke");
235
- put(".ksh", "application/x-ksh");
236
- put(".ksh", "text/x-script.ksh");
237
- put(".la", "audio/nspaudio");
238
- put(".la", "audio/x-nspaudio");
239
- put(".lam", "audio/x-liveaudio");
240
- put(".latex", "application/x-latex");
241
- put(".lha", "application/lha");
242
- put(".lha", "application/octet-stream");
243
- put(".lha", "application/x-lha");
244
- put(".lhx", "application/octet-stream");
245
- put(".list", "text/plain");
246
- put(".lma", "audio/nspaudio");
247
- put(".lma", "audio/x-nspaudio");
248
- put(".log", "text/plain");
249
- put(".lsp", "application/x-lisp");
250
- put(".lsp", "text/x-script.lisp");
251
- put(".lst", "text/plain");
252
- put(".lsx", "text/x-la-asf");
253
- put(".ltx", "application/x-latex");
254
- put(".lzh", "application/octet-stream");
255
- put(".lzh", "application/x-lzh");
256
- put(".lzx", "application/lzx");
257
- put(".lzx", "application/octet-stream");
258
- put(".lzx", "application/x-lzx");
259
- put(".m", "text/plain");
260
- put(".m", "text/x-m");
261
- put(".m1v", "video/mpeg");
262
- put(".m2a", "audio/mpeg");
263
- put(".m2v", "video/mpeg");
264
- put(".m3u", "audio/x-mpequrl");
265
- put(".man", "application/x-troff-man");
266
- put(".map", "application/x-navimap");
267
- put(".mar", "text/plain");
268
- put(".mbd", "application/mbedlet");
269
- put(".mc$", "application/x-magic-cap-package-1.0");
270
- put(".mcd", "application/mcad");
271
- put(".mcd", "application/x-mathcad");
272
- put(".mcf", "image/vasa");
273
- put(".mcf", "text/mcf");
274
- put(".mcp", "application/netmc");
275
- put(".me", "application/x-troff-me");
276
- put(".mht", "message/rfc822");
277
- put(".mhtml", "message/rfc822");
278
- put(".mid", "application/x-midi");
279
- put(".mid", "audio/midi");
280
- put(".mid", "audio/x-mid");
281
- put(".mid", "audio/x-midi");
282
- put(".mid", "music/crescendo");
283
- put(".mid", "x-music/x-midi");
284
- put(".midi", "application/x-midi");
285
- put(".midi", "audio/midi");
286
- put(".midi", "audio/x-mid");
287
- put(".midi", "audio/x-midi");
288
- put(".midi", "music/crescendo");
289
- put(".midi", "x-music/x-midi");
290
- put(".mif", "application/x-frame");
291
- put(".mif", "application/x-mif");
292
- put(".mime", "message/rfc822");
293
- put(".mime", "www/mime");
294
- put(".mjf", "audio/x-vnd.audioexplosion.mjuicemediafile");
295
- put(".mjpg", "video/x-motion-jpeg");
296
- put(".mm", "application/base64");
297
- put(".mm", "application/x-meme");
298
- put(".mme", "application/base64");
299
- put(".mod", "audio/mod");
300
- put(".mod", "audio/x-mod");
301
- put(".moov", "video/quicktime");
302
- put(".mov", "video/quicktime");
303
- put(".movie", "video/x-sgi-movie");
304
- put(".mp2", "audio/mpeg");
305
- put(".mp2", "audio/x-mpeg");
306
- put(".mp2", "video/mpeg");
307
- put(".mp2", "video/x-mpeg");
308
- put(".mp2", "video/x-mpeq2a");
309
- put(".mp3", "audio/mpeg3");
310
- put(".mp3", "audio/x-mpeg-3");
311
- put(".mp3", "video/mpeg");
312
- put(".mp3", "video/x-mpeg");
313
- put(".mpa", "audio/mpeg");
314
- put(".mpa", "video/mpeg");
315
- put(".mpc", "application/x-project");
316
- put(".mpe", "video/mpeg");
317
- put(".mpeg", "video/mpeg");
318
- put(".mpg", "audio/mpeg");
319
- put(".mpg", "video/mpeg");
320
- put(".mpga", "audio/mpeg");
321
- put(".mpp", "application/vnd.ms-project");
322
- put(".mpt", "application/x-project");
323
- put(".mpv", "application/x-project");
324
- put(".mpx", "application/x-project");
325
- put(".mrc", "application/marc");
326
- put(".ms", "application/x-troff-ms");
327
- put(".mv", "video/x-sgi-movie");
328
- put(".my", "audio/make");
329
- put(".mzz", "application/x-vnd.audioexplosion.mzz");
330
- put(".nap", "image/naplps");
331
- put(".naplps", "image/naplps");
332
- put(".nc", "application/x-netcdf");
333
- put(".ncm", "application/vnd.nokia.configuration-message");
334
- put(".nif", "image/x-niff");
335
- put(".niff", "image/x-niff");
336
- put(".nix", "application/x-mix-transfer");
337
- put(".nsc", "application/x-conference");
338
- put(".nvd", "application/x-navidoc");
339
- put(".o", "application/octet-stream");
340
- put(".oda", "application/oda");
341
- put(".omc", "application/x-omc");
342
- put(".omcd", "application/x-omcdatamaker");
343
- put(".omcr", "application/x-omcregerator");
344
- put(".p", "text/x-pascal");
345
- put(".p10", "application/pkcs10");
346
- put(".p10", "application/x-pkcs10");
347
- put(".p12", "application/pkcs-12");
348
- put(".p12", "application/x-pkcs12");
349
- put(".p7a", "application/x-pkcs7-signature");
350
- put(".p7c", "application/pkcs7-mime");
351
- put(".p7c", "application/x-pkcs7-mime");
352
- put(".p7m", "application/pkcs7-mime");
353
- put(".p7m", "application/x-pkcs7-mime");
354
- put(".p7r", "application/x-pkcs7-certreqresp");
355
- put(".p7s", "application/pkcs7-signature");
356
- put(".part", "application/pro_eng");
357
- put(".pas", "text/pascal");
358
- put(".pbm", "image/x-portable-bitmap");
359
- put(".pcl", "application/vnd.hp-pcl");
360
- put(".pcl", "application/x-pcl");
361
- put(".pct", "image/x-pict");
362
- put(".pcx", "image/x-pcx");
363
- put(".pdb", "chemical/x-pdb");
364
- put(".pdf", "application/pdf");
365
- put(".pfunk", "audio/make");
366
- put(".pfunk", "audio/make.my.funk");
367
- put(".pgm", "image/x-portable-graymap");
368
- put(".pgm", "image/x-portable-greymap");
369
- put(".pic", "image/pict");
370
- put(".pict", "image/pict");
371
- put(".pkg", "application/x-newton-compatible-pkg");
372
- put(".pko", "application/vnd.ms-pki.pko");
373
- put(".pl", "text/plain");
374
- put(".pl", "text/x-script.perl");
375
- put(".plx", "application/x-pixclscript");
376
- put(".pm", "image/x-xpixmap");
377
- put(".pm", "text/x-script.perl-module");
378
- put(".pm4", "application/x-pagemaker");
379
- put(".pm5", "application/x-pagemaker");
380
- put(".png", "image/png");
381
- put(".pnm", "application/x-portable-anymap");
382
- put(".pnm", "image/x-portable-anymap");
383
- put(".pot", "application/mspowerpoint");
384
- put(".pot", "application/vnd.ms-powerpoint");
385
- put(".pov", "model/x-pov");
386
- put(".ppa", "application/vnd.ms-powerpoint");
387
- put(".ppm", "image/x-portable-pixmap");
388
- put(".pps", "application/mspowerpoint");
389
- put(".pps", "application/vnd.ms-powerpoint");
390
- put(".ppt", "application/mspowerpoint");
391
- put(".ppt", "application/powerpoint");
392
- put(".ppt", "application/vnd.ms-powerpoint");
393
- put(".ppt", "application/x-mspowerpoint");
394
- put(".ppz", "application/mspowerpoint");
395
- put(".pre", "application/x-freelance");
396
- put(".prt", "application/pro_eng");
397
- put(".ps", "application/postscript");
398
- put(".psd", "application/octet-stream");
399
- put(".pvu", "paleovu/x-pv");
400
- put(".pwz", "application/vnd.ms-powerpoint");
401
- put(".py", "text/x-script.phyton");
402
- put(".pyc", "applicaiton/x-bytecode.python");
403
- put(".qcp", "audio/vnd.qcelp");
404
- put(".qd3", "x-world/x-3dmf");
405
- put(".qd3d", "x-world/x-3dmf");
406
- put(".qif", "image/x-quicktime");
407
- put(".qt", "video/quicktime");
408
- put(".qtc", "video/x-qtc");
409
- put(".qti", "image/x-quicktime");
410
- put(".qtif", "image/x-quicktime");
411
- put(".ra", "audio/x-pn-realaudio");
412
- put(".ra", "audio/x-pn-realaudio-plugin");
413
- put(".ra", "audio/x-realaudio");
414
- put(".ram", "audio/x-pn-realaudio");
415
- put(".ras", "application/x-cmu-raster");
416
- put(".ras", "image/cmu-raster");
417
- put(".ras", "image/x-cmu-raster");
418
- put(".rast", "image/cmu-raster");
419
- put(".rexx", "text/x-script.rexx");
420
- put(".rf", "image/vnd.rn-realflash");
421
- put(".rgb", "image/x-rgb");
422
- put(".rm", "application/vnd.rn-realmedia");
423
- put(".rm", "audio/x-pn-realaudio");
424
- put(".rmi", "audio/mid");
425
- put(".rmm", "audio/x-pn-realaudio");
426
- put(".rmp", "audio/x-pn-realaudio");
427
- put(".rmp", "audio/x-pn-realaudio-plugin");
428
- put(".rng", "application/ringing-tones");
429
- put(".rng", "application/vnd.nokia.ringing-tone");
430
- put(".rnx", "application/vnd.rn-realplayer");
431
- put(".roff", "application/x-troff");
432
- put(".rp", "image/vnd.rn-realpix");
433
- put(".rpm", "audio/x-pn-realaudio-plugin");
434
- put(".rt", "text/richtext");
435
- put(".rt", "text/vnd.rn-realtext");
436
- put(".rtf", "application/rtf");
437
- put(".rtf", "application/x-rtf");
438
- put(".rtf", "text/richtext");
439
- put(".rtx", "application/rtf");
440
- put(".rtx", "text/richtext");
441
- put(".rv", "video/vnd.rn-realvideo");
442
- put(".s", "text/x-asm");
443
- put(".s3m", "audio/s3m");
444
- put(".saveme", "application/octet-stream");
445
- }
446
-
447
- private static class MimeMappingSingleton {
448
- private static final MimeMapping INSTANCE = new MimeMapping();
449
- }
450
-
451
- public static String lookup(String path) {
452
- String ret = null;
453
- String ext = path.replaceFirst("^.*(\\.[^./]+)$", "$1");
454
-
455
- if (ext.length() > 0)
456
- ret = MimeMappingSingleton.INSTANCE.get(ext);
457
-
458
- return (ret == null ? "text/plain" : ret);
459
- }
460
- }
461
-
462
- public static int BYTE_BUF_SIZE = 4096;
463
-
464
- private ServletContext mContext;
465
- private String mPath;
466
- private ByteArrayOutputStream mBuffer;
467
- private int mSource;
468
- private String mMimeType;
469
- private File mCwd;
470
-
471
- public GolfResource(ServletContext context, String path)
472
- throws FileNotFoundException, IOException {
473
- this(context, null, path);
474
- }
475
-
476
- public GolfResource(File cwd, String path)
477
- throws FileNotFoundException, IOException {
478
- this(null, cwd, path);
479
- }
480
-
481
- protected GolfResource(ServletContext context, File cwd, String path)
482
- throws FileNotFoundException, IOException {
483
- mContext = context;
484
- mPath = path;
485
- mMimeType = MimeMapping.lookup(path);
486
- mCwd = cwd;
487
- getStream();
488
- }
489
-
490
- public int getSource() { return mSource; }
491
- public void setSource(int src) { mSource = src; }
492
- public String getMimeType() { return mMimeType; }
493
-
494
- /**
495
- * Loads contents of resource into the ByteArrayOutputStream, sets the
496
- * source member.
497
- */
498
- private void getStream() throws FileNotFoundException, IOException {
499
- byte[] buf = new byte[BYTE_BUF_SIZE];
500
-
501
- InputStream in = null;
502
- mSource = SOURCE_NONE;
503
-
504
- if (mContext != null)
505
- mPath = mPath.replaceFirst("/", "");
506
-
507
- // from the filesystem
508
- try {
509
- File theFile;
510
- if (mContext != null)
511
- theFile = new File(mContext.getRealPath(mPath));
512
- else if (mPath.startsWith("/"))
513
- theFile = new File(mPath);
514
- else
515
- theFile = new File(mCwd, mPath);
516
-
517
- if (theFile.exists())
518
- in = new FileInputStream(theFile);
519
- } catch (Exception x) { }
520
-
521
- // from the jarfile resource
522
- if (in == null)
523
- in = (mContext == null ? this : mContext).getClass().getClassLoader()
524
- .getResourceAsStream(mPath);
525
- else
526
- mSource = SOURCE_FILE;
527
-
528
- if (in == null)
529
- throw new FileNotFoundException("File not found (" + mPath + ")");
530
- else if (mSource == SOURCE_NONE)
531
- mSource = SOURCE_JAR;
532
-
533
- mBuffer = new ByteArrayOutputStream(BYTE_BUF_SIZE);
534
-
535
- int nread;
536
- while ((nread = in.read(buf)) != -1) mBuffer.write(buf, 0, nread);
537
- }
538
-
539
- /**
540
- * @see java.io.ByteArrayOutputStream#toString()
541
- */
542
- public String toString() {
543
- return mBuffer.toString();
544
- }
545
-
546
- /**
547
- * @see java.io.ByteArrayOutputStream#toString(String)
548
- */
549
- public String toString(String enc) throws UnsupportedEncodingException {
550
- return mBuffer.toString(enc);
551
- }
552
-
553
- /**
554
- * @see java.io.ByteArrayOutputStream#toByteArray()
555
- */
556
- public byte[] toByteArray() {
557
- return mBuffer.toByteArray();
558
- }
559
-
560
- /**
561
- * Converts contents of the file to an arraylist, split on "\n".
562
- *
563
- * @return the arraylist
564
- */
565
- public ArrayList<String> toArrayList() {
566
- return toArrayList("\n");
567
- }
568
-
569
- /**
570
- * Converts contents of the file to an arraylist, split on some string.
571
- *
572
- * @param c the string on which to split contents
573
- * @return the arraylist
574
- */
575
- public ArrayList<String> toArrayList(String c) {
576
- String contents = toString();
577
- ArrayList<String> ret = new ArrayList<String>();
578
- for (String s : contents.split(c))
579
- ret.add(s);
580
- return ret;
581
- }
582
- }