You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2013/03/10 16:05:21 UTC
svn commit: r1454862 [3/49] - in /lucene/dev/branches/lucene4258: ./
dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/
dev-tools/idea/.idea/libraries/ dev-tools/idea/lucene/demo/
dev-tools/idea/lucene/facet/ dev-tools/idea/lucene/highlighter/ dev-too...
Modified: lucene/dev/branches/lucene4258/dev-tools/maven/solr/core/src/java/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/maven/solr/core/src/java/pom.xml.template?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/maven/solr/core/src/java/pom.xml.template (original)
+++ lucene/dev/branches/lucene4258/dev-tools/maven/solr/core/src/java/pom.xml.template Sun Mar 10 15:04:57 2013
@@ -33,8 +33,8 @@
<description>Apache Solr Core</description>
<properties>
<module-directory>solr/core</module-directory>
- <top-level>../../../../..</top-level>
- <module-path>${top-level}/${module-directory}/src/java</module-path>
+ <relative-top-level>../../../../..</relative-top-level>
+ <module-path>${relative-top-level}/${module-directory}/src/java</module-path>
</properties>
<scm>
<connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -54,6 +54,11 @@
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-codecs</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>${project.version}</version>
</dependency>
@@ -131,6 +136,16 @@
<artifactId>commons-fileupload</artifactId>
</dependency>
<dependency>
+ <groupId>org.restlet.jee</groupId>
+ <artifactId>org.restlet</artifactId>
+ <version>${restlet.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.restlet.jee</groupId>
+ <artifactId>org.restlet.ext.servlet</artifactId>
+ <version>${restlet.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
@@ -196,10 +211,6 @@
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</dependency>
- <dependency>
- <groupId>com.yammer.metrics</groupId>
- <artifactId>metrics-core</artifactId>
- </dependency>
</dependencies>
<build>
<sourceDirectory>${module-path}</sourceDirectory>
@@ -220,6 +231,39 @@
<skip>true</skip> <!-- This skips test compilation - tests are run from solr-core-tests module -->
</configuration>
</plugin>
+ <plugin>
+ <groupId>de.thetaphi</groupId>
+ <artifactId>forbiddenapis</artifactId>
+ <executions>
+ <execution>
+ <id>solr-shared-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>solr-shared-test-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>check-forbidden-apis</id>
+ <configuration>
+ <!-- disallow undocumented classes like sun.misc.Unsafe: -->
+ <internalRuntimeForbidden>true</internalRuntimeForbidden>
+ <bundledSignatures>
+ <bundledSignature>jdk-unsafe</bundledSignature>
+ <bundledSignature>jdk-deprecated</bundledSignature>
+ <bundledSignature>commons-io-unsafe-${commons-io.version}</bundledSignature>
+ </bundledSignatures>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/servlet-api.txt</signaturesFile>
+ </signaturesFiles>
+ </configuration>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
Modified: lucene/dev/branches/lucene4258/dev-tools/maven/solr/core/src/test/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/maven/solr/core/src/test/pom.xml.template?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/maven/solr/core/src/test/pom.xml.template (original)
+++ lucene/dev/branches/lucene4258/dev-tools/maven/solr/core/src/test/pom.xml.template Sun Mar 10 15:04:57 2013
@@ -32,9 +32,8 @@
<packaging>jar</packaging>
<properties>
<module-directory>solr/core</module-directory>
- <top-level>../../../../..</top-level>
- <module-path>${top-level}/${module-directory}/src/test</module-path>
- <surefire-solr-directory>${top-level}/../../solr</surefire-solr-directory>
+ <relative-top-level>../../../../..</relative-top-level>
+ <module-path>${relative-top-level}/${module-directory}/src/test</module-path>
</properties>
<dependencies>
<dependency>
@@ -57,11 +56,6 @@
<artifactId>easymock</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
<sourceDirectory/>
@@ -120,13 +114,54 @@
</configuration>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <systemPropertyVariables>
- <java.util.logging.config.file>${surefire-solr-directory}/testlogging.properties</java.util.logging.config.file>
- </systemPropertyVariables>
- </configuration>
+ <groupId>de.thetaphi</groupId>
+ <artifactId>forbiddenapis</artifactId>
+ <executions>
+ <execution>
+ <id>solr-shared-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>solr-shared-test-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>test-check-forbidden-apis</id>
+ <configuration>
+ <!-- disallow undocumented classes like sun.misc.Unsafe: -->
+ <internalRuntimeForbidden>true</internalRuntimeForbidden>
+ <bundledSignatures>
+ <bundledSignature>jdk-unsafe</bundledSignature>
+ <bundledSignature>jdk-deprecated</bundledSignature>
+ <bundledSignature>commons-io-unsafe-${commons-io.version}</bundledSignature>
+ </bundledSignatures>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/servlet-api.txt</signaturesFile>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
+ </signaturesFiles>
+ </configuration>
+ <goals>
+ <goal>testCheck</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>test-check-forbidden-test-apis</id> <!-- Separate execution to specify excludes -->
+ <configuration>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/tests.txt</signaturesFile>
+ </signaturesFiles>
+ <excludes>
+ <!-- not actually a test -->
+ <exclude>org/apache/solr/search/DocSetPerf.class</exclude>
+ <!-- imported code -->
+ <exclude>org/apache/solr/internal/**/*.class</exclude>
+ </excludes>
+ </configuration>
+ <goals>
+ <goal>testCheck</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
</plugins>
</build>
Modified: lucene/dev/branches/lucene4258/dev-tools/maven/solr/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/maven/solr/pom.xml.template?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/maven/solr/pom.xml.template (original)
+++ lucene/dev/branches/lucene4258/dev-tools/maven/solr/pom.xml.template Sun Mar 10 15:04:57 2013
@@ -76,6 +76,13 @@
</mailingList>
</mailingLists>
<inceptionYear>2006</inceptionYear>
+ <repositories>
+ <repository>
+ <id>maven-restlet</id>
+ <name>Public online Restlet repository</name>
+ <url>http://maven.restlet.org</url>
+ </repository>
+ </repositories>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
@@ -110,5 +117,59 @@
</plugin>
</plugins>
</pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>de.thetaphi</groupId>
+ <artifactId>forbiddenapis</artifactId>
+ <executions>
+ <execution>
+ <id>solr-shared-check-forbidden-apis</id>
+ <configuration>
+ <!-- disallow undocumented classes like sun.misc.Unsafe: -->
+ <internalRuntimeForbidden>true</internalRuntimeForbidden>
+ <bundledSignatures>
+ <bundledSignature>jdk-unsafe</bundledSignature>
+ <bundledSignature>jdk-deprecated</bundledSignature>
+ </bundledSignatures>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
+ </signaturesFiles>
+ </configuration>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>solr-shared-test-check-forbidden-apis</id>
+ <configuration>
+ <!-- disallow undocumented classes like sun.misc.Unsafe: -->
+ <internalRuntimeForbidden>true</internalRuntimeForbidden>
+ <bundledSignatures>
+ <bundledSignature>jdk-unsafe</bundledSignature>
+ <bundledSignature>jdk-deprecated</bundledSignature>
+ <!-- Include commons-io-unsafe only in those modules with commons-io on their classpath -->
+ <!-- <bundledSignature>commons-io-unsafe-${commons-io.version}</bundledSignature> -->
+ </bundledSignatures>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/tests.txt</signaturesFile>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
+ </signaturesFiles>
+ </configuration>
+ <goals>
+ <goal>testCheck</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemPropertyVariables>
+ <java.util.logging.config.file>${top-level}/solr/testlogging.properties</java.util.logging.config.file>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
</project>
Modified: lucene/dev/branches/lucene4258/dev-tools/maven/solr/solrj/src/java/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/maven/solr/solrj/src/java/pom.xml.template?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/maven/solr/solrj/src/java/pom.xml.template (original)
+++ lucene/dev/branches/lucene4258/dev-tools/maven/solr/solrj/src/java/pom.xml.template Sun Mar 10 15:04:57 2013
@@ -33,8 +33,8 @@
<description>Apache Solr Solrj</description>
<properties>
<module-directory>solr/solrj</module-directory>
- <top-level>../../../../..</top-level>
- <module-path>${top-level}/${module-directory}/src/java</module-path>
+ <relative-top-level>../../../../..</relative-top-level>
+ <module-path>${relative-top-level}/${module-directory}/src/java</module-path>
</properties>
<scm>
<connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -76,12 +76,6 @@
</exclusion>
</exclusions>
</dependency>
- <!-- Need log4j api so long as Zookeeper does; see https://issues.apache.org/jira/browse/ZOOKEEPER-850 -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- <optional>true</optional> <!-- let the end user decide... they may be using log4j directly! -->
- </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
@@ -138,6 +132,40 @@
<skip>true</skip> <!-- This skips test compilation - tests are run from solr-solrj-tests module -->
</configuration>
</plugin>
+ <plugin>
+ <groupId>de.thetaphi</groupId>
+ <artifactId>forbiddenapis</artifactId>
+ <executions>
+ <execution>
+ <id>solr-shared-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>solr-shared-test-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>check-forbidden-apis</id>
+ <configuration>
+ <!-- disallow undocumented classes like sun.misc.Unsafe: -->
+ <internalRuntimeForbidden>true</internalRuntimeForbidden>
+ <bundledSignatures>
+ <bundledSignature>jdk-unsafe</bundledSignature>
+ <bundledSignature>jdk-deprecated</bundledSignature>
+ <bundledSignature>commons-io-unsafe-${commons-io.version}</bundledSignature>
+ </bundledSignatures>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
+ <!-- Solr-J does NOT depend on servlet-api -->
+ <!-- <signaturesFile>${top-level}/lucene/tools/forbiddenApis/servlet-api.txt</signaturesFile> -->
+ </signaturesFiles>
+ </configuration>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
Modified: lucene/dev/branches/lucene4258/dev-tools/maven/solr/solrj/src/test/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/maven/solr/solrj/src/test/pom.xml.template?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/maven/solr/solrj/src/test/pom.xml.template (original)
+++ lucene/dev/branches/lucene4258/dev-tools/maven/solr/solrj/src/test/pom.xml.template Sun Mar 10 15:04:57 2013
@@ -32,9 +32,8 @@
<packaging>jar</packaging>
<properties>
<module-directory>solr/solrj</module-directory>
- <top-level>../../../../..</top-level>
- <module-path>${top-level}/${module-directory}/src/test</module-path>
- <surefire-solr-directory>${top-level}/../../solr</surefire-solr-directory>
+ <relative-top-level>../../../../..</relative-top-level>
+ <module-path>${relative-top-level}/${module-directory}/src/test</module-path>
</properties>
<dependencies>
<dependency>
@@ -52,11 +51,6 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
<sourceDirectory/>
@@ -109,13 +103,52 @@
</configuration>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <systemPropertyVariables>
- <java.util.logging.config.file>${surefire-solr-directory}/testlogging.properties</java.util.logging.config.file>
- </systemPropertyVariables>
- </configuration>
+ <groupId>de.thetaphi</groupId>
+ <artifactId>forbiddenapis</artifactId>
+ <executions>
+ <execution>
+ <id>solr-shared-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>solr-shared-test-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>test-check-forbidden-servlet-api</id>
+ <configuration>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/servlet-api.txt</signaturesFile>
+ </signaturesFiles>
+ <excludes>
+ <!-- violates the servlet-api restrictions, but it is safe to do so in this test: -->
+ <exclude>org/apache/solr/client/solrj/impl/BasicHttpSolrServerTest$DebugServlet.class</exclude>
+ </excludes>
+ </configuration>
+ <goals>
+ <goal>testCheck</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>test-check-forbidden-apis</id>
+ <configuration>
+ <!-- disallow undocumented classes like sun.misc.Unsafe: -->
+ <internalRuntimeForbidden>true</internalRuntimeForbidden>
+ <bundledSignatures>
+ <bundledSignature>jdk-unsafe</bundledSignature>
+ <bundledSignature>jdk-deprecated</bundledSignature>
+ <bundledSignature>commons-io-unsafe-${commons-io.version}</bundledSignature>
+ </bundledSignatures>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/tests.txt</signaturesFile>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
+ </signaturesFiles>
+ </configuration>
+ <goals>
+ <goal>testCheck</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
</plugins>
</build>
Modified: lucene/dev/branches/lucene4258/dev-tools/maven/solr/test-framework/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/maven/solr/test-framework/pom.xml.template?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/maven/solr/test-framework/pom.xml.template (original)
+++ lucene/dev/branches/lucene4258/dev-tools/maven/solr/test-framework/pom.xml.template Sun Mar 10 15:04:57 2013
@@ -33,8 +33,8 @@
<description>Apache Solr Test Framework</description>
<properties>
<module-directory>solr/test-framework</module-directory>
- <top-level>../../..</top-level>
- <module-path>${top-level}/${module-directory}</module-path>
+ <relative-top-level>../../..</relative-top-level>
+ <module-path>${relative-top-level}/${module-directory}</module-path>
</properties>
<scm>
<connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -104,6 +104,40 @@
<skip>true</skip>
</configuration>
</plugin>
+ <plugin>
+ <groupId>de.thetaphi</groupId>
+ <artifactId>forbiddenapis</artifactId>
+ <executions>
+ <execution>
+ <id>solr-shared-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>solr-shared-test-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>check-forbidden-apis</id>
+ <configuration>
+ <!-- disallow undocumented classes like sun.misc.Unsafe: -->
+ <internalRuntimeForbidden>true</internalRuntimeForbidden>
+ <bundledSignatures>
+ <bundledSignature>jdk-unsafe</bundledSignature>
+ <bundledSignature>jdk-deprecated</bundledSignature>
+ <bundledSignature>commons-io-unsafe-${commons-io.version}</bundledSignature>
+ </bundledSignatures>
+ <signaturesFiles>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/servlet-api.txt</signaturesFile>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/tests.txt</signaturesFile>
+ <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
+ </signaturesFiles>
+ </configuration>
+ <goals>
+ <goal>check</goal> <!-- NOT testcheck -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
Modified: lucene/dev/branches/lucene4258/dev-tools/maven/solr/webapp/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/maven/solr/webapp/pom.xml.template?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/maven/solr/webapp/pom.xml.template (original)
+++ lucene/dev/branches/lucene4258/dev-tools/maven/solr/webapp/pom.xml.template Sun Mar 10 15:04:57 2013
@@ -33,8 +33,8 @@
<description>Apache Solr Search Server</description>
<properties>
<module-directory>solr/webapp</module-directory>
- <top-level>../../..</top-level>
- <module-path>${top-level}/${module-directory}</module-path>
+ <relative-top-level>../../..</relative-top-level>
+ <module-path>${relative-top-level}/${module-directory}</module-path>
</properties>
<scm>
<connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -64,10 +64,6 @@
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
</dependencies>
@@ -118,6 +114,20 @@
</systemProperties>
</configuration>
</plugin>
+ <plugin>
+ <groupId>de.thetaphi</groupId>
+ <artifactId>forbiddenapis</artifactId>
+ <executions>
+ <execution>
+ <id>solr-shared-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ <execution>
+ <id>solr-shared-test-check-forbidden-apis</id>
+ <phase>none</phase> <!-- Block inherited execution -->
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
Modified: lucene/dev/branches/lucene4258/dev-tools/scripts/buildAndPushRelease.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/scripts/buildAndPushRelease.py?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/scripts/buildAndPushRelease.py (original)
+++ lucene/dev/branches/lucene4258/dev-tools/scripts/buildAndPushRelease.py Sun Mar 10 15:04:57 2013
@@ -19,9 +19,9 @@ import shutil
import os
import sys
-# Usage: python -u buildRelease.py [-sign gpgKey(eg: 6E68DA61)] [-prepare] [-push userName] [-pushLocal dirName] [-smoke tmpDir] /path/to/checkout version(eg: 3.4.0) rcNum(eg: 0)
+# Usage: python3.2 -u buildAndPushRelease.py [-sign gpgKey(eg: 6E68DA61)] [-prepare] [-push userName] [-pushLocal dirName] [-smoke tmpDir] /path/to/checkout version(eg: 3.4.0) rcNum(eg: 0)
#
-# EG: python -u buildRelease.py -prepare -push -sign 6E68DA61 mikemccand /lucene/34x 3.4.0 0
+# EG: python3.2 -u buildAndPushRelease.py -prepare -push -sign 6E68DA61 mikemccand /lucene/34x 3.4.0 0
# NOTE: if you specify -sign, you have to type in your gpg password at
# some point while this runs; it's VERY confusing because the output
@@ -32,15 +32,15 @@ import sys
LOG = '/tmp/release.log'
def log(msg):
- f = open(LOG, 'ab')
- f.write(msg)
+ f = open(LOG, mode='ab')
+ f.write(msg.encode('utf-8'))
f.close()
def run(command):
log('\n\n%s: RUN: %s\n' % (datetime.datetime.now(), command))
if os.system('%s >> %s 2>&1' % (command, LOG)):
msg = ' FAILED: %s [see log %s]' % (command, LOG)
- print msg
+ print(msg)
raise RuntimeError(msg)
def scrubCheckout():
@@ -53,7 +53,7 @@ def scrubCheckout():
if match:
s = match.group(1)
if os.path.exists(s):
- print ' delete %s' % s
+ print(' delete %s' % s)
if os.path.isdir(s) and not os.path.islink(s):
shutil.rmtree(s)
else:
@@ -69,29 +69,29 @@ def getSVNRev():
def prepare(root, version, gpgKeyID, doTest):
- print
- print 'Prepare release...'
+ print()
+ print('Prepare release...')
if os.path.exists(LOG):
os.remove(LOG)
os.chdir(root)
- print ' svn up...'
+ print(' svn up...')
run('svn up')
rev = getSVNRev()
- print ' svn rev: %s' % rev
+ print(' svn rev: %s' % rev)
log('\nSVN rev: %s\n' % rev)
if doTest:
# Don't run tests if we are gonna smoke test after the release...
- print ' ant clean test'
+ print(' ant clean test')
run('ant clean test')
- print ' clean checkout'
+ print(' clean checkout')
scrubCheckout()
- open('rev.txt', 'wb').write(rev)
+ open('rev.txt', mode='wb').write(rev.encode('UTF-8'))
- print ' lucene prepare-release'
+ print(' lucene prepare-release')
os.chdir('lucene')
cmd = 'ant -Dversion=%s -Dspecversion=%s' % (version, version)
if gpgKeyID is not None:
@@ -100,7 +100,7 @@ def prepare(root, version, gpgKeyID, doT
cmd += ' prepare-release-no-sign'
run(cmd)
- print ' solr prepare-release'
+ print(' solr prepare-release')
os.chdir('../solr')
cmd = 'ant -Dversion=%s -Dspecversion=%s' % (version, version)
if gpgKeyID is not None:
@@ -108,105 +108,94 @@ def prepare(root, version, gpgKeyID, doT
else:
cmd += ' prepare-release-no-sign'
run(cmd)
- print ' done!'
- print
+ print(' done!')
+ print()
return rev
def push(version, root, rev, rcNum, username):
- print 'Push...'
+ print('Push...')
dir = 'lucene-solr-%s-RC%d-rev%s' % (version, rcNum, rev)
- s = os.popen('ssh %s@people.apache.org "ls -ld public_html/staging_area/%s" 2>&1' % (username, dir)).read()
- if s.lower().find('no such file or directory') == -1:
- print ' Remove old dir...'
+ s = os.popen('ssh %s@people.apache.org "ls -ld public_html/staging_area/%s" 2>&1' % (username, dir)).read().decode('UTF-8')
+ if 'no such file or directory' not in s.lower():
+ print(' Remove old dir...')
run('ssh %s@people.apache.org "chmod -R u+rwX public_html/staging_area/%s; rm -rf public_html/staging_area/%s"' %
(username, dir, dir))
run('ssh %s@people.apache.org "mkdir -p public_html/staging_area/%s/lucene public_html/staging_area/%s/solr"' % \
(username, dir, dir))
- print ' Lucene'
+ print(' Lucene')
os.chdir('%s/lucene/dist' % root)
- print ' zip...'
+ print(' zip...')
if os.path.exists('lucene.tar.bz2'):
os.remove('lucene.tar.bz2')
run('tar cjf lucene.tar.bz2 *')
- print ' copy...'
+ print(' copy...')
run('scp lucene.tar.bz2 %s@people.apache.org:public_html/staging_area/%s/lucene' % (username, dir))
- print ' unzip...'
+ print(' unzip...')
run('ssh %s@people.apache.org "cd public_html/staging_area/%s/lucene; tar xjf lucene.tar.bz2; rm -f lucene.tar.bz2"' % (username, dir))
os.remove('lucene.tar.bz2')
- print ' copy changes...'
- os.chdir('..')
- run('scp -r build/docs/changes %s@people.apache.org:public_html/staging_area/%s/lucene/changes-%s' % (username, dir, version))
- print ' Solr'
+ print(' Solr')
os.chdir('%s/solr/package' % root)
- print ' zip...'
+ print(' zip...')
if os.path.exists('solr.tar.bz2'):
os.remove('solr.tar.bz2')
run('tar cjf solr.tar.bz2 *')
- print ' copy...'
+ print(' copy...')
run('scp solr.tar.bz2 %s@people.apache.org:public_html/staging_area/%s/solr' % (username, dir))
- print ' unzip...'
+ print(' unzip...')
run('ssh %s@people.apache.org "cd public_html/staging_area/%s/solr; tar xjf solr.tar.bz2; rm -f solr.tar.bz2"' % (username, dir))
os.remove('solr.tar.bz2')
- print ' KEYS'
- run('wget http://people.apache.org/keys/group/lucene.asc')
- os.rename('lucene.asc', 'KEYS')
- run('chmod a+r-w KEYS')
- run('scp KEYS %s@people.apache.org:public_html/staging_area/%s/lucene' % (username, dir))
- run('scp KEYS %s@people.apache.org:public_html/staging_area/%s/solr' % (username, dir))
- os.remove('KEYS')
-
- print ' chmod...'
+ print(' chmod...')
run('ssh %s@people.apache.org "chmod -R a+rX-w public_html/staging_area/%s"' % (username, dir))
- print ' done!'
+ print(' done!')
url = 'https://people.apache.org/~%s/staging_area/%s' % (username, dir)
return url
def pushLocal(version, root, rev, rcNum, localDir):
- print 'Push local [%s]...' % localDir
+ print('Push local [%s]...' % localDir)
os.makedirs(localDir)
dir = 'lucene-solr-%s-RC%d-rev%s' % (version, rcNum, rev)
os.makedirs('%s/%s/lucene' % (localDir, dir))
os.makedirs('%s/%s/solr' % (localDir, dir))
- print ' Lucene'
+ print(' Lucene')
os.chdir('%s/lucene/dist' % root)
- print ' zip...'
+ print(' zip...')
if os.path.exists('lucene.tar.bz2'):
os.remove('lucene.tar.bz2')
run('tar cjf lucene.tar.bz2 *')
os.chdir('%s/%s/lucene' % (localDir, dir))
- print ' unzip...'
+ print(' unzip...')
run('tar xjf "%s/lucene/dist/lucene.tar.bz2"' % root)
os.remove('%s/lucene/dist/lucene.tar.bz2' % root)
- print ' copy changes...'
+ print(' copy changes...')
run('cp -r "%s/lucene/build/docs/changes" changes-%s' % (root, version))
- print ' Solr'
+ print(' Solr')
os.chdir('%s/solr/package' % root)
- print ' zip...'
+ print(' zip...')
if os.path.exists('solr.tar.bz2'):
os.remove('solr.tar.bz2')
run('tar cjf solr.tar.bz2 *')
- print ' unzip...'
+ print(' unzip...')
os.chdir('%s/%s/solr' % (localDir, dir))
run('tar xjf "%s/solr/package/solr.tar.bz2"' % root)
os.remove('%s/solr/package/solr.tar.bz2' % root)
- print ' KEYS'
+ print(' KEYS')
run('wget http://people.apache.org/keys/group/lucene.asc')
os.rename('lucene.asc', 'KEYS')
run('chmod a+r-w KEYS')
run('cp KEYS ../lucene')
- print ' chmod...'
+ print(' chmod...')
os.chdir('..')
run('chmod -R a+rX-w .')
- print ' done!'
+ print(' done!')
return 'file://%s/%s' % (os.path.abspath(localDir), dir)
def main():
@@ -231,9 +220,9 @@ def main():
smokeTmpDir = sys.argv[idx+1]
del sys.argv[idx:idx+2]
if os.path.exists(smokeTmpDir):
- print
- print 'ERROR: smoke tmpDir "%s" exists; please remove first' % smokeTmpDir
- print
+ print()
+ print('ERROR: smoke tmpDir "%s" exists; please remove first' % smokeTmpDir)
+ print()
sys.exit(1)
try:
@@ -245,15 +234,15 @@ def main():
localStagingDir = sys.argv[idx+1]
del sys.argv[idx:idx+2]
if os.path.exists(localStagingDir):
- print
- print 'ERROR: pushLocal dir "%s" exists; please remove first' % localStagingDir
- print
+ print()
+ print('ERROR: pushLocal dir "%s" exists; please remove first' % localStagingDir)
+ print()
sys.exit(1)
if doPushRemote and doPushLocal:
- print
- print 'ERROR: specify at most one of -push or -pushLocal (got both)'
- print
+ print()
+ print('ERROR: specify at most one of -push or -pushLocal (got both)')
+ print()
sys.exit(1)
try:
@@ -263,7 +252,7 @@ def main():
else:
gpgKeyID = sys.argv[idx+1]
del sys.argv[idx:idx+2]
-
+
root = os.path.abspath(sys.argv[1])
version = sys.argv[2]
rcNum = int(sys.argv[3])
@@ -272,22 +261,26 @@ def main():
rev = prepare(root, version, gpgKeyID, smokeTmpDir is None)
else:
os.chdir(root)
- rev = open('rev.txt').read()
+ rev = open('rev.txt', encoding='UTF-8').read()
if doPushRemote:
url = push(version, root, rev, rcNum, username)
elif doPushLocal:
url = pushLocal(version, root, rev, rcNum, localStagingDir)
else:
- url = NOne
+ url = None
if url is not None:
- print ' URL: %s' % url
+ print(' URL: %s' % url)
if smokeTmpDir is not None:
import smokeTestRelease
smokeTestRelease.DEBUG = False
smokeTestRelease.smokeTest(url, version, smokeTmpDir, gpgKeyID is not None)
-
+
if __name__ == '__main__':
- main()
+ try:
+ main()
+ except:
+ import traceback
+ traceback.print_exc()
Modified: lucene/dev/branches/lucene4258/dev-tools/scripts/checkJavadocLinks.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/scripts/checkJavadocLinks.py?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/scripts/checkJavadocLinks.py (original)
+++ lucene/dev/branches/lucene4258/dev-tools/scripts/checkJavadocLinks.py Sun Mar 10 15:04:57 2013
@@ -197,6 +197,9 @@ def checkAll(dirName):
elif link.find('lucene.apache.org/java/docs/discussion.html') != -1:
# OK
pass
+ elif link.find('lucene.apache.org/core/discussion.html') != -1:
+ # OK
+ pass
elif link.find('lucene.apache.org/solr/mirrors-solr-latest-redir.html') != -1:
# OK
pass
Modified: lucene/dev/branches/lucene4258/dev-tools/scripts/smokeTestRelease.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/dev-tools/scripts/smokeTestRelease.py?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/dev-tools/scripts/smokeTestRelease.py (original)
+++ lucene/dev/branches/lucene4258/dev-tools/scripts/smokeTestRelease.py Sun Mar 10 15:04:57 2013
@@ -308,7 +308,7 @@ def checkSigs(project, urlString, versio
artifact = text
artifactURL = subURL
if project == 'solr':
- expected = 'apache-solr-%s' % version
+ expected = 'solr-%s' % version
else:
expected = 'lucene-%s' % version
if not artifact.startswith(expected):
@@ -334,9 +334,9 @@ def checkSigs(project, urlString, versio
'lucene-%s.tgz' % version,
'lucene-%s.zip' % version]
else:
- expected = ['apache-solr-%s-src.tgz' % version,
- 'apache-solr-%s.tgz' % version,
- 'apache-solr-%s.zip' % version]
+ expected = ['solr-%s-src.tgz' % version,
+ 'solr-%s.tgz' % version,
+ 'solr-%s.zip' % version]
actual = [x[0] for x in artifacts]
if expected != actual:
@@ -556,10 +556,7 @@ def unpackAndVerify(project, tmpDir, art
# make sure it unpacks to proper subdir
l = os.listdir(destDir)
- if project == 'solr':
- expected = 'apache-%s-%s' % (project, version)
- else:
- expected = '%s-%s' % (project, version)
+ expected = '%s-%s' % (project, version)
if l != [expected]:
raise RuntimeError('unpack produced entries %s; expected only %s' % (l, expected))
@@ -956,7 +953,6 @@ def getDistributionsForMavenChecks(tmpDi
distributionFiles = defaultdict()
for project in ('lucene', 'solr'):
distribution = '%s-%s.tgz' % (project, version)
- if project == 'solr': distribution = 'apache-' + distribution
if not os.path.exists('%s/%s' % (tmpDir, distribution)):
distURL = '%s/%s/%s' % (baseURL, project, distribution)
print(' download %s...' % distribution, end=' ')
@@ -1010,8 +1006,6 @@ def checkIdenticalMavenArtifacts(distrib
distFilenames = dict()
for file in distributionFiles[project]:
baseName = os.path.basename(file)
- if project == 'solr': # Remove 'apache-' prefix to allow comparison to Maven artifacts
- baseName = baseName.replace('apache-', '')
distFilenames[baseName] = file
for artifact in artifacts[project]:
if reJarWar.search(artifact):
@@ -1348,9 +1342,9 @@ def smokeTest(baseURL, version, tmpDir,
print()
print('Test Solr...')
checkSigs('solr', solrPath, version, tmpDir, isSigned)
- for artifact in ('apache-solr-%s.tgz' % version, 'apache-solr-%s.zip' % version):
+ for artifact in ('solr-%s.tgz' % version, 'solr-%s.zip' % version):
unpackAndVerify('solr', tmpDir, artifact, version)
- unpackAndVerify('solr', tmpDir, 'apache-solr-%s-src.tgz' % version, version)
+ unpackAndVerify('solr', tmpDir, 'solr-%s-src.tgz' % version, version)
print()
print('Test Maven artifacts for Lucene and Solr...')
Modified: lucene/dev/branches/lucene4258/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/CHANGES.txt?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene4258/lucene/CHANGES.txt Sun Mar 10 15:04:57 2013
@@ -19,6 +19,311 @@ Changes in backwards compatibility polic
(Nikola TankoviÄ, Uwe Schindler, Chris Male, Mike McCandless,
Robert Muir)
+======================= Lucene 4.3.0 =======================
+
+Changes in backwards compatibility policy
+
+* LUCENE-4810: EdgeNGramTokenFilter no longer increments position for
+ multiple ngrams derived from the same input token. (Walter Underwood
+ via Mike McCandless)
+
+New Features
+
+* LUCENE-4815: DrillSideways now allows more than one FacetRequest per
+ dimension (Mike McCandless)
+
+* LUCENE-3918: IndexSorter has been ported to 4.3 API and now supports
+ sorting documents by a numeric DocValues field, or reverse the order of
+ the documents in the index. Additionally, apps can implement their own
+ sort criteria. (Anat Hashavit, Shai Erera)
+
+* LUCENE-4817: Added KeywordRepeatFilter that allows to emit a token twice
+ once as a keyword and once as an ordinary token allow stemmers to emit
+ a stemmed version along with the un-stemmed version. (Simon Willnauer)
+
+======================= Lucene 4.2.0 =======================
+
+Changes in backwards compatibility policy
+
+* LUCENE-4602: FacetFields now stores facet ordinals in a DocValues field,
+ rather than a payload. This forces rebuilding existing indexes, or do a
+ one time migration using FacetsPayloadMigratingReader. Since DocValues
+ support in-memory caching, CategoryListCache was removed too.
+ (Shai Erera, Michael McCandless)
+
+* LUCENE-4697: FacetResultNode is now a concrete class with public members
+ (instead of getter methods). (Shai Erera)
+
+* LUCENE-4600: FacetsCollector is now an abstract class with two
+ implementations: StandardFacetsCollector (the old version of
+ FacetsCollector) and CountingFacetsCollector. FacetsCollector.create()
+ returns the most optimized collector for the given parameters.
+ (Shai Erera, Michael McCandless)
+
+* LUCENE-4700: OrdinalPolicy is now per CategoryListParams, and is no longer
+ an interface, but rather an enum with values NO_PARENTS and ALL_PARENTS.
+ PathPolicy was removed, you should extend FacetFields and DrillDownStream
+ to control which categories are added as drill-down terms. (Shai Erera)
+
+* LUCENE-4547: DocValues improvements:
+ - Simplified codec API: codecs are now only responsible for encoding and
+ decoding docvalues, they do not need to do buffering or RAM accounting.
+ - Per-Field support: added PerFieldDocValuesFormat, which allows you to
+ use a different DocValuesFormat per field (like postings).
+ - Unified with FieldCache api: DocValues can be accessed via FieldCache API,
+ so it works automatically with grouping/join/sort/function queries, etc.
+ - Simplified types: There are only 3 types (NUMERIC, BINARY, SORTED), so its
+ not necessary to specify for example that all of your binary values have
+ the same length. Instead its easy for the Codec API to optimize encoding
+ based on any properties of the content.
+ (Simon Willnauer, Adrien Grand, Mike McCandless, Robert Muir)
+
+* LUCENE-4757: Cleanup and refactoring of FacetsAccumulator, FacetRequest,
+ FacetsAggregator and FacetResultsHandler API. If your application did
+ FacetsCollector.create(), you should not be affected, but if you wrote
+ an Aggregator, then you should migrate it to the per-segment
+ FacetsAggregator. You can still use StandardFacetsAccumulator, which works
+ with the old API (for now). (Shai Erera)
+
+* LUCENE-4761: Facet packages reorganized. Should be easy to fix your import
+ statements, if you use an IDE such as Eclipse. (Shai Erera)
+
+* LUCENE-4750: Convert DrillDown to DrillDownQuery, so you can initialize it
+ and add drill-down categories to it. (Michael McCandless, Shai Erera)
+
+* LUCENE-4759: remove FacetRequest.SortBy; result categories are always
+ sorted by value, while ties are broken by category ordinal. (Shai Erera)
+
+* LUCENE-4772: Facet associations moved to new FacetsAggregator API. You
+ should override FacetsAccumualtor and return the relevant aggregator,
+ for aggregating the association values. (Shai Erera)
+
+* LUCENE-4748: A FacetRequest on a non-existent field now returns an
+ empty FacetResult instead of skipping it. (Shai Erera, Mike McCandless)
+
+* LUCENE-4806: The default category delimiter character was changed
+ from U+F749 to U+001F, since the latter uses 1 byte vs 3 bytes for
+ the former. Existing facet indices must be reindexed. (Robert
+ Muir, Shai Erera, Mike McCandless)
+
+Optimizations
+
+* LUCENE-4687: BloomFilterPostingsFormat now lazily initializes delegate
+ TermsEnum only if needed to do a seek or get a DocsEnum. (Simon Willnauer)
+
+* LUCENE-4677, LUCENE-4682: unpacked FSTs now use vInt to encode the node target,
+ to reduce their size (Mike McCandless)
+
+* LUCENE-4678: FST now uses a paged byte[] structure instead of a
+ single byte[] internally, to avoid large memory spikes during
+ building (James Dyer, Mike McCandless)
+
+* LUCENE-3298: FST can now be larger than 2.1 GB / 2.1 B nodes.
+ (James Dyer, Mike McCandless)
+
+* LUCENE-4690: Performance improvements and non-hashing versions
+ of NumericUtils.*ToPrefixCoded() (yonik)
+
+* LUCENE-4715: CategoryListParams.getOrdinalPolicy now allows to return a
+ different OrdinalPolicy per dimension, to better tune how you index
+ facets. Also added OrdinalPolicy.ALL_BUT_DIMENSION.
+ (Shai Erera, Michael McCandless)
+
+* LUCENE-4740: Don't track clones of MMapIndexInput if unmapping
+ is disabled. This reduces GC overhead. (Kristofer Karlsson, Uwe Schindler)
+
+* LUCENE-4733: The default Lucene 4.2 codec now uses a more compact
+ TermVectorsFormat (Lucene42TermVectorsFormat) based on
+ CompressingTermVectorsFormat. (Adrien Grand)
+
+* LUCENE-3729: The default Lucene 4.2 codec now uses a more compact
+ DocValuesFormat (Lucene42DocValuesFormat). Sorted values are stored in an
+ FST, Numerics and Ordinals use a number of strategies (delta-compression,
+ table-compression, etc), and memory addresses use MonotonicBlockPackedWriter.
+ (Simon Willnauer, Adrien Grand, Mike McCandless, Robert Muir)
+
+* LUCENE-4792: Reduction of the memory required to build the doc ID maps used
+ when merging segments. (Adrien Grand)
+
+* LUCENE-4794: Spatial RecursivePrefixTreeStrategy's search filter: Skip calls
+ to termsEnum.seek() when the next term is known to follow the current cell.
+ (David Smiley)
+
+New Features
+
+* LUCENE-4686: New specialized DGapVInt8IntEncoder for facets (now the
+ default). (Shai Erera)
+
+* LUCENE-4703: Add simple PrintTaxonomyStats tool to see summary
+ information about the facets taxonomy index. (Mike McCandless)
+
+* LUCENE-4599: New oal.codecs.compressing.CompressingTermVectorsFormat which
+ compresses term vectors into chunks of documents similarly to
+ CompressingStoredFieldsFormat. (Adrien Grand)
+
+* LUCENE-4695: Added LiveFieldValues utility class, for getting the
+ current (live, real-time) value for any indexed doc/field. The
+ class buffers recently indexed doc/field values until a new
+ near-real-time reader is opened that contains those changes.
+ (Robert Muir, Mike McCandless)
+
+* LUCENE-4723: Add AnalyzerFactoryTask to benchmark, and enable analyzer
+ creation via the resulting factories using NewAnalyzerTask. (Steve Rowe)
+
+* LUCENE-4728: Unknown and not explicitly mapped queries are now rewritten
+ against the highlighting IndexReader to obtain primitive queries before
+ discarding the query entirely. WeightedSpanTermExtractor now builds a
+ MemoryIndex only once even if multiple fields are highlighted.
+ (Simon Willnauer)
+
+* LUCENE-4035: Added ICUCollationDocValuesField, more efficient
+ support for Locale-sensitive sort and range queries for
+ single-valued fields. (Robert Muir)
+
+* LUCENE-4547: Added MonotonicBlockPacked(Reader/Writer), which provide
+ efficient random access to large amounts of monotonically increasing
+ positive values (e.g. file offsets). Each block stores the minimum value
+ and the average gap, and values are encoded as signed deviations from
+ the expected value. (Adrien Grand)
+
+* LUCENE-4547: Added AppendingLongBuffer, an append-only buffer that packs
+ signed long values in memory and provides an efficient iterator API.
+ (Adrien Grand)
+
+* LUCENE-4540: It is now possible for a codec to represent norms with
+ less than 8 bits per value. For performance reasons this is not done
+ by default, but you can customize your codec (e.g. pass PackedInts.DEFAULT
+ to Lucene42DocValuesConsumer) if you want to make this tradeoff.
+ (Adrien Grand, Robert Muir)
+
+* LUCENE-4764: A new Facet42Codec and Facet42DocValuesFormat provide
+ faster but more RAM-consuming facet performance. (Shai Erera, Mike
+ McCandless)
+
+* LUCENE-4769: Added OrdinalsCache and CachedOrdsCountingFacetsAggregator
+ which uses the cache to obtain a document's ordinals. This aggregator
+ is faster than others, however consumes much more RAM.
+ (Michael McCandless, Shai Erera)
+
+* LUCENE-4778: Add a getter for the delegate in RateLimitedDirectoryWrapper.
+ (Mark Miller)
+
+* LUCENE-4765: Add a multi-valued docvalues type (SORTED_SET). This is equivalent
+ to building a FieldCache.getDocTermOrds at index-time. (Robert Muir)
+
+* LUCENE-4780: Add MonotonicAppendingLongBuffer: an append-only buffer for
+ monotonically increasing values. (Adrien Grand)
+
+* LUCENE-4748: Added DrillSideways utility class for computing both
+ drill-down and drill-sideways counts for a DrillDownQuery. (Mike
+ McCandless)
+
+API Changes
+
+* LUCENE-4709: FacetResultNode no longer has a residue field. (Shai Erera)
+
+* LUCENE-4716: DrillDown.query now takes Occur, allowing to specify if
+ categories should be OR'ed or AND'ed. (Shai Erera)
+
+* LUCENE-4695: ReferenceManager.RefreshListener.afterRefresh now takes
+ a boolean indicating whether a new reference was in fact opened, and
+ a new beforeRefresh method notifies you when a refresh attempt is
+ starting. (Robert Muir, Mike McCandless)
+
+* LUCENE-4794: Spatial RecursivePrefixTreeFilter replaced by
+ IntersectsPrefixTreeFilter and some extensible base classes. (David Smiley)
+
+Bug Fixes
+
+* LUCENE-4705: Pass on FilterStrategy in FilteredQuery if the filtered query is
+ rewritten. (Simon Willnauer)
+
+* LUCENE-4712: MemoryIndex#normValues() throws NPE if field doesn't exist.
+ (Simon Willnauer, Ricky Pritchett)
+
+* LUCENE-4550: Shapes wider than 180 degrees would use too much accuracy for the
+ PrefixTree based SpatialStrategy. For a pathological case of nearly 360
+ degrees and barely any height, it would generate so many indexed terms
+ (> 500k) that it could even cause an OutOfMemoryError. Fixed. (David Smiley)
+
+* LUCENE-4704: Make join queries override hashcode and equals methods.
+ (Martijn van Groningen)
+
+* LUCENE-4724: Fix bug in CategoryPath which allowed passing null or empty
+ string components. This is forbidden now (throws an exception). Note that if
+ you have a taxonomy index created with such strings, you should rebuild it.
+ (Michael McCandless, Shai Erera)
+
+* LUCENE-4732: Fixed TermsEnum.seekCeil/seekExact on term vectors.
+ (Adrien Grand, Robert Muir)
+
+* LUCENE-4739: Fixed bugs that prevented FSTs more than ~1.1GB from
+ being saved and loaded (Adrien Grand, Mike McCandless)
+
+* LUCENE-4717: Fixed bug where Lucene40DocValuesFormat would sometimes write
+ an extra unused ordinal for sorted types. The bug is detected and corrected
+ on-the-fly for old indexes. (Robert Muir)
+
+* LUCENE-4547: Fixed bug where Lucene40DocValuesFormat was unable to encode
+ segments that would exceed 2GB total data. This could happen in some surprising
+ cases, for example if you had an index with more than 260M documents and a
+ VAR_INT field. (Simon Willnauer, Adrien Grand, Mike McCandless, Robert Muir)
+
+* LUCENE-4775: Remove SegmentInfo.sizeInBytes() and make
+ MergePolicy.OneMerge.totalBytesSize thread safe (Josh Bronson via
+ Robert Muir, Mike McCandless)
+
+* LUCENE-4770: If spatial's TermQueryPrefixTreeStrategy was used to search
+ indexed non-point shapes, then there was an edge case where a query should
+ find a shape but it didn't. The fix is the removal of an optimization that
+ simplifies some leaf cells into a parent. The index data for such a field is
+ now ~20% larger. This optimization is still done for the query shape, and for
+ indexed data for RecursivePrefixTreeStrategy. Furthermore, this optimization
+ is enhanced to roll up beyond the bottom cell level. (David Smiley,
+ Florian Schilling)
+
+* LUCENE-4790: Fix FieldCacheImpl.getDocTermOrds to not bake deletes into the
+ cached datastructure. Otherwise this can cause inconsistencies with readers
+ at different points in time. (Robert Muir)
+
+* LUCENE-4791: A conjunction of terms (ConjunctionTermScorer) scanned on
+ the lowest frequency term instead of skipping, leading to potentially
+ large performance impacts for many non-random or non-uniform
+ term distributions. (John Wang, yonik)
+
+* LUCENE-4798: PostingsHighlighter's formatter sometimes didn't highlight
+ matched terms. (Robert Muir)
+
+* LUCENE-4796, SOLR-4373: Fix concurrency issue in NamedSPILoader and
+ AnalysisSPILoader when doing reload (e.g. from Solr).
+ (Uwe Schindler, Hossman)
+
+* LUCENE-4802: Don't compute norms for drill-down facet fields. (Mike McCandless)
+
+* LUCENE-4804: PostingsHighlighter sometimes applied terms to the wrong passage,
+ if they started exactly on a passage boundary. (Robert Muir)
+
+Documentation
+
+* LUCENE-4718: Fixed documentation of oal.queryparser.classic.
+ (Hayden Muhl via Adrien Grand)
+
+* LUCENE-4784, LUCENE-4785, LUCENE-4786: Fixed references to deprecated classes
+ SinkTokenizer, ValueSourceQuery and RangeQuery. (Hao Zhong via Adrien Grand)
+
+Build
+
+* LUCENE-4654: Test duration statistics from multiple test runs should be
+ reused. (Dawid Weiss)
+
+* LUCENE-4636: Upgrade ivy to 2.3.0 (Shawn Heisey via Robert Muir)
+
+* LUCENE-4570: Use the Policeman Forbidden API checker, released separately
+ from Lucene and downloaded via Ivy. (Uwe Schindler, Robert Muir)
+
+* LUCENE-4758: 'ant jar', 'ant compile', and 'ant compile-test' should
+ recurse. (Steve Rowe)
+
======================= Lucene 4.1.0 =======================
Changes in backwards compatibility policy
@@ -45,7 +350,7 @@ Changes in backwards compatibility polic
Instead of calling refresh(), you should write similar code to how you reopen
a regular DirectoryReader.
- TaxonomyReader.openIfChanged (previously refresh()) no longer throws
- IncosistentTaxonomyException, and supports recreate. InconsistentTaxoEx
+ InconsistentTaxonomyException, and supports recreate. InconsistentTaxoEx
was removed.
- ChildrenArrays was pulled out of TaxonomyReader into a top-level class.
- TaxonomyReader was made an abstract class (instead of an interface), with
@@ -94,7 +399,30 @@ Changes in backwards compatibility polic
Also, the entire IndexingParams chain is now immutable. If you need to override
a setting, you should extend the relevant class.
Additionally, FacetSearchParams is now immutable, and requires all FacetRequests
- to speified at initialization time. (Shai Erera)
+ to specified at initialization time. (Shai Erera)
+
+* LUCENE-4647: CategoryDocumentBuilder and EnhancementsDocumentBuilder are replaced
+ by FacetFields and AssociationsFacetFields respectively. CategoryEnhancement and
+ AssociationEnhancement were removed in favor of a simplified CategoryAssociation
+ interface, with CategoryIntAssociation and CategoryFloatAssociation
+ implementations.
+ NOTE: indexes that contain category enhancements/associations are not supported
+ by the new code and should be recreated. (Shai Erera)
+
+* LUCENE-4659: Massive cleanup to CategoryPath API. Additionally, CategoryPath is
+ now immutable, so you don't need to clone() it. (Shai Erera)
+
+* LUCENE-4670: StoredFieldsWriter and TermVectorsWriter have new finish* callbacks
+ which are called after a doc/field/term has been completely added.
+ (Adrien Grand, Robert Muir)
+
+* LUCENE-4620: IntEncoder/Decoder were changed to do bulk encoding/decoding. As a
+ result, few other classes such as Aggregator and CategoryListIterator were
+ changed to handle bulk category ordinals. (Shai Erera)
+
+* LUCENE-4683: CategoryListIterator and Aggregator are now per-segment. As such
+ their implementations no longer take a top-level IndexReader in the constructor
+ but rather implement a setNextReader. (Shai Erera)
New Features
@@ -117,7 +445,7 @@ New Features
remove stop words then "ghost chr..." could suggest "The Ghost of
Christmas Past"; if SynonymFilter is used to map wifi and wireless
network to hotspot, then "wirele..." could suggest "wifi router";
- token normalization likes stemmers, accent removel, etc. would allow
+ token normalization likes stemmers, accent removal, etc. would allow
the suggester to ignore such variations. (Robert Muir, Sudarshan
Gaikaiwari, Mike McCandless)
@@ -133,11 +461,6 @@ New Features
* LUCENE-4515: MemoryIndex now supports adding the same field multiple
times. (Simon Willnauer)
-* LUCENE-4540: Added an experimental Norm.setPackedLong, which allows
- the use of VAR_INTS-encoded norms. This can be useful for cases where
- you only need a few bits per-document, or where you might want exact
- document length, and so on. (Robert Muir)
-
* LUCENE-4489: Added consumeAllTokens option to LimitTokenCountFilter
(hossman, Robert Muir)
@@ -154,7 +477,7 @@ New Features
extractWikipedia.alg was changed to use this task, so now it creates two
files. (Doron Cohen)
-* LUCENE-4290: Added PostingsHighlighter to the sandbox module. It uses
+* LUCENE-4290: Added PostingsHighlighter to the highlighter module. It uses
offsets from the postings lists to highlight documents. (Robert Muir)
* LUCENE-4628: Added CommonTermsQuery that executes high-frequency terms
@@ -174,7 +497,7 @@ API Changes
information about the trigger of the merge ie. merge triggered due
to a segment merge or a full flush etc. (Simon Willnauer)
-* Lucene-4415: TermsFilter is now immutable. All terms need to be provided
+* LUCENE-4415: TermsFilter is now immutable. All terms need to be provided
as constructor argument. (Simon Willnauer)
* LUCENE-4520: ValueSource.getSortField no longer throws IOExceptions
@@ -195,6 +518,13 @@ API Changes
create your fst with finish(), and then call pack() to get another FST.
Instead just pass true for doPackFST to Builder and finish() returns a packed FST.
(Robert Muir)
+
+* LUCENE-4663: Deprecate IndexSearcher.document(int, Set). This was not intended
+ to be final, nor named document(). Use IndexSearcher.doc(int, Set) instead.
+ (Robert Muir)
+
+* LUCENE-4684: Made DirectSpellChecker extendable.
+ (Martijn van Groningen)
Bug Fixes
@@ -244,7 +574,7 @@ Bug Fixes
allow 1+maxMergeCount merges threads to be created, instead of just
maxMergeCount (Radim Kolar, Mike McCandless)
-* LUCENE-4567: Fixed NullPointerException in analzying, fuzzy, and
+* LUCENE-4567: Fixed NullPointerException in analyzing, fuzzy, and
WFST suggesters when no suggestions were added (selckin via Mike
McCandless)
@@ -297,6 +627,23 @@ Bug Fixes
* LUCENE-4461: If you added the same FacetRequest more than once, you would get
inconsistent results. (Gilad Barkai via Shai Erera)
+
+* LUCENE-4656: Fix regression in IndexWriter to work with empty TokenStreams
+ that have no TermToBytesRefAttribute (commonly provided by CharTermAttribute),
+ e.g., oal.analysis.miscellaneous.EmptyTokenStream.
+ (Uwe Schindler, Adrien Grand, Robert Muir)
+
+* LUCENE-4660: ConcurrentMergeScheduler was taking too long to
+ un-pause incoming threads it had paused when too many merges were
+ queued up. (Mike McCandless)
+
+* LUCENE-4662: Add missing elided articles and prepositions to FrenchAnalyzer's
+ DEFAULT_ARTICLES list passed to ElisionFilter. (David Leunen via Steve Rowe)
+
+* LUCENE-4671: Fix CharsRef.subSequence method. (Tim Smith via Robert Muir)
+
+* LUCENE-4465: Let ConstantScoreQuery's Scorer return its child scorer.
+ (selckin via Uwe Schindler)
Changes in Runtime Behavior
@@ -304,6 +651,13 @@ Changes in Runtime Behavior
This only affects requests with depth>1. If you execute such requests and
rely on the facet results being returned flat (i.e. no hierarchy), you should
set the ResultMode to GLOBAL_FLAT. (Shai Erera, Gilad Barkai)
+
+* LUCENE-1822: Improves the text window selection by recalculating the starting margin
+ once all phrases in the fragment have been identified in FastVectorHighlighter. This
+ way if a single word is matched in a fragment, it will appear in the middle of the highlight,
+ instead of 6 characters from the beginning. This way one can also guarantee that
+ the entirety of short texts are represented in a fragment by specifying a large
+ enough fragCharSize.
Optimizations
@@ -362,6 +716,10 @@ Optimizations
* LUCENE-4598: PayloadIterator no longer uses top-level IndexReader to iterate on the
posting's payload. (Shai Erera, Michael McCandless)
+
+* LUCENE-4661: Drop default maxThreadCount to 1 and maxMergeCount to 2
+ in ConcurrentMergeScheduler, for faster merge performance on
+ spinning-magnet drives (Mike McCandless)
Documentation
@@ -370,6 +728,9 @@ Documentation
Build
+* LUCENE-4650: Upgrade randomized testing to version 2.0.8: make the
+ test framework more robust under low memory conditions. (Dawid Weiss)
+
* LUCENE-4603: Upgrade randomized testing to version 2.0.5: print forked
JVM PIDs on heartbeat from hung tests (Dawid Weiss)
@@ -483,7 +844,7 @@ API Changes
StoredFieldVisitor API. (Mike McCandless)
* LUCENE-4343: Made Tokenizer.setReader final. This is a setter that should
- not be overriden by subclasses: per-stream initialization should happen
+ not be overridden by subclasses: per-stream initialization should happen
in reset(). (Robert Muir)
* LUCENE-4377: Remove IndexInput.copyBytes(IndexOutput, long).
@@ -709,7 +1070,7 @@ API Changes
* LUCENE-4273: When pulling a DocsEnum, you can pass an int flags
instead of the previous boolean needsFlags; consistent with the changes
- for DocsAndPositionsEnum in LUCENE-4230. Currently othe only flag
+ for DocsAndPositionsEnum in LUCENE-4230. Currently the only flag
is DocsEnum.FLAG_FREQS. (Robert Muir, Mike McCandless)
* LUCENE-3616: TextField(String, Reader, Store) was reduced to TextField(String, Reader),
@@ -781,7 +1142,7 @@ Bug Fixes
instance are already checked out and queued up but not yet flushed.
(Simon Willnauer)
-* LUCENE-4282: Automaton FuzzyQuery didnt always deliver all results.
+* LUCENE-4282: Automaton FuzzyQuery didn't always deliver all results.
(Johannes Christen, Uwe Schindler, Robert Muir)
* LUCENE-4289: Fix minor idf inconsistencies/inefficiencies in highlighter.
@@ -1011,7 +1372,7 @@ Changes in backwards compatibility polic
Query/Weight/Scorer. If you extended Similarity directly before, you should
extend TFIDFSimilarity instead. Similarity is now a lower-level API to
implement other scoring algorithms. See MIGRATE.txt for more details.
- (David Nemeskey, Simon Willnauer, Mike Mccandless, Robert Muir)
+ (David Nemeskey, Simon Willnauer, Mike McCandless, Robert Muir)
* LUCENE-3330: The expert visitor API in Scorer has been simplified and
extended to support arbitrary relationships. To navigate to a scorer's
@@ -1119,12 +1480,12 @@ Changes in Runtime Behavior
omitNorms(true) for field "a" for 1000 documents, but then add a document with
omitNorms(false) for field "a", all documents for field "a" will have no
norms. Previously, Lucene would fill the first 1000 documents with
- "fake norms" from Similarity.getDefault(). (Robert Muir, Mike Mccandless)
+ "fake norms" from Similarity.getDefault(). (Robert Muir, Mike McCandless)
* LUCENE-2846: When some documents contain field "a", and others do not, the
documents that don't have the field get a norm byte value of 0. Previously,
Lucene would populate "fake norms" with Similarity.getDefault() for these
- documents. (Robert Muir, Mike Mccandless)
+ documents. (Robert Muir, Mike McCandless)
* LUCENE-2720: IndexWriter throws IndexFormatTooOldException on open, rather
than later when e.g. a merge starts.
@@ -1157,13 +1518,13 @@ Changes in Runtime Behavior
update or delete on IndexWriter. By default DWPTs are flushed either on
maxBufferedDocs per DWPT or the global active used memory. Once the active
memory exceeds ramBufferSizeMB only the largest DWPT is selected for
- flushing and the memory used by this DWPT is substracted from the active
+ flushing and the memory used by this DWPT is subtracted from the active
memory and added to a flushing memory pool, which can lead to temporarily
higher memory usage due to ongoing indexing.
- IndexWriter now can utilize ramBufferSize > 2048 MB. Each DWPT can address
up to 2048 MB memory such that the ramBufferSize is now bounded by the max
- number of DWPT avaliable in the used DocumentsWriterPerThreadPool.
+ number of DWPT available in the used DocumentsWriterPerThreadPool.
IndexWriters net memory consumption can grow far beyond the 2048 MB limit if
the application can use all available DWPTs. To prevent a DWPT from
exhausting its address space IndexWriter will forcefully flush a DWPT if its
@@ -1171,7 +1532,7 @@ Changes in Runtime Behavior
via IndexWriterConfig and defaults to 1945 MB.
Since IndexWriter flushes DWPT concurrently not all memory is released
immediately. Applications should still use a ramBufferSize significantly
- lower than the JVMs avaliable heap memory since under high load multiple
+ lower than the JVMs available heap memory since under high load multiple
flushing DWPT can consume substantial transient memory when IO performance
is slow relative to indexing rate.
@@ -1179,7 +1540,7 @@ Changes in Runtime Behavior
'currently' RAM resident documents to disk. Yet, flushes that occur while a
a full flush is running are queued and will happen after all DWPT involved
in the full flush are done flushing. Applications using multiple threads
- during indexing and trigger a full flush (eg call commmit() or open a new
+ during indexing and trigger a full flush (eg call commit() or open a new
NRT reader) can use significantly more transient memory.
- IndexWriter#addDocument and IndexWriter.updateDocument can block indexing
@@ -1222,7 +1583,7 @@ Changes in Runtime Behavior
* LUCENE-3455: QueryParserBase.newFieldQuery() will throw a ParseException if
any of the calls to the Analyzer throw an IOException. QueryParseBase.analyzeRangePart()
- will throw a RuntimException if an IOException is thrown by the Analyzer.
+ will throw a RuntimeException if an IOException is thrown by the Analyzer.
* LUCENE-4127: IndexWriter will now throw IllegalArgumentException if
the first token of an indexed field has 0 positionIncrement
@@ -1312,7 +1673,7 @@ API Changes
customized on a per-field basis. (Robert Muir)
* LUCENE-3308: DuplicateFilter keepMode and processingMode have been converted to
- enums DuplicateFilter.KeepMode and DuplicateFilter.ProcessingMode repsectively.
+ enums DuplicateFilter.KeepMode and DuplicateFilter.ProcessingMode respectively.
* LUCENE-3483: Move Function grouping collectors from Solr to grouping module.
(Martijn van Groningen)
@@ -1470,7 +1831,7 @@ New features
* LUCENE-2742: Add native per-field postings format support. Codec lets you now
register a postings format for each field and which is in turn recorded
- into the index. Postings formtas are maintained on a per-segment basis and be
+ into the index. Postings formats are maintained on a per-segment basis and be
resolved without knowing the actual postings format used for writing the segment.
(Simon Willnauer)
@@ -1678,7 +2039,7 @@ New features
- o.a.l.analysis.miscellaneous.CapitalizationFilter: A TokenFilter that applies
capitalization rules to tokens.
- o.a.l.analysis.pattern: Package for pattern-based analysis, containing a
- CharFilter, Tokenizer, and Tokenfilter for transforming text with regexes.
+ CharFilter, Tokenizer, and TokenFilter for transforming text with regexes.
- o.a.l.analysis.synonym.SynonymFilter: A synonym filter that supports multi-word
synonyms.
- o.a.l.analysis.phonetic: Package for phonetic search, containing various
@@ -1850,7 +2211,7 @@ Bug fixes
DocsAndPositionsEnum while merging (Marc Sturlese, Erick Erickson,
Robert Muir, Simon Willnauer, Mike McCandless)
-* LUCENE-3589: BytesRef copy(short) didnt set length.
+* LUCENE-3589: BytesRef copy(short) didn't set length.
(Peter Chang via Robert Muir)
* LUCENE-3045: fixed QueryNodeImpl.containsTag(String key) that was
@@ -1953,6 +2314,51 @@ Build
XSL. (Greg Bowyer, Uwe Schindler)
+======================= Lucene 3.6.2 =======================
+
+Bug Fixes
+
+* LUCENE-4234: Exception when FacetsCollector is used with ScoreFacetRequest,
+ and the number of matching documents is too large. (Gilad Barkai via Shai Erera)
+
+* LUCENE-2686, LUCENE-3505, LUCENE-4401: Fix BooleanQuery scorers to
+ return correct freq().
+ (Koji Sekiguchi, Mike McCandless, Liu Chao, Robert Muir)
+
+* LUCENE-2501: Fixed rare thread-safety issue that could cause
+ ArrayIndexOutOfBoundsException inside ByteBlockPool (Robert Muir,
+ Mike McCandless)
+
+* LUCENE-4297: BooleanScorer2 would multiply the coord() factor
+ twice for conjunctions: for most users this is no problem, but
+ if you had a customized Similarity that returned something other
+ than 1 when overlap == maxOverlap (always the case for conjunctions),
+ then the score would be incorrect. (Pascal Chollet, Robert Muir)
+
+* LUCENE-4300: BooleanQuery's rewrite was not always safe: if you
+ had a custom Similarity where coord(1,1) != 1F, then the rewritten
+ query would be scored differently. (Robert Muir)
+
+* LUCENE-4398: If you index many different field names in your
+ documents then due to a bug in how it measures its RAM
+ usage, IndexWriter would flush each segment too early eventually
+ reaching the point where it flushes after every doc. (Tim Smith via
+ Mike McCandless)
+
+* LUCENE-4411: when sampling is enabled for a FacetRequest, its depth
+ parameter is reset to the default (1), even if set otherwise.
+ (Gilad Barkai via Shai Erera)
+
+* LUCENE-4635: Fixed ArrayIndexOutOfBoundsException when in-memory
+ terms index requires more than 2.1 GB RAM (indices with billions of
+ terms). (Tom Burton-West via Mike McCandless)
+
+Documentation
+
+* LUCENE-4302: Fix facet userguide to have HTML loose doctype like
+ all other javadocs. (Karl Nicholas via Uwe Schindler)
+
+
======================= Lucene 3.6.1 =======================
More information about this release, including any errata related to the
release notes, upgrade instructions, or other changes may be found online at:
@@ -1999,7 +2405,7 @@ Tests
random graph tokens. (Mike McCandless)
* LUCENE-3968: factor out LookaheadTokenFilter from
- MockGraphTokenFilter (Mike Mccandless)
+ MockGraphTokenFilter (Mike McCandless)
======================= Lucene 3.6.0 =======================
@@ -2279,7 +2685,7 @@ Bug fixes
* LUCENE-3876: Fix bug where positions for a document exceeding
Integer.MAX_VALUE/2 would produce a corrupt index.
- (Simon Willnauer, Mike Mccandless, Robert Muir)
+ (Simon Willnauer, Mike McCandless, Robert Muir)
* LUCENE-3880: UAX29URLEmailTokenizer now recognizes emails when the mailto:
scheme is prepended. (Kai Gülzau, Steve Rowe)
Modified: lucene/dev/branches/lucene4258/lucene/NOTICE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/NOTICE.txt?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/NOTICE.txt (original)
+++ lucene/dev/branches/lucene4258/lucene/NOTICE.txt Sun Mar 10 15:04:57 2013
@@ -1,5 +1,5 @@
Apache Lucene
-Copyright 2012 The Apache Software Foundation
+Copyright 2013 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
Modified: lucene/dev/branches/lucene4258/lucene/analysis/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/build.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/build.xml (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/build.xml Sun Mar 10 15:04:57 2013
@@ -104,6 +104,10 @@
<target name="test">
<forall-analyzers target="test"/>
</target>
+ <target name="jar">
+ <forall-analyzers target="jar-core"/>
+ </target>
+ <target name="jar-core" depends="jar"/>
<target name="build-artifacts-and-tests" depends="default,compile-test" />
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/build.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/build.xml (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/build.xml Sun Mar 10 15:04:57 2013
@@ -59,6 +59,8 @@
<exec dir="src/java/org/apache/lucene/analysis/charfilter"
output="src/java/org/apache/lucene/analysis/charfilter/HTMLCharacterEntities.jflex"
executable="${python.exe}" failonerror="true" logerror="true">
+ <!-- Tell Python not to write any bytecode cache into the filesystem: -->
+ <arg value="-B"/>
<arg value="htmlentity.py"/>
</exec>
<fixcrlf file="src/java/org/apache/lucene/analysis/charfilter/HTMLCharacterEntities.jflex" encoding="UTF-8"/>
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/MappingCharFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/MappingCharFilter.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/MappingCharFilter.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/MappingCharFilter.java Sun Mar 10 15:04:57 2013
@@ -59,7 +59,7 @@ public class MappingCharFilter extends B
cachedRootArcs = normMap.cachedRootArcs;
if (map != null) {
- fstReader = map.getBytesReader(0);
+ fstReader = map.getBytesReader();
} else {
fstReader = null;
}
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/NormalizeCharMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/NormalizeCharMap.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/NormalizeCharMap.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/NormalizeCharMap.java Sun Mar 10 15:04:57 2013
@@ -49,7 +49,7 @@ public class NormalizeCharMap {
try {
// Pre-cache root arcs:
final FST.Arc<CharsRef> scratchArc = new FST.Arc<CharsRef>();
- final FST.BytesReader fstReader = map.getBytesReader(0);
+ final FST.BytesReader fstReader = map.getBytesReader();
map.getFirstArc(scratchArc);
if (FST.targetHasArcs(scratchArc)) {
map.readFirstRealTargetArc(scratchArc.target, scratchArc, fstReader);
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilter.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilter.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilter.java Sun Mar 10 15:04:57 2013
@@ -148,7 +148,7 @@ public class HyphenationCompoundWordToke
*/
public static HyphenationTree getHyphenationTree(File hyphenationFile)
throws IOException {
- return getHyphenationTree(new InputSource(hyphenationFile.toURL().toExternalForm()));
+ return getHyphenationTree(new InputSource(hyphenationFile.toURI().toASCIIString()));
}
/**
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/HyphenationTree.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/HyphenationTree.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/HyphenationTree.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/HyphenationTree.java Sun Mar 10 15:04:57 2013
@@ -111,7 +111,7 @@ public class HyphenationTree extends Ter
* @throws IOException In case the parsing fails
*/
public void loadPatterns(File f) throws IOException {
- InputSource src = new InputSource(f.toURL().toExternalForm());
+ InputSource src = new InputSource(f.toURI().toASCIIString());
loadPatterns(src);
}
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/PatternParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/PatternParser.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/PatternParser.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/PatternParser.java Sun Mar 10 15:04:57 2013
@@ -98,7 +98,7 @@ public class PatternParser extends Defau
* @throws IOException In case of an exception while parsing
*/
public void parse(File file) throws IOException {
- InputSource src = new InputSource(file.toURL().toExternalForm());
+ InputSource src = new InputSource(file.toURI().toASCIIString());
parse(src);
}
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/TypeTokenFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/TypeTokenFilterFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/TypeTokenFilterFactory.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/TypeTokenFilterFactory.java Sun Mar 10 15:04:57 2013
@@ -35,7 +35,7 @@ import java.util.Set;
* <analyzer>
* <tokenizer class="solr.StandardTokenizerFactory"/>
* <filter class="solr.TypeTokenFilterFactory" types="stoptypes.txt"
- * enablePositionIncrements="true" useWhiteList="false"/>
+ * enablePositionIncrements="true" useWhitelist="false"/>
* </analyzer>
* </fieldType></pre>
*/
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilter.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilter.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilter.java Sun Mar 10 15:04:57 2013
@@ -32,6 +32,18 @@ import org.apache.lucene.analysis.tokena
* Conference on Research and Development in Information Retrieval, 191-203, 1993).
* <p/>
* All terms must already be lowercased for this filter to work correctly.
+ *
+ * <p>
+ * Note: This filter is aware of the {@link KeywordAttribute}. To prevent
+ * certain terms from being passed to the stemmer
+ * {@link KeywordAttribute#isKeyword()} should be set to <code>true</code>
+ * in a previous {@link TokenStream}.
+ *
+ * Note: For including the original term as well as the stemmed version, see
+ * {@link org.apache.lucene.analysis.miscellaneous.KeywordRepeatFilterFactory}
+ * </p>
+ *
+ *
*/
public final class KStemFilter extends TokenFilter {
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/PorterStemFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/PorterStemFilter.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/PorterStemFilter.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/PorterStemFilter.java Sun Mar 10 15:04:57 2013
@@ -48,6 +48,9 @@ import org.apache.lucene.analysis.tokena
certain terms from being passed to the stemmer
{@link KeywordAttribute#isKeyword()} should be set to <code>true</code>
in a previous {@link TokenStream}.
+
+ Note: For including the original term as well as the stemmed version, see
+ {@link org.apache.lucene.analysis.miscellaneous.KeywordRepeatFilterFactory}
</p>
*/
public final class PorterStemFilter extends TokenFilter {
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchAnalyzer.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchAnalyzer.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchAnalyzer.java Sun Mar 10 15:04:57 2013
@@ -59,7 +59,7 @@ public final class FrenchAnalyzer extend
/** Default set of articles for ElisionFilter */
public static final CharArraySet DEFAULT_ARTICLES = CharArraySet.unmodifiableSet(
new CharArraySet(Version.LUCENE_CURRENT, Arrays.asList(
- "l", "m", "t", "qu", "n", "s", "j"), true));
+ "l", "m", "t", "qu", "n", "s", "j", "d", "c", "jusqu", "quoiqu", "lorsqu", "puisqu"), true));
/**
* Contains words that should be indexed but not stemmed.
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/HunspellStemFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/HunspellStemFilter.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/HunspellStemFilter.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/HunspellStemFilter.java Sun Mar 10 15:04:57 2013
@@ -30,6 +30,18 @@ import org.apache.lucene.analysis.tokena
/**
* TokenFilter that uses hunspell affix rules and words to stem tokens. Since hunspell supports a word having multiple
* stems, this filter can emit multiple tokens for each consumed token
+ *
+ * <p>
+ * Note: This filter is aware of the {@link KeywordAttribute}. To prevent
+ * certain terms from being passed to the stemmer
+ * {@link KeywordAttribute#isKeyword()} should be set to <code>true</code>
+ * in a previous {@link TokenStream}.
+ *
+ * Note: For including the original term as well as the stemmed version, see
+ * {@link org.apache.lucene.analysis.miscellaneous.KeywordRepeatFilterFactory}
+ * </p>
+ *
+ *
*/
public final class HunspellStemFilter extends TokenFilter {
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java Sun Mar 10 15:04:57 2013
@@ -21,6 +21,7 @@ import org.apache.lucene.analysis.TokenF
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
+import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
import java.io.IOException;
@@ -73,9 +74,11 @@ public final class EdgeNGramTokenFilter
private int tokStart;
private int tokEnd; // only used if the length changed before this filter
private boolean hasIllegalOffsets; // only if the length changed before this filter
+ private int savePosIncr;
private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
private final OffsetAttribute offsetAtt = addAttribute(OffsetAttribute.class);
+ private final PositionIncrementAttribute posIncrAtt = addAttribute(PositionIncrementAttribute.class);
/**
* Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
@@ -132,6 +135,7 @@ public final class EdgeNGramTokenFilter
// if length by start + end offsets doesn't match the term text then assume
// this is a synonym and don't adjust the offsets.
hasIllegalOffsets = (tokStart + curTermLength) != tokEnd;
+ savePosIncr = posIncrAtt.getPositionIncrement();
}
}
if (curGramSize <= maxGram) {
@@ -146,6 +150,12 @@ public final class EdgeNGramTokenFilter
} else {
offsetAtt.setOffset(tokStart + start, tokStart + end);
}
+ // first ngram gets increment, others don't
+ if (curGramSize == minGram) {
+ posIncrAtt.setPositionIncrement(savePosIncr);
+ } else {
+ posIncrAtt.setPositionIncrement(0);
+ }
termAtt.copyBuffer(curTermBuffer, start, curGramSize);
curGramSize++;
return true;
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java Sun Mar 10 15:04:57 2013
@@ -17,14 +17,15 @@ package org.apache.lucene.analysis.ngram
* limitations under the License.
*/
+import java.io.IOException;
+import java.io.Reader;
+
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
+import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
import org.apache.lucene.util.AttributeSource;
-import java.io.IOException;
-import java.io.Reader;
-
/**
* Tokenizes the input from an edge into n-grams of given size(s).
* <p>
@@ -39,6 +40,7 @@ public final class EdgeNGramTokenizer ex
private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
private final OffsetAttribute offsetAtt = addAttribute(OffsetAttribute.class);
+ private final PositionIncrementAttribute posIncrAtt = addAttribute(PositionIncrementAttribute.class);
/** Specifies which side of the input the n-gram should be generated from */
public static enum Side {
@@ -214,6 +216,9 @@ public final class EdgeNGramTokenizer ex
if (inLen == 0) {
return false;
}
+ posIncrAtt.setPositionIncrement(1);
+ } else {
+ posIncrAtt.setPositionIncrement(0);
}
// if the remaining input is too short, we can't generate any n-grams
Modified: lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/sinks/package.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/sinks/package.html?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/sinks/package.html (original)
+++ lucene/dev/branches/lucene4258/lucene/analysis/common/src/java/org/apache/lucene/analysis/sinks/package.html Sun Mar 10 15:04:57 2013
@@ -20,6 +20,8 @@
<TITLE>org.apache.lucene.analysis.sinks</TITLE>
</HEAD>
<BODY>
-Implementations of the SinkTokenizer that might be useful.
+{@link org.apache.lucene.analysis.sinks.TeeSinkTokenFilter} and implementations
+of {@link org.apache.lucene.analysis.sinks.TeeSinkTokenFilter.SinkFilter} that
+might be useful.
</BODY>
</HTML>
\ No newline at end of file