rubyfox-server 2.8.4.0 → 2.9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +2 -2
  3. data/lib/rubyfox/server/data/config/ExtensionManagerLock.txt +2 -0
  4. data/lib/rubyfox/server/data/config/core.xml +9 -9
  5. data/lib/rubyfox/server/data/config/crossdomain.xml +1 -1
  6. data/lib/rubyfox/server/data/config/descriptors/config_room.txt +112 -3
  7. data/lib/rubyfox/server/data/config/descriptors/config_server.txt +550 -73
  8. data/lib/rubyfox/server/data/config/descriptors/config_zone.txt +11 -2
  9. data/lib/rubyfox/server/data/config/descriptors/runtime_mmo.txt +74 -0
  10. data/lib/rubyfox/server/data/config/descriptors/runtime_room.txt +33 -4
  11. data/lib/rubyfox/server/data/config/descriptors/runtime_user.txt +1 -1
  12. data/lib/rubyfox/server/data/config/descriptors/runtime_zone.txt +37 -5
  13. data/lib/rubyfox/server/data/config/keystore.jks +0 -0
  14. data/lib/rubyfox/server/data/config/log4j.properties +5 -1
  15. data/lib/rubyfox/server/data/config/logParser.properties +30 -0
  16. data/lib/rubyfox/server/data/config/server.xml +51 -9
  17. data/lib/rubyfox/server/data/config/templates/templates.dat +0 -0
  18. data/lib/rubyfox/server/data/lib/Lib/sfs2x-lib.jar +0 -0
  19. data/lib/rubyfox/server/data/lib/httpclient-4.3.3.jar +0 -0
  20. data/lib/rubyfox/server/data/lib/httpcore-4.3.2.jar +0 -0
  21. data/lib/rubyfox/server/data/lib/jetty/VERSION.txt +7576 -0
  22. data/lib/rubyfox/server/data/lib/jetty/etc/README.spnego +62 -0
  23. data/lib/rubyfox/server/data/lib/jetty/etc/jdbcRealm.properties +72 -0
  24. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-annotations.xml +20 -0
  25. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-debug.xml +23 -0
  26. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-deploy.xml +62 -0
  27. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-http.xml +41 -0
  28. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-https.xml +47 -0
  29. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ipaccess.xml +31 -0
  30. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jaas.xml +17 -0
  31. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jmx-remote.xml +27 -0
  32. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jmx.xml +43 -0
  33. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-logging.xml +36 -0
  34. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-lowresources.xml +22 -0
  35. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-monitor.xml +30 -0
  36. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-plus.xml +26 -0
  37. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-proxy.xml +35 -0
  38. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-requestlog.xml +32 -0
  39. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-rewrite.xml +41 -0
  40. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-setuid.xml +30 -0
  41. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-spdy-proxy.xml +158 -0
  42. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-spdy.xml +153 -0
  43. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ssl.xml +41 -0
  44. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-started.xml +15 -0
  45. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-stats.xml +18 -0
  46. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-xinetd.xml +54 -0
  47. data/lib/rubyfox/server/data/lib/jetty/etc/jetty.conf +12 -0
  48. data/lib/rubyfox/server/data/lib/jetty/etc/jetty.xml +160 -0
  49. data/lib/rubyfox/server/data/lib/jetty/etc/keystore +0 -0
  50. data/lib/rubyfox/server/data/lib/jetty/etc/krb5.ini +23 -0
  51. data/lib/rubyfox/server/data/lib/jetty/etc/spnego.conf +19 -0
  52. data/lib/rubyfox/server/data/lib/jetty/etc/spnego.properties +1 -0
  53. data/lib/rubyfox/server/data/lib/jetty/etc/webdefault.xml +540 -0
  54. data/lib/rubyfox/server/data/lib/jetty/lib/asm-4.1.jar +0 -0
  55. data/lib/rubyfox/server/data/lib/jetty/lib/asm-commons-4.1.jar +0 -0
  56. data/lib/rubyfox/server/data/lib/jetty/lib/ext/.donotdelete +0 -0
  57. data/lib/rubyfox/server/data/lib/jetty/lib/jaspi/javax.security.auth.message-1.0.0.v201108011116.jar +0 -0
  58. data/lib/rubyfox/server/data/lib/jetty/lib/javax.annotation-api-1.2.jar +0 -0
  59. data/lib/rubyfox/server/data/lib/jetty/lib/javax.el-3.0.0.jar +0 -0
  60. data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp-2.3.2.jar +0 -0
  61. data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp-api-2.3.1.jar +0 -0
  62. data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar +0 -0
  63. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-annotations-9.1.1.v20140108.jar +0 -0
  64. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-client-9.1.1.v20140108.jar +0 -0
  65. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-continuation-9.1.1.v20140108.jar +0 -0
  66. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-deploy-9.1.1.v20140108.jar +0 -0
  67. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-http-9.1.1.v20140108.jar +0 -0
  68. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-io-9.1.1.v20140108.jar +0 -0
  69. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jaas-9.1.1.v20140108.jar +0 -0
  70. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jaspi-9.1.1.v20140108.jar +0 -0
  71. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jmx-9.1.1.v20140108.jar +0 -0
  72. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jndi-9.1.1.v20140108.jar +0 -0
  73. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jsp-jdt-2.3.3.jar +0 -0
  74. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-plus-9.1.1.v20140108.jar +0 -0
  75. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-proxy-9.1.1.v20140108.jar +0 -0
  76. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-rewrite-9.1.1.v20140108.jar +0 -0
  77. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-schemas-3.1.jar +0 -0
  78. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-security-9.1.1.v20140108.jar +0 -0
  79. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-server-9.1.1.v20140108.jar +0 -0
  80. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-servlet-9.1.1.v20140108.jar +0 -0
  81. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-servlets-9.1.1.v20140108.jar +0 -0
  82. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-util-9.1.1.v20140108.jar +0 -0
  83. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-webapp-9.1.1.v20140108.jar +0 -0
  84. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-xml-9.1.1.v20140108.jar +0 -0
  85. data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.activation-1.1.0.v201105071233.jar +0 -0
  86. data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.mail.glassfish-1.4.1.v201005082020.jar +0 -0
  87. data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.transaction-api-1.2.jar +0 -0
  88. data/lib/rubyfox/server/data/lib/jetty/lib/monitor/jetty-monitor-9.1.1.v20140108.jar +0 -0
  89. data/lib/rubyfox/server/data/lib/jetty/lib/org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar +0 -0
  90. data/lib/rubyfox/server/data/lib/jetty/lib/org.eclipse.jdt.core-3.8.2.v20130121.jar +0 -0
  91. data/lib/rubyfox/server/data/lib/jetty/lib/servlet-api-3.1.jar +0 -0
  92. data/lib/rubyfox/server/data/lib/jetty/lib/setuid/jetty-setuid-java-1.0.1.jar +0 -0
  93. data/lib/rubyfox/server/data/lib/jetty/lib/setuid/libsetuid-linux.so +0 -0
  94. data/lib/rubyfox/server/data/lib/jetty/lib/setuid/libsetuid-osx.so +0 -0
  95. data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-client-9.1.1.v20140108.jar +0 -0
  96. data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-core-9.1.1.v20140108.jar +0 -0
  97. data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-http-common-9.1.1.v20140108.jar +0 -0
  98. data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-http-server-9.1.1.v20140108.jar +0 -0
  99. data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-server-9.1.1.v20140108.jar +0 -0
  100. data/lib/rubyfox/server/data/lib/jetty/lib/start.jar +0 -0
  101. data/lib/rubyfox/server/data/lib/jetty/lib/websocket-api-9.1.1.v20140108.jar +0 -0
  102. data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax-websocket-client-impl-9.1.1.v20140108.jar +0 -0
  103. data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax-websocket-server-impl-9.1.1.v20140108.jar +0 -0
  104. data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax.websocket-api-1.0.jar +0 -0
  105. data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-client-9.1.1.v20140108.jar +0 -0
  106. data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-common-9.1.1.v20140108.jar +0 -0
  107. data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-server-9.1.1.v20140108.jar +0 -0
  108. data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-servlet-9.1.1.v20140108.jar +0 -0
  109. data/lib/rubyfox/server/data/lib/jetty/license-eplv10-aslv20.html +576 -0
  110. data/lib/rubyfox/server/data/lib/jetty/modules/.donotdelete +0 -0
  111. data/lib/rubyfox/server/data/lib/jetty/modules/annotations.mod +17 -0
  112. data/lib/rubyfox/server/data/lib/jetty/modules/client.mod +6 -0
  113. data/lib/rubyfox/server/data/lib/jetty/modules/continuation.mod +6 -0
  114. data/lib/rubyfox/server/data/lib/jetty/modules/debug.mod +9 -0
  115. data/lib/rubyfox/server/data/lib/jetty/modules/deploy.mod +15 -0
  116. data/lib/rubyfox/server/data/lib/jetty/modules/ext.mod +11 -0
  117. data/lib/rubyfox/server/data/lib/jetty/modules/http.mod +14 -0
  118. data/lib/rubyfox/server/data/lib/jetty/modules/https.mod +16 -0
  119. data/lib/rubyfox/server/data/lib/jetty/modules/ipaccess.mod +9 -0
  120. data/lib/rubyfox/server/data/lib/jetty/modules/jaas.mod +16 -0
  121. data/lib/rubyfox/server/data/lib/jetty/modules/jaspi.mod +10 -0
  122. data/lib/rubyfox/server/data/lib/jetty/modules/jmx-remote.mod +18 -0
  123. data/lib/rubyfox/server/data/lib/jetty/modules/jmx.mod +10 -0
  124. data/lib/rubyfox/server/data/lib/jetty/modules/jndi.mod +11 -0
  125. data/lib/rubyfox/server/data/lib/jetty/modules/jsp.mod +14 -0
  126. data/lib/rubyfox/server/data/lib/jetty/modules/jvm.mod +23 -0
  127. data/lib/rubyfox/server/data/lib/jetty/modules/logging.mod +27 -0
  128. data/lib/rubyfox/server/data/lib/jetty/modules/lowresources.mod +18 -0
  129. data/lib/rubyfox/server/data/lib/jetty/modules/monitor.mod +13 -0
  130. data/lib/rubyfox/server/data/lib/jetty/modules/npn.mod +32 -0
  131. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_10.mod +9 -0
  132. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_11.mod +9 -0
  133. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_13.mod +9 -0
  134. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_15.mod +9 -0
  135. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_17.mod +9 -0
  136. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_21.mod +9 -0
  137. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_25.mod +9 -0
  138. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_4.mod +9 -0
  139. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_40.mod +9 -0
  140. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_45.mod +9 -0
  141. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_5.mod +9 -0
  142. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_6.mod +9 -0
  143. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_7.mod +9 -0
  144. data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_9.mod +9 -0
  145. data/lib/rubyfox/server/data/lib/jetty/modules/plus.mod +14 -0
  146. data/lib/rubyfox/server/data/lib/jetty/modules/proxy.mod +22 -0
  147. data/lib/rubyfox/server/data/lib/jetty/modules/requestlog.mod +26 -0
  148. data/lib/rubyfox/server/data/lib/jetty/modules/resources.mod +10 -0
  149. data/lib/rubyfox/server/data/lib/jetty/modules/rewrite.mod +12 -0
  150. data/lib/rubyfox/server/data/lib/jetty/modules/security.mod +9 -0
  151. data/lib/rubyfox/server/data/lib/jetty/modules/server.mod +38 -0
  152. data/lib/rubyfox/server/data/lib/jetty/modules/servlet.mod +9 -0
  153. data/lib/rubyfox/server/data/lib/jetty/modules/servlets.mod +10 -0
  154. data/lib/rubyfox/server/data/lib/jetty/modules/setuid.mod +19 -0
  155. data/lib/rubyfox/server/data/lib/jetty/modules/spdy.mod +23 -0
  156. data/lib/rubyfox/server/data/lib/jetty/modules/ssl.mod +29 -0
  157. data/lib/rubyfox/server/data/lib/jetty/modules/stats.mod +9 -0
  158. data/lib/rubyfox/server/data/lib/jetty/modules/webapp.mod +10 -0
  159. data/lib/rubyfox/server/data/lib/jetty/modules/websocket.mod +12 -0
  160. data/lib/rubyfox/server/data/lib/jetty/modules/xinetd.mod +17 -0
  161. data/lib/rubyfox/server/data/lib/jetty/notice.html +111 -0
  162. data/lib/rubyfox/server/data/lib/jetty/resources/.keep +0 -0
  163. data/lib/rubyfox/server/data/lib/jetty/start.d/README.TXT +24 -0
  164. data/lib/rubyfox/server/data/lib/jetty/start.d/http.ini +7 -0
  165. data/lib/rubyfox/server/data/lib/jetty/start.d/https.ini +9 -0
  166. data/lib/rubyfox/server/data/lib/jetty/start.d/ssl.ini +19 -0
  167. data/lib/rubyfox/server/data/lib/jetty/start.ini +84 -0
  168. data/lib/rubyfox/server/data/lib/jetty/webapps/.keep +0 -0
  169. data/lib/rubyfox/server/data/lib/logs-analysis-app.jar +0 -0
  170. data/lib/rubyfox/server/data/lib/netty-3.9.0.Final.jar +0 -0
  171. data/lib/rubyfox/server/data/lib/scala-library.jar +0 -0
  172. data/lib/rubyfox/server/data/lib/sfs2x-admin.jar +0 -0
  173. data/lib/rubyfox/server/data/lib/sfs2x-core.jar +0 -0
  174. data/lib/rubyfox/server/data/lib/sfs2x-lib.jar +0 -0
  175. data/lib/rubyfox/server/data/lib/sfs2x-util.jar +0 -0
  176. data/lib/rubyfox/server/data/lib/sfs2x.jar +0 -0
  177. data/lib/rubyfox/server/data/lib/slf4j-api-1.7.5.jar +0 -0
  178. data/lib/rubyfox/server/data/lib/slf4j-log4j12-1.7.5.jar +0 -0
  179. data/lib/rubyfox/server/data/sfs2x-service +9 -9
  180. data/lib/rubyfox/server/data/sfs2x-service.vmoptions +1 -1
  181. data/lib/rubyfox/server/data/sfs2x.sh +6 -6
  182. data/lib/rubyfox/server/data/www/root/admin/AdminTool.swf +0 -0
  183. data/lib/rubyfox/server/data/www/root/admin/ReleaseNotes.txt +23 -0
  184. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bannedIPs.png +0 -0
  185. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bannedUsernames.png +0 -0
  186. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bookmarks.png +0 -0
  187. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bootLog.png +0 -0
  188. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/connection.png +0 -0
  189. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/globalServerStatus.png +0 -0
  190. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/logsDownload.png +0 -0
  191. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/mMOSettings.png +0 -0
  192. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/permissionsAndEvents.png +0 -0
  193. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomExtension.png +0 -0
  194. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomVariables.png +0 -0
  195. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeLog.png +0 -0
  196. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeRoomSettings.png +0 -0
  197. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeUserSettings.png +0 -0
  198. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeZoneSettings.png +0 -0
  199. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsApplication.png +0 -0
  200. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsDemographics.png +0 -0
  201. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsExceptions.png +0 -0
  202. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsOverview.png +0 -0
  203. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsTechnology.png +0 -0
  204. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/systemQueueStatus.png +0 -0
  205. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/threadPools.png +0 -0
  206. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/userManagement.png +0 -0
  207. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/zoneExtension.png +0 -0
  208. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/zoneTraffic.png +0 -0
  209. data/lib/rubyfox/server/data/www/root/admin/index.html +4 -16
  210. data/lib/rubyfox/server/data/www/root/admin/modules/Analytics/Analytics.swf +0 -0
  211. data/lib/rubyfox/server/data/www/root/admin/modules/BanManager/BanManager.swf +0 -0
  212. data/lib/rubyfox/server/data/www/root/admin/modules/BlueBoxMonitor/BlueBoxMonitor.swf +0 -0
  213. data/lib/rubyfox/server/data/www/root/admin/modules/Dashboard/Dashboard.swf +0 -0
  214. data/lib/rubyfox/server/data/www/root/admin/modules/ExtensionManager/ExtensionManager.swf +0 -0
  215. data/lib/rubyfox/server/data/www/root/admin/modules/ExtensionManager/icon.png +0 -0
  216. data/lib/rubyfox/server/data/www/root/admin/modules/LicenseManager/LicenseManager.swf +0 -0
  217. data/lib/rubyfox/server/data/www/root/admin/modules/LogViewer/LogViewer.swf +0 -0
  218. data/lib/rubyfox/server/data/www/root/admin/modules/ServerConfigurator/ServerConfigurator.swf +0 -0
  219. data/lib/rubyfox/server/data/www/root/admin/modules/ZoneConfigurator/ZoneConfigurator.swf +0 -0
  220. data/lib/rubyfox/server/data/www/root/admin/modules/ZoneMonitor/ZoneMonitor.swf +0 -0
  221. data/lib/rubyfox/server/data/www/root/admin/modules/config.xml +1 -0
  222. data/lib/rubyfox/server/data/www/root/favicon.ico +0 -0
  223. data/lib/rubyfox/server/data/www/root/favicon.png +0 -0
  224. data/lib/rubyfox/server/data/www/sfs2x-ws.war +0 -0
  225. data/lib/rubyfox/server/data/www/sfs2x-ws.xml +30 -0
  226. data/lib/rubyfox/server/version.rb +1 -1
  227. data/rubyfox-server.gemspec +1 -0
  228. metadata +171 -48
  229. data/.rvmrc +0 -1
  230. data/lib/rubyfox/server/data/config/jetty/jetty.xml +0 -214
  231. data/lib/rubyfox/server/data/config/jetty/realm.properties +0 -21
  232. data/lib/rubyfox/server/data/config/jetty/webdefault.xml +0 -410
  233. data/lib/rubyfox/server/data/config/myprop.properties +0 -5
  234. data/lib/rubyfox/server/data/data/bannedusers/users.bin +0 -0
  235. data/lib/rubyfox/server/data/data/buddylists/BasicExamples/7364666773646667 +0 -0
  236. data/lib/rubyfox/server/data/lib/Jetty/ant-1.6.5.jar +0 -0
  237. data/lib/rubyfox/server/data/lib/Jetty/core-3.1.1.jar +0 -0
  238. data/lib/rubyfox/server/data/lib/Jetty/jetty-6.1.26.jar +0 -0
  239. data/lib/rubyfox/server/data/lib/Jetty/jetty-util-6.1.26.jar +0 -0
  240. data/lib/rubyfox/server/data/lib/Jetty/jsp-2.1-glassfish-2.1.v20091210.jar +0 -0
  241. data/lib/rubyfox/server/data/lib/Jetty/jsp-2.1-jetty-6.1.26.jar +0 -0
  242. data/lib/rubyfox/server/data/lib/Jetty/jsp-api-2.1-glassfish-2.1.v20091210.jar +0 -0
  243. data/lib/rubyfox/server/data/lib/Jetty/servlet-api-2.5-20081211.jar +0 -0
  244. data/lib/rubyfox/server/data/lib/extras/slf4j-jdk14-1.5.10.jar +0 -0
  245. data/lib/rubyfox/server/data/lib/httpclient-4.0.3.jar +0 -0
  246. data/lib/rubyfox/server/data/lib/httpcore-4.0.1.jar +0 -0
  247. data/lib/rubyfox/server/data/lib/jconsole/COPYING.txt +0 -504
  248. data/lib/rubyfox/server/data/lib/jconsole/bug_test_case.py +0 -49
  249. data/lib/rubyfox/server/data/lib/jconsole/console$py.class +0 -0
  250. data/lib/rubyfox/server/data/lib/jconsole/console.py +0 -439
  251. data/lib/rubyfox/server/data/lib/jconsole/history$py.class +0 -0
  252. data/lib/rubyfox/server/data/lib/jconsole/history.py +0 -82
  253. data/lib/rubyfox/server/data/lib/jconsole/history_test_case.py +0 -133
  254. data/lib/rubyfox/server/data/lib/jconsole/introspect$py.class +0 -0
  255. data/lib/rubyfox/server/data/lib/jconsole/introspect.py +0 -373
  256. data/lib/rubyfox/server/data/lib/jconsole/introspect_test_case.py +0 -19
  257. data/lib/rubyfox/server/data/lib/jconsole/issue_17_test_case.py +0 -36
  258. data/lib/rubyfox/server/data/lib/jconsole/jintrospect$py.class +0 -0
  259. data/lib/rubyfox/server/data/lib/jconsole/jintrospect.py +0 -316
  260. data/lib/rubyfox/server/data/lib/jconsole/jintrospect_test_case.py +0 -107
  261. data/lib/rubyfox/server/data/lib/jconsole/popup$py.class +0 -0
  262. data/lib/rubyfox/server/data/lib/jconsole/popup.py +0 -178
  263. data/lib/rubyfox/server/data/lib/jconsole/run_tests.py +0 -8
  264. data/lib/rubyfox/server/data/lib/jconsole/static_test_case.py +0 -36
  265. data/lib/rubyfox/server/data/lib/jconsole/testcase.py +0 -38
  266. data/lib/rubyfox/server/data/lib/jconsole/tip$py.class +0 -0
  267. data/lib/rubyfox/server/data/lib/jconsole/tip.py +0 -47
  268. data/lib/rubyfox/server/data/lib/slf4j-api-1.5.10.jar +0 -0
  269. data/lib/rubyfox/server/data/lib/slf4j-log4j12.jar +0 -0
  270. data/lib/rubyfox/server/data/lib/ws-engine.jar +0 -0
  271. data/lib/rubyfox/server/data/www/BlueBox.war +0 -0
  272. data/lib/rubyfox/server/data/www/root/admin/AdminTool.html +0 -120
@@ -1,49 +0,0 @@
1
- import unittest
2
- import introspect
3
- import jintrospect
4
-
5
- class BugTestCase(unittest.TestCase):
6
-
7
- def testPythonStackOverflow(self):
8
- """
9
- jythonconsole-0.0.1 has a stack overflow when autocomplete with Jython-2.2b1
10
-
11
- import sys
12
- sys. <-- autocomplete starts and then the following stacktrace
13
-
14
- Traceback (most recent call last):
15
- File "bug_test_case.py", line 8, in testJython22b1Bug
16
- list = jintrospect.getAutoCompleteList("sys.", locals())
17
- File "/Users/don/jythonconsole/jintrospect.py", line 90, in getAutoCompleteList
18
- attributes = getAttributeNames(object, includeMagic, includeSingle, includeDouble)
19
- File "/Users/don/jythonconsole/introspect.py", line 61, in getAttributeNames
20
- attrdict = getAllAttributeNames(object)
21
- File "/Users/don/jythonconsole/introspect.py", line 125, in getAllAttributeNames
22
- attrdict.update(getAllAttributeNames(klass))
23
- ...
24
- File "/Users/don/jythonconsole/introspect.py", line 138, in getAllAttributeNames
25
- attrdict.update(getAllAttributeNames(base))
26
- File "/Users/don/jythonconsole/introspect.py", line 125, in getAllAttributeNames
27
- attrdict.update(getAllAttributeNames(klass))
28
- File "/Users/don/jythonconsole/introspect.py", line 138, in getAllAttributeNames
29
- attrdict.update(getAllAttributeNames(base))
30
- File "/Users/don/jythonconsole/introspect.py", line 125, in getAllAttributeNames
31
- attrdict.update(getAllAttributeNames(klass))
32
- File "/Users/don/jythonconsole/introspect.py", line 101, in getAllAttributeNames
33
- wakeupcall = dir(object)
34
- java.lang.StackOverflowError: java.lang.StackOverflowError
35
- """
36
- dict = introspect.getAllAttributeNames("sys")
37
- # if the bug is happening you'll never get here
38
- # you'll get a stack overflow instead
39
- self.assert_(len(dict) > 0)
40
-
41
- # method completion for python strings was failing in 0.0.2 with python2.b1
42
- def testAutoCompleteString(self):
43
- f = "foo"
44
- list = jintrospect.getAutoCompleteList("f", locals())
45
- self.assert_(len(list) > 0)
46
- self.assert_(list.index("startswith") > 0)
47
-
48
- if __name__ == '__main__':
49
- unittest.main()
@@ -1,439 +0,0 @@
1
- """
2
- Jython Console with Code Completion
3
-
4
- This uses the basic Jython Interactive Interpreter.
5
- The UI uses code from Carlos Quiroz's 'Jython Interpreter for JEdit' http://www.jedit.org
6
- """
7
-
8
- from javax.swing import JFrame, JScrollPane, JTextPane, Action, KeyStroke, WindowConstants
9
- from javax.swing.text import JTextComponent, TextAction, SimpleAttributeSet, StyleConstants
10
- from java.awt import Color, Font, Point
11
- from java.awt.event import InputEvent, KeyEvent, WindowAdapter
12
- from java.lang import System
13
- from java.awt import Toolkit
14
- from java.awt.datatransfer import DataFlavor
15
-
16
- import jintrospect
17
- from popup import Popup
18
- from tip import Tip
19
- from history import History
20
-
21
- import sys
22
- from code import InteractiveInterpreter
23
- from org.python.util import InteractiveConsole
24
-
25
- __author__ = "Don Coleman <dcoleman@chariotsolutions.com>"
26
-
27
- import re
28
- # allows multiple imports like "from java.lang import String, Properties"
29
- _re_from_import = re.compile("from\s+\S+\s+import(\s+\S+,\s?)?")
30
-
31
- try:
32
- True, False
33
- except NameError:
34
- (True, False) = (1, 0)
35
-
36
- class Console:
37
- PROMPT = sys.ps1
38
- PROCESS = sys.ps2
39
- BANNER = ["Jython Completion Shell", InteractiveConsole.getDefaultBanner()]
40
-
41
- include_single_underscore_methods = False
42
- include_double_underscore_methods = False
43
-
44
- def __init__(self, namespace=None):
45
- """
46
- Create a Jython Console.
47
- namespace is an optional and should be a dictionary or Map
48
- """
49
- self.history = History(self)
50
-
51
- if namespace != None:
52
- self.locals = namespace
53
- else:
54
- self.locals = {}
55
-
56
- self.buffer = [] # buffer for multi-line commands
57
-
58
- self.interp = Interpreter(self, self.locals)
59
- sys.stdout = StdOutRedirector(self)
60
-
61
- self.text_pane = JTextPane(keyTyped = self.keyTyped, keyPressed = self.keyPressed)
62
- self.__initKeyMap()
63
-
64
- self.doc = self.text_pane.document
65
- self.__propertiesChanged()
66
- self.__inittext()
67
- self.initialLocation = self.doc.createPosition(self.doc.length-1)
68
-
69
- # Don't pass frame to popups. JWindows with null owners are not focusable
70
- # this fixes the focus problem on Win32, but make the mouse problem worse
71
- self.popup = Popup(None, self.text_pane)
72
- self.tip = Tip(None)
73
-
74
- # get fontmetrics info so we can position the popup
75
- metrics = self.text_pane.getFontMetrics(self.text_pane.getFont())
76
- self.dotWidth = metrics.charWidth('.')
77
- self.textHeight = metrics.getHeight()
78
-
79
- # add some handles to our objects
80
- self.locals['console'] = self
81
-
82
- def insertText(self, text):
83
- """insert text at the current caret position"""
84
- # seems like there should be a better way to do this....
85
- # might be better as a method on the text component?
86
- caretPosition = self.text_pane.getCaretPosition()
87
- self.text_pane.select(caretPosition, caretPosition)
88
- self.text_pane.replaceSelection(text)
89
- self.text_pane.setCaretPosition(caretPosition + len(text))
90
-
91
- def getText(self):
92
- """get text from last line of console"""
93
- offsets = self.__lastLine()
94
- text = self.doc.getText(offsets[0], offsets[1]-offsets[0])
95
- return text.rstrip()
96
-
97
- def getDisplayPoint(self):
98
- """Get the point where the popup window should be displayed"""
99
- screenPoint = self.text_pane.getLocationOnScreen()
100
- caretPoint = self.text_pane.caret.getMagicCaretPosition()
101
-
102
- # BUG: sometimes caretPoint is None
103
- # To duplicate type "java.aw" and hit '.' to complete selection while popup is visible
104
-
105
- x = screenPoint.getX() + caretPoint.getX() + self.dotWidth
106
- y = screenPoint.getY() + caretPoint.getY() + self.textHeight
107
- return Point(int(x),int(y))
108
-
109
- def hide(self, event=None):
110
- """Hide the popup or tip window if visible"""
111
- if self.popup.visible:
112
- self.popup.hide()
113
- if self.tip.visible:
114
- self.tip.hide()
115
-
116
- def hideTip(self, event=None):
117
- self.tip.hide()
118
- self.insertText(')')
119
-
120
- def showTip(self, event=None):
121
- # get the display point before writing text
122
- # otherwise magicCaretPosition is None
123
- displayPoint = self.getDisplayPoint()
124
-
125
- if self.popup.visible:
126
- self.popup.hide()
127
-
128
- line = self.getText()
129
-
130
- self.insertText('(')
131
-
132
- (name, argspec, tip) = jintrospect.getCallTipJava(line, self.locals)
133
-
134
- if tip:
135
- self.tip.showTip(tip, displayPoint)
136
-
137
- def showPopup(self, event=None):
138
- """show code completion popup"""
139
-
140
- try:
141
- line = self.getText()
142
- list = jintrospect.getAutoCompleteList(line, self.locals, includeSingle=self.include_single_underscore_methods, includeDouble=self.include_double_underscore_methods)
143
- if len(list) > 0:
144
- self.popup.showMethodCompletionList(list, self.getDisplayPoint())
145
-
146
- except Exception, e:
147
- print >> sys.stderr, "Error getting completion list: ", e
148
- #traceback.print_exc(file=sys.stderr)
149
-
150
- def inLastLine(self, include = 1):
151
- """ Determines whether the cursor is in the last line """
152
- limits = self.__lastLine()
153
- caret = self.text_pane.caretPosition
154
- if self.text_pane.selectedText:
155
- caret = self.text_pane.selectionStart
156
- if include:
157
- return (caret >= limits[0] and caret <= limits[1])
158
- else:
159
- return (caret > limits[0] and caret <= limits[1])
160
-
161
- def enter(self, event=None):
162
- """ Triggered when enter is pressed """
163
- text = self.getText()
164
- self.buffer.append(text)
165
- source = "\n".join(self.buffer)
166
- more = self.interp.runsource(source)
167
- if more:
168
- self.printOnProcess()
169
- else:
170
- self.resetbuffer()
171
- self.printPrompt()
172
- self.history.append(text)
173
-
174
- self.hide()
175
-
176
- def quit(self, event=None):
177
- sys.exit()
178
-
179
- def resetbuffer(self):
180
- self.buffer = []
181
-
182
- def home(self, event):
183
- """ Triggered when HOME is pressed """
184
- if self.inLastLine():
185
- # go to end of PROMPT
186
- self.text_pane.caretPosition = self.__lastLine()[0]
187
- else:
188
- lines = self.doc.rootElements[0].elementCount
189
- for i in xrange(0,lines-1):
190
- offsets = (self.doc.rootElements[0].getElement(i).startOffset, \
191
- self.doc.rootElements[0].getElement(i).endOffset)
192
- line = self.doc.getText(offsets[0], offsets[1]-offsets[0])
193
- if self.text_pane.caretPosition >= offsets[0] and \
194
- self.text_pane.caretPosition <= offsets[1]:
195
- if line.startswith(Console.PROMPT) or line.startswith(Console.PROCESS):
196
- self.text_pane.caretPosition = offsets[0] + len(Console.PROMPT)
197
- else:
198
- self.text_pane.caretPosition = offsets[0]
199
-
200
- def end(self, event):
201
- if self.inLastLine():
202
- self.text_pane.caretPosition = self.__lastLine()[1] - 1
203
-
204
- # TODO look using text_pane replace selection like self.insertText
205
- def replaceRow(self, text):
206
- """ Replaces the last line of the textarea with text """
207
- offset = self.__lastLine()
208
- last = self.doc.getText(offset[0], offset[1]-offset[0])
209
- if last != "\n":
210
- self.doc.remove(offset[0], offset[1]-offset[0]-1)
211
- self.__addOutput(self.infoColor, text)
212
-
213
- def delete(self, event):
214
- """ Intercepts delete events only allowing it to work in the last line """
215
- if self.inLastLine():
216
- if self.text_pane.selectedText:
217
- self.doc.remove(self.text_pane.selectionStart, self.text_pane.selectionEnd - self.text_pane.selectionStart)
218
- elif self.text_pane.caretPosition < self.doc.length:
219
- self.doc.remove(self.text_pane.caretPosition, 1)
220
-
221
- def backSpaceListener(self, event=None):
222
- """ Don't allow backspace or left arrow to go over prompt """
223
- onFirstPosition = self.text_pane.getCaretPosition() <= self.__lastLine()[0]
224
- if onFirstPosition and not self.text_pane.selectedText:
225
- event.consume()
226
-
227
- def spaceTyped(self, event=None):
228
- """check we we should complete on the space key"""
229
- matches = _re_from_import.match(self.getText())
230
- if matches:
231
- self.showPopup()
232
-
233
- def killToEndLine(self, event=None):
234
- if self.inLastLine():
235
- caretPosition = self.text_pane.getCaretPosition()
236
- self.text_pane.setSelectionStart(caretPosition)
237
- self.text_pane.setSelectionEnd(self.__lastLine()[1] - 1)
238
- self.text_pane.cut()
239
-
240
- def paste(self, event=None):
241
- # if getText was smarter, this method would be unnecessary
242
- if self.inLastLine():
243
- clipboard = Toolkit.getDefaultToolkit().getSystemClipboard()
244
- clipboard.getContents(self.text_pane)
245
- contents = clipboard.getData(DataFlavor.stringFlavor)
246
-
247
- lines = contents.split("\n")
248
- for line in lines:
249
- self.insertText(line)
250
- if len(lines) > 1:
251
- self.enter()
252
-
253
- def keyTyped(self, event):
254
- #print >> sys.stderr, "keyTyped", event.getKeyCode()
255
- if not self.inLastLine():
256
- event.consume()
257
-
258
- def keyPressed(self, event):
259
- if self.popup.visible:
260
- self.popup.key(event)
261
- #print >> sys.stderr, "keyPressed", event.getKeyCode()
262
- if event.keyCode == KeyEvent.VK_BACK_SPACE or event.keyCode == KeyEvent.VK_LEFT:
263
- self.backSpaceListener(event)
264
-
265
- def keyboardInterrupt(self, event=None):
266
- """ Raises a KeyboardInterrupt"""
267
- self.hide()
268
- self.interp.runsource("raise KeyboardInterrupt\n")
269
- self.resetbuffer()
270
- self.printPrompt()
271
-
272
- # TODO refactor me
273
- def write(self, text):
274
- self.__addOutput(self.infoColor, text)
275
-
276
- def printResult(self, msg):
277
- """ Prints the results of an operation """
278
- self.__addOutput(self.text_pane.foreground, "\n" + str(msg))
279
-
280
- def printError(self, msg):
281
- self.__addOutput(self.errorColor, "\n" + str(msg))
282
-
283
- def printOnProcess(self):
284
- """ Prints the process symbol """
285
- self.__addOutput(self.infoColor, "\n" + Console.PROCESS)
286
-
287
- def printPrompt(self):
288
- """ Prints the prompt """
289
- self.__addOutput(self.infoColor, "\n" + Console.PROMPT)
290
-
291
- def __addOutput(self, color, msg):
292
- """ Adds the output to the text area using a given color """
293
- from javax.swing.text import BadLocationException
294
- style = SimpleAttributeSet()
295
-
296
- if color:
297
- style.addAttribute(StyleConstants.Foreground, color)
298
-
299
- self.doc.insertString(self.doc.length, msg, style)
300
- self.text_pane.caretPosition = self.doc.length
301
-
302
- def __propertiesChanged(self):
303
- """ Detects when the properties have changed """
304
- self.text_pane.background = Color.white #jEdit.getColorProperty("jython.bgColor")
305
- self.text_pane.foreground = Color.blue #jEdit.getColorProperty("jython.resultColor")
306
- self.infoColor = Color.black #jEdit.getColorProperty("jython.textColor")
307
- self.errorColor = Color.red # jEdit.getColorProperty("jython.errorColor")
308
-
309
- family = "Monospaced" # jEdit.getProperty("jython.font", "Monospaced")
310
- size = 14 #jEdit.getIntegerProperty("jython.fontsize", 14)
311
- style = Font.PLAIN #jEdit.getIntegerProperty("jython.fontstyle", Font.PLAIN)
312
- self.text_pane.setFont(Font(family,style,size))
313
-
314
- def __inittext(self):
315
- """ Inserts the initial text with the jython banner """
316
- self.doc.remove(0, self.doc.length)
317
- for line in "\n".join(Console.BANNER):
318
- self.__addOutput(self.infoColor, line)
319
- self.printPrompt()
320
- self.text_pane.requestFocus()
321
-
322
- def __initKeyMap(self):
323
- os_name = System.getProperty("os.name")
324
- if os_name.startswith("Win"):
325
- exit_key = KeyEvent.VK_Z
326
- interrupt_key = KeyEvent.VK_PAUSE # BREAK
327
- else:
328
- exit_key = KeyEvent.VK_D
329
- interrupt_key = KeyEvent.VK_C
330
-
331
- keyBindings = [
332
- (KeyEvent.VK_ENTER, 0, "jython.enter", self.enter),
333
- (KeyEvent.VK_DELETE, 0, "jython.delete", self.delete),
334
- (KeyEvent.VK_HOME, 0, "jython.home", self.home),
335
- (KeyEvent.VK_LEFT, InputEvent.META_DOWN_MASK, "jython.home", self.home),
336
- (KeyEvent.VK_UP, 0, "jython.up", self.history.historyUp),
337
- (KeyEvent.VK_DOWN, 0, "jython.down", self.history.historyDown),
338
- (KeyEvent.VK_PERIOD, 0, "jython.showPopup", self.showPopup),
339
- (KeyEvent.VK_ESCAPE, 0, "jython.hide", self.hide),
340
-
341
- ('(', 0, "jython.showTip", self.showTip),
342
- (')', 0, "jython.hideTip", self.hideTip),
343
- (exit_key, InputEvent.CTRL_MASK, "jython.exit", self.quit),
344
- (KeyEvent.VK_SPACE, InputEvent.CTRL_MASK, "jython.showPopup", self.showPopup),
345
- (KeyEvent.VK_SPACE, 0, "jython.space", self.spaceTyped),
346
-
347
- # explicitly set paste since we're overriding functionality
348
- (KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), "jython.paste", self.paste),
349
-
350
- # Mac/Emacs keystrokes
351
- (KeyEvent.VK_A, InputEvent.CTRL_MASK, "jython.home", self.home),
352
- (KeyEvent.VK_E, InputEvent.CTRL_MASK, "jython.end", self.end),
353
- (KeyEvent.VK_K, InputEvent.CTRL_MASK, "jython.killToEndLine", self.killToEndLine),
354
- (KeyEvent.VK_Y, InputEvent.CTRL_MASK, "jython.paste", self.paste),
355
-
356
- (interrupt_key, InputEvent.CTRL_MASK, "jython.keyboardInterrupt", self.keyboardInterrupt),
357
- ]
358
-
359
- keymap = JTextComponent.addKeymap("jython", self.text_pane.keymap)
360
- for (key, modifier, name, function) in keyBindings:
361
- keymap.addActionForKeyStroke(KeyStroke.getKeyStroke(key, modifier), ActionDelegator(name, function))
362
- self.text_pane.keymap = keymap
363
-
364
- def __lastLine(self):
365
- """ Returns the char offests of the last line """
366
- lines = self.doc.rootElements[0].elementCount
367
- offsets = (self.doc.rootElements[0].getElement(lines-1).startOffset, \
368
- self.doc.rootElements[0].getElement(lines-1).endOffset)
369
- line = self.doc.getText(offsets[0], offsets[1]-offsets[0])
370
- if len(line) >= 4 and (line[0:4]==Console.PROMPT or line[0:4]==Console.PROCESS):
371
- return (offsets[0] + len(Console.PROMPT), offsets[1])
372
- return offsets
373
-
374
-
375
- class ActionDelegator(TextAction):
376
- """
377
- Class action delegator encapsulates a TextAction delegating the action
378
- event to a simple function
379
- """
380
- def __init__(self, name, delegate):
381
- TextAction.__init__(self, name)
382
- self.delegate = delegate
383
-
384
- def actionPerformed(self, event):
385
- if isinstance(self.delegate, Action):
386
- self.delegate.actionPerformed(event)
387
- else:
388
- self.delegate(event)
389
-
390
- class Interpreter(InteractiveInterpreter):
391
- def __init__(self, console, locals):
392
- InteractiveInterpreter.__init__(self, locals)
393
- self.console = console
394
-
395
- def write(self, data):
396
- # send all output to the textpane
397
- # KLUDGE remove trailing linefeed
398
- self.console.printError(data[:-1])
399
-
400
- # redirect stdout to the textpane
401
- class StdOutRedirector:
402
- def __init__(self, console):
403
- self.console = console
404
-
405
- def write(self, data):
406
- #print >> sys.stderr, ">>%s<<" % data
407
- if data != '\n':
408
- # This is a sucky hack. Fix printResult
409
- self.console.printResult(data)
410
-
411
- class JythonFrame(JFrame):
412
- def __init__(self):
413
- self.title = "Jython"
414
- self.size = (600, 400)
415
- try:
416
- self.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)
417
- except:
418
- # assume jdk < 1.4
419
- self.addWindowListener(KillListener())
420
- self.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE)
421
-
422
- class KillListener(WindowAdapter):
423
- """
424
- Handle EXIT_ON_CLOSE for jdk < 1.4
425
- Thanks to James Richards for this method
426
- """
427
- def windowClosed(self, evt):
428
- import java.lang.System as System
429
- System.exit(0)
430
-
431
- def main(namespace=None):
432
- frame = JythonFrame()
433
- console = Console(namespace)
434
- frame.getContentPane().add(JScrollPane(console.text_pane))
435
- frame.visible = True
436
-
437
- if __name__ == "__main__":
438
- main()
439
-