cucumber-chef 2.0.7 → 2.1.0.rc.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/README.md +1 -1
  2. data/Rakefile +1 -1
  3. data/bin/cc-knife +2 -5
  4. data/bin/cc-push +50 -26
  5. data/bin/cc-server +9 -10
  6. data/bin/cucumber-chef +65 -71
  7. data/chef_repo/cookbooks/cucumber-chef/attributes/default.rb +1 -1
  8. data/chef_repo/cookbooks/cucumber-chef/recipes/default.rb +1 -1
  9. data/chef_repo/cookbooks/cucumber-chef/recipes/lxc.rb +34 -36
  10. data/chef_repo/cookbooks/cucumber-chef/recipes/test_lab.rb +64 -47
  11. data/chef_repo/cookbooks/cucumber-chef/templates/default/solrconfig.erb +650 -0
  12. data/cucumber-chef.gemspec +5 -5
  13. data/lib/cucumber/chef/bootstrap.rb +10 -10
  14. data/lib/cucumber/chef/config.rb +15 -15
  15. data/lib/cucumber/chef/helpers/chef_client.rb +88 -14
  16. data/lib/cucumber/chef/helpers/chef_server.rb +39 -16
  17. data/lib/cucumber/chef/helpers/command.rb +28 -12
  18. data/lib/cucumber/chef/helpers/container.rb +29 -26
  19. data/lib/cucumber/chef/helpers/minitest.rb +1 -1
  20. data/lib/cucumber/chef/helpers/server.rb +37 -18
  21. data/lib/cucumber/chef/helpers/test_lab.rb +1 -1
  22. data/lib/cucumber/chef/helpers/utility.rb +23 -3
  23. data/lib/cucumber/chef/helpers.rb +10 -8
  24. data/lib/cucumber/chef/provisioner.rb +22 -21
  25. data/lib/cucumber/chef/steps/chef_steps.rb +1 -1
  26. data/lib/cucumber/chef/steps/minitest_steps.rb +3 -3
  27. data/lib/cucumber/chef/steps/provision_steps.rb +7 -6
  28. data/lib/cucumber/chef/steps/ssh_steps.rb +31 -2
  29. data/lib/cucumber/chef/steps.rb +1 -1
  30. data/lib/cucumber/chef/templates/cucumber/cc-hooks.rb +111 -0
  31. data/lib/cucumber/chef/templates/cucumber/env.rb +0 -87
  32. data/lib/cucumber/chef/templates/cucumber/readme-environments.erb +1 -0
  33. data/lib/cucumber/chef/templates/cucumber/readme-roles.erb +1 -1
  34. data/lib/cucumber/chef/templates/cucumber-chef/config-rb.erb +5 -0
  35. data/lib/cucumber/chef/test_lab.rb +70 -23
  36. data/lib/cucumber/chef/utility.rb +121 -31
  37. data/lib/cucumber/chef/version.rb +2 -2
  38. data/lib/cucumber/chef.rb +1 -1
  39. data/lib/cucumber-chef.rb +1 -1
  40. data/spec/cucumber/chef/config_spec.rb +1 -1
  41. data/spec/cucumber/chef/provisioner_spec.rb +1 -1
  42. data/spec/cucumber/chef/test_lab_spec.rb +1 -1
  43. data/spec/spec_helper.rb +1 -1
  44. metadata +8 -5
@@ -0,0 +1,650 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!--
3
+ Licensed to the Apache Software Foundation (ASF) under one or more
4
+ contributor license agreements. See the NOTICE file distributed with
5
+ this work for additional information regarding copyright ownership.
6
+ The ASF licenses this file to You under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with
8
+ the License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ -->
18
+
19
+ <config>
20
+ <!-- Set this to 'false' if you want solr to continue working after it has
21
+ encountered an severe configuration error. In a production environment,
22
+ you may want solr to keep working even if one handler is mis-configured.
23
+
24
+ You may also set this to false using by setting the system property:
25
+ -Dsolr.abortOnConfigurationError=false
26
+ -->
27
+ <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
28
+
29
+ <!-- Used to specify an alternate directory to hold all index data
30
+ other than the default ./data under the Solr home.
31
+ If replication is in use, this should match the replication configuration. -->
32
+ <dataDir>${solr.data.dir:./solr/data}</dataDir>
33
+
34
+
35
+ <indexDefaults>
36
+ <!-- Values here affect all index writers and act as a default unless overridden. -->
37
+ <useCompoundFile>false</useCompoundFile>
38
+
39
+ <mergeFactor>10</mergeFactor>
40
+ <!--
41
+ If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene will flush based on whichever limit is hit first.
42
+
43
+ -->
44
+ <!--<maxBufferedDocs>1000</maxBufferedDocs>-->
45
+ <!-- Tell Lucene when to flush documents to disk.
46
+ Giving Lucene more memory for indexing means faster indexing at the cost of more RAM
47
+
48
+ If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene will flush based on whichever limit is hit first.
49
+
50
+ -->
51
+ <ramBufferSizeMB>32</ramBufferSizeMB>
52
+ <maxMergeDocs>2147483647</maxMergeDocs>
53
+ <maxFieldLength>10000</maxFieldLength>
54
+ <writeLockTimeout>1000</writeLockTimeout>
55
+ <commitLockTimeout>10000</commitLockTimeout>
56
+
57
+ <!--
58
+ Expert: Turn on Lucene's auto commit capability.
59
+ This causes intermediate segment flushes to write a new lucene
60
+ index descriptor, enabling it to be opened by an external
61
+ IndexReader.
62
+ NOTE: Despite the name, this value does not have any relation to Solr's autoCommit functionality
63
+ -->
64
+ <!--<luceneAutoCommit>false</luceneAutoCommit>-->
65
+ <!--
66
+ Expert:
67
+ The Merge Policy in Lucene controls how merging is handled by Lucene. The default in 2.3 is the LogByteSizeMergePolicy, previous
68
+ versions used LogDocMergePolicy.
69
+
70
+ LogByteSizeMergePolicy chooses segments to merge based on their size. The Lucene 2.2 default, LogDocMergePolicy chose when
71
+ to merge based on number of documents
72
+
73
+ Other implementations of MergePolicy must have a no-argument constructor
74
+ -->
75
+ <!--<mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>-->
76
+
77
+ <!--
78
+ Expert:
79
+ The Merge Scheduler in Lucene controls how merges are performed. The ConcurrentMergeScheduler (Lucene 2.3 default)
80
+ can perform merges in the background using separate threads. The SerialMergeScheduler (Lucene 2.2 default) does not.
81
+ -->
82
+ <!--<mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>-->
83
+
84
+ <!--
85
+ This option specifies which Lucene LockFactory implementation to use.
86
+
87
+ single = SingleInstanceLockFactory - suggested for a read-only index
88
+ or when there is no possibility of another process trying
89
+ to modify the index.
90
+ native = NativeFSLockFactory
91
+ simple = SimpleFSLockFactory
92
+
93
+ (For backwards compatibility with Solr 1.2, 'simple' is the default
94
+ if not specified.)
95
+ -->
96
+ <lockType>single</lockType>
97
+ </indexDefaults>
98
+
99
+ <mainIndex>
100
+ <!-- options specific to the main on-disk lucene index -->
101
+ <useCompoundFile>false</useCompoundFile>
102
+ <ramBufferSizeMB>32</ramBufferSizeMB>
103
+ <mergeFactor>25</mergeFactor>
104
+ <!-- Deprecated -->
105
+ <!--<maxBufferedDocs>1000</maxBufferedDocs>-->
106
+ <maxMergeDocs>2147483647</maxMergeDocs>
107
+ <maxFieldLength>10000</maxFieldLength>
108
+
109
+ <!-- If true, unlock any held write or commit locks on startup.
110
+ This defeats the locking mechanism that allows multiple
111
+ processes to safely access a lucene index, and should be
112
+ used with care.
113
+ This is not needed if lock type is 'none' or 'single'
114
+ -->
115
+ <unlockOnStartup>false</unlockOnStartup>
116
+
117
+ <!-- If true, IndexReaders will be reopened (often more efficient) instead
118
+ of closed and then opened.
119
+ -->
120
+ <reopenReaders>true</reopenReaders>
121
+
122
+ <!--
123
+ Custom deletion policies can specified here. The class must
124
+ implement org.apache.lucene.index.IndexDeletionPolicy.
125
+
126
+ http://lucene.apache.org/java/2_3_2/api/org/apache/lucene/index/IndexDeletionPolicy.html
127
+
128
+ The standard Solr IndexDeletionPolicy implementation supports deleting
129
+ index commit points on number of commits, age of commit point and
130
+ optimized status.
131
+
132
+ The latest commit point should always be preserved regardless
133
+ of the criteria.
134
+ -->
135
+ <deletionPolicy class="solr.SolrDeletionPolicy">
136
+ <!-- Keep only optimized commit points -->
137
+ <str name="keepOptimizedOnly">false</str>
138
+ <!-- The maximum number of commit points to be kept -->
139
+ <str name="maxCommitsToKeep">1</str>
140
+ <!--
141
+ Delete all commit points once they have reached the given age.
142
+ Supports DateMathParser syntax e.g.
143
+
144
+ <str name="maxCommitAge">30MINUTES</str>
145
+ <str name="maxCommitAge">1DAY</str>
146
+ -->
147
+ </deletionPolicy>
148
+
149
+ </mainIndex>
150
+
151
+ <!-- Enables JMX if and only if an existing MBeanServer is found, use
152
+ this if you want to configure JMX through JVM parameters. Remove
153
+ this to disable exposing Solr configuration and statistics to JMX.
154
+
155
+ If you want to connect to a particular server, specify the agentId
156
+ e.g. <jmx agentId="myAgent" />
157
+
158
+ If you want to start a new MBeanServer, specify the serviceUrl
159
+ e.g <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr" />
160
+
161
+ For more details see http://wiki.apache.org/solr/SolrJmx
162
+ -->
163
+ <jmx />
164
+
165
+ <!-- the default high-performance update handler -->
166
+ <updateHandler class="solr.DirectUpdateHandler2">
167
+
168
+ <!-- A prefix of "solr." for class names is an alias that
169
+ causes solr to search appropriate packages, including
170
+ org.apache.solr.(search|update|request|core|analysis)
171
+ -->
172
+
173
+ <!-- Perform a <commit/> automatically under certain conditions:
174
+ maxDocs - number of updates since last commit is greater than this
175
+ maxTime - oldest uncommited update (in ms) is this long ago -->
176
+ <autoCommit>
177
+ <maxDocs>1</maxDocs>
178
+ <maxTime>1</maxTime>
179
+ </autoCommit>
180
+
181
+
182
+ <!-- The RunExecutableListener executes an external command from a
183
+ hook such as postCommit or postOptimize.
184
+ exe - the name of the executable to run
185
+ dir - dir to use as the current working directory. default="."
186
+ wait - the calling thread waits until the executable returns. default="true"
187
+ args - the arguments to pass to the program. default=nothing
188
+ env - environment variables to set. default=nothing
189
+ -->
190
+ <!-- A postCommit event is fired after every commit or optimize command
191
+ <listener event="postCommit" class="solr.RunExecutableListener">
192
+ <str name="exe">solr/bin/snapshooter</str>
193
+ <str name="dir">.</str>
194
+ <bool name="wait">true</bool>
195
+ <arr name="args"> <str>arg1</str> <str>arg2</str> </arr>
196
+ <arr name="env"> <str>MYVAR=val1</str> </arr>
197
+ </listener>
198
+ -->
199
+ <!-- A postOptimize event is fired only after every optimize command
200
+ <listener event="postOptimize" class="solr.RunExecutableListener">
201
+ <str name="exe">snapshooter</str>
202
+ <str name="dir">solr/bin</str>
203
+ <bool name="wait">true</bool>
204
+ </listener>
205
+ -->
206
+
207
+ </updateHandler>
208
+
209
+ <!-- Use the following format to specify a custom IndexReaderFactory - allows for alternate
210
+ IndexReader implementations.
211
+ <indexReaderFactory name="IndexReaderFactory" class="package.class">
212
+ Parameters as required by the implementation
213
+ </indexReaderFactory >
214
+ -->
215
+
216
+
217
+ <query>
218
+ <!-- Maximum number of clauses in a boolean query... can affect
219
+ range or prefix queries that expand to big boolean
220
+ queries. An exception is thrown if exceeded. -->
221
+ <maxBooleanClauses>1024</maxBooleanClauses>
222
+
223
+
224
+ <!-- There are two implementations of cache available for Solr,
225
+ LRUCache, based on a synchronized LinkedHashMap, and
226
+ FastLRUCache, based on a ConcurrentHashMap. FastLRUCache has faster gets
227
+ and slower puts in single threaded operation and thus is generally faster
228
+ than LRUCache when the hit ratio of the cache is high (> 75%), and may be
229
+ faster under other scenarios on multi-cpu systems. -->
230
+ <!-- Cache used by SolrIndexSearcher for filters (DocSets),
231
+ unordered sets of *all* documents that match a query.
232
+ When a new searcher is opened, its caches may be prepopulated
233
+ or "autowarmed" using data from caches in the old searcher.
234
+ autowarmCount is the number of items to prepopulate. For LRUCache,
235
+ the autowarmed items will be the most recently accessed items.
236
+ Parameters:
237
+ class - the SolrCache implementation LRUCache or FastLRUCache
238
+ size - the maximum number of entries in the cache
239
+ initialSize - the initial capacity (number of entries) of
240
+ the cache. (seel java.util.HashMap)
241
+ autowarmCount - the number of entries to prepopulate from
242
+ and old cache.
243
+ -->
244
+ <!-- <filterCache
245
+ class="solr.FastLRUCache"
246
+ size="512"
247
+ initialSize="512"
248
+ autowarmCount="128"/> -->
249
+
250
+ <!-- Cache used to hold field values that are quickly accessible
251
+ by document id. The fieldValueCache is created by default
252
+ even if not configured here.
253
+ <fieldValueCache
254
+ class="solr.FastLRUCache"
255
+ size="512"
256
+ autowarmCount="128"
257
+ showItems="32"
258
+ />
259
+ -->
260
+
261
+ <!-- queryResultCache caches results of searches - ordered lists of
262
+ document ids (DocList) based on a query, a sort, and the range
263
+ of documents requested. -->
264
+ <!-- <queryResultCache
265
+ class="solr.LRUCache"
266
+ size="512"
267
+ initialSize="512"
268
+ autowarmCount="32"/> -->
269
+
270
+ <!-- documentCache caches Lucene Document objects (the stored fields for each document).
271
+ Since Lucene internal document ids are transient, this cache will not be autowarmed. -->
272
+ <!-- <documentCache
273
+ class="solr.LRUCache"
274
+ size="512"
275
+ initialSize="512"
276
+ autowarmCount="0"/> -->
277
+
278
+ <!-- If true, stored fields that are not requested will be loaded lazily.
279
+
280
+ This can result in a significant speed improvement if the usual case is to
281
+ not load all stored fields, especially if the skipped fields are large compressed
282
+ text fields.
283
+ -->
284
+ <enableLazyFieldLoading>true</enableLazyFieldLoading>
285
+
286
+ <!-- Example of a generic cache. These caches may be accessed by name
287
+ through SolrIndexSearcher.getCache(),cacheLookup(), and cacheInsert().
288
+ The purpose is to enable easy caching of user/application level data.
289
+ The regenerator argument should be specified as an implementation
290
+ of solr.search.CacheRegenerator if autowarming is desired. -->
291
+ <!--
292
+ <cache name="myUserCache"
293
+ class="solr.LRUCache"
294
+ size="4096"
295
+ initialSize="1024"
296
+ autowarmCount="1024"
297
+ regenerator="org.mycompany.mypackage.MyRegenerator"
298
+ />
299
+ -->
300
+
301
+ <!-- An optimization that attempts to use a filter to satisfy a search.
302
+ If the requested sort does not include score, then the filterCache
303
+ will be checked for a filter matching the query. If found, the filter
304
+ will be used as the source of document ids, and then the sort will be
305
+ applied to that.
306
+ <useFilterForSortedQuery>true</useFilterForSortedQuery>
307
+ -->
308
+
309
+ <!-- An optimization for use with the queryResultCache. When a search
310
+ is requested, a superset of the requested number of document ids
311
+ are collected. For example, if a search for a particular query
312
+ requests matching documents 10 through 19, and queryWindowSize is 50,
313
+ then documents 0 through 49 will be collected and cached. Any further
314
+ requests in that range can be satisfied via the cache. -->
315
+ <!-- <queryResultWindowSize>50</queryResultWindowSize> -->
316
+
317
+ <!-- Maximum number of documents to cache for any entry in the
318
+ queryResultCache. -->
319
+ <!-- <queryResultMaxDocsCached>200</queryResultMaxDocsCached> -->
320
+
321
+ <!-- a newSearcher event is fired whenever a new searcher is being prepared
322
+ and there is a current searcher handling requests (aka registered). -->
323
+ <!-- QuerySenderListener takes an array of NamedList and executes a
324
+ local query request for each NamedList in sequence. -->
325
+ <!-- <listener event="newSearcher" class="solr.QuerySenderListener">
326
+ <arr name="queries">
327
+ <lst> <str name="q">solr</str> <str name="start">0</str> <str name="rows">10</str> </lst>
328
+ <lst> <str name="q">rocks</str> <str name="start">0</str> <str name="rows">10</str> </lst>
329
+ <lst><str name="q">static newSearcher warming query from solrconfig.xml</str></lst>
330
+ </arr>
331
+ </listener>
332
+ -->
333
+
334
+ <!-- a firstSearcher event is fired whenever a new searcher is being
335
+ prepared but there is no current registered searcher to handle
336
+ requests or to gain autowarming data from. -->
337
+ <!-- <listener event="firstSearcher" class="solr.QuerySenderListener">
338
+ <arr name="queries">
339
+ <lst> <str name="q">fast_warm</str> <str name="start">0</str> <str name="rows">10</str> </lst>
340
+ <lst><str name="q">static firstSearcher warming query from solrconfig.xml</str></lst>
341
+ </arr>
342
+ </listener>
343
+ -->
344
+
345
+ <!-- If a search request comes in and there is no current registered searcher,
346
+ then immediately register the still warming searcher and use it. If
347
+ "false" then all requests will block until the first searcher is done
348
+ warming. -->
349
+ <useColdSearcher>false</useColdSearcher>
350
+
351
+ <!-- Maximum number of searchers that may be warming in the background
352
+ concurrently. An error is returned if this limit is exceeded. Recommend
353
+ 1-2 for read-only slaves, higher for masters w/o cache warming. -->
354
+ <maxWarmingSearchers>20</maxWarmingSearchers>
355
+
356
+ </query>
357
+
358
+ <!--
359
+ Let the dispatch filter handler /select?qt=XXX
360
+ handleSelect=true will use consistent error handling for /select and /update
361
+ handleSelect=false will use solr1.1 style error formatting
362
+ -->
363
+ <requestDispatcher handleSelect="true" >
364
+ <!--Make sure your system has some authentication before enabling remote streaming! -->
365
+ <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048000" />
366
+
367
+ <!-- Set HTTP caching related parameters (for proxy caches and clients).
368
+
369
+ To get the behaviour of Solr 1.2 (ie: no caching related headers)
370
+ use the never304="true" option and do not specify a value for
371
+ <cacheControl>
372
+ -->
373
+ <!-- <httpCaching never304="true"> -->
374
+ <!-- <httpCaching lastModifiedFrom="openTime"
375
+ etagSeed="Solr"> -->
376
+ <!-- lastModFrom="openTime" is the default, the Last-Modified value
377
+ (and validation against If-Modified-Since requests) will all be
378
+ relative to when the current Searcher was opened.
379
+ You can change it to lastModFrom="dirLastMod" if you want the
380
+ value to exactly corrispond to when the physical index was last
381
+ modified.
382
+
383
+ etagSeed="..." is an option you can change to force the ETag
384
+ header (and validation against If-None-Match requests) to be
385
+ differnet even if the index has not changed (ie: when making
386
+ significant changes to your config file)
387
+
388
+ lastModifiedFrom and etagSeed are both ignored if you use the
389
+ never304="true" option.
390
+ -->
391
+ <!-- If you include a <cacheControl> directive, it will be used to
392
+ generate a Cache-Control header, as well as an Expires header
393
+ if the value contains "max-age="
394
+
395
+ By default, no Cache-Control header is generated.
396
+
397
+ You can use the <cacheControl> option even if you have set
398
+ never304="true"
399
+ -->
400
+ <!-- <cacheControl>max-age=30, public</cacheControl> -->
401
+ <!-- </httpCaching> -->
402
+ </requestDispatcher>
403
+
404
+
405
+ <!-- requestHandler plugins... incoming queries will be dispatched to the
406
+ correct handler based on the path or the qt (query type) param.
407
+ Names starting with a '/' are accessed with the a path equal to the
408
+ registered name. Names without a leading '/' are accessed with:
409
+ http://host/app/select?qt=name
410
+ If no qt is defined, the requestHandler that declares default="true"
411
+ will be used.
412
+ -->
413
+ <requestHandler name="standard" class="solr.SearchHandler" default="true">
414
+ <!-- default values for query parameters -->
415
+ <lst name="defaults">
416
+ <str name="echoParams">explicit</str>
417
+ <!--
418
+ <int name="rows">10</int>
419
+ <str name="fl">*</str>
420
+ <str name="version">2.1</str>
421
+ -->
422
+ </lst>
423
+ </requestHandler>
424
+
425
+ <!-- Please refer to http://wiki.apache.org/solr/SolrReplication for details on configuring replication -->
426
+ <!--Master config-->
427
+ <!--
428
+ <requestHandler name="/replication" class="solr.ReplicationHandler" >
429
+ <lst name="master">
430
+ <str name="replicateAfter">commit</str>
431
+ <str name="confFiles">schema.xml,stopwords.txt</str>
432
+ </lst>
433
+ </requestHandler>
434
+ -->
435
+ <!-- Slave config-->
436
+ <!--
437
+ <requestHandler name="/replication" class="solr.ReplicationHandler">
438
+ <lst name="slave">
439
+ <str name="masterUrl">http://localhost:8983/solr/replication</str>
440
+ <str name="pollInterval">00:00:60</str>
441
+ </lst>
442
+ </requestHandler>
443
+ -->
444
+
445
+
446
+ <!--
447
+ Search components are registered to SolrCore and used by Search Handlers
448
+
449
+ By default, the following components are avaliable:
450
+
451
+ <searchComponent name="query" class="org.apache.solr.handler.component.QueryComponent" />
452
+ <searchComponent name="facet" class="org.apache.solr.handler.component.FacetComponent" />
453
+ <searchComponent name="mlt" class="org.apache.solr.handler.component.MoreLikeThisComponent" />
454
+ <searchComponent name="highlight" class="org.apache.solr.handler.component.HighlightComponent" />
455
+ <searchComponent name="stats" class="org.apache.solr.handler.component.StatsComponent" />
456
+ <searchComponent name="debug" class="org.apache.solr.handler.component.DebugComponent" />
457
+
458
+ Default configuration in a requestHandler would look like:
459
+ <arr name="components">
460
+ <str>query</str>
461
+ <str>facet</str>
462
+ <str>mlt</str>
463
+ <str>highlight</str>
464
+ <str>stats</str>
465
+ <str>debug</str>
466
+ </arr>
467
+
468
+ If you register a searchComponent to one of the standard names, that will be used instead.
469
+ To insert components before or after the 'standard' components, use:
470
+
471
+ <arr name="first-components">
472
+ <str>myFirstComponentName</str>
473
+ </arr>
474
+
475
+ <arr name="last-components">
476
+ <str>myLastComponentName</str>
477
+ </arr>
478
+ -->
479
+
480
+
481
+ <!-- Update request handler.
482
+
483
+ Note: Since solr1.1 requestHandlers requires a valid content type header if posted in
484
+ the body. For example, curl now requires: -H 'Content-type:text/xml; charset=utf-8'
485
+ The response format differs from solr1.1 formatting and returns a standard error code.
486
+
487
+ To enable solr1.1 behavior, remove the /update handler or change its path
488
+ -->
489
+ <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" />
490
+
491
+
492
+ <requestHandler name="/update/javabin" class="solr.BinaryUpdateRequestHandler" />
493
+
494
+ <!--
495
+ Analysis request handler. Since Solr 1.3. Use to return how a document is analyzed. Useful
496
+ for debugging and as a token server for other types of applications.
497
+
498
+ This is deprecated in favor of the improved DocumentAnalysisRequestHandler and FieldAnalysisRequestHandler
499
+
500
+ <requestHandler name="/analysis" class="solr.AnalysisRequestHandler" />
501
+ -->
502
+
503
+ <!--
504
+ An analysis handler that provides a breakdown of the analysis process of provided docuemnts. This handler expects a
505
+ (single) content stream with the following format:
506
+
507
+ <docs>
508
+ <doc>
509
+ <field name="id">1</field>
510
+ <field name="name">The Name</field>
511
+ <field name="text">The Text Value</field>
512
+ <doc>
513
+ <doc>...</doc>
514
+ <doc>...</doc>
515
+ ...
516
+ </docs>
517
+
518
+ Note: Each document must contain a field which serves as the unique key. This key is used in the returned
519
+ response to assoicate an analysis breakdown to the analyzed document.
520
+
521
+ Like the FieldAnalysisRequestHandler, this handler also supports query analysis by
522
+ sending either an "analysis.query" or "q" request paraemter that holds the query text to be analyized. It also
523
+ supports the "analysis.showmatch" parameter which when set to true, all field tokens that match the query
524
+ tokens will be marked as a "match".
525
+ -->
526
+ <requestHandler name="/analysis/document" class="solr.DocumentAnalysisRequestHandler" />
527
+
528
+ <!--
529
+ RequestHandler that provides much the same functionality as analysis.jsp. Provides the ability
530
+ to specify multiple field types and field names in the same request and outputs index-time and
531
+ query-time analysis for each of them.
532
+
533
+ Request parameters are:
534
+ analysis.fieldname - The field name whose analyzers are to be used
535
+ analysis.fieldtype - The field type whose analyzers are to be used
536
+ analysis.fieldvalue - The text for index-time analysis
537
+ q (or analysis.q) - The text for query time analysis
538
+ analysis.showmatch (true|false) - When set to true and when query analysis is performed, the produced
539
+ tokens of the field value analysis will be marked as "matched" for every
540
+ token that is produces by the query analysis
541
+ -->
542
+ <requestHandler name="/analysis/field" class="solr.FieldAnalysisRequestHandler" />
543
+
544
+
545
+ <!-- CSV update handler, loaded on demand -->
546
+ <requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy" />
547
+
548
+
549
+ <!--
550
+ Admin Handlers - This will register all the standard admin RequestHandlers. Adding
551
+ this single handler is equivalent to registering:
552
+
553
+ <requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />
554
+ <requestHandler name="/admin/system" class="org.apache.solr.handler.admin.SystemInfoHandler" />
555
+ <requestHandler name="/admin/plugins" class="org.apache.solr.handler.admin.PluginInfoHandler" />
556
+ <requestHandler name="/admin/threads" class="org.apache.solr.handler.admin.ThreadDumpHandler" />
557
+ <requestHandler name="/admin/properties" class="org.apache.solr.handler.admin.PropertiesRequestHandler" />
558
+ <requestHandler name="/admin/file" class="org.apache.solr.handler.admin.ShowFileRequestHandler" >
559
+
560
+ If you wish to hide files under ${solr.home}/conf, explicitly register the ShowFileRequestHandler using:
561
+ <requestHandler name="/admin/file" class="org.apache.solr.handler.admin.ShowFileRequestHandler" >
562
+ <lst name="invariants">
563
+ <str name="hidden">synonyms.txt</str>
564
+ <str name="hidden">anotherfile.txt</str>
565
+ </lst>
566
+ </requestHandler>
567
+ -->
568
+ <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
569
+
570
+ <!-- ping/healthcheck -->
571
+ <requestHandler name="/admin/ping" class="PingRequestHandler">
572
+ <lst name="defaults">
573
+ <str name="qt">standard</str>
574
+ <str name="q">solrpingquery</str>
575
+ <str name="echoParams">all</str>
576
+ </lst>
577
+ </requestHandler>
578
+
579
+ <!-- Echo the request contents back to the client -->
580
+ <requestHandler name="/debug/dump" class="solr.DumpRequestHandler" >
581
+ <lst name="defaults">
582
+ <str name="echoParams">explicit</str> <!-- for all params (including the default etc) use: 'all' -->
583
+ <str name="echoHandler">true</str>
584
+ </lst>
585
+ </requestHandler>
586
+
587
+ <!-- An example dedup update processor that creates the "id" field on the fly
588
+ based on the hash code of some other fields. This example has overwriteDupes
589
+ set to false since we are using the id field as the signatureField and Solr
590
+ will maintain uniqueness based on that anyway. -->
591
+ <!--
592
+ <updateRequestProcessorChain name="dedupe">
593
+ <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
594
+ <bool name="enabled">true</bool>
595
+ <str name="signatureField">id</str>
596
+ <bool name="overwriteDupes">false</bool>
597
+ <str name="fields">name,features,cat</str>
598
+ <str name="signatureClass">org.apache.solr.update.processor.Lookup3Signature</str>
599
+ </processor>
600
+ <processor class="solr.LogUpdateProcessorFactory" />
601
+ <processor class="solr.RunUpdateProcessorFactory" />
602
+ </updateRequestProcessorChain>
603
+ -->
604
+
605
+
606
+ <!-- queryResponseWriter plugins... query responses will be written using the
607
+ writer specified by the 'wt' request parameter matching the name of a registered
608
+ writer.
609
+ The "default" writer is the default and will be used if 'wt' is not specified
610
+ in the request. XMLResponseWriter will be used if nothing is specified here.
611
+ The json, python, and ruby writers are also available by default.
612
+
613
+ <queryResponseWriter name="xml" class="org.apache.solr.request.XMLResponseWriter" default="true"/>
614
+ <queryResponseWriter name="json" class="org.apache.solr.request.JSONResponseWriter"/>
615
+ <queryResponseWriter name="python" class="org.apache.solr.request.PythonResponseWriter"/>
616
+ <queryResponseWriter name="ruby" class="org.apache.solr.request.RubyResponseWriter"/>
617
+ <queryResponseWriter name="php" class="org.apache.solr.request.PHPResponseWriter"/>
618
+ <queryResponseWriter name="phps" class="org.apache.solr.request.PHPSerializedResponseWriter"/>
619
+
620
+ <queryResponseWriter name="custom" class="com.example.MyResponseWriter"/>
621
+ -->
622
+
623
+ <!-- XSLT response writer transforms the XML output by any xslt file found
624
+ in Solr's conf/xslt directory. Changes to xslt files are checked for
625
+ every xsltCacheLifetimeSeconds.
626
+ -->
627
+ <!-- <queryResponseWriter name="xslt" class="org.apache.solr.request.XSLTResponseWriter">
628
+ <int name="xsltCacheLifetimeSeconds">5</int>
629
+ </queryResponseWriter>
630
+ -->
631
+
632
+
633
+ <!-- example of registering a query parser
634
+ <queryParser name="lucene" class="org.apache.solr.search.LuceneQParserPlugin"/>
635
+ -->
636
+
637
+ <!-- example of registering a custom function parser
638
+ <valueSourceParser name="myfunc" class="com.mycompany.MyValueSourceParser" />
639
+ -->
640
+
641
+ <!-- config for the admin interface -->
642
+ <admin>
643
+ <defaultQuery>solr</defaultQuery>
644
+
645
+ <!-- configure a healthcheck file for servers behind a loadbalancer
646
+ <healthcheck type="file">server-enabled</healthcheck>
647
+ -->
648
+ </admin>
649
+
650
+ </config>
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Author: Stephen Nelson-Smith <stephen@atalanta-systems.com>
4
4
  # Author: Zachary Patten <zachary@jovelabs.com>
5
- # Copyright: Copyright (c) 2011-2012 Atalanta Systems Ltd
5
+ # Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
6
6
  # License: Apache License, Version 2.0
7
7
  #
8
8
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -42,12 +42,12 @@ Gem::Specification.new do |s|
42
42
  s.add_dependency("rake", ">= 0.9.2")
43
43
  s.add_dependency("ubuntu_ami", ">= 0.4.0")
44
44
  s.add_dependency("rspec", ">= 2.10.0")
45
- s.add_dependency("ztk")
45
+ s.add_dependency("ztk", ">= 0.0.15")
46
46
 
47
47
  s.add_development_dependency("simplecov", ">= 0.6.4")
48
- s.add_development_dependency("pry")
49
- s.add_development_dependency("yard")
50
- s.add_development_dependency("redcarpet")
48
+ s.add_development_dependency("pry", ">= 0")
49
+ s.add_development_dependency("yard", ">= 0")
50
+ s.add_development_dependency("redcarpet", ">= 0")
51
51
 
52
52
  s.files = `git ls-files`.split("\n")
53
53
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")