From c9c75810c229c2a1d54a05a6d79abd3c66f0b437 Mon Sep 17 00:00:00 2001 From: Erick Erickson Date: Fri, 21 Aug 2020 16:57:26 -0400 Subject: [PATCH] Revert "LUCENE-9433: Remove Ant support from trunk" This reverts commit 37cd17dc --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- README.md | 72 +- build.xml | 697 +++++ dev-tools/idea/.idea/ant.xml | 57 + dev-tools/idea/.idea/libraries/Ivy.xml | 9 + lucene/BUILD.md | 81 +- lucene/CHANGES.txt | 2 - lucene/analysis/analysis-module-build.xml | 44 + lucene/analysis/build.xml | 172 ++ lucene/analysis/common/build.xml | 125 + lucene/analysis/common/ivy.xml | 21 + lucene/analysis/icu/build.xml | 118 + lucene/analysis/icu/ivy.xml | 28 + lucene/analysis/kuromoji/build.xml | 98 + lucene/analysis/kuromoji/ivy.xml | 37 + lucene/analysis/morfologik/build.xml | 40 + lucene/analysis/morfologik/ivy.xml | 31 + lucene/analysis/nori/build.xml | 84 + lucene/analysis/nori/ivy.xml | 33 + lucene/analysis/opennlp/build.xml | 118 + lucene/analysis/opennlp/ivy.xml | 28 + lucene/analysis/phonetic/build.xml | 35 + lucene/analysis/phonetic/ivy.xml | 28 + lucene/analysis/smartcn/build.xml | 34 + lucene/analysis/smartcn/ivy.xml | 21 + lucene/analysis/stempel/build.xml | 34 + lucene/analysis/stempel/ivy.xml | 21 + lucene/backward-codecs/build.xml | 26 + lucene/backward-codecs/ivy.xml | 21 + lucene/benchmark/build.xml | 289 ++ lucene/benchmark/ivy.xml | 32 + lucene/build.xml | 586 ++++ lucene/classification/build.xml | 55 + lucene/classification/ivy.xml | 21 + lucene/codecs/build.xml | 28 + lucene/codecs/ivy.xml | 21 + lucene/common-build.xml | 2605 +++++++++++++++++ lucene/core/build.xml | 235 ++ lucene/core/ivy.xml | 21 + lucene/default-nested-ivy-settings.xml | 56 + lucene/demo/build.xml | 61 + lucene/demo/ivy.xml | 21 + lucene/expressions/build.xml | 120 + lucene/expressions/ivy.xml | 30 + lucene/facet/build.xml | 47 + lucene/facet/ivy.xml | 27 + lucene/grouping/build.xml | 49 + lucene/grouping/ivy.xml | 21 + lucene/highlighter/build.xml | 55 + lucene/highlighter/ivy.xml | 21 + lucene/ivy-ignore-conflicts.properties | 14 + lucene/ivy-versions.properties | 334 +++ lucene/join/build.xml | 27 + lucene/join/ivy.xml | 21 + lucene/licenses/ant-1.8.2.jar.sha1 | 1 + lucene/licenses/ant-LICENSE-ASL.txt | 272 ++ lucene/licenses/ant-NOTICE.txt | 26 + lucene/licenses/ivy-2.4.0.jar.sha1 | 1 + lucene/licenses/ivy-LICENSE-ASL.txt | 258 ++ lucene/licenses/ivy-NOTICE.txt | 16 + lucene/luke/build.xml | 82 + lucene/luke/ivy.xml | 34 + lucene/memory/build.xml | 34 + lucene/memory/ivy.xml | 21 + lucene/misc/build.xml | 52 + lucene/misc/ivy.xml | 21 + lucene/module-build.xml | 721 +++++ lucene/monitor/build.xml | 53 + lucene/monitor/ivy.xml | 21 + lucene/queries/build.xml | 32 + lucene/queries/ivy.xml | 21 + lucene/queryparser/build.xml | 178 ++ lucene/queryparser/ivy.xml | 21 + lucene/queryparser/xmldtddocbuild.xml | 53 + lucene/replicator/build.xml | 53 + lucene/replicator/ivy.xml | 47 + lucene/sandbox/build.xml | 26 + lucene/sandbox/ivy.xml | 21 + lucene/spatial-extras/build.xml | 62 + lucene/spatial-extras/ivy.xml | 40 + lucene/spatial3d/build.xml | 30 + lucene/spatial3d/ivy.xml | 21 + lucene/suggest/build.xml | 47 + lucene/suggest/ivy.xml | 21 + lucene/test-framework/build.xml | 82 + lucene/test-framework/ivy.xml | 33 + lucene/tools/build.xml | 64 + lucene/tools/custom-tasks.xml | 149 + lucene/tools/ivy.xml | 29 + lucene/tools/src/java/lucene-solr.antlib.xml | 27 + .../validation/ivyde/IvyNodeElement.java | 178 ++ .../ivyde/IvyNodeElementAdapter.java | 135 + lucene/top-level-ivy-settings.xml | 24 + solr/CHANGES.txt | 2 - solr/README.md | 28 +- solr/build.xml | 813 +++++ solr/common-build.xml | 551 ++++ solr/contrib/analysis-extras/build.xml | 92 + solr/contrib/analysis-extras/ivy.xml | 41 + solr/contrib/analytics/build.xml | 28 + solr/contrib/analytics/ivy.xml | 29 + solr/contrib/clustering/build.xml | 28 + solr/contrib/clustering/ivy.xml | 41 + solr/contrib/contrib-build.xml | 57 + .../dataimporthandler-extras/build.xml | 96 + solr/contrib/dataimporthandler-extras/ivy.xml | 40 + solr/contrib/dataimporthandler/build.xml | 32 + solr/contrib/dataimporthandler/ivy.xml | 34 + solr/contrib/extraction/build.xml | 28 + solr/contrib/extraction/ivy.xml | 80 + .../jaegertracer-configurator/build.xml | 34 + .../contrib/jaegertracer-configurator/ivy.xml | 32 + solr/contrib/langid/build.xml | 102 + solr/contrib/langid/ivy.xml | 32 + solr/contrib/ltr/build.xml | 35 + solr/contrib/ltr/ivy.xml | 33 + solr/contrib/prometheus-exporter/build.xml | 64 + solr/contrib/prometheus-exporter/ivy.xml | 41 + solr/contrib/velocity/build.xml | 28 + solr/contrib/velocity/ivy.xml | 36 + solr/core/build.xml | 131 + solr/core/ivy.xml | 148 + solr/example/example-DIH/build.xml | 42 + solr/example/example-DIH/ivy.xml | 29 + solr/licenses/ant-1.8.2.jar.sha1 | 1 + solr/licenses/ant-LICENSE-ASL.txt | 272 ++ solr/licenses/ant-NOTICE.txt | 26 + solr/licenses/asciidoctor-ant-1.6.2.jar.sha1 | 1 + solr/licenses/asciidoctor-ant-LICENSE-ASL.txt | 202 ++ solr/licenses/asciidoctor-ant-NOTICE.txt | 5 + solr/licenses/junit4-ant-2.7.6.jar.sha1 | 1 + solr/licenses/junit4-ant-LICENSE-ASL.txt | 202 ++ solr/licenses/junit4-ant-NOTICE.txt | 12 + solr/server/build.xml | 54 + solr/server/ivy.xml | 74 + solr/solr-ref-guide/README.adoc | 20 +- solr/solr-ref-guide/build.gradle | 2 + solr/solr-ref-guide/build.xml | 305 ++ solr/solr-ref-guide/ivy.xml | 35 + .../src/meta-docs/asciidoc-syntax.adoc | 2 +- solr/solr-ref-guide/src/meta-docs/jekyll.adoc | 6 +- .../solr-ref-guide/src/meta-docs/publish.adoc | 4 +- .../tools/CustomizedAsciidoctorAntTask.java | 34 + .../tools/asciidoctor-antlib.xml | 22 + solr/solrj/build.xml | 88 + solr/solrj/ivy.xml | 77 + solr/test-framework/build.xml | 121 + solr/test-framework/ivy.xml | 42 + solr/webapp/build.xml | 69 + 149 files changed, 14322 insertions(+), 83 deletions(-) create mode 100755 build.xml create mode 100644 dev-tools/idea/.idea/ant.xml create mode 100644 dev-tools/idea/.idea/libraries/Ivy.xml create mode 100644 lucene/analysis/analysis-module-build.xml create mode 100644 lucene/analysis/build.xml create mode 100644 lucene/analysis/common/build.xml create mode 100644 lucene/analysis/common/ivy.xml create mode 100644 lucene/analysis/icu/build.xml create mode 100644 lucene/analysis/icu/ivy.xml create mode 100644 lucene/analysis/kuromoji/build.xml create mode 100644 lucene/analysis/kuromoji/ivy.xml create mode 100644 lucene/analysis/morfologik/build.xml create mode 100644 lucene/analysis/morfologik/ivy.xml create mode 100644 lucene/analysis/nori/build.xml create mode 100644 lucene/analysis/nori/ivy.xml create mode 100644 lucene/analysis/opennlp/build.xml create mode 100644 lucene/analysis/opennlp/ivy.xml create mode 100644 lucene/analysis/phonetic/build.xml create mode 100644 lucene/analysis/phonetic/ivy.xml create mode 100644 lucene/analysis/smartcn/build.xml create mode 100644 lucene/analysis/smartcn/ivy.xml create mode 100644 lucene/analysis/stempel/build.xml create mode 100644 lucene/analysis/stempel/ivy.xml create mode 100644 lucene/backward-codecs/build.xml create mode 100644 lucene/backward-codecs/ivy.xml create mode 100644 lucene/benchmark/build.xml create mode 100644 lucene/benchmark/ivy.xml create mode 100644 lucene/build.xml create mode 100644 lucene/classification/build.xml create mode 100644 lucene/classification/ivy.xml create mode 100644 lucene/codecs/build.xml create mode 100644 lucene/codecs/ivy.xml create mode 100644 lucene/common-build.xml create mode 100644 lucene/core/build.xml create mode 100644 lucene/core/ivy.xml create mode 100644 lucene/default-nested-ivy-settings.xml create mode 100644 lucene/demo/build.xml create mode 100644 lucene/demo/ivy.xml create mode 100644 lucene/expressions/build.xml create mode 100644 lucene/expressions/ivy.xml create mode 100644 lucene/facet/build.xml create mode 100644 lucene/facet/ivy.xml create mode 100644 lucene/grouping/build.xml create mode 100644 lucene/grouping/ivy.xml create mode 100644 lucene/highlighter/build.xml create mode 100644 lucene/highlighter/ivy.xml create mode 100644 lucene/ivy-ignore-conflicts.properties create mode 100644 lucene/ivy-versions.properties create mode 100644 lucene/join/build.xml create mode 100644 lucene/join/ivy.xml create mode 100644 lucene/licenses/ant-1.8.2.jar.sha1 create mode 100644 lucene/licenses/ant-LICENSE-ASL.txt create mode 100644 lucene/licenses/ant-NOTICE.txt create mode 100644 lucene/licenses/ivy-2.4.0.jar.sha1 create mode 100644 lucene/licenses/ivy-LICENSE-ASL.txt create mode 100644 lucene/licenses/ivy-NOTICE.txt create mode 100644 lucene/luke/build.xml create mode 100644 lucene/luke/ivy.xml create mode 100644 lucene/memory/build.xml create mode 100644 lucene/memory/ivy.xml create mode 100644 lucene/misc/build.xml create mode 100644 lucene/misc/ivy.xml create mode 100644 lucene/module-build.xml create mode 100644 lucene/monitor/build.xml create mode 100644 lucene/monitor/ivy.xml create mode 100644 lucene/queries/build.xml create mode 100644 lucene/queries/ivy.xml create mode 100644 lucene/queryparser/build.xml create mode 100644 lucene/queryparser/ivy.xml create mode 100644 lucene/queryparser/xmldtddocbuild.xml create mode 100644 lucene/replicator/build.xml create mode 100644 lucene/replicator/ivy.xml create mode 100644 lucene/sandbox/build.xml create mode 100644 lucene/sandbox/ivy.xml create mode 100644 lucene/spatial-extras/build.xml create mode 100644 lucene/spatial-extras/ivy.xml create mode 100644 lucene/spatial3d/build.xml create mode 100644 lucene/spatial3d/ivy.xml create mode 100644 lucene/suggest/build.xml create mode 100644 lucene/suggest/ivy.xml create mode 100644 lucene/test-framework/build.xml create mode 100644 lucene/test-framework/ivy.xml create mode 100644 lucene/tools/build.xml create mode 100644 lucene/tools/custom-tasks.xml create mode 100644 lucene/tools/ivy.xml create mode 100644 lucene/tools/src/java/lucene-solr.antlib.xml create mode 100644 lucene/tools/src/java/org/apache/lucene/validation/ivyde/IvyNodeElement.java create mode 100644 lucene/tools/src/java/org/apache/lucene/validation/ivyde/IvyNodeElementAdapter.java create mode 100644 lucene/top-level-ivy-settings.xml create mode 100644 solr/build.xml create mode 100644 solr/common-build.xml create mode 100644 solr/contrib/analysis-extras/build.xml create mode 100644 solr/contrib/analysis-extras/ivy.xml create mode 100644 solr/contrib/analytics/build.xml create mode 100644 solr/contrib/analytics/ivy.xml create mode 100644 solr/contrib/clustering/build.xml create mode 100644 solr/contrib/clustering/ivy.xml create mode 100644 solr/contrib/contrib-build.xml create mode 100644 solr/contrib/dataimporthandler-extras/build.xml create mode 100644 solr/contrib/dataimporthandler-extras/ivy.xml create mode 100644 solr/contrib/dataimporthandler/build.xml create mode 100644 solr/contrib/dataimporthandler/ivy.xml create mode 100644 solr/contrib/extraction/build.xml create mode 100644 solr/contrib/extraction/ivy.xml create mode 100644 solr/contrib/jaegertracer-configurator/build.xml create mode 100644 solr/contrib/jaegertracer-configurator/ivy.xml create mode 100644 solr/contrib/langid/build.xml create mode 100644 solr/contrib/langid/ivy.xml create mode 100644 solr/contrib/ltr/build.xml create mode 100644 solr/contrib/ltr/ivy.xml create mode 100644 solr/contrib/prometheus-exporter/build.xml create mode 100644 solr/contrib/prometheus-exporter/ivy.xml create mode 100644 solr/contrib/velocity/build.xml create mode 100644 solr/contrib/velocity/ivy.xml create mode 100644 solr/core/build.xml create mode 100644 solr/core/ivy.xml create mode 100644 solr/example/example-DIH/build.xml create mode 100644 solr/example/example-DIH/ivy.xml create mode 100644 solr/licenses/ant-1.8.2.jar.sha1 create mode 100644 solr/licenses/ant-LICENSE-ASL.txt create mode 100644 solr/licenses/ant-NOTICE.txt create mode 100644 solr/licenses/asciidoctor-ant-1.6.2.jar.sha1 create mode 100644 solr/licenses/asciidoctor-ant-LICENSE-ASL.txt create mode 100644 solr/licenses/asciidoctor-ant-NOTICE.txt create mode 100644 solr/licenses/junit4-ant-2.7.6.jar.sha1 create mode 100644 solr/licenses/junit4-ant-LICENSE-ASL.txt create mode 100644 solr/licenses/junit4-ant-NOTICE.txt create mode 100644 solr/server/build.xml create mode 100644 solr/server/ivy.xml create mode 100644 solr/solr-ref-guide/build.xml create mode 100644 solr/solr-ref-guide/ivy.xml create mode 100644 solr/solr-ref-guide/tools/CustomizedAsciidoctorAntTask.java create mode 100644 solr/solr-ref-guide/tools/asciidoctor-antlib.xml create mode 100644 solr/solrj/build.xml create mode 100644 solr/solrj/ivy.xml create mode 100644 solr/test-framework/build.xml create mode 100644 solr/test-framework/ivy.xml create mode 100644 solr/webapp/build.xml diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b08a1d887a3..9f2f786f816 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -38,6 +38,6 @@ Please review the following and check all that apply: - [ ] I have created a Jira issue and added the issue ID to my pull request title. - [ ] I have given Solr maintainers [access](https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork) to contribute to my PR branch. (optional but recommended) - [ ] I have developed this patch against the `master` branch. -- [ ] I have run `./gradlew check`. +- [ ] I have run `ant precommit` and the appropriate test suite. - [ ] I have added tests for my changes. - [ ] I have added documentation for the [Ref Guide](https://github.com/apache/lucene-solr/tree/master/solr/solr-ref-guide) (for Solr changes only). diff --git a/README.md b/README.md index e045c7c9d81..48121413029 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Apache Lucene is a high-performance, full featured text search engine library written in Java. -Apache Solr is an enterprise search platform written in Java and using Apache Lucene. +Apache Solr is an enterprise search platform written using Apache Lucene. Major features include full-text search, index replication and sharding, and result faceting and highlighting. @@ -40,30 +40,48 @@ comprehensive documentation, visit: (You do not need to do this if you downloaded a pre-built package) +### Building with Ant + +Lucene and Solr are built using [Apache Ant](http://ant.apache.org/). To build +Lucene and Solr, run: + +`ant compile` + +If you see an error about Ivy missing while invoking Ant (e.g., `.ant/lib does +not exist`), run `ant ivy-bootstrap` and retry. + +Sometimes you may face issues with Ivy (e.g., an incompletely downloaded artifact). +Cleaning up the Ivy cache and retrying is a workaround for most of such issues: + +`rm -rf ~/.ivy2/cache` + +The Solr server can then be packaged and prepared for startup by running the +following command from the `solr/` directory: + +`ant server` ### Building with Gradle -As of 9.0, Lucene/Solr uses [Gradle](https://gradle.org/) as the build -system. Ant build support has been removed. +There is ongoing work (see [LUCENE-9077](https://issues.apache.org/jira/browse/LUCENE-9077)) +to switch the legacy ant-based build system to [gradle](https://gradle.org/). +Please give it a try! + +At the moment of writing, the gradle build requires precisely Java 11 +(it may or may not work with newer Java versions). To build Lucene and Solr, run (`./` can be omitted on Windows): `./gradlew assemble` - -The command above packages a full distribution of Solr server; the +The command above also packages a full distribution of Solr server; the package can be located at: `solr/packaging/build/solr-*` Note that the gradle build does not create or copy binaries throughout the -source repository so you need to switch to the packaging output folder above; -the rest of the instructions below remain identical. The packaging directory -is rewritten on each build. - -For development, especially when you have created test indexes etc, use -the `./gradlew dev` task which will copy binaries to `./solr/packaging/build/dev` -but _only_ overwrite the binaries which will preserve your test setup. +source repository (like ant build does) so you need to switch to the +packaging output folder above; the rest of the instructions below remain +identical. ## Running Solr @@ -86,6 +104,16 @@ Common options are described in some detail in solr/README.txt. For an exhaustive treatment of options, run `bin/solr start -h` from the `solr/` directory. +## Development/IDEs + +Ant can be used to generate project files compatible with most common IDEs. +Run the ant command corresponding to your IDE of choice before attempting to +import Lucene/Solr. + +- *Eclipse* - `ant eclipse` (See [this](https://cwiki.apache.org/confluence/display/solr/HowToConfigureEclipse) for details) +- *IntelliJ* - `ant idea` (See [this](https://cwiki.apache.org/confluence/display/lucene/HowtoConfigureIntelliJ) for details) +- *Netbeans* - `ant netbeans` (See [this](https://cwiki.apache.org/confluence/display/lucene/HowtoConfigureNetbeans) for details) + ### Gradle build and IDE support - *IntelliJ* - IntelliJ idea can import the project out of the box. @@ -93,17 +121,23 @@ directory. - *Eclipse* - Not tested. - *Netbeans* - Not tested. +## Running Tests + +The standard test suite can be run with the command: + +`ant test` + +Like Solr itself, the test-running can be customized or tailored in a number or +ways. For an exhaustive discussion of the options available, run: + +`ant test-help` ### Gradle build and tests -`./gradlew assemble` will build a runnable Solr as noted above. +Run the following command to display an extensive help for running +tests with gradle: -`./gradlew check` will assemble Lucene/Solr and run all validation - tasks unit tests. - -`./gradlew help` will print a list of help commands for high-level tasks. One - of these is `helpAnt` that shows the gradle tasks corresponding to ant - targets you may be familiar with. +`./gradlew helpTests` ## Contributing diff --git a/build.xml b/build.xml new file mode 100755 index 00000000000..a1e8ccb4f2e --- /dev/null +++ b/build.xml @@ -0,0 +1,697 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SUCCESS: You must right-click your project and choose Refresh. + Your project must use a Java 11 JRE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +To complete IntelliJ IDEA setup, you must manually configure +File | Project Structure | Project | Project SDK. + +You won't have to do this in the future if you define property +$${idea.jdk}, e.g. in ~/lucene.build.properties, ~/build.properties +or lucene/build.properties, with a value consisting of the +following two XML attributes/values (adjust values according to +JDKs you have defined locally - see +File | Project Structure | Platform Settings | SDKs): + + idea.jdk = project-jdk-name="11" project-jdk-type="JavaSDK" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clover not enabled! + + + + + + + + + + + + + + + + + + + + + + You can find the merged Lucene/Solr Clover report in '${clover.report.dir}'. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java version "${java.version}" +${java.runtime.name} (${java.runtime.version}, ${java.vendor}) +${java.vm.name} (${java.vm.version}, ${java.vm.vendor}) +Test args: [${args}] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev-tools/idea/.idea/ant.xml b/dev-tools/idea/.idea/ant.xml new file mode 100644 index 00000000000..c27053859fc --- /dev/null +++ b/dev-tools/idea/.idea/ant.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev-tools/idea/.idea/libraries/Ivy.xml b/dev-tools/idea/.idea/libraries/Ivy.xml new file mode 100644 index 00000000000..798dc0f6375 --- /dev/null +++ b/dev-tools/idea/.idea/libraries/Ivy.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/lucene/BUILD.md b/lucene/BUILD.md index 9846ed74570..68102253d29 100644 --- a/lucene/BUILD.md +++ b/lucene/BUILD.md @@ -2,67 +2,78 @@ ## Basic steps: - 0. Install OpenJDK 11 (or greater) - 1. Download Lucene/Solr from Apache and unpack it - 2. Connect to the top-level of your installation (parent of the lucene top-level directory) + 0. Install OpenJDK 11 (or greater), Ant 1.8.2+, Ivy 2.2.0 + 1. Download Lucene from Apache and unpack it + 2. Connect to the top-level of your Lucene installation 3. Install JavaCC (optional) - 4. Run gradle + 4. Run ant -## Step 0) Set up your development environment (OpenJDK 11 or greater) +## Step 0) Set up your development environment (OpenJDK 11 or greater, Ant 1.8.2+, Ivy 2.2.0) We'll assume that you know how to get and set up the JDK - if you don't, then we suggest starting at https://www.oracle.com/java/ and learning more about Java, before returning to this README. Lucene runs with Java 11 and later. -Lucene uses [Gradle](https://gradle.org/) for build control; and includes Gradle wrapper script to download the correct version of it. +Like many Open Source java projects, Lucene uses Apache Ant for build +control. Specifically, you MUST use Ant version 1.8.2+. -NOTE: When Solr moves to a Top Level Project, it will no longer -be necessary to download Solr to build Lucene. You can track -progress at: https://issues.apache.org/jira/browse/SOLR-14497 +Ant is "kind of like make without make's wrinkles". Ant is +implemented in java and uses XML-based configuration files. You can +get it at: -NOTE: Lucene changed from Ant to Gradle as of release 9.0. Prior releases -still use Ant. + https://ant.apache.org -## Step 1) Download/Checkout Lucene source code +You'll need to download the Ant binary distribution. Install it +according to the instructions at: + + https://ant.apache.org/manual + +Finally, you'll need to install ivy into your ant lib folder +(~/.ant/lib). You can get it from http://ant.apache.org/ivy/. +If you skip this step, the Lucene build system will offer to do it +for you. + +## Step 1) Download Lucene from Apache We'll assume you already did this, or you wouldn't be reading this file. However, you might have received this file by some alternate route, or you might have an incomplete copy of the Lucene, so: Lucene -releases are available as part of Solr for download at: +releases are available for download at: - https://lucene.apache.org/solr/downloads.html - -See the note above for why it is necessary currently to download Solr + https://www.apache.org/dyn/closer.cgi/lucene/java/ Download either a zip or a tarred/gzipped version of the archive, and uncompress it into a directory of your choice. -Or you can directly checkout the source code from GitHub: +## Step 2) From the command line, change (cd) into the top-level directory of your Lucene installation - https://github.com/apache/lucene-solr +Lucene's top-level directory contains the build.xml file. By default, +you do not need to change any of the settings in this file, but you do +need to run ant from this location so it knows where to find build.xml. -## Step 2) From the command line, change (cd) into the top-level directory of your Lucene/Solr installation +If you would like to change settings you can do so by creating one +or more of the following files and placing your own property settings +in there: -The parent directory for both Lucene and Solr contains the base configuration -file for the combined build, as well as the "gradle wrapper" (gradlew) that -makes invocation of Gradle easier. By default, you do not need to change any of -the settings in this file, but you do need to run Gradle from this location so -it knows where to find the necessary configurations. + ~/lucene.build.properties + ~/build.properties + lucene-x.y/build.properties -The first time you run Gradle, it will create a file "gradle.properties" that -contains machine-specific settings. Normally you can use this file as-is, but it -can be modified if necessary. +The first property which is found in the order with which the files are +loaded becomes the property setting which is used by the Ant build +system. -## Step 4) Run Gradle +NOTE: the ~ character represents your user account home directory. -Assuming you can exectue "./gradlew help" should show you the main tasks that -can be executed to show help sub-topics. +## Step 4) Run ant -If you want to build Lucene independent of Solr, type: - ./gradlew -p lucene assemble +Assuming you have ant in your PATH and have set ANT_HOME to the +location of your ant installation, typing "ant" at the shell prompt +and command prompt should run ant. Ant will by default look for the +"build.xml" file in your current directory, and compile Lucene. -If you want to build the documentation, type "./gradlew buildSite". +If you want to build the documentation, type "ant documentation". For further information on Lucene, go to: @@ -75,3 +86,7 @@ Please join the Lucene-User mailing list by visiting this site: Please post suggestions, questions, corrections or additions to this document to the lucene-user mailing list. +This file was originally written by Steven J. Owens . +This file was modified by Jon S. Stevens . + +Copyright (c) 2001-2020 The Apache Software Foundation. All rights reserved. diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index c282824010e..a72a047a992 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -158,8 +158,6 @@ Other * LUCENE-9411: Fail complation on warnings, 9x gradle-only (Erick Erickson, Dawid Weiss) Deserves mention here as well as Lucene CHANGES.txt since it affects both. -* LUCENE-9433: Remove Ant support from trunk (Erick Erickson) - ======================= Lucene 8.7.0 ======================= API Changes diff --git a/lucene/analysis/analysis-module-build.xml b/lucene/analysis/analysis-module-build.xml new file mode 100644 index 00000000000..b6c88f77109 --- /dev/null +++ b/lucene/analysis/analysis-module-build.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/build.xml b/lucene/analysis/build.xml new file mode 100644 index 00000000000..6dc15007818 --- /dev/null +++ b/lucene/analysis/build.xml @@ -0,0 +1,172 @@ + + + + + + + + Additional Analyzers + - common: Additional Analyzers + - icu: Analyzers that use functionality from ICU + - kuromoji: Japanese Morphological Analyzer + - morfologik: Morfologik Stemmer + - nori: Korean Morphological Analyzer + - smartcn: Smart Analyzer for Simplified Chinese Text + - stempel: Algorithmic Stemmer for Polish + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/common/build.xml b/lucene/analysis/common/build.xml new file mode 100644 index 00000000000..21c5fda99a8 --- /dev/null +++ b/lucene/analysis/common/build.xml @@ -0,0 +1,125 @@ + + + + + + + + Analyzers for indexing content in different languages and domains. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/common/ivy.xml b/lucene/analysis/common/ivy.xml new file mode 100644 index 00000000000..9c5376bda40 --- /dev/null +++ b/lucene/analysis/common/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/analysis/icu/build.xml b/lucene/analysis/icu/build.xml new file mode 100644 index 00000000000..32ab34d561c --- /dev/null +++ b/lucene/analysis/icu/build.xml @@ -0,0 +1,118 @@ + + + + + + + + Analysis integration with ICU (International Components for Unicode). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Note that the gennorm2 and icupkg tools must be on your PATH. These tools +are part of the ICU4C package. See http://site.icu-project.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/icu/ivy.xml b/lucene/analysis/icu/ivy.xml new file mode 100644 index 00000000000..97b58f35a65 --- /dev/null +++ b/lucene/analysis/icu/ivy.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/lucene/analysis/kuromoji/build.xml b/lucene/analysis/kuromoji/build.xml new file mode 100644 index 00000000000..7afa31d3e92 --- /dev/null +++ b/lucene/analysis/kuromoji/build.xml @@ -0,0 +1,98 @@ + + + + + + + + Japanese Morphological Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/kuromoji/ivy.xml b/lucene/analysis/kuromoji/ivy.xml new file mode 100644 index 00000000000..ee256b9aa45 --- /dev/null +++ b/lucene/analysis/kuromoji/ivy.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/morfologik/build.xml b/lucene/analysis/morfologik/build.xml new file mode 100644 index 00000000000..fca0622e95f --- /dev/null +++ b/lucene/analysis/morfologik/build.xml @@ -0,0 +1,40 @@ + + + + + + + Analyzer for dictionary stemming, built-in Polish dictionary + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/morfologik/ivy.xml b/lucene/analysis/morfologik/ivy.xml new file mode 100644 index 00000000000..f0cc2343fe3 --- /dev/null +++ b/lucene/analysis/morfologik/ivy.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/lucene/analysis/nori/build.xml b/lucene/analysis/nori/build.xml new file mode 100644 index 00000000000..7d5b0b99f41 --- /dev/null +++ b/lucene/analysis/nori/build.xml @@ -0,0 +1,84 @@ + + + + + + + + Korean Morphological Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/nori/ivy.xml b/lucene/analysis/nori/ivy.xml new file mode 100644 index 00000000000..8d329376d11 --- /dev/null +++ b/lucene/analysis/nori/ivy.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/opennlp/build.xml b/lucene/analysis/opennlp/build.xml new file mode 100644 index 00000000000..04f7eacb277 --- /dev/null +++ b/lucene/analysis/opennlp/build.xml @@ -0,0 +1,118 @@ + + + + + + + + OpenNLP Library Integration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/analysis/opennlp/ivy.xml b/lucene/analysis/opennlp/ivy.xml new file mode 100644 index 00000000000..cbbae64790e --- /dev/null +++ b/lucene/analysis/opennlp/ivy.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/lucene/analysis/phonetic/build.xml b/lucene/analysis/phonetic/build.xml new file mode 100644 index 00000000000..49d5726966a --- /dev/null +++ b/lucene/analysis/phonetic/build.xml @@ -0,0 +1,35 @@ + + + + + + + + Analyzer for indexing phonetic signatures (for sounds-alike search) + + + + + + + + + + + + diff --git a/lucene/analysis/phonetic/ivy.xml b/lucene/analysis/phonetic/ivy.xml new file mode 100644 index 00000000000..df7d800ee60 --- /dev/null +++ b/lucene/analysis/phonetic/ivy.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/lucene/analysis/smartcn/build.xml b/lucene/analysis/smartcn/build.xml new file mode 100644 index 00000000000..01e0682f876 --- /dev/null +++ b/lucene/analysis/smartcn/build.xml @@ -0,0 +1,34 @@ + + + + + + + + Analyzer for indexing Chinese + + + + + + + + + + + diff --git a/lucene/analysis/smartcn/ivy.xml b/lucene/analysis/smartcn/ivy.xml new file mode 100644 index 00000000000..842688df15e --- /dev/null +++ b/lucene/analysis/smartcn/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/analysis/stempel/build.xml b/lucene/analysis/stempel/build.xml new file mode 100644 index 00000000000..64a823a77f1 --- /dev/null +++ b/lucene/analysis/stempel/build.xml @@ -0,0 +1,34 @@ + + + + + + + + Analyzer for indexing Polish + + + + + + + + + + + diff --git a/lucene/analysis/stempel/ivy.xml b/lucene/analysis/stempel/ivy.xml new file mode 100644 index 00000000000..afccee34eb8 --- /dev/null +++ b/lucene/analysis/stempel/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/backward-codecs/build.xml b/lucene/backward-codecs/build.xml new file mode 100644 index 00000000000..3de2979484b --- /dev/null +++ b/lucene/backward-codecs/build.xml @@ -0,0 +1,26 @@ + + + + + + Codecs for older versions of Lucene. + + + + + diff --git a/lucene/backward-codecs/ivy.xml b/lucene/backward-codecs/ivy.xml new file mode 100644 index 00000000000..fe933f00b44 --- /dev/null +++ b/lucene/backward-codecs/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/benchmark/build.xml b/lucene/benchmark/build.xml new file mode 100644 index 00000000000..2f53ff4d492 --- /dev/null +++ b/lucene/benchmark/build.xml @@ -0,0 +1,289 @@ + + + + + + + + System for benchmarking Lucene + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Working Directory: ${working.dir} + + + + + + + + Working Directory: ${working.dir} + + + + + + + + + + + + + + + + + + + + Running benchmark with alg file: ${collation.alg.file} + + + + + Benchmark output is in file: ${collation.output.file} + Converting to JIRA table format... + + + + + + Benchmark output in JIRA table format is in file: ${collation.jira.output.file} + + + + + + + + + + + + Running benchmark with alg file: ${shingle.alg.file} + + + + + Benchmark output is in file: ${shingle.output.file} + Converting to JIRA table format... + + + + + + Benchmark output in JIRA table format is in file: ${shingle.jira.output.file} + + + + + + + + + + + diff --git a/lucene/benchmark/ivy.xml b/lucene/benchmark/ivy.xml new file mode 100644 index 00000000000..23c208cb3ed --- /dev/null +++ b/lucene/benchmark/ivy.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + diff --git a/lucene/build.xml b/lucene/build.xml new file mode 100644 index 00000000000..a5e17ad114a --- /dev/null +++ b/lucene/build.xml @@ -0,0 +1,586 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/classification/build.xml b/lucene/classification/build.xml new file mode 100644 index 00000000000..43bcb4b5a1a --- /dev/null +++ b/lucene/classification/build.xml @@ -0,0 +1,55 @@ + + + + + + + Classification module for Lucene + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/classification/ivy.xml b/lucene/classification/ivy.xml new file mode 100644 index 00000000000..036c217758f --- /dev/null +++ b/lucene/classification/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/codecs/build.xml b/lucene/codecs/build.xml new file mode 100644 index 00000000000..c50af6cb1b8 --- /dev/null +++ b/lucene/codecs/build.xml @@ -0,0 +1,28 @@ + + + + + Lucene codecs and postings formats. + + + + + + + + diff --git a/lucene/codecs/ivy.xml b/lucene/codecs/ivy.xml new file mode 100644 index 00000000000..f966fd50fb6 --- /dev/null +++ b/lucene/codecs/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/common-build.xml b/lucene/common-build.xml new file mode 100644 index 00000000000..7bb6e55081e --- /dev/null +++ b/lucene/common-build.xml @@ -0,0 +1,2605 @@ + + + + + + + This file is designed for importing into a main build file, and not intended + for standalone use. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Found disallowed Ivy jar(s): ${disallowed.ivy.jars.list} + + + + + + This build requires Ivy and Ivy could not be found in your ant classpath. + + (Due to classpath issues and the recursive nature of the Lucene/Solr + build system, a local copy of Ivy can not be used an loaded dynamically + by the build.xml) + + You can either manually install a copy of Ivy ${ivy.bootstrap.version} in your ant classpath: + http://ant.apache.org/manual/install.html#optionalTasks + + Or this build file can do it for you by running the Ivy Bootstrap target: + ant ivy-bootstrap + + Either way you will only have to install Ivy one time. + + 'ant ivy-bootstrap' will install a copy of Ivy into your Ant User Library: + ${user.home}/.ant/lib + + If you would prefer, you can have it installed into an alternative + directory using the "-Divy_install_path=/some/path/you/choose" option, + but you will have to specify this path every time you build Lucene/Solr + in the future... + ant ivy-bootstrap -Divy_install_path=/some/path/you/choose + ... + ant -lib /some/path/you/choose clean compile + ... + ant -lib /some/path/you/choose clean compile + + If you have already run ivy-bootstrap, and still get this message, please + try using the "--noconfig" option when running ant, or editing your global + ant config to allow the user lib to be loaded. See the wiki for more details: + http://wiki.apache.org/lucene-java/DeveloperTips#Problems_with_Ivy.3F + + Ivy is not available + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + US-ASCII + ISO-8859-1 + UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # module: ${ant.project.name} ${junit4.stats.nonIgnored} + + + + + + + + + + + + 5 slowest tests: + + + + + + + + + Showing ${max} slowest tests according to local stats. (change with -Dmax=...). + + + + + Showing ${max} slowest tests in cached stats. (change with -Dmax=...). + + + + + + + + + +# +# Test case filtering. -------------------------------------------- +# +# - 'tests.class' is a class-filtering shell-like glob pattern, +# 'testcase' is an alias of "tests.class=*.${testcase}" +# - 'tests.method' is a method-filtering glob pattern. +# 'testmethod' is an alias of "tests.method=${testmethod}*" +# + +# Run a single test case (variants) +ant test -Dtests.class=org.apache.lucene.package.ClassName +ant test "-Dtests.class=*.ClassName" +ant test -Dtestcase=ClassName + +# Run all tests in a package and sub-packages +ant test "-Dtests.class=org.apache.lucene.package.Test*|org.apache.lucene.package.*Test" + +# Run any test methods that contain 'esi' (like: ...r*esi*ze...). +ant test "-Dtests.method=*esi*" + +# +# Seed and repetitions. ------------------------------------------- +# + +# Run with a given seed (seed is a hex-encoded long). +ant test -Dtests.seed=DEADBEEF + +# Repeats _all_ tests of ClassName N times. Every test repetition +# will have a different seed. NOTE: does not reinitialize +# between repetitions, use only for idempotent tests. +ant test -Dtests.iters=N -Dtestcase=ClassName + +# Repeats _all_ tests of ClassName N times. Every test repetition +# will have exactly the same master (dead) and method-level (beef) +# seed. +ant test -Dtests.iters=N -Dtestcase=ClassName -Dtests.seed=dead:beef + +# Repeats a given test N times (note the filters - individual test +# repetitions are given suffixes, ie: testFoo[0], testFoo[1], etc... +# so using testmethod or tests.method ending in a glob is necessary +# to ensure iterations are run). +ant test -Dtests.iters=N -Dtestcase=ClassName -Dtestmethod=mytest +ant test -Dtests.iters=N -Dtestcase=ClassName -Dtests.method=mytest* + +# Repeats N times but skips any tests after the first failure or M +# initial failures. +ant test -Dtests.iters=N -Dtests.failfast=yes -Dtestcase=... +ant test -Dtests.iters=N -Dtests.maxfailures=M -Dtestcase=... + +# Repeats every suite (class) and any tests inside N times +# can be combined with -Dtestcase or -Dtests.iters, etc. +# Can be used for running a single class on multiple JVMs +# in parallel. +ant test -Dtests.dups=N ... + +# Test beasting: Repeats every suite with same seed per class +# (N times in parallel) and each test inside (M times). The whole +# run is repeated (beasting) P times in a loop, with a different +# master seed. You can combine beasting with any other parameter, +# just replace "test" with "beast" and give -Dbeast.iters=P +# (P >> 1). +ant beast -Dtests.dups=N -Dtests.iters=M -Dbeast.iters=P \ + -Dtestcase=ClassName + +# +# Test groups. ---------------------------------------------------- +# +# test groups can be enabled or disabled (true/false). Default +# value provided below in [brackets]. + +ant -Dtests.nightly=[false] - nightly test group (@Nightly) +ant -Dtests.weekly=[false] - weekly tests (@Weekly) +ant -Dtests.awaitsfix=[false] - known issue (@AwaitsFix) +ant -Dtests.badapples=[true] - flakey tests (@BadApple) +ant -Dtests.slow=[true] - slow tests (@Slow) + +# An alternative way to select just one (or more) groups of tests +# is to use the -Dtests.filter property: + +-Dtests.filter="@slow" + +# would run only slow tests. 'tests.filter' supports Boolean operators +# 'and, or, not' and grouping, for example: + +ant -Dtests.filter="@nightly and not(@awaitsfix or @slow)" + +# would run nightly tests but not those also marked as awaiting a fix +# or slow. Note that tests.filter, if present, has a priority over any +# individual tests.* properties. + + +# +# Load balancing and caches. -------------------------------------- +# + +# Run sequentially (one slave JVM). +ant -Dtests.jvms=1 test + +# Run with more slave JVMs than the default. +# Don't count hypercores for CPU-intense tests. +# Make sure there is enough RAM to handle child JVMs. +ant -Dtests.jvms=8 test + +# Use repeatable suite order on slave JVMs (disables job stealing). +ant -Dtests.dynamicAssignmentRatio=0 test + +# Update global (versioned!) execution times cache (top level). +ant clean test +ant -f lucene/build.xml test-updatecache + +# +# Miscellaneous. -------------------------------------------------- +# + +# Only run test(s), non-recursively. Faster than "ant test". +# WARNING: Skips jar download and compilation. Clover not supported. +ant test-nocompile +ant -Dtestcase=... test-nocompile + +# Run all tests without stopping on errors (inspect log files!). +ant -Dtests.haltonfailure=false test + +# Run more verbose output (slave JVM parameters, etc.). +ant -verbose test + +# Include additional information like what is printed to +# sysout/syserr, even if the test passes. +# Enabled automatically when running for a single test case. +ant -Dtests.showSuccess=true test + +# Change the default suite timeout to 5 seconds. +ant -Dtests.timeoutSuite=5000! ... + +# Display local averaged stats, if any (30 slowest tests). +ant test-times -Dmax=30 + +# Display a timestamp alongside each suite/ test. +ant -Dtests.timestamps=on ... + +# Override forked JVM file.encoding +ant -Dtests.file.encoding=XXX ... + +# Don't remove any temporary files under slave directories, even if +# the test passes (any of the following props): +ant -Dtests.leaveTemporary=true +ant -Dtests.leavetmpdir=true +ant -Dsolr.test.leavetmpdir=true + +# Do *not* filter stack traces emitted to the console. +ant -Dtests.filterstacks=false + +# Skip checking for no-executed tests in modules +ant -Dtests.ifNoTests=ignore ... + +# Output test files and reports. +${tests-output}/tests-report.txt - full ASCII tests report +${tests-output}/tests-failures.txt - failures only (if any) +${tests-output}/tests-report-* - HTML5 report with results +${tests-output}/junit4-*.suites - per-JVM executed suites + (important if job stealing). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if (line ==~ /^[0-9]+/) { + total += Integer.valueOf(line); + } + }); + statsFile.delete(); + + if (total == 0 && !"ignore".equals(project.getProperty("tests.ifNoTests"))) { + throw new BuildException("Not even a single test was executed (a typo in the filter pattern maybe?)."); + } + + // Interesting but let's keep the build output quiet. + // task.log("Grand total of all executed tests (including sub-modules): " + total); + ]]> + + + + + + + + + + + + + + TODO: Code coverage with OpenClover does not yet work with Java 11 - see https://issues.apache.org/jira/browse/LUCENE-8763 + Code coverage with OpenClover enabled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Code coverage with pitest enabled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +${ant.project.name}.dependencies=${classpath.list} +${ant.project.name}.test.dependencies=${test.classpath.list} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invoking target stage-maven in ${output.build.xml} now... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${rat.output} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Copyright © ${year} Apache Software Foundation. All Rights Reserved. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Building checksums for '@{file}' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WARNING: ON SOME PLATFORMS YOUR PASSPHRASE WILL BE ECHOED BACK!!!!! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${@{doap.property.prefix}.Project.release.Version.revision} + ${@{doap.property.prefix}.Project.release.Version.created} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PiTest mutation coverage can take a *long* time on even large hardware. +(EC2 32core sandy bridge takes at least 12 hours to run PiTest for the lucene test cases) + +The following arguments can be provided to ant to alter its behaviour and target specific tests:: + +-Dpitest.report.dir (@{pitest.report.dir}) - Change where PiTest writes output reports + +-Dpitest.distance (@{pitest.distance}) - How far away from the test class should be mutated + 0 being immeditate callees only + +-Dpitest.threads (@{pitest.threads}) - How many threads to use in PiTest + (note this is independent of junit threads) + +-Dpitest.testCases (@{pitest.testCases}) - Glob of testcases to run + +-Dpitest.maxMutations (@{pitest.maxMutations}) - Maximum number of mutations per class under test + 0 being unlimited + +-Dpitest.timeoutFactor (@{pitest.timeoutFactor}) - Tunable factor used to determine + if a test is potentially been mutated to be an infinate loop or O(n!) (or similar) + +-Dpitest.timeoutConst (@{pitest.timeoutConst}) - Base constant used for working out timeouts + +-Dpitest.targetClasses (@{pitest.targetClasses}) - Classes to consider for mutation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/core/build.xml b/lucene/core/build.xml new file mode 100644 index 00000000000..5fa75128a4a --- /dev/null +++ b/lucene/core/build.xml @@ -0,0 +1,235 @@ + + + + + + Lucene core library + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + task.log(" " + k + "=" + properties[k]); + } + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/core/ivy.xml b/lucene/core/ivy.xml new file mode 100644 index 00000000000..bbca9f945c5 --- /dev/null +++ b/lucene/core/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/default-nested-ivy-settings.xml b/lucene/default-nested-ivy-settings.xml new file mode 100644 index 00000000000..1b1603f71b3 --- /dev/null +++ b/lucene/default-nested-ivy-settings.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/demo/build.xml b/lucene/demo/build.xml new file mode 100644 index 00000000000..d5e50ad6947 --- /dev/null +++ b/lucene/demo/build.xml @@ -0,0 +1,61 @@ + + + + + + + + Simple example code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/demo/ivy.xml b/lucene/demo/ivy.xml new file mode 100644 index 00000000000..69076d1e3b5 --- /dev/null +++ b/lucene/demo/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/expressions/build.xml b/lucene/expressions/build.xml new file mode 100644 index 00000000000..61ae64fd416 --- /dev/null +++ b/lucene/expressions/build.xml @@ -0,0 +1,120 @@ + + + + + + Dynamically computed values to sort/facet/search on based on a pluggable grammar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/expressions/ivy.xml b/lucene/expressions/ivy.xml new file mode 100644 index 00000000000..6065522962f --- /dev/null +++ b/lucene/expressions/ivy.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/lucene/facet/build.xml b/lucene/facet/build.xml new file mode 100644 index 00000000000..2fc2f9a6ca8 --- /dev/null +++ b/lucene/facet/build.xml @@ -0,0 +1,47 @@ + + + + + + + + Faceted indexing and search capabilities + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/facet/ivy.xml b/lucene/facet/ivy.xml new file mode 100644 index 00000000000..249c78e36c8 --- /dev/null +++ b/lucene/facet/ivy.xml @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/lucene/grouping/build.xml b/lucene/grouping/build.xml new file mode 100644 index 00000000000..5fb1fd13aa9 --- /dev/null +++ b/lucene/grouping/build.xml @@ -0,0 +1,49 @@ + + + + + + + + Collectors for grouping search results. + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/grouping/ivy.xml b/lucene/grouping/ivy.xml new file mode 100644 index 00000000000..d7e4eb31e89 --- /dev/null +++ b/lucene/grouping/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/highlighter/build.xml b/lucene/highlighter/build.xml new file mode 100644 index 00000000000..5d837cbdcb4 --- /dev/null +++ b/lucene/highlighter/build.xml @@ -0,0 +1,55 @@ + + + + + + + + Highlights search keywords in results + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/highlighter/ivy.xml b/lucene/highlighter/ivy.xml new file mode 100644 index 00000000000..262fa53a7d4 --- /dev/null +++ b/lucene/highlighter/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/ivy-ignore-conflicts.properties b/lucene/ivy-ignore-conflicts.properties new file mode 100644 index 00000000000..df3a2e5a43b --- /dev/null +++ b/lucene/ivy-ignore-conflicts.properties @@ -0,0 +1,14 @@ +# The /org/name keys in this file must be kept lexically sorted. +# Blank lines, comment lines, and keys that aren't in /org/name format are ignored +# when the lexical sort check is performed by the ant check-lib-versions target. +# +# The format is: +# +# /org/name = [, [ ... ] ] +# +# where each is an indirect dependency version to ignore (i.e., not +# trigger a conflict) when the ant check-lib-versions target is run. + +/com.google.guava/guava = 16.0.1 +/org.ow2.asm/asm = 5.0_BETA + diff --git a/lucene/ivy-versions.properties b/lucene/ivy-versions.properties new file mode 100644 index 00000000000..6c8e51cfa19 --- /dev/null +++ b/lucene/ivy-versions.properties @@ -0,0 +1,334 @@ +# The /org/name keys in this file must be kept lexically sorted. +# Blank lines, comment lines, and keys that aren't in /org/name format are ignored +# when the lexical sort check is performed by the ant check-lib-versions target. + +/com.adobe.xmp/xmpcore = 5.1.3 + +com.carrotsearch.randomizedtesting.version = 2.7.6 +/com.carrotsearch.randomizedtesting/junit4-ant = ${com.carrotsearch.randomizedtesting.version} +/com.carrotsearch.randomizedtesting/randomizedtesting-runner = ${com.carrotsearch.randomizedtesting.version} + +/com.carrotsearch.thirdparty/simple-xml-safe = 2.7.1 + +/com.carrotsearch/hppc = 0.8.2 + +/com.cybozu.labs/langdetect = 1.1-20120112 +/com.drewnoakes/metadata-extractor = 2.11.0 + +/com.epam/parso = 2.0.11 + +com.fasterxml.jackson.core.version = 2.10.1 +/com.fasterxml.jackson.core/jackson-annotations = ${com.fasterxml.jackson.core.version} +/com.fasterxml.jackson.core/jackson-core = ${com.fasterxml.jackson.core.version} +/com.fasterxml.jackson.core/jackson-databind = ${com.fasterxml.jackson.core.version} +/com.fasterxml.jackson.dataformat/jackson-dataformat-smile = ${com.fasterxml.jackson.core.version} + +/com.github.ben-manes.caffeine/caffeine = 2.8.4 +/com.github.virtuald/curvesapi = 1.06 + +/com.github.zafarkhaja/java-semver = 0.9.0 + +/com.google.guava/guava = 25.1-jre +/com.google.protobuf/protobuf-java = 3.11.0 +/com.google.re2j/re2j = 1.2 +/com.googlecode.juniversalchardet/juniversalchardet = 1.0.3 +/com.googlecode.mp4parser/isoparser = 1.1.22 +/com.healthmarketscience.jackcess/jackcess = 3.0.1 +/com.healthmarketscience.jackcess/jackcess-encrypt = 3.0.0 +/com.ibm.icu/icu4j = 62.2 +/com.jayway.jsonpath/json-path = 2.4.0 +/com.lmax/disruptor = 3.4.2 +/com.pff/java-libpst = 0.8.1 + +com.rometools.version = 1.12.2 +/com.rometools/rome = ${com.rometools.version} +/com.rometools/rome-utils = ${com.rometools.version} + +com.sun.jersey.version = 1.19 +/com.sun.jersey/jersey-servlet = ${com.sun.jersey.version} + +/com.sun.mail/gimap = 1.5.1 +/com.sun.mail/javax.mail = 1.5.1 + +/com.tdunning/t-digest = 3.1 +/com.vaadin.external.google/android-json = 0.0.20131108.vaadin1 +/commons-cli/commons-cli = 1.4 +/commons-codec/commons-codec = 1.13 +/commons-collections/commons-collections = 3.2.2 +/commons-io/commons-io = 2.6 +# necessary to run test or embedded Zookeeper as of 3.6.1 +commons.lang.version = 2.6 +/commons-lang/commons-lang = ${commons.lang.version} +/commons-logging/commons-logging = 1.1.3 +/de.l3s.boilerpipe/boilerpipe = 1.1.0 + +io.dropwizard.metrics.version = 4.1.5 +/io.dropwizard.metrics/metrics-core = ${io.dropwizard.metrics.version} +/io.dropwizard.metrics/metrics-graphite = ${io.dropwizard.metrics.version} +/io.dropwizard.metrics/metrics-jetty9 = ${io.dropwizard.metrics.version} +/io.dropwizard.metrics/metrics-jmx = ${io.dropwizard.metrics.version} +/io.dropwizard.metrics/metrics-jvm = ${io.dropwizard.metrics.version} + +io.jaegertracing.version = 1.1.0 +/io.jaegertracing/jaeger-core = ${io.jaegertracing.version} +/io.jaegertracing/jaeger-thrift = ${io.jaegertracing.version} + +io.netty.netty.version = 4.1.50.Final +/io.netty/netty-buffer = ${io.netty.netty.version} +/io.netty/netty-codec = ${io.netty.netty.version} +/io.netty/netty-common = ${io.netty.netty.version} +/io.netty/netty-handler = ${io.netty.netty.version} +/io.netty/netty-resolver = ${io.netty.netty.version} +/io.netty/netty-transport = ${io.netty.netty.version} +/io.netty/netty-transport-native-epoll = ${io.netty.netty.version} +/io.netty/netty-transport-native-unix-common = ${io.netty.netty.version} + +io.opentracing.version = 0.33.0 +/io.opentracing/opentracing-api = ${io.opentracing.version} +/io.opentracing/opentracing-mock = ${io.opentracing.version} +/io.opentracing/opentracing-noop = ${io.opentracing.version} +/io.opentracing/opentracing-util = ${io.opentracing.version} + +io.prometheus.version = 0.2.0 +/io.prometheus/simpleclient = ${io.prometheus.version} +/io.prometheus/simpleclient_common = ${io.prometheus.version} +/io.prometheus/simpleclient_httpserver = ${io.prometheus.version} + +/io.sgr/s2-geometry-library-java = 1.0.0 + +/javax.activation/activation = 1.1.1 +/javax.servlet/javax.servlet-api = 3.1.0 +/junit/junit = 4.12 + +/mecab/mecab-ipadic = 2.7.0-20070801 +/mecab/mecab-ko-dic = 2.0.3-20170922 +/mecab/mecab-naist-jdic = 0.6.3b-20111013 +/net.arnx/jsonic = 1.2.7 +/net.bytebuddy/byte-buddy = 1.9.3 +/net.hydromatic/eigenbase-properties = 1.1.5 + +net.sourceforge.argparse4j.version = 0.8.1 +/net.sourceforge.argparse4j/argparse4j = ${net.sourceforge.argparse4j.version} + +/net.sourceforge.nekohtml/nekohtml = 1.9.17 + +net.thisptr.version = 0.0.8 +/net.thisptr/jackson-jq = ${net.thisptr.version} + +/org.antlr/antlr4-runtime = 4.5.1-1 + +/org.apache.ant/ant = 1.8.2 + +org.apache.calcite.avatica.version = 1.13.0 +/org.apache.calcite.avatica/avatica-core = ${org.apache.calcite.avatica.version} + +org.apache.calcite.version = 1.18.0 +/org.apache.calcite/calcite-core = ${org.apache.calcite.version} +/org.apache.calcite/calcite-linq4j = ${org.apache.calcite.version} + +org.apache.commons.commons-collections4-rev = 4.4 +/org.apache.commons/commons-collections4 = ${org.apache.commons.commons-collections4-rev} +/org.apache.commons/commons-compress = 1.19 +/org.apache.commons/commons-configuration2 = 2.1.1 +/org.apache.commons/commons-csv = 1.7 +/org.apache.commons/commons-exec = 1.3 +/org.apache.commons/commons-lang3 = 3.9 +/org.apache.commons/commons-math3 = 3.6.1 +/org.apache.commons/commons-text = 1.6 + +org.apache.curator.version = 2.13.0 +/org.apache.curator/curator-client = ${org.apache.curator.version} +/org.apache.curator/curator-framework = ${org.apache.curator.version} +/org.apache.curator/curator-recipes = ${org.apache.curator.version} + +/org.apache.derby/derby = 10.9.1.0 + +org.apache.hadoop.version = 3.2.0 +/org.apache.hadoop/hadoop-annotations = ${org.apache.hadoop.version} +/org.apache.hadoop/hadoop-auth = ${org.apache.hadoop.version} +/org.apache.hadoop/hadoop-common = ${org.apache.hadoop.version} +/org.apache.hadoop/hadoop-hdfs = ${org.apache.hadoop.version} +/org.apache.hadoop/hadoop-hdfs-client = ${org.apache.hadoop.version} +/org.apache.hadoop/hadoop-minikdc = ${org.apache.hadoop.version} + +/org.apache.htrace/htrace-core4 = 4.1.0-incubating + +# The httpcore version is often different from the httpclient and httpmime versions, +# so the httpcore version value should not share the same symbolic name with them. +/org.apache.httpcomponents/httpclient = 4.5.10 +/org.apache.httpcomponents/httpcore = 4.4.12 +/org.apache.httpcomponents/httpmime = 4.5.10 + +/org.apache.ivy/ivy = 2.4.0 + +org.apache.james.apache.mime4j.version = 0.8.3 +/org.apache.james/apache-mime4j-core = ${org.apache.james.apache.mime4j.version} +/org.apache.james/apache-mime4j-dom = ${org.apache.james.apache.mime4j.version} + +org.apache.kerby.version = 1.0.1 +/org.apache.kerby/kerb-admin = ${org.apache.kerby.version} +/org.apache.kerby/kerb-client = ${org.apache.kerby.version} +/org.apache.kerby/kerb-common = ${org.apache.kerby.version} +/org.apache.kerby/kerb-core = ${org.apache.kerby.version} +/org.apache.kerby/kerb-crypto = ${org.apache.kerby.version} +/org.apache.kerby/kerb-identity= ${org.apache.kerby.version} +/org.apache.kerby/kerb-server = ${org.apache.kerby.version} +/org.apache.kerby/kerb-simplekdc = ${org.apache.kerby.version} +/org.apache.kerby/kerb-util = ${org.apache.kerby.version} + +/org.apache.kerby/kerby-asn1 = ${org.apache.kerby.version} +/org.apache.kerby/kerby-config = ${org.apache.kerby.version} +/org.apache.kerby/kerby-kdc = ${org.apache.kerby.version} +/org.apache.kerby/kerby-pkix = ${org.apache.kerby.version} +/org.apache.kerby/kerby-util = ${org.apache.kerby.version} + +org.apache.logging.log4j.version = 2.13.2 +/org.apache.logging.log4j/log4j-1.2-api = ${org.apache.logging.log4j.version} +/org.apache.logging.log4j/log4j-api = ${org.apache.logging.log4j.version} +/org.apache.logging.log4j/log4j-core = ${org.apache.logging.log4j.version} +/org.apache.logging.log4j/log4j-slf4j-impl = ${org.apache.logging.log4j.version} +/org.apache.logging.log4j/log4j-web = ${org.apache.logging.log4j.version} + +/org.apache.opennlp/opennlp-tools = 1.9.1 + +org.apache.pdfbox.version = 2.0.17 +/org.apache.pdfbox/fontbox = ${org.apache.pdfbox.version} +/org.apache.pdfbox/jempbox = 1.8.16 +/org.apache.pdfbox/pdfbox = ${org.apache.pdfbox.version} +/org.apache.pdfbox/pdfbox-tools = ${org.apache.pdfbox.version} + +org.apache.poi.version = 4.1.1 +/org.apache.poi/poi = ${org.apache.poi.version} +/org.apache.poi/poi-ooxml = ${org.apache.poi.version} +/org.apache.poi/poi-ooxml-schemas = ${org.apache.poi.version} +/org.apache.poi/poi-scratchpad = ${org.apache.poi.version} + +org.apache.thrift.version = 0.13.0 +/org.apache.thrift/libthrift = ${org.apache.thrift.version} + +org.apache.tika.version = 1.24 +/org.apache.tika/tika-core = ${org.apache.tika.version} +/org.apache.tika/tika-java7 = ${org.apache.tika.version} +/org.apache.tika/tika-parsers = ${org.apache.tika.version} +/org.apache.tika/tika-xmp = ${org.apache.tika.version} + +org.apache.velocity.tools.version = 3.0 +/org.apache.velocity.tools/velocity-tools-generic = ${org.apache.velocity.tools.version} +/org.apache.velocity.tools/velocity-tools-view = ${org.apache.velocity.tools.version} +/org.apache.velocity.tools/velocity-tools-view-jsp = ${org.apache.velocity.tools.version} + +/org.apache.velocity/velocity-engine-core = 2.0 + +/org.apache.xmlbeans/xmlbeans = 3.1.0 + +org.apache.zookeeper.version = 3.6.1 +/org.apache.zookeeper/zookeeper = ${org.apache.zookeeper.version} +/org.apache.zookeeper/zookeeper-jute = ${org.apache.zookeeper.version} + +# v1.6.2 of asciidoctor-ant includes asciidoctorj 1.6.2, which uses +# asciidoctor 1.5.8, and asciidoctorj-pdf 1.5.0-alpha.16, which is the same +# as asciidoctor-pdf 1.5.0-alpha.16 +/org.asciidoctor/asciidoctor-ant = 1.6.2 + +/org.aspectj/aspectjrt = 1.8.0 + +/org.bitbucket.b_c/jose4j = 0.6.5 + +org.bouncycastle.version = 1.64 +/org.bouncycastle/bcmail-jdk15on = ${org.bouncycastle.version} +/org.bouncycastle/bcpkix-jdk15on = ${org.bouncycastle.version} +/org.bouncycastle/bcprov-jdk15on = ${org.bouncycastle.version} + +/org.brotli/dec = 0.1.2 + +/org.carrot2.attributes/attributes-binder = 1.3.3 +/org.carrot2.shaded/carrot2-guava = 18.0 + +/org.carrot2/carrot2-mini = 3.16.2 + +org.carrot2.morfologik.version = 2.1.5 +/org.carrot2/morfologik-fsa = ${org.carrot2.morfologik.version} +/org.carrot2/morfologik-polish = ${org.carrot2.morfologik.version} +/org.carrot2/morfologik-stemming = ${org.carrot2.morfologik.version} + +/org.ccil.cowan.tagsoup/tagsoup = 1.2.1 + +org.codehaus.janino.version = 3.0.9 +/org.codehaus.janino/commons-compiler = ${org.codehaus.janino.version} +/org.codehaus.janino/janino = ${org.codehaus.janino.version} + +/org.codehaus.woodstox/stax2-api = 3.1.4 +/org.codehaus.woodstox/woodstox-core-asl = 4.4.1 + +org.eclipse.jetty.version = 9.4.27.v20200227 +/org.eclipse.jetty.http2/http2-client = ${org.eclipse.jetty.version} +/org.eclipse.jetty.http2/http2-common = ${org.eclipse.jetty.version} +/org.eclipse.jetty.http2/http2-hpack = ${org.eclipse.jetty.version} +/org.eclipse.jetty.http2/http2-http-client-transport = ${org.eclipse.jetty.version} +/org.eclipse.jetty.http2/http2-server = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-alpn-client = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-alpn-java-client = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-alpn-java-server = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-alpn-server = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-client = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-continuation = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-deploy = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-http = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-io = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-jmx = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-rewrite = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-security = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-server = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-servlet = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-servlets = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-start = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-util = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-webapp = ${org.eclipse.jetty.version} +/org.eclipse.jetty/jetty-xml = ${org.eclipse.jetty.version} + +org.gagravarr.vorbis.java.version = 0.8 +/org.gagravarr/vorbis-java-core = ${org.gagravarr.vorbis.java.version} +/org.gagravarr/vorbis-java-tika = ${org.gagravarr.vorbis.java.version} + +/org.hamcrest/hamcrest = 2.2 + +/org.hsqldb/hsqldb = 2.4.0 +/org.jdom/jdom2 = 2.0.6 + +/org.jsoup/jsoup = 1.12.1 + +/org.locationtech.jts/jts-core = 1.15.0 +/org.locationtech.spatial4j/spatial4j = 0.7 + +/org.mockito/mockito-core = 2.23.4 + +/org.objenesis/objenesis = 2.6 + +org.ow2.asm.version = 7.2 +/org.ow2.asm/asm = ${org.ow2.asm.version} +/org.ow2.asm/asm-commons = ${org.ow2.asm.version} + +org.restlet.jee.version = 2.4.3 +/org.restlet.jee/org.restlet = ${org.restlet.jee.version} +/org.restlet.jee/org.restlet.ext.servlet = ${org.restlet.jee.version} + +/org.rrd4j/rrd4j = 3.5 + +org.slf4j.version = 1.7.24 +/org.slf4j/jcl-over-slf4j = ${org.slf4j.version} +/org.slf4j/jul-to-slf4j = ${org.slf4j.version} +/org.slf4j/slf4j-api = ${org.slf4j.version} +/org.slf4j/slf4j-simple = ${org.slf4j.version} + +/org.tallison/jmatio = 1.5 +/org.tukaani/xz = 1.8 + +# required for instantiating a Zookeeper server in tests or embedded +org.xerial.snappy.version = 1.1.7.6 +/org.xerial.snappy/snappy-java = ${org.xerial.snappy.version} + + +ua.net.nlp.morfologik-ukrainian-search.version = 4.9.1 +/ua.net.nlp/morfologik-ukrainian-search = ${ua.net.nlp.morfologik-ukrainian-search.version} + +/xerces/xercesImpl = 2.12.0 diff --git a/lucene/join/build.xml b/lucene/join/build.xml new file mode 100644 index 00000000000..c411dbe4649 --- /dev/null +++ b/lucene/join/build.xml @@ -0,0 +1,27 @@ + + + + + Index-time and Query-time joins for normalized content + + + + + diff --git a/lucene/join/ivy.xml b/lucene/join/ivy.xml new file mode 100644 index 00000000000..09ae9bdfee3 --- /dev/null +++ b/lucene/join/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/licenses/ant-1.8.2.jar.sha1 b/lucene/licenses/ant-1.8.2.jar.sha1 new file mode 100644 index 00000000000..564db78dfdc --- /dev/null +++ b/lucene/licenses/ant-1.8.2.jar.sha1 @@ -0,0 +1 @@ +fc33bf7cd8c5309dd7b81228e8626515ee42efd9 diff --git a/lucene/licenses/ant-LICENSE-ASL.txt b/lucene/licenses/ant-LICENSE-ASL.txt new file mode 100644 index 00000000000..ab3182e7776 --- /dev/null +++ b/lucene/licenses/ant-LICENSE-ASL.txt @@ -0,0 +1,272 @@ +/* + * Apache License + * Version 2.0, January 2004 + * http://www.apache.org/licenses/ + * + * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + * + * 1. Definitions. + * + * "License" shall mean the terms and conditions for use, reproduction, + * and distribution as defined by Sections 1 through 9 of this document. + * + * "Licensor" shall mean the copyright owner or entity authorized by + * the copyright owner that is granting the License. + * + * "Legal Entity" shall mean the union of the acting entity and all + * other entities that control, are controlled by, or are under common + * control with that entity. For the purposes of this definition, + * "control" means (i) the power, direct or indirect, to cause the + * direction or management of such entity, whether by contract or + * otherwise, or (ii) ownership of fifty percent (50%) or more of the + * outstanding shares, or (iii) beneficial ownership of such entity. + * + * "You" (or "Your") shall mean an individual or Legal Entity + * exercising permissions granted by this License. + * + * "Source" form shall mean the preferred form for making modifications, + * including but not limited to software source code, documentation + * source, and configuration files. + * + * "Object" form shall mean any form resulting from mechanical + * transformation or translation of a Source form, including but + * not limited to compiled object code, generated documentation, + * and conversions to other media types. + * + * "Work" shall mean the work of authorship, whether in Source or + * Object form, made available under the License, as indicated by a + * copyright notice that is included in or attached to the work + * (an example is provided in the Appendix below). + * + * "Derivative Works" shall mean any work, whether in Source or Object + * form, that is based on (or derived from) the Work and for which the + * editorial revisions, annotations, elaborations, or other modifications + * represent, as a whole, an original work of authorship. For the purposes + * of this License, Derivative Works shall not include works that remain + * separable from, or merely link (or bind by name) to the interfaces of, + * the Work and Derivative Works thereof. + * + * "Contribution" shall mean any work of authorship, including + * the original version of the Work and any modifications or additions + * to that Work or Derivative Works thereof, that is intentionally + * submitted to Licensor for inclusion in the Work by the copyright owner + * or by an individual or Legal Entity authorized to submit on behalf of + * the copyright owner. For the purposes of this definition, "submitted" + * means any form of electronic, verbal, or written communication sent + * to the Licensor or its representatives, including but not limited to + * communication on electronic mailing lists, source code control systems, + * and issue tracking systems that are managed by, or on behalf of, the + * Licensor for the purpose of discussing and improving the Work, but + * excluding communication that is conspicuously marked or otherwise + * designated in writing by the copyright owner as "Not a Contribution." + * + * "Contributor" shall mean Licensor and any individual or Legal Entity + * on behalf of whom a Contribution has been received by Licensor and + * subsequently incorporated within the Work. + * + * 2. Grant of Copyright License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * copyright license to reproduce, prepare Derivative Works of, + * publicly display, publicly perform, sublicense, and distribute the + * Work and such Derivative Works in Source or Object form. + * + * 3. Grant of Patent License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * (except as stated in this section) patent license to make, have made, + * use, offer to sell, sell, import, and otherwise transfer the Work, + * where such license applies only to those patent claims licensable + * by such Contributor that are necessarily infringed by their + * Contribution(s) alone or by combination of their Contribution(s) + * with the Work to which such Contribution(s) was submitted. If You + * institute patent litigation against any entity (including a + * cross-claim or counterclaim in a lawsuit) alleging that the Work + * or a Contribution incorporated within the Work constitutes direct + * or contributory patent infringement, then any patent licenses + * granted to You under this License for that Work shall terminate + * as of the date such litigation is filed. + * + * 4. Redistribution. You may reproduce and distribute copies of the + * Work or Derivative Works thereof in any medium, with or without + * modifications, and in Source or Object form, provided that You + * meet the following conditions: + * + * (a) You must give any other recipients of the Work or + * Derivative Works a copy of this License; and + * + * (b) You must cause any modified files to carry prominent notices + * stating that You changed the files; and + * + * (c) You must retain, in the Source form of any Derivative Works + * that You distribute, all copyright, patent, trademark, and + * attribution notices from the Source form of the Work, + * excluding those notices that do not pertain to any part of + * the Derivative Works; and + * + * (d) If the Work includes a "NOTICE" text file as part of its + * distribution, then any Derivative Works that You distribute must + * include a readable copy of the attribution notices contained + * within such NOTICE file, excluding those notices that do not + * pertain to any part of the Derivative Works, in at least one + * of the following places: within a NOTICE text file distributed + * as part of the Derivative Works; within the Source form or + * documentation, if provided along with the Derivative Works; or, + * within a display generated by the Derivative Works, if and + * wherever such third-party notices normally appear. The contents + * of the NOTICE file are for informational purposes only and + * do not modify the License. You may add Your own attribution + * notices within Derivative Works that You distribute, alongside + * or as an addendum to the NOTICE text from the Work, provided + * that such additional attribution notices cannot be construed + * as modifying the License. + * + * You may add Your own copyright statement to Your modifications and + * may provide additional or different license terms and conditions + * for use, reproduction, or distribution of Your modifications, or + * for any such Derivative Works as a whole, provided Your use, + * reproduction, and distribution of the Work otherwise complies with + * the conditions stated in this License. + * + * 5. Submission of Contributions. Unless You explicitly state otherwise, + * any Contribution intentionally submitted for inclusion in the Work + * by You to the Licensor shall be under the terms and conditions of + * this License, without any additional terms or conditions. + * Notwithstanding the above, nothing herein shall supersede or modify + * the terms of any separate license agreement you may have executed + * with Licensor regarding such Contributions. + * + * 6. Trademarks. This License does not grant permission to use the trade + * names, trademarks, service marks, or product names of the Licensor, + * except as required for reasonable and customary use in describing the + * origin of the Work and reproducing the content of the NOTICE file. + * + * 7. Disclaimer of Warranty. Unless required by applicable law or + * agreed to in writing, Licensor provides the Work (and each + * Contributor provides its Contributions) on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied, including, without limitation, any warranties or conditions + * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + * PARTICULAR PURPOSE. You are solely responsible for determining the + * appropriateness of using or redistributing the Work and assume any + * risks associated with Your exercise of permissions under this License. + * + * 8. Limitation of Liability. In no event and under no legal theory, + * whether in tort (including negligence), contract, or otherwise, + * unless required by applicable law (such as deliberate and grossly + * negligent acts) or agreed to in writing, shall any Contributor be + * liable to You for damages, including any direct, indirect, special, + * incidental, or consequential damages of any character arising as a + * result of this License or out of the use or inability to use the + * Work (including but not limited to damages for loss of goodwill, + * work stoppage, computer failure or malfunction, or any and all + * other commercial damages or losses), even if such Contributor + * has been advised of the possibility of such damages. + * + * 9. Accepting Warranty or Additional Liability. While redistributing + * the Work or Derivative Works thereof, You may choose to offer, + * and charge a fee for, acceptance of support, warranty, indemnity, + * or other liability obligations and/or rights consistent with this + * License. However, in accepting such obligations, You may act only + * on Your own behalf and on Your sole responsibility, not on behalf + * of any other Contributor, and only if You agree to indemnify, + * defend, and hold each Contributor harmless for any liability + * incurred by, or claims asserted against, such Contributor by reason + * of your accepting any such warranty or additional liability. + * + * END OF TERMS AND CONDITIONS + * + * APPENDIX: How to apply the Apache License to your work. + * + * To apply the Apache License to your work, attach the following + * boilerplate notice, with the fields enclosed by brackets "[]" + * replaced with your own identifying information. (Don't include + * the brackets!) The text should be enclosed in the appropriate + * comment syntax for the file format. We also recommend that a + * file or class name and description of purpose be included on the + * same "printed page" as the copyright notice for easier + * identification within third-party archives. + * + * Copyright [yyyy] [name of copyright owner] + * + * Licensed 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. + */ + +W3C® SOFTWARE NOTICE AND LICENSE +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license. By obtaining, using and/or copying this work, you (the licensee) agree +that you have read, understood, and will comply with the following terms and +conditions. + +Permission to copy, modify, and distribute this software and its documentation, +with or without modification, for any purpose and without fee or royalty is +hereby granted, provided that you include the following on ALL copies of the +software and documentation or portions thereof, including modifications: + + 1. The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. + 2. Any pre-existing intellectual property disclaimers, notices, or terms + and conditions. If none exist, the W3C Software Short Notice should be + included (hypertext is preferred, text is permitted) within the body + of any redistributed or derivative code. + 3. Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from + which the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE +NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT +THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY +PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. + +The name and trademarks of copyright holders may NOT be used in advertising or +publicity pertaining to the software without specific, written prior permission. +Title to copyright in this software and any associated documentation will at +all times remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 2002. +This version removes the copyright ownership notice such that this license can +be used with materials other than those owned by the W3C, reflects that ERCIM +is now a host of the W3C, includes references to this specific dated version of +the license, and removes the ambiguous grant of "use". Otherwise, this version +is the same as the previous version and is written so as to preserve the Free +Software Foundation's assessment of GPL compatibility and OSI's certification +under the Open Source Definition. Please see our Copyright FAQ for common +questions about using materials from our site, including specific terms and +conditions for packages like libwww, Amaya, and Jigsaw. Other questions about +this notice can be directed to site-policy@w3.org. + +Joseph Reagle + +This license came from: http://www.megginson.com/SAX/copying.html + However please note future versions of SAX may be covered + under http://saxproject.org/?selected=pd + +SAX2 is Free! + +I hereby abandon any property rights to SAX 2.0 (the Simple API for +XML), and release all of the SAX 2.0 source code, compiled code, and +documentation contained in this distribution into the Public Domain. +SAX comes with NO WARRANTY or guarantee of fitness for any +purpose. + +David Megginson, david@megginson.com +2000-05-05 diff --git a/lucene/licenses/ant-NOTICE.txt b/lucene/licenses/ant-NOTICE.txt new file mode 100644 index 00000000000..4c88cc6659b --- /dev/null +++ b/lucene/licenses/ant-NOTICE.txt @@ -0,0 +1,26 @@ + ========================================================================= + == NOTICE file corresponding to the section 4 d of == + == the Apache License, Version 2.0, == + == in this case for the Apache Ant distribution. == + ========================================================================= + + Apache Ant + Copyright 1999-2008 The Apache Software Foundation + + This product includes software developed by + The Apache Software Foundation (http://www.apache.org/). + + This product includes also software developed by : + - the W3C consortium (http://www.w3c.org) , + - the SAX project (http://www.saxproject.org) + + The task is based on code Copyright (c) 2002, Landmark + Graphics Corp that has been kindly donated to the Apache Software + Foundation. + + Portions of this software were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - voluntary contributions made by Paul Eng on behalf of the + Apache Software Foundation that were originally developed at iClick, Inc., + software copyright (c) 1999. diff --git a/lucene/licenses/ivy-2.4.0.jar.sha1 b/lucene/licenses/ivy-2.4.0.jar.sha1 new file mode 100644 index 00000000000..3863b25583f --- /dev/null +++ b/lucene/licenses/ivy-2.4.0.jar.sha1 @@ -0,0 +1 @@ +5abe4c24bbe992a9ac07ca563d5bd3e8d569e9ed diff --git a/lucene/licenses/ivy-LICENSE-ASL.txt b/lucene/licenses/ivy-LICENSE-ASL.txt new file mode 100644 index 00000000000..eb06170386b --- /dev/null +++ b/lucene/licenses/ivy-LICENSE-ASL.txt @@ -0,0 +1,258 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + + +------------------------------------------------------------------------------ +License for JCraft JSch package +------------------------------------------------------------------------------ +Copyright (c) 2002,2003,2004,2005,2006,2007 Atsuhiko Yamanaka, JCraft,Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + + 3. The names of the authors may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, +INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +------------------------------------------------------------------------------ +License for jQuery +------------------------------------------------------------------------------ +Copyright (c) 2007 John Resig, http://jquery.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + \ No newline at end of file diff --git a/lucene/licenses/ivy-NOTICE.txt b/lucene/licenses/ivy-NOTICE.txt new file mode 100644 index 00000000000..33d7e07c961 --- /dev/null +++ b/lucene/licenses/ivy-NOTICE.txt @@ -0,0 +1,16 @@ +Apache Ivy (TM) +Copyright 2007-2013 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + +Portions of Ivy were originally developed by +Jayasoft SARL (http://www.jayasoft.fr/) +and are licensed to the Apache Software Foundation under the +"Software Grant License Agreement" + +SSH and SFTP support is provided by the JCraft JSch package, +which is open source software, available under +the terms of a BSD style license. +The original software and related information is available +at http://www.jcraft.com/jsch/. \ No newline at end of file diff --git a/lucene/luke/build.xml b/lucene/luke/build.xml new file mode 100644 index 00000000000..1584ef7bddc --- /dev/null +++ b/lucene/luke/build.xml @@ -0,0 +1,82 @@ + + + + + + + + Luke - Lucene Toolbox + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/luke/ivy.xml b/lucene/luke/ivy.xml new file mode 100644 index 00000000000..88d9d8c63b6 --- /dev/null +++ b/lucene/luke/ivy.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + diff --git a/lucene/memory/build.xml b/lucene/memory/build.xml new file mode 100644 index 00000000000..cae567785f8 --- /dev/null +++ b/lucene/memory/build.xml @@ -0,0 +1,34 @@ + + + + + + + + Single-document in-memory index implementation + + + + + + + + + + + diff --git a/lucene/memory/ivy.xml b/lucene/memory/ivy.xml new file mode 100644 index 00000000000..61f06f6b60c --- /dev/null +++ b/lucene/memory/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/misc/build.xml b/lucene/misc/build.xml new file mode 100644 index 00000000000..f076eba9e3e --- /dev/null +++ b/lucene/misc/build.xml @@ -0,0 +1,52 @@ + + + + + + + + Index tools and other miscellaneous code + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/misc/ivy.xml b/lucene/misc/ivy.xml new file mode 100644 index 00000000000..c339fee6ba8 --- /dev/null +++ b/lucene/misc/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/module-build.xml b/lucene/module-build.xml new file mode 100644 index 00000000000..947b4b5fb62 --- /dev/null +++ b/lucene/module-build.xml @@ -0,0 +1,721 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/monitor/build.xml b/lucene/monitor/build.xml new file mode 100644 index 00000000000..c378c1df97e --- /dev/null +++ b/lucene/monitor/build.xml @@ -0,0 +1,53 @@ + + + + + + + + Reverse-search implementation for monitoring and classification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/monitor/ivy.xml b/lucene/monitor/ivy.xml new file mode 100644 index 00000000000..9485d48db13 --- /dev/null +++ b/lucene/monitor/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/queries/build.xml b/lucene/queries/build.xml new file mode 100644 index 00000000000..20f9c4fc4d0 --- /dev/null +++ b/lucene/queries/build.xml @@ -0,0 +1,32 @@ + + + + + Filters and Queries that add to core Lucene + + + + + + + + + + + + diff --git a/lucene/queries/ivy.xml b/lucene/queries/ivy.xml new file mode 100644 index 00000000000..403c495d69a --- /dev/null +++ b/lucene/queries/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/queryparser/build.xml b/lucene/queryparser/build.xml new file mode 100644 index 00000000000..b6e43c2ce26 --- /dev/null +++ b/lucene/queryparser/build.xml @@ -0,0 +1,178 @@ + + + + + Query parsers and parsing framework + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/queryparser/ivy.xml b/lucene/queryparser/ivy.xml new file mode 100644 index 00000000000..9337401fd6d --- /dev/null +++ b/lucene/queryparser/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/queryparser/xmldtddocbuild.xml b/lucene/queryparser/xmldtddocbuild.xml new file mode 100644 index 00000000000..c36a6adf1f8 --- /dev/null +++ b/lucene/queryparser/xmldtddocbuild.xml @@ -0,0 +1,53 @@ + + + + + + + + + + This file generates DTDdocumentation + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/replicator/build.xml b/lucene/replicator/build.xml new file mode 100644 index 00000000000..796bf2727fb --- /dev/null +++ b/lucene/replicator/build.xml @@ -0,0 +1,53 @@ + + + + + + Files replication utility + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/replicator/ivy.xml b/lucene/replicator/ivy.xml new file mode 100644 index 00000000000..24b053cb764 --- /dev/null +++ b/lucene/replicator/ivy.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/sandbox/build.xml b/lucene/sandbox/build.xml new file mode 100644 index 00000000000..93bc2754ece --- /dev/null +++ b/lucene/sandbox/build.xml @@ -0,0 +1,26 @@ + + + + + + Various third party contributions and new ideas + + + + + diff --git a/lucene/sandbox/ivy.xml b/lucene/sandbox/ivy.xml new file mode 100644 index 00000000000..4c5a43e0812 --- /dev/null +++ b/lucene/sandbox/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/spatial-extras/build.xml b/lucene/spatial-extras/build.xml new file mode 100644 index 00000000000..d95d935269b --- /dev/null +++ b/lucene/spatial-extras/build.xml @@ -0,0 +1,62 @@ + + + + + Geospatial search + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/spatial-extras/ivy.xml b/lucene/spatial-extras/ivy.xml new file mode 100644 index 00000000000..f8dba4e2cca --- /dev/null +++ b/lucene/spatial-extras/ivy.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/spatial3d/build.xml b/lucene/spatial3d/build.xml new file mode 100644 index 00000000000..fbe9e0685f7 --- /dev/null +++ b/lucene/spatial3d/build.xml @@ -0,0 +1,30 @@ + + + + + 3D spatial planar geometry APIs + + + + + + + + diff --git a/lucene/spatial3d/ivy.xml b/lucene/spatial3d/ivy.xml new file mode 100644 index 00000000000..e9d2ee74627 --- /dev/null +++ b/lucene/spatial3d/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/suggest/build.xml b/lucene/suggest/build.xml new file mode 100644 index 00000000000..47d4a63fefb --- /dev/null +++ b/lucene/suggest/build.xml @@ -0,0 +1,47 @@ + + + + + + + + Auto-suggest and Spellchecking support + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/suggest/ivy.xml b/lucene/suggest/ivy.xml new file mode 100644 index 00000000000..343853aaa7b --- /dev/null +++ b/lucene/suggest/ivy.xml @@ -0,0 +1,21 @@ + + + + diff --git a/lucene/test-framework/build.xml b/lucene/test-framework/build.xml new file mode 100644 index 00000000000..844c5577179 --- /dev/null +++ b/lucene/test-framework/build.xml @@ -0,0 +1,82 @@ + + + + + + Framework for testing Lucene-based applications + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/test-framework/ivy.xml b/lucene/test-framework/ivy.xml new file mode 100644 index 00000000000..984e4948186 --- /dev/null +++ b/lucene/test-framework/ivy.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/lucene/tools/build.xml b/lucene/tools/build.xml new file mode 100644 index 00000000000..b245dce2e9a --- /dev/null +++ b/lucene/tools/build.xml @@ -0,0 +1,64 @@ + + + + + + Lucene Tools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lucene/tools/custom-tasks.xml b/lucene/tools/custom-tasks.xml new file mode 100644 index 00000000000..4b5c3ea8ce2 --- /dev/null +++ b/lucene/tools/custom-tasks.xml @@ -0,0 +1,149 @@ + + + + This file is designed for importing into a main build file, and not intended + for standalone use. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + License check under: @{dir} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lib versions check under: @{dir} + + + + + + + + + + + + + + + + + + + + + + Get maven dependencies called under: @{dir} + + + + + + + + + + + + + + + + + + diff --git a/lucene/tools/ivy.xml b/lucene/tools/ivy.xml new file mode 100644 index 00000000000..1fa2974f85b --- /dev/null +++ b/lucene/tools/ivy.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/lucene/tools/src/java/lucene-solr.antlib.xml b/lucene/tools/src/java/lucene-solr.antlib.xml new file mode 100644 index 00000000000..94a102d15a7 --- /dev/null +++ b/lucene/tools/src/java/lucene-solr.antlib.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/lucene/tools/src/java/org/apache/lucene/validation/ivyde/IvyNodeElement.java b/lucene/tools/src/java/org/apache/lucene/validation/ivyde/IvyNodeElement.java new file mode 100644 index 00000000000..287527e2e3c --- /dev/null +++ b/lucene/tools/src/java/org/apache/lucene/validation/ivyde/IvyNodeElement.java @@ -0,0 +1,178 @@ +/* + * 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. + */ +package org.apache.lucene.validation.ivyde; + +import org.apache.ivy.core.module.id.ModuleRevisionId; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; + +/** + * Assists in the further separation of concerns between the view and the Ivy resolve report. The view looks at the + * IvyNode in a unique way that can lead to expensive operations if we do not achieve this separation. + * + * This class is copied from org/apache/ivyde/eclipse/resolvevisualizer/model/IvyNodeElement.java at + * https://svn.apache.org/repos/asf/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse.resolvevisualizer/src/ + * + * Changes include: uncommenting generics and converting to diamond operators where appropriate; + * removing unnecessary casts; removing javadoc tags with no description; and adding a hashCode() implementation. + */ +public class IvyNodeElement { + private ModuleRevisionId moduleRevisionId; + private boolean evicted = false; + private int depth = Integer.MAX_VALUE / 10; + private Collection dependencies = new HashSet<>(); + private Collection callers = new HashSet<>(); + private Collection conflicts = new HashSet<>(); + + /** + * The caller configurations that caused this node to be reached in the resolution, grouped by caller. + */ + private MapcallerConfigurationMap = new HashMap<>(); + + /** + * We try to avoid building the list of this nodes deep dependencies by storing them in this cache by depth level. + */ + private IvyNodeElement[] deepDependencyCache; + + @Override + public boolean equals(Object obj) { + if (obj instanceof IvyNodeElement) { + IvyNodeElement elem = (IvyNodeElement) obj; + if (elem.getOrganization().equals(getOrganization()) && elem.getName().equals(getName()) + && elem.getRevision().equals(getRevision())) + return true; + } + return false; + } + + @Override + public int hashCode() { + int result = 1; + result = result * 31 + (null == getOrganization() ? 0 : getOrganization().hashCode()); + result = result * 31 + (null == getName() ? 0 : getName().hashCode()); + result = result * 31 + (null == getRevision() ? 0 : getRevision().hashCode()); + return result; + } + + public IvyNodeElement[] getDependencies() { + return dependencies.toArray(new IvyNodeElement[dependencies.size()]); + } + + /** + * Recursive dependency retrieval + * + * @return The array of nodes that represents a node's immediate and transitive dependencies down to an arbitrary + * depth. + */ + public IvyNodeElement[] getDeepDependencies() { + if (deepDependencyCache == null) { + Collection deepDependencies = getDeepDependencies(this); + deepDependencyCache = deepDependencies.toArray(new IvyNodeElement[deepDependencies.size()]); + } + return deepDependencyCache; + } + + /** + * Recursive dependency retrieval + */ + private Collection getDeepDependencies(IvyNodeElement node) { + Collection deepDependencies = new HashSet<>(); + deepDependencies.add(node); + + IvyNodeElement[] directDependencies = node.getDependencies(); + for (int i = 0; i < directDependencies.length; i++) { + deepDependencies.addAll(getDeepDependencies(directDependencies[i])); + } + + return deepDependencies; + } + + /** + * @return An array of configurations by which this module was resolved + */ + public String[] getCallerConfigurations(IvyNodeElement caller) { + return callerConfigurationMap.get(caller); + } + + public void setCallerConfigurations(IvyNodeElement caller, String[] configurations) { + callerConfigurationMap.put(caller, configurations); + } + + public String getOrganization() { + return moduleRevisionId.getOrganisation(); + } + + public String getName() { + return moduleRevisionId.getName(); + } + + public String getRevision() { + return moduleRevisionId.getRevision(); + } + + public boolean isEvicted() { + return evicted; + } + + public void setEvicted(boolean evicted) { + this.evicted = evicted; + } + + public int getDepth() { + return depth; + } + + /** + * Set this node's depth and recursively update the node's children to relative to the new value. + */ + public void setDepth(int depth) { + this.depth = depth; + for (Iterator iter = dependencies.iterator(); iter.hasNext();) { + IvyNodeElement dependency = iter.next(); + dependency.setDepth(depth + 1); + } + } + + public IvyNodeElement[] getConflicts() { + return conflicts.toArray(new IvyNodeElement[conflicts.size()]); + } + + public void setConflicts(Collection conflicts) { + this.conflicts = conflicts; + } + + public ModuleRevisionId getModuleRevisionId() { + return moduleRevisionId; + } + + public void setModuleRevisionId(ModuleRevisionId moduleRevisionId) { + this.moduleRevisionId = moduleRevisionId; + } + + public void addCaller(IvyNodeElement caller) { + callers.add(caller); + caller.dependencies.add(this); + } + + public IvyNodeElement[] getCallers() { + return callers.toArray(new IvyNodeElement[callers.size()]); + } +} \ No newline at end of file diff --git a/lucene/tools/src/java/org/apache/lucene/validation/ivyde/IvyNodeElementAdapter.java b/lucene/tools/src/java/org/apache/lucene/validation/ivyde/IvyNodeElementAdapter.java new file mode 100644 index 00000000000..c754dd4013f --- /dev/null +++ b/lucene/tools/src/java/org/apache/lucene/validation/ivyde/IvyNodeElementAdapter.java @@ -0,0 +1,135 @@ +/* + * 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. + */ +package org.apache.lucene.validation.ivyde; + +import org.apache.ivy.core.module.id.ModuleId; +import org.apache.ivy.core.module.id.ModuleRevisionId; +import org.apache.ivy.core.report.ResolveReport; +import org.apache.ivy.core.resolve.IvyNode; +import org.apache.ivy.core.resolve.IvyNodeCallers; + +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * This class is copied from org/apache/ivyde/eclipse/resolvevisualizer/model/IvyNodeElementAdapter.java at + * https://svn.apache.org/repos/asf/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse.resolvevisualizer/src/ + * + * Changes include: uncommenting generics and converting to diamond operators where appropriate; + * removing unnecessary casts; and removing javadoc tags with no description. + */ +public class IvyNodeElementAdapter { + /** + * Adapt all dependencies and evictions from the ResolveReport. + * @return the root node adapted from the ResolveReport + */ + public static IvyNodeElement adapt(ResolveReport report) { + Map resolvedNodes = new HashMap<>(); + + IvyNodeElement root = new IvyNodeElement(); + root.setModuleRevisionId(report.getModuleDescriptor().getModuleRevisionId()); + resolvedNodes.put(report.getModuleDescriptor().getModuleRevisionId(), root); + + @SuppressWarnings("unchecked") List dependencies = report.getDependencies(); + + // First pass - build the map of resolved nodes by revision id + for (Iterator iter = dependencies.iterator(); iter.hasNext();) { + IvyNode node = iter.next(); + if (node.getAllEvictingNodes() != null) { + // Nodes that are evicted as a result of conf inheritance still appear + // as dependencies, but with eviction data. They also appear as evictions. + // We map them as evictions rather than dependencies. + continue; + } + IvyNodeElement nodeElement = new IvyNodeElement(); + nodeElement.setModuleRevisionId(node.getResolvedId()); + resolvedNodes.put(node.getResolvedId(), nodeElement); + } + + // Second pass - establish relationships between the resolved nodes + for (Iterator iter = dependencies.iterator(); iter.hasNext();) { + IvyNode node = iter.next(); + if (node.getAllEvictingNodes() != null) { + continue; // see note above + } + + IvyNodeElement nodeElement = resolvedNodes.get(node.getResolvedId()); + IvyNodeCallers.Caller[] callers = node.getAllRealCallers(); + for (int i = 0; i < callers.length; i++) { + IvyNodeElement caller = resolvedNodes.get(callers[i].getModuleRevisionId()); + if (caller != null) { + nodeElement.addCaller(caller); + nodeElement.setCallerConfigurations(caller, callers[i].getCallerConfigurations()); + } + } + } + + IvyNode[] evictions = report.getEvictedNodes(); + for (int i = 0; i < evictions.length; i++) { + IvyNode eviction = evictions[i]; + IvyNodeElement evictionElement = new IvyNodeElement(); + evictionElement.setModuleRevisionId(eviction.getResolvedId()); + evictionElement.setEvicted(true); + + IvyNodeCallers.Caller[] callers = eviction.getAllCallers(); + for (int j = 0; j < callers.length; j++) { + IvyNodeElement caller = resolvedNodes.get(callers[j].getModuleRevisionId()); + if (caller != null) { + evictionElement.addCaller(caller); + evictionElement.setCallerConfigurations(caller, callers[j].getCallerConfigurations()); + } + } + } + + // Recursively set depth starting at root + root.setDepth(0); + findConflictsBeneathNode(root); + + return root; + } + + /** + * Derives configuration conflicts that exist between node and all of its descendant dependencies. + */ + private static void findConflictsBeneathNode(IvyNodeElement node) { + // Derive conflicts + Map> moduleRevisionMap = new HashMap<>(); + IvyNodeElement[] deepDependencies = node.getDeepDependencies(); + for (int i = 0; i < deepDependencies.length; i++) { + if (deepDependencies[i].isEvicted()) + continue; + + ModuleId moduleId = deepDependencies[i].getModuleRevisionId().getModuleId(); + if (moduleRevisionMap.containsKey(moduleId)) { + Collection conflicts = moduleRevisionMap.get(moduleId); + conflicts.add(deepDependencies[i]); + for (Iterator iter = conflicts.iterator(); iter.hasNext();) { + IvyNodeElement conflict = iter.next(); + conflict.setConflicts(conflicts); + } + } else { + List immutableMatchingSet = Arrays.asList(deepDependencies[i]); + moduleRevisionMap.put(moduleId, new HashSet<>(immutableMatchingSet)); + } + } + } +} \ No newline at end of file diff --git a/lucene/top-level-ivy-settings.xml b/lucene/top-level-ivy-settings.xml new file mode 100644 index 00000000000..175cf4dd94d --- /dev/null +++ b/lucene/top-level-ivy-settings.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 640378ecdba..2ef2d5ed357 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -114,8 +114,6 @@ Other Changes * SOLR-14702: All references to "master" and "slave" replaced with "leader" and "follower" (MarcusSorealheis, Erick Erickson, Tomás Fernández Löbbe) -* LUCENE-9433: Remove Ant support from trunk (Erick Erickson) - Bug Fixes --------------------- * SOLR-14546: Fix for a relatively hard to hit issue in OverseerTaskProcessor that could lead to out of order execution diff --git a/solr/README.md b/solr/README.md index 176e007f19c..66e2fff2b03 100644 --- a/solr/README.md +++ b/solr/README.md @@ -163,22 +163,30 @@ Instructions for Building Apache Solr from Source folder included on your command path. To test this, issue a "java -version" command from your shell (command prompt) and verify that the Java version is 11 or later. -2. Download the Apache Solr distribution, linked from the above web site. +2. Download the Apache Ant binary distribution (1.8.2+) from + http://ant.apache.org/ You will need Ant installed and the $ANT_HOME/bin (Windows: + %ANT_HOME%\bin) folder included on your command path. To test this, issue a + "ant -version" command from your shell (command prompt) and verify that Ant is + available. + + You will also need to install Apache Ivy binary distribution (2.2.0) from + http://ant.apache.org/ivy/ and place ivy-2.2.0.jar file in ~/.ant/lib -- if you skip + this step, the Solr build system will offer to do it for you. + +3. Download the Apache Solr distribution, linked from the above web site. Unzip the distribution to a folder of your choice, e.g. C:\solr or ~/solr Alternately, you can obtain a copy of the latest Apache Solr source code directly from the GIT repository: - https://lucene.apache.org/solr/community.html#version-control + https://lucene.apache.org/solr/versioncontrol.html -3. Navigate to the root of your source tree folder and issue the `./gradlew tasks` - command to see the available options for building, testing, and packaging Solr. +4. Navigate to the "solr" folder and issue an "ant" command to see the available options + for building, testing, and packaging Solr. + + NOTE: + To see Solr in action, you may want to use the "ant server" command to build + and package Solr into the server directory. See also server/README.md. - `./gradlew assemble` will create a Solr executable. - cd to "./solr/packaging/build/solr-9.0.0-SNAPSHOT" and run the bin/solr script - to start Solr. - - NOTE: `gradlew` is the "Gradle Wrapper" and will automaticaly download and - start using the correct version of Gradle. Export control ------------------------------------------------- diff --git a/solr/build.xml b/solr/build.xml new file mode 100644 index 00000000000..c3cf6bc6a13 --- /dev/null +++ b/solr/build.xml @@ -0,0 +1,813 @@ + + + + + Solr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + See ${common-solr.dir}/README.md for how to run the Solr server. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/common-build.xml b/solr/common-build.xml new file mode 100644 index 00000000000..c76944d6066 --- /dev/null +++ b/solr/common-build.xml @@ -0,0 +1,551 @@ + + + + + This file is designed for importing into a main build file, and not intended + for standalone use. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/analysis-extras/build.xml b/solr/contrib/analysis-extras/build.xml new file mode 100644 index 00000000000..68a88ad360d --- /dev/null +++ b/solr/contrib/analysis-extras/build.xml @@ -0,0 +1,92 @@ + + + + + + + + Additional analysis components + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/analysis-extras/ivy.xml b/solr/contrib/analysis-extras/ivy.xml new file mode 100644 index 00000000000..a4279033d63 --- /dev/null +++ b/solr/contrib/analysis-extras/ivy.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/analytics/build.xml b/solr/contrib/analytics/build.xml new file mode 100644 index 00000000000..27da8d5df39 --- /dev/null +++ b/solr/contrib/analytics/build.xml @@ -0,0 +1,28 @@ + + + + + + + + Analytics Package + + + + + diff --git a/solr/contrib/analytics/ivy.xml b/solr/contrib/analytics/ivy.xml new file mode 100644 index 00000000000..914f08edb14 --- /dev/null +++ b/solr/contrib/analytics/ivy.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/solr/contrib/clustering/build.xml b/solr/contrib/clustering/build.xml new file mode 100644 index 00000000000..7340a1ff3f9 --- /dev/null +++ b/solr/contrib/clustering/build.xml @@ -0,0 +1,28 @@ + + + + + + + + Clustering Integraton + + + + + diff --git a/solr/contrib/clustering/ivy.xml b/solr/contrib/clustering/ivy.xml new file mode 100644 index 00000000000..1de378ceb89 --- /dev/null +++ b/solr/contrib/clustering/ivy.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/contrib-build.xml b/solr/contrib/contrib-build.xml new file mode 100644 index 00000000000..6a3fb1177fd --- /dev/null +++ b/solr/contrib/contrib-build.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/dataimporthandler-extras/build.xml b/solr/contrib/dataimporthandler-extras/build.xml new file mode 100644 index 00000000000..5cdd838f0b4 --- /dev/null +++ b/solr/contrib/dataimporthandler-extras/build.xml @@ -0,0 +1,96 @@ + + + + + + + + Data Import Handler Extras + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/dataimporthandler-extras/ivy.xml b/solr/contrib/dataimporthandler-extras/ivy.xml new file mode 100644 index 00000000000..63968d8a371 --- /dev/null +++ b/solr/contrib/dataimporthandler-extras/ivy.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/dataimporthandler/build.xml b/solr/contrib/dataimporthandler/build.xml new file mode 100644 index 00000000000..a07e5345ea7 --- /dev/null +++ b/solr/contrib/dataimporthandler/build.xml @@ -0,0 +1,32 @@ + + + + + + + + Data Import Handler + + + + + + + + + diff --git a/solr/contrib/dataimporthandler/ivy.xml b/solr/contrib/dataimporthandler/ivy.xml new file mode 100644 index 00000000000..67af77b03a4 --- /dev/null +++ b/solr/contrib/dataimporthandler/ivy.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/extraction/build.xml b/solr/contrib/extraction/build.xml new file mode 100644 index 00000000000..ab56899250e --- /dev/null +++ b/solr/contrib/extraction/build.xml @@ -0,0 +1,28 @@ + + + + + + + + Solr Integration with Tika for extracting content from binary file formats such as Microsoft Word and Adobe PDF. + + + + + diff --git a/solr/contrib/extraction/ivy.xml b/solr/contrib/extraction/ivy.xml new file mode 100644 index 00000000000..fb95664d4da --- /dev/null +++ b/solr/contrib/extraction/ivy.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/jaegertracer-configurator/build.xml b/solr/contrib/jaegertracer-configurator/build.xml new file mode 100644 index 00000000000..379eea38735 --- /dev/null +++ b/solr/contrib/jaegertracer-configurator/build.xml @@ -0,0 +1,34 @@ + + + + + + + + Jaeger tracer configurator for tracing Solr using OpenTracing with Jaeger backend. + + + + + + + + + + + diff --git a/solr/contrib/jaegertracer-configurator/ivy.xml b/solr/contrib/jaegertracer-configurator/ivy.xml new file mode 100644 index 00000000000..5243ca38f4e --- /dev/null +++ b/solr/contrib/jaegertracer-configurator/ivy.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + diff --git a/solr/contrib/langid/build.xml b/solr/contrib/langid/build.xml new file mode 100644 index 00000000000..8c9a8adbc4c --- /dev/null +++ b/solr/contrib/langid/build.xml @@ -0,0 +1,102 @@ + + + + + + + + Language Identifier contrib for extracting language from a document being indexed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/langid/ivy.xml b/solr/contrib/langid/ivy.xml new file mode 100644 index 00000000000..04c6b253e5b --- /dev/null +++ b/solr/contrib/langid/ivy.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + diff --git a/solr/contrib/ltr/build.xml b/solr/contrib/ltr/build.xml new file mode 100644 index 00000000000..a5778c44147 --- /dev/null +++ b/solr/contrib/ltr/build.xml @@ -0,0 +1,35 @@ + + + + + + + + Learning to Rank Package + + + + + + + + + + + + diff --git a/solr/contrib/ltr/ivy.xml b/solr/contrib/ltr/ivy.xml new file mode 100644 index 00000000000..3b7e1c70b3c --- /dev/null +++ b/solr/contrib/ltr/ivy.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/solr/contrib/prometheus-exporter/build.xml b/solr/contrib/prometheus-exporter/build.xml new file mode 100644 index 00000000000..3c6ce7e7fc8 --- /dev/null +++ b/solr/contrib/prometheus-exporter/build.xml @@ -0,0 +1,64 @@ + + + + + + + + Prometheus exporter for exposing metrics from Solr using Metrics API and Search API. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/prometheus-exporter/ivy.xml b/solr/contrib/prometheus-exporter/ivy.xml new file mode 100644 index 00000000000..7d62a3e1b19 --- /dev/null +++ b/solr/contrib/prometheus-exporter/ivy.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/contrib/velocity/build.xml b/solr/contrib/velocity/build.xml new file mode 100644 index 00000000000..a6712afcd79 --- /dev/null +++ b/solr/contrib/velocity/build.xml @@ -0,0 +1,28 @@ + + + + + + + + Solr Velocity Response Writer + + + + + diff --git a/solr/contrib/velocity/ivy.xml b/solr/contrib/velocity/ivy.xml new file mode 100644 index 00000000000..ab8758baa8b --- /dev/null +++ b/solr/contrib/velocity/ivy.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + diff --git a/solr/core/build.xml b/solr/core/build.xml new file mode 100644 index 00000000000..3c3d28a6d59 --- /dev/null +++ b/solr/core/build.xml @@ -0,0 +1,131 @@ + + + + Solr Core + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/core/ivy.xml b/solr/core/ivy.xml new file mode 100644 index 00000000000..3bb6682bbac --- /dev/null +++ b/solr/core/ivy.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/example/example-DIH/build.xml b/solr/example/example-DIH/build.xml new file mode 100644 index 00000000000..77abc2db879 --- /dev/null +++ b/solr/example/example-DIH/build.xml @@ -0,0 +1,42 @@ + + + + Solr Example-DIH + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/example/example-DIH/ivy.xml b/solr/example/example-DIH/ivy.xml new file mode 100644 index 00000000000..3f67a79574e --- /dev/null +++ b/solr/example/example-DIH/ivy.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/solr/licenses/ant-1.8.2.jar.sha1 b/solr/licenses/ant-1.8.2.jar.sha1 new file mode 100644 index 00000000000..564db78dfdc --- /dev/null +++ b/solr/licenses/ant-1.8.2.jar.sha1 @@ -0,0 +1 @@ +fc33bf7cd8c5309dd7b81228e8626515ee42efd9 diff --git a/solr/licenses/ant-LICENSE-ASL.txt b/solr/licenses/ant-LICENSE-ASL.txt new file mode 100644 index 00000000000..ab3182e7776 --- /dev/null +++ b/solr/licenses/ant-LICENSE-ASL.txt @@ -0,0 +1,272 @@ +/* + * Apache License + * Version 2.0, January 2004 + * http://www.apache.org/licenses/ + * + * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + * + * 1. Definitions. + * + * "License" shall mean the terms and conditions for use, reproduction, + * and distribution as defined by Sections 1 through 9 of this document. + * + * "Licensor" shall mean the copyright owner or entity authorized by + * the copyright owner that is granting the License. + * + * "Legal Entity" shall mean the union of the acting entity and all + * other entities that control, are controlled by, or are under common + * control with that entity. For the purposes of this definition, + * "control" means (i) the power, direct or indirect, to cause the + * direction or management of such entity, whether by contract or + * otherwise, or (ii) ownership of fifty percent (50%) or more of the + * outstanding shares, or (iii) beneficial ownership of such entity. + * + * "You" (or "Your") shall mean an individual or Legal Entity + * exercising permissions granted by this License. + * + * "Source" form shall mean the preferred form for making modifications, + * including but not limited to software source code, documentation + * source, and configuration files. + * + * "Object" form shall mean any form resulting from mechanical + * transformation or translation of a Source form, including but + * not limited to compiled object code, generated documentation, + * and conversions to other media types. + * + * "Work" shall mean the work of authorship, whether in Source or + * Object form, made available under the License, as indicated by a + * copyright notice that is included in or attached to the work + * (an example is provided in the Appendix below). + * + * "Derivative Works" shall mean any work, whether in Source or Object + * form, that is based on (or derived from) the Work and for which the + * editorial revisions, annotations, elaborations, or other modifications + * represent, as a whole, an original work of authorship. For the purposes + * of this License, Derivative Works shall not include works that remain + * separable from, or merely link (or bind by name) to the interfaces of, + * the Work and Derivative Works thereof. + * + * "Contribution" shall mean any work of authorship, including + * the original version of the Work and any modifications or additions + * to that Work or Derivative Works thereof, that is intentionally + * submitted to Licensor for inclusion in the Work by the copyright owner + * or by an individual or Legal Entity authorized to submit on behalf of + * the copyright owner. For the purposes of this definition, "submitted" + * means any form of electronic, verbal, or written communication sent + * to the Licensor or its representatives, including but not limited to + * communication on electronic mailing lists, source code control systems, + * and issue tracking systems that are managed by, or on behalf of, the + * Licensor for the purpose of discussing and improving the Work, but + * excluding communication that is conspicuously marked or otherwise + * designated in writing by the copyright owner as "Not a Contribution." + * + * "Contributor" shall mean Licensor and any individual or Legal Entity + * on behalf of whom a Contribution has been received by Licensor and + * subsequently incorporated within the Work. + * + * 2. Grant of Copyright License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * copyright license to reproduce, prepare Derivative Works of, + * publicly display, publicly perform, sublicense, and distribute the + * Work and such Derivative Works in Source or Object form. + * + * 3. Grant of Patent License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * (except as stated in this section) patent license to make, have made, + * use, offer to sell, sell, import, and otherwise transfer the Work, + * where such license applies only to those patent claims licensable + * by such Contributor that are necessarily infringed by their + * Contribution(s) alone or by combination of their Contribution(s) + * with the Work to which such Contribution(s) was submitted. If You + * institute patent litigation against any entity (including a + * cross-claim or counterclaim in a lawsuit) alleging that the Work + * or a Contribution incorporated within the Work constitutes direct + * or contributory patent infringement, then any patent licenses + * granted to You under this License for that Work shall terminate + * as of the date such litigation is filed. + * + * 4. Redistribution. You may reproduce and distribute copies of the + * Work or Derivative Works thereof in any medium, with or without + * modifications, and in Source or Object form, provided that You + * meet the following conditions: + * + * (a) You must give any other recipients of the Work or + * Derivative Works a copy of this License; and + * + * (b) You must cause any modified files to carry prominent notices + * stating that You changed the files; and + * + * (c) You must retain, in the Source form of any Derivative Works + * that You distribute, all copyright, patent, trademark, and + * attribution notices from the Source form of the Work, + * excluding those notices that do not pertain to any part of + * the Derivative Works; and + * + * (d) If the Work includes a "NOTICE" text file as part of its + * distribution, then any Derivative Works that You distribute must + * include a readable copy of the attribution notices contained + * within such NOTICE file, excluding those notices that do not + * pertain to any part of the Derivative Works, in at least one + * of the following places: within a NOTICE text file distributed + * as part of the Derivative Works; within the Source form or + * documentation, if provided along with the Derivative Works; or, + * within a display generated by the Derivative Works, if and + * wherever such third-party notices normally appear. The contents + * of the NOTICE file are for informational purposes only and + * do not modify the License. You may add Your own attribution + * notices within Derivative Works that You distribute, alongside + * or as an addendum to the NOTICE text from the Work, provided + * that such additional attribution notices cannot be construed + * as modifying the License. + * + * You may add Your own copyright statement to Your modifications and + * may provide additional or different license terms and conditions + * for use, reproduction, or distribution of Your modifications, or + * for any such Derivative Works as a whole, provided Your use, + * reproduction, and distribution of the Work otherwise complies with + * the conditions stated in this License. + * + * 5. Submission of Contributions. Unless You explicitly state otherwise, + * any Contribution intentionally submitted for inclusion in the Work + * by You to the Licensor shall be under the terms and conditions of + * this License, without any additional terms or conditions. + * Notwithstanding the above, nothing herein shall supersede or modify + * the terms of any separate license agreement you may have executed + * with Licensor regarding such Contributions. + * + * 6. Trademarks. This License does not grant permission to use the trade + * names, trademarks, service marks, or product names of the Licensor, + * except as required for reasonable and customary use in describing the + * origin of the Work and reproducing the content of the NOTICE file. + * + * 7. Disclaimer of Warranty. Unless required by applicable law or + * agreed to in writing, Licensor provides the Work (and each + * Contributor provides its Contributions) on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied, including, without limitation, any warranties or conditions + * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + * PARTICULAR PURPOSE. You are solely responsible for determining the + * appropriateness of using or redistributing the Work and assume any + * risks associated with Your exercise of permissions under this License. + * + * 8. Limitation of Liability. In no event and under no legal theory, + * whether in tort (including negligence), contract, or otherwise, + * unless required by applicable law (such as deliberate and grossly + * negligent acts) or agreed to in writing, shall any Contributor be + * liable to You for damages, including any direct, indirect, special, + * incidental, or consequential damages of any character arising as a + * result of this License or out of the use or inability to use the + * Work (including but not limited to damages for loss of goodwill, + * work stoppage, computer failure or malfunction, or any and all + * other commercial damages or losses), even if such Contributor + * has been advised of the possibility of such damages. + * + * 9. Accepting Warranty or Additional Liability. While redistributing + * the Work or Derivative Works thereof, You may choose to offer, + * and charge a fee for, acceptance of support, warranty, indemnity, + * or other liability obligations and/or rights consistent with this + * License. However, in accepting such obligations, You may act only + * on Your own behalf and on Your sole responsibility, not on behalf + * of any other Contributor, and only if You agree to indemnify, + * defend, and hold each Contributor harmless for any liability + * incurred by, or claims asserted against, such Contributor by reason + * of your accepting any such warranty or additional liability. + * + * END OF TERMS AND CONDITIONS + * + * APPENDIX: How to apply the Apache License to your work. + * + * To apply the Apache License to your work, attach the following + * boilerplate notice, with the fields enclosed by brackets "[]" + * replaced with your own identifying information. (Don't include + * the brackets!) The text should be enclosed in the appropriate + * comment syntax for the file format. We also recommend that a + * file or class name and description of purpose be included on the + * same "printed page" as the copyright notice for easier + * identification within third-party archives. + * + * Copyright [yyyy] [name of copyright owner] + * + * Licensed 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. + */ + +W3C® SOFTWARE NOTICE AND LICENSE +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license. By obtaining, using and/or copying this work, you (the licensee) agree +that you have read, understood, and will comply with the following terms and +conditions. + +Permission to copy, modify, and distribute this software and its documentation, +with or without modification, for any purpose and without fee or royalty is +hereby granted, provided that you include the following on ALL copies of the +software and documentation or portions thereof, including modifications: + + 1. The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. + 2. Any pre-existing intellectual property disclaimers, notices, or terms + and conditions. If none exist, the W3C Software Short Notice should be + included (hypertext is preferred, text is permitted) within the body + of any redistributed or derivative code. + 3. Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from + which the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE +NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT +THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY +PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. + +The name and trademarks of copyright holders may NOT be used in advertising or +publicity pertaining to the software without specific, written prior permission. +Title to copyright in this software and any associated documentation will at +all times remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 2002. +This version removes the copyright ownership notice such that this license can +be used with materials other than those owned by the W3C, reflects that ERCIM +is now a host of the W3C, includes references to this specific dated version of +the license, and removes the ambiguous grant of "use". Otherwise, this version +is the same as the previous version and is written so as to preserve the Free +Software Foundation's assessment of GPL compatibility and OSI's certification +under the Open Source Definition. Please see our Copyright FAQ for common +questions about using materials from our site, including specific terms and +conditions for packages like libwww, Amaya, and Jigsaw. Other questions about +this notice can be directed to site-policy@w3.org. + +Joseph Reagle + +This license came from: http://www.megginson.com/SAX/copying.html + However please note future versions of SAX may be covered + under http://saxproject.org/?selected=pd + +SAX2 is Free! + +I hereby abandon any property rights to SAX 2.0 (the Simple API for +XML), and release all of the SAX 2.0 source code, compiled code, and +documentation contained in this distribution into the Public Domain. +SAX comes with NO WARRANTY or guarantee of fitness for any +purpose. + +David Megginson, david@megginson.com +2000-05-05 diff --git a/solr/licenses/ant-NOTICE.txt b/solr/licenses/ant-NOTICE.txt new file mode 100644 index 00000000000..4c88cc6659b --- /dev/null +++ b/solr/licenses/ant-NOTICE.txt @@ -0,0 +1,26 @@ + ========================================================================= + == NOTICE file corresponding to the section 4 d of == + == the Apache License, Version 2.0, == + == in this case for the Apache Ant distribution. == + ========================================================================= + + Apache Ant + Copyright 1999-2008 The Apache Software Foundation + + This product includes software developed by + The Apache Software Foundation (http://www.apache.org/). + + This product includes also software developed by : + - the W3C consortium (http://www.w3c.org) , + - the SAX project (http://www.saxproject.org) + + The task is based on code Copyright (c) 2002, Landmark + Graphics Corp that has been kindly donated to the Apache Software + Foundation. + + Portions of this software were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - voluntary contributions made by Paul Eng on behalf of the + Apache Software Foundation that were originally developed at iClick, Inc., + software copyright (c) 1999. diff --git a/solr/licenses/asciidoctor-ant-1.6.2.jar.sha1 b/solr/licenses/asciidoctor-ant-1.6.2.jar.sha1 new file mode 100644 index 00000000000..558a01f5839 --- /dev/null +++ b/solr/licenses/asciidoctor-ant-1.6.2.jar.sha1 @@ -0,0 +1 @@ +c5ba599e3918e7a3316e6bf110cadd5aeb2a026b diff --git a/solr/licenses/asciidoctor-ant-LICENSE-ASL.txt b/solr/licenses/asciidoctor-ant-LICENSE-ASL.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/solr/licenses/asciidoctor-ant-LICENSE-ASL.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. diff --git a/solr/licenses/asciidoctor-ant-NOTICE.txt b/solr/licenses/asciidoctor-ant-NOTICE.txt new file mode 100644 index 00000000000..4cec1354d75 --- /dev/null +++ b/solr/licenses/asciidoctor-ant-NOTICE.txt @@ -0,0 +1,5 @@ +Apache [asciidoctor-ant] +Copyright [2013] The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). \ No newline at end of file diff --git a/solr/licenses/junit4-ant-2.7.6.jar.sha1 b/solr/licenses/junit4-ant-2.7.6.jar.sha1 new file mode 100644 index 00000000000..5f47480228c --- /dev/null +++ b/solr/licenses/junit4-ant-2.7.6.jar.sha1 @@ -0,0 +1 @@ +38416b709b9d7604cd2b65e5e032b61b5d32e9f2 diff --git a/solr/licenses/junit4-ant-LICENSE-ASL.txt b/solr/licenses/junit4-ant-LICENSE-ASL.txt new file mode 100644 index 00000000000..7a4a3ea2424 --- /dev/null +++ b/solr/licenses/junit4-ant-LICENSE-ASL.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. \ No newline at end of file diff --git a/solr/licenses/junit4-ant-NOTICE.txt b/solr/licenses/junit4-ant-NOTICE.txt new file mode 100644 index 00000000000..3c321aa2516 --- /dev/null +++ b/solr/licenses/junit4-ant-NOTICE.txt @@ -0,0 +1,12 @@ + +JUnit4, parallel JUnit execution for ANT +Copyright 2011-2012 Carrot Search s.c. +http://labs.carrotsearch.com/randomizedtesting.html + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). + +This product includes asm (asmlib), BSD license +This product includes Google Guava, ASL license +This product includes simple-xml, ASL license +This product includes Google GSON, ASL license diff --git a/solr/server/build.xml b/solr/server/build.xml new file mode 100644 index 00000000000..d3d7af6495f --- /dev/null +++ b/solr/server/build.xml @@ -0,0 +1,54 @@ + + + + Solr Server + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/server/ivy.xml b/solr/server/ivy.xml new file mode 100644 index 00000000000..29a66e980a3 --- /dev/null +++ b/solr/server/ivy.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/solr-ref-guide/README.adoc b/solr/solr-ref-guide/README.adoc index 628da06dd86..b8112c1a931 100644 --- a/solr/solr-ref-guide/README.adoc +++ b/solr/solr-ref-guide/README.adoc @@ -39,26 +39,24 @@ Use `gem install concurrent-ruby` to install. == Building the Guide -For details on building the ref guide, see `gradlew tasks`, the `Documentation Tasks` section. +For details on building the ref guide, see `ant -p`. There are currently four available targets: -* `gradlew buildSite`: Builds an HTML Site w/Jekyll and verifies the anchors+links are valid -* `gradlew documentation`: Generate all documentation -* `gradlew javadoc`: Generates Javadoc API documentation for the main source code. -* `gradlew renderJavadoc`: Generates Javadoc API documentation for the main source code. This directly invokes javadoc tool. -* `gradlew renderSiteJavadoc`: Generates Javadoc API documentation for the site (relative links). +* `ant default`: builds the HTML versions of the Solr Ref Guide. +* `ant build-site`: also builds the HTML version. +* `ant clean`: removes the `../build/solr-ref-guide` directory. -The output of all builds will be located in `../solr-ref-guide/build`. +The output of all builds will be located in `../build/solr-ref-guide`. == Key Directories Key directories to be aware of: * `src` - where all human edited `*.adoc` files related to the Guide live, as well as various configuration, theme, and template files. * `tools` - custom Java code for parsing metadata in our `src/*.adoc` files to produce some `_data/` files for site navigation purposes. -* `../solr-ref-guide/build/content` - a copy of the `src` dir generated by gradle where: -** `*.template` files are processed to replace gradle (TODO CHECK!) properties with their runtime values -** some `../solr-ref-guide/build/content/_data` files are generated by our java tools based header attributes from each of the `*.adoc` files -* `../solr-ref-guide/build/html-site` - HTML generated version of the ref guide +* `../build/solr-ref-guide/content` - a copy of the `src` dir generated by ant where: +** `*.template` files are processed to replace ant properties with their runtime values +** some `../build/solr-ref-guide/content/_data` files are generated by our java tools based header attributes from each of the `*.adoc` files +* `../build/solr-ref-guide/html-site` - HTML generated version of the ref guide See the additional documentation in `src/metadocs` for more information about how to edit files, build for releases, or modifying any Jekyll templates. diff --git a/solr/solr-ref-guide/build.gradle b/solr/solr-ref-guide/build.gradle index ac48516cb38..f61a9e0d134 100644 --- a/solr/solr-ref-guide/build.gradle +++ b/solr/solr-ref-guide/build.gradle @@ -108,6 +108,8 @@ sourceSets { main { java { srcDirs = ['tools'] + exclude "**/CustomizedAsciidoctorAntTask.java" + exclude "**/asciidoctor-antlib.xml" } } diff --git a/solr/solr-ref-guide/build.xml b/solr/solr-ref-guide/build.xml new file mode 100644 index 00000000000..6ee239668a9 --- /dev/null +++ b/solr/solr-ref-guide/build.xml @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Copying all non template files from src ... + + + + + + Copy (w/prop replacement) any template files from src... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ready to browse site: ${build.dir}/html-site/${main-page}.html + + + Running Jekyll... + + + + + + + + + + + + + + + + + + + + Validated Links & Anchors via: ${build.dir}/bare-bones-html/ + + + + SITE: ${build.dir}/html-site/${main-page}.html + + + + + diff --git a/solr/solr-ref-guide/ivy.xml b/solr/solr-ref-guide/ivy.xml new file mode 100644 index 00000000000..390eee083f2 --- /dev/null +++ b/solr/solr-ref-guide/ivy.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/solr/solr-ref-guide/src/meta-docs/asciidoc-syntax.adoc b/solr/solr-ref-guide/src/meta-docs/asciidoc-syntax.adoc index 36f9b1aaad7..87cf318cb4a 100644 --- a/solr/solr-ref-guide/src/meta-docs/asciidoc-syntax.adoc +++ b/solr/solr-ref-guide/src/meta-docs/asciidoc-syntax.adoc @@ -88,7 +88,7 @@ Snippets can be included directly from any file in the Lucene/Solr GIT repo by r ---- -- -When building the Guide, the `solr-root-path` attribute will be automatically set correctly for the (temporary) `solr-ref-guide/build/content` directory used by Gradle. +When building the Guide, the `solr-root-path` attribute will be automatically set correctly for the (temporary) `build/solr-ref-guide/content` directory used by Ant. In order for editors (such as ATOM) to be able to offer "live preview" of the `*.adoc` files using these includes, the `solr-root-path` attribute must also be set as a document level attribute in each file, with the correct relative path. diff --git a/solr/solr-ref-guide/src/meta-docs/jekyll.adoc b/solr/solr-ref-guide/src/meta-docs/jekyll.adoc index 6c892380c27..225360772b8 100644 --- a/solr/solr-ref-guide/src/meta-docs/jekyll.adoc +++ b/solr/solr-ref-guide/src/meta-docs/jekyll.adoc @@ -206,12 +206,14 @@ My content... == Building the HTML Site -A Gradle target `gradlew buildSite` when run from the `installation` directory will build the full HTML site (found in `solr/solr-ref-guide/build/html-site`). +An Ant target `ant build-site` when run from the `solr/solr-ref-guide` directory will build the full HTML site (found in `solr/build/solr-ref-guide/html-site`). This target builds the navigation for the left-hand menu, and converts all `.adoc` files to `.html`, including navigation and inter-document links. Building the HTML has several dependencies that will need to be installed on your local machine. Review the `README.adoc` file in the `solr/solr-ref-guide` directory for specific details. +Using the Gradle build does not require any local dependencies. Simply use `./gradlew buildSite` to generate the HTML files using Gradle (these will be found in `solr/solr-ref-guide/build/html-site`). + === Build Validation -When you run `gradlew buildSite` to build the HTML, several additional validations occur during that process. See `solr-ref-guide/tools/CheckLinksAndAnchors.java` for details of what that tool does to validate content. +When you run `ant build-site` to build the HTML, several additional validations occur during that process. See `solr-ref-guide/tools/CheckLinksAndAnchors.java` for details of what that tool does to validate content. diff --git a/solr/solr-ref-guide/src/meta-docs/publish.adoc b/solr/solr-ref-guide/src/meta-docs/publish.adoc index 010f66a7fc0..4ccd15dc610 100644 --- a/solr/solr-ref-guide/src/meta-docs/publish.adoc +++ b/solr/solr-ref-guide/src/meta-docs/publish.adoc @@ -45,7 +45,7 @@ To build the HTML: . Run: + [source,bash] -$ gradlew clean buildSite +$ ant clean default + This will produce pages with a DRAFT watermark across them. While these are fine for initial DRAFT publication, see the section <> for steps to produce final production-ready HTML pages. . The resulting Guide will be in `solr/build/solr-ref-guide`. The HTML files themselves will be in `solr/build/solr-ref-guide/html-site`. @@ -73,7 +73,7 @@ Since the Guide has already been uploaded to SVN, you need to overwrite the exis Build the Guide locally with a parameter for the Guide version. This requires the same <> from above. [source,bash] -$gradlew clean buildSite -Dsolr-guide-version=X.Y +$ant clean default -Dsolr-guide-version=X.Y where `X.Y` is the version you want to publish (i.e., `7.7`). diff --git a/solr/solr-ref-guide/tools/CustomizedAsciidoctorAntTask.java b/solr/solr-ref-guide/tools/CustomizedAsciidoctorAntTask.java new file mode 100644 index 00000000000..5c1d700676d --- /dev/null +++ b/solr/solr-ref-guide/tools/CustomizedAsciidoctorAntTask.java @@ -0,0 +1,34 @@ +/* + * 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. + */ +import org.asciidoctor.ant.AsciidoctorAntTask; + +/** + * Customized version of the default AsciidoctorAntTask + * To deal with the fact that we want sourceDocumentName="" treated the same as unspecified (ie: null) + * in order to be able to wrap in a macro with defaults + */ +public class CustomizedAsciidoctorAntTask extends AsciidoctorAntTask { + @SuppressWarnings("UnusedDeclaration") + public void setSourceDocumentName(String sourceDocumentName) { + if ("".equals(sourceDocumentName)) { + sourceDocumentName = null; + } + super.setSourceDocumentName(sourceDocumentName); + } +} + + diff --git a/solr/solr-ref-guide/tools/asciidoctor-antlib.xml b/solr/solr-ref-guide/tools/asciidoctor-antlib.xml new file mode 100644 index 00000000000..d67e3e15e33 --- /dev/null +++ b/solr/solr-ref-guide/tools/asciidoctor-antlib.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/solr/solrj/build.xml b/solr/solrj/build.xml new file mode 100644 index 00000000000..3393438c6e2 --- /dev/null +++ b/solr/solrj/build.xml @@ -0,0 +1,88 @@ + + + + Solrj - Solr Java Client + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/solrj/ivy.xml b/solr/solrj/ivy.xml new file mode 100644 index 00000000000..5ce77aa9bb5 --- /dev/null +++ b/solr/solrj/ivy.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/test-framework/build.xml b/solr/test-framework/build.xml new file mode 100644 index 00000000000..242c384a7b1 --- /dev/null +++ b/solr/test-framework/build.xml @@ -0,0 +1,121 @@ + + + + Solr Test Framework + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/test-framework/ivy.xml b/solr/test-framework/ivy.xml new file mode 100644 index 00000000000..eb1295f09b9 --- /dev/null +++ b/solr/test-framework/ivy.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/solr/webapp/build.xml b/solr/webapp/build.xml new file mode 100644 index 00000000000..f22c3f3f2a4 --- /dev/null +++ b/solr/webapp/build.xml @@ -0,0 +1,69 @@ + + + + Solr webapp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +