You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2021/03/10 09:48:30 UTC

[lucene] branch branch_6_2 created (now e9094e5)

This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a change to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git.


      at e9094e5  LUCENE-7794: buildAndPushRelease.py should run validate and documentation-lint

This branch includes the following new commits:

     new 2b057ae  fix RangeField tests so they use actual ranges, not just 0 ranges
     new 595745b  Add version 6.2.2
     new 100b50f  Add 6.2.1 back compat test indexes
     new 4ecc9d8  LUCENE-7472: move CHANGES.txt entry under 6.2.2 section
     new 12e7384  LUCENE-7472: switch TestMultiFieldQueryParser.testSynonyms default split-on-whitespace to true (it's false on master/7.0)
     new 64ed2b6  LUCENE-7472: remove unused import
     new 4e7c614  LUCENE-7472: remove unused import
     new 9e5ae13  LUCENE-7542: Release smoker should fail when CHANGES.txt has a release section for a future release
     new 49cf6c0  LUCENE-7543: Make changes-to-html target an offline operation, by moving the Lucene and Solr DOAP RDF files into the Git source repository under dev-tools/doap/ and then pulling release dates from those files, rather than from JIRA.
     new 1a488f3  LUCENE-7543: added changes entry
     new 0a6d250  LUCENE-7543: Added note to dev-tools/doap/README.txt about maintaining the website .htaccess file.  Cleaned up DOAP files: added full Aapache license reference; added info about canonical URLs; dropped useles stylesheet processing instruction.
     new 819bea1  LUCENE-7543: fixed canonical URL in comment
     new 2cf3998  LUCENE-7543: Parse DOAP RDF files with Ant <xmlproperty> rather than Perl XML::Simple
     new c3dad25  LUCENE-7543: Update dev-tools/README.txt to include new dev-tools/ directories including doap/; add missing 1.4.1 and 4.9.1 release notes to Solr's CHANGES.txt; fix names of 3.6.1, 3.6.2, 4.0-ALPHA and 4.0-BETA releases in Solr's DOAP file to refer to solr instead of lucene.
     new a015047  LUCENE-7542: Remove debug printing of parsed versions
     new d908647  LUCENE-7543: Treat product name passed into changes2html.pl case-insensitively, and validate that the product name is either 'lucene' or 'solr'
     new 6958618  LUCENE-7748: buildAndPushRelease.py should fail if the project DOAP files are missing releases that are less than the release being produced
     new 7cbd99b  LUCENE-7793: smokeTestRelease.py should run documentation-lint
     new e9094e5  LUCENE-7794: buildAndPushRelease.py should run validate and documentation-lint

The 19 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[lucene] 11/19: LUCENE-7543: Added note to dev-tools/doap/README.txt about maintaining the website .htaccess file. Cleaned up DOAP files: added full Aapache license reference; added info about canonical URLs; dropped useles stylesheet processing instruction.

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 0a6d2508045d2e11b2bfb3f33a177562d2c8a5d8
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Mon Nov 21 18:03:40 2016 -0500

    LUCENE-7543: Added note to dev-tools/doap/README.txt about maintaining the website .htaccess file.  Cleaned up DOAP files: added full Aapache license reference; added info about canonical URLs; dropped useles stylesheet processing instruction.
---
 dev-tools/doap/README.txt |  3 +++
 dev-tools/doap/lucene.rdf | 28 +++++++++++++++++++++-------
 dev-tools/doap/solr.rdf   | 28 +++++++++++++++++++++-------
 3 files changed, 45 insertions(+), 14 deletions(-)

diff --git a/dev-tools/doap/README.txt b/dev-tools/doap/README.txt
index f2a9a9c..9726d2f 100644
--- a/dev-tools/doap/README.txt
+++ b/dev-tools/doap/README.txt
@@ -2,4 +2,7 @@ This folder contains the DOAP[1] files for each project.
 
 Upon release, these files should be updated to include new release details.
 
+NOTE: If this folder's contents are moved elsewhere, the website .htaccess
+file will need to be updated.
+
 [1] DOAP: https://github.com/edumbill/doap
diff --git a/dev-tools/doap/lucene.rdf b/dev-tools/doap/lucene.rdf
index 8f70467..b6643ba 100644
--- a/dev-tools/doap/lucene.rdf
+++ b/dev-tools/doap/lucene.rdf
@@ -1,21 +1,35 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
 <?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl"?>
 <rdf:RDF xml:lang="en"
          xmlns="http://usefulinc.com/ns/doap#"
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns:asfext="http://projects.apache.org/ns/asfext#"
          xmlns:foaf="http://xmlns.com/foaf/0.1/">
 <!--
-  =======================================================================
-
-   Copyright (c) 2016 The Apache Software Foundation.
-   All rights reserved.
+  This file's canonical URL is: http://lucene.apache.org/lucene/doap.rdf
 
-  =======================================================================
+  Note that the canonical URL may redirect to other non-canonical locations.
 -->
   <Project rdf:about="http://lucene.apache.org/core/">
     <created>2001-09-01</created>
-    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
+    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0"/>
     <name>Apache Lucene Core</name>
     <homepage rdf:resource="http://lucene.apache.org/core/" />
     <asfext:pmc rdf:resource="http://lucene.apache.org" />
diff --git a/dev-tools/doap/solr.rdf b/dev-tools/doap/solr.rdf
index 1483c64..87f2463 100644
--- a/dev-tools/doap/solr.rdf
+++ b/dev-tools/doap/solr.rdf
@@ -1,21 +1,35 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
 <?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl"?>
 <rdf:RDF xml:lang="en"
          xmlns="http://usefulinc.com/ns/doap#"
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns:asfext="http://projects.apache.org/ns/asfext#"
          xmlns:foaf="http://xmlns.com/foaf/0.1/">
 <!--
-  =======================================================================
-
-   Copyright (c) 2007 The Apache Software Foundation.
-   All rights reserved.
+  This file's canonical URL is: http://lucene.apache.org/solr/doap.rdf
 
-  =======================================================================
+  Note that the canonical URL may redirect to other non-canonical locations.
 -->
   <Project rdf:about="http://lucene.apache.org/solr/">
     <created>2006-01-17</created>
-    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
+    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0"/>
     <name>Apache Solr</name>
     <homepage rdf:resource="http://lucene.apache.org/solr/" />
     <asfext:pmc rdf:resource="http://lucene.apache.org" />


[lucene] 03/19: Add 6.2.1 back compat test indexes

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 100b50f232ea517fcb12eee70012624c06255695
Author: Shalin Shekhar Mangar <sh...@apache.org>
AuthorDate: Wed Sep 21 02:36:50 2016 +0530

    Add 6.2.1 back compat test indexes
---
 .../apache/lucene/index/TestBackwardsCompatibility.java |   4 +++-
 .../test/org/apache/lucene/index/index.6.2.1-cfs.zip    | Bin 0 -> 15837 bytes
 .../test/org/apache/lucene/index/index.6.2.1-nocfs.zip  | Bin 0 -> 15839 bytes
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
index 4dc7500..915b102 100644
--- a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
+++ b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
@@ -254,7 +254,9 @@ public class TestBackwardsCompatibility extends LuceneTestCase {
       "6.1.0-cfs",
       "6.1.0-nocfs",
       "6.2.0-cfs",
-      "6.2.0-nocfs"
+      "6.2.0-nocfs",
+      "6.2.1-cfs",
+      "6.2.1-nocfs"
   };
   
   final String[] unsupportedNames = {
diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/index.6.2.1-cfs.zip b/lucene/backward-codecs/src/test/org/apache/lucene/index/index.6.2.1-cfs.zip
new file mode 100644
index 0000000..e0977f5
Binary files /dev/null and b/lucene/backward-codecs/src/test/org/apache/lucene/index/index.6.2.1-cfs.zip differ
diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/index.6.2.1-nocfs.zip b/lucene/backward-codecs/src/test/org/apache/lucene/index/index.6.2.1-nocfs.zip
new file mode 100644
index 0000000..b765a76
Binary files /dev/null and b/lucene/backward-codecs/src/test/org/apache/lucene/index/index.6.2.1-nocfs.zip differ


[lucene] 13/19: LUCENE-7543: Parse DOAP RDF files with Ant rather than Perl XML::Simple

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 2cf3998ff6da7bb8c7beb39d7e25978fdb2eb9a0
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Mon Nov 21 20:48:32 2016 -0500

    LUCENE-7543: Parse DOAP RDF files with Ant <xmlproperty> rather than Perl XML::Simple
---
 dev-tools/doap/lucene.rdf           |  2 +-
 dev-tools/doap/solr.rdf             |  2 +-
 lucene/common-build.xml             |  9 ++++++--
 lucene/site/changes/changes2html.pl | 44 +++++++++++++++++++++----------------
 4 files changed, 34 insertions(+), 23 deletions(-)

diff --git a/dev-tools/doap/lucene.rdf b/dev-tools/doap/lucene.rdf
index d1293a4..4fd2942 100644
--- a/dev-tools/doap/lucene.rdf
+++ b/dev-tools/doap/lucene.rdf
@@ -1,3 +1,4 @@
+<?xml version="1.0"?>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
@@ -16,7 +17,6 @@
    specific language governing permissions and limitations
    under the License.    
 -->
-<?xml version="1.0"?>
 <rdf:RDF xml:lang="en"
          xmlns="http://usefulinc.com/ns/doap#"
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
diff --git a/dev-tools/doap/solr.rdf b/dev-tools/doap/solr.rdf
index 87f2463..cc729dc 100644
--- a/dev-tools/doap/solr.rdf
+++ b/dev-tools/doap/solr.rdf
@@ -1,3 +1,4 @@
+<?xml version="1.0"?>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
@@ -16,7 +17,6 @@
    specific language governing permissions and limitations
    under the License.    
 -->
-<?xml version="1.0"?>
 <rdf:RDF xml:lang="en"
          xmlns="http://usefulinc.com/ns/doap#"
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
diff --git a/lucene/common-build.xml b/lucene/common-build.xml
index ce17ff8..e207d6e 100644
--- a/lucene/common-build.xml
+++ b/lucene/common-build.xml
@@ -2503,21 +2503,26 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
    -->
   <macrodef name="build-changes">
     <attribute name="changes.product"/>
+    <attribute name="doap.property.prefix" default="doap.@{changes.product}"/>
     <attribute name="changes.src.file" default="CHANGES.txt"/>
     <attribute name="changes.src.doap" default="${dev-tools.dir}/doap/@{changes.product}.rdf"/>
+    <attribute name="changes.version.dates" default="build/@{doap.property.prefix}.version.dates.csv"/>
     <attribute name="changes.target.dir" default="${changes.target.dir}"/>
     <attribute name="lucene.javadoc.url" default="${lucene.javadoc.url}"/>
     <sequential>
       <mkdir dir="@{changes.target.dir}"/>
+      <xmlproperty keeproot="false" file="@{changes.src.doap}" collapseAttributes="false" prefix="@{doap.property.prefix}"/>
+      <echo file="@{changes.version.dates}" append="false">${@{doap.property.prefix}.Project.release.Version.revision}&#xA;</echo>
+      <echo file="@{changes.version.dates}" append="true">${@{doap.property.prefix}.Project.release.Version.created}&#xA;</echo>
       <exec executable="${perl.exe}" input="@{changes.src.file}" output="@{changes.target.dir}/Changes.html"
             failonerror="true" logError="true">
         <arg value="-CSD"/>
         <arg value="${changes.src.dir}/changes2html.pl"/>
         <arg value="@{changes.product}"/>
-        <arg value="@{changes.src.doap}"/>
+        <arg value="@{changes.version.dates}"/>
         <arg value="@{lucene.javadoc.url}"/>
       </exec>
-      <delete file="@{changes.target.dir}/jiraVersionList.json"/>
+      <delete file="@{changes.version.dates}"/>
       <copy todir="@{changes.target.dir}">
         <fileset dir="${changes.src.dir}" includes="*.css"/>
       </copy>
diff --git a/lucene/site/changes/changes2html.pl b/lucene/site/changes/changes2html.pl
index b3f8fdb..11a0fab 100755
--- a/lucene/site/changes/changes2html.pl
+++ b/lucene/site/changes/changes2html.pl
@@ -23,7 +23,6 @@
 
 use strict;
 use warnings;
-use XML::Simple;
 
 my $jira_url_prefix = 'http://issues.apache.org/jira/browse/';
 my $github_pull_request_prefix = 'https://github.com/apache/lucene-solr/pull/';
@@ -823,26 +822,33 @@ sub get_release_date {
 # Pulls release dates from the project DOAP file.
 #
 sub setup_release_dates {
-  my %release_dates;
+  my %release_dates = ();
   my $file = shift;
-
-  my $project_info = XMLin($file)->{Project};
-  my $version;
+print STDERR "file: $file\n";
+  open(FILE, "<$file") || die "could not open $file: $!";
+  my $version_list = <FILE>;
+  my $created_list = <FILE>;
+  close(FILE);
+
+  $version_list =~ s/^\s+|\s+$//g;
+  my @versions = split /\s*,\s*/, $version_list;
+  $created_list =~ s/^\s+|\s+$//g;
+  my @created = split /\s*,\s*/, $created_list; 
+
+  if (scalar(@versions) != scalar(@created)) {
+    die $file . " contains" . scalar(@versions) . " versions but " . scalar(@created) . " creation dates.";
+  }
   my $date;
-  for my $release (@{$project_info->{release}}) {
-    $version = $release->{Version};
-    if ($version->{created}) {
-      $date = normalize_date($version->{created});
-      my $version_name = $version->{revision};
-      $release_dates{$version->{revision}} = $date;
-      if ($version_name =~ /^([1-9]\d*\.\d+)([^.0-9].*|$)/) {
-        my $padded_version_name = "$1.0$2";             # Alias w/trailing ".0"
-        $release_dates{$padded_version_name} = $date;
-      } elsif ($version_name =~ /\.0(?=[^.0-9]|$)/) {
-        my $trimmed_version_name = $version_name;
-        $trimmed_version_name =~ s/\.0(?=[^.0-9]|$)//;  # Alias w/o trailing ".0"
-        $release_dates{$trimmed_version_name} = $date;
-      }
+  for my $pos (0..$#versions) {
+    $date = normalize_date($created[$pos]);
+    $release_dates{$versions[$pos]} = $date;
+    if ($versions[$pos] =~ /^([1-9]\d*\.\d+)([^.0-9].*|$)/) {
+      my $padded_version_name = "$1.0$2";             # Alias w/trailing ".0"
+      $release_dates{$padded_version_name} = $date;
+    } elsif ($versions[$pos] =~ /\.0(?=[^.0-9]|$)/) {
+      my $trimmed_version_name = $versions[$pos];
+      $trimmed_version_name =~ s/\.0(?=[^.0-9]|$)//;  # Alias w/o trailing ".0"
+      $release_dates{$trimmed_version_name} = $date;
     }
   }
   return %release_dates;


[lucene] 04/19: LUCENE-7472: move CHANGES.txt entry under 6.2.2 section

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 4ecc9d8eeac781ecb5f141491057a57226f61c6a
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Tue Oct 4 10:51:00 2016 -0400

    LUCENE-7472: move CHANGES.txt entry under 6.2.2 section
---
 lucene/CHANGES.txt                                 |  3 +++
 .../queryparser/classic/MultiFieldQueryParser.java |  6 +++---
 .../classic/TestMultiFieldQueryParser.java         | 22 ++++++++++++++++++++++
 3 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 7c6d82e..dfb8435 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -31,6 +31,9 @@ Bug Fixes
   were restored in their original packages: LowercaseFilter and StopFilter,
   as well as several utility classes.  (Uwe Schindler, Mike McCandless)
 
+* LUCENE-7472: MultiFieldQueryParser.getFieldQuery() drops queries that are
+  neither BooleanQuery nor TermQuery.  (Steve Rowe)
+
 ======================= Lucene 6.2.0 =======================
 
 API Changes
diff --git a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java
index 69a7559..2b48930 100644
--- a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java
+++ b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java
@@ -154,10 +154,10 @@ public class MultiFieldQueryParser extends QueryParser
       for (int i = 0; i < fields.length; i++) {
         Query q = super.getFieldQuery(fields[i], queryText, quoted);
         if (q != null) {
-          if (q instanceof TermQuery) {
-            maxTerms = Math.max(1, maxTerms);
-          } else if (q instanceof BooleanQuery) {
+          if (q instanceof BooleanQuery) {
             maxTerms = Math.max(maxTerms, ((BooleanQuery)q).clauses().size());
+          } else {
+            maxTerms = Math.max(1, maxTerms);
           }
           fieldQueries[i] = q;
         }
diff --git a/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java b/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
index d4d8b93..72bd2a1 100644
--- a/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
+++ b/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
@@ -28,6 +28,7 @@ import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
+import org.apache.lucene.queryparser.util.QueryParserTestBase;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
@@ -332,4 +333,25 @@ public class TestMultiFieldQueryParser extends LuceneTestCase {
     assertEquals(bq.build(), mfqp.parse("/[a-z][123]/"));
   }
 
+  /** whitespace+lowercase analyzer with synonyms (dogs,dog) and (guinea pig,cavy) */
+  private class MockSynonymAnalyzer extends Analyzer {
+    @Override
+    public TokenStreamComponents createComponents(String fieldName) {
+      Tokenizer tokenizer = new MockTokenizer(MockTokenizer.WHITESPACE, true);
+      return new TokenStreamComponents(tokenizer, new MockSynonymFilter(tokenizer));
+    }
+  }
+
+  public void testSynonyms() throws ParseException {
+    String[] fields = {"b", "t"};
+    MultiFieldQueryParser parser = new MultiFieldQueryParser(fields, new MockSynonymAnalyzer());
+    Query q = parser.parse("dogs");
+    assertEquals("Synonym(b:dog b:dogs) Synonym(t:dog t:dogs)", q.toString());
+    q = parser.parse("guinea pig");
+    assertFalse(parser.getSplitOnWhitespace());
+    assertEquals("(Synonym(b:cavy b:guinea) Synonym(t:cavy t:guinea)) (b:pig t:pig)", q.toString());
+    parser.setSplitOnWhitespace(true);
+    q = parser.parse("guinea pig");
+    assertEquals("(b:guinea t:guinea) (b:pig t:pig)", q.toString());
+  }
 }


[lucene] 10/19: LUCENE-7543: added changes entry

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 1a488f37190a720fb1513469271818060949f754
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Mon Nov 21 16:54:20 2016 -0500

    LUCENE-7543: added changes entry
---
 lucene/CHANGES.txt | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index dfb8435..92ab32f 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -4,7 +4,13 @@ For more information on past and future Lucene versions, please see:
 http://s.apache.org/luceneversions
 
 ======================= Lucene 6.2.2 =======================
-(No Changes)
+
+Build
+
+* LUCENE-7543: Make changes-to-html target an offline operation, by moving the
+  Lucene and Solr DOAP RDF files into the Git source repository under
+  dev-tools/doap/ and then pulling release dates from those files, rather than
+  from JIRA. (Mano Kovacs, hossman, Steve Rowe)
 
 ======================= Lucene 6.2.1 =======================
 


[lucene] 17/19: LUCENE-7748: buildAndPushRelease.py should fail if the project DOAP files are missing releases that are less than the release being produced

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 6958618d06d5df966d0cd7b8e600c74f16ebd685
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Sat Mar 18 15:09:43 2017 -0400

    LUCENE-7748: buildAndPushRelease.py should fail if the project DOAP files are missing releases that are less than the release being produced
---
 dev-tools/scripts/buildAndPushRelease.py | 64 ++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/dev-tools/scripts/buildAndPushRelease.py b/dev-tools/scripts/buildAndPushRelease.py
index e34c943..9357b6c 100644
--- a/dev-tools/scripts/buildAndPushRelease.py
+++ b/dev-tools/scripts/buildAndPushRelease.py
@@ -22,6 +22,8 @@ import os
 import sys
 import subprocess
 import textwrap
+import urllib.request, urllib.error, urllib.parse
+import xml.etree.ElementTree as ET
 
 LOG = '/tmp/release.log'
 
@@ -57,6 +59,14 @@ def runAndSendGPGPassword(command, password):
     print(msg)
     raise RuntimeError(msg)
 
+def load(urlString):
+  try:
+    content = urllib.request.urlopen(urlString).read().decode('utf-8')
+  except Exception as e:
+    print('Retrying download of url %s after exception: %s' % (urlString, e))
+    content = urllib.request.urlopen(urlString).read().decode('utf-8')
+  return content
+
 def getGitRev():
   status = os.popen('git status').read().strip()
   if 'nothing to commit, working directory clean' not in status:
@@ -84,6 +94,9 @@ def prepare(root, version, gpgKeyID, gpgPassword):
   print('  git rev: %s' % rev)
   log('\nGIT rev: %s\n' % rev)
 
+  print('  Check DOAP files')
+  checkDOAPfiles(version)
+
   print('  ant clean test')
   run('ant clean test')
 
@@ -119,6 +132,57 @@ def prepare(root, version, gpgKeyID, gpgPassword):
   print()
   return rev
 
+reVersion1 = re.compile(r'\>(\d+)\.(\d+)\.(\d+)(-alpha|-beta)?/\<', re.IGNORECASE)
+reVersion2 = re.compile(r'-(\d+)\.(\d+)\.(\d+)(-alpha|-beta)?\.zip<', re.IGNORECASE)
+reDoapRevision = re.compile(r'(\d+)\.(\d+)(?:\.(\d+))?(-alpha|-beta)?', re.IGNORECASE)
+def checkDOAPfiles(version):
+  # In Lucene and Solr DOAP files, verify presence of all releases less than the one being produced.
+  errorMessages = []
+  for product in 'lucene', 'solr':
+    url = 'https://archive.apache.org/dist/lucene/%s' % ('java' if product == 'lucene' else product)
+    distpage = load(url)
+    releases = set()
+    for regex in reVersion1, reVersion2:
+      for tup in regex.findall(distpage):
+        if tup[0] in ('1', '2'):                    # Ignore 1.X and 2.X releases
+          continue
+        releases.add(normalizeVersion(tup))
+    doapNS = '{http://usefulinc.com/ns/doap#}'
+    xpathRevision = '{0}Project/{0}release/{0}Version/{0}revision'.format(doapNS)
+    doapFile = "dev-tools/doap/%s.rdf" % product
+    treeRoot = ET.parse(doapFile).getroot()
+    doapRevisions = set()
+    for revision in treeRoot.findall(xpathRevision):
+      match = reDoapRevision.match(revision.text)
+      if (match is not None):
+        if (match.group(1) not in ('0', '1', '2')): # Ignore 0.X, 1.X and 2.X revisions
+          doapRevisions.add(normalizeVersion(match.groups()))
+      else:
+        errorMessages.append('ERROR: Failed to parse revision: %s in %s' % (revision.text, doapFile))
+    missingDoapRevisions = set()
+    for release in releases:
+      if release not in doapRevisions and release < version: # Ignore releases greater than the one being produced
+        missingDoapRevisions.add(release)
+    if len(missingDoapRevisions) > 0:
+      errorMessages.append('ERROR: Missing revision(s) in %s: %s' % (doapFile, ', '.join(sorted(missingDoapRevisions))))
+  if (len(errorMessages) > 0):
+    raise RuntimeError('\n%s\n(Hint: copy/paste from the stable branch version of the file(s).)'
+                       % '\n'.join(errorMessages))
+
+def normalizeVersion(tup):
+  suffix = ''
+  if tup[-1] is not None and tup[-1].lower() == '-alpha':
+    tup = tup[:(len(tup) - 1)]
+    suffix = '-ALPHA'
+  elif tup[-1] is not None and tup[-1].lower() == '-beta':
+    tup = tup[:(len(tup) - 1)]
+    suffix = '-BETA'
+  while tup[-1] in ('', None):
+    tup = tup[:(len(tup) - 1)]
+  while len(tup) < 3:
+    tup = tup + ('0',)
+  return '.'.join(tup) + suffix
+
 def pushLocal(version, root, rev, rcNum, localDir):
   print('Push local [%s]...' % localDir)
   os.makedirs(localDir)


[lucene] 05/19: LUCENE-7472: switch TestMultiFieldQueryParser.testSynonyms default split-on-whitespace to true (it's false on master/7.0)

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 12e7384b35a92a366e74af5fd4aed4f555ffd2da
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Tue Oct 4 11:03:14 2016 -0400

    LUCENE-7472: switch TestMultiFieldQueryParser.testSynonyms default split-on-whitespace to true (it's false on master/7.0)
---
 .../lucene/queryparser/classic/TestMultiFieldQueryParser.java     | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java b/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
index 72bd2a1..7d1b052 100644
--- a/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
+++ b/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
@@ -348,10 +348,10 @@ public class TestMultiFieldQueryParser extends LuceneTestCase {
     Query q = parser.parse("dogs");
     assertEquals("Synonym(b:dog b:dogs) Synonym(t:dog t:dogs)", q.toString());
     q = parser.parse("guinea pig");
-    assertFalse(parser.getSplitOnWhitespace());
-    assertEquals("(Synonym(b:cavy b:guinea) Synonym(t:cavy t:guinea)) (b:pig t:pig)", q.toString());
-    parser.setSplitOnWhitespace(true);
-    q = parser.parse("guinea pig");
+    assertTrue(parser.getSplitOnWhitespace());
     assertEquals("(b:guinea t:guinea) (b:pig t:pig)", q.toString());
+    parser.setSplitOnWhitespace(false);
+    q = parser.parse("guinea pig");
+    assertEquals("(Synonym(b:cavy b:guinea) Synonym(t:cavy t:guinea)) (b:pig t:pig)", q.toString());
   }
 }


[lucene] 07/19: LUCENE-7472: remove unused import

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 4e7c6141a2afaff454cfc364dd02c8abb838c218
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Tue Oct 4 16:37:54 2016 -0400

    LUCENE-7472: remove unused import
---
 .../org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java | 1 -
 1 file changed, 1 deletion(-)

diff --git a/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java b/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
index 7d1b052..9fdb05e 100644
--- a/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
+++ b/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
@@ -28,7 +28,6 @@ import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.queryparser.util.QueryParserTestBase;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;


[lucene] 16/19: LUCENE-7543: Treat product name passed into changes2html.pl case-insensitively, and validate that the product name is either 'lucene' or 'solr'

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit d908647eeb57cbbf7b2f36e17eead7edbc062a09
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Wed Jan 25 13:00:20 2017 -0500

    LUCENE-7543: Treat product name passed into changes2html.pl case-insensitively, and validate that the product name is either 'lucene' or 'solr'
---
 lucene/site/changes/changes2html.pl | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lucene/site/changes/changes2html.pl b/lucene/site/changes/changes2html.pl
index 11a0fab..939f577 100755
--- a/lucene/site/changes/changes2html.pl
+++ b/lucene/site/changes/changes2html.pl
@@ -45,7 +45,11 @@ my @lines = <STDIN>;                        # Get all input at once
 #
 # Cmdline args:  <LUCENE|SOLR>  <project-DOAP-rdf-file>  <lucene-javadoc-url>(only from Solr)
 #
-my $product = $ARGV[0];
+my $product = uc($ARGV[0]);
+if ($product !~ /^(LUCENE|SOLR)$/) {
+  print STDERR "Unknown product name '$ARGV[0]'\n";
+  exit(1);
+}
 my %release_dates = &setup_release_dates($ARGV[1]);
 my $lucene_javadoc_url = ($product eq 'SOLR' ? $ARGV[2] : ''); # Only Solr supplies this on the cmdline
 my $in_major_component_versions_section = 0;
@@ -824,7 +828,6 @@ sub get_release_date {
 sub setup_release_dates {
   my %release_dates = ();
   my $file = shift;
-print STDERR "file: $file\n";
   open(FILE, "<$file") || die "could not open $file: $!";
   my $version_list = <FILE>;
   my $created_list = <FILE>;


[lucene] 08/19: LUCENE-7542: Release smoker should fail when CHANGES.txt has a release section for a future release

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 9e5ae13ffa98d1e74d3b830d0a4eedd9b4c2a4fd
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Thu Nov 17 12:54:33 2016 -0500

    LUCENE-7542: Release smoker should fail when CHANGES.txt has a release section for a future release
---
 dev-tools/scripts/smokeTestRelease.py | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/dev-tools/scripts/smokeTestRelease.py b/dev-tools/scripts/smokeTestRelease.py
index 7b18fdb..3def8fc 100644
--- a/dev-tools/scripts/smokeTestRelease.py
+++ b/dev-tools/scripts/smokeTestRelease.py
@@ -431,6 +431,7 @@ reChangesSectionHREF = re.compile('<a id="(.*?)".*?>(.*?)</a>', re.IGNORECASE)
 reUnderbarNotDashHTML = re.compile(r'<li>(\s*(LUCENE|SOLR)_\d\d\d\d+)')
 reUnderbarNotDashTXT = re.compile(r'\s+((LUCENE|SOLR)_\d\d\d\d+)', re.MULTILINE)
 def checkChangesContent(s, version, name, project, isHTML):
+  currentVersionTuple = versionToTuple(version, name)
 
   if isHTML and s.find('Release %s' % version) == -1:
     raise RuntimeError('did not see "Release %s" in %s' % (version, name))
@@ -459,7 +460,8 @@ def checkChangesContent(s, version, name, project, isHTML):
         raise RuntimeError('did not see "%s" in %s' % (sub, name))
 
   if isHTML:
-    # Make sure a section only appears once under each release:
+    # Make sure that a section only appears once under each release,
+    # and that each release is not greater than the current version
     seenIDs = set()
     seenText = set()
 
@@ -468,6 +470,9 @@ def checkChangesContent(s, version, name, project, isHTML):
       if text.lower().startswith('release '):
         release = text[8:].strip()
         seenText.clear()
+        releaseTuple = versionToTuple(release, name)
+        if releaseTuple > currentVersionTuple:
+          raise RuntimeError('Future release %s is greater than %s in %s' % (release, version, name))
       if id in seenIDs:
         raise RuntimeError('%s has duplicate section "%s" under release "%s"' % (name, text, release))
       seenIDs.add(id)
@@ -475,6 +480,27 @@ def checkChangesContent(s, version, name, project, isHTML):
         raise RuntimeError('%s has duplicate section "%s" under release "%s"' % (name, text, release))
       seenText.add(text)
 
+
+reVersion = re.compile(r'(\d+)\.(\d+)(?:\.(\d+))?\s*(-alpha|-beta|final|RC\d+)?\s*(?:\[.*\])?', re.IGNORECASE)
+def versionToTuple(version, name):
+  versionMatch = reVersion.match(version)
+  if versionMatch is None:
+    raise RuntimeError('Version %s in %s cannot be parsed' % (version, name))
+  versionTuple = versionMatch.groups()
+  while versionTuple[-1] is None or versionTuple[-1] == '':
+    versionTuple = versionTuple[:-1]
+  if versionTuple[-1].lower() == '-alpha':
+    versionTuple = versionTuple[:-1] + ('0',)
+  elif versionTuple[-1].lower() == '-beta':
+    versionTuple = versionTuple[:-1] + ('1',)
+  elif versionTuple[-1].lower() == 'final':
+    versionTuple = versionTuple[:-2] + ('100',)
+  elif versionTuple[-1].lower()[:2] == 'rc':
+    versionTuple = versionTuple[:-2] + (versionTuple[-1][2:],)
+  print('%s: %s' % (version, versionTuple))
+  return versionTuple
+
+
 reUnixPath = re.compile(r'\b[a-zA-Z_]+=(?:"(?:\\"|[^"])*"' + '|(?:\\\\.|[^"\'\\s])*' + r"|'(?:\\'|[^'])*')" \
                         + r'|(/(?:\\.|[^"\'\s])*)' \
                         + r'|("/(?:\\.|[^"])*")'   \


[lucene] 19/19: LUCENE-7794: buildAndPushRelease.py should run validate and documentation-lint

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit e9094e59f2116d84e2a0eb44ac3b64029eba39c1
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Fri Apr 28 10:14:38 2017 -0400

    LUCENE-7794: buildAndPushRelease.py should run validate and documentation-lint
---
 dev-tools/scripts/buildAndPushRelease.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dev-tools/scripts/buildAndPushRelease.py b/dev-tools/scripts/buildAndPushRelease.py
index 9357b6c..f6dd6f1 100644
--- a/dev-tools/scripts/buildAndPushRelease.py
+++ b/dev-tools/scripts/buildAndPushRelease.py
@@ -97,8 +97,8 @@ def prepare(root, version, gpgKeyID, gpgPassword):
   print('  Check DOAP files')
   checkDOAPfiles(version)
 
-  print('  ant clean test')
-  run('ant clean test')
+  print('  ant clean test validate documentation-lint')
+  run('ant clean test validate documentation-lint')
 
   open('rev.txt', mode='wb').write(rev.encode('UTF-8'))
   


[lucene] 09/19: LUCENE-7543: Make changes-to-html target an offline operation, by moving the Lucene and Solr DOAP RDF files into the Git source repository under dev-tools/doap/ and then pulling release dates from those files, rather than from JIRA.

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 49cf6c04a47b8ef9feb97ce9131f78cad689277e
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Mon Nov 21 16:47:40 2016 -0500

    LUCENE-7543: Make changes-to-html target an offline operation, by moving the Lucene and Solr DOAP RDF files into the Git source repository under dev-tools/doap/ and then pulling release dates from those files, rather than from JIRA.
---
 dev-tools/doap/README.txt           |   5 +
 dev-tools/doap/lucene.rdf           | 707 ++++++++++++++++++++++++++++++++++++
 dev-tools/doap/solr.rdf             | 455 +++++++++++++++++++++++
 lucene/build.xml                    |   5 +-
 lucene/common-build.xml             |   5 +-
 lucene/site/changes/changes2html.pl |  96 ++---
 solr/build.xml                      |   4 +-
 7 files changed, 1203 insertions(+), 74 deletions(-)

diff --git a/dev-tools/doap/README.txt b/dev-tools/doap/README.txt
new file mode 100644
index 0000000..f2a9a9c
--- /dev/null
+++ b/dev-tools/doap/README.txt
@@ -0,0 +1,5 @@
+This folder contains the DOAP[1] files for each project.
+
+Upon release, these files should be updated to include new release details.
+
+[1] DOAP: https://github.com/edumbill/doap
diff --git a/dev-tools/doap/lucene.rdf b/dev-tools/doap/lucene.rdf
new file mode 100644
index 0000000..8f70467
--- /dev/null
+++ b/dev-tools/doap/lucene.rdf
@@ -0,0 +1,707 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl"?>
+<rdf:RDF xml:lang="en"
+         xmlns="http://usefulinc.com/ns/doap#"
+         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:asfext="http://projects.apache.org/ns/asfext#"
+         xmlns:foaf="http://xmlns.com/foaf/0.1/">
+<!--
+  =======================================================================
+
+   Copyright (c) 2016 The Apache Software Foundation.
+   All rights reserved.
+
+  =======================================================================
+-->
+  <Project rdf:about="http://lucene.apache.org/core/">
+    <created>2001-09-01</created>
+    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
+    <name>Apache Lucene Core</name>
+    <homepage rdf:resource="http://lucene.apache.org/core/" />
+    <asfext:pmc rdf:resource="http://lucene.apache.org" />
+
+    <shortdesc>Apache Lucene is a high-performance, full-featured text search engine library</shortdesc>
+    <description>Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
+    </description>
+    <bug-database rdf:resource="http://issues.apache.org/jira/browse/LUCENE" />
+    <mailing-list rdf:resource="http://lucene.apache.org/core/discussion.html" />
+    <download-page rdf:resource="http://lucene.apache.org/core/downloads.html" />
+    <programming-language>Java</programming-language>
+
+    <!--
+        The ASF has a finite set of categories projects should use,
+        but the list does grow occasionally, and we should keep an eye
+        on it and adjust which ones we list as appropriate.
+    -->
+    <category rdf:resource="http://projects.apache.org/category/database" />
+    <category rdf:resource="http://projects.apache.org/category/library" />
+    <category rdf:resource="http://projects.apache.org/category/search" />
+
+    <wiki rdf:resource="http://wiki.apache.org/lucene-java/"/>
+
+    <repository>
+      <GitRepository>
+        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/lucene-solr.git"/>
+      </GitRepository>
+    </repository>
+
+    <maintainer>
+      <foaf:Person>
+        <foaf:name>Apache Lucene Team</foaf:name>
+        <foaf:mbox rdf:resource="mailto:dev@lucene.apache.org"/>
+      </foaf:Person>
+    </maintainer>
+
+    <release>
+      <Version>
+        <name>lucene-6.3.0</name>
+        <created>2016-11-08</created>
+        <revision>6.3.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-6.2.1</name>
+        <created>2016-09-20</created>
+        <revision>6.2.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-6.2.0</name>
+        <created>2016-08-25</created>
+        <revision>6.2.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-6.1.0</name>
+        <created>2016-06-17</created>
+        <revision>6.1.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-6.0.1</name>
+        <created>2016-05-28</created>
+        <revision>6.0.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-6.0.0</name>
+        <created>2016-04-08</created>
+        <revision>6.0.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.5.3</name>
+        <created>2016-09-09</created>
+        <revision>5.5.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.5.2</name>
+        <created>2016-06-25</created>
+        <revision>5.5.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.5.1</name>
+        <created>2016-05-05</created>
+        <revision>5.5.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.5.0</name>
+        <created>2016-02-22</created>
+        <revision>5.5.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.4.1</name>
+        <created>2016-01-23</created>
+        <revision>5.4.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.4.0</name>
+        <created>2015-12-14</created>
+        <revision>5.4.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.3.2</name>
+        <created>2016-01-23</created>
+        <revision>5.3.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.3.1</name>
+        <created>2015-09-24</created>
+        <revision>5.3.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.3.0</name>
+        <created>2015-08-21</created>
+        <revision>5.3.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.2.1</name>
+        <created>2015-06-15</created>
+        <revision>5.2.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.2.0</name>
+        <created>2015-06-07</created>
+        <revision>5.2.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.1.0</name>
+        <created>2015-04-14</created>
+        <revision>5.1.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-5.0.0</name>
+        <created>2015-02-20</created>
+        <revision>5.0.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.10.4</name>
+        <created>2015-03-03</created>
+        <revision>4.10.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.10.3</name>
+        <created>2014-12-29</created>
+        <revision>4.10.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.10.2</name>
+        <created>2014-10-31</created>
+        <revision>4.10.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.10.1</name>
+        <created>2014-09-29</created>
+        <revision>4.10.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.10.0</name>
+        <created>2014-09-03</created>
+        <revision>4.10.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.9.1</name>
+        <created>2014-09-22</created>
+        <revision>4.9.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.9.0</name>
+        <created>2014-06-25</created>
+        <revision>4.9.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.8.1</name>
+        <created>2014-05-20</created>
+        <revision>4.8.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.8.0</name>
+        <created>2014-04-28</created>
+        <revision>4.8.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.7.2</name>
+        <created>2014-04-15</created>
+        <revision>4.7.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.7.1</name>
+        <created>2014-04-02</created>
+        <revision>4.7.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.7.0</name>
+        <created>2014-02-26</created>
+        <revision>4.7.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.6.1</name>
+        <created>2014-01-28</created>
+        <revision>4.6.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.6.0</name>
+        <created>2013-11-22</created>
+        <revision>4.6.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.5.1</name>
+        <created>2013-10-24</created>
+        <revision>4.5.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.5</name>
+        <created>2013-10-05</created>
+        <revision>4.5</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.4</name>
+        <created>2013-07-23</created>
+        <revision>4.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.3.1</name>
+        <created>2013-06-18</created>
+        <revision>4.3.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.3</name>
+        <created>2013-05-06</created>
+        <revision>4.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.2.1</name>
+        <created>2013-04-03</created>
+        <revision>4.2.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.2</name>
+        <created>2013-03-11</created>
+        <revision>4.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.1</name>
+        <created>2013-01-22</created>
+        <revision>4.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.0</name>
+        <created>2012-10-12</created>
+        <revision>4.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.0-BETA</name>
+        <created>2012-08-13</created>
+        <revision>4.0-BETA</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.0-ALPHA</name>
+        <created>2012-07-03</created>
+        <revision>4.0-ALPHA</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.6.2</name>
+        <created>2012-12-25</created>
+        <revision>3.6.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.6.1</name>
+        <created>2012-07-22</created>
+        <revision>3.6.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.6</name>
+        <created>2012-04-12</created>
+        <revision>3.6</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.5</name>
+        <created>2011-11-11</created>
+        <revision>3.5</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.4</name>
+        <created>2011-09-15</created>
+        <revision>3.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.3</name>
+        <created>2011-07-10</created>
+        <revision>3.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.2</name>
+        <created>2011-06-03</created>
+        <revision>3.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.1</name>
+        <created>2011-03-31</created>
+        <revision>3.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.0.3</name>
+        <created>2010-12-03</created>
+        <revision>3.0.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.0.2</name>
+        <created>2010-06-18</created>
+        <revision>3.0.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.0.1</name>
+        <created>2010-02-26</created>
+        <revision>3.0.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.0</name>
+        <created>2009-11-25</created>
+        <revision>3.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.9.4</name>
+        <created>2010-12-03</created>
+        <revision>2.9.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.9.3</name>
+        <created>2010-06-18</created>
+        <revision>2.9.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.9.2</name>
+        <created>2010-02-26</created>
+        <revision>2.9.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.9.1</name>
+        <created>2009-11-06</created>
+        <revision>2.9.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.9</name>
+        <created>2009-09-25</created>
+        <revision>2.9</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.4.1</name>
+        <created>2009-03-09</created>
+        <revision>2.4.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.4</name>
+        <created>2008-10-08</created>
+        <revision>2.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.3.2</name>
+        <created>2008-05-06</created>
+        <revision>2.3.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.3.1</name>
+        <created>2008-02-22</created>
+        <revision>2.3.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.3</name>
+        <created>2008-01-23</created>
+        <revision>2.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.2</name>
+        <created>2007-06-19</created>
+        <revision>2.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.1</name>
+        <created>2007-02-17</created>
+        <revision>2.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-2.0.0</name>
+        <created>2006-05-26</created>
+        <revision>2.0.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.9.1</name>
+        <created>2006-03-02</created>
+        <revision>1.9.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.9-final</name>
+        <created>2006-02-27</created>
+        <revision>1.9 final</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.9-rc1</name>
+        <created>2006-02-21</created>
+        <revision>1.9 RC1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.4.3</name>
+        <created>2004-12-07</created>
+        <revision>1.4.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.4.2</name>
+        <created>2004-10-01</created>
+        <revision>1.4.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.4.1</name>
+        <created>2004-08-02</created>
+        <revision>1.4.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.4-final</name>
+        <created>2004-07-01</created>
+        <revision>1.4 final</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.4-rc3</name>
+        <created>2004-05-11</created>
+        <revision>1.4 RC3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.4-rc2</name>
+        <created>2004-03-30</created>
+        <revision>1.4 RC2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.4-rc1</name>
+        <created>2004-03-29</created>
+        <revision>1.4 RC1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.3-final</name>
+        <created>2003-12-26</created>
+        <revision>1.3 final</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.3-rc3</name>
+        <created>2003-11-25</created>
+        <revision>1.3 RC3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.3-rc2</name>
+        <created>2003-10-22</created>
+        <revision>1.3 RC2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.3-rc1</name>
+        <created>2003-03-24</created>
+        <revision>1.3 RC1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.2-final</name>
+        <created>2002-06-13</created>
+        <revision>1.2 final</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.2-rc5</name>
+        <created>2002-05-14</created>
+        <revision>1.2 RC5</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.2-rc4</name>
+        <created>2002-02-14</created>
+        <revision>1.2 RC4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.2-rc3</name>
+        <created>2002-01-27</created>
+        <revision>1.2 RC3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.2-rc2</name>
+        <created>2001-10-19</created>
+        <revision>1.2 RC2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.2-rc1</name>
+        <created>2001-10-02</created>
+        <revision>1.2 RC1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.01b</name>
+        <created>2001-06-02</created>
+        <revision>1.01b</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-1.0</name>
+        <created>2000-10-04</created>
+        <revision>1.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-0.04</name>
+        <created>2000-04-19</created>
+        <revision>0.04</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-0.01</name>
+        <created>2000-03-30</created>
+        <revision>0.01</revision>
+      </Version>
+    </release>
+  </Project>
+</rdf:RDF>
diff --git a/dev-tools/doap/solr.rdf b/dev-tools/doap/solr.rdf
new file mode 100644
index 0000000..1483c64
--- /dev/null
+++ b/dev-tools/doap/solr.rdf
@@ -0,0 +1,455 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl"?>
+<rdf:RDF xml:lang="en"
+         xmlns="http://usefulinc.com/ns/doap#"
+         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:asfext="http://projects.apache.org/ns/asfext#"
+         xmlns:foaf="http://xmlns.com/foaf/0.1/">
+<!--
+  =======================================================================
+
+   Copyright (c) 2007 The Apache Software Foundation.
+   All rights reserved.
+
+  =======================================================================
+-->
+  <Project rdf:about="http://lucene.apache.org/solr/">
+    <created>2006-01-17</created>
+    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
+    <name>Apache Solr</name>
+    <homepage rdf:resource="http://lucene.apache.org/solr/" />
+    <asfext:pmc rdf:resource="http://lucene.apache.org" />
+
+    <shortdesc>Solr is a full-text search server</shortdesc>
+    <description>Solr is an open source enterprise search server based on the Lucene Java search library, with XML/HTTP and JSON, Ruby, and Python APIs, hit highlighting, faceted search, caching, replication, and a web administration interface.
+    </description>
+    <bug-database rdf:resource="http://issues.apache.org/jira/browse/SOLR" />
+    <mailing-list rdf:resource="http://lucene.apache.org/solr/discussion.html" />
+    <download-page rdf:resource="http://lucene.apache.org/solr/downloads.html" />
+    <programming-language>Java</programming-language>
+
+    <!--
+        The ASF has a finite set of categories projects should use,
+        but the list does grow occasionally, and we should keep an eye
+        on it and adjust which ones we list as appropriate.
+    -->
+    <category rdf:resource="http://projects.apache.org/category/web-framework" />
+    <category rdf:resource="http://projects.apache.org/category/network-server" />
+    <category rdf:resource="http://projects.apache.org/category/search" />
+
+    <wiki rdf:resource="http://wiki.apache.org/solr/"/>
+
+    <repository>
+      <GitRepository>
+        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/lucene-solr.git"/>
+      </GitRepository>
+    </repository>
+
+    <maintainer>
+      <foaf:Person>
+        <foaf:name>Apache Solr Team</foaf:name>
+        <foaf:mbox rdf:resource="mailto:dev@lucene.apache.org"/>
+      </foaf:Person>
+    </maintainer>
+    
+    <release>
+      <Version>
+        <name>solr-6.3.0</name>
+        <created>2016-11-08</created>
+        <revision>6.3.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-6.2.1</name>
+        <created>2016-09-20</created>
+        <revision>6.2.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-6.2.0</name>
+        <created>2016-08-25</created>
+        <revision>6.2.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-6.1.0</name>
+        <created>2016-06-17</created>
+        <revision>6.1.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-6.0.1</name>
+        <created>2016-05-28</created>
+        <revision>6.0.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-6.0.0</name>
+        <created>2016-04-08</created>
+        <revision>6.0.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.5.3</name>
+        <created>2016-09-09</created>
+        <revision>5.5.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.5.2</name>
+        <created>2016-06-25</created>
+        <revision>5.5.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.5.1</name>
+        <created>2016-05-05</created>
+        <revision>5.5.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.5.0</name>
+        <created>2016-02-22</created>
+        <revision>5.5.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.4.1</name>
+        <created>2016-01-23</created>
+        <revision>5.4.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.4.0</name>
+        <created>2015-12-14</created>
+        <revision>5.4.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.3.2</name>
+        <created>2016-01-23</created>
+        <revision>5.3.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.3.1</name>
+        <created>2015-09-24</created>
+        <revision>5.3.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.3.0</name>
+        <created>2015-08-21</created>
+        <revision>5.3.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.2.1</name>
+        <created>2015-06-15</created>
+        <revision>5.2.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.2.0</name>
+        <created>2015-06-07</created>
+        <revision>5.2.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.1.0</name>
+        <created>2015-04-14</created>
+        <revision>5.1.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-5.0.0</name>
+        <created>2015-02-20</created>
+        <revision>5.0.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.10.4</name>
+        <created>2015-03-03</created>
+        <revision>4.10.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.10.3</name>
+        <created>2014-12-29</created>
+        <revision>4.10.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.10.2</name>
+        <created>2014-10-31</created>
+        <revision>4.10.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.10.1</name>
+        <created>2014-09-29</created>
+        <revision>4.10.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.10.0</name>
+        <created>2014-09-03</created>
+        <revision>4.10.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.9.1</name>
+        <created>2014-09-22</created>
+        <revision>4.9.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.9.0</name>
+        <created>2014-06-25</created>
+        <revision>4.9.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.8.1</name>
+        <created>2014-05-20</created>
+        <revision>4.8.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.8.0</name>
+        <created>2014-04-28</created>
+        <revision>4.8.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.7.2</name>
+        <created>2014-04-15</created>
+        <revision>4.7.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.7.1</name>
+        <created>2014-02-26</created>
+        <revision>4.7.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.7.0</name>
+        <created>2014-02-26</created>
+        <revision>4.7.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.6.1</name>
+        <created>2014-01-28</created>
+        <revision>4.6.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.6.0</name>
+        <created>2013-11-22</created>
+        <revision>4.6.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.5.1</name>
+        <created>2013-10-24</created>
+        <revision>4.5.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.5</name>
+        <created>2013-10-05</created>
+        <revision>4.5</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.4</name>
+        <created>2013-07-23</created>
+        <revision>4.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.3.1</name>
+        <created>2013-06-18</created>
+        <revision>4.3.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.3</name>
+        <created>2013-05-06</created>
+        <revision>4.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.2.1</name>
+        <created>2013-04-03</created>
+        <revision>4.2.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.2</name>
+        <created>2013-03-11</created>
+        <revision>4.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.1</name>
+        <created>2013-01-22</created>
+        <revision>4.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-4.0</name>
+        <created>2012-10-12</created>
+        <revision>4.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.0-BETA</name>
+        <created>2012-08-13</created>
+        <revision>4.0-BETA</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-4.0-ALPHA</name>
+        <created>2012-07-03</created>
+        <revision>4.0-ALPHA</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.6.2</name>
+        <created>2012-12-25</created>
+        <revision>3.6.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>lucene-3.6.1</name>
+        <created>2012-07-22</created>
+        <revision>3.6.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-3.6</name>
+        <created>2012-04-12</created>
+        <revision>3.6</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-3.5</name>
+        <created>2011-11-11</created>
+        <revision>3.5</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-3.4</name>
+        <created>2011-09-15</created>
+        <revision>3.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-3.3</name>
+        <created>2011-07-10</created>
+        <revision>3.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-3.2</name>
+        <created>2011-06-03</created>
+        <revision>3.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-3.1</name>
+        <created>2011-03-31</created>
+        <revision>3.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-1.4.1</name>
+        <created>2010-6-25</created>
+        <revision>1.4.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-1.4.0</name>
+        <created>2009-11-10</created>
+        <revision>1.4.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-1.3.0</name>
+        <created>2008-09-16</created>
+        <revision>1.3.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-1.2.0</name>
+        <created>2007-06-06</created>
+        <revision>1.2.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>solr-1.1.0</name>
+        <created>2006-12-22</created>
+        <revision>1.1.0</revision>
+      </Version>
+    </release>
+  </Project>
+</rdf:RDF>
diff --git a/lucene/build.xml b/lucene/build.xml
index 383fbeb..1b1a8cb 100644
--- a/lucene/build.xml
+++ b/lucene/build.xml
@@ -355,13 +355,14 @@
     
     <build-changes changes.src.file="${local.src.export.dir}/CHANGES.txt"
                    changes.target.dir="${local.src.export.dir}/docs/changes"
-                   changes.product="LUCENE"/>
+                   changes.product="lucene"/>
     <tar tarfile="${source.package.file}" compression="gzip" longfile="gnu">
       <tarfileset prefix="lucene-${version}" dir="${local.src.export.dir}"/>
     </tar>
     <make-checksums file="${source.package.file}"/>
   </target>
 
+
   <!-- ================================================================== -->
   <!-- Packages the sources from local working copy with tar-gzip     -->
   <!-- ================================================================== -->
@@ -476,7 +477,7 @@
   </target>
 
   <target name="changes-to-html">
-    <build-changes changes.product="LUCENE"/>
+    <build-changes changes.product="lucene"/>
   </target>
 
   <target name="pitest-modules" depends="compile-test">
diff --git a/lucene/common-build.xml b/lucene/common-build.xml
index 1820e00..ce17ff8 100644
--- a/lucene/common-build.xml
+++ b/lucene/common-build.xml
@@ -2504,18 +2504,17 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
   <macrodef name="build-changes">
     <attribute name="changes.product"/>
     <attribute name="changes.src.file" default="CHANGES.txt"/>
+    <attribute name="changes.src.doap" default="${dev-tools.dir}/doap/@{changes.product}.rdf"/>
     <attribute name="changes.target.dir" default="${changes.target.dir}"/>
     <attribute name="lucene.javadoc.url" default="${lucene.javadoc.url}"/>
     <sequential>
       <mkdir dir="@{changes.target.dir}"/>
-      <get src="https://issues.apache.org/jira/rest/api/2/project/@{changes.product}"
-        dest="@{changes.target.dir}/jiraVersionList.json" httpusecaches="false"/>
       <exec executable="${perl.exe}" input="@{changes.src.file}" output="@{changes.target.dir}/Changes.html"
             failonerror="true" logError="true">
         <arg value="-CSD"/>
         <arg value="${changes.src.dir}/changes2html.pl"/>
         <arg value="@{changes.product}"/>
-        <arg value="@{changes.target.dir}/jiraVersionList.json"/>
+        <arg value="@{changes.src.doap}"/>
         <arg value="@{lucene.javadoc.url}"/>
       </exec>
       <delete file="@{changes.target.dir}/jiraVersionList.json"/>
diff --git a/lucene/site/changes/changes2html.pl b/lucene/site/changes/changes2html.pl
index d71f296..b3f8fdb 100755
--- a/lucene/site/changes/changes2html.pl
+++ b/lucene/site/changes/changes2html.pl
@@ -23,9 +23,8 @@
 
 use strict;
 use warnings;
+use XML::Simple;
 
-# JIRA REST API documentation: <http://docs.atlassian.com/jira/REST/latest/>
-my $project_info_url = 'https://issues.apache.org/jira/rest/api/2/project';
 my $jira_url_prefix = 'http://issues.apache.org/jira/browse/';
 my $github_pull_request_prefix = 'https://github.com/apache/lucene-solr/pull/';
 my $bugzilla_url_prefix = 'http://issues.apache.org/bugzilla/show_bug.cgi?id=';
@@ -45,7 +44,7 @@ my @releases = ();
 my @lines = <STDIN>;                        # Get all input at once
 
 #
-# Cmdline args:  <LUCENE|SOLR>  <JIRA-release-dates-json>  <lucene-javadoc-url>(only from Solr)
+# Cmdline args:  <LUCENE|SOLR>  <project-DOAP-rdf-file>  <lucene-javadoc-url>(only from Solr)
 #
 my $product = $ARGV[0];
 my %release_dates = &setup_release_dates($ARGV[1]);
@@ -804,10 +803,6 @@ sub get_release_date {
     # Handle '1.2 RC6', which should be '1.2 final'
     $release = '1.2 final' if ($release eq '1.2 RC6');
 
-    if (not exists($release_dates{$release})) {
-      $release =~ s/\.0\.0/\.0/;
-    }
-
     $reldate = ( exists($release_dates{$release}) 
                ? $release_dates{$release}
                : 'unknown');
@@ -825,60 +820,46 @@ sub get_release_date {
 # Returns a list of alternating release names and dates, for use in populating
 # the %release_dates hash.
 #
-# Pulls release dates via the JIRA REST API.  JIRA does not list
-# X.Y RCZ releases independently from releases X.Y, so the RC dates
-# as well as those named "final" are included below.
+# Pulls release dates from the project DOAP file.
 #
 sub setup_release_dates {
   my %release_dates;
   my $file = shift;
-  if (uc($product) eq 'LUCENE') {
-    %release_dates
-       = ( '0.01' => '2000-03-30',      '0.04' => '2000-04-19',
-           '1.0' => '2000-10-04',       '1.01b' => '2001-06-02',
-           '1.2 RC1' => '2001-10-02',   '1.2 RC2' => '2001-10-19',
-           '1.2 RC3' => '2002-01-27',   '1.2 RC4' => '2002-02-14',
-           '1.2 RC5' => '2002-05-14',   '1.2 final' => '2002-06-13',
-           '1.3 RC1' => '2003-03-24',   '1.3 RC2' => '2003-10-22',
-           '1.3 RC3' => '2003-11-25',   '1.3 final' => '2003-12-26',
-           '1.4 RC1' => '2004-03-29',   '1.4 RC2' => '2004-03-30',
-           '1.4 RC3' => '2004-05-11',   '1.4 final' => '2004-07-01',
-           '1.4.1' => '2004-08-02',     '1.4.2' => '2004-10-01',
-           '1.4.3' => '2004-12-07',     '1.9 RC1' => '2006-02-21',
-           '1.9 final' => '2006-02-27', '1.9.1' => '2006-03-02',
-           '2.0.0' => '2006-05-26',     '2.1.0' => '2007-02-14',
-           '2.2.0' => '2007-06-19',     '2.3.0' => '2008-01-21',
-           '2.3.1' => '2008-02-22',     '2.3.2' => '2008-05-05',
-           '2.4.0' => '2008-10-06',     '2.4.1' => '2009-03-09',
-           '2.9.0' => '2009-09-23',     '2.9.1' => '2009-11-06',
-           '3.0.0' => '2009-11-25');
-  }
 
-  my $project_info_json = readFile($file);
-  my $project_info = json2perl($project_info_json);
-  for my $version (@{$project_info->{versions}}) {
-    if ($version->{releaseDate}) {
-      my $date = substr($version->{releaseDate}, 0, 10);
-      my $version_name = $version->{name};
-      $release_dates{$version->{name}} = $date;
-      if ($version_name =~ /^\d+\.\d+$/) {
-        my $full_version_name = "$version->{name}.0";
-        $release_dates{$full_version_name} = $date;
+  my $project_info = XMLin($file)->{Project};
+  my $version;
+  my $date;
+  for my $release (@{$project_info->{release}}) {
+    $version = $release->{Version};
+    if ($version->{created}) {
+      $date = normalize_date($version->{created});
+      my $version_name = $version->{revision};
+      $release_dates{$version->{revision}} = $date;
+      if ($version_name =~ /^([1-9]\d*\.\d+)([^.0-9].*|$)/) {
+        my $padded_version_name = "$1.0$2";             # Alias w/trailing ".0"
+        $release_dates{$padded_version_name} = $date;
+      } elsif ($version_name =~ /\.0(?=[^.0-9]|$)/) {
+        my $trimmed_version_name = $version_name;
+        $trimmed_version_name =~ s/\.0(?=[^.0-9]|$)//;  # Alias w/o trailing ".0"
+        $release_dates{$trimmed_version_name} = $date;
       }
     }
   }
   return %release_dates;
 }
 
-sub readFile {
-  my $file = shift;
-  open(F, '<'.$file) || die "could not open $file: $!";
-  local $/ = undef;
-  my $project_info_json = <F>;
-  close(F);
-  return $project_info_json;
+#
+# normalize_date
+#
+# Left-zero-pads month and day-of-month to 2 digits in dates of format YYYY-(M)M-(D)D
+#
+sub normalize_date {
+  my $date = shift;
+  my ($year, $month, $dom) = $date =~ /^(2\d\d\d)-(\d+)-(\d+)$/;
+  return sprintf("%04d-%02d-%02d", $year, $month, $dom);
 }
 
+
 #
 # setup_month_regex
 #
@@ -1038,23 +1019,4 @@ sub setup_lucene_bugzilla_jira_map {
            36628 => 432);
 }
 
-#
-# json2perl
-#
-# Converts a JSON string to the equivalent Perl data structure
-#
-sub json2perl {
-  my $json_string = shift;
-  $json_string =~ s/(:\s*)(true|false)/$1"$2"/g;
-  $json_string =~ s/":/",/g;
-  $json_string =~ s/\'/\\'/g;
-  $json_string =~ s/\"/\'/g;
-  my $project_info = eval $json_string;
-  die "ERROR eval'ing munged JSON string ||$json_string||: $@\n"
-    if ($@);
-  die "ERROR empty value after eval'ing JSON string ||$json_string||\n"
-    unless $project_info;
-  return $project_info;
-}
-
 1;
diff --git a/solr/build.xml b/solr/build.xml
index 3b43730..00ad895 100644
--- a/solr/build.xml
+++ b/solr/build.xml
@@ -464,7 +464,7 @@
 
     <build-changes changes.src.file="${src.export.dir}/solr/CHANGES.txt"
                    changes.target.dir="${src.export.dir}/solr/docs/changes"
-                   changes.product="SOLR"/>
+                   changes.product="solr"/>
 
     <tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
       <tarfileset dir="${src.export.dir}/lucene"
@@ -604,7 +604,7 @@
   </target>
 
   <target name="changes-to-html" depends="define-lucene-javadoc-url">
-    <build-changes changes.product="SOLR"/>
+    <build-changes changes.product="solr"/>
   </target>
  
   <target name="sign-artifacts">


[lucene] 02/19: Add version 6.2.2

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 595745b72f0191e2bb43b860c9b6afc3b99f127e
Author: Shalin Shekhar Mangar <sh...@apache.org>
AuthorDate: Wed Sep 21 02:30:30 2016 +0530

    Add version 6.2.2
---
 lucene/CHANGES.txt                                      |  3 +++
 .../core/src/java/org/apache/lucene/util/Version.java   | 11 +++++++++--
 lucene/version.properties                               |  2 +-
 solr/CHANGES.txt                                        | 17 +++++++++++++++++
 solr/example/example-DIH/solr/db/conf/solrconfig.xml    |  2 +-
 solr/example/example-DIH/solr/mail/conf/solrconfig.xml  |  2 +-
 solr/example/example-DIH/solr/rss/conf/solrconfig.xml   |  2 +-
 solr/example/example-DIH/solr/solr/conf/solrconfig.xml  |  2 +-
 solr/example/example-DIH/solr/tika/conf/solrconfig.xml  |  2 +-
 solr/example/files/conf/solrconfig.xml                  |  2 +-
 .../solr/configsets/basic_configs/conf/solrconfig.xml   |  2 +-
 .../data_driven_schema_configs/conf/solrconfig.xml      |  2 +-
 .../sample_techproducts_configs/conf/solrconfig.xml     |  2 +-
 13 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 1ba7b7e..7c6d82e 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -3,6 +3,9 @@ Lucene Change Log
 For more information on past and future Lucene versions, please see:
 http://s.apache.org/luceneversions
 
+======================= Lucene 6.2.2 =======================
+(No Changes)
+
 ======================= Lucene 6.2.1 =======================
 
 API Changes
diff --git a/lucene/core/src/java/org/apache/lucene/util/Version.java b/lucene/core/src/java/org/apache/lucene/util/Version.java
index e3024aa..1a58ffe 100644
--- a/lucene/core/src/java/org/apache/lucene/util/Version.java
+++ b/lucene/core/src/java/org/apache/lucene/util/Version.java
@@ -152,11 +152,18 @@ public final class Version {
 
   /**
    * Match settings and bugs in Lucene's 6.2.1 release.
+   * @deprecated (6.2.2) Use latest
+   */
+  @Deprecated
+  public static final Version LUCENE_6_2_1 = new Version(6, 2, 1);
+
+  /**
+   * Match settings and bugs in Lucene's 6.2.2 release.
    * <p>
    * Use this to get the latest &amp; greatest settings, bug
    * fixes, etc, for Lucene.
    */
-  public static final Version LUCENE_6_2_1 = new Version(6, 2, 1);
+  public static final Version LUCENE_6_2_2 = new Version(6, 2, 2);
 
   // To add a new version:
   //  * Only add above this comment
@@ -177,7 +184,7 @@ public final class Version {
    * some defaults may have changed and may break functionality 
    * in your application.
    */
-  public static final Version LATEST = LUCENE_6_2_1;
+  public static final Version LATEST = LUCENE_6_2_2;
 
   /**
    * Constant for backwards compatibility.
diff --git a/lucene/version.properties b/lucene/version.properties
index b9d9873..0a5d3a5 100644
--- a/lucene/version.properties
+++ b/lucene/version.properties
@@ -2,7 +2,7 @@
 
 # RELEASE MANAGER must change this file after creating a release and
 # enter new base version (format "x.y.z", no prefix/appendix): 
-version.base=6.2.1
+version.base=6.2.2
 
 # Other version property defaults, don't change:
 version.suffix=SNAPSHOT
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 66f7e68..4c830bc 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -17,6 +17,23 @@ servlet container in the directory named "example".
 See the Quick Start guide at http://lucene.apache.org/solr/quickstart.html
 
 
+==================  6.2.2 ==================
+
+Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
+
+Versions of Major Components
+---------------------
+Apache Tika 1.13
+Carrot2 3.12.0
+Velocity 1.7 and Velocity Tools 2.0
+Apache UIMA 2.3.1
+Apache ZooKeeper 3.4.6
+Jetty 9.3.8.v20160314
+
+
+(No Changes)
+
+
 ==================  6.2.1 ==================
 
 Bug Fixes
diff --git a/solr/example/example-DIH/solr/db/conf/solrconfig.xml b/solr/example/example-DIH/solr/db/conf/solrconfig.xml
index 195a31a..eca092d 100644
--- a/solr/example/example-DIH/solr/db/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/db/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in
diff --git a/solr/example/example-DIH/solr/mail/conf/solrconfig.xml b/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
index 49b5ac0..b7a3c9d 100644
--- a/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in
diff --git a/solr/example/example-DIH/solr/rss/conf/solrconfig.xml b/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
index f8b6b48..f9f86ec 100644
--- a/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in
diff --git a/solr/example/example-DIH/solr/solr/conf/solrconfig.xml b/solr/example/example-DIH/solr/solr/conf/solrconfig.xml
index bfbecfc..3a59798 100644
--- a/solr/example/example-DIH/solr/solr/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/solr/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in
diff --git a/solr/example/example-DIH/solr/tika/conf/solrconfig.xml b/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
index 0eaec05..1c8d52d 100644
--- a/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in
diff --git a/solr/example/files/conf/solrconfig.xml b/solr/example/files/conf/solrconfig.xml
index 08a78f7..5aedd65 100644
--- a/solr/example/files/conf/solrconfig.xml
+++ b/solr/example/files/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in
diff --git a/solr/server/solr/configsets/basic_configs/conf/solrconfig.xml b/solr/server/solr/configsets/basic_configs/conf/solrconfig.xml
index c083073..5908548 100644
--- a/solr/server/solr/configsets/basic_configs/conf/solrconfig.xml
+++ b/solr/server/solr/configsets/basic_configs/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in
diff --git a/solr/server/solr/configsets/data_driven_schema_configs/conf/solrconfig.xml b/solr/server/solr/configsets/data_driven_schema_configs/conf/solrconfig.xml
index cd83ea3..9c914ac 100644
--- a/solr/server/solr/configsets/data_driven_schema_configs/conf/solrconfig.xml
+++ b/solr/server/solr/configsets/data_driven_schema_configs/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in
diff --git a/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml b/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
index 14547ec..5829578 100644
--- a/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
+++ b/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
@@ -35,7 +35,7 @@
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
   -->
-  <luceneMatchVersion>6.2.1</luceneMatchVersion>
+  <luceneMatchVersion>6.2.2</luceneMatchVersion>
 
   <!-- <lib/> directives can be used to instruct Solr to load any Jars
        identified and use them to resolve any "plugins" specified in


[lucene] 06/19: LUCENE-7472: remove unused import

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 64ed2b6492f9d9218ab26550127c5c206f3e25b1
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Tue Oct 4 16:24:11 2016 -0400

    LUCENE-7472: remove unused import
---
 .../org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java     | 1 -
 1 file changed, 1 deletion(-)

diff --git a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java
index 2b48930..a57daa4 100644
--- a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java
+++ b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.java
@@ -27,7 +27,6 @@ import org.apache.lucene.search.BoostQuery;
 import org.apache.lucene.search.MultiPhraseQuery;
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.Query;
-import org.apache.lucene.search.TermQuery;
 
 /**
  * A QueryParser which constructs queries to search multiple fields.


[lucene] 12/19: LUCENE-7543: fixed canonical URL in comment

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 819bea1fdf74aa91f1ef43c7a2ba47fe2f0992c7
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Mon Nov 21 18:25:22 2016 -0500

    LUCENE-7543: fixed canonical URL in comment
---
 dev-tools/doap/lucene.rdf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dev-tools/doap/lucene.rdf b/dev-tools/doap/lucene.rdf
index b6643ba..d1293a4 100644
--- a/dev-tools/doap/lucene.rdf
+++ b/dev-tools/doap/lucene.rdf
@@ -23,7 +23,7 @@
          xmlns:asfext="http://projects.apache.org/ns/asfext#"
          xmlns:foaf="http://xmlns.com/foaf/0.1/">
 <!--
-  This file's canonical URL is: http://lucene.apache.org/lucene/doap.rdf
+  This file's canonical URL is: http://lucene.apache.org/core/doap.rdf
 
   Note that the canonical URL may redirect to other non-canonical locations.
 -->


[lucene] 18/19: LUCENE-7793: smokeTestRelease.py should run documentation-lint

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 7cbd99b4d843b708eab7d02a277a1e230bb0e5bc
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Fri Apr 28 09:58:02 2017 -0400

    LUCENE-7793: smokeTestRelease.py should run documentation-lint
---
 dev-tools/scripts/smokeTestRelease.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/dev-tools/scripts/smokeTestRelease.py b/dev-tools/scripts/smokeTestRelease.py
index 83746de..6282226 100644
--- a/dev-tools/scripts/smokeTestRelease.py
+++ b/dev-tools/scripts/smokeTestRelease.py
@@ -707,8 +707,10 @@ def verifyUnpacked(java, project, artifact, unpackPath, gitRevision, version, te
         print('      %s' % line.strip())
       raise RuntimeError('source release has WARs...')
 
-    print('    run "ant validate"')
-    java.run_java8('ant validate', '%s/validate.log' % unpackPath)
+    # Can't run documentation-lint in lucene src, because dev-tools is missing
+    validateCmd = 'ant validate' if project == 'lucene' else 'ant validate documentation-lint';
+    print('    run "%s"' % validateCmd)
+    java.run_java8(validateCmd, '%s/validate.log' % unpackPath)
 
     if project == 'lucene':
       print("    run tests w/ Java 8 and testArgs='%s'..." % testArgs)


[lucene] 15/19: LUCENE-7542: Remove debug printing of parsed versions

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit a01504749fefd648e623b742483c175c9a57410e
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Wed Nov 30 14:04:58 2016 -0500

    LUCENE-7542: Remove debug printing of parsed versions
---
 dev-tools/scripts/smokeTestRelease.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/dev-tools/scripts/smokeTestRelease.py b/dev-tools/scripts/smokeTestRelease.py
index 3def8fc..83746de 100644
--- a/dev-tools/scripts/smokeTestRelease.py
+++ b/dev-tools/scripts/smokeTestRelease.py
@@ -497,7 +497,6 @@ def versionToTuple(version, name):
     versionTuple = versionTuple[:-2] + ('100',)
   elif versionTuple[-1].lower()[:2] == 'rc':
     versionTuple = versionTuple[:-2] + (versionTuple[-1][2:],)
-  print('%s: %s' % (version, versionTuple))
   return versionTuple
 
 


[lucene] 01/19: fix RangeField tests so they use actual ranges, not just 0 ranges

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 2b057ae3e68a2278673f3a9dc57a7934c520056f
Author: Nicholas Knize <nk...@gmail.com>
AuthorDate: Thu Sep 15 11:29:57 2016 -0500

    fix RangeField tests so they use actual ranges, not just 0 ranges
---
 .../lucene/search/TestDoubleRangeFieldQueries.java | 34 ++++++++++++----------
 .../lucene/search/TestFloatRangeFieldQueries.java  | 34 ++++++++++++----------
 .../lucene/search/TestIntRangeFieldQueries.java    | 34 ++++++++++++----------
 .../lucene/search/TestLongRangeFieldQueries.java   | 34 ++++++++++++----------
 4 files changed, 76 insertions(+), 60 deletions(-)

diff --git a/lucene/sandbox/src/test/org/apache/lucene/search/TestDoubleRangeFieldQueries.java b/lucene/sandbox/src/test/org/apache/lucene/search/TestDoubleRangeFieldQueries.java
index 26b8b99..ad7e6b1 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/search/TestDoubleRangeFieldQueries.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/search/TestDoubleRangeFieldQueries.java
@@ -43,11 +43,13 @@ public class TestDoubleRangeFieldQueries extends BaseRangeFieldQueryTestCase {
     double[] min = new double[dimensions];
     double[] max = new double[dimensions];
 
+    double minV, maxV;
     for (int d=0; d<dimensions; ++d) {
-      min[d] = nextDoubleInternal();
-      max[d] = nextDoubleInternal();
+      minV = nextDoubleInternal();
+      maxV = nextDoubleInternal();
+      min[d] = Math.min(minV, maxV);
+      max[d] = Math.max(minV, maxV);
     }
-
     return new DoubleRange(min, max);
   }
 
@@ -140,16 +142,8 @@ public class TestDoubleRangeFieldQueries extends BaseRangeFieldQueryTestCase {
       assert min != null && max != null && min.length > 0 && max.length > 0
           : "test box: min/max cannot be null or empty";
       assert min.length == max.length : "test box: min/max length do not agree";
-      this.min = new double[min.length];
-      this.max = new double[max.length];
-      for (int d=0; d<min.length; ++d) {
-        if (min[d] > max[d]) {
-          // swap if max < min:
-          double temp = min[d];
-          min[d] = max[d];
-          max[d] = temp;
-        }
-      }
+      this.min = min;
+      this.max = max;
     }
 
     @Override
@@ -164,7 +158,12 @@ public class TestDoubleRangeFieldQueries extends BaseRangeFieldQueryTestCase {
 
     @Override
     protected void setMin(int dim, Object val) {
-      min[dim] = (Double)val;
+      double v = (Double)val;
+      if (min[dim] < v) {
+        max[dim] = v;
+      } else {
+        min[dim] = v;
+      }
     }
 
     @Override
@@ -174,7 +173,12 @@ public class TestDoubleRangeFieldQueries extends BaseRangeFieldQueryTestCase {
 
     @Override
     protected void setMax(int dim, Object val) {
-      max[dim] = (Double)val;
+      double v = (Double)val;
+      if (max[dim] > v) {
+        min[dim] = v;
+      } else {
+        max[dim] = v;
+      }
     }
 
     @Override
diff --git a/lucene/sandbox/src/test/org/apache/lucene/search/TestFloatRangeFieldQueries.java b/lucene/sandbox/src/test/org/apache/lucene/search/TestFloatRangeFieldQueries.java
index c5a95d5..1980782 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/search/TestFloatRangeFieldQueries.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/search/TestFloatRangeFieldQueries.java
@@ -43,11 +43,13 @@ public class TestFloatRangeFieldQueries extends BaseRangeFieldQueryTestCase {
     float[] min = new float[dimensions];
     float[] max = new float[dimensions];
 
+    float minV, maxV;
     for (int d=0; d<dimensions; ++d) {
-      min[d] = nextFloatInternal();
-      max[d] = nextFloatInternal();
+      minV = nextFloatInternal();
+      maxV = nextFloatInternal();
+      min[d] = Math.min(minV, maxV);
+      max[d] = Math.max(minV, maxV);
     }
-
     return new FloatRange(min, max);
   }
 
@@ -140,16 +142,8 @@ public class TestFloatRangeFieldQueries extends BaseRangeFieldQueryTestCase {
       assert min != null && max != null && min.length > 0 && max.length > 0
           : "test box: min/max cannot be null or empty";
       assert min.length == max.length : "test box: min/max length do not agree";
-      this.min = new float[min.length];
-      this.max = new float[max.length];
-      for (int d=0; d<min.length; ++d) {
-        if (min[d] > max[d]) {
-          // swap if max < min:
-          float temp = min[d];
-          min[d] = max[d];
-          max[d] = temp;
-        }
-      }
+      this.min = min;
+      this.max = max;
     }
 
     @Override
@@ -164,7 +158,12 @@ public class TestFloatRangeFieldQueries extends BaseRangeFieldQueryTestCase {
 
     @Override
     protected void setMin(int dim, Object val) {
-      min[dim] = (Float)val;
+      float v = (Float)val;
+      if (min[dim] < v) {
+        max[dim] = v;
+      } else {
+        min[dim] = v;
+      }
     }
 
     @Override
@@ -174,7 +173,12 @@ public class TestFloatRangeFieldQueries extends BaseRangeFieldQueryTestCase {
 
     @Override
     protected void setMax(int dim, Object val) {
-      max[dim] = (Float)val;
+      float v = (Float)val;
+      if (max[dim] > v) {
+        min[dim] = v;
+      } else {
+        max[dim] = v;
+      }
     }
 
     @Override
diff --git a/lucene/sandbox/src/test/org/apache/lucene/search/TestIntRangeFieldQueries.java b/lucene/sandbox/src/test/org/apache/lucene/search/TestIntRangeFieldQueries.java
index 6ec8def..64da229 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/search/TestIntRangeFieldQueries.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/search/TestIntRangeFieldQueries.java
@@ -43,11 +43,13 @@ public class TestIntRangeFieldQueries extends BaseRangeFieldQueryTestCase {
     int[] min = new int[dimensions];
     int[] max = new int[dimensions];
 
+    int minV, maxV;
     for (int d=0; d<dimensions; ++d) {
-      min[d] = nextIntInternal();
-      max[d] = nextIntInternal();
+      minV = nextIntInternal();
+      maxV = nextIntInternal();
+      min[d] = Math.min(minV, maxV);
+      max[d] = Math.max(minV, maxV);
     }
-
     return new IntRange(min, max);
   }
 
@@ -140,16 +142,8 @@ public class TestIntRangeFieldQueries extends BaseRangeFieldQueryTestCase {
       assert min != null && max != null && min.length > 0 && max.length > 0
           : "test box: min/max cannot be null or empty";
       assert min.length == max.length : "test box: min/max length do not agree";
-      this.min = new int[min.length];
-      this.max = new int[max.length];
-      for (int d=0; d<min.length; ++d) {
-        if (min[d] > max[d]) {
-          // swap if max < min:
-          int temp = min[d];
-          min[d] = max[d];
-          max[d] = temp;
-        }
-      }
+      this.min = min;
+      this.max = max;
     }
 
     @Override
@@ -164,7 +158,12 @@ public class TestIntRangeFieldQueries extends BaseRangeFieldQueryTestCase {
 
     @Override
     protected void setMin(int dim, Object val) {
-      min[dim] = (Integer)val;
+      int v = (Integer)val;
+      if (min[dim] < v) {
+        max[dim] = v;
+      } else {
+        min[dim] = v;
+      }
     }
 
     @Override
@@ -174,7 +173,12 @@ public class TestIntRangeFieldQueries extends BaseRangeFieldQueryTestCase {
 
     @Override
     protected void setMax(int dim, Object val) {
-      max[dim] = (Integer)val;
+      int v = (Integer)val;
+      if (max[dim] > v) {
+        min[dim] = v;
+      } else {
+        max[dim] = v;
+      }
     }
 
     @Override
diff --git a/lucene/sandbox/src/test/org/apache/lucene/search/TestLongRangeFieldQueries.java b/lucene/sandbox/src/test/org/apache/lucene/search/TestLongRangeFieldQueries.java
index 558609b..0f947ff 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/search/TestLongRangeFieldQueries.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/search/TestLongRangeFieldQueries.java
@@ -43,11 +43,13 @@ public class TestLongRangeFieldQueries extends BaseRangeFieldQueryTestCase {
     long[] min = new long[dimensions];
     long[] max = new long[dimensions];
 
+    long minV, maxV;
     for (int d=0; d<dimensions; ++d) {
-      min[d] = nextLongInternal();
-      max[d] = nextLongInternal();
+      minV = nextLongInternal();
+      maxV = nextLongInternal();
+      min[d] = Math.min(minV, maxV);
+      max[d] = Math.max(minV, maxV);
     }
-
     return new LongRange(min, max);
   }
 
@@ -140,16 +142,8 @@ public class TestLongRangeFieldQueries extends BaseRangeFieldQueryTestCase {
       assert min != null && max != null && min.length > 0 && max.length > 0
           : "test box: min/max cannot be null or empty";
       assert min.length == max.length : "test box: min/max length do not agree";
-      this.min = new long[min.length];
-      this.max = new long[max.length];
-      for (int d=0; d<min.length; ++d) {
-        if (min[d] > max[d]) {
-          // swap if max < min:
-          long temp = min[d];
-          min[d] = max[d];
-          max[d] = temp;
-        }
-      }
+      this.min = min;
+      this.max = max;
     }
 
     @Override
@@ -164,7 +158,12 @@ public class TestLongRangeFieldQueries extends BaseRangeFieldQueryTestCase {
 
     @Override
     protected void setMin(int dim, Object val) {
-      min[dim] = (Long)val;
+      long v = (Long)val;
+      if (min[dim] < v) {
+        max[dim] = v;
+      } else {
+        min[dim] = v;
+      }
     }
 
     @Override
@@ -174,7 +173,12 @@ public class TestLongRangeFieldQueries extends BaseRangeFieldQueryTestCase {
 
     @Override
     protected void setMax(int dim, Object val) {
-      max[dim] = (Long)val;
+      long v = (Long)val;
+      if (max[dim] > v) {
+        min[dim] = v;
+      } else {
+        max[dim] = v;
+      }
     }
 
     @Override


[lucene] 14/19: LUCENE-7543: Update dev-tools/README.txt to include new dev-tools/ directories including doap/; add missing 1.4.1 and 4.9.1 release notes to Solr's CHANGES.txt; fix names of 3.6.1, 3.6.2, 4.0-ALPHA and 4.0-BETA releases in Solr's DOAP file to refer to solr instead of lucene.

Posted by dw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_6_2
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit c3dad251f49ca10378ad70759bfb65224cf27fec
Author: Steve Rowe <sa...@apache.org>
AuthorDate: Tue Nov 22 11:55:00 2016 -0500

    LUCENE-7543: Update dev-tools/README.txt to include new dev-tools/ directories including doap/; add missing 1.4.1 and 4.9.1 release notes to Solr's CHANGES.txt; fix names of 3.6.1, 3.6.2, 4.0-ALPHA and 4.0-BETA releases in Solr's DOAP file to refer to solr instead of lucene.
---
 dev-tools/README.txt    |  11 ++--
 dev-tools/doap/solr.rdf |   8 +--
 solr/CHANGES.txt        | 141 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 152 insertions(+), 8 deletions(-)

diff --git a/dev-tools/README.txt b/dev-tools/README.txt
index 0bce328..404ce8b 100644
--- a/dev-tools/README.txt
+++ b/dev-tools/README.txt
@@ -6,7 +6,10 @@ as to the usefulness of the tools.
 Description of dev-tools/ contents:
 
 ./size-estimator-lucene-solr.xls -- Spreadsheet for estimating memory and disk usage in Lucene/Solr
-./eclipse -- Used to generate project descriptors for the Eclipse IDE.
-./idea -- Similar to Eclipse, but for IntelliJ's IDEA IDE.
-./maven -- Mavenizes the Lucene/Solr packages
-./scripts -- Odds and ends for building releases, etc.
+./doap/     -- Lucene and Solr project descriptors in DOAP RDF format.
+./eclipse/  -- Used to generate project descriptors for the Eclipse IDE.
+./git/      -- Git documentation and resources.
+./idea/     -- Used to generate project descriptors for IntelliJ's IDEA IDE.
+./maven/    -- Mavenizes the Lucene/Solr packages
+./netbeans/ -- Used to generate project descriptors for the Netbeans IDE.
+./scripts/  -- Odds and ends for building releases, etc.
diff --git a/dev-tools/doap/solr.rdf b/dev-tools/doap/solr.rdf
index cc729dc..95a792d 100644
--- a/dev-tools/doap/solr.rdf
+++ b/dev-tools/doap/solr.rdf
@@ -362,28 +362,28 @@
     </release>
     <release>
       <Version>
-        <name>lucene-4.0-BETA</name>
+        <name>solr-4.0-BETA</name>
         <created>2012-08-13</created>
         <revision>4.0-BETA</revision>
       </Version>
     </release>
     <release>
       <Version>
-        <name>lucene-4.0-ALPHA</name>
+        <name>solr-4.0-ALPHA</name>
         <created>2012-07-03</created>
         <revision>4.0-ALPHA</revision>
       </Version>
     </release>
     <release>
       <Version>
-        <name>lucene-3.6.2</name>
+        <name>solr-3.6.2</name>
         <created>2012-12-25</created>
         <revision>3.6.2</revision>
       </Version>
     </release>
     <release>
       <Version>
-        <name>lucene-3.6.1</name>
+        <name>solr-3.6.1</name>
         <created>2012-07-22</created>
         <revision>3.6.1</revision>
       </Version>
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 4c830bc..68d2075 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -5003,6 +5003,31 @@ Other Changes
 * SOLR-6391: Improve message for CREATECOLLECTION failure due to missing
   numShards (Anshum Gupta)
 
+==================  4.9.1 ==================
+
+Versions of Major Components
+---------------------
+Apache Tika 1.5 (with upgraded Apache POI 3.10.1)
+Carrot2 3.9.0
+Velocity 1.7 and Velocity Tools 2.0
+Apache UIMA 2.3.1
+Apache ZooKeeper 3.4.6
+
+Detailed Change List
+----------------------
+
+Other Changes
+---------------------
+
+* SOLR-6503: Removed support for parsing netcdf files in Solr Cell because
+  of license issues. If you need support for this format, download the parser
+  JAR yourself (version 4.2) and add it to contrib/extraction/lib folder:
+  http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/
+  (Uwe Schindler)
+
+* SOLR-6388: Force upgrade of Apache POI dependency in Solr Cell to version
+  3.10.1 to fix CVE-2014-3529 and CVE-2014-3574.  (Uwe Schindler)
+
 ==================  4.9.0 ==================
 
 Versions of Major Components
@@ -11390,6 +11415,122 @@ Documentation
 * SOLR-1792: Documented peculiar behavior of TestHarness.LocalRequestFactory
   (hossman)
 
+================== Release 1.4.1 ==================
+Release Date:  See http://lucene.apache.org/solr for the official release date.
+
+Upgrading from Solr 1.4
+-----------------------
+
+This is a bug fix release - no changes are required when upgrading from Solr 1.4.
+However, a reindex is needed for some of the analysis fixes to take effect.
+
+Versions of Major Components
+----------------------------
+Apache Lucene 2.9.3
+Apache Tika 0.4
+Carrot2 3.1.0
+
+Lucene Information
+----------------
+
+Since Solr is built on top of Lucene, many people add customizations to Solr
+that are dependent on Lucene.  Please see http://lucene.apache.org/java/2_9_3/,
+especially http://lucene.apache.org/java/2_9_3/changes/Changes.html for more
+information on the version of Lucene used in Solr.
+
+Bug Fixes
+----------------------
+
+* SOLR-1934: Upgrade to Apache Lucene 2.9.3 to obtain several bug
+  fixes from the previous 2.9.1.  See the Lucene 2.9.3 release notes
+  for details.  (hossman, Mark Miller)
+
+* SOLR-1432: Make the new ValueSource.getValues(context,reader) delegate
+  to the original ValueSource.getValues(reader) so custom sources
+  will work. (yonik)
+
+* SOLR-1572: FastLRUCache correctly implemented the LRU policy only
+  for the first 2B accesses. (yonik)
+
+* SOLR-1595: StreamingUpdateSolrServer used the platform default character
+  set when streaming updates, rather than using UTF-8 as the HTTP headers
+  indicated, leading to an encoding mismatch. (hossman, yonik)
+
+* SOLR-1660: CapitalizationFilter crashes if you use the maxWordCountOption
+  (Robert Muir via shalin)
+
+* SOLR-1662: Added Javadocs in BufferedTokenStream and fixed incorrect cloning
+  in TestBufferedTokenStream (Robert Muir, Uwe Schindler via shalin)
+
+* SOLR-1711: SolrJ - StreamingUpdateSolrServer had a race condition that
+  could halt the streaming of documents. The original patch to fix this
+  (never officially released) introduced another hanging bug due to
+  connections not being released.  (Attila Babo, Erik Hetzner via yonik)
+
+* SOLR-1748, SOLR-1747, SOLR-1746, SOLR-1745, SOLR-1744: Streams and Readers
+  retrieved from ContentStreams are not closed in various places, resulting
+  in file descriptor leaks.
+  (Christoff Brill, Mark Miller)
+
+* SOLR-1580: Solr Configuration ignores 'mergeFactor' parameter, always
+  uses Lucene default. (Lance Norskog via Mark Miller)
+
+* SOLR-1777: fieldTypes with sortMissingLast=true or sortMissingFirst=true can
+  result in incorrectly sorted results.  (yonik)
+
+* SOLR-1797: fix ConcurrentModificationException and potential memory
+  leaks in ResourceLoader. (yonik)
+
+* SOLR-1798: Small memory leak (~100 bytes) in fastLRUCache for every
+  commit. (yonik)
+
+* SOLR-1522: Show proper message if <script> tag is missing for DIH
+  ScriptTransformer (noble)
+
+* SOLR-1538: Reordering of object allocations in ConcurrentLRUCache to eliminate
+  (an extremely small) potential for deadlock.
+  (gabriele renzi via hossman)
+
+* SOLR-1558: QueryElevationComponent only works if the uniqueKey field is
+  implemented using StrField.  In previous versions of Solr no warning or
+  error would be generated if you attempted to use QueryElevationComponent,
+  it would just fail in unexpected ways.  This has been changed so that it
+  will fail with a clear error message on initialization. (hossman)
+
+* SOLR-1563: Binary fields, including trie-based numeric fields, caused null
+  pointer exceptions in the luke request handler. (yonik)
+
+* SOLR-1579: Fixes to XML escaping in stats.jsp
+  (David Bowen and hossman)
+
+* SOLR-1582: copyField was ignored for BinaryField types (gsingers)
+
+* SOLR-1596: A rollback operation followed by the shutdown of Solr
+  or the close of a core resulted in a warning:
+  "SEVERE: SolrIndexWriter was not closed prior to finalize()" although
+  there were no other consequences. (yonik)
+
+* SOLR-1651: Fixed Incorrect dataimport handler package name in SolrResourceLoader
+  (Akshay Ukey via shalin)
+
+* SOLR-1936: The JSON response format needed to escape unicode code point
+  U+2028 - 'LINE SEPARATOR' (Robert Hofstra, yonik)
+
+* SOLR-1852: Fix WordDelimiterFilterFactory bug where position increments
+  were not being applied properly to subwords.  (Peter Wolanin via Robert Muir)
+
+* SOLR-1706: fixed WordDelimiterFilter for certain combinations of options
+  where it would output incorrect tokens. (Robert Muir, Chris Male)
+
+* SOLR-1948: PatternTokenizerFactory should use parent's args (koji)
+
+* SOLR-1870: Indexing documents using the 'javabin' format no longer
+  fails with a ClassCastException whenSolrInputDocuments contain field
+  values which are Collections or other classes that implement
+  Iterable. (noble, hossman)
+
+* SOLR-1769 Solr 1.4 Replication - Repeater throwing NullPointerException (noble)
+
 ================== Release 1.4.0 ==================
 Release Date:  See http://lucene.apache.org/solr for the official release date.