You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cm...@apache.org on 2013/08/11 14:19:39 UTC
svn commit: r1512909 [22/38] - in /lucene/dev/branches/lucene4956: ./
dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/
dev-tools/idea/lucene/suggest/ dev-tools/idea/solr/contrib/dataimporthandler/
dev-tools/idea/solr/core/src/test/ dev-too...
Modified: lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-sql.js
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-sql.js?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-sql.js (original)
+++ lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-sql.js Sun Aug 11 12:19:13 2013
@@ -1,2 +1,18 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|openda
tasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i,
null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]);
Modified: lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-vb.js
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-vb.js?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-vb.js (original)
+++ lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-vb.js Sun Aug 11 12:19:13 2013
@@ -1,2 +1,18 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r Â\xa0â¨â©"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"ââ'],["com",/^['\u2018\u2019].*/,null,"'ââ"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|param
array|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i,
null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]);
Modified: lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-wiki.js
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-wiki.js?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-wiki.js (original)
+++ lucene/dev/branches/lucene4956/lucene/tools/prettify/lang-wiki.js Sun Aug 11 12:19:13 2013
@@ -1,2 +1,18 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t Â\xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]);
PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]);
Modified: lucene/dev/branches/lucene4956/lucene/tools/prettify/prettify.css
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/tools/prettify/prettify.css?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/tools/prettify/prettify.css (original)
+++ lucene/dev/branches/lucene4956/lucene/tools/prettify/prettify.css Sun Aug 11 12:19:13 2013
@@ -1 +1,17 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
Modified: lucene/dev/branches/lucene4956/lucene/tools/prettify/prettify.js
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/tools/prettify/prettify.js?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/tools/prettify/prettify.js (original)
+++ lucene/dev/branches/lucene4956/lucene/tools/prettify/prettify.js Sun Aug 11 12:19:13 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
Modified: lucene/dev/branches/lucene4956/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/CHANGES.txt?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/CHANGES.txt (original)
+++ lucene/dev/branches/lucene4956/solr/CHANGES.txt Sun Aug 11 12:19:13 2013
@@ -24,8 +24,8 @@ $Id$
Versions of Major Components
---------------------
-Apache Tika 1.3
-Carrot2 3.6.2
+Apache Tika 1.4
+Carrot2 3.8.0
Velocity 1.7 and Velocity Tools 2.0
Apache UIMA 2.3.1
Apache ZooKeeper 3.4.5
@@ -33,7 +33,8 @@ Apache ZooKeeper 3.4.5
Upgrading from Solr 4.x
----------------------
-TBD...
+The "file" attribute of infoStream in solrconfig.xml is removed. Control this
+via your logging configuration (org.apache.solr.update.LoggingInfoStream) instead.
Detailed Change List
----------------------
@@ -44,11 +45,107 @@ Other Changes
* SOLR-4622: Hardcoded SolrCloud defaults for hostContext and hostPort that
were deprecated in 4.3 have been removed completely. (hossman)
+* SOLR-4792: Stop shipping a .war. (Robert Muir)
+
+
+================== 4.5.0 ==================
+
+Versions of Major Components
+---------------------
+Apache Tika 1.4
+Carrot2 3.8.0
+Velocity 1.7 and Velocity Tools 2.0
+Apache UIMA 2.3.1
+Apache ZooKeeper 3.4.5
+
+Upgrading from Solr 4.4.0
+----------------------
+
+* XML configuration parsing is now more strict about situations where a single
+ setting is allowed but multiple values are found. In the past, one value
+ would be chosen arbitrarily and silently. Starting with 4.5, configuration
+ parsing will fail with an error in situations like this. If you see error
+ messages such as "solrconfig.xml contains more than one value for config path:
+ indexConfig/infoStream" check your solrconfig.xml file for multiple occurrences
+ of "infoStream" and delete the one that you do not wish to use. See SOLR-4953
+ for more details.
+
+Detailed Change List
+----------------------
+
+New Features
+----------------------
+
+* SOLR-5126: Update Carrot2 clustering to version 3.8.0, update Morfologik
+ to version 1.7.1 (Dawid Weiss)
+
+* SOLR-2345: Enhanced geodist() to work with an RPT field, provided that the
+ field is referenced via 'sfield' and the query point is constant.
+ (David Smiley)
+
+* SOLR-5082: The encoding of URL-encoded query parameters can be changed with
+ the "ie" (input encoding) parameter, e.g. "select?q=m%FCller&ie=ISO-8859-1".
+ The default is UTF-8. To change the encoding of POSTed content, use the
+ "Content-Type" HTTP header. (Uwe Schindler, David Smiley)
+* SOLR-4221: Custom sharding (Noble Paul)
+* SOLR-4808: Persist and use router,replicationFactor and maxShardsPerNode at Collection and Shard level (Noble Paul, Shalin Mangar)
+* SOLR-5006: CREATESHARD command for 'implicit' shards (Noble Paul)
+* SOLR-5017: Allow sharding based on the value of a field (Noble Paul)
+* SOLR-4222:create custom sharded collection via collections API (Noble Paul)
+
+Bug Fixes
+----------------------
+
+* SOLR-3633: web UI reports an error if CoreAdminHandler says there are no
+ SolrCores (steffkes)
+
+* SOLR-4489: SpellCheckComponent can throw StringIndexOutOfBoundsException
+ when generating collations involving multiple word-break corrections.
+ (James Dyer)
+
+* SOLR-5107: Fixed NPE when using numTerms=0 in LukeRequestHandler
+ (Ahmet Arslan, hossman)
+
+* SOLR-4679, SOLR-4908, SOLR-5124: Text extracted from HTML or PDF files
+ using Solr Cell was missing ignorable whitespace, which is inserted by
+ TIKA for convenience to support plain text extraction without using the
+ HTML elements. This bug resulted in glued words. (hossman, Uwe Schindler)
+
+* SOLR-5121: zkcli usage help for makepath doesn't match actual command.
+ (Daniel Collins via Mark Miller)
+
+Optimizations
+----------------------
+
+* SOLR-5044: Admin UI - Note on Core-Admin about directories while creating
+ core (seffkes)
+
+Other Changes
+----------------------
+
+* SOLR-4708: Enable ClusteringComponent by default in collection1 example.
+ The solr.clustering.enabled system property is set to 'true' by default.
+ (ehatcher, Dawid Weiss)
+
+* SOLR-4914: Factor out core list persistence and discovery into a
+ new CoresLocator interface. (Alan Woodward)
+
+* SOLR-5056: Improve type safety of ConfigSolr class. (Alan Woodward)
+
+* SOLR-4951: Better randomization of MergePolicy in Solr tests (hossman)
+
+* SOLR-4953: Make XML Configuration parsing fail if an xpath matches multiple
+ nodes when only a single value is expected. (hossman)
+
+* The routing parameter "shard.keys" is deprecated as part of SOLR-5017 .The new parameter name is '_route_' .
+ The old parameter should continue to work for another release (Noble Paul)
+
+
================== 4.4.0 ==================
Versions of Major Components
---------------------
-Apache Tika 1.3
+Apache Tika 1.4
Carrot2 3.6.2
Velocity 1.7 and Velocity Tools 2.0
Apache UIMA 2.3.1
@@ -57,9 +154,30 @@ Apache ZooKeeper 3.4.5
Upgrading from Solr 4.3.0
----------------------
+* TieredMergePolicy and the various subtypes of LogMergePolicy no longer have
+ an explicit "setUseCompoundFile" method. Instead the behavior of new
+ segments is determined by the IndexWriter configuration, and the MergePolicy
+ is only consulted to determine if merge segements should use the compound
+ file format (based on the value of "setNoCFSRatio"). If you have explicitly
+ configured one of these classes using <mergePolicy> and include an init arg
+ like this...
+ <bool name="useCompoundFile">true</bool>
+ ...this will now be treated as if you specified...
+ <useCompoundFile>true</useCompoundFile>
+ ...directly on the <indexConfig> (overriding any value already set using that
+ syntax) and a warning will be logged to updated your configuration. Users
+ with an explicitly declared <mergePolicy> are encouraged to review the
+ current javadocs for their MergePolicy subclass and review their configured
+ options carefully. See SOLR-4941, SOLR-4934 and LUCENE-5038 for more
+ information.
+
* SOLR-4778: The signature of LogWatcher.registerListener has changed, from
(ListenerConfig, CoreContainer) to (ListenerConfig). Users implementing their
own LogWatcher classes will need to change their code accordingly.
+
+* LUCENE-5063: ByteField and ShortField have been deprecated and will be removed
+ in 5.0. If you are still using these field types, you should migrate your
+ fields to TrieIntField.
Detailed Change List
----------------------
@@ -69,8 +187,9 @@ New Features
* SOLR-3251: Dynamically add fields to schema. (Steve Rowe, Robert Muir, yonik)
-* SOLR-4761: Add option to plugin a merged segment warmer into solrconfig.xml
- (Mark Miller, Mike McCandless, Robert Muir)
+* SOLR-4761, SOLR-4976: Add option to plugin a merged segment warmer into solrconfig.xml.
+ Info about segments warmed in the background is available via infostream.
+ (Mark Miller, Ryan Ernst, Mike McCandless, Robert Muir)
* SOLR-3240: Add "spellcheck.collateMaxCollectDocs" option so that when testing
potential Collations against the index, SpellCheckComponent will only collect
@@ -84,6 +203,61 @@ New Features
* SOLR-4048: Add findRecursive method to NamedList. (Shawn Heisey)
+* SOLR-4228: SolrJ's SolrPing object has new methods for ping, enable, and
+ disable. (Shawn Heisey, hossman, Steve Rowe)
+
+* SOLR-4893: Extend FieldMutatingUpdateProcessor.ConfigurableFieldNameSelector
+ to enable checking whether a field matches any schema field. To select field
+ names that don't match any fields or dynamic fields in the schema, add
+ <bool name="fieldNameMatchesSchemaField">false</bool> to an update
+ processor's configuration in solrconfig.xml. (Steve Rowe, hossman)
+
+* SOLR-4921: Admin UI now supports adding documents to Solr (gsingers, steffkes)
+
+* SOLR-4916: Add support to write and read Solr index files and transaction log
+ files to and from HDFS. (phunt, Mark Miller, Greg Chanan)
+
+* SOLR-4892: Add FieldMutatingUpdateProcessorFactory subclasses
+ Parse{Date,Integer,Long,Float,Double,Boolean}UpdateProcessorFactory. These
+ factories have a default selector that matches all fields that either donât
+ match any schema field, or are in the schema with the corresponding
+ typeClass. If they see a value that is not a CharSequence, or can't parse
+ the value, they leave it as is. For multi-valued fields, these processors
+ will not convert any values unless all are first successfully parsed, or
+ already are instances of the target class. Ordering the processors, e.g.
+ [Boolean, Long, Double, Date] will allow e.g. values ["2", "5", "8.6"] to
+ be left alone by the Boolean and Long processors, but then converted by the
+ Double processor. (Steve Rowe, hossman)
+
+* SOLR-4972: Add PUT command to ZkCli tool. (Roman Shaposhnik via Mark Miller)
+
+* SOLR-4973: Adding getter method for defaultCollection on CloudSolrServer.
+ (Furkan KAMACI via Mark Miller)
+
+* SOLR-4897: Add solr/example/example-schemaless/, an example config set
+ for schemaless mode. (Steve Rowe)
+
+* SOLR-4655: Add option to have Overseer assign generic node names so that
+ new addresses can host shards without naming confusion. (Mark Miller, Anshum Gupta)
+
+* SOLR-4977: Add option to send IndexWriter's infostream to the logging system.
+ (Ryan Ernst via Robert Muir)
+
+* SOLR-4693: A "deleteshard" collections API that unloads all replicas of a given
+ shard and then removes it from the cluster state. It will remove only those shards
+ which are INACTIVE or have no range (created for custom sharding).
+ (Anshum Gupta, shalin)
+
+* SOLR-5003: CSV Update Handler supports optionally adding the line number/row id to
+ a document (gsingers)
+
+* SOLR-5010: Add support for creating copy fields to the Schema REST API (gsingers)
+
+* SOLR-4991: Register QParserPlugins as SolrInfoMBeans (ehatcher)
+
+* SOLR-4943: Add a new system wide info admin handler that exposes the system info
+ that could previously only be retrieved using a SolrCore. (Mark Miller)
+
Bug Fixes
----------------------
@@ -105,6 +279,137 @@ Bug Fixes
* SOLR-4842: Fix facet.field local params from affecting other facet.field's.
(ehatcher, hossman)
+* SOLR-4814: If a SolrCore cannot be created it should remove any information it
+ published about itself from ZooKeeper. (Mark Miller)
+
+* SOLR-4863: Removed non-existent attribute sourceId from dynamic JMX stats
+ to fix AttributeNotFoundException (suganuma, hossman via shalin)
+
+* SOLR-4891: JsonLoader should preserve field value types from the JSON content stream.
+ (Steve Rowe)
+
+* SOLR-4805: SolreCore#reload should not call preRegister and publish a DOWN state to
+ ZooKeeper. (Mark Miller, Jared Rodriguez)
+
+* SOLR-4899: When reconnecting after ZooKeeper expiration, we need to be willing to wait
+ forever, not just for 30 seconds. (Mark Miller)
+
+* SOLR-4920: JdbcDataSource incorrectly suppresses exceptions when retrieving a connection from
+ a JNDI context and falls back to trying to use DriverManager to obtain a connection. Additionally,
+ if a SQLException is thrown while initializing a connection, such as in setAutoCommit(), the
+ connection will not be closed. (Chris Eldredge via shalin)
+
+* SOLR-4915: The root cause should be returned to the user when a SolrCore create call fails.
+ (Mark Miller)
+
+* SOLR-4925 : Collection create throws NPE when 'numShards' param is missing (Noble Paul)
+
+* SOLR-4910: persisting solr.xml is broken. More stringent testing of persistence fixed
+ up a number of issues and several bugs with persistence. Among them are
+ > don't persisting implicit properties
+ > should persist zkHost in the <solr> tag (user's list)
+ > reloading a core that has transient="true" returned an error. reload should load
+ a transient core if it's not yet loaded.
+ > No longer persisting loadOnStartup or transient core properties if they were not
+ specified in the original solr.xml
+ > Testing flushed out the fact that you couldn't swap a core marked transient=true
+ loadOnStartup=false because it hadn't been loaded yet.
+ > SOLR-4862, CREATE fails to persist schema, config, and dataDir
+ > SOLR-4363, not persisting coreLoadThreads in <solr> tag
+ > SOLR-3900, logWatcher properties not persisted
+ > SOLR-4850, cores defined as loadOnStartup=true, transient=false can't be searched
+ (Erick Erickson)
+
+* SOLR-4923: Commits to non leaders as part of a request that also contain updates
+ can execute out of order. (hossman, Ricardo Merizalde, Mark Miller)
+
+* SOLR-4932: persisting solr.xml saves some parameters it shouldn't when they weren't
+ defined in the original. Benign since the default values are saved, but still incorrect.
+ (Erick Erickson, thanks Shawn Heisey for helping test!)
+
+* SOLR-4934, SOLR-4941: Fix handling of <mergePolicy> init arg
+ "useCompoundFile" needed after changes in LUCENE-5038 (hossman)
+
+* SOLR-4456: Admin UI: Displays dashboard even if Solr is down (steffkes)
+
+* SOLR-4949: UI Analysis page dropping characters from input box (steffkes)
+
+* SOLR-4960: Fix race conditions in shutdown of CoreContainer
+ and getCore that could cause a request to attempt to use a core that
+ has shut down. (yonik)
+
+* SOLR-4926: Fixed rare replication bug that normally only manifested when
+ using compound file format. (yonik, Mark Miller)
+
+* SOLR-4974: Outgrowth of SOLR-4960 that includes transient cores and pending cores
+ (Erick Erickson)
+
+* SOLR-3369: shards.tolerant=true is broken for group queries
+ (Russell Black, Martijn van Groningen, Jabouille jean Charles, Ryan McKinley via shalin)
+
+* SOLR-4452: Hunspell stemmer should not merge duplicate dictionary entries (janhoy)
+
+* SOLR-5000: ManagedIndexSchema doesn't persist uniqueKey tag after calling addFields
+ method. (Jun Ohtani, Steve Rowe)
+
+* SOLR-4982: Creating a core while referencing system properties looks like it loses files
+ Actually, instanceDir, config, dataDir and schema are not dereferenced properly
+ when creating cores that reference sys vars (e.g. &dataDir=${dir}). In the dataDir
+ case in particular this leads to the index being put in a directory literally named
+ ${dir} but on restart the sysvar will be properly dereferenced.
+
+* SOLR-4788: Multiple Entities DIH delta import: dataimporter.[entityName].last_index_time
+ is empty. (chakming wong, James Dyer via shalin)
+
+* SOLR-4978: Time is stripped from datetime column when imported into Solr date field
+ if convertType=true. (Bill Au, shalin)
+
+* SOLR-5019: spurious ConcurrentModificationException when spell check component
+ was in use with filters. (yonik)
+
+* SOLR-5018: The Overseer should avoid publishing the state for collections that do not
+ exist under the /collections zk node. (Mark Miller)
+
+* SOLR-5028,SOLR-5029: ShardHandlerFactory was not being created properly when
+ using new-style solr.xml, and was not being persisted properly when using
+ old-style. (Tomás Fernández Löbbe, Ryan Ernst, Alan Woodward)
+
+* SOLR-4997: The splitshard api doesn't call commit on new sub shards before
+ switching shard states. Multiple bugs related to sub shard recovery and
+ replication are also fixed. (shalin)
+
+* SOLR-5034: A facet.query that parses or analyzes down to a null Query would
+ throw a NPE. Fixed. (David Smiley)
+
+* SOLR-5039: Admin/Schema Browser displays -1 for term counts for multiValued fields.
+
+* SOLR-5037: The CSV loader now accepts field names that are not in the schema.
+ (gsingers, ehatcher, Steve Rowe)
+
+Optimizations
+----------------------
+
+* SOLR-4923: Commit to all nodes in a collection in parallel rather than locally and
+ then to all other nodes. (hossman, Ricardo Merizalde, Mark Miller)
+
+* SOLR-3838: Admin UI - Multiple filter queries are not supported in Query UI (steffkes)
+
+* SOLR-4719 : Admin UI - Default to wt=json on Query-Screen (steffkes)
+
+* SOLR-4611: Admin UI - Analysis-Urls with empty parameters create empty result table
+ (steffkes)
+
+* SOLR-4955: Admin UI - Show address bar on top for Schema + Config (steffkes)
+
+* SOLR-4412: New parameter langid.lcmap to map detected language code to be placed
+ in "language" field (janhoy)
+
+* SOLR-4815: Admin-UI - DIH: Let "commit" be checked by default (steffkes)
+
+* SOLR-5002: optimize numDocs(Query,DocSet) when filterCache is null (Robert Muir)
+
+* SOLR-5012: optimize search with filter when filterCache is null (Robert Muir)
+
Other Changes
----------------------
@@ -133,6 +438,26 @@ Other Changes
* SOLR-4448: Allow the solr internal load balancer to be more easily pluggable.
(Philip Hoy via Robert Muir)
+
+* SOLR-4224: Refactor JavaBinCodec input stream definition to enhance reuse.
+ (phunt via Mark Miller)
+
+* SOLR-4931: SolrDeletionPolicy onInit and onCommit methods changed to override
+ exact signatures (with generics) from IndexDeletionPolicy (shalin)
+
+* SOLR-4942: test improvements to randomize use of compound files (hosman)
+
+* SOLR-4966: CSS, JS and other files in webapp without license (uschindler,
+ steffkes)
+
+* SOLR-4986: Upgrade to Tika 1.4 (Markus Jelsma via janhoy)
+
+* SOLR-4948, SOLR-5009: Tidied up CoreContainer construction logic.
+ (Alan Woodward, Uwe Schindler, Steve Rowe)
+
+* LUCENE-5107: Properties files by Solr are now written in UTF-8 encoding,
+ Unicode is no longer escaped. Reading of legacy properties files with
+ \u escapes is still possible. (Uwe Schindler, Robert Muir)
================== 4.3.1 ==================
@@ -193,6 +518,33 @@ Bug Fixes
* SOLR-4734: Leader election fails with an NPE if there is no UpdateLog.
(Mark Miller, Alexander Eibner)
+* SOLR-4868: Setting the log level for the log4j root category results in
+ adding a new category, the empty string. (Shawn Heisey)
+
+* SOLR-4855: DistributedUpdateProcessor doesn't check for peer sync requests (shalin)
+
+* SOLR-4867: Admin UI - setting loglevel on root throws RangeError (steffkes)
+
+* SOLR-4870: RecentUpdates.update() does not increment numUpdates loop counter
+ (Alexey Kudinov via shalin)
+
+* SOLR-4877, LUCENE-5023: Removed SolrIndexSearcher#getDocSetNC()'s special
+ case for handling TermQuery to prevent NullPointerException if reader does
+ not have fields. (Bao Yang Yang, Uwe Schindler)
+
+* SOLR-4881: Fix DocumentAnalysisRequestHandler to correctly use
+ EmptyEntityResolver to prevent loading of external entities like
+ UpdateRequestHandler does. (Hossman, Uwe Schindler)
+
+* SOLR-4858: SolrCore reloading was broken when the UpdateLog
+ was enabled. (Hossman, Anshum Gupta, Alexey Serba, Mark Miller, yonik)
+
+* SOLR-4853: Fixed SolrJettyTestBase so it may be reused by end users
+ (hossman)
+
+* SOLR-4744: Update failure on sub shard is not propagated to clients by parent
+ shard (Anshum Gupta, yonik, shalin)
+
Other Changes
----------------------
Modified: lucene/dev/branches/lucene4956/solr/NOTICE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/NOTICE.txt?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/NOTICE.txt (original)
+++ lucene/dev/branches/lucene4956/solr/NOTICE.txt Sun Aug 11 12:19:13 2013
@@ -11,6 +11,8 @@ including, but not limited to:
- Apache Lucene Java
- Apache Commons
- Apache Geronimo (stax API)
+ - Apache Blur
+ - Apache Hadoop
This product includes the JQuery JavaScript library created by John Resig.
Copyright (c) 2010 John Resig, http://jquery.com/
@@ -21,6 +23,42 @@ Copyright (c) 2012, Michael Bostock, htt
This product includes the highlight.js Javascript library created by Ivan Sagalaev
Copyright (c) 2006, Ivan Sagalaev, https://github.com/isagalaev/highlight.js
+This product includes the ZeroClipboard.js Javascript library created by Jon Rohan, James M. Greene
+Copyright (c) 2012 Jon Rohan, James M. Greene, https://github.com/zeroclipboard/ZeroClipboard
+
+This product includes the Chosen Javascript library created by Patrick Filler
+Copyright (c) 2011-2013 by Harvest, https://github.com/harvesthq/chosen
+
+This product includes jquery.ajaxfileupload.js Javascript library created by Jordan Feldstein
+Copyright (c) 2011 Jordan Feldstein, https://github.com/jfeldstein/jQuery.AjaxFileUpload.js
+
+This product includes jquery.blockUI.js Javascript library created by Mike Alsup
+Copyright (c) 2007-2013 M. Alsup https://github.com/malsup/blockui/
+
+This product includes jquery.cookie.js Javascript library created by Klaus Hartl
+Copyright (c) 2013 Klaus Hartl, https://github.com/carhartl/jquery-cookie
+
+This product includes jquery.form Javascript library created by Mike Alsup
+Copyright 2006-2013 (c) M. Alsup, https://github.com/malsup/form/
+
+This product includes the jstree Javascript library created by Ivan Bozhanov
+Copyright (c) 2013 Ivan Bozhanov, https://github.com/vakata/jstree
+
+This product includes the Sammy.js Javascript library created by Aaron Quint
+Copyright (c) 2008 Aaron Quint, Quirkey NYC, LLC, https://github.com/quirkey/sammy
+
+This product includes jquery.timeago.js Javascript library by Ryan McGeary
+Copyright (c) 2008-2013, Ryan McGeary, https://github.com/rmm5t/jquery-timeago
+
+This product includes linker.js Javascript library created by Michalis Tzikas & Vasilis Lolos
+Copyright (C) 2011 by Michalis Tzikas & Vasilis Lolos, https://github.com/lolos/jquery-Linker/
+
+This product includes require.js Javascript library created by James Burke
+Copyright (C) 2010-2013 James Burke, https://github.com/jrburke/requirejs
+
+This product includes fugue icons created by Yusuke Kamiyamane
+Copyright (C) 2013 Yusuke Kamiyamane, https://github.com/yusukekamiyamane/fugue-icons
+
stax-utils library: https://stax-utils.dev.java.net/
Copyright (c) 2004, Christian Niles, unit12.net
Copyright (c) 2004, Sun Microsystems, Inc.
@@ -36,6 +74,12 @@ License: Common Development and Distribu
HSQL Database (HSQLDB): http://hsqldb.org/
License: http://hsqldb.org/web/hsqlLicense.html
+Jersey Core: https://jersey.java.net/
+License: Common Development and Distribution License (CDDL) v1.0 (https://glassfish.dev.java.net/public/CDDLv1.0.html)
+
+The HdfsDirectory and BlockDirectory were derived from
+the Apache Blur incubating project and are Apache License 2.0.
+
=========================================================================
== Apache Lucene Notice ==
=========================================================================
@@ -510,3 +554,11 @@ Restlet is a registered trademark of Res
This product contains software developed by the Restlet project.
See http://www.restlet.org/
+
+=========================================================================
+== Protocol Buffers Notice ==
+=========================================================================
+
+Protocol Buffers - Google's data interchange format
+Copyright 2008 Google Inc.
+http://code.google.com/apis/protocolbuffers/
Modified: lucene/dev/branches/lucene4956/solr/README.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/README.txt?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/README.txt (original)
+++ lucene/dev/branches/lucene4956/solr/README.txt Sun Aug 11 12:19:13 2013
@@ -41,14 +41,10 @@ Files included in an Apache Solr binary
example/
A self-contained example Solr instance, complete with a sample
- configuration, documents to index, and the Jetty Servlet container.
+ configuration and documents to index.
Please see example/README.txt for information about running this
example.
-dist/solr-XX.war
- The Apache Solr Application. Deploy this WAR file to any servlet
- container to run Apache Solr.
-
dist/solr-<component>-XX.jar
The Apache Solr libraries. To compile Apache Solr Plugins,
one or more of these will be required. The core library is
Modified: lucene/dev/branches/lucene4956/solr/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/build.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/build.xml (original)
+++ lucene/dev/branches/lucene4956/solr/build.xml Sun Aug 11 12:19:13 2013
@@ -25,7 +25,7 @@
<echo message="And for developers:"/>
<echo message="Use 'ant clean' to clean compiled files." />
<echo message="Use 'ant compile' to compile the source code." />
- <echo message="Use 'ant dist' to build the project WAR and JAR files." />
+ <echo message="Use 'ant dist' to build the project JAR files." />
<echo message="Use 'ant documentation' to build documentation." />
<echo message="Use 'ant generate-maven-artifacts' to generate maven artifacts." />
<echo message="Use 'ant package' to generate zip, tgz for distribution." />
@@ -55,7 +55,7 @@
</delete>
<echo>See ${example}/README.txt for how to run the Solr example configuration.</echo>
</target>
-
+
<target name="run-example" depends="example"
description="Run Solr interactively, via Jetty. -Dexample.debug=true to enable JVM debugger">
<property name="example.solr.home" location="example/solr"/>
@@ -226,7 +226,21 @@
</target>
<!-- Validation (license/notice/api checks). -->
- <target name="validate" depends="check-licenses,rat-sources,check-forbidden-apis" description="Validate stuff." />
+ <target name="validate" depends="check-example-lucene-match-version,check-licenses,rat-sources,check-forbidden-apis" description="Validate stuff." />
+
+ <target name="check-example-lucene-match-version">
+ <fail message="Some example solrconfig.xml files do not refer to the correct luceneMatchVersion: ${tests.luceneMatchVersion}">
+ <condition>
+ <resourcecount when="greater" count="0">
+ <fileset dir="${example}" includes="**/solrconfig.xml">
+ <not>
+ <contains text="<luceneMatchVersion>${tests.luceneMatchVersion}<" casesensitive="no"/>
+ </not>
+ </fileset>
+ </resourcecount>
+ </condition>
+ </fail>
+ </target>
<target name="check-licenses" depends="compile-tools,resolve,load-custom-tasks" description="Validate license stuff.">
<license-check-macro dir="${basedir}" licensedir="${common-solr.dir}/licenses">
@@ -251,7 +265,7 @@
<!-- TODO: Make the forbidden API checks per module! Also remove failOnMissingClasses="false" below!!! -->
<target name="-forbidden-apis-classpath">
<path id="forbidden-apis.classpath">
- <fileset dir="${basedir}" includes="**/lib/*.jar"/>
+ <fileset dir="${basedir}" includes="**/lib/*.jar,**/test-lib/*.jar"/>
<dirset dir="${basedir}/build" includes="**/classes/*"/>
<path refid="solr.lucene.libs"/>
<path refid="classpath"/>
@@ -265,7 +279,7 @@
<bundledSignatures name="jdk-deprecated-${javac.target}"/>
<bundledSignatures name="commons-io-unsafe-${commons-io.version}"/>
<signaturesFileSet dir="${common.dir}/tools/forbiddenApis">
- <include name="executors.txt" />
+ <include name="base.txt" />
<include name="servlet-api.txt" />
</signaturesFileSet>
<fileset dir="${basedir}/build">
@@ -291,12 +305,13 @@
<!-- rat sources -->
<!-- rat-sources-typedef is *not* a useless dependency. do not remove -->
- <target name="rat-sources" depends="rat-sources-typedef">
+ <target name="rat-sources" depends="rat-sources-typedef,common.rat-sources">
<subant target="rat-sources" inheritall="false" >
<propertyset refid="uptodate.and.compiled.properties"/>
<fileset dir="core" includes="build.xml"/>
<fileset dir="solrj" includes="build.xml"/>
<fileset dir="test-framework" includes="build.xml"/>
+ <fileset dir="webapp" includes="build.xml"/>
</subant>
<contrib-crawl target="rat-sources" failonerror="true"/>
</target>
@@ -476,7 +491,7 @@
includes="example/**/*.sh example/**/bin/" />
<tarfileset dir="."
prefix="${fullnamever}"
- includes="dist/*.jar dist/*.war
+ includes="dist/*.jar
dist/solrj-lib/*
dist/test-framework/**"
excludes="**/*.tgz **/*.zip **/*.md5 **/*src*.jar **/*docs*.jar **/*.sha1" />
Modified: lucene/dev/branches/lucene4956/solr/cloud-dev/solrcloud-start.sh
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/cloud-dev/solrcloud-start.sh?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/cloud-dev/solrcloud-start.sh (original)
+++ lucene/dev/branches/lucene4956/solr/cloud-dev/solrcloud-start.sh Sun Aug 11 12:19:13 2013
@@ -25,7 +25,7 @@ cp -r -f example example4
cp -r -f example example5
cp -r -f example example6
-java -classpath "example/solr-webapp/webapp/WEB-INF/lib/*:example/lib/ext/" org.apache.solr.cloud.ZkCLI -cmd bootstrap -zkhost 127.0.0.1:9983 -solrhome example/solr -runzk 8983
+java -classpath "example/solr-webapp/webapp/WEB-INF/lib/*:example/lib/ext/*" org.apache.solr.cloud.ZkCLI -cmd bootstrap -zkhost 127.0.0.1:9983 -solrhome example/solr -runzk 8983
cd example
java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -jar start.jar 1>example.log 2>&1 &
Modified: lucene/dev/branches/lucene4956/solr/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/common-build.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/common-build.xml (original)
+++ lucene/dev/branches/lucene4956/solr/common-build.xml Sun Aug 11 12:19:13 2013
@@ -97,6 +97,12 @@
<path id="solr.test.base.classpath">
<pathelement path="${common-solr.dir}/build/solr-test-framework/classes/java"/>
+ <fileset dir="${common-solr.dir}/test-framework/lib">
+ <include name="*.jar"/>
+ <exclude name="junit-*.jar" />
+ <exclude name="randomizedtesting-runner-*.jar" />
+ <exclude name="ant*.jar" />
+ </fileset>
<pathelement path="${build.dir}/test-files"/>
<path refid="test.base.classpath"/>
</path>
@@ -118,6 +124,12 @@
</sequential>
</macrodef>
+ <!-- we don't want to run HDFS tests on Windows, because they require Cygwin.
+ If you have Cygwin, you can override this property on command line: -->
+ <condition property="tests.disableHdfs" value="true">
+ <os family="windows"/>
+ </condition>
+
<target name="validate" depends="compile-tools">
</target>
Modified: lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/ivy.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/ivy.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/ivy.xml Sun Aug 11 12:19:13 2013
@@ -20,9 +20,9 @@
<info organisation="org.apache.solr" module="analysis-extras"/>
<dependencies>
<dependency org="com.ibm.icu" name="icu4j" rev="49.1" transitive="false"/>
- <dependency org="org.carrot2" name="morfologik-polish" rev="1.5.5" transitive="false"/>
- <dependency org="org.carrot2" name="morfologik-fsa" rev="1.5.5" transitive="false"/>
- <dependency org="org.carrot2" name="morfologik-stemming" rev="1.5.5" transitive="false"/>
+ <dependency org="org.carrot2" name="morfologik-polish" rev="1.7.1" transitive="false"/>
+ <dependency org="org.carrot2" name="morfologik-fsa" rev="1.7.1" transitive="false"/>
+ <dependency org="org.carrot2" name="morfologik-stemming" rev="1.7.1" transitive="false"/>
<exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
</dependencies>
</ivy-module>
Modified: lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/src/java/org/apache/solr/schema/ICUCollationField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/src/java/org/apache/solr/schema/ICUCollationField.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/src/java/org/apache/solr/schema/ICUCollationField.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/src/java/org/apache/solr/schema/ICUCollationField.java Sun Aug 11 12:19:13 2013
@@ -19,7 +19,6 @@ package org.apache.solr.schema;
import java.io.IOException;
import java.io.InputStream;
-import java.io.StringReader;
import java.util.Map;
import org.apache.commons.io.IOUtils;
@@ -27,8 +26,6 @@ import org.apache.lucene.analysis.Analyz
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.TermToBytesRefAttribute;
import org.apache.lucene.collation.ICUCollationKeyAnalyzer;
-import org.apache.lucene.index.GeneralField;
-import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.StorableField;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.SortField;
@@ -240,7 +237,7 @@ public class ICUCollationField extends F
TokenStream source;
try {
- source = analyzer.tokenStream(field, new StringReader(part));
+ source = analyzer.tokenStream(field, part);
source.reset();
} catch (IOException e) {
throw new RuntimeException("Unable to initialize TokenStream to analyze range part: " + part, e);
Modified: lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/src/test-files/analysis-extras/solr/collection1/conf/solrconfig-icucollate.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/src/test-files/analysis-extras/solr/collection1/conf/solrconfig-icucollate.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/src/test-files/analysis-extras/solr/collection1/conf/solrconfig-icucollate.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/analysis-extras/src/test-files/analysis-extras/solr/collection1/conf/solrconfig-icucollate.xml Sun Aug 11 12:19:13 2013
@@ -19,6 +19,9 @@
<config>
<luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
+ <indexConfig>
+ <useCompoundFile>${useCompoundFile:false}</useCompoundFile>
+ </indexConfig>
<requestHandler name="standard" class="solr.StandardRequestHandler"></requestHandler>
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>
</config>
Modified: lucene/dev/branches/lucene4956/solr/contrib/clustering/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/clustering/ivy.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/clustering/ivy.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/clustering/ivy.xml Sun Aug 11 12:19:13 2013
@@ -19,14 +19,25 @@
<ivy-module version="2.0">
<info organisation="org.apache.solr" module="clustering"/>
<dependencies>
- <dependency org="org.carrot2" name="carrot2-mini" rev="3.6.2" transitive="false"/>
- <dependency org="org.carrot2.attributes" name="attributes-binder" rev="1.0.1" transitive="false"/>
- <dependency org="com.carrotsearch" name="hppc" rev="0.4.1" transitive="false"/>
+ <dependency org="org.carrot2" name="carrot2-mini" rev="3.8.0" transitive="false"/>
+
+ <dependency org="com.carrotsearch" name="hppc" rev="0.5.2" transitive="false"/>
+ <dependency org="org.carrot2.attributes" name="attributes-binder" rev="1.2.0" transitive="false"/>
+ <dependency org="org.simpleframework" name="simple-xml" rev="2.7" transitive="false"/>
+
+ <dependency org="org.apache.mahout" name="mahout-math" rev="0.6" transitive="false"/>
+ <dependency org="org.apache.mahout" name="mahout-collections" rev="1.0" transitive="false"/>
+
<dependency org="org.codehaus.jackson" name="jackson-core-asl" rev="1.7.4" transitive="false"/>
<dependency org="org.codehaus.jackson" name="jackson-mapper-asl" rev="1.7.4" transitive="false"/>
- <dependency org="org.apache.mahout" name="mahout-collections" rev="1.0" transitive="false"/>
- <dependency org="org.apache.mahout" name="mahout-math" rev="0.6" transitive="false"/>
- <dependency org="org.simpleframework" name="simple-xml" rev="2.6.4" transitive="false"/>
+
+ <!--
+ Included as part of Solr's environment.
+
+ com.google.guava:guava:jar:14.0.1:compile
+ commons-lang:commons-lang:jar:2.6:compile
+ -->
+
<exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
</dependencies>
</ivy-module>
Modified: lucene/dev/branches/lucene4956/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/DocumentClusteringEngine.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/DocumentClusteringEngine.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/DocumentClusteringEngine.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/DocumentClusteringEngine.java Sun Aug 11 12:19:13 2013
@@ -37,8 +37,7 @@ public abstract class DocumentClustering
public abstract NamedList cluster(SolrParams solrParams);
/**
- * Experimental. Subject to change before the next release
- *
+ * Experimental. Subject to change before the next release
*
* Cluster the set of docs. Clustering of documents is often an expensive task that can take a long time.
* @param docs The docs to cluster. If null, cluster all docs as in {@link #cluster(org.apache.solr.common.params.SolrParams)}
Modified: lucene/dev/branches/lucene4956/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java Sun Aug 11 12:19:13 2013
@@ -77,6 +77,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.common.io.Closeables;
+import com.google.common.io.Closer;
/**
* Search results clustering engine based on Carrot2 clustering algorithms.
@@ -140,7 +141,13 @@ public class CarrotClusteringEngine exte
+ ". Using the default " + resource + " from Carrot JAR.");
return new IResource[] {};
} finally {
- if (resourceStream != null) Closeables.closeQuietly(resourceStream);
+ if (resourceStream != null) {
+ try {
+ resourceStream.close();
+ } catch (IOException e) {
+ // ignore.
+ }
+ }
}
log.info("Loaded Solr resource: " + resourceName);
Modified: lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/solrconfig.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/solrconfig.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/solrconfig.xml Sun Aug 11 12:19:13 2013
@@ -28,6 +28,7 @@
<indexConfig>
<lockType>single</lockType>
+ <useCompoundFile>${useCompoundFile:false}</useCompoundFile>
</indexConfig>
<!-- Enables JMX if and only if an existing MBeanServer is found, use
Modified: lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/ClusteringComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/ClusteringComponentTest.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/ClusteringComponentTest.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/ClusteringComponentTest.java Sun Aug 11 12:19:13 2013
@@ -52,7 +52,7 @@ public class ClusteringComponentTest ext
SolrRequestHandler handler = core.getRequestHandler("standard");
SolrQueryResponse rsp;
rsp = new SolrQueryResponse();
- rsp.add("responseHeader", new SimpleOrderedMap());
+ rsp.add("responseHeader", new SimpleOrderedMap<Object>());
SolrQueryRequest req = new LocalSolrQueryRequest(core, params);
handler.handleRequest(req, rsp);
NamedList values = rsp.getValues();
@@ -70,7 +70,7 @@ public class ClusteringComponentTest ext
handler = core.getRequestHandler("docClustering");
rsp = new SolrQueryResponse();
- rsp.add("responseHeader", new SimpleOrderedMap());
+ rsp.add("responseHeader", new SimpleOrderedMap<Object>());
req = new LocalSolrQueryRequest(core, params);
handler.handleRequest(req, rsp);
values = rsp.getValues();
Modified: lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/EchoClusteringAlgorithm.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/EchoClusteringAlgorithm.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/EchoClusteringAlgorithm.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/EchoClusteringAlgorithm.java Sun Aug 11 12:19:13 2013
@@ -15,7 +15,6 @@ package org.apache.solr.handler.clusteri
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import java.util.Collections;
import java.util.List;
import org.carrot2.core.Cluster;
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler-extras/src/test-files/dihextras/solr/collection1/conf/dataimport-solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler-extras/src/test-files/dihextras/solr/collection1/conf/dataimport-solrconfig.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler-extras/src/test-files/dihextras/solr/collection1/conf/dataimport-solrconfig.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler-extras/src/test-files/dihextras/solr/collection1/conf/dataimport-solrconfig.xml Sun Aug 11 12:19:13 2013
@@ -18,6 +18,9 @@
<config>
<luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
+ <indexConfig>
+ <useCompoundFile>${useCompoundFile:false}</useCompoundFile>
+ </indexConfig>
<!-- Used to specify an alternate directory to hold all index data
other than the default ./data under the Solr home.
@@ -26,8 +29,6 @@
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>
- <!-- <indexConfig> section could go here, but we want the defaults -->
-
<!-- the default high-performance update handler -->
<updateHandler class="solr.DirectUpdateHandler2">
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/build.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/build.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/build.xml Sun Aug 11 12:19:13 2013
@@ -17,7 +17,7 @@
limitations under the License.
-->
-<project name="solr-dataimporthandler" default="default">
+<project name="solr-dataimporthandler" default="default" xmlns:ivy="antlib:org.apache.ivy.ant">
<description>
Data Import Handler
@@ -26,6 +26,20 @@
<!-- the tests have some parallel problems: writability to single copy of dataimport.properties -->
<property name="tests.jvms.override" value="1"/>
+ <property name="test.lib.dir" location="test-lib"/>
+
<import file="../contrib-build.xml"/>
+ <path id="test.classpath">
+ <path refid="solr.test.base.classpath"/>
+ <fileset dir="${test.lib.dir}" includes="*.jar"/>
+ </path>
+
+ <target name="resolve" depends="ivy-availability-check,ivy-fail,ivy-configure">
+ <sequential>
+ <ivy:retrieve conf="compile" type="jar,bundle" sync="${ivy.sync}" log="download-only"/>
+ <ivy:retrieve conf="test" type="jar,bundle,test" sync="${ivy.sync}" log="download-only"
+ pattern="${test.lib.dir}/[artifact]-[revision](-[classifier]).[ext]"/>
+ </sequential>
+ </target>
</project>
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/ivy.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/ivy.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/ivy.xml Sun Aug 11 12:19:13 2013
@@ -17,10 +17,17 @@
under the License.
-->
<ivy-module version="2.0">
- <info organisation="org.apache.solr" module="dataimporthandler"/>
- <dependencies>
- <dependency org="javax.activation" name="activation" rev="1.1" transitive="false"/>
- <dependency org="javax.mail" name="mail" rev="1.4.1" transitive="false"/>
- <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
- </dependencies>
+ <info organisation="org.apache.solr" module="dataimporthandler"/>
+ <configurations>
+ <conf name="compile" transitive="false"/>
+ <conf name="test" transitive="false"/>
+ </configurations>
+ <dependencies>
+ <dependency org="javax.activation" name="activation" rev="1.1" conf="compile->*"/>
+ <dependency org="javax.mail" name="mail" rev="1.4.1" conf="compile->*"/>
+
+ <dependency org="org.easymock" name="easymock" rev="3.0" conf="test->*"/>
+
+ <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
+ </dependencies>
</ivy-module>
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java Sun Aug 11 12:19:13 2013
@@ -134,13 +134,15 @@ public class DocBuilder {
indexerNamespace.put(INDEX_START_TIME, dataImporter.getIndexStartTime());
indexerNamespace.put("request", new HashMap<String,Object>(reqParams.getRawParams()));
for (Entity entity : dataImporter.getConfig().getEntities()) {
- String key = entity.getName() + "." + SolrWriter.LAST_INDEX_KEY;
- Object lastIndex = persistedProperties.get(key);
- if (lastIndex != null && lastIndex instanceof Date) {
- indexerNamespace.put(key, lastIndex);
+ Map<String, Object> entityNamespace = new HashMap<String, Object>();
+ String key = SolrWriter.LAST_INDEX_KEY;
+ Object lastIndex = persistedProperties.get(entity.getName() + "." + key);
+ if (lastIndex != null) {
+ entityNamespace.put(SolrWriter.LAST_INDEX_KEY, lastIndex);
} else {
- indexerNamespace.put(key, EPOCH);
+ entityNamespace.put(SolrWriter.LAST_INDEX_KEY, EPOCH);
}
+ indexerNamespace.put(entity.getName(), entityNamespace);
}
resolver.addNamespace(ConfigNameConstants.IMPORTER_NS_SHORT, indexerNamespace);
resolver.addNamespace(ConfigNameConstants.IMPORTER_NS, indexerNamespace);
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/JdbcDataSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/JdbcDataSource.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/JdbcDataSource.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/JdbcDataSource.java Sun Aug 11 12:19:13 2013
@@ -22,6 +22,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
import java.sql.*;
import java.util.*;
import java.util.concurrent.Callable;
@@ -132,66 +134,90 @@ public class JdbcDataSource extends
+ url);
long start = System.currentTimeMillis();
Connection c = null;
- try {
- if(url != null){
+
+ if (jndiName != null) {
+ c = getFromJndi(initProps, jndiName);
+ } else if (url != null) {
+ try {
c = DriverManager.getConnection(url, initProps);
- } else if(jndiName != null){
- InitialContext ctx = new InitialContext();
- Object jndival = ctx.lookup(jndiName);
- if (jndival instanceof javax.sql.DataSource) {
- javax.sql.DataSource dataSource = (javax.sql.DataSource) jndival;
- String user = (String) initProps.get("user");
- String pass = (String) initProps.get("password");
- if(user == null || user.trim().equals("")){
- c = dataSource.getConnection();
- } else {
- c = dataSource.getConnection(user, pass);
- }
- } else {
- throw new DataImportHandlerException(SEVERE,
- "the jndi name : '"+jndiName +"' is not a valid javax.sql.DataSource");
- }
+ } catch (SQLException e) {
+ // DriverManager does not allow you to use a driver which is not loaded through
+ // the class loader of the class which is trying to make the connection.
+ // This is a workaround for cases where the user puts the driver jar in the
+ // solr.home/lib or solr.home/core/lib directories.
+ Driver d = (Driver) DocBuilder.loadClass(driver, context.getSolrCore()).newInstance();
+ c = d.connect(url, initProps);
}
- } catch (SQLException e) {
- // DriverManager does not allow you to use a driver which is not loaded through
- // the class loader of the class which is trying to make the connection.
- // This is a workaround for cases where the user puts the driver jar in the
- // solr.home/lib or solr.home/core/lib directories.
- Driver d = (Driver) DocBuilder.loadClass(driver, context.getSolrCore()).newInstance();
- c = d.connect(url, initProps);
}
if (c != null) {
- if (Boolean.parseBoolean(initProps.getProperty("readOnly"))) {
- c.setReadOnly(true);
- // Add other sane defaults
- c.setAutoCommit(true);
- c.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
- c.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);
- }
- if (!Boolean.parseBoolean(initProps.getProperty("autoCommit"))) {
- c.setAutoCommit(false);
- }
- String transactionIsolation = initProps.getProperty("transactionIsolation");
- if ("TRANSACTION_READ_UNCOMMITTED".equals(transactionIsolation)) {
- c.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
- } else if ("TRANSACTION_READ_COMMITTED".equals(transactionIsolation)) {
- c.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
- } else if ("TRANSACTION_REPEATABLE_READ".equals(transactionIsolation)) {
- c.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
- } else if ("TRANSACTION_SERIALIZABLE".equals(transactionIsolation)) {
- c.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
- } else if ("TRANSACTION_NONE".equals(transactionIsolation)) {
- c.setTransactionIsolation(Connection.TRANSACTION_NONE);
- }
- String holdability = initProps.getProperty("holdability");
- if ("CLOSE_CURSORS_AT_COMMIT".equals(holdability)) {
- c.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);
- } else if ("HOLD_CURSORS_OVER_COMMIT".equals(holdability)) {
- c.setHoldability(ResultSet.HOLD_CURSORS_OVER_COMMIT);
+ try {
+ initializeConnection(c, initProps);
+ } catch (SQLException e) {
+ try {
+ c.close();
+ } catch (SQLException e2) {
+ LOG.warn("Exception closing connection during cleanup", e2);
+ }
+
+ throw new DataImportHandlerException(SEVERE, "Exception initializing SQL connection", e);
}
}
LOG.info("Time taken for getConnection(): "
- + (System.currentTimeMillis() - start));
+ + (System.currentTimeMillis() - start));
+ return c;
+ }
+
+ private void initializeConnection(Connection c, final Properties initProps)
+ throws SQLException {
+ if (Boolean.parseBoolean(initProps.getProperty("readOnly"))) {
+ c.setReadOnly(true);
+ // Add other sane defaults
+ c.setAutoCommit(true);
+ c.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
+ c.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);
+ }
+ if (!Boolean.parseBoolean(initProps.getProperty("autoCommit"))) {
+ c.setAutoCommit(false);
+ }
+ String transactionIsolation = initProps.getProperty("transactionIsolation");
+ if ("TRANSACTION_READ_UNCOMMITTED".equals(transactionIsolation)) {
+ c.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
+ } else if ("TRANSACTION_READ_COMMITTED".equals(transactionIsolation)) {
+ c.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
+ } else if ("TRANSACTION_REPEATABLE_READ".equals(transactionIsolation)) {
+ c.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
+ } else if ("TRANSACTION_SERIALIZABLE".equals(transactionIsolation)) {
+ c.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
+ } else if ("TRANSACTION_NONE".equals(transactionIsolation)) {
+ c.setTransactionIsolation(Connection.TRANSACTION_NONE);
+ }
+ String holdability = initProps.getProperty("holdability");
+ if ("CLOSE_CURSORS_AT_COMMIT".equals(holdability)) {
+ c.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);
+ } else if ("HOLD_CURSORS_OVER_COMMIT".equals(holdability)) {
+ c.setHoldability(ResultSet.HOLD_CURSORS_OVER_COMMIT);
+ }
+ }
+
+ private Connection getFromJndi(final Properties initProps, final String jndiName) throws NamingException,
+ SQLException {
+
+ Connection c = null;
+ InitialContext ctx = new InitialContext();
+ Object jndival = ctx.lookup(jndiName);
+ if (jndival instanceof javax.sql.DataSource) {
+ javax.sql.DataSource dataSource = (javax.sql.DataSource) jndival;
+ String user = (String) initProps.get("user");
+ String pass = (String) initProps.get("password");
+ if(user == null || user.trim().equals("")){
+ c = dataSource.getConnection();
+ } else {
+ c = dataSource.getConnection(user, pass);
+ }
+ } else {
+ throw new DataImportHandlerException(SEVERE,
+ "the jndi name : '"+jndiName +"' is not a valid javax.sql.DataSource");
+ }
return c;
}
};
@@ -307,7 +333,7 @@ public class JdbcDataSource extends
result.put(colName, resultSet.getDouble(colName));
break;
case Types.DATE:
- result.put(colName, resultSet.getDate(colName));
+ result.put(colName, resultSet.getTimestamp(colName));
break;
case Types.BOOLEAN:
result.put(colName, resultSet.getBoolean(colName));
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SimplePropertiesWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SimplePropertiesWriter.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SimplePropertiesWriter.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SimplePropertiesWriter.java Sun Aug 11 12:19:13 2013
@@ -22,9 +22,10 @@ import static org.apache.solr.handler.da
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -33,6 +34,7 @@ import java.util.Locale;
import java.util.Map;
import java.util.Properties;
+import org.apache.lucene.util.IOUtils;
import org.apache.solr.core.SolrCore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -179,7 +181,7 @@ public class SimplePropertiesWriter exte
@Override
public void persist(Map<String, Object> propObjs) {
- OutputStream propOutput = null;
+ Writer propOutput = null;
Properties existingProps = mapToProperties(readIndexerProperties());
Properties newProps = mapToProperties(propObjs);
try {
@@ -189,18 +191,14 @@ public class SimplePropertiesWriter exte
filePath += File.separator;
}
filePath += filename;
- propOutput = new FileOutputStream(filePath);
+ propOutput = new OutputStreamWriter(new FileOutputStream(filePath), IOUtils.CHARSET_UTF_8);
existingProps.store(propOutput, null);
log.info("Wrote last indexed time to " + filename);
} catch (Exception e) {
throw new DataImportHandlerException(DataImportHandlerException.SEVERE,
"Unable to persist Index Start Time", e);
} finally {
- try {
- if (propOutput != null) propOutput.close();
- } catch (IOException e) {
- propOutput = null;
- }
+ IOUtils.closeWhileHandlingException(propOutput);
}
}
@@ -215,16 +213,12 @@ public class SimplePropertiesWriter exte
}
filePath += filename;
propInput = new FileInputStream(filePath);
- props.load(propInput);
+ props.load(new InputStreamReader(propInput, IOUtils.CHARSET_UTF_8));
log.info("Read " + filename);
} catch (Exception e) {
log.warn("Unable to read: " + filename);
} finally {
- try {
- if (propInput != null) propInput.close();
- } catch (IOException e) {
- propInput = null;
- }
+ IOUtils.closeWhileHandlingException(propInput);
}
return propertiesToMap(props);
}
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java Sun Aug 11 12:19:13 2013
@@ -16,11 +16,12 @@
*/
package org.apache.solr.handler.dataimport;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
import java.util.Map;
import java.util.Properties;
+import org.apache.lucene.util.IOUtils;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.zookeeper.KeeperException.NodeExistsException;
import org.slf4j.Logger;
@@ -63,10 +64,10 @@ public class ZKPropertiesWriter extends
public void persist(Map<String, Object> propObjs) {
Properties existing = mapToProperties(readIndexerProperties());
existing.putAll(mapToProperties(propObjs));
- ByteArrayOutputStream output = new ByteArrayOutputStream();
+ StringWriter output = new StringWriter();
try {
- existing.store(output, "");
- byte[] bytes = output.toByteArray();
+ existing.store(output, null);
+ byte[] bytes = output.toString().getBytes(IOUtils.CHARSET_UTF_8);
if (!zkClient.exists(path, false)) {
try {
zkClient.makePath(path, false);
@@ -89,8 +90,7 @@ public class ZKPropertiesWriter extends
try {
byte[] data = zkClient.getData(path, null, null, false);
if (data != null) {
- ByteArrayInputStream input = new ByteArrayInputStream(data);
- props.load(input);
+ props.load(new StringReader(new String(data, "UTF-8")));
}
} catch (Throwable e) {
log.warn(
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/contentstream-solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/contentstream-solrconfig.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/contentstream-solrconfig.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/contentstream-solrconfig.xml Sun Aug 11 12:19:13 2013
@@ -18,6 +18,9 @@
<config>
<luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
+ <indexConfig>
+ <useCompoundFile>${useCompoundFile:false}</useCompoundFile>
+ </indexConfig>
<!-- Used to specify an alternate directory to hold all index data
other than the default ./data under the Solr home.
@@ -26,8 +29,6 @@
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>
- <!-- <indexConfig> section could go here, but we want the defaults -->
-
<!-- the default high-performance update handler -->
<updateHandler class="solr.DirectUpdateHandler2">
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-nodatasource-solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-nodatasource-solrconfig.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-nodatasource-solrconfig.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-nodatasource-solrconfig.xml Sun Aug 11 12:19:13 2013
@@ -28,6 +28,7 @@
<indexConfig>
<lockType>single</lockType>
+ <useCompoundFile>${useCompoundFile:false}</useCompoundFile>
</indexConfig>
<!-- the default high-performance update handler -->
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig.xml Sun Aug 11 12:19:13 2013
@@ -18,6 +18,9 @@
<config>
<luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
+ <indexConfig>
+ <useCompoundFile>${useCompoundFile:false}</useCompoundFile>
+ </indexConfig>
<!-- Used to specify an alternate directory to hold all index data
other than the default ./data under the Solr home.
@@ -26,8 +29,6 @@
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>
- <!-- <indexConfig> section could go here, but we want the defaults -->
-
<!-- the default high-performance update handler -->
<updateHandler class="solr.DirectUpdateHandler2">
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java Sun Aug 11 12:19:13 2013
@@ -19,6 +19,7 @@ package org.apache.solr.handler.dataimpo
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
+import java.sql.SQLException;
import java.util.*;
import javax.sql.DataSource;
@@ -127,6 +128,48 @@ public class TestJdbcDataSource extends
}
@Test
+ public void testRetrieveFromJndiFailureNotHidden() throws Exception {
+ MockInitialContextFactory.bind("java:comp/env/jdbc/JndiDB", dataSource);
+
+ props.put(JdbcDataSource.JNDI_NAME, "java:comp/env/jdbc/JndiDB");
+
+ SQLException sqlException = new SQLException("fake");
+ EasyMock.expect(dataSource.getConnection()).andThrow(sqlException);
+
+ mockControl.replay();
+
+ try {
+ jdbcDataSource.createConnectionFactory(context, props).call();
+ } catch (SQLException ex) {
+ assertSame(sqlException, ex);
+ }
+
+ mockControl.verify();
+ }
+
+ @Test
+ public void testClosesConnectionWhenExceptionThrownOnSetAutocommit() throws Exception {
+ MockInitialContextFactory.bind("java:comp/env/jdbc/JndiDB", dataSource);
+
+ props.put(JdbcDataSource.JNDI_NAME, "java:comp/env/jdbc/JndiDB");
+
+ SQLException sqlException = new SQLException("fake");
+ EasyMock.expect(dataSource.getConnection()).andReturn(connection);
+ connection.setAutoCommit(false);
+ EasyMock.expectLastCall().andThrow(sqlException);
+ connection.close();
+ mockControl.replay();
+
+ try {
+ jdbcDataSource.createConnectionFactory(context, props).call();
+ } catch (DataImportHandlerException ex) {
+ assertSame(sqlException, ex.getCause());
+ }
+
+ mockControl.verify();
+ }
+
+ @Test
public void testRetrieveFromDriverManager() throws Exception {
DriverManager.registerDriver(driver);
try {
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java Sun Aug 11 12:19:13 2013
@@ -165,13 +165,13 @@ public class TestSqlEntityProcessorDelta
@Override
protected String deltaQueriesPersonTable() {
return
- "deletedPkQuery=''SELECT ID FROM PEOPLE WHERE DELETED='Y' AND last_modified >='${dih.last_index_time}' '' " +
+ "deletedPkQuery=''SELECT ID FROM PEOPLE WHERE DELETED='Y' AND last_modified >='${dih.People.last_index_time}' '' " +
"deltaImportQuery=''SELECT ID, NAME, COUNTRY_CODE FROM PEOPLE where ID=${dih.delta.ID} '' " +
"deltaQuery=''" +
- "SELECT ID FROM PEOPLE WHERE DELETED!='Y' AND last_modified >='${dih.last_index_time}' " +
+ "SELECT ID FROM PEOPLE WHERE DELETED!='Y' AND last_modified >='${dih.People.last_index_time}' " +
(useParentDeltaQueryParam ? "" :
"UNION DISTINCT " +
- "SELECT ID FROM PEOPLE WHERE DELETED!='Y' AND COUNTRY_CODE IN (SELECT CODE FROM COUNTRIES WHERE last_modified >='${dih.last_index_time}') "
+ "SELECT ID FROM PEOPLE WHERE DELETED!='Y' AND COUNTRY_CODE IN (SELECT CODE FROM COUNTRIES WHERE last_modified >='${dih.People.last_index_time}') "
) + "'' "
;
}
Modified: lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestZKPropertiesWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestZKPropertiesWriter.java?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestZKPropertiesWriter.java (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestZKPropertiesWriter.java Sun Aug 11 12:19:13 2013
@@ -60,7 +60,8 @@ public class TestZKPropertiesWriter exte
AbstractZkTestCase.buildZooKeeper(zkServer.getZkHost(), zkServer.getZkAddress(), getFile("dih/solr"),
"dataimport-solrconfig.xml", "dataimport-schema.xml");
- initCore("dataimport-solrconfig.xml", "dataimport-schema.xml", getFile("dih/solr").getAbsolutePath());
+ //initCore("solrconfig.xml", "schema.xml", getFile("dih/solr").getAbsolutePath());
+ createDefaultCoreContainer(getFile("dih/solr").getAbsolutePath());
}
@Before
Modified: lucene/dev/branches/lucene4956/solr/contrib/extraction/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/solr/contrib/extraction/ivy.xml?rev=1512909&r1=1512908&r2=1512909&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/solr/contrib/extraction/ivy.xml (original)
+++ lucene/dev/branches/lucene4956/solr/contrib/extraction/ivy.xml Sun Aug 11 12:19:13 2013
@@ -20,8 +20,8 @@
<info organisation="org.apache.solr" module="extraction"/>
<dependencies>
<!-- Tika JARs -->
- <dependency org="org.apache.tika" name="tika-core" rev="1.3" transitive="false"/>
- <dependency org="org.apache.tika" name="tika-parsers" rev="1.3" transitive="false"/>
+ <dependency org="org.apache.tika" name="tika-core" rev="1.4" transitive="false"/>
+ <dependency org="org.apache.tika" name="tika-parsers" rev="1.4" transitive="false"/>
<!-- Tika dependencies - see http://tika.apache.org/1.3/gettingstarted.html#Using_Tika_as_a_Maven_dependency -->
<!-- When upgrading Tika, upgrade dependencies versions and add any new ones
(except slf4j-api, commons-codec, commons-logging, geronimo-stax-api_1.0_spec) -->
@@ -31,15 +31,15 @@
<dependency org="org.apache.james" name="apache-mime4j-core" rev="0.7.2" transitive="false"/>
<dependency org="org.apache.james" name="apache-mime4j-dom" rev="0.7.2" transitive="false"/>
<dependency org="org.apache.commons" name="commons-compress" rev="1.4.1" transitive="false"/>
- <dependency org="org.apache.pdfbox" name="pdfbox" rev="1.7.1" transitive="false"/>
- <dependency org="org.apache.pdfbox" name="fontbox" rev="1.7.1" transitive="false"/>
- <dependency org="org.apache.pdfbox" name="jempbox" rev="1.7.1" transitive="false"/>
+ <dependency org="org.apache.pdfbox" name="pdfbox" rev="1.8.1" transitive="false"/>
+ <dependency org="org.apache.pdfbox" name="fontbox" rev="1.8.1" transitive="false"/>
+ <dependency org="org.apache.pdfbox" name="jempbox" rev="1.8.1" transitive="false"/>
<dependency org="org.bouncycastle" name="bcmail-jdk15" rev="1.45" transitive="false"/>
<dependency org="org.bouncycastle" name="bcprov-jdk15" rev="1.45" transitive="false"/>
- <dependency org="org.apache.poi" name="poi" rev="3.8" transitive="false"/>
- <dependency org="org.apache.poi" name="poi-scratchpad" rev="3.8" transitive="false"/>
- <dependency org="org.apache.poi" name="poi-ooxml" rev="3.8" transitive="false"/>
- <dependency org="org.apache.poi" name="poi-ooxml-schemas" rev="3.8" transitive="false"/>
+ <dependency org="org.apache.poi" name="poi" rev="3.9" transitive="false"/>
+ <dependency org="org.apache.poi" name="poi-scratchpad" rev="3.9" transitive="false"/>
+ <dependency org="org.apache.poi" name="poi-ooxml" rev="3.9" transitive="false"/>
+ <dependency org="org.apache.poi" name="poi-ooxml-schemas" rev="3.9" transitive="false"/>
<dependency org="org.apache.xmlbeans" name="xmlbeans" rev="2.3.0" transitive="false"/>
<dependency org="dom4j" name="dom4j" rev="1.6.1" transitive="false"/>
<dependency org="org.ccil.cowan.tagsoup" name="tagsoup" rev="1.2.1" transitive="false"/>