You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2012/07/28 13:28:27 UTC
svn commit: r1366643 [15/19] - in /lucene/dev/branches/lucene3312: ./
dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/copyright/
dev-tools/idea/.idea/libraries/ dev-tools/idea/lucene/ dev-tools/maven/
dev-tools/maven/lucene/benchmark/ dev-tools/mave...
Modified: lucene/dev/branches/lucene3312/solr/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/build.xml?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/build.xml (original)
+++ lucene/dev/branches/lucene3312/solr/build.xml Sat Jul 28 11:27:51 2012
@@ -15,7 +15,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<project name="solr" default="usage">
+<project name="solr" default="usage" xmlns:ivy="antlib:org.apache.ivy.ant">
<description>Solr</description>
<target name="usage" description="Prints out instructions">
@@ -51,7 +51,7 @@
</manifest>
</jar>
<delete includeemptydirs="true">
- <fileset dir="${example}/work" includes="**/*"/>
+ <fileset dir="${example}/solr-webapp" includes="**/*"/>
</delete>
<echo>See ${example}/README.txt for how to run the Solr example configuration.</echo>
</target>
@@ -171,30 +171,34 @@
</target>
<!-- Validation (license/notice/api checks). -->
- <target name="validate" depends="check-licenses,check-forbidden-apis" description="Validate stuff." />
+ <target name="validate" depends="check-licenses,rat-sources,check-forbidden-apis" description="Validate stuff." />
<target name="check-licenses" depends="compile-tools,resolve,load-custom-tasks" description="Validate license stuff.">
- <license-check-macro dir="${basedir}">
+ <license-check-macro dir="${basedir}" licensedir="${common-solr.dir}/licenses">
<additional-excludes>
<!-- Exclude start.jar only (it'd be weird to have a license file there?) -->
<exclude name="example/start.jar" />
<exclude name="example/exampledocs/post.jar" />
- <exclude name="example/work/**" />
+ <exclude name="example/solr-webapp/**" />
</additional-excludes>
<additional-filters>
- <replaceregex pattern="/jetty([^/]+)$" replace="/jetty" flags="gi" />
- <replaceregex pattern="/apache-solr-commons-csv-([^/]+)$" replace="/apache-solr-commons-csv" flags="gi" />
- <replaceregex pattern="/slf4j-([^/]+)$" replace="/slf4j" flags="gi" />
- <replaceregex pattern="/(bcmail|bcprov)-([^/]+)$" replace="/\1" flags="gi" />
+ <replaceregex pattern="jetty([^/]+)$" replace="jetty" flags="gi" />
+ <replaceregex pattern="apache-solr-commons-csv-([^/]+)$" replace="apache-solr-commons-csv" flags="gi" />
+ <replaceregex pattern="slf4j-([^/]+)$" replace="slf4j" flags="gi" />
+ <replaceregex pattern="(bcmail|bcprov)-([^/]+)$" replace="\1" flags="gi" />
</additional-filters>
</license-check-macro>
</target>
- <target name="check-forbidden-apis" depends="compile-tools,compile-test,load-custom-tasks" description="Check forbidden API calls in compiled class files.">
+ <target name="check-forbidden-apis" depends="compile-tools,compile-test,load-custom-tasks,-check-forbidden-java-apis,-check-forbidden-test-apis"
+ description="Check forbidden API calls in compiled class files."/>
+
+ <target name="-check-forbidden-java-apis">
<forbidden-apis>
- <classpath refid="classpath"/>
+ <classpath refid="additional.dependencies"/>
<apiFileSet dir="${custom-tasks.dir}/forbiddenApis">
<include name="jdk.txt" />
+ <include name="jdk-deprecated.txt" />
<include name="commons-io.txt" />
</apiFileSet>
<fileset dir="${basedir}/build">
@@ -205,6 +209,20 @@
</forbidden-apis>
</target>
+ <target name="-check-forbidden-test-apis">
+ <forbidden-apis apiFile="${custom-tasks.dir}/forbiddenApis/tests.txt">
+ <classpath refid="junit-path"/>
+ <fileset dir="${basedir}/build">
+ <include name="**/classes/test/**/*.class"/>
+ <include name="solr-test-framework/**/*.class"/>
+ <!-- not actually a test -->
+ <exclude name="solr-core/classes/test/org/apache/solr/search/DocSetPerf.class"/>
+ <!-- imported code -->
+ <exclude name="solr-core/classes/test/org/apache/solr/internal/**/*.class"/>
+ </fileset>
+ </forbidden-apis>
+ </target>
+
<!-- rat sources -->
<target name="rat-sources">
<sequential>
@@ -225,7 +243,7 @@
<fileset dir="example">
<include name="**/data/**/*" />
<include name="webapps/**/*" />
- <include name="work/**/*" />
+ <include name="solr-webapp/**/*" />
<exclude name="**/.gitignore" />
</fileset>
</delete>
@@ -240,64 +258,26 @@
</delete>
</target>
- <!-- Clover targets -->
- <target name="clover" depends="clover.setup, clover.info"
- description="Instrument the Unit tests using Clover. Requires a Clover license and clover.jar in the ANT classpath. To use, specify -Drun.clover=true on the command line."/>
-
- <target name="clover.setup" if="clover.enabled">
- <taskdef resource="cloverlib.xml"/>
- <mkdir dir="${clover.db.dir}"/>
- <clover-setup initString="${clover.db.dir}/lucene_coverage.db">
- <fileset dir="core/src/java"/>
- <fileset dir="solrj/src/java"/>
- <fileset dir="contrib/analysis-extras/src/java"/>
- <fileset dir="contrib/clustering/src/java"/>
- <fileset dir="contrib/dataimporthandler/src/java"/>
- <fileset dir="contrib/dataimporthandler-extras/src/java"/>
- <fileset dir="contrib/extraction/src/java"/>
- <fileset dir="contrib/uima/src/java"/>
- <testsources dir="test-framework/src/java"/>
- <testsources dir="core/src/test"/>
- <testsources dir="solrj/src/test"/>
- <testsources dir="contrib/analysis-extras/src/test" />
- <testsources dir="contrib/clustering/src/test" />
- <testsources dir="contrib/dataimporthandler/src/test" />
- <testsources dir="contrib/dataimporthandler-extras/src/test" />
- <testsources dir="contrib/extraction/src/test" />
- <testsources dir="contrib/uima/src/test" />
- </clover-setup>
- </target>
-
- <target name="clover.info" unless="clover.present">
- <echo>
- Clover not found. Code coverage reports disabled.
- </echo>
- </target>
-
- <target name="clover.check">
- <fail unless="clover.present">
- ##################################################################
- Clover not found.
- Please make sure clover.jar is in ANT_HOME/lib, or made available
- to Ant using other mechanisms like -lib or CLASSPATH.
- ##################################################################
- </fail>
- </target>
-
- <!-- Run after Junit tests. -->
- <target name="generate-clover-reports" depends="clover.check, clover">
+ <!--
+ Run after Junit tests.
+ -->
+ <target name="generate-clover-reports" depends="clover">
+ <fail unless="run.clover">Clover not enabled!</fail>
<mkdir dir="${clover.report.dir}"/>
+ <fileset dir="build" id="clover.test.result.files">
+ <include name="**/test/TEST-*.xml"/>
+ </fileset>
<clover-report>
- <current outfile="${clover.report.dir}/clover.xml"
- title="${fullnamever}">
- <format type="xml"/>
- </current>
- <current outfile="${clover.report.dir}" title="${fullnamever}">
- <format type="html"/>
- </current>
+ <current outfile="${clover.report.dir}" title="${final.name}" numThreads="0">
+ <format type="html" filter="assert"/>
+ <testresults refid="clover.test.result.files"/>
+ </current>
+ <current outfile="${clover.report.dir}/clover.xml" title="${final.name}">
+ <format type="xml" filter="assert"/>
+ <testresults refid="clover.test.result.files"/>
+ </current>
</clover-report>
</target>
-
<!-- ========================================================================= -->
<!-- ===================== DISTRIBUTION-RELATED TASKS ======================== -->
@@ -357,15 +337,17 @@
<!-- Exclude javadoc package-list files under licenses incompatible with the ASL -->
<delete dir="${svn.export.dir}/lucene/tools/javadoc/java6"/>
+ <!-- Exclude clover license files incompatible with the ASL -->
+ <delete dir="${svn.export.dir}/lucene/tools/clover"/>
<tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
<tarfileset dir="${svn.export.dir}"
prefix="${fullnamever}"
- excludes="example/**/*.sh example/**/bin/"/>
+ excludes="solr/example/**/*.sh solr/example/**/bin/ solr/scripts/**"/>
<tarfileset dir="${svn.export.dir}"
prefix="${fullnamever}"
filemode="755"
- includes="example/**/*.sh example/**/bin/"/>
+ includes="solr/example/**/*.sh solr/example/**/bin/ solr/scripts/**"/>
<tarfileset dir="${svn.export.dir}/solr" prefix="${fullnamever}"
includes="NOTICE.txt,LICENSE.txt"/>
</tar>
@@ -404,7 +386,7 @@
depends="init-dist, dist, example, javadocs">
<mkdir dir="${dest}/${fullnamever}"/>
<delete includeemptydirs="true">
- <fileset dir="${example}/work" includes="**/*"/>
+ <fileset dir="${example}/solr-webapp" includes="**/*"/>
<fileset dir="${dest}/${fullnamever}" includes="**/*"/>
</delete>
Modified: lucene/dev/branches/lucene3312/solr/cloud-dev/example1.sh
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/cloud-dev/example1.sh?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/cloud-dev/example1.sh (original)
+++ lucene/dev/branches/lucene3312/solr/cloud-dev/example1.sh Sat Jul 28 11:27:51 2012
@@ -15,7 +15,7 @@ cp -r -f example example2
cd example
-java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -Dbootstrap_confdir=solr/conf -jar start.jar 1>example.log 2>&1 &
+java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -Dbootstrap_conf=true -jar start.jar 1>example.log 2>&1 &
sleep 10
Modified: lucene/dev/branches/lucene3312/solr/cloud-dev/example2.sh
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/cloud-dev/example2.sh?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/cloud-dev/example2.sh (original)
+++ lucene/dev/branches/lucene3312/solr/cloud-dev/example2.sh Sat Jul 28 11:27:51 2012
@@ -19,8 +19,9 @@ cp -r -f example example4
cd example
-java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -Dbootstrap_confdir=solr/conf -jar start.jar 1>example.log 2>&1 &
+java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -Dbootstrap_conf=true -jar start.jar 1>example.log 2>&1 &
+# wait for config to go up
sleep 10
cd ../example2
Modified: lucene/dev/branches/lucene3312/solr/cloud-dev/example3.sh
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/cloud-dev/example3.sh?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/cloud-dev/example3.sh (original)
+++ lucene/dev/branches/lucene3312/solr/cloud-dev/example3.sh Sat Jul 28 11:27:51 2012
@@ -19,10 +19,10 @@ cp -r -f example example4
cd example
-java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -Dbootstrap_confdir=solr/conf -DzkHost=localhost:9983,localhost:14574,localhost:14585 -jar start.jar 1>example.log 2>&1 &
+java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -Dbootstrap_conf=true -DzkHost=localhost:9983,localhost:14574,localhost:14585 -jar start.jar 1>example.log 2>&1 &
cd ../example2
-java -Djetty.port=13574 -DzkRun -DzkHost=localhost:9983,localhost:14574,localhost:14575 -DSTOP.PORT=6574 -DSTOP.KEY=key -jar start.jar 1>example2.log 2>&1 &
+java -Djetty.port=13574 -DzkRun -DzkHost=localhost:9983,localhost:14574,localhost:14585 -DSTOP.PORT=6574 -DSTOP.KEY=key -jar start.jar 1>example2.log 2>&1 &
cd ../example3
java -Djetty.port=13585 -DzkRun -DzkHost=localhost:9983,localhost:14574,localhost:14585 -DSTOP.PORT=6575 -DSTOP.KEY=key -jar start.jar 1>example3.log 2>&1 &
Modified: lucene/dev/branches/lucene3312/solr/cloud-dev/solrcloud-multi-start.sh
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/cloud-dev/solrcloud-multi-start.sh?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/cloud-dev/solrcloud-multi-start.sh (original)
+++ lucene/dev/branches/lucene3312/solr/cloud-dev/solrcloud-multi-start.sh Sat Jul 28 11:27:51 2012
@@ -24,7 +24,7 @@ cp -r -f example example4
cp -r -f example example5
cp -r -f example example6
-java -classpath lib/*:dist/*:build/lucene-libs/* org.apache.solr.cloud.ZkController 127.0.0.1:9983 example/multicore 8983
+java -classpath lib/*:dist/*:build/lucene-libs/* org.apache.solr.cloud.ZkCLI -cmd upconf -zkhost 127.0.0.1:9983 -solrhome example/multicore -runzk 8983
cd example
java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -Dsolr.solr.home=multicore -jar start.jar 1>example.log 2>&1 &
Modified: lucene/dev/branches/lucene3312/solr/cloud-dev/solrcloud-start.sh
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/cloud-dev/solrcloud-start.sh?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/cloud-dev/solrcloud-start.sh (original)
+++ lucene/dev/branches/lucene3312/solr/cloud-dev/solrcloud-start.sh Sat Jul 28 11:27:51 2012
@@ -22,7 +22,7 @@ cp -r -f example example4
cp -r -f example example5
cp -r -f example example6
-java -classpath lib/*:dist/*:build/lucene-libs/* org.apache.solr.cloud.ZkController 127.0.0.1:9983 example/solr 8983
+java -classpath lib/*:dist/*:build/lucene-libs/* 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/lucene3312/solr/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/common-build.xml?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/common-build.xml (original)
+++ lucene/dev/branches/lucene3312/solr/common-build.xml Sat Jul 28 11:27:51 2012
@@ -49,15 +49,7 @@
<property name="tests.loggingfile" value="${common-solr.dir}/testlogging.properties"/>
<property name="tests.cleanthreads.sysprop" value="perClass"/>
- <property name="clover.db.dir" location="${dest}/test/clover/db"/>
- <property name="clover.report.dir" location="${dest}/test/clover/reports"/>
- <available property="clover.present" classname="com.cenqua.clover.tasks.CloverReportTask"/>
- <condition property="clover.enabled">
- <and>
- <isset property="run.clover"/>
- <isset property="clover.present"/>
- </and>
- </condition>
+ <property name="clover.report.dir" location="${dest}/clover/reports"/>
<import file="${common-solr.dir}/../lucene/module-build.xml"/>
@@ -78,21 +70,32 @@
-->
<property name="solr.spec.version" value="5.0.0.${dateversion}" />
+ <path id="solr.lucene.libs">
+ <!-- List of jars that will be used as the foundation for both
+ the base classpath, as well as copied into the lucene-libs dir
+ in the release.
+ -->
+ <!-- NOTE: lucene-core is explicitly not included because of the
+ base.classpath (compilation & tests are done directly against
+ the class files w/o needing to build the jar)
+ -->
+ <pathelement location="${analyzers-common.jar}"/>
+ <pathelement location="${analyzers-kuromoji.jar}"/>
+ <pathelement location="${analyzers-phonetic.jar}"/>
+ <pathelement location="${highlighter.jar}"/>
+ <pathelement location="${memory.jar}"/>
+ <pathelement location="${misc.jar}"/>
+ <pathelement location="${spatial.jar}"/>
+ <pathelement location="${suggest.jar}"/>
+ <pathelement location="${grouping.jar}"/>
+ <pathelement location="${queries.jar}"/>
+ <pathelement location="${queryparser.jar}"/>
+ </path>
+
<path id="solr.base.classpath">
- <pathelement path="${analyzers-common.jar}"/>
- <pathelement path="${analyzers-kuromoji.jar}"/>
- <pathelement path="${analyzers-phonetic.jar}"/>
- <pathelement path="${analyzers-uima.jar}"/>
- <pathelement path="${highlighter.jar}"/>
- <pathelement path="${memory.jar}"/>
- <pathelement path="${misc.jar}"/>
- <pathelement path="${spatial.jar}"/>
- <pathelement path="${suggest.jar}"/>
- <pathelement path="${grouping.jar}"/>
- <pathelement path="${queries.jar}"/>
- <pathelement path="${queryparser.jar}"/>
<pathelement location="${common-solr.dir}/build/solr-solrj/classes/java"/>
<pathelement location="${common-solr.dir}/build/solr-core/classes/java"/>
+ <path refid="solr.lucene.libs" />
<path refid="additional.dependencies"/>
<path refid="base.classpath"/>
</path>
@@ -133,7 +136,7 @@
</target>
<target name="prep-lucene-jars"
- depends="jar-lucene-core, jar-analyzers-phonetic, jar-analyzers-kuromoji, jar-analyzers-morfologik, jar-suggest, jar-highlighter, jar-memory,
+ depends="jar-lucene-core, jar-analyzers-phonetic, jar-analyzers-kuromoji, jar-suggest, jar-highlighter, jar-memory,
jar-misc, jar-spatial, jar-grouping, jar-queries, jar-queryparser">
<property name="solr.deps.compiled" value="true"/>
</target>
@@ -145,19 +148,11 @@
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
<copy todir="${lucene-libs}" preservelastmodified="true" flatten="true" failonerror="true" overwrite="true">
+ <path refid="solr.lucene.libs" />
+ <!-- NOTE: lucene-core is not already included in "solr.lucene.libs"
+ because of it's use in classpaths.
+ -->
<fileset file="${lucene-core.jar}" />
- <fileset file="${analyzers-common.jar}" />
- <fileset file="${analyzers-kuromoji.jar}" />
- <fileset file="${analyzers-phonetic.jar}" />
- <fileset file="${suggest.jar}" />
- <fileset file="${grouping.jar}" />
- <fileset file="${queries.jar}" />
- <fileset file="${queryparser.jar}" />
- <fileset file="${highlighter.jar}" />
- <fileset file="${memory.jar}" />
- <fileset file="${misc.jar}" />
- <fileset file="${spatial.jar}" />
- <fileset refid="analyzers-morfologik.fileset" />
</copy>
</sequential>
</target>
@@ -226,23 +221,23 @@
<invoke-javadoc destdir="@{destdir}" title="@{title}" overview="@{overview}">
<sources>
<solrsources/>
- <link offline="true" href="${lucene.javadoc.url}/core" packagelistloc="${lucenedocs}/core"/>
- <link offline="true" href="${lucene.javadoc.url}/analyzers-common" packagelistloc="${lucenedocs}/analyzers-common"/>
- <link offline="true" href="${lucene.javadoc.url}/analyzers-icu" packagelistloc="${lucenedocs}/analyzers-icu"/>
- <link offline="true" href="${lucene.javadoc.url}/analyzers-kuromoji" packagelistloc="${lucenedocs}/analyzers-kuromoji"/>
- <link offline="true" href="${lucene.javadoc.url}/analyzers-morfologik" packagelistloc="${lucenedocs}/analyzers-morfologik"/>
- <link offline="true" href="${lucene.javadoc.url}/analyzers-phonetic" packagelistloc="${lucenedocs}/analyzers-phonetic"/>
- <link offline="true" href="${lucene.javadoc.url}/analyzers-smartcn" packagelistloc="${lucenedocs}/analyzers-smartcn"/>
- <link offline="true" href="${lucene.javadoc.url}/analyzers-stempel" packagelistloc="${lucenedocs}/analyzers-stempel"/>
- <link offline="true" href="${lucene.javadoc.url}/analyzers-uima" packagelistloc="${lucenedocs}/analyzers-uima"/>
- <link offline="true" href="${lucene.javadoc.url}/suggest" packagelistloc="${lucenedocs}/suggest"/>
- <link offline="true" href="${lucene.javadoc.url}/grouping" packagelistloc="${lucenedocs}/grouping"/>
- <link offline="true" href="${lucene.javadoc.url}/queries" packagelistloc="${lucenedocs}/queries"/>
- <link offline="true" href="${lucene.javadoc.url}/queryparser" packagelistloc="${lucenedocs}/queryparser"/>
- <link offline="true" href="${lucene.javadoc.url}/highlighter" packagelistloc="${lucenedocs}/highlighter"/>
- <link offline="true" href="${lucene.javadoc.url}/memory" packagelistloc="${lucenedocs}/memory"/>
- <link offline="true" href="${lucene.javadoc.url}/misc" packagelistloc="${lucenedocs}/misc"/>
- <link offline="true" href="${lucene.javadoc.url}/spatial" packagelistloc="${lucenedocs}/spatial"/>
+ <link offline="true" href="${lucene.javadoc.url}core" packagelistloc="${lucenedocs}/core"/>
+ <link offline="true" href="${lucene.javadoc.url}analyzers-common" packagelistloc="${lucenedocs}/analyzers-common"/>
+ <link offline="true" href="${lucene.javadoc.url}analyzers-icu" packagelistloc="${lucenedocs}/analyzers-icu"/>
+ <link offline="true" href="${lucene.javadoc.url}analyzers-kuromoji" packagelistloc="${lucenedocs}/analyzers-kuromoji"/>
+ <link offline="true" href="${lucene.javadoc.url}analyzers-morfologik" packagelistloc="${lucenedocs}/analyzers-morfologik"/>
+ <link offline="true" href="${lucene.javadoc.url}analyzers-phonetic" packagelistloc="${lucenedocs}/analyzers-phonetic"/>
+ <link offline="true" href="${lucene.javadoc.url}analyzers-smartcn" packagelistloc="${lucenedocs}/analyzers-smartcn"/>
+ <link offline="true" href="${lucene.javadoc.url}analyzers-stempel" packagelistloc="${lucenedocs}/analyzers-stempel"/>
+ <link offline="true" href="${lucene.javadoc.url}analyzers-uima" packagelistloc="${lucenedocs}/analyzers-uima"/>
+ <link offline="true" href="${lucene.javadoc.url}suggest" packagelistloc="${lucenedocs}/suggest"/>
+ <link offline="true" href="${lucene.javadoc.url}grouping" packagelistloc="${lucenedocs}/grouping"/>
+ <link offline="true" href="${lucene.javadoc.url}queries" packagelistloc="${lucenedocs}/queries"/>
+ <link offline="true" href="${lucene.javadoc.url}queryparser" packagelistloc="${lucenedocs}/queryparser"/>
+ <link offline="true" href="${lucene.javadoc.url}highlighter" packagelistloc="${lucenedocs}/highlighter"/>
+ <link offline="true" href="${lucene.javadoc.url}memory" packagelistloc="${lucenedocs}/memory"/>
+ <link offline="true" href="${lucene.javadoc.url}misc" packagelistloc="${lucenedocs}/misc"/>
+ <link offline="true" href="${lucene.javadoc.url}spatial" packagelistloc="${lucenedocs}/spatial"/>
<link href=""/>
</sources>
</invoke-javadoc>
@@ -253,8 +248,7 @@
depends="define-lucene-javadoc-url-SNAPSHOT,define-lucene-javadoc-url-release"/>
<target name="define-lucene-javadoc-url-SNAPSHOT" if="version.contains.SNAPSHOT">
- <property name="lucene.javadoc.url"
- value="${common.dir}/build/docs/"/>
+ <makeurl file="${common.dir}/build/docs/" validate="false" property="lucene.javadoc.url"/>
</target>
<target name="define-lucene-javadoc-url-release" unless="version.contains.SNAPSHOT">
Modified: lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/CHANGES.txt?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/CHANGES.txt Sat Jul 28 11:27:51 2012
@@ -21,6 +21,10 @@ $Id$
the Solr 3.x ICUCollationKeyFilterFactory, and also supports
Locale-sensitive range queries. (rmuir)
+================== 3.6.1 ==================
+
+(No Changes)
+
================== 3.6.0 ==================
* SOLR-2919: Added parametric tailoring options to ICUCollationKeyFilterFactory.
Modified: lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/README.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/README.txt?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/README.txt (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/README.txt Sat Jul 28 11:27:51 2012
@@ -9,8 +9,11 @@ Relies upon the following lucene compone
* lucene-analyzers-icu-X.Y.jar
* lucene-analyzers-smartcn-X.Y.jar
* lucene-analyzers-stempel-X.Y.jar
-
-And the ICU library (in lib/):
+ * lucene-analyzers-morfologik-X.Y.jar
+ * lucene-analyzers-smartcn-X.Y.jar
+
+And the following third-party library (in lib/):
* icu4j-X.Y.jar
+ * morfologik-*.jar
Modified: lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/build.xml?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/build.xml (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/build.xml Sat Jul 28 11:27:51 2012
@@ -24,13 +24,17 @@
</description>
<import file="../contrib-build.xml"/>
+
+ <path id="analysis.extras.lucene.libs">
+ <pathelement location="${analyzers-icu.jar}"/>
+ <pathelement location="${analyzers-smartcn.jar}"/>
+ <pathelement location="${analyzers-stempel.jar}"/>
+ <pathelement location="${analyzers-morfologik.jar}"/>
+ </path>
<path id="classpath">
- <fileset dir="lib" excludes="${common.classpath.excludes}"/>
- <pathelement path="${analyzers-icu.jar}"/>
- <pathelement path="${analyzers-smartcn.jar}"/>
- <pathelement path="${analyzers-stempel.jar}"/>
- <fileset refid="analyzers-morfologik.fileset" />
+ <fileset dir="lib" excludes="${common.classpath.excludes}"/>
+ <path refid="analysis.extras.lucene.libs" />
<path refid="solr.base.classpath"/>
</path>
@@ -38,10 +42,7 @@
depends="jar-analyzers-icu, jar-analyzers-smartcn, jar-analyzers-stempel, jar-analyzers-morfologik">
<mkdir dir="${build.dir}/lucene-libs"/>
<copy todir="${build.dir}/lucene-libs" preservelastmodified="true" flatten="true" failonerror="true" overwrite="true">
- <fileset file="${analyzers-icu.jar}"/>
- <fileset file="${analyzers-smartcn.jar}"/>
- <fileset file="${analyzers-stempel.jar}"/>
- <fileset refid="analyzers-morfologik.fileset" />
+ <path refid="analysis.extras.lucene.libs" />
</copy>
</target>
Modified: lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/ivy.xml?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/ivy.xml (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/analysis-extras/ivy.xml Sat Jul 28 11:27:51 2012
@@ -19,7 +19,10 @@
<ivy-module version="2.0">
<info organisation="org.apache.solr" module="analysis-extras"/>
<dependencies>
- <dependency org="com.ibm.icu" name="icu4j" rev="4.8.1.1" transitive="false"/>
+ <dependency org="com.ibm.icu" name="icu4j" rev="49.1" transitive="false"/>
+ <dependency org="org.carrot2" name="morfologik-polish" rev="1.5.3" transitive="false"/>
+ <dependency org="org.carrot2" name="morfologik-fsa" rev="1.5.3" transitive="false"/>
+ <dependency org="org.carrot2" name="morfologik-stemming" rev="1.5.3" transitive="false"/>
<exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
</dependencies>
</ivy-module>
Modified: lucene/dev/branches/lucene3312/solr/contrib/clustering/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/clustering/CHANGES.txt?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/clustering/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/clustering/CHANGES.txt Sat Jul 28 11:27:51 2012
@@ -16,6 +16,11 @@ $Id$
* SOLR-3470: Bug fix: custom Carrot2 tokenizer and stemmer factories are
respected now (Stanislaw Osinski, Dawid Weiss)
+================== Release 3.6.1 ==================
+
+* SOLR-3470: Bug fix: custom Carrot2 tokenizer and stemmer factories are
+ respected now (Stanislaw Osinski, Dawid Weiss)
+
================== Release 3.6.0 ==================
* SOLR-2937: Configuring the number of contextual snippets used for
Modified: lucene/dev/branches/lucene3312/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/LuceneCarrot2TokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/LuceneCarrot2TokenizerFactory.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/LuceneCarrot2TokenizerFactory.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/LuceneCarrot2TokenizerFactory.java Sat Jul 28 11:27:51 2012
@@ -143,7 +143,7 @@ public class LuceneCarrot2TokenizerFacto
public void reset(Reader input) {
try {
- sentenceTokenizer.reset(input);
+ sentenceTokenizer.setReader(input);
wordTokenFilter = (TokenStream) tokenFilterClass.getConstructor(
TokenStream.class).newInstance(sentenceTokenizer);
term = wordTokenFilter.addAttribute(CharTermAttribute.class);
Modified: lucene/dev/branches/lucene3312/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/SolrStopwordsCarrot2LexicalDataFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/SolrStopwordsCarrot2LexicalDataFactory.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/SolrStopwordsCarrot2LexicalDataFactory.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/SolrStopwordsCarrot2LexicalDataFactory.java Sat Jul 28 11:27:51 2012
@@ -23,8 +23,8 @@ import java.util.Set;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.util.CharArraySet;
import org.apache.lucene.analysis.util.TokenFilterFactory;
-import org.apache.solr.analysis.CommonGramsFilterFactory;
-import org.apache.solr.analysis.StopFilterFactory;
+import org.apache.lucene.analysis.commongrams.CommonGramsFilterFactory;
+import org.apache.lucene.analysis.core.StopFilterFactory;
import org.apache.solr.analysis.TokenizerChain;
import org.apache.solr.schema.IndexSchema;
import org.carrot2.core.LanguageCode;
Modified: lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/CHANGES.txt?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/CHANGES.txt Sat Jul 28 11:27:51 2012
@@ -32,7 +32,12 @@ Other Changes
Bug Fixes
----------------------
-* SOLR-3336: SolrEntityProcessor substitutes most variables at query time
+* SOLR-3360: More bug fixes for the deprecated "threads" parameter. (Mikhail Khludnev, Claudio R, via James Dyer)
+
+* SOLR-3430: Added a new test against a real SQL database. Fixed problems revealed by this new test
+ related to the expanded cache support added to 3.6/SOLR-2382 (James Dyer)
+
+* SOLR-3336: SolrEntityProcessor substitutes most variables at query time.
(Michael Kroh, Lance Norskog, via Martijn van Groningen)
================== 3.6.0 ==================
Modified: lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/HTMLStripTransformer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/HTMLStripTransformer.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/HTMLStripTransformer.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/HTMLStripTransformer.java Sat Jul 28 11:27:51 2012
@@ -17,7 +17,6 @@
package org.apache.solr.handler.dataimport;
import org.apache.lucene.analysis.charfilter.HTMLStripCharFilter;
-import org.apache.lucene.analysis.CharReader;
import java.io.IOException;
import java.io.StringReader;
@@ -73,7 +72,7 @@ public class HTMLStripTransformer extend
StringBuilder out = new StringBuilder();
StringReader strReader = new StringReader(value);
try {
- HTMLStripCharFilter html = new HTMLStripCharFilter(CharReader.get(strReader.markSupported() ? strReader : new BufferedReader(strReader)));
+ HTMLStripCharFilter html = new HTMLStripCharFilter(strReader.markSupported() ? strReader : new BufferedReader(strReader));
char[] cbuf = new char[1024 * 10];
while (true) {
int count = html.read(cbuf);
Modified: lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor.java Sat Jul 28 11:27:51 2012
@@ -17,6 +17,7 @@
package org.apache.solr.handler.dataimport;
import org.junit.Test;
+import org.junit.Ignore;
import java.util.*;
@@ -28,6 +29,7 @@ import java.util.*;
*
* @since solr 1.3
*/
+@Ignore("FIXME: I fail so often it makes me ill!")
public class TestSqlEntityProcessor extends AbstractDataImportHandlerTestCase {
private static ThreadLocal<Integer> local = new ThreadLocal<Integer>();
Modified: lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java Sat Jul 28 11:27:51 2012
@@ -35,6 +35,7 @@ import java.text.ParseException;
*
* @since solr 1.3
*/
+@Ignore("FIXME: I fail so often it makes me ill!")
public class TestSqlEntityProcessor2 extends AbstractDataImportHandlerTestCase {
@BeforeClass
public static void beforeClass() throws Exception {
Modified: lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java Sat Jul 28 11:27:51 2012
@@ -19,6 +19,7 @@ package org.apache.solr.handler.dataimpo
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import java.io.File;
@@ -35,6 +36,7 @@ import java.util.List;
*
* @since solr 1.3
*/
+@Ignore("FIXME: I fail so often it makes me ill!")
public class TestSqlEntityProcessorDelta extends AbstractDataImportHandlerTestCase {
private static final String FULLIMPORT_QUERY = "select * from x";
Modified: lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta2.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta2.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta2.java Sat Jul 28 11:27:51 2012
@@ -18,6 +18,7 @@ package org.apache.solr.handler.dataimpo
import org.junit.Before;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.ArrayList;
@@ -33,6 +34,7 @@ import java.util.List;
*
* @since solr 1.3
*/
+@Ignore("FIXME: I fail so often it makes me ill!")
public class TestSqlEntityProcessorDelta2 extends AbstractDataImportHandlerTestCase {
private static final String FULLIMPORT_QUERY = "select * from x";
Modified: lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta3.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta3.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta3.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta3.java Sat Jul 28 11:27:51 2012
@@ -18,12 +18,14 @@ package org.apache.solr.handler.dataimpo
import org.junit.Before;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+@Ignore("FIXME: I fail so often it makes me ill!")
public class TestSqlEntityProcessorDelta3 extends AbstractDataImportHandlerTestCase {
private static final String P_FULLIMPORT_QUERY = "select * from parent";
private static final String P_DELTA_QUERY = "select parent_id from parent where last_modified > NOW";
Modified: lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDeltaPrefixedPk.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDeltaPrefixedPk.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDeltaPrefixedPk.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDeltaPrefixedPk.java Sat Jul 28 11:27:51 2012
@@ -18,6 +18,7 @@ package org.apache.solr.handler.dataimpo
import org.junit.Before;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.ArrayList;
@@ -34,6 +35,7 @@ import java.util.logging.*;
*
* @since solr 3.1
*/
+@Ignore("FIXME: I fail so often it makes me ill!")
public class TestSqlEntityProcessorDeltaPrefixedPk extends AbstractDataImportHandlerTestCase {
private static final String FULLIMPORT_QUERY = "select * from x";
Modified: lucene/dev/branches/lucene3312/solr/contrib/extraction/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/extraction/CHANGES.txt?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/extraction/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/extraction/CHANGES.txt Sat Jul 28 11:27:51 2012
@@ -32,6 +32,10 @@ $Id$
* SOLR-3254: Upgrade Solr to Tika 1.1 (janhoy)
+================== Release 3.6.1 ==================
+
+(No Changes)
+
================== Release 3.6.0 ==================
* SOLR-2346: Add a chance to set content encoding explicitly via content type of stream.
Modified: lucene/dev/branches/lucene3312/solr/contrib/extraction/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/extraction/ivy.xml?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/extraction/ivy.xml (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/extraction/ivy.xml Sat Jul 28 11:27:51 2012
@@ -43,7 +43,6 @@
<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"/>
- <dependency org="asm" name="asm" rev="3.1" transitive="false"/>
<dependency org="com.googlecode.mp4parser" name="isoparser" rev="1.0-beta-5" transitive="false"/>
<dependency org="net.sf.scannotation" name="scannotation" rev="1.0.2" transitive="false"/>
<dependency org="javassist" name="javassist" rev="3.6.0.GA" transitive="false"/>
@@ -52,8 +51,8 @@
<dependency org="rome" name="rome" rev="0.9" transitive="false"/>
<dependency org="jdom" name="jdom" rev="1.0" transitive="false"/>
<!-- Other ExtracingRequestHandler dependencies -->
- <dependency org="com.ibm.icu" name="icu4j" rev="4.8.1.1" transitive="false"/>
- <dependency org="xerces" name="xercesImpl" rev="2.8.1" transitive="false"/>
+ <dependency org="com.ibm.icu" name="icu4j" rev="49.1" transitive="false"/>
+ <dependency org="xerces" name="xercesImpl" rev="2.9.1" transitive="false"/>
<exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
</dependencies>
</ivy-module>
Modified: lucene/dev/branches/lucene3312/solr/contrib/langid/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/langid/CHANGES.txt?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/langid/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/langid/CHANGES.txt Sat Jul 28 11:27:51 2012
@@ -15,6 +15,10 @@ $Id$
(No changes)
+================== Release 3.6.1 ==================
+
+(No Changes)
+
================== Release 3.6.0 ==================
* SOLR-3107: When using the LangDetect implementation of langid, set the random
Modified: lucene/dev/branches/lucene3312/solr/contrib/langid/src/java/org/apache/solr/update/processor/LanguageIdentifierUpdateProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/langid/src/java/org/apache/solr/update/processor/LanguageIdentifierUpdateProcessor.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/langid/src/java/org/apache/solr/update/processor/LanguageIdentifierUpdateProcessor.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/langid/src/java/org/apache/solr/update/processor/LanguageIdentifierUpdateProcessor.java Sat Jul 28 11:27:51 2012
@@ -25,6 +25,7 @@ import org.apache.solr.common.params.Sol
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.schema.SchemaField;
import org.apache.solr.update.AddUpdateCommand;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -97,7 +98,8 @@ public abstract class LanguageIdentifier
}
langField = params.get(LANG_FIELD, DOCID_LANGFIELD_DEFAULT);
langsField = params.get(LANGS_FIELD, DOCID_LANGSFIELD_DEFAULT);
- docIdField = params.get(DOCID_PARAM, DOCID_FIELD_DEFAULT);
+ SchemaField uniqueKeyField = schema.getUniqueKeyField();
+ docIdField = params.get(DOCID_PARAM, uniqueKeyField == null ? DOCID_FIELD_DEFAULT : uniqueKeyField.getName());
fallbackValue = params.get(FALLBACK);
if(params.get(FALLBACK_FIELDS, "").length() > 0) {
fallbackFields = params.get(FALLBACK_FIELDS).split(",");
Modified: lucene/dev/branches/lucene3312/solr/contrib/langid/src/test/org/apache/solr/update/processor/LangDetectLanguageIdentifierUpdateProcessorFactoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/langid/src/test/org/apache/solr/update/processor/LangDetectLanguageIdentifierUpdateProcessorFactoryTest.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/langid/src/test/org/apache/solr/update/processor/LangDetectLanguageIdentifierUpdateProcessorFactoryTest.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/langid/src/test/org/apache/solr/update/processor/LangDetectLanguageIdentifierUpdateProcessorFactoryTest.java Sat Jul 28 11:27:51 2012
@@ -24,7 +24,7 @@ import org.junit.Test;
public class LangDetectLanguageIdentifierUpdateProcessorFactoryTest extends LanguageIdentifierUpdateProcessorFactoryTestCase {
@Override
protected LanguageIdentifierUpdateProcessor createLangIdProcessor(ModifiableSolrParams parameters) throws Exception {
- return new LangDetectLanguageIdentifierUpdateProcessor(_parser.buildRequestFrom(null, parameters, null), resp, null);
+ return new LangDetectLanguageIdentifierUpdateProcessor(_parser.buildRequestFrom(h.getCore(), parameters, null), resp, null);
}
// this one actually works better it seems with short docs
Modified: lucene/dev/branches/lucene3312/solr/contrib/langid/src/test/org/apache/solr/update/processor/TikaLanguageIdentifierUpdateProcessorFactoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/langid/src/test/org/apache/solr/update/processor/TikaLanguageIdentifierUpdateProcessorFactoryTest.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/langid/src/test/org/apache/solr/update/processor/TikaLanguageIdentifierUpdateProcessorFactoryTest.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/langid/src/test/org/apache/solr/update/processor/TikaLanguageIdentifierUpdateProcessorFactoryTest.java Sat Jul 28 11:27:51 2012
@@ -22,6 +22,6 @@ import org.apache.solr.common.params.Mod
public class TikaLanguageIdentifierUpdateProcessorFactoryTest extends LanguageIdentifierUpdateProcessorFactoryTestCase {
@Override
protected LanguageIdentifierUpdateProcessor createLangIdProcessor(ModifiableSolrParams parameters) throws Exception {
- return new TikaLanguageIdentifierUpdateProcessor(_parser.buildRequestFrom(null, parameters, null), resp, null);
+ return new TikaLanguageIdentifierUpdateProcessor(_parser.buildRequestFrom(h.getCore(), parameters, null), resp, null);
}
}
Modified: lucene/dev/branches/lucene3312/solr/contrib/uima/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/uima/CHANGES.txt?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/uima/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/uima/CHANGES.txt Sat Jul 28 11:27:51 2012
@@ -30,6 +30,10 @@ $Id$
(No Changes)
+================== 3.6.1 ==================
+
+(No Changes)
+
================== 3.6.0 ==================
(No Changes)
Modified: lucene/dev/branches/lucene3312/solr/contrib/uima/README.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/uima/README.txt?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/uima/README.txt (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/uima/README.txt Sat Jul 28 11:27:51 2012
@@ -6,6 +6,7 @@ To start using Solr UIMA Metadata Extrac
or set <lib/> tags in solrconfig.xml appropriately to point those jar files.
<lib dir="../../contrib/uima/lib" />
+ <lib dir="../../contrib/uima/lucene-libs" />
<lib dir="../../dist/" regex="apache-solr-uima-\d.*\.jar" />
2. modify your schema.xml adding the fields you want to be hold metadata specifying proper values for type, indexed, stored and multiValued options:
Modified: lucene/dev/branches/lucene3312/solr/contrib/uima/src/test-files/uima/uima-tokenizers-schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/uima/src/test-files/uima/uima-tokenizers-schema.xml?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/uima/src/test-files/uima/uima-tokenizers-schema.xml (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/uima/src/test-files/uima/uima-tokenizers-schema.xml Sat Jul 28 11:27:51 2012
@@ -299,14 +299,14 @@
<fieldType name="uima_sentences" class="solr.TextField" positionIncrementGap="100">
<analyzer>
- <tokenizer class="org.apache.solr.uima.analysis.UIMAAnnotationsTokenizerFactory"
+ <tokenizer class="solr.UIMAAnnotationsTokenizerFactory"
descriptorPath="/uima/AggregateSentenceAE.xml" tokenType="org.apache.uima.SentenceAnnotation"/>
</analyzer>
</fieldType>
<fieldType name="uima_nouns" class="solr.TextField" positionIncrementGap="100">
<analyzer>
- <tokenizer class="org.apache.solr.uima.analysis.UIMATypeAwareAnnotationsTokenizerFactory"
+ <tokenizer class="solr.UIMATypeAwareAnnotationsTokenizerFactory"
descriptorPath="/uima/AggregateSentenceAE.xml" tokenType="org.apache.uima.TokenAnnotation"
featurePath="posTag"/>
<filter class="solr.TypeTokenFilterFactory" types="uima/stoptypes.txt" />
Modified: lucene/dev/branches/lucene3312/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityResourceLoader.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityResourceLoader.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityResourceLoader.java Sat Jul 28 11:27:51 2012
@@ -22,6 +22,7 @@ import org.apache.velocity.exception.Res
import org.apache.commons.collections.ExtendedProperties;
import org.apache.solr.core.SolrResourceLoader;
+import java.io.IOException;
import java.io.InputStream;
// TODO: the name of this class seems ridiculous
@@ -39,7 +40,11 @@ public class SolrVelocityResourceLoader
@Override
public InputStream getResourceStream(String template_name) throws ResourceNotFoundException {
- return loader.openResource(template_name);
+ try {
+ return loader.openResource(template_name);
+ } catch (IOException ioe) {
+ throw new ResourceNotFoundException(ioe);
+ }
}
@Override
Modified: lucene/dev/branches/lucene3312/solr/core/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/build.xml?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/build.xml (original)
+++ lucene/dev/branches/lucene3312/solr/core/build.xml Sat Jul 28 11:27:51 2012
@@ -21,6 +21,8 @@
<!-- hackidty-hack-hack -->
<property name="ivy.retrieve.pattern" value="${common-solr.dir}/lib/[artifact]-[revision].[ext]"/>
+ <!-- we cannot sync because solr/core and solr/solrj share the same lib/... clean this up! -->
+ <property name="ivy.sync" value="false"/>
<!-- html file for testing -->
<property name="rat.excludes" value="**/htmlStripReaderTest.html"/>
Modified: lucene/dev/branches/lucene3312/solr/core/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/ivy.xml?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/ivy.xml (original)
+++ lucene/dev/branches/lucene3312/solr/core/ivy.xml Sat Jul 28 11:27:51 2012
@@ -22,6 +22,7 @@
<dependencies>
<dependency org="commons-codec" name="commons-codec" rev="1.6" transitive="false"/>
<dependency org="commons-fileupload" name="commons-fileupload" rev="1.2.1" transitive="false"/>
+ <dependency org="commons-cli" name="commons-cli" rev="1.2" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpcore" rev="4.1.4" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpclient" rev="4.1.3" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpmime" rev="4.1.3" transitive="false"/>
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilter.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilter.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilter.java Sat Jul 28 11:27:51 2012
@@ -26,8 +26,6 @@ import java.util.HashMap;
import java.util.Set;
import org.apache.lucene.analysis.charfilter.BaseCharFilter;
-import org.apache.lucene.analysis.CharReader;
-import org.apache.lucene.analysis.CharStream;
/**
* <p>
@@ -72,21 +70,21 @@ public class LegacyHTMLStripCharFilter e
public static void main(String[] args) throws IOException {
Reader in = new LegacyHTMLStripCharFilter(
- CharReader.get(new InputStreamReader(System.in, Charset.defaultCharset())));
+ new InputStreamReader(System.in, Charset.defaultCharset()));
int ch;
while ( (ch=in.read()) != -1 ) System.out.print((char)ch);
}
- public LegacyHTMLStripCharFilter(CharStream source) {
- super(source.markSupported() ? source : CharReader.get(new BufferedReader(source)));
+ public LegacyHTMLStripCharFilter(Reader source) {
+ super(source.markSupported() ? source : new BufferedReader(source));
}
- public LegacyHTMLStripCharFilter(CharStream source, Set<String> escapedTags){
+ public LegacyHTMLStripCharFilter(Reader source, Set<String> escapedTags){
this(source);
this.escapedTags = escapedTags;
}
- public LegacyHTMLStripCharFilter(CharStream source, Set<String> escapedTags, int readAheadLimit){
+ public LegacyHTMLStripCharFilter(Reader source, Set<String> escapedTags, int readAheadLimit){
this(source);
this.escapedTags = escapedTags;
this.readAheadLimit = readAheadLimit;
@@ -105,7 +103,7 @@ public class LegacyHTMLStripCharFilter e
return ch;
}
numRead++;
- return input.read();
+ return in.read();
}
private int nextSkipWS() throws IOException {
@@ -120,7 +118,7 @@ public class LegacyHTMLStripCharFilter e
return pushed.charAt(len-1);
}
numRead++;
- int ch = input.read();
+ int ch = in.read();
push(ch);
return ch;
}
@@ -182,11 +180,11 @@ public class LegacyHTMLStripCharFilter e
private void saveState() throws IOException {
lastMark = numRead;
- input.mark(readAheadLimit);
+ in.mark(readAheadLimit);
}
private void restoreState() throws IOException {
- input.reset();
+ in.reset();
pushed.setLength(0);
}
@@ -775,12 +773,6 @@ public class LegacyHTMLStripCharFilter e
return i;
}
- @Override
- public void close() throws IOException {
- input.close();
- }
-
-
private static final HashMap<String,Character> entityTable;
static {
entityTable = new HashMap<String,Character>();
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilterFactory.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilterFactory.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilterFactory.java Sat Jul 28 11:27:51 2012
@@ -18,7 +18,9 @@ package org.apache.solr.analysis;
* limitations under the License.
*/
-import org.apache.lucene.analysis.CharStream;
+import java.io.Reader;
+
+import org.apache.lucene.analysis.charfilter.HTMLStripCharFilterFactory;
import org.apache.lucene.analysis.util.CharFilterFactory;
/**
@@ -52,7 +54,7 @@ import org.apache.lucene.analysis.util.C
@Deprecated
public class LegacyHTMLStripCharFilterFactory extends CharFilterFactory {
- public LegacyHTMLStripCharFilter create(CharStream input) {
+ public LegacyHTMLStripCharFilter create(Reader input) {
return new LegacyHTMLStripCharFilter(input);
}
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/TokenizerChain.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/TokenizerChain.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/TokenizerChain.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/TokenizerChain.java Sat Jul 28 11:27:51 2012
@@ -50,7 +50,7 @@ public final class TokenizerChain extend
@Override
public Reader initReader(String fieldName, Reader reader) {
if (charFilters != null && charFilters.length > 0) {
- CharStream cs = CharReader.get( reader );
+ Reader cs = reader;
for (CharFilterFactory charFilter : charFilters) {
cs = charFilter.create(cs);
}
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/TrieTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/TrieTokenizerFactory.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/TrieTokenizerFactory.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/analysis/TrieTokenizerFactory.java Sat Jul 28 11:27:51 2012
@@ -73,13 +73,13 @@ final class TrieTokenizer extends Tokeni
this.precisionStep = precisionStep;
this.ts = ts;
- reset(input);
+ setReader(input);
}
@Override
- public void reset(Reader input) {
+ public void setReader(Reader input) {
try {
- super.reset(input);
+ super.setReader(input);
input = super.input;
char[] buf = new char[32];
int len = input.read(buf);
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java Sat Jul 28 11:27:51 2012
@@ -23,12 +23,12 @@ import java.util.NoSuchElementException;
import java.util.TreeMap;
import java.util.concurrent.CountDownLatch;
+import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs;
-import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.ACL;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,12 +42,12 @@ public class DistributedQueue {
private final String dir;
- private ZooKeeper zookeeper;
+ private SolrZkClient zookeeper;
private List<ACL> acl = ZooDefs.Ids.OPEN_ACL_UNSAFE;
private final String prefix = "qn-";
- public DistributedQueue(ZooKeeper zookeeper, String dir, List<ACL> acl) {
+ public DistributedQueue(SolrZkClient zookeeper, String dir, List<ACL> acl) {
this.dir = dir;
if (acl != null) {
@@ -70,7 +70,7 @@ public class DistributedQueue {
List<String> childNames = null;
try {
- childNames = zookeeper.getChildren(dir, watcher);
+ childNames = zookeeper.getChildren(dir, watcher, true);
} catch (KeeperException.NoNodeException e) {
throw e;
}
@@ -124,7 +124,7 @@ public class DistributedQueue {
for (String headNode : orderedChildren.values()) {
if (headNode != null) {
try {
- return zookeeper.getData(dir + "/" + headNode, false, null);
+ return zookeeper.getData(dir + "/" + headNode, null, null, true);
} catch (KeeperException.NoNodeException e) {
// Another client removed the node first, try next
}
@@ -156,8 +156,8 @@ public class DistributedQueue {
for (String headNode : orderedChildren.values()) {
String path = dir + "/" + headNode;
try {
- byte[] data = zookeeper.getData(path, false, null);
- zookeeper.delete(path, -1);
+ byte[] data = zookeeper.getData(path, null, null, true);
+ zookeeper.delete(path, -1, true);
return data;
} catch (KeeperException.NoNodeException e) {
// Another client deleted the node first.
@@ -202,7 +202,7 @@ public class DistributedQueue {
try {
orderedChildren = orderedChildren(childWatcher);
} catch (KeeperException.NoNodeException e) {
- zookeeper.create(dir, new byte[0], acl, CreateMode.PERSISTENT);
+ zookeeper.create(dir, new byte[0], acl, CreateMode.PERSISTENT, true);
continue;
}
if (orderedChildren.size() == 0) {
@@ -213,8 +213,8 @@ public class DistributedQueue {
for (String headNode : orderedChildren.values()) {
String path = dir + "/" + headNode;
try {
- byte[] data = zookeeper.getData(path, false, null);
- zookeeper.delete(path, -1);
+ byte[] data = zookeeper.getData(path, null, null, true);
+ zookeeper.delete(path, -1, true);
return data;
} catch (KeeperException.NoNodeException e) {
// Another client deleted the node first.
@@ -234,11 +234,11 @@ public class DistributedQueue {
for (;;) {
try {
zookeeper.create(dir + "/" + prefix, data, acl,
- CreateMode.PERSISTENT_SEQUENTIAL);
+ CreateMode.PERSISTENT_SEQUENTIAL, true);
return true;
} catch (KeeperException.NoNodeException e) {
try {
- zookeeper.create(dir, new byte[0], acl, CreateMode.PERSISTENT);
+ zookeeper.create(dir, new byte[0], acl, CreateMode.PERSISTENT, true);
} catch (KeeperException.NodeExistsException ne) {
//someone created it
}
@@ -284,7 +284,7 @@ public class DistributedQueue {
try {
orderedChildren = orderedChildren(childWatcher);
} catch (KeeperException.NoNodeException e) {
- zookeeper.create(dir, new byte[0], acl, CreateMode.PERSISTENT);
+ zookeeper.create(dir, new byte[0], acl, CreateMode.PERSISTENT, true);
continue;
}
if (orderedChildren.size() == 0) {
@@ -295,7 +295,7 @@ public class DistributedQueue {
for (String headNode : orderedChildren.values()) {
String path = dir + "/" + headNode;
try {
- byte[] data = zookeeper.getData(path, false, null);
+ byte[] data = zookeeper.getData(path, null, null, true);
return data;
} catch (KeeperException.NoNodeException e) {
// Another client deleted the node first.
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java Sat Jul 28 11:27:51 2012
@@ -17,6 +17,8 @@ import org.apache.solr.handler.component
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.KeeperException.NodeExistsException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -63,7 +65,7 @@ public abstract class ElectionContext {
}
class ShardLeaderElectionContextBase extends ElectionContext {
-
+ private static Logger log = LoggerFactory.getLogger(ShardLeaderElectionContextBase.class);
protected final SolrZkClient zkClient;
protected String shardId;
protected String collection;
@@ -111,6 +113,8 @@ class ShardLeaderElectionContextBase ext
// add core container and stop passing core around...
final class ShardLeaderElectionContext extends ShardLeaderElectionContextBase {
+ private static Logger log = LoggerFactory.getLogger(ShardLeaderElectionContext.class);
+
private ZkController zkController;
private CoreContainer cc;
private SyncStrategy syncStrategy = new SyncStrategy();
@@ -131,8 +135,6 @@ final class ShardLeaderElectionContext e
String coreName = leaderProps.get(ZkStateReader.CORE_NAME_PROP);
SolrCore core = null;
try {
- // the first time we are run, we will get a startupCore - after
- // we will get null and must use cc.getCore
core = cc.getCore(coreName);
@@ -181,7 +183,8 @@ final class ShardLeaderElectionContext e
// remove our ephemeral and re join the election
// System.out.println("sync failed, delete our election node:"
// + leaderSeqPath);
-
+ log.info("There is a better leader candidate than us - going back into recovery");
+
zkController.publish(core.getCoreDescriptor(), ZkStateReader.DOWN);
cancelElection();
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/Overseer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/Overseer.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/Overseer.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/Overseer.java Sat Jul 28 11:27:51 2012
@@ -422,19 +422,19 @@ public class Overseer {
*/
public static DistributedQueue getInQueue(final SolrZkClient zkClient) {
createOverseerNode(zkClient);
- return new DistributedQueue(zkClient.getSolrZooKeeper(), "/overseer/queue", null);
+ return new DistributedQueue(zkClient, "/overseer/queue", null);
}
/* Internal queue, not to be used outside of Overseer */
static DistributedQueue getInternalQueue(final SolrZkClient zkClient) {
createOverseerNode(zkClient);
- return new DistributedQueue(zkClient.getSolrZooKeeper(), "/overseer/queue-work", null);
+ return new DistributedQueue(zkClient, "/overseer/queue-work", null);
}
/* Collection creation queue */
static DistributedQueue getCollectionQueue(final SolrZkClient zkClient) {
createOverseerNode(zkClient);
- return new DistributedQueue(zkClient.getSolrZooKeeper(), "/overseer/collection-queue-work", null);
+ return new DistributedQueue(zkClient, "/overseer/collection-queue-work", null);
}
private static void createOverseerNode(final SolrZkClient zkClient) {
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java Sat Jul 28 11:27:51 2012
@@ -45,8 +45,12 @@ public class OverseerCollectionProcessor
public static final String CREATECOLLECTION = "createcollection";
+ public static final String RELOADCOLLECTION = "reloadcollection";
+
// TODO: use from Overseer?
private static final String QUEUE_OPERATION = "operation";
+
+
private static Logger log = LoggerFactory
.getLogger(OverseerCollectionProcessor.class);
@@ -124,77 +128,19 @@ public class OverseerCollectionProcessor
if (CREATECOLLECTION.equals(operation)) {
return createCollection(zkStateReader.getCloudState(), message);
} else if (DELETECOLLECTION.equals(operation)) {
- return deleteCollection(zkStateReader.getCloudState(), message);
+ ModifiableSolrParams params = new ModifiableSolrParams();
+ params.set(CoreAdminParams.ACTION, CoreAdminAction.UNLOAD.toString());
+ params.set(CoreAdminParams.DELETE_INSTANCE_DIR, true);
+ return collectionCmd(zkStateReader.getCloudState(), message, params);
+ } else if (RELOADCOLLECTION.equals(operation)) {
+ ModifiableSolrParams params = new ModifiableSolrParams();
+ params.set(CoreAdminParams.ACTION, CoreAdminAction.RELOAD.toString());
+ return collectionCmd(zkStateReader.getCloudState(), message, params);
}
// unknown command, toss it from our queue
return true;
}
-
- private boolean deleteCollection(CloudState cloudState, ZkNodeProps message) {
-
- String name = message.get("name");
-
- ModifiableSolrParams params = new ModifiableSolrParams();
- params.set(CoreAdminParams.ACTION, CoreAdminAction.UNLOAD.toString());
-
- Map<String,Slice> slices = cloudState.getCollectionStates().get(name);
-
- if (slices == null) {
- throw new SolrException(ErrorCode.BAD_REQUEST, "Could not find collection:" + name);
- }
-
- for (Map.Entry<String,Slice> entry : slices.entrySet()) {
- Slice slice = entry.getValue();
- Map<String,ZkNodeProps> shards = slice.getShards();
- Set<Map.Entry<String,ZkNodeProps>> shardEntries = shards.entrySet();
- for (Map.Entry<String,ZkNodeProps> shardEntry : shardEntries) {
- final ZkNodeProps node = shardEntry.getValue();
- if (cloudState.liveNodesContain(node.get(ZkStateReader.NODE_NAME_PROP))) {
- params.set(CoreAdminParams.CORE, name);
- params.set(CoreAdminParams.DELETE_INSTANCE_DIR, true);
- String replica = node.get(ZkStateReader.BASE_URL_PROP);
- ShardRequest sreq = new ShardRequest();
- // yes, they must use same admin handler path everywhere...
- params.set("qt", adminPath);
-
- sreq.purpose = 1;
- // TODO: this sucks
- if (replica.startsWith("http://")) replica = replica.substring(7);
- sreq.shards = new String[] {replica};
- sreq.actualShards = sreq.shards;
- sreq.params = params;
-
- shardHandler.submit(sreq, replica, sreq.params);
- }
- }
- }
-
- int failed = 0;
- ShardResponse srsp;
- do {
- srsp = shardHandler.takeCompletedOrError();
- if (srsp != null) {
- Throwable e = srsp.getException();
- if (e != null) {
- // should we retry?
- // TODO: we should return errors to the client
- // TODO: what if one fails and others succeed?
- failed++;
- log.error("Error talking to shard: " + srsp.getShard(), e);
- }
- }
- } while (srsp != null);
-
-
- // if all calls succeeded, return true
- if (failed > 0) {
- return false;
- }
- return true;
- }
-
- // TODO: bad name conflict with another method
private boolean createCollection(CloudState cloudState, ZkNodeProps message) {
// look at the replication factor and see if it matches reality
@@ -236,10 +182,13 @@ public class OverseerCollectionProcessor
Collections.shuffle(nodeList);
int numNodes = numShards * (numReplicas + 1);
- List<String> createOnNodes = nodeList.subList(0, Math.min(nodeList.size() -1, numNodes - 1));
+ List<String> createOnNodes = nodeList.subList(0, Math.min(nodeList.size(), numNodes));
+
+ log.info("Create collection " + name + " on " + createOnNodes);
for (String replica : createOnNodes) {
// TODO: this does not work if original url had _ in it
+ // We should have a master list
replica = replica.replaceAll("_", "/");
params.set(CoreAdminParams.NAME, name);
params.set("collection.configName", configName);
@@ -279,4 +228,64 @@ public class OverseerCollectionProcessor
}
return true;
}
+
+ private boolean collectionCmd(CloudState cloudState, ZkNodeProps message, ModifiableSolrParams params) {
+ log.info("Executing Collection Cmd : " + params);
+ String name = message.get("name");
+
+ Map<String,Slice> slices = cloudState.getCollectionStates().get(name);
+
+ if (slices == null) {
+ throw new SolrException(ErrorCode.BAD_REQUEST, "Could not find collection:" + name);
+ }
+
+ for (Map.Entry<String,Slice> entry : slices.entrySet()) {
+ Slice slice = entry.getValue();
+ Map<String,ZkNodeProps> shards = slice.getShards();
+ Set<Map.Entry<String,ZkNodeProps>> shardEntries = shards.entrySet();
+ for (Map.Entry<String,ZkNodeProps> shardEntry : shardEntries) {
+ final ZkNodeProps node = shardEntry.getValue();
+ if (cloudState.liveNodesContain(node.get(ZkStateReader.NODE_NAME_PROP))) {
+ params.set(CoreAdminParams.CORE, node.get(ZkStateReader.CORE_NAME_PROP));
+
+ String replica = node.get(ZkStateReader.BASE_URL_PROP);
+ ShardRequest sreq = new ShardRequest();
+ // yes, they must use same admin handler path everywhere...
+ params.set("qt", adminPath);
+
+ sreq.purpose = 1;
+ // TODO: this sucks
+ if (replica.startsWith("http://")) replica = replica.substring(7);
+ sreq.shards = new String[] {replica};
+ sreq.actualShards = sreq.shards;
+ sreq.params = params;
+
+ shardHandler.submit(sreq, replica, sreq.params);
+ }
+ }
+ }
+
+ int failed = 0;
+ ShardResponse srsp;
+ do {
+ srsp = shardHandler.takeCompletedOrError();
+ if (srsp != null) {
+ Throwable e = srsp.getException();
+ if (e != null) {
+ // should we retry?
+ // TODO: we should return errors to the client
+ // TODO: what if one fails and others succeed?
+ failed++;
+ log.error("Error talking to shard: " + srsp.getShard(), e);
+ }
+ }
+ } while (srsp != null);
+
+
+ // if all calls succeeded, return true
+ if (failed > 0) {
+ return false;
+ }
+ return true;
+ }
}
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java Sat Jul 28 11:27:51 2012
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
public class RecoveryStrategy extends Thread implements SafeStopThread {
private static final int MAX_RETRIES = 500;
private static final int INTERRUPTED = MAX_RETRIES + 1;
- private static final int START_TIMEOUT = 100;
+ private static final int STARTING_RECOVERY_DELAY = 1000;
private static final String REPLICATION_HANDLER = "/replication";
@@ -409,10 +409,11 @@ public class RecoveryStrategy extends Th
}
try {
- // if (!isClosed()) Thread.sleep(Math.min(START_TIMEOUT * retries, 60000));
- for (int i = 0; i<Math.min(retries, 600); i++) {
+ // start at 1 sec and work up to a couple min
+ double loopCount = Math.min(Math.pow(2, retries), 600);
+ for (int i = 0; i < loopCount; i++) {
if (isClosed()) break; // check if someone closed us
- Thread.sleep(START_TIMEOUT);
+ Thread.sleep(STARTING_RECOVERY_DELAY);
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java?rev=1366643&r1=1366642&r2=1366643&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java Sat Jul 28 11:27:51 2012
@@ -17,11 +17,13 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.http.client.HttpClient;
+import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpClientUtil;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.CoreAdminRequest.RequestRecovery;
@@ -63,12 +65,14 @@ public class SyncStrategy {
shardHandler = new HttpShardHandlerFactory().getShardHandler(client);
}
- private static class SyncShardRequest extends ShardRequest {
+ private static class ShardCoreRequest extends ShardRequest {
String coreName;
+ public String baseUrl;
}
public boolean sync(ZkController zkController, SolrCore core,
ZkNodeProps leaderProps) {
+ log.info("Sync replicas to " + ZkCoreNodeProps.getCoreUrl(leaderProps));
// TODO: look at our state usage of sync
// zkController.publish(core, ZkStateReader.SYNC);
@@ -104,23 +108,19 @@ public class SyncStrategy {
if (!success
&& !areAnyOtherReplicasActive(zkController, leaderProps, collection,
shardId)) {
-// System.out
-// .println("wasnt a success but no on else i active! I am the leader");
-
+ log.info("Sync was not a success but no on else i active! I am the leader");
success = true;
}
if (success) {
- // solrcloud_debug
- // System.out.println("Sync success");
- // we are the leader - tell all of our replias to sync with us
+ log.info("Sync Success - now sync replicas to me");
syncToMe(zkController, collection, shardId, leaderProps);
} else {
+ SolrException.log(log, "Sync Failed");
- // solrcloud_debug
- // System.out.println("Sync failure");
+ // lets see who seems ahead...
}
} catch (Exception e) {
@@ -162,11 +162,7 @@ public class SyncStrategy {
.getReplicaProps(collection, shardId,
props.get(ZkStateReader.NODE_NAME_PROP),
props.get(ZkStateReader.CORE_NAME_PROP), ZkStateReader.ACTIVE); // TODO:
- // should
- // there
- // be a
- // state
- // filter?
+ // TODO should there be a state filter?
if (nodes == null) {
// I have no replicas
@@ -197,19 +193,17 @@ public class SyncStrategy {
leaderProps.get(ZkStateReader.NODE_NAME_PROP),
leaderProps.get(ZkStateReader.CORE_NAME_PROP), ZkStateReader.ACTIVE);
if (nodes == null) {
- // System.out.println("I have no replicas");
- // I have no replicas
+ log.info(ZkCoreNodeProps.getCoreUrl(leaderProps) + " has no replicas");
return;
}
- //System.out.println("tell my replicas to sync");
+
ZkCoreNodeProps zkLeader = new ZkCoreNodeProps(leaderProps);
for (ZkCoreNodeProps node : nodes) {
try {
-// System.out
-// .println("try and ask " + node.getCoreUrl() + " to sync");
- log.info("try and ask " + node.getCoreUrl() + " to sync");
- requestSync(zkLeader.getCoreUrl(), node.getCoreName());
-
+ log.info(ZkCoreNodeProps.getCoreUrl(leaderProps) + ": try and ask " + node.getCoreUrl() + " to sync");
+
+ requestSync(node.getBaseUrl(), node.getCoreUrl(), zkLeader.getCoreUrl(), node.getCoreName());
+
} catch (Exception e) {
SolrException.log(log, "Error syncing replica to leader", e);
}
@@ -220,24 +214,25 @@ public class SyncStrategy {
ShardResponse srsp = shardHandler.takeCompletedOrError();
if (srsp == null) break;
boolean success = handleResponse(srsp);
- //System.out.println("got response:" + success);
+ if (srsp.getException() != null) {
+ SolrException.log(log, "Sync request error: " + srsp.getException());
+ }
+
if (!success) {
try {
- log.info("Sync failed - asking replica to recover.");
- //System.out.println("Sync failed - asking replica to recover.");
- RequestRecovery recoverRequestCmd = new RequestRecovery();
- recoverRequestCmd.setAction(CoreAdminAction.REQUESTRECOVERY);
- recoverRequestCmd.setCoreName(((SyncShardRequest)srsp.getShardRequest()).coreName);
+ log.info(ZkCoreNodeProps.getCoreUrl(leaderProps) + ": Sync failed - asking replica (" + srsp.getShardAddress() + ") to recover.");
- HttpSolrServer server = new HttpSolrServer(zkLeader.getBaseUrl());
- server.request(recoverRequestCmd);
+ requestRecovery(((ShardCoreRequest)srsp.getShardRequest()).baseUrl, ((ShardCoreRequest)srsp.getShardRequest()).coreName);
+
} catch (Exception e) {
- log.info("Could not tell a replica to recover", e);
+ SolrException.log(log, ZkCoreNodeProps.getCoreUrl(leaderProps) + ": Could not tell a replica to recover", e);
}
- shardHandler.cancelAll();
- break;
+ } else {
+ log.info(ZkCoreNodeProps.getCoreUrl(leaderProps) + ": " + " sync completed with " + srsp.getShardAddress());
}
}
+
+
}
private boolean handleResponse(ShardResponse srsp) {
@@ -246,14 +241,19 @@ public class SyncStrategy {
if (response == null) {
return false;
}
- boolean success = (Boolean) response.get("sync");
+ Boolean success = (Boolean) response.get("sync");
+
+ if (success == null) {
+ success = false;
+ }
return success;
}
- private void requestSync(String replica, String coreName) {
- SyncShardRequest sreq = new SyncShardRequest();
+ private void requestSync(String baseUrl, String replica, String leaderUrl, String coreName) {
+ ShardCoreRequest sreq = new ShardCoreRequest();
sreq.coreName = coreName;
+ sreq.baseUrl = baseUrl;
sreq.purpose = 1;
// TODO: this sucks
if (replica.startsWith("http://"))
@@ -264,11 +264,23 @@ public class SyncStrategy {
sreq.params.set("qt","/get");
sreq.params.set("distrib",false);
sreq.params.set("getVersions",Integer.toString(100));
- sreq.params.set("sync",replica);
+ sreq.params.set("sync",leaderUrl);
shardHandler.submit(sreq, replica, sreq.params);
}
+ private void requestRecovery(String baseUrl, String coreName) throws SolrServerException, IOException {
+ // TODO: do this in background threads
+ RequestRecovery recoverRequestCmd = new RequestRecovery();
+ recoverRequestCmd.setAction(CoreAdminAction.REQUESTRECOVERY);
+ recoverRequestCmd.setCoreName(coreName);
+
+ HttpSolrServer server = new HttpSolrServer(baseUrl);
+ server.setConnectionTimeout(45000);
+ server.setSoTimeout(45000);
+ server.request(recoverRequestCmd);
+ }
+
public static ModifiableSolrParams params(String... params) {
ModifiableSolrParams msp = new ModifiableSolrParams();
for (int i = 0; i < params.length; i += 2) {