sunspot_solr 2.2.0 → 2.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (508) hide show
  1. checksums.yaml +7 -0
  2. data/bin/sunspot-solr +2 -10
  3. data/lib/sunspot/solr/installer/config_installer.rb +55 -21
  4. data/lib/sunspot/solr/installer.rb +1 -1
  5. data/lib/sunspot/solr/java.rb +1 -1
  6. data/lib/sunspot/solr/server.rb +23 -24
  7. data/solr/.gitignore +2 -0
  8. data/solr/README.txt +181 -42
  9. data/solr/bin/init.d/solr +78 -0
  10. data/solr/bin/install_solr_service.sh +270 -0
  11. data/solr/bin/oom_solr.sh +30 -0
  12. data/solr/bin/post +228 -0
  13. data/solr/bin/solr +1350 -0
  14. data/solr/bin/solr.cmd +1230 -0
  15. data/solr/bin/solr.in.cmd +97 -0
  16. data/solr/bin/solr.in.sh +117 -0
  17. data/solr/server/README.txt +110 -0
  18. data/solr/server/contexts/solr-jetty-context.xml +8 -0
  19. data/solr/server/etc/jetty-http.xml +47 -0
  20. data/solr/{etc/jetty.xml → server/etc/jetty-https-ssl.xml} +175 -167
  21. data/solr/server/etc/jetty-https.xml +53 -0
  22. data/solr/server/etc/jetty-ssl.xml +46 -0
  23. data/solr/server/etc/jetty.xml +189 -0
  24. data/solr/{etc → server/etc}/webdefault.xml +527 -527
  25. data/solr/server/lib/ext/jcl-over-slf4j-1.7.7.jar +0 -0
  26. data/solr/server/lib/ext/jul-to-slf4j-1.7.7.jar +0 -0
  27. data/solr/server/lib/ext/log4j-1.2.17.jar +0 -0
  28. data/solr/server/lib/ext/slf4j-api-1.7.7.jar +0 -0
  29. data/solr/server/lib/ext/slf4j-log4j12-1.7.7.jar +0 -0
  30. data/solr/server/lib/javax.servlet-api-3.1.0.jar +0 -0
  31. data/solr/server/lib/jetty-continuation-9.2.11.v20150529.jar +0 -0
  32. data/solr/server/lib/jetty-deploy-9.2.11.v20150529.jar +0 -0
  33. data/solr/server/lib/jetty-http-9.2.11.v20150529.jar +0 -0
  34. data/solr/server/lib/jetty-io-9.2.11.v20150529.jar +0 -0
  35. data/solr/server/lib/jetty-jmx-9.2.11.v20150529.jar +0 -0
  36. data/solr/server/lib/jetty-rewrite-9.2.11.v20150529.jar +0 -0
  37. data/solr/server/lib/jetty-security-9.2.11.v20150529.jar +0 -0
  38. data/solr/server/lib/jetty-server-9.2.11.v20150529.jar +0 -0
  39. data/solr/server/lib/jetty-servlet-9.2.11.v20150529.jar +0 -0
  40. data/solr/server/lib/jetty-servlets-9.2.11.v20150529.jar +0 -0
  41. data/solr/server/lib/jetty-util-9.2.11.v20150529.jar +0 -0
  42. data/solr/server/lib/jetty-webapp-9.2.11.v20150529.jar +0 -0
  43. data/solr/server/lib/jetty-xml-9.2.11.v20150529.jar +0 -0
  44. data/solr/server/modules/http.mod +9 -0
  45. data/solr/server/modules/https.mod +9 -0
  46. data/solr/server/modules/server.mod +11 -0
  47. data/solr/server/modules/ssl.mod +9 -0
  48. data/solr/server/resources/jetty-logging.properties +1 -0
  49. data/solr/server/resources/log4j.properties +24 -0
  50. data/solr/server/solr/README.txt +77 -0
  51. data/solr/server/solr/solr.xml +51 -0
  52. data/solr/server/solr/zoo.cfg +17 -0
  53. data/solr/server/solr-webapp/webapp/WEB-INF/lib/antlr-runtime-3.5.jar +0 -0
  54. data/solr/server/solr-webapp/webapp/WEB-INF/lib/asm-4.1.jar +0 -0
  55. data/solr/server/solr-webapp/webapp/WEB-INF/lib/asm-commons-4.1.jar +0 -0
  56. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-cli-1.2.jar +0 -0
  57. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-codec-1.10.jar +0 -0
  58. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-collections-3.2.1.jar +0 -0
  59. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-configuration-1.6.jar +0 -0
  60. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-exec-1.3.jar +0 -0
  61. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-fileupload-1.2.1.jar +0 -0
  62. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-io-2.4.jar +0 -0
  63. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-lang-2.6.jar +0 -0
  64. data/solr/server/solr-webapp/webapp/WEB-INF/lib/concurrentlinkedhashmap-lru-1.2.jar +0 -0
  65. data/solr/server/solr-webapp/webapp/WEB-INF/lib/dom4j-1.6.1.jar +0 -0
  66. data/solr/server/solr-webapp/webapp/WEB-INF/lib/guava-14.0.1.jar +0 -0
  67. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hadoop-annotations-2.6.0.jar +0 -0
  68. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hadoop-auth-2.6.0.jar +0 -0
  69. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hadoop-common-2.6.0.jar +0 -0
  70. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hadoop-hdfs-2.6.0.jar +0 -0
  71. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hppc-0.5.2.jar +0 -0
  72. data/solr/server/solr-webapp/webapp/WEB-INF/lib/htrace-core-3.0.4.jar +0 -0
  73. data/solr/server/solr-webapp/webapp/WEB-INF/lib/httpclient-4.4.1.jar +0 -0
  74. data/solr/server/solr-webapp/webapp/WEB-INF/lib/httpcore-4.4.1.jar +0 -0
  75. data/solr/server/solr-webapp/webapp/WEB-INF/lib/httpmime-4.4.1.jar +0 -0
  76. data/solr/server/solr-webapp/webapp/WEB-INF/lib/jackson-core-2.5.4.jar +0 -0
  77. data/solr/server/solr-webapp/webapp/WEB-INF/lib/jackson-dataformat-smile-2.5.4.jar +0 -0
  78. data/solr/server/solr-webapp/webapp/WEB-INF/lib/joda-time-2.2.jar +0 -0
  79. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-common-5.3.1.jar +0 -0
  80. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-kuromoji-5.3.1.jar +0 -0
  81. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-phonetic-5.3.1.jar +0 -0
  82. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-backward-codecs-5.3.1.jar +0 -0
  83. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-codecs-5.3.1.jar +0 -0
  84. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-5.3.1.jar +0 -0
  85. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-expressions-5.3.1.jar +0 -0
  86. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-grouping-5.3.1.jar +0 -0
  87. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-highlighter-5.3.1.jar +0 -0
  88. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-join-5.3.1.jar +0 -0
  89. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-memory-5.3.1.jar +0 -0
  90. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-5.3.1.jar +0 -0
  91. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-queries-5.3.1.jar +0 -0
  92. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-queryparser-5.3.1.jar +0 -0
  93. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-5.3.1.jar +0 -0
  94. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial-5.3.1.jar +0 -0
  95. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-suggest-5.3.1.jar +0 -0
  96. data/solr/server/solr-webapp/webapp/WEB-INF/lib/noggit-0.6.jar +0 -0
  97. data/solr/server/solr-webapp/webapp/WEB-INF/lib/org.restlet-2.3.0.jar +0 -0
  98. data/solr/server/solr-webapp/webapp/WEB-INF/lib/org.restlet.ext.servlet-2.3.0.jar +0 -0
  99. data/solr/server/solr-webapp/webapp/WEB-INF/lib/protobuf-java-2.5.0.jar +0 -0
  100. data/solr/server/solr-webapp/webapp/WEB-INF/lib/solr-core-5.3.1.jar +0 -0
  101. data/solr/server/solr-webapp/webapp/WEB-INF/lib/solr-solrj-5.3.1.jar +0 -0
  102. data/solr/server/solr-webapp/webapp/WEB-INF/lib/spatial4j-0.4.1.jar +0 -0
  103. data/solr/server/solr-webapp/webapp/WEB-INF/lib/stax2-api-3.1.4.jar +0 -0
  104. data/solr/server/solr-webapp/webapp/WEB-INF/lib/t-digest-3.1.jar +0 -0
  105. data/solr/server/solr-webapp/webapp/WEB-INF/lib/woodstox-core-asl-4.4.1.jar +0 -0
  106. data/solr/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.4.6.jar +0 -0
  107. data/solr/server/solr-webapp/webapp/WEB-INF/web.xml +169 -0
  108. data/solr/server/solr-webapp/webapp/WEB-INF/weblogic.xml +28 -0
  109. data/solr/server/solr-webapp/webapp/admin.html +164 -0
  110. data/solr/server/solr-webapp/webapp/css/angular/analysis.css +304 -0
  111. data/solr/server/solr-webapp/webapp/css/angular/chosen.css +465 -0
  112. data/solr/server/solr-webapp/webapp/css/angular/cloud.css +398 -0
  113. data/solr/server/solr-webapp/webapp/css/angular/common.css +724 -0
  114. data/solr/server/solr-webapp/webapp/css/angular/cores.css +233 -0
  115. data/solr/server/solr-webapp/webapp/css/angular/dataimport.css +370 -0
  116. data/solr/server/solr-webapp/webapp/css/angular/documents.css +179 -0
  117. data/solr/server/solr-webapp/webapp/css/angular/files.css +53 -0
  118. data/solr/server/solr-webapp/webapp/css/angular/index.css +206 -0
  119. data/solr/server/solr-webapp/webapp/css/angular/logging.css +376 -0
  120. data/solr/server/solr-webapp/webapp/css/angular/menu.css +321 -0
  121. data/solr/server/solr-webapp/webapp/css/angular/plugins.css +212 -0
  122. data/solr/server/solr-webapp/webapp/css/angular/query.css +162 -0
  123. data/solr/server/solr-webapp/webapp/css/angular/replication.css +500 -0
  124. data/solr/server/solr-webapp/webapp/css/angular/schema-browser.css +567 -0
  125. data/solr/server/solr-webapp/webapp/css/angular/segments.css +173 -0
  126. data/solr/server/solr-webapp/webapp/css/angular/threads.css +161 -0
  127. data/solr/server/solr-webapp/webapp/css/chosen.css +421 -0
  128. data/solr/server/solr-webapp/webapp/css/styles/analysis.css +311 -0
  129. data/solr/server/solr-webapp/webapp/css/styles/cloud.css +410 -0
  130. data/solr/server/solr-webapp/webapp/css/styles/common.css +701 -0
  131. data/solr/server/solr-webapp/webapp/css/styles/cores.css +244 -0
  132. data/solr/server/solr-webapp/webapp/css/styles/dashboard.css +155 -0
  133. data/solr/server/solr-webapp/webapp/css/styles/dataimport.css +403 -0
  134. data/solr/server/solr-webapp/webapp/css/styles/documents.css +197 -0
  135. data/solr/server/solr-webapp/webapp/css/styles/files.css +54 -0
  136. data/solr/server/solr-webapp/webapp/css/styles/index.css +207 -0
  137. data/solr/server/solr-webapp/webapp/css/styles/java-properties.css +52 -0
  138. data/solr/server/solr-webapp/webapp/css/styles/logging.css +391 -0
  139. data/solr/server/solr-webapp/webapp/css/styles/menu.css +329 -0
  140. data/solr/server/solr-webapp/webapp/css/styles/plugins.css +195 -0
  141. data/solr/server/solr-webapp/webapp/css/styles/query.css +173 -0
  142. data/solr/server/solr-webapp/webapp/css/styles/replication.css +515 -0
  143. data/solr/server/solr-webapp/webapp/css/styles/schema-browser.css +578 -0
  144. data/solr/server/solr-webapp/webapp/css/styles/segments.css +145 -0
  145. data/solr/server/solr-webapp/webapp/css/styles/threads.css +172 -0
  146. data/solr/server/solr-webapp/webapp/favicon.ico +0 -0
  147. data/solr/server/solr-webapp/webapp/img/ZeroClipboard.swf +0 -0
  148. data/solr/server/solr-webapp/webapp/img/chosen-sprite-2x.png +0 -0
  149. data/solr/server/solr-webapp/webapp/img/chosen-sprite.png +0 -0
  150. data/solr/server/solr-webapp/webapp/img/div.gif +0 -0
  151. data/solr/server/solr-webapp/webapp/img/favicon.ico +0 -0
  152. data/solr/server/solr-webapp/webapp/img/filetypes/7z.png +0 -0
  153. data/solr/server/solr-webapp/webapp/img/filetypes/README +27 -0
  154. data/solr/server/solr-webapp/webapp/img/filetypes/ai.png +0 -0
  155. data/solr/server/solr-webapp/webapp/img/filetypes/aiff.png +0 -0
  156. data/solr/server/solr-webapp/webapp/img/filetypes/asc.png +0 -0
  157. data/solr/server/solr-webapp/webapp/img/filetypes/audio.png +0 -0
  158. data/solr/server/solr-webapp/webapp/img/filetypes/bin.png +0 -0
  159. data/solr/server/solr-webapp/webapp/img/filetypes/bz2.png +0 -0
  160. data/solr/server/solr-webapp/webapp/img/filetypes/c.png +0 -0
  161. data/solr/server/solr-webapp/webapp/img/filetypes/cfc.png +0 -0
  162. data/solr/server/solr-webapp/webapp/img/filetypes/cfm.png +0 -0
  163. data/solr/server/solr-webapp/webapp/img/filetypes/chm.png +0 -0
  164. data/solr/server/solr-webapp/webapp/img/filetypes/class.png +0 -0
  165. data/solr/server/solr-webapp/webapp/img/filetypes/conf.png +0 -0
  166. data/solr/server/solr-webapp/webapp/img/filetypes/cpp.png +0 -0
  167. data/solr/server/solr-webapp/webapp/img/filetypes/cs.png +0 -0
  168. data/solr/server/solr-webapp/webapp/img/filetypes/css.png +0 -0
  169. data/solr/server/solr-webapp/webapp/img/filetypes/csv.png +0 -0
  170. data/solr/server/solr-webapp/webapp/img/filetypes/deb.png +0 -0
  171. data/solr/server/solr-webapp/webapp/img/filetypes/divx.png +0 -0
  172. data/solr/server/solr-webapp/webapp/img/filetypes/doc.png +0 -0
  173. data/solr/server/solr-webapp/webapp/img/filetypes/dot.png +0 -0
  174. data/solr/server/solr-webapp/webapp/img/filetypes/eml.png +0 -0
  175. data/solr/server/solr-webapp/webapp/img/filetypes/enc.png +0 -0
  176. data/solr/server/solr-webapp/webapp/img/filetypes/file.png +0 -0
  177. data/solr/server/solr-webapp/webapp/img/filetypes/gif.png +0 -0
  178. data/solr/server/solr-webapp/webapp/img/filetypes/gz.png +0 -0
  179. data/solr/server/solr-webapp/webapp/img/filetypes/hlp.png +0 -0
  180. data/solr/server/solr-webapp/webapp/img/filetypes/htm.png +0 -0
  181. data/solr/server/solr-webapp/webapp/img/filetypes/html.png +0 -0
  182. data/solr/server/solr-webapp/webapp/img/filetypes/image.png +0 -0
  183. data/solr/server/solr-webapp/webapp/img/filetypes/iso.png +0 -0
  184. data/solr/server/solr-webapp/webapp/img/filetypes/jar.png +0 -0
  185. data/solr/server/solr-webapp/webapp/img/filetypes/java.png +0 -0
  186. data/solr/server/solr-webapp/webapp/img/filetypes/jpeg.png +0 -0
  187. data/solr/server/solr-webapp/webapp/img/filetypes/jpg.png +0 -0
  188. data/solr/server/solr-webapp/webapp/img/filetypes/js.png +0 -0
  189. data/solr/server/solr-webapp/webapp/img/filetypes/lua.png +0 -0
  190. data/solr/server/solr-webapp/webapp/img/filetypes/m.png +0 -0
  191. data/solr/server/solr-webapp/webapp/img/filetypes/mm.png +0 -0
  192. data/solr/server/solr-webapp/webapp/img/filetypes/mov.png +0 -0
  193. data/solr/server/solr-webapp/webapp/img/filetypes/mp3.png +0 -0
  194. data/solr/server/solr-webapp/webapp/img/filetypes/mpg.png +0 -0
  195. data/solr/server/solr-webapp/webapp/img/filetypes/odc.png +0 -0
  196. data/solr/server/solr-webapp/webapp/img/filetypes/odf.png +0 -0
  197. data/solr/server/solr-webapp/webapp/img/filetypes/odg.png +0 -0
  198. data/solr/server/solr-webapp/webapp/img/filetypes/odi.png +0 -0
  199. data/solr/server/solr-webapp/webapp/img/filetypes/odp.png +0 -0
  200. data/solr/server/solr-webapp/webapp/img/filetypes/ods.png +0 -0
  201. data/solr/server/solr-webapp/webapp/img/filetypes/odt.png +0 -0
  202. data/solr/server/solr-webapp/webapp/img/filetypes/ogg.png +0 -0
  203. data/solr/server/solr-webapp/webapp/img/filetypes/pdf.png +0 -0
  204. data/solr/server/solr-webapp/webapp/img/filetypes/pgp.png +0 -0
  205. data/solr/server/solr-webapp/webapp/img/filetypes/php.png +0 -0
  206. data/solr/server/solr-webapp/webapp/img/filetypes/pl.png +0 -0
  207. data/solr/server/solr-webapp/webapp/img/filetypes/png.png +0 -0
  208. data/solr/server/solr-webapp/webapp/img/filetypes/ppt.png +0 -0
  209. data/solr/server/solr-webapp/webapp/img/filetypes/ps.png +0 -0
  210. data/solr/server/solr-webapp/webapp/img/filetypes/py.png +0 -0
  211. data/solr/server/solr-webapp/webapp/img/filetypes/ram.png +0 -0
  212. data/solr/server/solr-webapp/webapp/img/filetypes/rar.png +0 -0
  213. data/solr/server/solr-webapp/webapp/img/filetypes/rb.png +0 -0
  214. data/solr/server/solr-webapp/webapp/img/filetypes/rm.png +0 -0
  215. data/solr/server/solr-webapp/webapp/img/filetypes/rpm.png +0 -0
  216. data/solr/server/solr-webapp/webapp/img/filetypes/rtf.png +0 -0
  217. data/solr/server/solr-webapp/webapp/img/filetypes/sig.png +0 -0
  218. data/solr/server/solr-webapp/webapp/img/filetypes/sql.png +0 -0
  219. data/solr/server/solr-webapp/webapp/img/filetypes/swf.png +0 -0
  220. data/solr/server/solr-webapp/webapp/img/filetypes/sxc.png +0 -0
  221. data/solr/server/solr-webapp/webapp/img/filetypes/sxd.png +0 -0
  222. data/solr/server/solr-webapp/webapp/img/filetypes/sxi.png +0 -0
  223. data/solr/server/solr-webapp/webapp/img/filetypes/sxw.png +0 -0
  224. data/solr/server/solr-webapp/webapp/img/filetypes/tar.png +0 -0
  225. data/solr/server/solr-webapp/webapp/img/filetypes/tex.png +0 -0
  226. data/solr/server/solr-webapp/webapp/img/filetypes/tgz.png +0 -0
  227. data/solr/server/solr-webapp/webapp/img/filetypes/txt.png +0 -0
  228. data/solr/server/solr-webapp/webapp/img/filetypes/vcf.png +0 -0
  229. data/solr/server/solr-webapp/webapp/img/filetypes/video.png +0 -0
  230. data/solr/server/solr-webapp/webapp/img/filetypes/vsd.png +0 -0
  231. data/solr/server/solr-webapp/webapp/img/filetypes/wav.png +0 -0
  232. data/solr/server/solr-webapp/webapp/img/filetypes/wma.png +0 -0
  233. data/solr/server/solr-webapp/webapp/img/filetypes/wmv.png +0 -0
  234. data/solr/server/solr-webapp/webapp/img/filetypes/xls.png +0 -0
  235. data/solr/server/solr-webapp/webapp/img/filetypes/xml.png +0 -0
  236. data/solr/server/solr-webapp/webapp/img/filetypes/xpi.png +0 -0
  237. data/solr/server/solr-webapp/webapp/img/filetypes/xvid.png +0 -0
  238. data/solr/server/solr-webapp/webapp/img/filetypes/zip.png +0 -0
  239. data/solr/server/solr-webapp/webapp/img/ico/arrow-000-small.png +0 -0
  240. data/solr/server/solr-webapp/webapp/img/ico/arrow-circle.png +0 -0
  241. data/solr/server/solr-webapp/webapp/img/ico/arrow-switch.png +0 -0
  242. data/solr/server/solr-webapp/webapp/img/ico/asterisk.png +0 -0
  243. data/solr/server/solr-webapp/webapp/img/ico/battery.png +0 -0
  244. data/solr/server/solr-webapp/webapp/img/ico/block-small.png +0 -0
  245. data/solr/server/solr-webapp/webapp/img/ico/block.png +0 -0
  246. data/solr/server/solr-webapp/webapp/img/ico/book-open-text.png +0 -0
  247. data/solr/server/solr-webapp/webapp/img/ico/box.png +0 -0
  248. data/solr/server/solr-webapp/webapp/img/ico/bug.png +0 -0
  249. data/solr/server/solr-webapp/webapp/img/ico/chart.png +0 -0
  250. data/solr/server/solr-webapp/webapp/img/ico/chevron-small-expand.png +0 -0
  251. data/solr/server/solr-webapp/webapp/img/ico/chevron-small.png +0 -0
  252. data/solr/server/solr-webapp/webapp/img/ico/clipboard-list.png +0 -0
  253. data/solr/server/solr-webapp/webapp/img/ico/clipboard-paste-document-text.png +0 -0
  254. data/solr/server/solr-webapp/webapp/img/ico/clipboard-paste.png +0 -0
  255. data/solr/server/solr-webapp/webapp/img/ico/clock-select-remain.png +0 -0
  256. data/solr/server/solr-webapp/webapp/img/ico/clock-select.png +0 -0
  257. data/solr/server/solr-webapp/webapp/img/ico/construction.png +0 -0
  258. data/solr/server/solr-webapp/webapp/img/ico/cross-0.png +0 -0
  259. data/solr/server/solr-webapp/webapp/img/ico/cross-1.png +0 -0
  260. data/solr/server/solr-webapp/webapp/img/ico/cross-button.png +0 -0
  261. data/solr/server/solr-webapp/webapp/img/ico/cross.png +0 -0
  262. data/solr/server/solr-webapp/webapp/img/ico/dashboard.png +0 -0
  263. data/solr/server/solr-webapp/webapp/img/ico/database--plus.png +0 -0
  264. data/solr/server/solr-webapp/webapp/img/ico/database.png +0 -0
  265. data/solr/server/solr-webapp/webapp/img/ico/databases.png +0 -0
  266. data/solr/server/solr-webapp/webapp/img/ico/disk-black.png +0 -0
  267. data/solr/server/solr-webapp/webapp/img/ico/document-convert.png +0 -0
  268. data/solr/server/solr-webapp/webapp/img/ico/document-import.png +0 -0
  269. data/solr/server/solr-webapp/webapp/img/ico/document-list.png +0 -0
  270. data/solr/server/solr-webapp/webapp/img/ico/document-text.png +0 -0
  271. data/solr/server/solr-webapp/webapp/img/ico/documents-stack.png +0 -0
  272. data/solr/server/solr-webapp/webapp/img/ico/download-cloud.png +0 -0
  273. data/solr/server/solr-webapp/webapp/img/ico/drive-upload.png +0 -0
  274. data/solr/server/solr-webapp/webapp/img/ico/exclamation-button.png +0 -0
  275. data/solr/server/solr-webapp/webapp/img/ico/eye.png +0 -0
  276. data/solr/server/solr-webapp/webapp/img/ico/folder-export.png +0 -0
  277. data/solr/server/solr-webapp/webapp/img/ico/folder-tree.png +0 -0
  278. data/solr/server/solr-webapp/webapp/img/ico/folder.png +0 -0
  279. data/solr/server/solr-webapp/webapp/img/ico/funnel-small.png +0 -0
  280. data/solr/server/solr-webapp/webapp/img/ico/funnel.png +0 -0
  281. data/solr/server/solr-webapp/webapp/img/ico/gear.png +0 -0
  282. data/solr/server/solr-webapp/webapp/img/ico/globe-network.png +0 -0
  283. data/solr/server/solr-webapp/webapp/img/ico/globe.png +0 -0
  284. data/solr/server/solr-webapp/webapp/img/ico/hammer-screwdriver.png +0 -0
  285. data/solr/server/solr-webapp/webapp/img/ico/hammer.png +0 -0
  286. data/solr/server/solr-webapp/webapp/img/ico/hand.png +0 -0
  287. data/solr/server/solr-webapp/webapp/img/ico/highlighter-text.png +0 -0
  288. data/solr/server/solr-webapp/webapp/img/ico/home.png +0 -0
  289. data/solr/server/solr-webapp/webapp/img/ico/hourglass--exclamation.png +0 -0
  290. data/solr/server/solr-webapp/webapp/img/ico/hourglass.png +0 -0
  291. data/solr/server/solr-webapp/webapp/img/ico/inbox-document-text.png +0 -0
  292. data/solr/server/solr-webapp/webapp/img/ico/information-button.png +0 -0
  293. data/solr/server/solr-webapp/webapp/img/ico/information-small.png +0 -0
  294. data/solr/server/solr-webapp/webapp/img/ico/information-white.png +0 -0
  295. data/solr/server/solr-webapp/webapp/img/ico/information.png +0 -0
  296. data/solr/server/solr-webapp/webapp/img/ico/jar.png +0 -0
  297. data/solr/server/solr-webapp/webapp/img/ico/magnifier.png +0 -0
  298. data/solr/server/solr-webapp/webapp/img/ico/mail.png +0 -0
  299. data/solr/server/solr-webapp/webapp/img/ico/memory.png +0 -0
  300. data/solr/server/solr-webapp/webapp/img/ico/minus-button.png +0 -0
  301. data/solr/server/solr-webapp/webapp/img/ico/molecule.png +0 -0
  302. data/solr/server/solr-webapp/webapp/img/ico/network-cloud.png +0 -0
  303. data/solr/server/solr-webapp/webapp/img/ico/network-status-away.png +0 -0
  304. data/solr/server/solr-webapp/webapp/img/ico/network-status-busy.png +0 -0
  305. data/solr/server/solr-webapp/webapp/img/ico/network-status-offline.png +0 -0
  306. data/solr/server/solr-webapp/webapp/img/ico/network-status.png +0 -0
  307. data/solr/server/solr-webapp/webapp/img/ico/network.png +0 -0
  308. data/solr/server/solr-webapp/webapp/img/ico/node-design.png +0 -0
  309. data/solr/server/solr-webapp/webapp/img/ico/node-master.png +0 -0
  310. data/solr/server/solr-webapp/webapp/img/ico/node-select.png +0 -0
  311. data/solr/server/solr-webapp/webapp/img/ico/node-slave.png +0 -0
  312. data/solr/server/solr-webapp/webapp/img/ico/node.png +0 -0
  313. data/solr/server/solr-webapp/webapp/img/ico/pencil-small.png +0 -0
  314. data/solr/server/solr-webapp/webapp/img/ico/pencil.png +0 -0
  315. data/solr/server/solr-webapp/webapp/img/ico/plus-button.png +0 -0
  316. data/solr/server/solr-webapp/webapp/img/ico/processor.png +0 -0
  317. data/solr/server/solr-webapp/webapp/img/ico/prohibition.png +0 -0
  318. data/solr/server/solr-webapp/webapp/img/ico/property.png +0 -0
  319. data/solr/server/solr-webapp/webapp/img/ico/question-small-white.png +0 -0
  320. data/solr/server/solr-webapp/webapp/img/ico/question-white.png +0 -0
  321. data/solr/server/solr-webapp/webapp/img/ico/question.png +0 -0
  322. data/solr/server/solr-webapp/webapp/img/ico/receipt-invoice.png +0 -0
  323. data/solr/server/solr-webapp/webapp/img/ico/receipt.png +0 -0
  324. data/solr/server/solr-webapp/webapp/img/ico/script-code.png +0 -0
  325. data/solr/server/solr-webapp/webapp/img/ico/server-cast.png +0 -0
  326. data/solr/server/solr-webapp/webapp/img/ico/server.png +0 -0
  327. data/solr/server/solr-webapp/webapp/img/ico/sitemap.png +0 -0
  328. data/solr/server/solr-webapp/webapp/img/ico/slash.png +0 -0
  329. data/solr/server/solr-webapp/webapp/img/ico/status-away.png +0 -0
  330. data/solr/server/solr-webapp/webapp/img/ico/status-busy.png +0 -0
  331. data/solr/server/solr-webapp/webapp/img/ico/status-offline.png +0 -0
  332. data/solr/server/solr-webapp/webapp/img/ico/status.png +0 -0
  333. data/solr/server/solr-webapp/webapp/img/ico/system-monitor--exclamation.png +0 -0
  334. data/solr/server/solr-webapp/webapp/img/ico/system-monitor.png +0 -0
  335. data/solr/server/solr-webapp/webapp/img/ico/table.png +0 -0
  336. data/solr/server/solr-webapp/webapp/img/ico/terminal.png +0 -0
  337. data/solr/server/solr-webapp/webapp/img/ico/tick-circle.png +0 -0
  338. data/solr/server/solr-webapp/webapp/img/ico/tick-red.png +0 -0
  339. data/solr/server/solr-webapp/webapp/img/ico/tick.png +0 -0
  340. data/solr/server/solr-webapp/webapp/img/ico/toggle-small-expand.png +0 -0
  341. data/solr/server/solr-webapp/webapp/img/ico/toggle-small.png +0 -0
  342. data/solr/server/solr-webapp/webapp/img/ico/toolbox.png +0 -0
  343. data/solr/server/solr-webapp/webapp/img/ico/ui-accordion.png +0 -0
  344. data/solr/server/solr-webapp/webapp/img/ico/ui-address-bar.png +0 -0
  345. data/solr/server/solr-webapp/webapp/img/ico/ui-check-box-uncheck.png +0 -0
  346. data/solr/server/solr-webapp/webapp/img/ico/ui-check-box.png +0 -0
  347. data/solr/server/solr-webapp/webapp/img/ico/ui-radio-button-uncheck.png +0 -0
  348. data/solr/server/solr-webapp/webapp/img/ico/ui-radio-button.png +0 -0
  349. data/solr/server/solr-webapp/webapp/img/ico/ui-text-field-select.png +0 -0
  350. data/solr/server/solr-webapp/webapp/img/ico/users.png +0 -0
  351. data/solr/server/solr-webapp/webapp/img/ico/wooden-box.png +0 -0
  352. data/solr/server/solr-webapp/webapp/img/ico/zone.png +0 -0
  353. data/solr/server/solr-webapp/webapp/img/loader-light.gif +0 -0
  354. data/solr/server/solr-webapp/webapp/img/loader.gif +0 -0
  355. data/solr/server/solr-webapp/webapp/img/lucene-ico.png +0 -0
  356. data/solr/server/solr-webapp/webapp/img/solr-ico.png +0 -0
  357. data/solr/server/solr-webapp/webapp/img/solr.svg +39 -0
  358. data/solr/server/solr-webapp/webapp/img/tree.png +0 -0
  359. data/solr/server/solr-webapp/webapp/index.html +208 -0
  360. data/solr/server/solr-webapp/webapp/js/angular/app.js +713 -0
  361. data/solr/server/solr-webapp/webapp/js/angular/controllers/analysis.js +199 -0
  362. data/solr/server/solr-webapp/webapp/js/angular/controllers/cloud.js +528 -0
  363. data/solr/server/solr-webapp/webapp/js/angular/controllers/core-overview.js +225 -0
  364. data/solr/server/solr-webapp/webapp/js/angular/controllers/cores.js +465 -0
  365. data/solr/server/solr-webapp/webapp/js/angular/controllers/dataimport.js +284 -0
  366. data/solr/server/solr-webapp/webapp/js/angular/controllers/documents.js +139 -0
  367. data/solr/server/solr-webapp/webapp/js/angular/controllers/files.js +92 -0
  368. data/solr/server/solr-webapp/webapp/js/angular/controllers/index.js +95 -0
  369. data/solr/server/solr-webapp/webapp/js/angular/controllers/java-properties.js +45 -0
  370. data/solr/server/solr-webapp/webapp/js/angular/controllers/logging.js +146 -0
  371. data/solr/server/solr-webapp/webapp/js/angular/controllers/plugins.js +166 -0
  372. data/solr/server/solr-webapp/webapp/js/angular/controllers/query.js +99 -0
  373. data/solr/server/solr-webapp/webapp/js/angular/controllers/replication.js +227 -0
  374. data/solr/server/solr-webapp/webapp/js/angular/controllers/schema-browser.js +432 -0
  375. data/solr/server/solr-webapp/webapp/js/angular/controllers/segments.js +94 -0
  376. data/solr/server/solr-webapp/webapp/js/angular/controllers/threads.js +51 -0
  377. data/solr/server/solr-webapp/webapp/js/angular/services.js +214 -0
  378. data/solr/server/solr-webapp/webapp/js/lib/ZeroClipboard.js +342 -0
  379. data/solr/server/solr-webapp/webapp/js/lib/chosen.js +982 -0
  380. data/solr/server/solr-webapp/webapp/js/lib/console.js +29 -0
  381. data/solr/server/solr-webapp/webapp/js/lib/d3.js +9373 -0
  382. data/solr/server/solr-webapp/webapp/js/lib/highlight.js +31 -0
  383. data/solr/server/solr-webapp/webapp/js/lib/jquery-1.7.2.min.js +30 -0
  384. data/solr/server/solr-webapp/webapp/js/lib/jquery.ajaxfileupload.js +184 -0
  385. data/solr/server/solr-webapp/webapp/js/lib/jquery.blockUI.js +523 -0
  386. data/solr/server/solr-webapp/webapp/js/lib/jquery.cookie.js +71 -0
  387. data/solr/server/solr-webapp/webapp/js/lib/jquery.form.js +806 -0
  388. data/solr/server/solr-webapp/webapp/js/lib/jquery.jstree.js +3534 -0
  389. data/solr/server/solr-webapp/webapp/js/lib/jquery.sammy.js +1863 -0
  390. data/solr/server/solr-webapp/webapp/js/lib/jquery.timeago.js +189 -0
  391. data/solr/server/solr-webapp/webapp/js/lib/linker.js +48 -0
  392. data/solr/server/solr-webapp/webapp/js/lib/naturalSort.js +82 -0
  393. data/solr/server/solr-webapp/webapp/js/lib/order.js +216 -0
  394. data/solr/server/solr-webapp/webapp/js/main.js +60 -0
  395. data/solr/server/solr-webapp/webapp/js/require.js +11349 -0
  396. data/solr/server/solr-webapp/webapp/js/scripts/analysis.js +545 -0
  397. data/solr/server/solr-webapp/webapp/js/scripts/app.js +680 -0
  398. data/solr/server/solr-webapp/webapp/js/scripts/cloud.js +877 -0
  399. data/solr/server/solr-webapp/webapp/js/scripts/cores.js +719 -0
  400. data/solr/server/solr-webapp/webapp/js/scripts/dashboard.js +562 -0
  401. data/solr/server/solr-webapp/webapp/js/scripts/dataimport.js +812 -0
  402. data/solr/server/solr-webapp/webapp/js/scripts/documents.js +370 -0
  403. data/solr/server/solr-webapp/webapp/js/scripts/files.js +265 -0
  404. data/solr/server/solr-webapp/webapp/js/scripts/index.js +340 -0
  405. data/solr/server/solr-webapp/webapp/js/scripts/java-properties.js +106 -0
  406. data/solr/server/solr-webapp/webapp/js/scripts/logging.js +578 -0
  407. data/solr/server/solr-webapp/webapp/js/scripts/ping.js +72 -0
  408. data/solr/server/solr-webapp/webapp/js/scripts/plugins.js +462 -0
  409. data/solr/server/solr-webapp/webapp/js/scripts/query.js +229 -0
  410. data/solr/server/solr-webapp/webapp/js/scripts/replication.js +527 -0
  411. data/solr/server/solr-webapp/webapp/js/scripts/schema-browser.js +1229 -0
  412. data/solr/server/solr-webapp/webapp/js/scripts/segments.js +206 -0
  413. data/solr/server/solr-webapp/webapp/js/scripts/threads.js +158 -0
  414. data/solr/server/solr-webapp/webapp/libs/angular-chosen.js +139 -0
  415. data/solr/server/solr-webapp/webapp/libs/angular-cookies.js +229 -0
  416. data/solr/server/solr-webapp/webapp/libs/angular-cookies.min.js +31 -0
  417. data/solr/server/solr-webapp/webapp/libs/angular-resource.min.js +36 -0
  418. data/solr/server/solr-webapp/webapp/libs/angular-route.js +1018 -0
  419. data/solr/server/solr-webapp/webapp/libs/angular-route.min.js +38 -0
  420. data/solr/server/solr-webapp/webapp/libs/angular-sanitize.js +703 -0
  421. data/solr/server/solr-webapp/webapp/libs/angular-sanitize.min.js +39 -0
  422. data/solr/server/solr-webapp/webapp/libs/angular.js +26093 -0
  423. data/solr/server/solr-webapp/webapp/libs/angular.min.js +273 -0
  424. data/solr/server/solr-webapp/webapp/libs/chosen.jquery.js +1194 -0
  425. data/solr/server/solr-webapp/webapp/libs/chosen.jquery.min.js +30 -0
  426. data/solr/server/solr-webapp/webapp/libs/d3.js +9373 -0
  427. data/solr/server/solr-webapp/webapp/libs/highlight.js +31 -0
  428. data/solr/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js +29 -0
  429. data/solr/server/solr-webapp/webapp/libs/jquery.jstree.js +3534 -0
  430. data/solr/server/solr-webapp/webapp/libs/ngtimeago.js +102 -0
  431. data/solr/server/solr-webapp/webapp/partials/analysis.html +128 -0
  432. data/solr/server/solr-webapp/webapp/partials/cloud.html +104 -0
  433. data/solr/server/solr-webapp/webapp/partials/core_overview.html +227 -0
  434. data/solr/server/solr-webapp/webapp/partials/cores.html +231 -0
  435. data/solr/server/solr-webapp/webapp/partials/dataimport.html +209 -0
  436. data/solr/server/solr-webapp/webapp/partials/documents.html +118 -0
  437. data/solr/server/solr-webapp/webapp/partials/files.html +47 -0
  438. data/solr/server/solr-webapp/webapp/partials/index.html +261 -0
  439. data/solr/server/solr-webapp/webapp/partials/java-properties.html +27 -0
  440. data/solr/server/solr-webapp/webapp/partials/logging-levels.html +56 -0
  441. data/solr/server/solr-webapp/webapp/partials/logging.html +56 -0
  442. data/solr/server/solr-webapp/webapp/partials/plugins.html +72 -0
  443. data/solr/server/solr-webapp/webapp/partials/query.html +356 -0
  444. data/solr/server/solr-webapp/webapp/partials/replication.html +239 -0
  445. data/solr/server/solr-webapp/webapp/partials/schema-browser.html +206 -0
  446. data/solr/server/solr-webapp/webapp/partials/segments.html +99 -0
  447. data/solr/server/solr-webapp/webapp/partials/threads.html +65 -0
  448. data/solr/server/solr-webapp/webapp/tpl/analysis.html +83 -0
  449. data/solr/server/solr-webapp/webapp/tpl/cloud.html +87 -0
  450. data/solr/server/solr-webapp/webapp/tpl/cores.html +226 -0
  451. data/solr/server/solr-webapp/webapp/tpl/dashboard.html +201 -0
  452. data/solr/server/solr-webapp/webapp/tpl/dataimport.html +183 -0
  453. data/solr/server/solr-webapp/webapp/tpl/documents.html +107 -0
  454. data/solr/server/solr-webapp/webapp/tpl/files.html +44 -0
  455. data/solr/server/solr-webapp/webapp/tpl/index.html +250 -0
  456. data/solr/server/solr-webapp/webapp/tpl/logging.html +23 -0
  457. data/solr/server/solr-webapp/webapp/tpl/plugins.html +39 -0
  458. data/solr/server/solr-webapp/webapp/tpl/query.html +361 -0
  459. data/solr/server/solr-webapp/webapp/tpl/replication.html +216 -0
  460. data/solr/server/solr-webapp/webapp/tpl/schema-browser.html +192 -0
  461. data/solr/server/solr-webapp/webapp/tpl/segments.html +49 -0
  462. data/solr/server/solr-webapp/webapp/tpl/threads.html +56 -0
  463. data/solr/server/start.jar +0 -0
  464. data/solr/solr/README.txt +77 -0
  465. data/solr/solr/configsets/sunspot/conf/_rest_managed.json +1 -0
  466. data/solr/solr/configsets/sunspot/conf/currency.xml +67 -0
  467. data/solr/solr/{conf/stopwords.txt → configsets/sunspot/conf/lang/stopwords_en.txt} +1 -5
  468. data/solr/solr/{conf → configsets/sunspot/conf}/schema.xml +38 -35
  469. data/solr/solr/{conf → configsets/sunspot/conf}/solrconfig.xml +269 -318
  470. data/solr/solr/{conf → configsets/sunspot/conf}/synonyms.txt +3 -5
  471. data/solr/solr/default/core.properties +3 -0
  472. data/solr/solr/development/core.properties +3 -0
  473. data/solr/solr/solr.xml +49 -6
  474. data/solr/solr/test/core.properties +3 -0
  475. data/solr/solr/zoo.cfg +17 -0
  476. data/spec/server_spec.rb +3 -14
  477. data/sunspot_solr.gemspec +1 -1
  478. metadata +479 -48
  479. data/solr/contexts/solr.xml +0 -7
  480. data/solr/lib/jetty-continuation-8.1.8.v20121106.jar +0 -0
  481. data/solr/lib/jetty-deploy-8.1.8.v20121106.jar +0 -0
  482. data/solr/lib/jetty-http-8.1.8.v20121106.jar +0 -0
  483. data/solr/lib/jetty-io-8.1.8.v20121106.jar +0 -0
  484. data/solr/lib/jetty-jmx-8.1.8.v20121106.jar +0 -0
  485. data/solr/lib/jetty-security-8.1.8.v20121106.jar +0 -0
  486. data/solr/lib/jetty-server-8.1.8.v20121106.jar +0 -0
  487. data/solr/lib/jetty-servlet-8.1.8.v20121106.jar +0 -0
  488. data/solr/lib/jetty-util-8.1.8.v20121106.jar +0 -0
  489. data/solr/lib/jetty-webapp-8.1.8.v20121106.jar +0 -0
  490. data/solr/lib/jetty-xml-8.1.8.v20121106.jar +0 -0
  491. data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  492. data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  493. data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  494. data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  495. data/solr/lib/servlet-api-3.0.jar +0 -0
  496. data/solr/solr/conf/xslt/example.xsl +0 -132
  497. data/solr/solr/conf/xslt/example_atom.xsl +0 -67
  498. data/solr/solr/conf/xslt/example_rss.xsl +0 -66
  499. data/solr/solr/conf/xslt/luke.xsl +0 -337
  500. data/solr/solr/default/README.txt +0 -54
  501. data/solr/start.jar +0 -0
  502. data/solr/webapps/solr.war +0 -0
  503. /data/solr/solr/{conf → configsets/sunspot/conf}/admin-extra.html +0 -0
  504. /data/solr/solr/{conf → configsets/sunspot/conf}/elevate.xml +0 -0
  505. /data/solr/solr/{conf → configsets/sunspot/conf}/mapping-ISOLatin1Accent.txt +0 -0
  506. /data/solr/solr/{conf → configsets/sunspot/conf}/protwords.txt +0 -0
  507. /data/solr/solr/{conf → configsets/sunspot/conf}/scripts.conf +0 -0
  508. /data/solr/solr/{conf → configsets/sunspot/conf}/spellings.txt +0 -0
@@ -0,0 +1,146 @@
1
+ /*
2
+ Licensed to the Apache Software Foundation (ASF) under one or more
3
+ contributor license agreements. See the NOTICE file distributed with
4
+ this work for additional information regarding copyright ownership.
5
+ The ASF licenses this file to You under the Apache License, Version 2.0
6
+ (the "License"); you may not use this file except in compliance with
7
+ the License. You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ */
17
+
18
+ var format_time_content = function( time, timeZone ) {
19
+ var format_time_options = {};
20
+ if (timeZone && timeZone!="Local") {
21
+ format_time_options.timeZone = timeZone;
22
+ }
23
+ return time.toLocaleString( undefined, format_time_options );
24
+ }
25
+
26
+ solrAdminApp.controller('LoggingController',
27
+ function($scope, $timeout, $cookies, Logging){
28
+ $scope.resetMenu("logging", true);
29
+ $scope.timezone = $cookies.logging_timezone || "Local";
30
+ $scope.refresh = function() {
31
+ Logging.events(function(data) {
32
+ $scope.since = new Date();
33
+ $scope.sinceDisplay = format_time_content($scope.since, "Local");
34
+ var events = data.history.docs;
35
+ for (var i=0; i<events.length; i++) {
36
+ var event = events[i];
37
+ var time = new Date(event.time);
38
+ event.local_time = format_time_content(time, "Local");
39
+ event.utc_time = format_time_content(time, "UTC");
40
+ event.loggerBase = event.logger.split( '.' ).pop();
41
+
42
+ if( !event.trace ) {
43
+ var lines = event.message.split( "\n" );
44
+ if( lines.length > 1) {
45
+ event.trace = event.message;
46
+ event.message = lines[0];
47
+ }
48
+ }
49
+ event.message = event.message.replace(/,/g, ',&#8203;');
50
+ event.showTrace = false;
51
+ }
52
+ $scope.events = events;
53
+ $scope.watcher = data.watcher;
54
+ /* @todo sticky_mode
55
+ // state element is in viewport
56
+ sticky_mode = ( state.position().top <= $( window ).scrollTop() + $( window ).height() - ( $( 'body' ).height() - state.position().top ) );
57
+ // initial request
58
+ if( 0 === since ) {
59
+ sticky_mode = true;
60
+ }
61
+ $scope.loggingEvents = events;
62
+
63
+ if( sticky_mode )
64
+ {
65
+ $( 'body' )
66
+ .animate
67
+ (
68
+ { scrollTop: state.position().top },
69
+ 1000
70
+ );
71
+ }
72
+ */
73
+ });
74
+ $timeout($scope.refresh, 10000);
75
+ };
76
+ $scope.refresh();
77
+
78
+ $scope.toggleTimezone = function() {
79
+ $scope.timezone = ($scope.timezone=="Local") ? "UTC":"Local";
80
+ $cookies.logging_timezone = $scope.timezone;
81
+ }
82
+ $scope.toggleRow = function(event) {
83
+ event.showTrace =! event.showTrace;
84
+ };
85
+ }
86
+ )
87
+
88
+ .controller('LoggingLevelController',
89
+ function($scope, Logging) {
90
+ $scope.resetMenu("logging-levels");
91
+
92
+ var packageOf = function(logger) {
93
+ var parts = logger.name.split(".");
94
+ return !parts.pop() ? "" : parts.join(".");
95
+ };
96
+
97
+ var shortNameOf = function(logger) {return logger.name.split(".").pop();}
98
+
99
+ var makeTree = function(loggers, packag) {
100
+ var tree = [];
101
+ for (var i=0; i<loggers.length; i++) {
102
+ var logger = loggers[i];
103
+ logger.packag = packageOf(logger);
104
+ logger.short = shortNameOf(logger);
105
+ if (logger.packag == packag) {
106
+ logger.children = makeTree(loggers, logger.name);
107
+ tree.push(logger);
108
+ }
109
+ }
110
+ return tree;
111
+ };
112
+
113
+ $scope.refresh = function() {
114
+ Logging.levels(function(data) {
115
+ $scope.logging = makeTree(data.loggers, "");
116
+ $scope.watcher = data.watcher;
117
+ $scope.levels = [];
118
+ for (level in data.levels) {
119
+ $scope.levels.push({name:data.levels[level], pos:level});
120
+ }
121
+ });
122
+ };
123
+
124
+ $scope.toggleOptions = function(logger) {
125
+ if (logger.showOptions) {
126
+ logger.showOptions = false;
127
+ delete $scope.currentLogger;
128
+ } else {
129
+ if ($scope.currentLogger) {
130
+ $scope.currentLogger.showOptions = false;
131
+ }
132
+ logger.showOptions = true;
133
+ $scope.currentLogger = logger;
134
+ }
135
+ };
136
+
137
+ $scope.setLevel = function(logger, newLevel) {
138
+ var setString = logger.name + ":" + newLevel;
139
+ logger.showOptions = false;
140
+ Logging.setLevel({set: setString}, function(data) {
141
+ $scope.refresh();
142
+ });
143
+ };
144
+
145
+ $scope.refresh();
146
+ });
@@ -0,0 +1,166 @@
1
+ /*
2
+ Licensed to the Apache Software Foundation (ASF) under one or more
3
+ contributor license agreements. See the NOTICE file distributed with
4
+ this work for additional information regarding copyright ownership.
5
+ The ASF licenses this file to You under the Apache License, Version 2.0
6
+ (the "License"); you may not use this file except in compliance with
7
+ the License. You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ */
17
+
18
+ solrAdminApp.controller('PluginsController',
19
+ function($scope, $rootScope, $routeParams, $location, Mbeans) {
20
+ $scope.resetMenu("plugins");
21
+
22
+ if ($routeParams.legacytype) {
23
+ // support legacy URLs. Angular cannot change #path without reloading controller
24
+ $location.path("/"+$routeParams.core+"/plugins");
25
+ $location.search("type", $routeParams.legacytype);
26
+ return;
27
+ }
28
+
29
+ $scope.refresh = function() {
30
+ Mbeans.stats({core: $routeParams.core}, function (data) {
31
+ var type = $location.search().type;
32
+ $scope.types = getPluginTypes(data, type);
33
+ $scope.type = getSelectedType($scope.types, type);
34
+
35
+ if ($scope.type && $routeParams.entry) {
36
+ $scope.plugins = $routeParams.entry.split(",");
37
+ openPlugins($scope.type, $scope.plugins);
38
+ } else {
39
+ $scope.plugins = [];
40
+ }
41
+ });
42
+ };
43
+
44
+ $scope.selectPluginType = function(type) {
45
+ $location.search({entry:null, type: type.lower});
46
+ $scope.type = type;
47
+ };
48
+
49
+ $scope.selectPlugin = function(plugin) {
50
+ plugin.open = !plugin.open;
51
+
52
+ if (plugin.open) {
53
+ $scope.plugins.push(plugin.name);
54
+ } else {
55
+ $scope.plugins.splice($scope.plugins.indexOf(plugin.name), 1);
56
+ }
57
+
58
+ if ($scope.plugins.length==0) {
59
+ $location.search("entry", null);
60
+ } else {
61
+ $location.search("entry", $scope.plugins.join(','));
62
+ }
63
+ }
64
+
65
+ $scope.startRecording = function() {
66
+ $scope.isRecording = true;
67
+ Mbeans.reference({core: $routeParams.core}, function(data) {
68
+ $scope.reference = data.reference;
69
+ console.log($scope.reference);
70
+ })
71
+ }
72
+
73
+ $scope.stopRecording = function() {
74
+ $scope.isRecording = false;
75
+ console.log($scope.reference);
76
+ Mbeans.delta({core: $routeParams.core}, $scope.reference, function(data) {
77
+ parseDelta($scope.types, data);
78
+ });
79
+ }
80
+
81
+ $scope.refresh();
82
+ });
83
+
84
+ var getPluginTypes = function(data, selected) {
85
+ var keys = [];
86
+ var mbeans = data["solr-mbeans"];
87
+ for (var i=0; i<mbeans.length; i+=2) {
88
+ var key = mbeans[i];
89
+ var lower = key.toLowerCase();
90
+ var plugins = getPlugins(mbeans[i+1]);
91
+ keys.push({name: key,
92
+ selected: lower == selected,
93
+ changes: 0,
94
+ lower: lower,
95
+ plugins: plugins
96
+ });
97
+ }
98
+ keys.sort(function(a,b) {return a.name > b.name});
99
+ return keys;
100
+ };
101
+
102
+ var getPlugins = function(data) {
103
+ var plugins = [];
104
+ for (var key in data) {
105
+ var pluginProperties = data[key];
106
+ var stats = pluginProperties.stats;
107
+ delete pluginProperties.stats;
108
+ for (var stat in stats) {
109
+ // add breaking space after a bracket or @ to handle wrap long lines:
110
+ stats[stat] = new String(stats[stat]).replace( /([\(@])/g, '$1&#8203;');
111
+ }
112
+ plugin = {name: key, changed: false, stats: stats, open:false};
113
+ plugin.properties = pluginProperties;
114
+ plugins.push(plugin);
115
+ }
116
+ plugins.sort(function(a,b) {return a.name > b.name});
117
+ return plugins;
118
+ };
119
+
120
+ var getSelectedType = function(types, selected) {
121
+ if (selected) {
122
+ for (var i in types) {
123
+ if (types[i].lower == selected) {
124
+ return types[i];
125
+ }
126
+ }
127
+ }
128
+ };
129
+
130
+ var parseDelta = function(types, data) {
131
+
132
+ var getByName = function(list, name) {
133
+ for (var i in list) {
134
+ if (list[i].name == name) return list[i];
135
+ }
136
+ }
137
+
138
+ var mbeans = data["solr-mbeans"]
139
+ for (var i=0; i<mbeans.length; i+=2) {
140
+ var typeName = mbeans[i];
141
+ var type = getByName(types, typeName);
142
+ var plugins = mbeans[i+1];
143
+ for (var key in plugins) {
144
+ var changedPlugin = plugins[key];
145
+ if (changedPlugin._changed_) {
146
+ var plugin = getByName(type.plugins, key);
147
+ var stats = changedPlugin.stats;
148
+ delete changedPlugin.stats;
149
+ plugin.properties = changedPlugin;
150
+ for (var stat in stats) {
151
+ // add breaking space after a bracket or @ to handle wrap long lines:
152
+ plugin.stats[stat] = new String(stats[stat]).replace( /([\(@])/g, '$1&#8203;');
153
+ }
154
+ plugin.changed = true;
155
+ type.changes++;
156
+ }
157
+ }
158
+ }
159
+ };
160
+
161
+ var openPlugins = function(type, selected) {
162
+ for (var i in type.plugins) {
163
+ var plugin = type.plugins[i];
164
+ plugin.open = selected.indexOf(plugin.name)>=0;
165
+ }
166
+ }
@@ -0,0 +1,99 @@
1
+ /*
2
+ Licensed to the Apache Software Foundation (ASF) under one or more
3
+ contributor license agreements. See the NOTICE file distributed with
4
+ this work for additional information regarding copyright ownership.
5
+ The ASF licenses this file to You under the Apache License, Version 2.0
6
+ (the "License"); you may not use this file except in compliance with
7
+ the License. You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ */
17
+
18
+ solrAdminApp.controller('QueryController',
19
+ function($scope, $routeParams, $location, Query){
20
+ $scope.resetMenu("query");
21
+
22
+ // @todo read URL parameters into scope
23
+ $scope.query = {wt: 'json', q:'*:*', indent:'on'};
24
+ $scope.filters = [{fq:""}];
25
+ $scope.dismax = {defType: "dismax"};
26
+ $scope.edismax = {defType: "edismax", stopwords: true, lowercaseOperators: true};
27
+ $scope.hl = {hl:"on"};
28
+ $scope.facet = {facet: "on"};
29
+ $scope.spatial = {};
30
+ $scope.spellcheck = {spellcheck:"on"};
31
+ $scope.qt = "/select";
32
+
33
+ $scope.doQuery = function() {
34
+ var params = {};
35
+
36
+ var set = function(key, value) {
37
+ if (params[key]) {
38
+ params[key].push(value);
39
+ } else {
40
+ params[key] = [value];
41
+ }
42
+ }
43
+ var copy = function(params, query) {
44
+ for (var key in query) {
45
+ terms = query[key];
46
+ if (terms.length > 0 && key[0]!="$") {
47
+ set(key, terms);
48
+ }
49
+ }
50
+ };
51
+
52
+ copy(params, $scope.query);
53
+
54
+ if ($scope.isDismax) copy(params, $scope.dismax);
55
+ if ($scope.isEdismax) copy(params, $scope.edismax);
56
+ if ($scope.isHighlight) copy(params, $scope.hl);
57
+ if ($scope.isFacet) copy(params, $scope.facet);
58
+ if ($scope.isSpatial) copy(params, $scope.spatial);
59
+ if ($scope.isSpellcheck) copy(params, $scope.spellcheck);
60
+
61
+ if ($scope.rawParams) {
62
+ for (var param in $scope.rawParams.split(/[&\n]/)) {
63
+ var parts = param.split("=");
64
+ set(parts[0], parts[1]);
65
+ }
66
+ }
67
+
68
+ var qt = $scope.qt ? $scope.qt : "select";
69
+
70
+ for (var filter in $scope.filters) {
71
+ copy(params, $scope.filters[filter]);
72
+ }
73
+
74
+ params.doNotIntercept=true;
75
+ params.core = $routeParams.core;
76
+ params.handler = qt;
77
+ var url = "/solr/" + $routeParams.core + qt + "?" + Query.url(params);
78
+ Query.query(params, function(data) {
79
+ $scope.lang = $scope.query.wt;
80
+ $scope.response = data;
81
+ $scope.url = $location.protocol() + "://" +
82
+ $location.host() + ":" +
83
+ $location.port() + url;
84
+ });
85
+ };
86
+
87
+ $scope.removeFilter = function(index) {
88
+ if ($scope.filters.length === 1) {
89
+ $scope.filters = [{fq: ""}];
90
+ } else {
91
+ $scope.filters.splice(index, 1);
92
+ }
93
+ };
94
+
95
+ $scope.addFilter = function(index) {
96
+ $scope.filters.splice(index+1, 0, {fq:""});
97
+ };
98
+ }
99
+ );
@@ -0,0 +1,227 @@
1
+ /*
2
+ Licensed to the Apache Software Foundation (ASF) under one or more
3
+ contributor license agreements. See the NOTICE file distributed with
4
+ this work for additional information regarding copyright ownership.
5
+ The ASF licenses this file to You under the Apache License, Version 2.0
6
+ (the "License"); you may not use this file except in compliance with
7
+ the License. You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ */
17
+
18
+ solrAdminApp.controller('ReplicationController',
19
+ function($scope, $rootScope, $routeParams, $interval, $timeout, Replication) {
20
+ $scope.resetMenu("replication");
21
+
22
+ $scope.iterationCount = 1;
23
+
24
+ $scope.refresh = function() {
25
+ Replication.details({core:$routeParams.core}, function(response) {
26
+ if ($scope.interval) $interval.cancel($scope.interval);
27
+ $scope.isSlave = (response.details.isSlave === 'true');
28
+ if ($scope.isSlave) {
29
+ $scope.progress = getProgressDetails(response.details.slave);
30
+ $scope.iterations = getIterations(response.details.slave);
31
+ $scope.versions = getSlaveVersions(response.details);
32
+ $scope.settings = getSlaveSettings(response.details);
33
+ if ($scope.settings.isReplicating) {
34
+ $timeout($scope.refresh, 1000);
35
+ } else if(!$scope.settings.isPollingDisabled && $scope.settings.pollInterval) {
36
+ $scope.interval = $interval(function() {
37
+ $scope.settings.tick--;
38
+ }, 1000, $scope.settings.tick);
39
+ $timeout($scope.refresh, 1000*(1+$scope.settings.tick));
40
+ }
41
+ } else {
42
+ $scope.versions = getMasterVersions(response.details);
43
+ }
44
+ $scope.master = getMasterSettings(response.details, $scope.isSlave);
45
+ });
46
+
47
+ };
48
+
49
+ $scope.execute = function(command) {
50
+ Replication.command({core:$routeParams.core, command:command}, function(data){$scope.refresh()});
51
+ }
52
+
53
+ $scope.showIterations = function() { $scope.iterationCount = 100000}; // limitTo should accept undefined, but doesn't work.
54
+ $scope.hideIterations = function() { $scope.iterationCount = 1};
55
+
56
+ $scope.refresh();
57
+ });
58
+
59
+ var getProgressDetails = function(progress) {
60
+
61
+ progress.timeRemaining = parseSeconds(progress.timeRemaining);
62
+ progress.totalPercent = parseInt(progress.totalPercent);
63
+ if (progress.totalPercent === 0) {
64
+ progress.totalPercentWidth = "1px";
65
+ } else {
66
+ progress.totalPercentWidth = progress.totalPercent + "%";
67
+ }
68
+ progress.currentFileSizePercent = parseInt(progress.currentFileSizePercent);
69
+
70
+ if (!progress.indexReplicatedAtList) {
71
+ progress.indexReplicatedAtList = [];
72
+ }
73
+
74
+ if (!progress.replicationFailedAtList) {
75
+ progress.replicationFailedAtList = [];
76
+ }
77
+ return progress;
78
+ };
79
+
80
+ var getIterations = function(slave) {
81
+
82
+ var iterations = [];
83
+
84
+ var find = function(list, date) {
85
+ return list.filter(function(e) {return e.date == date});
86
+ };
87
+
88
+ for (var i in slave.indexReplicatedAtList) {
89
+ var date = slave.indexReplicatedAtList[i];
90
+ var iteration = {date:date, status:"replicated", latest: false};
91
+ if (date == slave.indexReplicatedAt) {
92
+ iteration.latest = true;
93
+ }
94
+ iterations.push(iteration);
95
+ }
96
+
97
+ for (var i in slave.replicationFailedAtList) {
98
+ var failedDate = slave.replicationFailedAtList[i];
99
+ var matchingIterations = find(iterations, failedDate);
100
+ if (matchingIterations) {
101
+ iteration = matchingIterations[0];
102
+ } else {
103
+ iteration = {date: failedDate, latest:false};
104
+ iterations.push(iteration);
105
+ }
106
+ iteration.status = "failed";
107
+ if (failedDate == slave.replicationFailedAt) {
108
+ iteration.latest = true;
109
+ }
110
+ }
111
+ iterations.sort(function(a,b){ return a.date> b.date;}).reverse();
112
+ return iterations;
113
+ };
114
+
115
+ var getMasterVersions = function(data) {
116
+ versions = {masterSearch:{}, master:{}};
117
+
118
+ versions.masterSearch.version = data.indexVersion;
119
+ versions.masterSearch.generation = data.generation;
120
+ versions.masterSearch.size = data.indexSize;
121
+
122
+ versions.master.version = data.master.replicableVersion || '-';
123
+ versions.master.generation = data.master.replicableGeneration || '-';
124
+ versions.master.size = '-';
125
+
126
+ return versions;
127
+ };
128
+
129
+ var getSlaveVersions = function(data) {
130
+ versions = {masterSearch: {}, master: {}, slave: {}};
131
+
132
+ versions.slave.version = data.indexVersion;
133
+ versions.slave.generation = data.generation;
134
+ versions.slave.size = data.indexSize;
135
+
136
+ versions.master.version = data.slave.masterDetails.replicableVersion || '-';
137
+ versions.master.generation = data.slave.masterDetails.replicableGeneration || '-';
138
+ versions.master.size = '-';
139
+
140
+ versions.masterSearch.version = data.slave.masterDetails.indexVersion;
141
+ versions.masterSearch.generation = data.slave.masterDetails.generation;
142
+ versions.masterSearch.size = data.slave.masterDetails.indexSize;
143
+
144
+ versions.changedVersion = data.indexVersion !== data.slave.masterDetails.indexVersion;
145
+ versions.changedGeneration = data.generation !== data.slave.masterDetails.generation;
146
+
147
+ return versions;
148
+ };
149
+
150
+ var parseDateToEpoch = function(date) {
151
+ // ["Sat Mar 03 11:00:00 CET 2012", "Sat", "Mar", "03", "11:00:00", "CET", "2012"]
152
+ var parts = date.match( /^(\w+)\s+(\w+)\s+(\d+)\s+(\d+\:\d+\:\d+)\s+(\w+)\s+(\d+)$/ );
153
+
154
+ // "Sat Mar 03 2012 10:37:33"
155
+ var d = new Date( parts[1] + ' ' + parts[2] + ' ' + parts[3] + ' ' + parts[6] + ' ' + parts[4] );
156
+ return d.getTime();
157
+ }
158
+
159
+ var parseSeconds = function(time) {
160
+ var seconds = 0;
161
+ var arr = new String(time || '').split('.');
162
+ var parts = arr[0].split(':').reverse();
163
+
164
+ for (var i = 0; i < parts.length; i++) {
165
+ seconds += ( parseInt(parts[i], 10) || 0 ) * Math.pow(60, i);
166
+ }
167
+
168
+ if (arr[1] && 5 <= parseInt(arr[1][0], 10)) {
169
+ seconds++; // treat more or equal than .5 as additional second
170
+
171
+ }
172
+
173
+ return seconds;
174
+ }
175
+
176
+ var getSlaveSettings = function(data) {
177
+ var settings = {};
178
+ settings.masterUrl = data.slave.masterUrl;
179
+ settings.isPollingDisabled = data.slave.isPollingDisabled == 'true';
180
+ settings.pollInterval = data.slave.pollInterval;
181
+ settings.isReplicating = data.slave.isReplicating == 'true';
182
+ settings.nextExecutionAt = data.slave.nextExecutionAt;
183
+
184
+ if(settings.isReplicating) {
185
+ settings.isApprox = true;
186
+ settings.tick = parseSeconds(settings.pollInterval);
187
+ } else if (!settings.isPollingDisabled && settings.pollInterval) {
188
+ if( settings.nextExecutionAt ) {
189
+ settings.nextExecutionAtEpoch = parseDateToEpoch(settings.nextExecutionAt);
190
+ settings.currentTime = parseDateToEpoch(data.slave.currentDate);
191
+
192
+ if( settings.nextExecutionAtEpoch > settings.currentTime) {
193
+ settings.isApprox = false;
194
+ settings.tick = ( settings.nextExecutionAtEpoch - settings.currentTime) / 1000;
195
+ }
196
+ }
197
+ }
198
+ return settings;
199
+ };
200
+
201
+ var getMasterSettings = function(details, isSlave) {
202
+ var master = {};
203
+ var masterData = isSlave ? details.slave.masterDetails.master : details.master;
204
+ master.replicationEnabled = masterData.replicationEnabled == "true";
205
+ master.replicateAfter = masterData.replicateAfter.join(", ");
206
+
207
+ if (masterData.confFiles) {
208
+ master.files = [];
209
+ var confFiles = masterData.confFiles.split(',');
210
+ for (var i=0; i<confFiles.length; i++) {
211
+ var file = confFiles[i];
212
+ var short = file;
213
+ var title = file;
214
+ if (file.indexOf(":")>=0) {
215
+ title = file.replace(':', ' » ');
216
+ var parts = file.split(':');
217
+ if (isSlave) {
218
+ short = parts[1];
219
+ } else {
220
+ short = parts[0];
221
+ }
222
+ }
223
+ master.files.push({title:title, name:short});
224
+ }
225
+ }
226
+ return master;
227
+ }