Merging after path copy emulation.

This commit is contained in:
Dawid Weiss 2016-01-23 01:19:00 +01:00
commit 7e7087212b
1697 changed files with 229845 additions and 0 deletions

2289
solr/CHANGES.txt Normal file

File diff suppressed because it is too large Load Diff

453
solr/KEYS Normal file
View File

@ -0,0 +1,453 @@
This file contains the PGP keys of various developers.
Please don't use them for email unless you have to. Their main
purpose is code signing.
Examples of importing this file in your keystore:
gpg --import KEYS.txt
(need pgp and other examples here)
Examples of adding your key to this file:
pgp -kxa <your name> and append it to this file.
(pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
(gpg --list-sigs <your name>
&& gpg --armor --export <your name>) >> this file.
-----------------------------------------------------------------------------------
pub 1024D/015AFC8A 2004-06-18
uid Bertrand Delacretaz <bdelacretaz@apache.org>
sig 3 015AFC8A 2004-06-18 Bertrand Delacretaz <bdelacretaz@apache.org>
sig X CA57AD7C 2005-07-01 PGP Global Directory Verification Key
sig 3 E41EDC7E 2004-10-30 Carsten Ziegeler <cziegeler@apache.org>
sig 3 E2D774DF 2004-10-28 Sylvain Wallez <sylvain@apache.org>
sig 3 7C200941 2004-10-18 Torsten Curdt <tcurdt@apache.org>
sig 3 23CB7A2A 2004-08-19 David Crossley <crossley@apache.org>
sig X CA57AD7C 2005-07-14 PGP Global Directory Verification Key
sig 5793498F 2005-07-20 Tim Ellison <tim@ellison.name>
sig 8103A37E 2005-07-20 Andre Malo <nd@apache.org>
sig C4C57B42 2005-07-21 Marcus Crafter <crafterm@debian.org>
sig E4136392 2005-07-21 Noel J. Bergman <noel@apache.org>
sig 5C1C3AD7 2005-07-24 David Reid <mail@david-reid.com>
sig 1CD4861F 2005-07-25 Eran Chinthaka (Web mail) <eran.chinthaka@gmail.com>
sig 333E4E84 2005-07-25 Chathura Kamalanath Herath (Apachecon Europe 2005) <chathura@apache.org>
sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <ajith@apache.org>
sig 152924AF 2005-07-29 Sander Temme <sander@temme.net>
sig 2 FC243F3C 2005-07-20 Henk P. Penning <penning@cs.uu.nl>
sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 EE65E321 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <coar@OpenSource.Org>
sig 3 21D0A71B 2005-07-20 Dirk-Willem van Gulik <dirkx@asemantics.com>
sig 3 3642CB4B 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 2261D073 2005-07-20 Astrid Kessler (Kess) <kess@kess-net.de>
sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <coar@OpenSource.Org>
sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org>
sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fielding@gbiv.com>
sig 3 5F6B8B72 2005-07-22 Stefan Bodewig <bodewig@apache.org>
sig 3 87315C31 2005-07-23 Rapha<68>l Luta <raphael.luta@aptiwan.com>
sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <colm.maccarthaigh@heanet.ie>
sig 3 40581837 2005-07-24 Nick Kew <nick@webthing.com>
sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hps@intermeta.de>
sig 3 9978AF86 2005-07-25 Christoph Probst <chris@netzpunkt.org>
sig 3 2A623F72 2005-07-25 Christoph Probst <chris@netzpunkt.org>
sig 3 F8EA2967 2005-07-26 Brian McCallister <brianm@apache.org>
sig 3 C152431A 2005-07-27 Steve Loughran <stevel@apache.org>
sig 3 CC78C893 2005-08-01 [User ID not found]
sig 3 75A67692 2006-02-22 Erik Abele <erik@codefaktor.de>
sig C8628501 2006-03-31 [User ID not found]
sig X CA57AD7C 2005-07-31 PGP Global Directory Verification Key
sig X CA57AD7C 2005-08-01 PGP Global Directory Verification Key
sig X CA57AD7C 2006-05-23 PGP Global Directory Verification Key
sig X CA57AD7C 2006-06-05 PGP Global Directory Verification Key
sig X CA57AD7C 2006-06-18 PGP Global Directory Verification Key
uid Bertrand Delacretaz <bdelacretaz@codeconsult.ch>
sig 3 015AFC8A 2004-06-18 Bertrand Delacretaz <bdelacretaz@apache.org>
sig X CA57AD7C 2005-07-01 PGP Global Directory Verification Key
sig 3 E41EDC7E 2004-10-30 Carsten Ziegeler <cziegeler@apache.org>
sig 3 E2D774DF 2004-10-28 Sylvain Wallez <sylvain@apache.org>
sig 3 7C200941 2004-10-18 Torsten Curdt <tcurdt@apache.org>
sig 3 23CB7A2A 2004-08-19 David Crossley <crossley@apache.org>
sig X CA57AD7C 2005-07-14 PGP Global Directory Verification Key
sig 5793498F 2005-07-20 Tim Ellison <tim@ellison.name>
sig 8103A37E 2005-07-20 Andre Malo <nd@apache.org>
sig C4C57B42 2005-07-21 Marcus Crafter <crafterm@debian.org>
sig 5C1C3AD7 2005-07-24 David Reid <mail@david-reid.com>
sig 1CD4861F 2005-07-25 Eran Chinthaka (Web mail) <eran.chinthaka@gmail.com>
sig 333E4E84 2005-07-25 Chathura Kamalanath Herath (Apachecon Europe 2005) <chathura@apache.org>
sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <ajith@apache.org>
sig 152924AF 2005-07-29 Sander Temme <sander@temme.net>
sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <dirkx@anywi.com>
sig 3 EE65E321 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <coar@OpenSource.Org>
sig 3 21D0A71B 2005-07-20 Dirk-Willem van Gulik <dirkx@asemantics.com>
sig 3 3642CB4B 2005-07-20 Martin Kraemer <martin@apache.org>
sig 3 2261D073 2005-07-20 Astrid Kessler (Kess) <kess@kess-net.de>
sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <coar@OpenSource.Org>
sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org>
sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fielding@gbiv.com>
sig 3 5F6B8B72 2005-07-22 Stefan Bodewig <bodewig@apache.org>
sig 3 87315C31 2005-07-23 Rapha<68>l Luta <raphael.luta@aptiwan.com>
sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <colm.maccarthaigh@heanet.ie>
sig 3 40581837 2005-07-24 Nick Kew <nick@webthing.com>
sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hps@intermeta.de>
sig 3 9978AF86 2005-07-25 Christoph Probst <chris@netzpunkt.org>
sig 3 2A623F72 2005-07-25 Christoph Probst <chris@netzpunkt.org>
sig 3 F8EA2967 2005-07-26 Brian McCallister <brianm@apache.org>
sig 3 C152431A 2005-07-27 Steve Loughran <stevel@apache.org>
sig 3 CC78C893 2005-08-01 [User ID not found]
sig 3 75A67692 2006-02-22 Erik Abele <erik@codefaktor.de>
sig C8628501 2006-03-31 [User ID not found]
sig X CA57AD7C 2005-07-31 PGP Global Directory Verification Key
sig X CA57AD7C 2005-08-01 PGP Global Directory Verification Key
sig X CA57AD7C 2006-05-23 PGP Global Directory Verification Key
sig X CA57AD7C 2006-06-05 PGP Global Directory Verification Key
sig X CA57AD7C 2006-06-18 PGP Global Directory Verification Key
sub 2048g/AC136A02 2004-06-18
sig 015AFC8A 2004-06-18 Bertrand Delacretaz <bdelacretaz@apache.org>
-----------------------------------------------------------------------------------
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (Darwin)
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
uACcDJAVc3KuTVrTWNn0Bdptwn2QKvI=
=9kB2
-----END PGP PUBLIC KEY BLOCK-----
-----------------------------------------------------------------------------------
pub 1024D/0AFCEE7C 2006-12-04
uid Yonik Seeley <yonik@apache.org>
sig 3 0AFCEE7C 2006-12-04 Yonik Seeley <yonik@apache.org>
sub 4096g/1D87573B 2006-12-04
sig 0AFCEE7C 2006-12-04 Yonik Seeley <yonik@apache.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (Cygwin)
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
=EYGl
-----END PGP PUBLIC KEY BLOCK-----
pub 4096R/FE045966 2009-10-13
Key fingerprint = A46D 8682 A850 E44E 4FEC 20EB 8A8A 771F FE04 5966
uid Grant Ingersoll (CODE SIGNING KEY) <gsingers@apache.org>
sub 4096R/72F9E0C0 2009-10-13
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.7 (Darwin)
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
=GLHu
-----END PGP PUBLIC KEY BLOCK-----

1086
solr/LICENSE.txt Normal file

File diff suppressed because it is too large Load Diff

254
solr/NOTICE.txt Normal file
View File

@ -0,0 +1,254 @@
==============================================================
Apache Solr
Copyright 2006-2008 The Apache Software Foundation
==============================================================
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
Includes software from other Apache Software Foundation projects,
including, but not limited to:
- Apache Lucene Java
- Apache Tomcat (lib/servlet-api-2.4.jar)
- Apache Commons
- Apache Geronimo (stax API jar)
- Apache Log4j (contrib/clustering)
This product includes tests written with EasyMock Copyright 2001-2007
Tammo Freese (http://www.easymock.org/)
This product includes the JQuery JavaScript library created by John Resig.
Copyright (c) 2008 John Resig, http://jquery.com/
This product includes the stax-utils jar: https://stax-utils.dev.java.net/
Copyright (c) 2004, Christian Niles, unit12.net
Copyright (c) 2004, Sun Microsystems, Inc.
Copyright (c) 2006, John Kristian
License: The BSD License (http://www.opensource.org/licenses/bsd-license.php)
This product includes a JUnit jar: http://junit.sourceforge.net/
License: Common Public License - v 1.0 (http://junit.sourceforge.net/cpl-v10.html)
This product includes the JavaMail API 1.4.1 jar: https://glassfish.dev.java.net/javaee5/mail/
License: Common Development and Distribution License (CDDL) v1.0 (https://glassfish.dev.java.net/public/CDDLv1.0.html)
This product includes the JavaBeans Activation Framework (JAF) 1.1 jar: http://java.sun.com/products/javabeans/jaf/index.jsp
License: Common Development and Distribution License (CDDL) v1.0 (https://glassfish.dev.java.net/public/CDDLv1.0.html)
This product includes the HSQL Database (HSQLDB) 1.8.0.10 jar: http://hsqldb.org/
License: http://hsqldb.org/web/hsqlLicense.html
=========================================================================
== Apache Lucene Notice ==
=========================================================================
The snowball stemmers in
contrib/snowball/src/java/net/sf/snowball
were developed by Martin Porter and Richard Boulton.
The full snowball package is available from
http://snowball.tartarus.org/
---
This product includes/uses software, Woodstox (http://woodstox.codehaus.org),
developed by Codehaus (http://www.codehaus.org/)
License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
=========================================================================
== Woodstox Notice ==
=========================================================================
This product currently only contains code developed by authors
of specific components, as identified by the source code files.
Since product implements StAX API, it has dependencies to StAX API
classes.
For additional credits (generally to people who reported problems)
see CREDITS file.
---
This product includes software developed by Mort Bay Consulting
(specifically, Jetty 6.1.3, the bundled servlet container in example)
The jboss integration module is not included.
=========================================================================
== Jetty Notice ==
=========================================================================
==============================================================
Jetty Web Container
Copyright 1995-2006 Mort Bay Consulting Pty Ltd
==============================================================
This product includes some software developed at The Apache Software
Foundation (http://www.apache.org/).
The javax.servlet package used by Jetty is copyright
Sun Microsystems, Inc and Apache Software Foundation. It is
distributed under the Common Development and Distribution License.
You can obtain a copy of the license at
https://glassfish.dev.java.net/public/CDDLv1.0.html.
The UnixCrypt.java code ~Implements the one way cryptography used by
Unix systems for simple password protection. Copyright 1996 Aki Yoshida,
modified April 2001 by Iris Van den Broeke, Daniel Deville.
The default JSP implementation is provided by the Glassfish JSP engine
from project Glassfish http://glassfish.dev.java.net. Copyright 2005
Sun Microsystems, Inc. and portions Copyright Apache Software Foundation.
Some portions of the code are Copyright:
2006 Tim Vernum
1999 Jason Gilbert.
The jboss integration module contains some LGPL code.
=========================================================================
== SLF4J Notice -- http://www.slf4j.org/license.html ==
=========================================================================
Copyright (c) 2004-2008 QOS.ch
All rights reserved.
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.
=========================================================================
== Apache Tika Notices ==
=========================================================================
The following notices apply to the Apache Tika libraries in contrib/extraction/lib:
This product includes software developed by the following copyright owners:
Copyright (c) 2000-2006 The Legion Of The Bouncy Castle
(http://www.bouncycastle.org)
Copyright (c) 2003-2005, www.pdfbox.org
Copyright (c) 2003-2005, www.fontbox.org
Copyright (c) 1995-2005 International Business Machines Corporation and others
Copyright (c) 2000-2005 INRIA, France Telecom
=========================================================================
== Carrot2 Notice ==
=========================================================================
Copyright (C) 2002-2008, Dawid Weiss, Stanislaw Osinski.
Portions (C) Contributors listed in "carrot2.CONTRIBUTORS" file.
All rights reserved.
This product includes software developed by the Carrot2 Project.
See http://project.carrot2.org/
=========================================================================
== EHCache Notice ==
=========================================================================
Copyright 2003-2008 Luck Consulting Pty Ltd
This product includes software developed by the EHCache Project
See ????
=========================================================================
== Google Collections Notice ==
=========================================================================
Copyright ???? Google, Inc.
This product includes software developed by the Google Collections project.
See ????
=========================================================================
== Jackson Notice ==
=========================================================================
Copyright ????
This product includes software developed by the Jackson project.
See ????
=========================================================================
== HSQLDB Notice ==
=========================================================================
For content, code, and products originally developed by Thomas Mueller and the Hypersonic SQL Group:
Copyright (c) 1995-2000 by the Hypersonic SQL Group.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
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.
Neither the name of the Hypersonic SQL Group nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS 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 THE HYPERSONIC SQL GROUP,
OR CONTRIBUTORS 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.
This software consists of voluntary contributions made by many individuals on behalf of the
Hypersonic SQL Group.
For work added by the HSQL Development Group (a.k.a. hsqldb_lic.txt):
Copyright (c) 2001-2005, The HSQL Development Group
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
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.
Neither the name of the HSQL Development Group nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS 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 HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
OR CONTRIBUTORS 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.

118
solr/README.txt Normal file
View File

@ -0,0 +1,118 @@
# 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.
Welcome to the Apache Solr project!
-----------------------------------
Apache Solr is a search server based on the Apache Lucene search
library.
For a complete description of the Solr project, team composition, source
code repositories, and other details, please see the Solr web site at
http://lucene.apache.org/solr
Getting Started
---------------
See the "example" directory for an example Solr setup. A tutorial
using the example setup can be found in "docs/tutorial.html"
Files Included In Apache Solr Distributions
-------------------------------------------
dist/apache-solr-XX.war
The Apache Solr Application. Deploy this WAR file to any servlet
container to run Apache Solr.
dist/apache-solr-XX.jar
The Apache Solr Libraries. This JAR file is needed to compile
Apache Solr Plugins (see http://wiki.apache.org/solr/SolrPlugins for
more information).
example/
A self-contained example Solr instance, complete with a sample
configuration, documents to index, and the Jetty Servlet container.
Please see example/README.txt for information about running this
example.
docs/index.html
The contents of the Apache Solr website.
docs/api/index.html
The Apache Solr Javadoc API documentation.
src/
The Apache Solr source code.
Instructions for Building Apache Solr from Source
-------------------------------------------------
1. Download the J2SE 5.0 JDK (Java Development Kit) or later from http://java.sun.com.
You will need the JDK installed, and the %JAVA_HOME%\bin directory included
on your command path. To test this, issue a "java -version" command from your
shell and verify that the Java version is 5.0 or later.
2. Download the Apache Ant binary distribution from http://ant.apache.org.
You will need Ant installed and the %ANT_HOME%\bin directory included on your
command path. To test this, issue a "ant -version" command from your
shell and verify that Ant is available.
3. Download the Apache Solr distribution, linked from the above
web site. Expand the distribution to a folder of your choice, e.g. c:\solr.
Alternately, you can obtain a copy of the latest Apache Solr source code
directly from the Subversion repository:
http://lucene.apache.org/solr/version_control.html
4. Navigate to that 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 example" command to build
and package Solr into the example/webapps directory. See also example/README.txt.
Export control
-------------------------------------------------
This distribution includes cryptographic software. The country in
which you currently reside may have restrictions on the import,
possession, use, and/or re-export to another country, of
encryption software. BEFORE using any encryption software, please
check your country's laws, regulations and policies concerning the
import, possession, or use, and re-export of encryption software, to
see if this is permitted. See <http://www.wassenaar.org/> for more
information.
The U.S. Government Department of Commerce, Bureau of Industry and
Security (BIS), has classified this software as Export Commodity
Control Number (ECCN) 5D002.C.1, which includes information security
software using or performing cryptographic functions with asymmetric
algorithms. The form and manner of this Apache Software Foundation
distribution makes it eligible for export under the License Exception
ENC Technology Software Unrestricted (TSU) exception (see the BIS
Export Administration Regulations, Section 740.13) for both object
code and source code.
The following provides more details on the included cryptographic
software:
Apache Solr uses the Apache Tika which uses the Bouncy Castle generic encryption libraries for
extracting text content and metadata from encrypted PDF files.
See http://www.bouncycastle.org/ for more details on Bouncy Castle.

928
solr/build.xml Normal file
View File

@ -0,0 +1,928 @@
<!-- Solr build file -->
<!--
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.
-->
<project name="solr" default="usage" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<import file="common-build.xml"/>
<!-- 3rd party libraries for compilation -->
<property name="lib" location="lib" />
<!-- solr source files -->
<property name="src" location="src" />
<property name="web.xml" location="${src}/webapp/web/WEB-INF/web.xml"/>
<!-- Destination for distribution files (demo WAR, src distro, etc.) -->
<property name="dist" location="dist" />
<property name="clover.db.dir" location="${dest}/tests/clover/db"/>
<property name="clover.report.dir" location="${dest}/tests/clover/reports"/>
<property name="junit.details" value="1"/>
<!-- change this together with the default and test's solrconfig.xml after starting a new development branch: -->
<property name="tests.luceneMatchVersion" value="3.1"/>
<available
property="clover.present"
classname="com.cenqua.clover.tasks.CloverReportTask"
/>
<condition property="clover.enabled">
<and>
<isset property="run.clover"/>
<isset property="clover.present"/>
</and>
</condition>
<!-- Default target: usage. Prints out instructions. -->
<target name="usage"
description="Prints out instructions">
<echo message="Welcome to the Solr project!" />
<echo message="Use 'ant example' to create a runnable example configuration." />
<echo message="Use 'ant run-example' to create and run the example." />
<echo message="And for developers:"/>
<echo message="Use 'ant clean' to clean compiled files." />
<echo message="Use 'ant compile' to compile the source code." />
<echo message="Use 'ant dist' to build the project WAR and JAR files." />
<echo message="Use 'ant generate-maven-artifacts' to generate maven artifacts." />
<echo message="Use 'ant package' to generate zip, tgz, and maven artifacts for distribution." />
<echo message="Use 'ant luke' to start luke. see: http://www.getopt.org/luke/" />
<echo message="Use 'ant test' to run unit tests." />
</target>
<!-- Clean: cleans compiled files and other temporary artifacts. -->
<target name="clean" depends="clean-contrib"
description="Cleans compiled files and other temporary artifacts.">
<delete dir="${dest}" />
<delete dir="${dist}" />
<delete dir="example/solr/lib" />
</target>
<target name="clean-dest"
description="Cleans out ${dest} but leaves ${dist} alone. This allows us to run nightly and clover together in Hudson">
<delete includeemptydirs="true" >
<fileset dir="${dest}">
<exclude name="docs/"/>
</fileset>
</delete>
</target>
<!-- Prepares an entity file for use in Forrest documentation -->
<target name="init-forrest-entities">
<!-- no description, don't advertise -->
<available file="lib/lucene-core-${lucene_version}.jar"
property="lucene-version-ok-m2deploy-wont-fail" />
<fail unless="lucene-version-ok-m2deploy-wont-fail">
lib/lucene-core-${lucene_version}.jar Missing
lib/lucene-core-${lucene_version}.jar does not exist.
This will cause problems with m2-deploy later, so fail fast now.
Probably cause: lucene jars were upgraded w/o modifying the
'lucene_version' property in common-build.xml
</fail>
<mkdir dir="${dest}" />
<!-- A folder containing the expanded war file -->
<mkdir dir="${dest}/web" />
<echo file="${dest}/solr-specific-forrest-variables.ent" append="false">
&lt;!ENTITY solr.specversion "${specversion}"&gt;
</echo>
</target>
<!-- ========================================================================= -->
<!-- ===================== COMPILATION-RELATED TASKS ========================= -->
<!-- ========================================================================= -->
<!-- The compilation classpath -->
<path id="compile.classpath">
<fileset dir="${lib}">
<include name="*.jar" />
</fileset>
<pathelement location="${dest}/common"/>
</path>
<target name="compile-solrj"
description="Compile the java client."
depends="init-forrest-entities">
<solr-javac destdir="${dest}/solrj"
classpathref="compile.classpath">
<src path="${src}/common" />
<src path="${src}/solrj" />
</solr-javac>
</target>
<!-- This depend on all of solr -->
<path id="compile.classpath.solrj">
<path refid="compile.classpath" />
<pathelement location="${dest}/solrj"/>
<!-- jetty -->
<fileset dir="example/lib">
<include name="**/*.jar" />
</fileset>
</path>
<!-- Compile the project. -->
<target name="compile"
description="Compile the source code."
depends="compile-solrj,init-forrest-entities">
<solr-javac destdir="${dest}/solr"
classpathref="compile.classpath.solrj">
<src path="${src}/java" />
<src path="${src}/webapp/src" />
</solr-javac>
</target>
<target name="javadoc-solrj" depends="compile-solrj" description="Generates solrj javadoc documentation.">
<sequential>
<mkdir dir="${build.javadoc}/solrj"/>
<path id="javadoc.classpath">
<path refid="compile.classpath"/>
</path>
<invoke-javadoc
destdir="${build.javadoc}/solrj"
title="${Name}-j ${version} API (${specversion})">
<sources>
<packageset dir="${src}/common"/>
<packageset dir="${src}/solrj"/>
</sources>
</invoke-javadoc>
</sequential>
</target>
<target name="javadoc-core" depends="compile" description="Generates javadoc documentation for core.">
<sequential>
<mkdir dir="${build.javadoc}/solr"/>
<path id="javadoc.classpath">
<path refid="compile.classpath"/>
<path refid="compile.classpath.solrj"/>
<pathelement location="${dest}/solrj"/>
</path>
<invoke-javadoc
destdir="${build.javadoc}/solr"
title="${Name} ${version} core API (${specversion})">
<sources>
<packageset dir="${src}/java" />
<packageset dir="${src}/webapp/src"/>
</sources>
</invoke-javadoc>
</sequential>
</target>
<target name="javadoc-all" description="Generate javadoc for core, client and contrib">
<sequential>
<mkdir dir="${build.javadoc}"/>
<path id="javadoc.classpath">
<path refid="compile.classpath"/>
<path refid="compile.classpath.solrj"/>
<fileset dir="contrib">
<include name="**/lib/**/*.jar"/>
</fileset>
<pathelement location="${dest}/client/solrj"/>
</path>
<invoke-javadoc destdir="${build.javadoc}">
<sources>
<packageset dir="${src}/common" />
<packageset dir="${src}/solrj" />
<packageset dir="${src}/java" />
<packageset dir="${src}/webapp/src" />
<packageset dir="contrib/dataimporthandler/src/main/java" />
<packageset dir="contrib/clustering/src/main/java" />
<packageset dir="contrib/extraction/src/main/java" />
<group title="Core" packages="org.apache.*" />
<group title="Common" packages="org.apache.solr.common.*" />
<group title="SolrJ" packages="org.apache.solr.client.solrj*" />
<group title="contrib: DataImportHandler" packages="org.apache.solr.handler.dataimport*" />
<group title="contrib: Clustering" packages="org.apache.solr.handler.clustering*" />
<group title="contrib: Solr Cell" packages="org.apache.solr.handler.extraction*" />
</sources>
</invoke-javadoc>
</sequential>
</target>
<target name="javadoc-contrib" description="Generate javadoc for contrib classes" depends="build-contrib">
<contrib-crawl target="javadoc"
failonerror="true"/>
</target>
<target name="javadoc" depends="javadoc-core, javadoc-contrib, javadoc-solrj, javadoc-all">
</target>
<target name="stub-factories" depends="dist-jar"
description="Generates stub factories as needed">
<path id="stub.jars">
<!-- this needs to be a list of all jars that might contain
classes we want to build factories for
-->
<fileset dir="${lib}">
<include name="lucene-*.jar"/>
</fileset>
<fileset dir="${dist}">
<include name="*.jar"/>
<exclude name="*solrj*.jar"/>
</fileset>
</path>
<pathconvert property="jar.list" pathsep=" " refid="stub.jars" />
<property name="stub.list" value="${dest}/need-stub-factories.txt" />
<java fork="false"
classname="org.apache.solr.util.SuggestMissingFactories"
logError="true"
failonerror="true"
classpathref="test.run.classpath"
output="${stub.list}">
<arg line="${jar.list}" />
</java>
<fail unless="stub.src.path">...
This task requires that the property 'stub.src.path' be set.
It must contain a "path" listing directories containing source
files that this task should use when looking for classes that
need factories created, the format is platform specific --
typically it is colon seperated in Unix, semi-colon seperated
on windows, ie:
ant stub-factories -Dstub.src.path="./src:../lucene/contrib:../lucene/src/java"
FYI: The file ${stub.list} contains a list of classes
that seem to need stub factories. (if java files can be found to
use as guides for creating them).
</fail>
<pathconvert pathsep=" " property="stub.src.dirs">
<path>
<pathelement path="${stub.src.path}"/>
</path>
</pathconvert>
<exec executable="${basedir}/src/dev-tools/stub-analysis-factory-maker.pl"
dir="src/java/org/apache/solr/analysis/"
failonerror="true">
<redirector input="${stub.list}">
<!-- place to put special case classes we want to ignore -->
<inputfilterchain>
<linecontainsregexp negate="true">
<!-- only for internal Solr highlighting purposes -->
<regexp pattern="TokenOrderingFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- no way to leverage this in Solr -->
<regexp pattern="CachingTokenFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- no way to leverage this in Solr -->
<regexp pattern="HyphenationCompoundWordTokenFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- no way to leverage these in Solr (yet) -->
<regexp pattern="Sink|Tee"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- Solr already has a different impl for this -->
<regexp pattern="SynonymTokenFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- solr and lucene both have one? ? ? ? -->
<regexp pattern="LengthFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- solr provides it's own SnowballPorterFilter variant -->
<regexp pattern="SnowballFilter"/>
</linecontainsregexp>
</inputfilterchain>
</redirector>
<arg line="${stub.src.dirs}"/>
</exec>
</target>
<!-- ========================================================================= -->
<!-- ===================== TESTING-RELATED TASKS ============================= -->
<!-- ========================================================================= -->
<!-- Classpath for unit test compilation. -->
<!-- For now, it's the same as main classpath. Later it will have JUnit, Clover, etc. -->
<path id="test.compile.classpath">
<path refid="compile.classpath" />
<path refid="compile.classpath.solrj" />
<pathelement location="${dest}/solr"/>
<pathelement location="${dest}/solrj"/> <!-- include solrj -->
</path>
<path id="test.run.classpath">
<path refid="test.compile.classpath" />
<pathelement location="${dest}/tests"/>
<!-- include the solrj classpath and jetty files included in example -->
<path refid="compile.classpath.solrj" />
<pathelement path="${java.class.path}"/>
</path>
<!-- Compile unit tests. -->
<target name="compileTests"
description="Compile unit tests."
depends="compile,compile-solrj">
<mkdir dir="${dest}/tests" />
<solr-javac
destdir="${dest}/tests"
classpathref="test.compile.classpath">
<src path="${src}/test" />
</solr-javac>
</target>
<!-- Run core unit tests. -->
<target name="test-core"
description="Runs the core unit tests."
depends="init-forrest-entities, compileTests, junit" />
<!-- Run contrib unit tests. -->
<target name="test"
description="Runs the core unit tests."
depends="test-core, test-contrib" />
<target name="junit" depends="compileTests,dist-contrib">
<!-- no description so it doesn't show up in -projecthelp -->
<mkdir dir="${junit.output.dir}"/>
<condition property="runall">
<not>
<or>
<isset property="testcase"/>
<isset property="testpackage"/>
<isset property="testpackageroot"/>
</or>
</not>
</condition>
<junit printsummary="no"
haltonfailure="no"
errorProperty="tests.failed"
failureProperty="tests.failed"
dir="src/test/test-files/"
>
<sysproperty key="java.util.logging.config.file" value="${common.dir}/testlogging.properties"/>
<sysproperty key="tests.luceneMatchVersion" value="${tests.luceneMatchVersion}"/>
<jvmarg line="${args}"/>
<formatter type="brief" usefile="false" if="junit.details"/>
<classpath refid="test.run.classpath"/>
<formatter type="${junit.formatter}"/>
<batchtest fork="yes" todir="${junit.output.dir}" if="runall">
<fileset dir="src/test" includes="${junit.includes}"/>
</batchtest>
<batchtest fork="yes" todir="${junit.output.dir}" if="testpackage">
<fileset dir="src/test" includes="**/${testpackage}/**/Test*.java,**/${testpackage}/**/*Test.java"/>
</batchtest>
<batchtest fork="yes" todir="${junit.output.dir}" if="testpackageroot">
<fileset dir="src/test" includes="**/${testpackageroot}/Test*.java,**/${testpackageroot}/*Test.java"/>
</batchtest>
<batchtest fork="yes" todir="${junit.output.dir}" if="testcase">
<fileset dir="src/test" includes="**/${testcase}.java"/>
</batchtest>
</junit>
<fail if="tests.failed">Tests failed!</fail>
</target>
<target name="test-reports"
description="Generates HTML test reports.">
<mkdir dir="${junit.reports}"/>
<junitreport todir="${junit.output.dir}">
<fileset dir="${junit.output.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${junit.reports}"/>
</junitreport>
</target>
<target name="clover" depends="clover.setup, clover.info"
description="Instrument the Unit tests using Clover. Requires a Clover license and clover.jar in the ANT classpath. To use, specify -Drun.clover=true on the command line."/>
<target name="clover.setup" if="clover.enabled">
<taskdef resource="clovertasks"/>
<mkdir dir="${clover.db.dir}"/>
<clover-setup initString="${clover.db.dir}/solr_coverage.db">
<fileset dir="src/common"/>
<fileset dir="src/solrj"/>
<fileset dir="src/java"/>
<fileset dir="src/webapp/src"/>
<fileset dir="contrib/dataimporthandler/src/main/java" />
<fileset dir="contrib/clustering/src/main/java" />
<fileset dir="contrib/extraction/src/main/java" />
</clover-setup>
</target>
<target name="clover.info" unless="clover.present">
<echo>
Clover not found. Code coverage reports disabled.
</echo>
</target>
<target name="clover.check">
<fail unless="clover.present">
##################################################################
Clover not found.
Please make sure clover.jar is in ANT_HOME/lib, or made available
to Ant using other mechanisms like -lib or CLASSPATH.
##################################################################
</fail>
</target>
<!--
Run after Junit tests.
-->
<target name="generate-clover-reports" depends="clover.check, clover">
<mkdir dir="${clover.report.dir}"/>
<clover-report>
<current outfile="${clover.report.dir}/clover.xml"
title="${fullnamever}">
<format type="xml"/>
</current>
<current outfile="${clover.report.dir}" title="${fullnamever}">
<format type="html"/>
</current>
</clover-report>
</target>
<!-- ========================================================================= -->
<!-- ===================== DISTRIBUTION-RELATED TASKS ======================== -->
<!-- ========================================================================= -->
<!-- Creates the Solr distribution files. -->
<target name="dist"
description="Creates the Solr distribution files."
depends="init-forrest-entities, dist-solrj, dist-jar, dist-contrib, dist-war" />
<!-- Creates the Solr WAR file. -->
<target name="dist-war"
description="Creates the Solr WAR Distribution file."
depends="compile, make-manifest, dist-jar, dist-solrj">
<mkdir dir="${dist}" />
<war destfile="${dist}/${fullnamever}.war"
webxml="${web.xml}"
filesetmanifest="skip"
manifest="${dest}/META-INF/MANIFEST.MF">
<lib dir="${lib}">
<exclude name="servlet-api*.jar" />
<exclude name="easymock.jar" />
<exclude name="junit-*.jar" />
<exclude name="*.txt" />
<exclude name="*.template" />
</lib>
<lib dir="${dist}">
<include name="${fullname}-solrj-${version}.jar" />
<include name="${fullname}-core-${version}.jar" />
</lib>
<fileset dir="${src}/webapp/web" />
<!-- Include anything put in by contrib projects -->
<fileset dir="${dest}/web" />
<metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
</war>
</target>
<target name="dist-src" description="Creates the Solr source distribution files"
depends="make-manifest">
<mkdir dir="${dist}" />
<solr-jar destfile="${dist}/${fullname}-solrj-src-${version}.jar">
<fileset dir="${src}/common" />
<fileset dir="${src}/solrj"/>
</solr-jar>
<solr-jar destfile="${dist}/${fullname}-core-src-${version}.jar">
<fileset dir="${src}/java" />
<fileset dir="${src}/webapp/src"/>
</solr-jar>
<solr-jar destfile="${dist}/apache-solr-dataimporthandler-src-${version}.jar"
basedir="contrib/dataimporthandler/src/main/java" />
<solr-jar destfile="${dist}/apache-solr-dataimporthandler-extras-src-${version}.jar"
basedir="contrib/dataimporthandler/src/extras/main/java" />
<solr-jar destfile="${dist}/apache-solr-cell-src-${version}.jar"
basedir="contrib/extraction/src" />
<solr-jar destfile="${dist}/apache-solr-velocity-src-${version}.jar"
basedir="contrib/velocity/src" />
<solr-jar destfile="${dist}/apache-solr-clustering-src-${version}.jar"
basedir="contrib/clustering/src" />
</target>
<target name="dist-javadoc" description="Creates the Solr javadoc distribution files"
depends="make-manifest, javadoc">
<mkdir dir="${dist}" />
<solr-jar destfile="${dist}/${fullname}-core-docs-${version}.jar"
basedir="${build.javadoc}/solr" />
<solr-jar destfile="${dist}/${fullname}-solrj-docs-${version}.jar"
basedir="${build.javadoc}/solrj" />
<solr-jar destfile="${dist}/apache-solr-dataimporthandler-docs-${version}.jar"
basedir="${build.javadoc}/contrib-solr-dataimporthandler" />
<solr-jar destfile="${dist}/apache-solr-clustering-docs-${version}.jar"
basedir="${build.javadoc}/contrib-solr-clustering" />
<solr-jar destfile="${dist}/apache-solr-velocity-docs-${version}.jar"
basedir="${build.javadoc}/contrib-solr-velocity" />
<solr-jar destfile="${dist}/apache-solr-cell-docs-${version}.jar"
basedir="${build.javadoc}/contrib-solr-cell" />
</target>
<!-- Creates the solr jar. -->
<target name="dist-jar"
description="Creates the Solr JAR Distribution file."
depends="compile, make-manifest">
<mkdir dir="${dist}" />
<solr-jar destfile="${dist}/${fullname}-core-${version}.jar">
<fileset dir="${dest}/solr" />
</solr-jar>
</target>
<!-- Creates the solr jar. -->
<target name="dist-solrj"
description="Creates the Solr JAR Distribution file."
depends="compile-solrj, make-manifest">
<mkdir dir="${dist}" />
<solr-jar
destfile="${dist}/${fullname}-solrj-${version}.jar"
basedir="${dest}/solrj" />
<mkdir dir="${dist}/solrj-lib" />
<copy todir="${dist}/solrj-lib">
<fileset dir="${lib}">
<include name="commons-codec-*.jar"/>
<include name="commons-io-*.jar"/>
<include name="commons-httpclient-*.jar"/>
<include name="*stax-*.jar" />
<include name="wstx-*.jar" />
<include name="jcl-over-slf4j-*.jar" />
<include name="slf4j-api-*.jar" />
</fileset>
</copy>
</target>
<target name="example"
description="Creates a runnable example configuration."
depends="init-forrest-entities,dist-contrib,dist-war,example-contrib">
<copy file="${dist}/${fullnamever}.war"
tofile="${example}/webapps/${ant.project.name}.war"/>
<jar destfile="${example}/exampledocs/post.jar"
basedir="${dest}/solr"
filesetmanifest="skip"
includes="org/apache/solr/util/SimplePostTool*.class">
<manifest>
<attribute name="Main-Class"
value="org.apache.solr.util.SimplePostTool"/>
</manifest>
</jar>
<delete includeemptydirs="true">
<fileset dir="${example}/work" includes="**/*"/>
</delete>
<echo>See ${example}/README.txt for how to run the Solr example configuration.</echo>
</target>
<target name="run-example" depends="example">
<property name="example.solr.home" location="example/solr"/>
<property name="example.data.dir" location="example/solr/data"/>
<property name="example.debug.suspend" value="n"/>
<property name="example.jetty.port" value="8983"/>
<condition property="example.jvm.line" value="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=${example.debug.suspend},address=5005">
<isset property="example.debug"/>
</condition>
<property name="example.jvm.line" value=""/>
<property name="example.heap.size" value="512M"/>
<java jar="${example}/start.jar" fork="true" dir="${example}" maxmemory="${example.heap.size}">
<jvmarg line="${example.jvm.line}"/>
<sysproperty key="solr.solr.home" file="${example.solr.home}"/>
<sysproperty key="solr.data.dir" file="${example.data.dir}"/>
<sysproperty key="jetty.port" value="${example.jetty.port}"/>
</java>
</target>
<!-- make a distribution -->
<target name="package" depends="generate-maven-artifacts"/>
<target name="create-package"
description="Packages the Solr Distribution files and Documentation."
depends="dist, example, javadoc, dist-src, dist-javadoc">
<copy failonerror="false" todir="${build.docs}">
<fileset dir="site" />
</copy>
<delete file="${dist}/${fullnamever}.tgz" failonerror="false" />
<delete file="${dist}/${fullnamever}.zip" failonerror="false" />
<tar destfile="${dist}/${fullnamever}.tgz" compression="gzip" longfile="gnu">
<tarfileset dir="."
prefix="${fullnamever}"
includes="LICENSE.txt NOTICE.txt *.txt *.xml lib/** src/** example/** client/** contrib/"
excludes="lib/README.committers.txt **/data/ **/logs/* **/classes/ **/*.sh **/bin/ src/scripts/ src/site/build/ **/target/ client/ruby/flare/ client/python contrib/**/build/ **/*.iml **/*.ipr **/*.iws contrib/clustering/example/lib/** contrib/clustering/lib/downloads/**" />
<tarfileset dir="."
prefix="${fullnamever}"
includes="src/test/test-files/solr/lib/classes/empty-file-main-lib.txt" />
<tarfileset dir="."
mode="755"
prefix="${fullnamever}"
includes="**/*.sh **/bin/ src/scripts/" />
<tarfileset dir="."
prefix="${fullnamever}"
includes="dist/**"
excludes="*.tgz *.zip *.md5 **/*src*.jar **/*docs*.jar" />
<tarfileset dir="${build.docs}"
prefix="${fullnamever}/docs/" />
</tar>
<solr-checksum file="${dist}/${fullnamever}.tgz"/>
<gunzip src="${dist}/${fullnamever}.tgz" dest="${dest}/${fullnamever}.tar"/>
<untar src="${dest}/${fullnamever}.tar" dest="${dest}"/>
<fixcrlf srcdir="${dest}/${fullnamever}"
eol="crlf"
includes="**/*.txt **/*.xml **/*.java **/*.html **/*.csv **/*.css **/*.properties **/*.jsp **/*.xsl **/*.py **/*.rb **/*.js **/*.json **/*.pl"
/>
<zip destfile="${dist}/${fullnamever}.zip">
<zipfileset dir="${dest}/${fullnamever}"
prefix="${fullnamever}"
excludes="**/*.sh **/bin/ src/scripts/" />
<zipfileset dir="${dest}/${fullnamever}"
prefix="${fullnamever}"
includes="**/*.sh **/bin/ src/scripts/"
filemode="755" />
</zip>
<solr-checksum file="${dist}/${fullnamever}.zip"/>
</target>
<target name="build-site" depends="svn-up, init-forrest-entities" description="Prototype Helper for Committers. Assumes SVN is in the path">
<delete dir="src/site/build"/>
<exec executable="forrest" dir="src/site"/>
<copy todir="site">
<fileset dir="src/site/build/site"/>
</copy>
<exec executable="svn" dir="site">
<arg value="ci"/>
<arg value="-m"/>
<arg value="&quot;Forrest Entity updates&quot;"/>
</exec>
<exec executable="svn" dir="src/site">
<arg value="ci"/>
<arg value="-m"/>
<arg value="&quot;Forrest Entity updates&quot;"/>
</exec>
<antcall target="svn-up"/>
</target>
<target name="svn-up">
<exec executable="svn">
<arg value="update"/>
</exec>
</target>
<target name="clean-dist-signatures">
<delete failonerror="false">
<fileset dir="${dist}">
<include name="**/*.asc"/>
</fileset>
</delete>
</target>
<target name="sign-artifacts" depends="clean-dist-signatures">
<!--<property file="${user.home}/.solr/build.properties" />-->
<input message="password:>" addproperty="gpg.passphrase">
<handler classname="org.apache.tools.ant.input.SecureInputHandler" />
</input>
<sign-artifact input.file="${dist}/${fullnamever}.tgz" output.file="${dist}/${fullnamever}.tgz.asc" gpg.passphrase="${gpg.passphrase}"/>
<sign-artifact input.file="${dist}/${fullnamever}.zip" output.file="${dist}/${fullnamever}.zip.asc" gpg.passphrase="${gpg.passphrase}"/>
<!-- Maven artifacts -->
<sign-maven-dependency-artifacts artifact.id="solr-commons-csv" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-artifacts artifact.id="solr-core" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-artifacts artifact.id="solr-dataimporthandler" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-artifacts artifact.id="solr-dataimporthandler-extras" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-artifacts artifact.id="solr-clustering" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-artifacts artifact.id="solr-cell" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-dependency-artifacts artifact.id="solr-lucene-analyzers" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-dependency-artifacts artifact.id="solr-lucene-core" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-dependency-artifacts artifact.id="solr-lucene-highlighter" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-dependency-artifacts artifact.id="solr-lucene-queries" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-dependency-artifacts artifact.id="solr-lucene-snowball" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-dependency-artifacts artifact.id="solr-lucene-spellchecker" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-artifacts artifact.id="solr-solrj" gpg.passphrase="${gpg.passphrase}"/>
<sign-maven-artifacts artifact.id="solr-velocity" gpg.passphrase="${gpg.passphrase}"/>
<!-- Thes are special since there are no jars, just poms -->
<sign-artifact input.file="${maven.dist.prefix}/solr-parent/${maven_version}/solr-parent-${maven_version}.pom" gpg.passphrase="${gpg.passphrase}"/>
<sign-artifact input.file="${maven.dist.prefix}/solr-lucene-contrib/${maven_version}/solr-lucene-contrib-${maven_version}.pom" gpg.passphrase="${gpg.passphrase}"/>
</target>
<target name="prepare-release" depends="clean, svn-up, build-site, package, sign-artifacts" description="Prototype helper for Committers. Assumes gpg is in the path">
<tar destfile="${dist}/solr-maven.tar" longfile="gnu">
<tarfileset dir="${dist}/maven" prefix="maven"/>
</tar>
<tar destfile="${dist}/solr.tar" longfile="gnu">
<tarfileset dir="${dist}" includes="${fullnamever}.* solr-maven.tar" excludes="${fullnamever}.war"/>
</tar>
</target>
<target name="generate-maven-artifacts" depends="maven.ant.tasks-check, create-package">
<sequential>
<!--
!!!!!!!!!!
NOTE: If you add new artifacts, please make sure you also add to the sign-artifacts target
so that they get signed during release.
!!!!!!!
-->
<mkdir dir="${maven.build.dir}"/>
<mkdir dir="${maven.dist.dir}"/>
<!-- ========== SOLR PARENT POM ========== -->
<m2-deploy pom.xml="src/maven/solr-parent-pom.xml.template"/>
<!-- ========== SOLR SPECIFIC COMMONS CSV ========== -->
<m2-deploy pom.xml="lib/solr-commons-csv-pom.xml.template"
jar.file="lib/commons-csv-1.0-SNAPSHOT-r609327.jar" />
<!-- ========== SOLR ARTIFACTS ========== -->
<m2-deploy pom.xml="contrib/dataimporthandler/solr-dataimporthandler-pom.xml.template"
jar.file="${dist}/apache-solr-dataimporthandler-${version}.jar">
<artifact-attachments>
<attach file="${dist}/apache-solr-dataimporthandler-src-${version}.jar" classifier="sources"/>
<attach file="${dist}/apache-solr-dataimporthandler-docs-${version}.jar" classifier="javadoc"/>
</artifact-attachments>
</m2-deploy>
<m2-deploy pom.xml="contrib/dataimporthandler/solr-dataimporthandler-extras-pom.xml.template"
jar.file="${dist}/apache-solr-dataimporthandler-extras-${version}.jar">
<artifact-attachments>
<attach file="${dist}/apache-solr-dataimporthandler-extras-src-${version}.jar" classifier="sources"/>
<attach file="${dist}/apache-solr-dataimporthandler-docs-${version}.jar" classifier="javadoc"/>
</artifact-attachments>
</m2-deploy>
<m2-deploy pom.xml="contrib/extraction/solr-cell-pom.xml.template"
jar.file="${dist}/apache-solr-cell-${version}.jar">
<artifact-attachments>
<attach file="${dist}/apache-solr-cell-src-${version}.jar" classifier="sources"/>
<attach file="${dist}/apache-solr-cell-docs-${version}.jar" classifier="javadoc"/>
</artifact-attachments>
</m2-deploy>
<m2-deploy pom.xml="contrib/clustering/solr-clustering-pom.xml.template"
jar.file="${dist}/apache-solr-clustering-${version}.jar">
<artifact-attachments>
<attach file="${dist}/apache-solr-clustering-src-${version}.jar" classifier="sources"/>
<attach file="${dist}/apache-solr-clustering-docs-${version}.jar" classifier="javadoc"/>
</artifact-attachments>
</m2-deploy>
<!-- Clustring specific -->
<!-- TODO: MORE NEEDED HERE ONCE WE FINALIZE THE LIBS FOR CARROT -->
<!-- end clustering specific -->
<m2-deploy pom.xml="contrib/velocity/solr-velocity-pom.xml.template"
jar.file="contrib/velocity/src/main/solr/lib/apache-solr-velocity-${version}.jar">
<artifact-attachments>
<attach file="${dist}/apache-solr-velocity-src-${version}.jar" classifier="sources"/>
<attach file="${dist}/apache-solr-velocity-docs-${version}.jar" classifier="javadoc"/>
</artifact-attachments>
</m2-deploy>
<m2-deploy pom.xml="src/maven/solr-core-pom.xml.template"
jar.file="${dist}/apache-solr-core-${version}.jar">
<artifact-attachments>
<attach file="${dist}/apache-solr-core-src-${version}.jar" classifier="sources"/>
<attach file="${dist}/apache-solr-core-docs-${version}.jar" classifier="javadoc"/>
</artifact-attachments>
</m2-deploy>
<m2-deploy pom.xml="src/maven/solr-solrj-pom.xml.template"
jar.file="${dist}/apache-solr-solrj-${version}.jar">
<artifact-attachments>
<attach file="${dist}/apache-solr-solrj-src-${version}.jar" classifier="sources"/>
<attach file="${dist}/apache-solr-solrj-docs-${version}.jar" classifier="javadoc"/>
</artifact-attachments>
</m2-deploy>
</sequential>
</target>
<target name="nightly"
depends="test, create-package">
<!-- no description, don't advertise -->
</target>
<target name="-taskdef">
<typedef resource="org/apache/rat/anttasks/antlib.xml" uri="antlib:rat.anttasks">
<classpath>
<fileset dir="." includes="rat*.jar"/>
</classpath>
</typedef>
</target>
<target name="rat-sources" depends="-taskdef"
description="runs the tasks over src/java excluding the license directory">
<rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
<fileset dir="src/java"/>
<fileset dir="src/common"/>
<fileset dir="src/solrj"/>
<fileset dir="client">
<exclude name="**/CHANGES.*"/>
</fileset>
<fileset dir="contrib/dataimporthandler/src/main/java"/>
<fileset dir="contrib/dataimporthandler/src/test/java"/>
<fileset dir="contrib/clustering/src/main/java"/>
<fileset dir="contrib/clustering/src/test/java"/>
<fileset dir="contrib/extraction/src/main/java"/>
<fileset dir="contrib/extraction/src/test/java"/>
</rat:report>
</target>
<!-- ========================================================================= -->
<!-- ===================== Runtime: luke ============================= -->
<!-- ========================================================================= -->
<available file="luke/luke-0.9.9.jar" property="luke.jar.exists" />
<target name="luke-download" unless="luke.jar.exists" depends="proxy.setup">
<mkdir dir="luke"/>
<get src="http://www.getopt.org/luke/luke-0.9.9/luke-0.9.9.jar"
dest="luke/luke-0.9.9.jar"/>
<get src="http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/lucene/lucene-misc/2.9.1/lucene-misc-2.9.1.jar"
dest="luke/lucene-misc-2.9.0.jar" />
</target>
<target name="luke" depends="luke-download">
<java fork="true"
classname="org.getopt.luke.Luke"
logError="true"
failonerror="true">
<classpath>
<fileset dir="${lib}">
<include name="*.jar" />
</fileset>
<fileset dir="luke">
<include name="luke-0.9.9.jar"/>
<include name="lucene-misc-2.9.0.jar"/>
</fileset>
</classpath>
</java>
</target>
</project>

View File

@ -0,0 +1,5 @@
For a Solr JavaScript Client, see:
http://evolvingweb.github.com/ajax-solr/
For information on (now deprecated) SorlJS, see:
http://wiki.apache.org/solr/SolrJS

View File

@ -0,0 +1,9 @@
Note: As of version 1.3, Solr no longer comes bundled with a Python client. The existing client
was not sufficiently maintained or tested as development of Solr progressed, and committers
felt that the code was not up to our usual high standards of release.
The client bundled with previous versions of Solr will continue to be available indefinitely at:
http://svn.apache.org/viewvc/lucene/solr/tags/release-1.2.0/client/python/
Please see http://wiki.apache.org/solr/SolPython for information on third-party Solr python
clients.

View File

@ -0,0 +1,29 @@
# 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.
== Welcome to Solr Flare
Flare promises to expose the power of Solr through a Rails-based user interface. Integral to Flare will be general purpose faceted browsing, auto-suggest, folksonomy tagging/annotating, and much more.
Visit the Solr Flare wiki for more information: http://wiki.apache.org/solr/Flare
== Getting started
Launch Solr:
cd solr
java -jar start.jar
Launch Rails:
script/server

View File

@ -0,0 +1,24 @@
# 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.
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
#require 'solr/solrtasks'

View File

@ -0,0 +1,19 @@
# 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.
# Filters added to this controller apply to all controllers in the application.
# Likewise, all the methods added will be available for all controllers.
class ApplicationController < ActionController::Base
# Pick a unique cookie name to distinguish our session data from others'
session :session_key => '_flare_session_id'
end

View File

@ -0,0 +1,19 @@
# 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.
# This controller demonstrates the returning of accented characters work from the Solr example data
# and render properly in the browser
class I18nController < ApplicationController
def index
@results = SOLR.query("acute").hits
end
end

View File

@ -0,0 +1,15 @@
# 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.
# Methods added to this helper will be available to all templates in the application.
module ApplicationHelper
end

View File

@ -0,0 +1,14 @@
# 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.
module BrowseHelper
end

View File

@ -0,0 +1,14 @@
# 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.
module SimileHelper
end

View File

@ -0,0 +1,24 @@
<%
# 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.
%>
<ul class="cookies">
<%
@values.each do |value|
if value[1] > 0
-%>
<li class="cookie"><span class="informal">&nbsp;</span><%=value[0]%><span class="informal"> (<%=value[1]%>)<br/></span></li>
<%
end
end
-%>
</ul>

View File

@ -0,0 +1,55 @@
<%
# 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.
%>
<div id="variables">
<div class="clear">
<%=link_to '[clear constraints]', :action => 'clear'%>
</div>
<div>
Queries:
<div id="queries">
<% @flare.queries.each_with_index do |q,i| %>
<%=link_to q[:negative] ? "-" : '+', :action => :invert_query, :index => i%>
<span id="query_<%=i%>"><%=q[:query]%></span>
<%= in_place_editor "query_#{i}", :url=> url_for(:action=>"update_query", :index=>i) %>
<%=link_to image_tag("x-close.gif"), :action => :remove_query, :index => i %><br/>
<% end %>
</div>
</div>
<div>
Filters:
<div id="filters">
<% @flare.filters.each_with_index do |filter, i| %>
<%=link_to filter[:negative] ? "-" : "+", :action => :invert_filter, :index => i%>
<%=filter[:field]%>:<%=filter[:value]%>
<%=link_to image_tag("x-close.gif"), :action => :remove_filter, :index => i %>
<% end %>
</div>
</div>
<div class="clear">
<%=link_to '[clear constraints]', :action => 'clear'%>
</div>
</div>
<h1><%=params[:field]%></h1>
<% @facets.each do |f| %>
<% if f.name %>
<%= link_to f.name, :action => 'add_filter', :field => params[:field], :value => f.name %> (<%=f.value%>)
<% else %>
<%= link_to '---- NO VALUE ----', :action => 'add_filter', :field => params[:field], :value => "[* TO *]", :negative => true %> (<%=f.value%>)
<% end %>
<% end%>

View File

@ -0,0 +1,30 @@
<%
# 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.
%>
<tr valign="top">
<td>
<%=image_tag "http://images.amazon.com/images/P/#{doc['id']}.01.MZZZZZZZ" %>
</td>
<td>
<table class="entry">
<tr>
<td class="title" colspan="2"><%=link_to doc['title_text'], "http://www.amazon.com/exec/obidos/ASIN/#{doc['id']}"%></td>
</tr>
<% doc.each do |k,v|; highlighting = response.highlighted(doc['id'], k) %>
<tr><td class="field"><%=k%>:</td><td><%= highlighting ? "...#{highlighting}..." : (v.respond_to?('join') ? v.join(',') : v.to_s)%></td></tr>
<% end %>
</table>
</td>
</tr>

View File

@ -0,0 +1,43 @@
<%
# 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.
%>
<%
body_zh_highlighted = response.highlighted(doc['id'], 'body_zh_text')
body_en_highlighted = response.highlighted(doc['id'], 'body_en_text')
-%>
<tr valign="top">
<td>
<table class="entry">
<tr>
<td class="title" colspan="2"><%=doc['title_zh_text']%> (<%=doc['title_en_text']%>)</td>
</tr>
<tr>
<td class="field">author:</td><td><%=doc['author_zh_facet']%> (<%=doc['author_en_facet']%>)</td>
</tr>
<tr>
<td class="field">type:</td><td><%=doc['type_zh_facet']%> (<%=doc['type_en_facet']%>)</td>
</tr>
<tr>
<td class="field">body:</td>
<td>
<blockquote>
<%= body_zh_highlighted ? "...#{body_zh_highlighted}..." : doc['body_zh_text'] %>
</blockquote>
<blockquote>
<%= body_en_highlighted ? "...#{body_en_highlighted}..." : doc['body_en_text'] %>
</blockquote>
</td>
</tr>
</table>
</td>
</tr>

View File

@ -0,0 +1,36 @@
<%
# 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.
%>
<%
virgo_link = "http://virgo.lib.virginia.edu/uhtbin/cgisirsi/uva/0/0/5?searchdata1=#{doc['id'][1..-1]}%7bCKEY%7d"
# url = URI.parse(virgo_link)
# res = Net::HTTP.start(url.host, url.port) {|http|
# http.get("/uhtbin/cgisirsi/uva/0/0/5?searchdata1=#{doc['id'][1..-1]}{CKEY}")
# }
# availability = Regexp.new("Copy\ info\:(.*)td\>", Regexp::MULTILINE).match(res.body)[1]
%>
<tr valign="top">
<td>
<table class="entry">
<tr>
<td class="title" colspan="2"><%= link_to doc['title_text'], virgo_link, {:target => "_blank"}%></td>
</tr>
<% doc.each do |k,v|; highlighting = response.highlighted(doc['id'], k) %>
<tr><td class="field"><%=k%>:</td><td><%= highlighting ? "...#{highlighting}..." : (v.respond_to?('join') ? v.join(',') : v.to_s)%></td></tr>
<% end %>
<tr>
<!-- <td class="field">Availability:</td><td><%%=h availability%></td> -->
</tr>
</table>
</td>
</tr>

View File

@ -0,0 +1,16 @@
<%
# 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.
%>
<% @results[0]['features'].each do |f| %>
<%= h f%>
<% end %>

View File

@ -0,0 +1,28 @@
<%
# 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.
%>
<html>
<head>
<title>Solr flare: <%=controller.action_name%></title>
<%= javascript_include_tag :defaults %>
<%= stylesheet_link_tag 'flare'%>
</head>
<body>
<div>
<div id="header">
<a href="http://lucene.apache.org/solr"><%=image_tag "solr_small.png"%></a><a href="http://wiki.apache.org/solr/Flare">flare</a>
</div>
<%= yield %>
</div>
</body>
</html>

View File

@ -0,0 +1,57 @@
# 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.
# Don't change this file. Configuration is done in config/environment.rb and config/environments/*.rb
unless defined?(RAILS_ROOT)
root_path = File.join(File.dirname(__FILE__), '..')
unless RUBY_PLATFORM =~ /(:?mswin|mingw)/
require 'pathname'
root_path = Pathname.new(root_path).cleanpath(true).to_s
end
RAILS_ROOT = root_path
end
unless defined?(Rails::Initializer)
if File.directory?("#{RAILS_ROOT}/vendor/rails")
require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
else
require 'rubygems'
environment_without_comments = IO.readlines(File.dirname(__FILE__) + '/environment.rb').reject { |l| l =~ /^#/ }.join
environment_without_comments =~ /[^#]RAILS_GEM_VERSION = '([\d.]+)'/
rails_gem_version = $1
if version = defined?(RAILS_GEM_VERSION) ? RAILS_GEM_VERSION : rails_gem_version
# Asking for 1.1.6 will give you 1.1.6.5206, if available -- makes it easier to use beta gems
rails_gem = Gem.cache.search('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last
if rails_gem
gem "rails", "=#{rails_gem.version.version}"
require rails_gem.full_gem_path + '/lib/initializer'
else
STDERR.puts %(Cannot find gem for Rails ~>#{version}.0:
Install the missing gem with 'gem install -v=#{version} rails', or
change environment.rb to define RAILS_GEM_VERSION with your desired version.
)
exit 1
end
else
gem "rails"
require 'initializer'
end
end
Rails::Initializer.run(:set_load_path)
end

View File

@ -0,0 +1,51 @@
# 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.
# NOTE: Flare currently does not use a database, but there are plans to eventually leverage a relational database
# in conjunction with Solr. When a database is added, lib/tasks/clear_database_prerequisites.rake should be removed.
# MySQL (default setup). Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
# gem install mysql
# On MacOS X:
# gem install mysql -- --include=/usr/local/lib
# On Windows:
# gem install mysql
# Choose the win32 build.
# Install MySQL and put its /bin directory on your path.
#
# And be sure to use new-style password hashing:
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
adapter: mysql
database: flare_development
username: root
password:
host: localhost
# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
adapter: mysql
database: flare_test
username: root
password:
host: localhost
production:
adapter: mysql
database: flare_production
username: root
password:
host: localhost

View File

@ -0,0 +1,105 @@
# 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.
# Be sure to restart your web server when you modify this file.
# Uncomment below to force Rails into production mode when
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
# Settings in config/environments/* take precedence over those specified here
# Skip frameworks you're not going to use (only works if using vendor/rails)
# config.frameworks -= [ :action_web_service, :action_mailer ]
# Only load the plugins named here, by default all plugins in vendor/plugins are loaded
# config.plugins = %W( exception_notification ssl_requirement )
# Add additional load paths for your own custom dirs
# config.load_paths += %W( #{RAILS_ROOT}/extras )
# Force all environments to use the same logger level
# (by default production uses :info, the others :debug)
# config.log_level = :debug
# Use the database for sessions instead of the file system
# (create the session table with 'rake db:sessions:create')
# config.action_controller.session_store = :active_record_store
# Use SQL instead of Active Record's schema dumper when creating the test database.
# This is necessary if your schema can't be completely dumped by the schema dumper,
# like if you have constraints or database-specific column types
# config.active_record.schema_format = :sql
# Activate observers that should always be running
# config.active_record.observers = :cacher, :garbage_collector
# Make Active Record use UTC-base instead of local time
# config.active_record.default_timezone = :utc
# See Rails::Configuration for more options
end
# Add new inflection rules using the following format
# (all these examples are active by default):
# Inflector.inflections do |inflect|
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
# end
# Include your application configuration below
# $KCODE = 'UTF8' # Rails 1.2 supposedly sets this automatically
require 'solr'
solr_environments = {
# facets: default, all *_facet fields are considered facet fields
# title: default, :title_text is title field
# timeline: default, no timeline support without knowing the field(s) to use
:development => {
:solr_query_type => :standard,
},
:delicious => {
:timeline_dates => :published_year_facet,
:image_proc => Proc.new {|doc| "http://images.amazon.com/images/P/#{doc['id']}.01.MZZZZZZZ"},
},
:tang => {
:solr_query_type => :standard,
},
:marc => {
:timeline_dates => :year_facet,
},
# TODO: :uva could inherit :marc settings, only overriding the template for VIRGO links
:uva => {
:timeline_dates => :year_facet,
:facets_exclude => [:filename_facet]
},
}
SOLR_ENV = ENV["SOLR_ENV"] || "development"
SOLR_CONFIG = solr_environments[SOLR_ENV.to_sym]
puts "#{SOLR_ENV}: SOLR_CONFIG = #{SOLR_CONFIG.inspect}"
SOLR_CONFIG[:solr_url] ||= "http://localhost:8983/solr"
#SOLR = Solr::Connection.new(SOLR_CONFIG[:solr_url])

View File

@ -0,0 +1,33 @@
# 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.
# Settings specified here will take precedence over those in config/environment.rb
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the webserver when you make code changes.
config.cache_classes = false
# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true
# Enable the breakpoint server that script/breakpointer connects to
config.breakpoint_server = true
# Show full error reports and disable caching
config.action_controller.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.action_view.cache_template_extensions = false
config.action_view.debug_rjs = true
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false

View File

@ -0,0 +1,30 @@
# 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.
# Settings specified here will take precedence over those in config/environment.rb
# The production environment is meant for finished, "live" apps.
# Code is not reloaded between requests
config.cache_classes = true
# Use a different logger for distributed setups
# config.logger = SyslogLogger.new
# Full error reports are disabled and caching is turned on
config.action_controller.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable serving of images, stylesheets, and javascripts from an asset server
# config.action_controller.asset_host = "http://assets.example.com"
# Disable delivery errors, bad email addresses will be ignored
# config.action_mailer.raise_delivery_errors = false

View File

@ -0,0 +1,31 @@
# 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.
# Settings specified here will take precedence over those in config/environment.rb
# The test environment is used exclusively to run your application's
# test suite. You never need to work with it otherwise. Remember that
# your test database is "scratch space" for the test suite and is wiped
# and recreated between test runs. Don't rely on the data there!
config.cache_classes = true
# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true
# Show full error reports and disable caching
config.action_controller.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Tell ActionMailer not to deliver emails to the real world.
# The :test delivery method accumulates sent emails in the
# ActionMailer::Base.deliveries array.
config.action_mailer.delivery_method = :test

View File

@ -0,0 +1,40 @@
# 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.
ActionController::Routing::Routes.draw do |map|
# The priority is based upon order of creation: first created -> highest priority.
# Sample of regular route:
# map.connect 'products/:id', :controller => 'catalog', :action => 'view'
# Keep in mind you can assign values other than :controller and :action
# Sample of named route:
# map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
# This route can be invoked with purchase_url(:id => product.id)
# You can have the root of your site routed by hooking up ''
# -- just remember to delete public/index.html.
map.connect '', :controller => "browse"
map.connect 'browse/facet', :controller => "browse", :action => "facet"
map.connect 'saved/:name', :controller => 'browse', :action => 'show_saved'
# Allow downloading Web Service WSDL as a file with an extension
# instead of a file named 'wsdl'
# map.connect ':controller/service.wsdl', :action => 'wsdl'
# Install the default route as the lowest priority.
# map.connect ':controller/:action/:id.:format'
map.connect ':controller/:action.:format'
map.connect ':controller/:action'
end

View File

@ -0,0 +1,11 @@
# 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.

View File

@ -0,0 +1,17 @@
# 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.
# Added this .rake file to keep Rake happy without a database.
# Remove once a database is in the picture.
["test:units", "test:functionals", "recent", "test:integration"].each do |name|
Rake::Task[name].prerequisites.clear
end

View File

@ -0,0 +1,22 @@
# 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.
# Borrowed from <http://pastie.caboo.se/23100>, by Josh Susser
desc "Print out all the currently defined routes, with names."
task :routes => :environment do
name_col_width = ActionController::Routing::Routes.named_routes.routes.keys.sort {|a,b| a.to_s.size <=> b.to_s.size}.last.to_s.size
ActionController::Routing::Routes.routes.each do |route|
name = ActionController::Routing::Routes.named_routes.routes.index(route).to_s
name = name.ljust(name_col_width + 1)
puts "#{name}#{route}"
end
end

View File

@ -0,0 +1,52 @@
# 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.
# General Apache options
AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI
# If you don't want Rails to look in certain directories,
# use the following rewrite rules so that Apache won't rewrite certain requests
#
# Example:
# RewriteCond %{REQUEST_URI} ^/notrails.*
# RewriteRule .* - [L]
# Redirect all requests not available on the filesystem to Rails
# By default the cgi dispatcher is used which is very slow
#
# For better performance replace the dispatcher with the fastcgi one
#
# Example:
# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
RewriteEngine On
# If your Rails application is accessed via an Alias directive,
# then you MUST also set the RewriteBase in this htaccess file.
#
# Example:
# Alias /myrailsapp /path/to/myrailsapp/public
# RewriteBase /myrailsapp
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
# In case Rails experiences terminal errors
# Instead of displaying this message you can supply a file here which will be rendered instead
#
# Example:
# ErrorDocument 500 /500.html
ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"

View File

@ -0,0 +1,43 @@
<!--
# 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.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>The page you were looking for doesn't exist (404)</title>
<style type="text/css">
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
div.dialog {
width: 25em;
padding: 0 4em;
margin: 4em auto 0 auto;
border: 1px solid #ccc;
border-right-color: #999;
border-bottom-color: #999;
}
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
</style>
</head>
<body>
<!-- This file lives in public/404.html -->
<div class="dialog">
<h1>The page you were looking for doesn't exist.</h1>
<p>You may have mistyped the address or the page may have moved.</p>
</div>
</body>
</html>

View File

@ -0,0 +1,43 @@
<!--
# 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.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>We're sorry, but something went wrong</title>
<style type="text/css">
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
div.dialog {
width: 25em;
padding: 0 4em;
margin: 4em auto 0 auto;
border: 1px solid #ccc;
border-right-color: #999;
border-bottom-color: #999;
}
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
</style>
</head>
<body>
<!-- This file lives in public/500.html -->
<div class="dialog">
<h1>We're sorry, but something went wrong.</h1>
<p>We've been notified about this issue and we'll take a look at it shortly.</p>
</div>
</body>
</html>

View File

@ -0,0 +1,22 @@
#!/opt/local/bin/ruby
# 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.
require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
require "dispatcher"
ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
Dispatcher.dispatch

View File

@ -0,0 +1,37 @@
#!/opt/local/bin/ruby
# 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.
#
# You may specify the path to the FastCGI crash log (a log of unhandled
# exceptions which forced the FastCGI instance to exit, great for debugging)
# and the number of requests to process before running garbage collection.
#
# By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log
# and the GC period is nil (turned off). A reasonable number of requests
# could range from 10-100 depending on the memory footprint of your app.
#
# Example:
# # Default log path, normal GC behavior.
# RailsFCGIHandler.process!
#
# # Default log path, 50 requests between GC.
# RailsFCGIHandler.process! nil, 50
#
# # Custom log path, normal GC behavior.
# RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
#
require File.dirname(__FILE__) + "/../config/environment"
require 'fcgi_handler'
RailsFCGIHandler.process!

View File

@ -0,0 +1,22 @@
#!/opt/local/bin/ruby
# 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.
require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
require "dispatcher"
ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
Dispatcher.dispatch

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 811 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 813 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 813 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Some files were not shown because too many files have changed in this diff Show More