diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index 6c19bda941..0000000000
--- a/AUTHORS
+++ /dev/null
@@ -1,3 +0,0 @@
-Miguel de Icaza (miguel@ximian.com)
-Paolo Molaro (lupus@ximian.com)
-Dietmar Maurer (dietmar@ximian.com)
diff --git a/LICENSE b/LICENSE
index be4be30323..ad5cbb429f 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,8 +8,8 @@ For comments, corrections and updates, please contact mono@xamarin.com
Parts of Mono are dual licensed, they are available to the
public in GPL or LGPL forms, but we also offer those pieces
- under commercial terms from Xamarin for the cases wher the GPL
- and the LGPL are not suitable.
+ under commercial terms from Xamarin for the cases where the
+ GPL and the LGPL are not suitable.
We have tried to pick the licenses that will maximize adoption
of Mono, so we tend to use the MIT X11 or LGPL liceses.
diff --git a/Makefile.am b/Makefile.am
index e9d6ccdcda..19f0cfbd79 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,19 +10,11 @@ SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scr
## 'tools' is not normally built
DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
else
-if ONLY_MONOTOUCH
-SUBDIRS = $(MONOTOUCH_SUBDIRS) runtime
-else
-if ONLY_XAMMAC
-SUBDIRS = $(libgc_dir) eglib/src mono runtime
-else
SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
# Keep in sync with SUBDIRS
## 'tools' is not normally built
DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
endif
-endif
-endif
all: update_submodules
@@ -36,11 +28,9 @@ EXTRA_DIST= \
README.md \
LICENSE \
autogen.sh \
- build-mingw32.sh \
mkinstalldirs \
mono-uninstalled.pc.in \
winconfig.h \
- mono-core.spec \
external
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
diff --git a/Makefile.in b/Makefile.in
index a80823be98..322c2eb5a6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -83,9 +83,9 @@ subdir = .
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
$(srcdir)/config.h.in mkinstalldirs \
- $(srcdir)/mono-core.spec.in $(srcdir)/mono-uninstalled.pc.in \
- AUTHORS COPYING.LIB ChangeLog NEWS compile config.guess \
- config.rpath config.sub depcomp install-sh missing ltmain.sh
+ $(srcdir)/mono-uninstalled.pc.in COPYING.LIB ChangeLog NEWS \
+ compile config.guess config.rpath config.sub install-sh \
+ missing ltmain.sh
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
@@ -101,7 +101,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = mono-core.spec mono-uninstalled.pc
+CONFIG_CLEAN_FILES = mono-uninstalled.pc
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -413,12 +413,10 @@ top_srcdir = @top_srcdir@
ACLOCAL_AMFLAGS = -I m4
AM_CFLAGS = $(WERROR_CFLAGS)
MONOTOUCH_SUBDIRS = $(libgc_dir) eglib/src mono
-@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_FALSE@@ONLY_XAMMAC_FALSE@SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
-@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_FALSE@@ONLY_XAMMAC_TRUE@SUBDIRS = $(libgc_dir) eglib/src mono runtime
-@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_TRUE@SUBDIRS = $(MONOTOUCH_SUBDIRS) runtime
+@CROSS_COMPILING_FALSE@SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
@CROSS_COMPILING_TRUE@SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
# Keep in sync with SUBDIRS
-@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_FALSE@@ONLY_XAMMAC_FALSE@DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
+@CROSS_COMPILING_FALSE@DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
# Keep in sync with SUBDIRS
@CROSS_COMPILING_TRUE@DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
SUBMODULE_ERROR = 'Could not recursively update all git submodules. You may experience compilation problems if some submodules are out of date'
@@ -426,11 +424,9 @@ EXTRA_DIST = \
README.md \
LICENSE \
autogen.sh \
- build-mingw32.sh \
mkinstalldirs \
mono-uninstalled.pc.in \
winconfig.h \
- mono-core.spec \
external
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
@@ -498,8 +494,6 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
distclean-hdr:
-rm -f config.h stamp-h1
-mono-core.spec: $(top_builddir)/config.status $(srcdir)/mono-core.spec.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
mono-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/mono-uninstalled.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
diff --git a/NEWS b/NEWS
index 0081b86987..ec300ca2dc 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,3 @@
Release notes for Mono are hosted on the web, please see:
- http://www.go-mono.com/archive/VERSION
-
-Where version is the version of this Mono package, for example:
-
- http://www.go-mono.com/archive/1.1.9
-
+ http://www.mono-project.com/docs/about-mono/releases/
diff --git a/README.md b/README.md
index 86e5d81b06..1d44a52c3d 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,9 @@
-Mono is a software platform designed to allow developers to easily create cross platform applications.
-It is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
+Mono is a software platform designed to allow developers to easily
+create cross platform applications. It is an open source
+implementation of Microsoft's .NET Framework based on the ECMA
+standards for C# and the Common Language Runtime.
+
+[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mono/mono?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1. [Compilation and Installation](#compilation-and-installation)
2. [Using Mono](#using-mono)
@@ -7,23 +11,34 @@ It is an open source implementation of Microsoft's .NET Framework based on the E
4. [Contributing to Mono](#contributing-to-mono)
5. [Reporting bugs](#reporting-bugs)
6. [Configuration Options](#configuration-options)
+7. [Working with Submodules](#working-with-submodules)
**Build Status**
-| debian-amd64 | debian-i386 | debian-ppc64el | centos-s390x | windows-amd64 |
-|:-----------------------:|:----------------------:|:-------------------------:|:-----------------------:|:-------------------------:|
-| [![debian-amd64][1]][2] | [![debian-i386][3]][4] | [![debian-ppc64el][5]][6] | [![centos-s390x][7]][8] | [![windows-amd64][9]][10] |
+Officially supported architectures:
+
+| debian-amd64 | debian-i386 | debian-armel | debian-armhf | windows-amd64 |
+|-------------------------|------------------------|-------------------------|-------------------------|---------------------------|
+| [![debian-amd64][1]][2] | [![debian-i386][3]][4] | [![debian-armel][5]][6] | [![debian-armhf][7]][8] | [![windows-amd64][9]][10] |
+
+Community supported architectures:
+
+| centos-s390x |
+|---------------------------|
+| [![centos-s390x][11]][12] |
[1]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/badge/icon
[2]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/
[3]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/badge/icon
[4]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/
-[5]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=debian-ppc64el/badge/icon
-[6]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=debian-ppc64el/
-[7]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=centos-s390x/badge/icon
-[8]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=centos-s390x/
+[5]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armel/badge/icon
+[6]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armel/
+[7]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/badge/icon
+[8]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/
[9]: https://ci.appveyor.com/api/projects/status/1e61ebdfpbiei58v/branch/master?svg=true
[10]: https://ci.appveyor.com/project/ajlennon/mono-817/branch/master
+[11]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=nealef-s390x-1/badge/icon
+[12]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=nealef-s390x-1/
Compilation and Installation
============================
@@ -55,7 +70,7 @@ which contains just enough to run the 'mcs' compiler. You do this with:
This will download and place the files appropriately so that you can then
just run:
- make EXTERNAL_MCS=${PWD}/mcs/class/lib/monolite/basic.exe
+ make
The build will then use the files downloaded by `make get-monolite-latest`.
@@ -130,54 +145,50 @@ runtime as an embedded library.
* `scripts/` - Scripts used to invoke Mono and the corresponding program.
-* `../olive/` - Incubation code from [Olive](https://github.com/mono/olive).
-
- * If the directory ../olive is present (as an
-independent checkout) from the Mono module, that
-directory is automatically configured to share the
-same prefix than this module gets.
-
Contributing to Mono
====================
-Before submitting changes to Mono, please review the [contribution guidelines](http://www.mono-project.com/community/contributing/).
-Please pay particular attention to the [Important Rules](http://www.mono-project.com/community/contributing/#important-rules) section.
+Before submitting changes to Mono, please review the [contribution
+guidelines](http://www.mono-project.com/community/contributing/).
+Please pay particular attention to the [Important
+Rules](http://www.mono-project.com/community/contributing/#important-rules)
+section.
Reporting bugs
==============
-To submit bug reports, please use [Xamarin's Bugzilla](https://bugzilla.xamarin.com/)
+To submit bug reports, please use [Xamarin's
+Bugzilla](https://bugzilla.xamarin.com/)
Please use the search facility to ensure the same bug hasn't already
-been submitted and follow our [guidelines](http://www.mono-project.com/community/bugs/make-a-good-bug-report/)
+been submitted and follow our
+[guidelines](http://www.mono-project.com/community/bugs/make-a-good-bug-report/)
on how to make a good bug report.
Configuration Options
=====================
-The following are the configuration options that someone
-building Mono might want to use:
+The following are the configuration options that someone building Mono
+might want to use:
-* `--with-sgen=yes,no` - Generational GC support: Used to enable or disable the
-compilation of a Mono runtime with the SGen garbage collector.
+* `--with-sgen=yes,no` - Generational GC support: Used to enable or
+disable the compilation of a Mono runtime with the SGen garbage
+collector.
* On platforms that support it, after building Mono, you will have
-both a `mono` binary and a `mono-sgen` binary. `mono` uses Boehm, while
-`mono-sgen` uses the Simple Generational GC.
+both a `mono` binary and a `mono-sgen` binary. `mono` uses Boehm,
+while `mono-sgen` uses the Simple Generational GC.
-* `--with-gc=[included, boehm, none]` - Selects the default Boehm garbage
-collector engine to use.
+* `--with-gc=[included, boehm, none]` - Selects the default Boehm
+garbage collector engine to use.
- * *included*: (*slighty modified Boehm GC*)
-This is the default value for the Boehm GC, and it's
-the most feature complete, it will allow Mono
-to use typed allocations and support the debugger.
+ * *included*: (*slighty modified Boehm GC*) This is the default
+value for the Boehm GC, and it's the most feature complete, it will
+allow Mono to use typed allocations and support the debugger.
- * *boehm*:
-This is used to use a system-install Boehm GC,
-it is useful to test new features available in
-Boehm GC, but we do not recommend that people
-use this, as it disables a few features.
+ * *boehm*: This is used to use a system-install Boehm GC, it is
+useful to test new features available in Boehm GC, but we do not
+recommend that people use this, as it disables a few features.
* *none*:
Disables the inclusion of a garbage collector.
@@ -436,3 +447,54 @@ http://code.google.com/p/nativeclient/
* Currently this is used with Mono's AOT engine as
Native Client does not support JIT engines yet.
+
+Working With Submodules
+=======================
+
+Mono references several external git submodules, for example
+a fork of Microsoft's reference source code that has been altered
+to be suitable for use with the Mono runtime.
+
+This section describes how to use it.
+
+An initial clone should be done recursively so all submodules will also be
+cloned in a single pass:
+
+ $ git clone --recursive git@github.com:mono/mono
+
+Once cloned, submodules can be updated to pull down the latest changes.
+This can also be done after an initial non-recursive clone:
+
+ $ git submodule update --init --recursive
+
+To pull external changes into a submodule:
+
+ $ cd
+ $ git pull origin
+ $ cd
+ $ git add
+ $ git commit
+
+By default, submodules are detached because they point to a specific commit.
+Use `git checkout` to move back to a branch before making changes:
+
+ $ cd
+ $ git checkout
+ # work as normal; the submodule is a normal repo
+ $ git commit/push new changes to the repo (submodule)
+
+ $ cd
+ $ git add # this will record the new commits to the submodule
+ $ git commit
+
+To switch the repo of a submodule (this should not be a common or normal thing
+to do at all), first edit `.gitmodules` to point to the new location, then:
+
+ $ git submodule sync --
+ $ git submodule update --recursive
+ $ git checkout
+
+The desired output diff is a change in `.gitmodules` to reflect the
+change in the remote URL, and a change in / where you see
+the desired change in the commit hash.
+
diff --git a/build-mingw32.sh b/build-mingw32.sh
deleted file mode 100755
index 4c8ed8c1dc..0000000000
--- a/build-mingw32.sh
+++ /dev/null
@@ -1,227 +0,0 @@
-#!/bin/bash -e
-CURDIR="`pwd`"
-MINGW=i386-mingw32msvc
-CROSS_DIR=/opt/cross/$MINGW
-EXTRA_CROSS_DIR=
-INSTALL_DESTDIR="$CURDIR/mono-win32"
-PROFILES="default net_2_0 net_3_5 net_4_0 net_4_5 moonlight"
-TEMPORARY_PKG_CONFIG_DIR=/tmp/$RANDOM-pkg-config-$RANDOM
-ORIGINAL_PATH="$PATH"
-
-export CPPFLAGS_FOR_EGLIB CFLAGS_FOR_EGLIB CPPFLAGS_FOR_LIBGC CFLAGS_FOR_LIBGC
-
-function cleanup ()
-{
- if [ -d "$TEMPORARY_PKG_CONFIG_DIR" ]; then
- rm -rf "$TEMPORARY_PKG_CONFIG_DIR"
- fi
-}
-
-function check_pkg_config_dir ()
-{
- local DIR="$1"
- local DIR_PREFIX="$2"
-
- if [ ! -d "$DIR" ]; then
- return
- fi
-
- install -d -m 755 "$TEMPORARY_PKG_CONFIG_DIR"
- for pc in "$DIR"/*.pc; do
- if [ -f $pc ]; then
- pcname="`basename $pc`"
- sed -e "s;^prefix=.*;prefix=$DIR_PREFIX;g" < $pc > "$TEMPORARY_PKG_CONFIG_DIR"/$pcname
- fi;
- done
-
- if [ -z "$CROSS_PKG_CONFIG_DIR" ]; then
- CROSS_PKG_CONFIG_DIR="$TEMPORARY_PKG_CONFIG_DIR"
- fi
-}
-
-function show_build_info ()
-{
- cat < /dev/null
-
-while getopts "d:m:e:p:" opt; do
- case "$opt" in
- d) CROSS_DIR="$OPTARG" ;;
- m) MINGW="$OPTARG" ;;
- e) EXTRA_CROSS_DIR="$OPTARG" ;;
- p) MONO_PREFIX="$OPTARG" ;;
- *) usage ;;
- esac
-done
-
-setup
-build
-doinstall
-show_build_info
-
-popd > /dev/null
diff --git a/config.h.in b/config.h.in
index 6b11076358..d5a7d684d1 100644
--- a/config.h.in
+++ b/config.h.in
@@ -121,7 +121,7 @@
/* Extension module enabled */
#undef ENABLE_EXTENSION_MODULE
-/* Gsharing */
+/* Gsharedvt */
#undef ENABLE_GSHAREDVT
/* Icall export enabled */
@@ -181,6 +181,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H
+/* Define to 1 if you have the header file. */
+#undef HAVE_COMPLEX_H
+
/* Define to 1 if you have the `confstr' function. */
#undef HAVE_CONFSTR
@@ -287,15 +290,6 @@
/* Define to 1 if you have the `futimes' function. */
#undef HAVE_FUTIMES
-/* GC requires thread registration */
-#undef HAVE_GC_ALLOW_REGISTER_THREADS
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_GC_GC_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_GC_H
-
/* Have getaddrinfo */
#undef HAVE_GETADDRINFO
@@ -380,7 +374,7 @@
/* Have inet_ntop */
#undef HAVE_INET_NTOP
-/* Define to 1 if you have the `inet_pton' function. */
+/* Have inet_pton */
#undef HAVE_INET_PTON
/* Define to 1 if you have the header file. */
@@ -521,6 +515,9 @@
/* Define to 1 if you have the `posix_madvise' function. */
#undef HAVE_POSIX_MADVISE
+/* Define to 1 if you have the `prctl' function. */
+#undef HAVE_PRCTL
+
/* Define to 1 if you have the `preadv' function. */
#undef HAVE_PREADV
@@ -755,6 +752,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_SYSLOG_H
+/* Define to 1 if you have the `system' function. */
+#undef HAVE_SYSTEM
+
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_AUXV_H
@@ -794,6 +794,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_POLL_H
+/* Define to 1 if you have the header file. */
+#undef HAVE_SYS_PRCTL_H
+
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_RESOURCE_H
@@ -942,9 +945,6 @@
*/
#undef LT_OBJDIR
-/* Cross-compiling using MinGW */
-#undef MINGW_CROSS_COMPILE
-
/* Enable the allocation and indexing of arrays greater than Int32.MaxValue */
#undef MONO_BIG_ARRAYS
@@ -1059,6 +1059,9 @@
/* ... */
#undef TARGET_PS3
+/* ... */
+#undef TARGET_PS4
+
/* ... */
#undef TARGET_S390X
@@ -1068,7 +1071,7 @@
/* ... */
#undef TARGET_SPARC64
-/* Target OS is Win32/MinGW */
+/* Target Platform is Win32 */
#undef TARGET_WIN32
/* ... */
@@ -1077,6 +1080,9 @@
/* ... */
#undef TARGET_XBOX360
+/* Enable cooperative stop-the-world garbage collection. */
+#undef USE_COOP_GC
+
/* ... */
#undef USE_GCC_ATOMIC_OPS
diff --git a/configure.REMOVED.git-id b/configure.REMOVED.git-id
index 53ebe19d89..425c48f592 100644
--- a/configure.REMOVED.git-id
+++ b/configure.REMOVED.git-id
@@ -1 +1 @@
-94ef65996a186293ae651e688580672f8de4b880
\ No newline at end of file
+2c2c33e9b3b238b9af81df41107a0b6b0127ed10
\ No newline at end of file
diff --git a/configure.ac.REMOVED.git-id b/configure.ac.REMOVED.git-id
index 8106806460..95fcf98d21 100644
--- a/configure.ac.REMOVED.git-id
+++ b/configure.ac.REMOVED.git-id
@@ -1 +1 @@
-6e1f9bd8a55b889798c88191650b5752d2b58e3b
\ No newline at end of file
+fa754128cfe42ebd98f8fc68209473d8cc272fc0
\ No newline at end of file
diff --git a/data/gdb/mono-gdb.py b/data/gdb/mono-gdb.py
index ce34d357f6..f4dcfe72c0 100644
--- a/data/gdb/mono-gdb.py
+++ b/data/gdb/mono-gdb.py
@@ -31,7 +31,7 @@ class StringPrinter:
while i < len:
val = (chars.cast(gdb.lookup_type ("gint64")) + (i * 2)).cast(gdb.lookup_type ("gunichar2").pointer ()).dereference ()
if val >= 256:
- c = "\u%X".format (val)
+ c = unichr (val)
else:
c = chr (val)
res.append (c)
diff --git a/data/mono.d b/data/mono.d
index dae3c397d0..69f46525c7 100644
--- a/data/mono.d
+++ b/data/mono.d
@@ -21,21 +21,8 @@ provider mono {
probe gc__requested (int generation, uintptr_t requested_size, int wait_to_finish);
- probe gc__checkpoint__1 (int generation);
- probe gc__checkpoint__2 (int generation);
- probe gc__checkpoint__3 (int generation);
- probe gc__checkpoint__4 (int generation);
- probe gc__checkpoint__5 (int generation);
- probe gc__checkpoint__6 (int generation);
- probe gc__checkpoint__7 (int generation);
- probe gc__checkpoint__8 (int generation);
- probe gc__checkpoint__9 (int generation);
-
probe gc__concurrent__start__begin (int generation);
- probe gc__concurrent__start__end (int generation, long long num_major_objects_marked);
probe gc__concurrent__update__finish__begin (int generation, long long num_major_objects_marked);
- probe gc__concurrent__update__end (int generation, long long num_major_objects_marked);
- probe gc__concurrent__finish__end (int generation, long long num_major_objects_marked);
probe gc__sweep__begin (int generation, int full_sweep);
probe gc__sweep__end (int generation, int full_sweep);
@@ -45,19 +32,12 @@ provider mono {
probe gc__world__restart__begin (int generation);
probe gc__world__restart__end (int generation);
- probe gc__heap__alloc (uintptr_t addr, uintptr_t len);
- probe gc__heap__free (uintptr_t addr, uintptr_t len);
-
- probe gc__locked ();
- probe gc__unlocked ();
-
probe gc__nursery__tlab__alloc (uintptr_t addr, uintptr_t len);
probe gc__nursery__obj__alloc (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
probe gc__major__obj__alloc__large (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
probe gc__major__obj__alloc__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
probe gc__major__obj__alloc__degraded (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
- probe gc__major__obj__alloc__mature (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
/* Can be nursery->nursery, nursery->major or major->major */
probe gc__obj__moved (uintptr_t dest, uintptr_t src, int dest_gen, int src_gen, uintptr_t size, char *ns_name, char *class_name);
@@ -70,13 +50,10 @@ provider mono {
probe gc__finalize__enqueue (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name, int generation, int is_critical);
probe gc__finalize__invoke (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
- probe gc__weak__update (uintptr_t ref_addr, uintptr_t old_addr, uintptr_t new_addr, uintptr_t size, char *ns_name, char *class_name, int track);
+ probe gc__weak__update (uintptr_t ref_addr, uintptr_t new_addr, uintptr_t size, char *ns_name, char *class_name, int track);
probe gc__global__remset__add (uintptr_t ref_addr, uintptr_t obj_addr, uintptr_t size, char *ns_name, char *class_name);
probe gc__obj__cemented (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
-
- probe gc__internal__alloc (uintptr_t addr, uintptr_t size, int type);
- probe gc__internal__dealloc (uintptr_t add, uintptr_t size, int type);
};
#pragma D attributes Evolving/Evolving/Common provider mono provider
diff --git a/data/net_4_5/machine.config b/data/net_4_5/machine.config
index b98a4d3e00..8f7e56a4fa 100644
--- a/data/net_4_5/machine.config
+++ b/data/net_4_5/machine.config
@@ -13,11 +13,14 @@
-
+
+
+
+
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 811955257b..9c51442040 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -14,7 +14,6 @@ ASSEMBLED_DOCS = \
EXTRA_DIST = \
abc-removal.txt \
api-style.css \
- assembly-bundle \
check-exports \
check-coverage \
convert.cs \
@@ -23,7 +22,6 @@ EXTRA_DIST = \
docs.make \
documented \
embedded-api \
- exceptions \
exdoc \
file-share-modes \
gc-issues \
@@ -35,33 +33,25 @@ EXTRA_DIST = \
jit-imt \
jit-thoughts \
jit-trampolines \
- local-regalloc.txt \
- magic.diff \
mini-doc.txt \
mono-api-metadata.html \
mono-file-formats.config\
mono-file-formats.source\
- mono_handle_d \
mono-tools.config \
mono-tools.source \
monoapi.source \
- new-regalloc \
object-layout \
- opcode-decomp.txt \
precise-gc \
produce-lists \
public \
public-api \
README \
- release-notes-1.0.html \
remoting \
ssapre.txt \
- stack-alignment \
stack-overflow.txt \
threading \
toc.xml \
TODO \
- tree-mover.txt \
unmanaged-calls
dist-hook:
diff --git a/docs/Makefile.in b/docs/Makefile.in
index a66ad4479b..c25550175b 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -370,7 +370,6 @@ ASSEMBLED_DOCS = \
EXTRA_DIST = \
abc-removal.txt \
api-style.css \
- assembly-bundle \
check-exports \
check-coverage \
convert.cs \
@@ -379,7 +378,6 @@ EXTRA_DIST = \
docs.make \
documented \
embedded-api \
- exceptions \
exdoc \
file-share-modes \
gc-issues \
@@ -391,33 +389,25 @@ EXTRA_DIST = \
jit-imt \
jit-thoughts \
jit-trampolines \
- local-regalloc.txt \
- magic.diff \
mini-doc.txt \
mono-api-metadata.html \
mono-file-formats.config\
mono-file-formats.source\
- mono_handle_d \
mono-tools.config \
mono-tools.source \
monoapi.source \
- new-regalloc \
object-layout \
- opcode-decomp.txt \
precise-gc \
produce-lists \
public \
public-api \
README \
- release-notes-1.0.html \
remoting \
ssapre.txt \
- stack-alignment \
stack-overflow.txt \
threading \
toc.xml \
TODO \
- tree-mover.txt \
unmanaged-calls
TOOL_MAKE = $(MAKE) -f $(srcdir)/docs.make topdir=$(srcdir)/../mcs srcdir=$(srcdir)
diff --git a/docs/assembly-bundle b/docs/assembly-bundle
deleted file mode 100644
index 3e64e147cb..0000000000
--- a/docs/assembly-bundle
+++ /dev/null
@@ -1,57 +0,0 @@
-
- HOWTO bundle assemblies inside the mono runtime.
- Paolo Molaro (lupus@ximian.com)
-
-* Intent
-
- Bundling assemblies inside the mono runtime may be useful for a number
- of reasons:
-
- * creating a standalone complete runtime that can be more easily
- distributed
-
- * having an application run against a known set of assemblies
- that has been tested
-
- Of course, there are drawbacks, too: if there has been fixes
- to the assemblies, replacing them means recompiling the
- runtime as well and if there are other mono apps, unless they
- use the same mono binary, there will be less opportunities for
- the operating system to optimize memory usage. So use this
- feature only when really needed.
-
-* Creating the Bundle
-
- To bundle a set of assemblies, you need to create a file that
- lists the assembly names and the relative files. Empty lines
- and lines starting with # are ignored:
-
- == cut cut ==
- # Sample bundle template
- mscorlib: /path/to/mscorlib/assembly.dll
- myapp: /path/to/myapp.exe
- == cut cut ==
-
- Next you need to build the mono runtime using a special configure option:
-
- ./configure --with-bundle=/path/to/bundle/template
-
- The path to the template should be an absolute path.
-
- The script metadata/make-bundle.pl will take the specifie
- assemblies and embed them inside the runtime where the loading
- routines can find them before searching for them on disk.
-
-* Open Issues
-
- There are still two issues to solve:
-
- * config files: sometimes they are needed but they are
- not yet bundled inside the library ()
-
- * building with the included libgc makes it not
- possible to build a mono binary statically linked to
- libmono: this needs to be fixed to make bundles
- really useful.
-
-
diff --git a/docs/current-api b/docs/current-api
index 1bbddca612..be79dd8a3d 100644
--- a/docs/current-api
+++ b/docs/current-api
@@ -292,7 +292,6 @@ mono_free_method
mono_free_verify_list
mono_gc_collect
mono_gc_collection_count
-mono_gc_enable_events
mono_gc_get_generation
mono_gc_get_heap_size
mono_gc_get_used_size
@@ -301,9 +300,7 @@ mono_gchandle_get_target
mono_gchandle_new
mono_gchandle_new_weakref
mono_gc_invoke_finalizers
-mono_gc_is_finalizer_thread
mono_gc_max_generation
-mono_gc_out_of_memory
mono_gc_wbarrier_arrayref_copy
mono_gc_wbarrier_generic_nostore
mono_gc_wbarrier_generic_store
@@ -604,7 +601,6 @@ mono_object_get_class
mono_object_get_domain
mono_object_get_size
mono_object_get_virtual_method
-mono_object_is_alive
mono_object_isinst
mono_object_isinst_mbyref
mono_object_new
diff --git a/docs/deploy/mono-api-internal.html b/docs/deploy/mono-api-internal.html
index 22f51d2c2e..0ba9ccc20d 100644
--- a/docs/deploy/mono-api-internal.html
+++ b/docs/deploy/mono-api-internal.html
@@ -476,33 +476,6 @@ mono_loader_lock (void)
-Remarks
-
- In Mono objects are finalized asynchronously on a separate thread.
- This routine tests whether the thread argument represents the
- finalization thread.
-
-
- Returns true if thread is the finalization thread.
-
-
diff --git a/docs/deploy/mono-api-jit.html b/docs/deploy/mono-api-jit.html
index b26123c17b..f8f86ac094 100644
--- a/docs/deploy/mono-api-jit.html
+++ b/docs/deploy/mono-api-jit.html
@@ -111,7 +111,7 @@ mono_print_method_from_ip (void *ip)
This prints the name of the method at address ip in the standard
output. Unlike mono_pmip which returns a string, this routine
- prints the value on the standard output.
+ prints the value on the standard output.
obj if obj is derived from klass, throws an exception otherwise
-
-
-
mono_object_is_alive
-
-
Prototype: mono_object_is_alive
-
-
mono_object_get_size
diff --git a/docs/documented b/docs/documented
index a98a509a37..e02682acdd 100644
--- a/docs/documented
+++ b/docs/documented
@@ -269,12 +269,9 @@ mono_gc_weak_link_get
mono_gc_weak_link_remove
mono_gc_disable
mono_gc_enable
-mono_gc_is_finalizer_thread
-mono_gc_out_of_memory
mono_gc_start_world
mono_gc_stop_world
mono_gc_alloc_fixed
-mono_gc_enable_events
mono_gc_free_fixed
mono_gc_make_descr_from_bitmap
mono_gc_base_init
@@ -526,7 +523,6 @@ mono_object_isinst
mono_object_register_finalizer
mono_object_unbox
mono_object_castclass_mbyref
-mono_object_is_alive
mono_object_get_size
mono_value_box
mono_value_copy
diff --git a/docs/exceptions b/docs/exceptions
deleted file mode 100644
index d5ecaeead4..0000000000
--- a/docs/exceptions
+++ /dev/null
@@ -1,110 +0,0 @@
- Exception Implementation in the Mono Runtime
- Dietmar Maurer (dietmar@ximian.com)
- (C) 2001 Ximian, Inc.
-
-Exception implementation (jit):
-===============================
-
-Stack unwinding:
-================
-
-We record the code address (start_address, size) of all methods. That way it is
-possible to map an instruction pointer (IP) to the method information needed
-for unwinding the stack:
-
-We also save a Last Managed Frame (LMF) structure at each call from managed to
-unmanaged code. That way we can recover from exceptions inside unmanaged code.
-
-void handle_exception ((struct sigcontext *ctx, gpointer obj)
-{
- if (ctx->bp < mono_end_of_stack) {
- /* unhandled exception */
- abort ();
- }
-
- info = mono_jit_info_table_find (mono_jit_info_table, ctx->ip);
-
- if (info) { // we are inside managed code
-
- if (ch = find_catch_handler ())
- execute_catch_handler (ch, ctx, obj);
-
- execute_all_finally_handler ();
-
- // restore register, including IP and Frame pointer
- ctx = restore_caller_saved_registers_from_ctx (ji, ctx);
-
- // continue unwinding
- handle_exception (ctx, obj);
-
- } else {
-
- lmf = get_last_managed_frame ();
-
- // restore register, including IP and Frame pointer
- ctx = restore_caller_saved_registers_from_lmf (ji, lmf);
-
- // continue unwinding
- handle_exception (ctx, obj);
- }
-}
-
-
-Code generation:
-================
-
-leave: is simply translated into a branch to the target. If the leave
-instruction is inside a finally block (but not inside another handler)
-we call the finally handler before we branch to the target.
-
-finally/endfinally, filter/endfilter: is translated into subroutine ending with
-a "return" statement. The subroutine does not save EBP, because we need access
-to the local variables of the enclosing method. Its is possible that
-instructions inside those handlers modify the stack pointer, thus we save the
-stack pointer at the start of the handler, and restore it at the end. We have
-to use a "call" instruction to execute such finally handlers. This makes it
-also possible to execute them inside the stack unwinding code. The exception
-object for filters is passed in a local variable (cfg->exvar).
-
-throw: we first save all regs into a sigcontext struct and then call the stack
-unwinding code.
-
-catch handler: catch hanlders are always called from the stack unwinding
-code. The exception object is passed in a local variable (cfg->exvar).
-
-gcc support for Exceptions
-==========================
-
-gcc supports exceptions in files compiled with the -fexception option. gcc
-generates DWARF exceptions tables in that case, so it is possible to unwind the
-stack. The method to read those exception tables is contained in libgcc.a, and
-in newer versions of glibc (glibc 2.2.5 for example), and it is called
-__frame_state_for(). Another usable glibc function is backtrace_symbols() which
-returns the function name corresponding to a code address.
-
-We dynamically check if those features are available using g_module_symbol(),
-and we use them only when available. If not available we use the LMF as
-fallback.
-
-Using gcc exception information prevents us from saving the LMF at each native
-call, so this is a way to speed up native calls. This is especially valuable
-for internal calls, because we can make sure that all internal calls are
-compiled with -fexceptions (we compile the whole mono runtime with that
-option).
-
-All native function are able to call function without exception tables, and so
-we are unable to restore all caller saved registers if an exception is raised
-in such function. Well, its possible if the previous function already saves all
-registers. So we only omit the the LMF if a function has an exception table
-able to restore all caller saved registers.
-
-One problem is that gcc almost never saves all caller saved registers, because
-it is just unnecessary in normal situations. But there is a trick forcing gcc
-to save all register, we just need to call __builtin_unwind_init() at the
-beginning of a function. That way gcc generates code to save all caller saved
-register on the stack.
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/local-regalloc.txt b/docs/local-regalloc.txt
deleted file mode 100644
index a6e523557f..0000000000
--- a/docs/local-regalloc.txt
+++ /dev/null
@@ -1,208 +0,0 @@
-
-* Proposal for the local register allocator
-
- The local register allocator deals with allocating registers
- for temporaries inside a single basic block, while the global
- register allocator is concerned with method-wide allocation of
- variables.
- The global register allocator uses callee-saved register for it's
- purpouse so that there is no need to save and restore these registers
- at call sites.
-
- There are a number of issues the local allocator needs to deal with:
- *) some instructions expect operands in specific registers (for example
- the shl instruction on x86, or the call instruction with thiscall
- convention, or the equivalent call instructions on other architectures,
- such as the need to put output registers in %oX on sparc)
- *) some instructions deliver results only in specific registers (for example
- the div instruction on x86, or the call instructionson on almost all
- the architectures).
- *) it needs to know what registers may be clobbered by an instruction
- (such as in a method call)
- *) it should avoid excessive reloads or stores to improve performance
-
- While which specific instructions have limitations is architecture-dependent,
- the problem shold be solved in an arch-independent way to reduce code duplication.
- The register allocator will be 'driven' by the arch-dependent code, but it's
- implementation should be arch-independent.
-
- To improve the current local register allocator, we need to
- keep more state in it than the current setup that only keeps busy/free info.
-
- Possible state information is:
-
- free: the resgister is free to use and it doesn't contain useful info
- freeable: the register contains data loaded from a local (there is
- also info about _which_ local it contains) as a result from previous
- instructions (like, there was a store from the register to the local)
- moveable: it contains live data that is needed in a following instruction, but
- the contents may be moved to a different register
- busy: the register contains live data and it is placed there because
- the following instructions need it exactly in that register
- allocated: the register is used by the global allocator
-
- The local register allocator will have the following interfaces:
-
- int get_register ();
- Searches for a register in the free state. If it doesn't find it,
- searches for a freeable register. Sets the status to moveable.
- Looking for a 'free' register before a freeable one should allow for
- removing a few redundant loads (though I'm still unsure if such
- things should be delegated entirely to the peephole pass).
-
- int get_register_force (int reg);
- Returns 'reg' if it is free or freeable. If it is moveable, it moves it
- to another free or freeable register.
- Sets the status of 'reg' to busy.
-
- void set_register_freeable (int reg);
- Sets the status of 'reg' to freeable.
-
- void set_register_free (int reg);
- Sets the status of 'reg' to free.
-
- void will_clobber (int reg);
- Spills the register to the stack. Sets the status to freeable.
- After the clobbering has occurred, set the status to free.
-
- void register_unspill (int reg);
- Un-spills register reg and sets the status to moveable.
-
- FIXME: how is the 'local' information represented? Maybe a MonoInst* pointer.
-
- Note: the register allocator will insert instructions in the basic block
- during it's operation.
-
-* Examples
-
- Given the tree (on x86 the right argument to shl needs to be in ecx):
-
- store (local1, shl (local1, call (some_arg)))
-
- At the start of the basic block, the registers are set to the free state.
- The sequence of instructions may be:
- instruction register status -> [%eax %ecx %edx]
- start free free free
- eax = load local1 mov free free
- /* call clobbers eax, ecx, edx */
- spill eax free free free
- call mov free free
- /* now eax contains the right operand of the shl */
- mov %eax -> %ecx free busy free
- un-spill mov busy free
- shl %cl, %eax mov free free
-
- The resulting x86 code is:
- mov $fffc(%ebp), %eax
- mov %eax, $fff0(%ebp)
- push some_arg
- call func
- mov %eax, %ecx
- mov $fff0(%ebp), %eax
- shl %cl, %eax
-
- Note that since shl could operate directly on memory, we could have:
-
- push some_arg
- call func
- mov %eax, %ecx
- shl %cl, $fffc(%ebp)
-
- The above example with loading the operand in a register is just to complicate
- the example and show that the algorithm should be able to handle it.
-
- Let's take another example with the this-call call convention (the first argument
- is passed in %ecx).
- In this case, will_clobber() will be called only on %eax and %edx, while %ecx
- will be allocated with get_register_force ().
- Note: when a register is allocated with get_register_force(), it should be set
- to a different state as soon as possible.
-
- store (local1, shl (local1, this-call (local1)))
-
- instruction register status -> [%eax %ecx %edx]
- start free free free
- eax = load local1 mov free free
- /* force load in %ecx */
- ecx = load local1 mov busy free
- spill eax free busy free
- call mov free free
- /* now eax contains the right operand of the shl */
- mov %eax -> %ecx free busy free
- un-spill mov busy free
- shl %cl, %eax mov free free
-
- What happens when a register that we need to allocate with get_register_force ()
- contains an operand for the next instruction?
-
- instruction register status -> [%eax %ecx %edx]
- eax = load local0 mov free free
- ecx = load local1 mov mov free
- get_register_force (ecx) here.
- We have two options:
- mov %ecx, %edx
- or:
- spill %ecx
- The first option is way better (and allows the peephole pass to
- just load the value in %edx directly, instead of loading first to %ecx).
- This doesn't work, though, if the instruction clobbers the %edx register
- (like in a this-call). So, we first need to clobber the registers
- (so the state of %ecx changes to freebale and there is no issue
- with get_register_force ()).
- What if an instruction both clobbers a register and requires it as
- an operand? Lets' take the x86 idiv instruction as an example: it
- requires the dividend in edx:eax and returns the result in eax,
- with the modulus in edx.
-
- store (local1, div (local1, local2))
-
- instruction register status -> [%eax %ecx %edx]
- eax = load local0 mov free free
- will_clobber eax, edx free mov free
- force mov %ecx, %eax busy free free
- set %edx busy free busy
- idiv mov free free
-
- Note: edx is set to free after idiv, because the modulus is not needed
- (if it was a rem, eax would have been freed).
- If we load the divisor before will_clobber(), we'll have to spill
- eax and reload it later. If we load it just after the idiv, there is no issue.
- In any case, the algorithm should give the correct results and allow the operation.
-
- Working recursively on the isntructions there shouldn't be huge issues
- with this algorithm (though, of course, it's not optimal and it may
- introduce excessive spills or register moves). The advantage over the current
- local reg allocator is that:
- 1) the number of spills/moves would be smaller anyway
- 2) a separate peephole pass could be able to eliminate reg moves
- 3) we'll be able to remove the 'forced' spills we currently do with
- the return value of method calls
-
-* Issues
-
- How to best integrate such a reg allocator with the burg stuff.
-
- Think about a call os sparc with two arguments: they got into %o0 and %o1
- and each of them sets the register as busy. But what if the values to put there
- are themselves the result of a call? %o0 is no problem, but for all the
- next argument n the above algorithm would spill all the 0...n-1 registers...
-
-* Papers
-
- More complex solutions to the local register allocator problem:
- http://dimacs.rutgers.edu/TechnicalReports/abstracts/1997/97-33.html
-
- Combining register allocation and instruction scheduling:
- http://citeseer.nj.nec.com/motwani95combining.html
-
- More on LRA euristics:
- http://citeseer.nj.nec.com/liberatore97hardness.html
-
- Linear-time optimal code scheduling for delayedload architectures
- http://www.cs.wisc.edu/~fischer/cs701.f01/inst.sched.ps.gz
-
- Precise Register Allocation for Irregular Architectures
- http://citeseer.nj.nec.com/kong98precise.html
-
- Allocate registers first to subtrees that need more of them.
- http://www.upb.de/cs/ag-kastens/compii/folien/comment401-409.2.pdf
diff --git a/docs/magic.diff b/docs/magic.diff
deleted file mode 100644
index c8dee8e162..0000000000
--- a/docs/magic.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-This is a patch that can be applied to the magic file used by file(1) to
-recognize mono assemblies.
-Apply it to the magic file (usually in /usr/share/file/magic or
-/usr/share/misc/magic) and recompile it with file -C.
-
---- magic.old 2006-03-24 21:12:25.000000000 +0100
-+++ magic 2006-03-24 21:12:17.000000000 +0100
-@@ -7205,6 +7205,7 @@
- >>>>(0x3c.l+4) leshort 0x290 PA-RISC
- >>>>(0x3c.l+22) leshort&0x0100 >0 32-bit
- >>>>(0x3c.l+22) leshort&0x1000 >0 system file
-+>>>>(0x3c.l+232) lelong >0 Mono/.Net assembly
-
- >>>>(0x3c.l+0xf8) string UPX0 \b, UPX compressed
- >>>>(0x3c.l+0xf8) search/0x140 PEC2 \b, PECompact2 compressed
diff --git a/docs/mono_handle_d b/docs/mono_handle_d
deleted file mode 100644
index a8f97b141c..0000000000
--- a/docs/mono_handle_d
+++ /dev/null
@@ -1,98 +0,0 @@
-=pod
-
-=head1 Internal design document for the mono_handle_d
-
-This document is designed to hold the design of the mono_handle_d and
-not as an api reference.
-
-=head2 Primary goal and purpose
-
-The mono_handle_d is a process which takes care of the (de)allocation
-of scratch shared memory and handles (of files, threads, mutexes,
-sockets etc. see L) and refcounts of the
-filehandles. It is designed to be run by a user and to be fast, thus
-minimal error checking on input is done and will most likely crash if
-given a faulty package. No effort has been, or should be, made to have
-the daemon talking to machine of different endianness/size of int.
-
-=head2 How to start the daemon
-
-To start the daemon you either run the mono_handle_d executable or try
-to attach to the shared memory segment via L<_wapi_shm_attach> which
-will start a daemon if one does not exist.
-
-=head1 Internal details
-
-The daemon works by opening a socket and listening to clients. These
-clients send packages over the socket complying to L.
-
-=head2 Possible requests
-
-=over
-
-=item WapiHandleRequest_New
-
-Find a handle in the shared memory segment that is free and allocate
-it to the specified type. To destroy use
-L. A L with
-.type=WapiHandleResponseType_New will be sent back with .u.new.handle
-set to the handle that was allocated. .u.new.type is the type that was
-requested.
-
-=item WapiHandleRequestType_Open
-
-Increase the ref count of an already created handle. A
-L with .type=WapiHandleResponseType_Open will be sent
-back with .u.new.handle set to the handle, .u.new.type is set to the
-type of handle this is.
-
-=item WapiHandleRequestType_Close
-
-Decrease the ref count of an already created handle. A
-L with .type=WapiHandleResponseType_Close will be
-sent back with .u.close.destroy set to TRUE if ref count for this
-client reached 0.
-
-=item WapiHandleRequestType_Scratch
-
-Allocate a shared memory area of size .u.scratch.length in bytes. A
-L with .type=WapiHandleResponseType_Scratch will be
-sent back with .u.scratch.idx set to the index into the shared
-memory's scratch area where to memory begins. (works just like
-malloc(3))
-
-=item WapiHandleRequestType_Scratch
-
-Deallocate a shared memory area, this must have been allocated before
-deallocating. A L with
-.type=WapiHandleResponseType_ScratchFree will be sent back (works just
-like free(3))
-
-=back
-
-=head1 Why a daemon
-
-From an email:
-
-Dennis: I just have one question about the daemon... Why does it
-exist? Isn't it better performancewise to just protect the shared area
-with a mutex when allocation a new handle/shared mem segment or
-changing refcnt? It will however be a less resilient to clients that
-crash (the deamon cleans up ref'd handles if socket closes)
-
-Dick: It's precisely because with a mutex the shared memory segment
-can be left in a locked state. Also, it's not so easy to clean up
-shared memory without it (you can't just mark it deleted when creating
-it, because you can't attach any more readers to the same segment
-after that). I did some minimal performance testing, and I don't
-think the daemon is particularly slow.
-
-
-=head1 Authors
-
-Documentaion: Dennis Haney
-
-Implementation: Dick Porter
-
-=cut
diff --git a/docs/new-regalloc b/docs/new-regalloc
deleted file mode 100644
index b687c2b50c..0000000000
--- a/docs/new-regalloc
+++ /dev/null
@@ -1,68 +0,0 @@
-We need to switch to a new register allocator.
-The current one is split in a global and a local register allocator.
-The global one can assign only callee-saves registers and happens
-on the tree-based internal representation: it assigns local variables
-to hardware registers.
-The local one happens on the linear representation on a per basic
-block basis and assigns hard registers to virtual registers (which
-hold temporary values during expression executions) and it deals also
-with the platform-specific issues (fixed registers, call conventions).
-
-Moving to a different register will help solve some of the performance
-issues introduced by the above split, make the register more easily
-portable and solve some of the issues generated by dealing with trees.
-
-The general design ideas are below.
-
-The new allocator should have a global view of all the method, so it can be
-able to assign variables also to some of the volatile registers if possible,
-even across basic blocks (this would improve performance).
-
-The allocator would be driven by per-arch declarative data, so porting
-should be easier: an architecture needs to specify register classes,
-call convention and instructions requirements (similar to the gcc code).
-
-The allocator should operate on the linear representation, this way it's
-easier and faster to track usages more correctly. We need to assign virtual
-registers on a per-method basis instead of per basic block. We can assign
-virtual registers to variables, too. Note that since we fix the stack offset
-of local vars only after this step (which happens after the burg rules are run),
-some of the burg rules that try to optimize the code won't apply anymore:
-the peephole code may need to be enhanced to do the optimizations instead.
-
-We need to handle floating point registers in the global allocator, too.
-
-The new allocator also needs to keep track precisely of which registers
-contain references or managed pointers to allow us to move to a precise GC.
-
-It may be worth to use a single increasing set of integers for the virtual
-registers, with the class of the register stored separately (unless the
-current local allocator which keeps interger and fp registers separate).
-
-Since this is a large task, we need to do it in steps as much as possible.
-The first is to run the register allocator _after_ the burg rules: this
-requires a rewrite of the liveness code, too, to use linear indexes instead
-of basic-block/tree number combinations. This can be done by:
-*) allocating virtual regs to all the locals that can be register allocated
-*) running the burg rules (some may require adjustments): the local virtual
-registers are assigned starting from global-virt-regs+1, instead of the current
-hardware-regs+1, so we can tell apart global and local virt regs.
-*) running the liveness/whatever code is needed to allocate the global registers
-*) allocate the rest of the local variables to stack slots
-*) continue with the current local allocator
-
-This work could take 2-3 weeks.
-
-The next step is to define the kind of declarative data an architecture needs
-and assigning virtual regs to all the registers and making the allocator
-assign from the volatile registers, too.
-Note that some of the code that is currently emitted in the arch-specific
-code, will need to be emitted as instructions that the reg allocator
-can inspect: think of a method that returns the first argument which is
-received in a register: the current code copies it to either a local slot or
-to a global reg in the prolog an copies it back to the return register
-int he basic block, but since neither the regallocator nor the peephole code
-knows about the prolog code, the first store cannot be optimized away.
-The gcc code has some example of how to specify register classes in a
-declarative way.
-
diff --git a/docs/opcode-decomp.txt b/docs/opcode-decomp.txt
deleted file mode 100644
index 48968d17ab..0000000000
--- a/docs/opcode-decomp.txt
+++ /dev/null
@@ -1,113 +0,0 @@
-
-* How to handle complex IL opcodes in an arch-independent way
-
- Many IL opcodes are very simple: add, ldind etc.
- Such opcodes can be implemented with a single cpu instruction
- in most architectures (on some, a group of IL instructions
- can be converted to a single cpu op).
- There are many IL opcodes, though, that are more complex, but
- can be expressed as a series of trees or a single tree of
- simple operations. Such simple operations are architecture-independent.
- It makes sense to decompose such complex IL instructions in their
- simpler equivalent so that we gain in several ways:
- *) porting effort is easier, because only the simple instructions
- need to be implemented in arch-specific code
- *) we could apply BURG rules to the trees and do pattern matching
- on them to optimize the expressions according to the host cpu
-
- The issue is: where do we do such conversion from coarse opcodes to
- simple expressions?
-
-* Doing the conversion in method_to_ir ()
-
- Some of these conversions can certainly be done in method_to_ir (),
- but it's not always easy to decide which are better done there and
- which in a different pass.
- For example, let's take ldlen: in the mono implementation, ldlen
- can be simply implemented with a load from a fixed position in the
- array object:
-
- len = [reg + maxlen_offset]
-
- However, ldlen carries also semantics information: the result is the
- length of the array, and since in the CLR arrays are of fixed size,
- this information can be useful to later do bounds check removal.
- If we convert this opcode in method_to_ir () we lost some useful
- information for further optimizations.
-
- In some other ways, decomposing an opcode in method_to_ir() may
- allow for better optimizations later on (need to come up with an
- example here ...).
-
-* Doing the conversion in inssel.brg
-
- Some conversion may be done inside the burg rules: this has the
- disadvantage that the instruction selector is not run again on
- the resulting expression tree and we could miss some optimization
- (this is what effectively happens with the coarse opcodes in the old
- jit). This may also interfere with an efficient local register allocator.
- It may be possible to add an extension in monoburg that allows a rule
- such as:
-
- recheck: LDLEN (reg) {
- create an expression tree representing LDLEN
- and return it
- }
-
- When the monoburg label process gets back a recheck, it will run
- the labeling again on the resulting expression tree.
- If this is possible at all (and in an efficient way) is a
- question for dietmar:-)
- It should be noted, though, that this may not always work, since
- some complex IL opcodes may require a series of expression trees
- and handling such cases in monoburg could become quite hairy.
- For example, think of opcode that need to do multiple actions on the
- same object: this basically means a DUP...
- On the other end, if a complex opcode needs a DUP, monoburg doesn't
- actually need to create trees if it emits the instructions in
- the correct sequence and maintains the right values in the registers
- (usually the values that need a DUP are not changed...). How
- this integrates with the current register allocator is not clear, since
- that assigns registers based on the rule, but the instructions emitted
- by the rules may be different (this already happens with the current JIT
- where a MULT is replaced with lea etc...).
-
-* Doing it in a separate pass.
-
- Doing the conversion in a separate pass over the instructions
- is another alternative. This can be done right after method_to_ir ()
- or after the SSA pass (since the IR after the SSA pass should look
- almost like the IR we get back from method_to_ir ()).
-
- This has the following advantages:
- *) monoburg will handle only the simple opcodes (makes porting easier)
- *) the instruction selection will be run on all the additional trees
- *) it's easier to support coarse opcodes that produce multiple expression
- trees (and apply the monoburg selector on all of them)
- *) the SSA optimizer will see the original opcodes and will be able to use
- the semantic info associated with them
-
- The disadvantage is that this is a separate pass on the code and
- it takes time (how much has not been measured yet, though).
-
- With this approach, we may also be able to have C implementations
- of some of the opcodes: this pass would insert a function call to
- the C implementation (for example in the cases when first porting
- to a new arch and implemenating some stuff may be too hard in asm).
-
-* Extended basic blocks
-
- IL code needs a lot of checks, bounds checks, overflow checks,
- type checks and so on. This potentially increases by a lot
- the number of basic blocks in a control flow graph. However,
- all such blocks end up with a throw opcode that gives control to the
- exception handling mechanism.
- After method_to_ir () a MonoBasicBlock can be considered a sort
- of extended basic block where the additional exits don't point
- to basic blocks in the same procedure (at least when the method
- doesn't have exception tables).
- We need to make sure the passes following method_to_ir () can cope
- with such kinds of extended basic blocks (especially the passes
- that we need to apply to all the methods: as a start, we could
- skip SSA optimizations for methods with exception clauses...)
-
diff --git a/docs/public-api b/docs/public-api
index 231ecf171a..c9d90eb25b 100644
--- a/docs/public-api
+++ b/docs/public-api
@@ -292,7 +292,6 @@ mono_free_method
mono_free_verify_list
mono_gc_collect
mono_gc_collection_count
-mono_gc_enable_events
mono_gc_get_generation
mono_gc_get_heap_size
mono_gc_get_used_size
@@ -301,9 +300,7 @@ mono_gchandle_get_target
mono_gchandle_new
mono_gchandle_new_weakref
mono_gc_invoke_finalizers
-mono_gc_is_finalizer_thread
mono_gc_max_generation
-mono_gc_out_of_memory
mono_gc_wbarrier_arrayref_copy
mono_gc_wbarrier_generic_nostore
mono_gc_wbarrier_generic_store
@@ -604,7 +601,6 @@ mono_object_get_class
mono_object_get_domain
mono_object_get_size
mono_object_get_virtual_method
-mono_object_is_alive
mono_object_isinst
mono_object_isinst_mbyref
mono_object_new
diff --git a/docs/release-notes-1.0.html b/docs/release-notes-1.0.html
deleted file mode 100644
index 9c305433c5..0000000000
--- a/docs/release-notes-1.0.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
Mono 1.0 Release Notes
-
-
What does Mono Include
-
-
Missing functionality
-
-
COM support.
-
-
EnterpriseServices are non-existant.
-
-
Windows.Forms is only available as a preview, it is not
- completed nor stable.
-
-
Assembly: System.Drawing
-
-
System.Drawing.Printing is not supported.
\ No newline at end of file
diff --git a/docs/sources/mono-api-internal.html b/docs/sources/mono-api-internal.html
index 9bd7936691..23c1862492 100644
--- a/docs/sources/mono-api-internal.html
+++ b/docs/sources/mono-api-internal.html
@@ -93,12 +93,9 @@
diff --git a/docs/stack-alignment b/docs/stack-alignment
deleted file mode 100644
index da995fb288..0000000000
--- a/docs/stack-alignment
+++ /dev/null
@@ -1,33 +0,0 @@
-Size and alignment requirements of stack values
-===============================================
-
-P ... System.IntPtr
-I1 ... System.Int8
-I2 ... System.Int16
-I4 ... System.Int32
-I8 ... System.Int64
-F ... System.Single
-D ... System.Double
-LD ... native long double
-
------------------------------------------------------------
-ARCH | P | I1 | I2 | I4 | I8 | F | D | LD |
------------------------------------------------------------
-X86 | 4/4 | 4/4 | 4/4 | 4/4 | 8/4 | 4/4 | 8/4 |12/4 |
------------------------------------------------------------
-X86/W32 | 4/4 | 4/4 | 4/4 | 4/4 | 8/4 | 4/4 | 8/4 |12/4 |
------------------------------------------------------------
-ARM | 4/4 | 4/4 | 4/4 | 4/4 | 8/4 | 4/4 | 8/4 | 8/4 |
------------------------------------------------------------
-M68K | 4/4 | 4/4 | 4/4 | 4/4 | 8/4 | 4/4 | 8/4 |12/4 |
------------------------------------------------------------
-ALPHA | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 |
------------------------------------------------------------
-SPARC | 4/4 | 4/4 | 4/4 | 4/4 | 8/8 | 4/4 | 8/8 |16/8 |
------------------------------------------------------------
-SPARC64 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 |16/16|
------------------------------------------------------------
-MIPS | 4/4 | 4/4 | 4/4 | 4/4 | ?/? | 4/4 | 8/8 | 8/8 |
------------------------------------------------------------
- | | | | | | | | |
------------------------------------------------------------
diff --git a/docs/tree-mover.txt b/docs/tree-mover.txt
deleted file mode 100644
index 3ee836a5b2..0000000000
--- a/docs/tree-mover.txt
+++ /dev/null
@@ -1,261 +0,0 @@
-
-Purpose
-
-Especially when inlining is active, it can happen that temporary
-variables add pressure to the register allocator, producing bad
-code.
-
-The idea is that some of these temporaries can be totally eliminated
-my moving the MonoInst tree that defines them directly to the use
-point in the code (so the name "tree mover").
-
-Please note that this is *not* an optimization: it is mostly a
-workaround to issues we have in the regalloc.
-Actually, with the new linear IR this will not be possible at all
-(there will be no more trees in the code!).
-Anyway, this workaround turns out to be useful in the current state
-of things...
-
------------------------------------------------------------------------
-
-Base logic
-
-If a local is defined by a value which is a proper expression (a tree
-of MonoInst, not just another local or a constant), and this definition
-is used only once, the tree can be moved directly to the use location,
-and the definition eliminated.
-Of course, none of the variables used in the tree must be defined in
-the code path between the definition and the use, and the tree must be
-free of side effects.
-We do not handle the cases when the tree is just a local or a constant
-because they are handled by copyprop and consprop, respectively.
-
-To make things simpler, we restrict the tree move to the case when:
-- the definition and the use are in the same BB, and
-- the use is followed by another definition in the same BB (it is not
- possible that the 1st value is used again), or alternatively there
- is no BB in the whole CFG that contains a use of this local before a
- definition (so, again, there is no code path that can lead to a
- subsequent use).
-
-To handle this, we maintain an ACT array (Available Copy Tree, similar
-to the ACP), where we store the "state" of every local.
-Ideally, every local can be in the following state:
-[E] Undefined (by a tree, it could be in the ACP but we don't care).
-[D] Defined (by a tree), and waiting for a use.
-[U] Used, with a tree definition available in the same BB, but still
- without a definition following the use (always in the same BB).
-Of course state [E] (empty) is the initial one.
-
-Besides, there are two sort of "meta states", or flags:
-[W] Still waiting for a use or definition in this BB (we have seen no
- occurrence of the local yet).
-[X] Used without being previously defined in the same BB (note that if
- there is a definition that precedes the use in the same BB, even if
- the definition is not a tree or is not available because of side
- effects or because the tree value has changed the local is not in
- state [X]).
-Also note that state [X] is a sort of "global" condition, which if set
-in one BB will stay valid for the whole CFG, even if the local will
-otherwise change state. The idea of flagging a local as [X] is that if
-there is a definition/use pair that reaches the end of a BB, it could
-be that there is a CFG path that then leads to the BB flagging it as
-[X] (which contains a use), so the tree cannot be moved.
-So state [X] will always be set, and never examined in all the state
-transitions we will describe.
-In practice, we use flag [W] to set state [X]: if, when traversing a
-BB, we find a use for a local in state [W], then that local is flagged
-[X].
-
-
-For each BB, we initialize all states to [E] and [W], and then we
-traverse the code one inst at a time, and update the variable states
-in the ACT in the following ways:
-
-[Definition]
- - Flag [W] is cleared.
- - All "affected trees" are killed (go from state [D] to [E]).
- The "affected trees" are the trees which contain (use) the defined
- local, and the rationale is that the tree value changed, so the
- tree is no longer available.
- - If the local was in state [U], *that* tree move is marked "safe"
- (because *this* definition makes us sure that the previous tree
- cannot be used again in any way).
- The idea is that "safe" moves can happen even if the local is
- flagged [X], because the second definition "covers" the use.
- The tree move is then saved in the "todo" list (and the affecting
- nodes are cleared).
- - If the local was defined by a tree, it goes to state [D], the tree
- is recorded, and all the locals used in it are marked as "affecting
- this tree" (of course these markers are lists, because each local
- could affect more than one tree).
-
-[IndirectDefinition]
- - All potentially affected trees (in state [D]) are killed.
-
-[Use]
- - If the local is still [W], it is flagged [X] (the [W] goes away).
- - If the local is in state [D], it goes to state [U].
- The tree move must not yet be recorded in the "todo" list, it still
- stays in the ACT slot belonging to this local.
- Anyway, the "affecting" nodes are updated, because now a definition
- of a local used in this tree will affect only "indirect" (or also
- "propagated") moves, but not *this* move (see below).
- - If the local is in state [U], then the tree cannot be moved (it is
- used two times): the move is canceled, and the state goes [E].
- - If the local is in state [E], the use is ignored.
-
-[IndirectUse]
- - All potentially affected trees (in state [D] or [U]) are killed.
-
-[SideEffect]
- - Tree is marked as "unmovable".
-
-Then, at the end of the BB, for each ACT slot:
- - If state is [U], the tree move is recorded in the "todo" list, but
- flagged "unsafe".
- - Anyway, state goes to [E], the [W] flag is set, and all "affecting"
- lists are cleared (we get ready to traverse the next BB).
-Finally, when all BBs has been scanned, we traverse the "todo" list,
-moving all "safe" entries, and moving "unsafe" ones only if their ACT
-slot is not flagged [X].
-
-So far, so good.
-But there are two issues that make things harder :-(
-
-The first is the concept of "indirect tree move".
-It can happen that a tree is scheduled for moving, and its destination
-is a use that is located in a second tree, which could also be moved.
-The main issue is that a definition of a variable of the 1st tree on
-the path between the definition and the use of the 2nd one must prevent
-the move.
-But which move? The 1st or the 2nd?
-Well, any of the two!
-The point is, the 2nd move must be prevented *only* if the 1st one
-happens: if it is aborted (for an [X] flag or any other reason), the
-2nd move is OK, and vice versa...
-We must handle this in the following way:
-- The ACT must still remember if a slot is scheduled for moving in
- this BB, and if it is, all the locals used in the tree.
- We say that the slot is in state [M].
- Note that [M] is (like [X] and [W]) a sort of "meta state": a local
- is flagged [M] when it goes to state [U], and the flag is cleared
- when the tree move is cancelled
-- A tree that uses a local whose slot is in state [M] is also using all
- the locals used by the tree in state [M], but the use is "indirect".
- These use nodes are also included in the "affecting" lists.
-- The definition of a variable used in an "indirect" way has the
- effect of "linking" the two involved tree moves, saying that only one
- of the two can happen in practice, but not both.
-- When the 2nd tree is scheduled for moving, the 1st one is *still* in
- state [M], because a third move could "carry it forward", and all the
- *three* moves should be mutually exclusive (to be safe!).
-
-The second tricky complication is the "tree forwarding" that can happen
-when copyprop is involved.
-It is conceptually similar to the "indirect tree move".
-Only, the 2nd tree is not really a tree, it is just the local defined
-in the 1st tree move.
-It can happen that copyprop will propagate the definition.
-We cannot make treeprop do the same job of copyprop, because copyprop
-has less constraints, and is therefore more powerful in its scope.
-The main issue is that treeprop cannot propagate a tree to *two* uses,
-while copyprop is perfectly capable of propagating one definition to
-two (or more) different places.
-So we must let copyprop do its job otherwise we'll miss optimizations,
-but we must also make it play safe with treeprop.
-Let's clarify with an example:
- a = v1 + v2; //a is defined by a tree, state [D], uses v2 and v2
- b = a; //a is used, state [U] with move scheduled, and
- //b is defined by a, ACP[b] is a, and b is in state [DC]
- c = b + v3; // b is used, goes to state [U]
-The real trouble is that copyprop happens *immediately*, while treeprop
-is deferred to the end of the CFG traversal.
-So, in the 3rd statement, the "b" is immediately turned into an "a" by
-copyprop, regardless of what treeprop will do.
-Anyway, if we are careful, this is not so bad.
-First of all, we must "accept" the fact that in the 3rd statement the
-"b" is in fact an "a", as treeprop must happen *after* copyprop.
-The real problem is that "a" is used twice: in the 2nd and 3rd lines.
-In our usual setup, the 2nd line would set it to [U], and the 3rd line
-would kill the move (and set "a" to [E]).
-I have tried to play tricks, and reason as of copyprop didn't happen,
-but everything becomes really messy.
-Instead, we should note that the 2nd line is very likely to be dead.
-At least in this BB, copyprop will turn all "b"s into "a"s as long as
-it can, and when it cannot, it will be because either "a" or "b" have
-been redefined, which would be after the tree move anyway.
-So, the reasoning gets different: let's pretend that "b" will be dead.
-This will make the "a" use in the 2nd statement useless, so there we
-can "reset" "a" to [D], but also take note that if "b" will end up
-not being dead, the tree move associated to this [D] must be aborted.
-We can detect this in the following way:
-- Either "b" is used before being defined in this BB, or
-- It will be flagged "unsafe".
-Both things are very easy to check.
-The only quirk is that the "affecting" lists must not be cleared when
-a slot goes to state [U], because a "propagation" could put it back
-to state [D] (where those lists are needed, because it can be killed
-by a definition to a used slot).
-
------------------------------------------------------------------------
-
-Implementation notes
-
-All the implementation runs inside the existing mono_local_cprop
-function, and a separate memory pool is used to hold the temporary
-data.
-
-A struct, MonoTreeMover, contains the pointers to the pool, the ACT,
-the list of scheduled moves and auxiliary things.
-This struct is allocated if the tree move pass is requested, and is
-then passed along to all the involved functions, which are therefore
-aware of the tree mover state.
-
-The ACT is an array of slots, obviously one per local.
-Each slot is of type MonoTreeMoverActSlot, and contains the used and
-affected locals, a pointer to the pending tree move and the "waiting"
-and "unsafe" flags.
-
-The "affecting" lists a built from "dependency nodes", of type
-MonoTreeMoverDependencyNode.
-Each of the nodes contains the used and affected local, and is in
-two lists: the locals used by a slot, and the locals affected by a
-slot (obviously a different one).
-So, each node means: "variable x is used in tree t, so a definition
-of x affects tree t".
-The "affecting" lists are doubly linked, to allow for O(1) deletion.
-The "used" lists are simply linked, but when they are mantained there
-is always a pointer to the last element to allow for O(1) list moving.
-When a used list is dismissed (which happens often, any time a node is
-killed), its nodes are unlinked from their respective affecting lists
-and are then put in a "free" list in the MonoTreeMover to be reused.
-
-Each tree move is represented by a struct (MonoTreeMoverTreeMove),
-which contains:
-- the definition and use points,
-- the "affected" moves (recall the concept of "indirect tree move"),
-- the "must be dead" slots (recall "tree forwarding"). and
-- a few utility flags.
-The tree moves stays in the relevant ACT slot until it is ready to be
-scheduled for moving, at which point it is put in a list in the
-MonoTreeMover.
-The tree moves structs are reused when they are killed, so there is
-also a "free" list for them in the MonoTreeMover.
-
-The tree mover code has been added to all the relevant functions that
-participate in consprop and copyprop, particularly:
-- mono_cprop_copy_values takes care of variable uses (transitions from
- states [D] to [U] and [U] to [E] because of killing),
-- mono_cprop_invalidate_values takes care of side effects (indirect
- accesses, calls...),
-- mono_local_cprop_bb sets up and cleans the traversals for each BB,
- and for each MonoInst it takes care of variable definitions.
-To each of them has been added a MonoTreeMover parameter, which is not
-NULL if the tree mover is running.
-After mono_local_cprop_bb has run for all BBs, the MonoTreeMover has
-the list of all the pending moves, which must be walked to actually
-perform the moves (when possible, because "unsafe" flags, "affected"
-moves and "must be dead" slots can still have their effects, which
-must be handled now because they are fully known only at the end of
-the CFG traversal).
diff --git a/eglib/src/gmisc-unix.c b/eglib/src/gmisc-unix.c
index 860b930469..273024871c 100644
--- a/eglib/src/gmisc-unix.c
+++ b/eglib/src/gmisc-unix.c
@@ -93,24 +93,29 @@ get_pw_data (void)
pthread_mutex_unlock (&pw_lock);
return;
}
+
+ home_dir = g_getenv ("HOME");
+ user_name = g_getenv ("USER");
+
#ifdef HAVE_GETPWUID_R
- if (getpwuid_r (getuid (), &pw, buf, 4096, &result) == 0) {
- home_dir = g_strdup (pw.pw_dir);
- user_name = g_strdup (pw.pw_name);
+ if (home_dir == NULL || user_name == NULL) {
+ if (getpwuid_r (getuid (), &pw, buf, 4096, &result) == 0) {
+ if (home_dir == NULL)
+ home_dir = g_strdup (pw.pw_dir);
+ if (user_name == NULL)
+ user_name = g_strdup (pw.pw_name);
+ }
}
#endif
- if (home_dir == NULL)
- home_dir = g_getenv ("HOME");
- if (user_name == NULL) {
- user_name = g_getenv ("USER");
- if (user_name == NULL)
- user_name = "somebody";
- }
+ if (user_name == NULL)
+ user_name = "somebody";
+ if (home_dir == NULL)
+ home_dir = "/";
+
pthread_mutex_unlock (&pw_lock);
}
-/* Give preference to /etc/passwd than HOME */
const gchar *
g_get_home_dir (void)
{
diff --git a/external/Lucene.Net/.gitignore b/external/Lucene.Net/.gitignore
deleted file mode 100644
index cb595e7e16..0000000000
--- a/external/Lucene.Net/.gitignore
+++ /dev/null
@@ -1,17 +0,0 @@
-# This is the git pattern ignore file for the project.
-# Git can be used with svn http://code.google.com/p/msysgit/
-bin
-Bin
-obj
-*.user
-*.suo
-*.bak
-*.vs10x
-*.VisualState.xml
-*.userprefs
-*.pidb
-test-results
-build/artifacts
-build/bin
-_ReSharper*
-*.orig
diff --git a/external/Lucene.Net/ACKNOWLEDGEMENTS.txt b/external/Lucene.Net/ACKNOWLEDGEMENTS.txt
deleted file mode 100644
index 8b45b38157..0000000000
--- a/external/Lucene.Net/ACKNOWLEDGEMENTS.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-The snowball stemmers in contrib/Snowball.Net/Snowball.Net/SF/Snowball
-were developed by Martin Porter and Richard Boulton.
-
-The full snowball package is available from http://snowball.tartarus.org/
-
-Apache Lucene.Net is a port of Jakarta Lucene to C#.
-The port from Java to C# of version 1.4.0, 1.4.3, 1.9, 1.9.1, 2.0 and 2.1 were done
-primary by George Aroush. To contact George Aroush please visit http://www.aroush.net/.
-Much thanks to George
-
diff --git a/external/Lucene.Net/CHANGES.txt.REMOVED.git-id b/external/Lucene.Net/CHANGES.txt.REMOVED.git-id
deleted file mode 100644
index 74cbf29a6f..0000000000
--- a/external/Lucene.Net/CHANGES.txt.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-c0daf5afda647e912fcb3fee849f83bd5df94c39
\ No newline at end of file
diff --git a/external/Lucene.Net/LICENSE.txt b/external/Lucene.Net/LICENSE.txt
deleted file mode 100644
index 8669b7c1d1..0000000000
--- a/external/Lucene.Net/LICENSE.txt
+++ /dev/null
@@ -1,271 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
-Some code in src/Lucene.Net/Util/UnicodeUtil.cs was derived from unicode
-conversion examples available at http://www.unicode.org/Public/PROGRAMS/CVTUTF.
-
-Here is the copyright from those sources:
-
-/*
- * Copyright 2001-2004 Unicode, Inc.
- *
- * Disclaimer
- *
- * This source code is provided as is by Unicode, Inc. No claims are
- * made as to fitness for any particular purpose. No warranties of any
- * kind are expressed or implied. The recipient agrees to determine
- * applicability of information provided. If this file has been
- * purchased on magnetic or optical media from Unicode, Inc., the
- * sole remedy for any claim will be exchange of defective media
- * within 90 days of receipt.
- *
- * Limitations on Rights to Redistribute This Code
- *
- * Unicode, Inc. hereby grants the right to freely use the information
- * supplied in this file in the creation of products supporting the
- * Unicode Standard, and to make copies of this file in any form
- * for internal or external distribution as long as this notice
- * remains attached.
- */
-
-
-Some code in src/Lucene.Net/Util/ArrayUtil.cs was derived from Python 2.4.2
-sources available at http://www.python.org.
-
-Full license is here:
-
- http://www.python.org/download/releases/2.4.2/license/
-
-
-
-
-The following license applies to the Snowball's Portuguese, Hungarian, Romanian, Turkish stemmers:
-
-Copyright (c) 2001, Dr Martin Porter
-Copyright (c) 2002, Richard Boulton
-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 copyright holders 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 COPYRIGHT OWNER 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.
\ No newline at end of file
diff --git a/external/Lucene.Net/NOTICE.txt b/external/Lucene.Net/NOTICE.txt
deleted file mode 100644
index 528c8a372f..0000000000
--- a/external/Lucene.Net/NOTICE.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Lucene.Net
-Copyright 2006-2012 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/external/Lucene.Net/README.txt b/external/Lucene.Net/README.txt
deleted file mode 100644
index 17cbb15e1c..0000000000
--- a/external/Lucene.Net/README.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-Apache Lucene.Net README file
-
-
-INTRODUCTION
--------------
-Apache Lucene.Net is a C# full-text search engine. Apache Lucene.Net is not a complete application,
-but rather a code library and API that can easily be used to add search capabilities to applications.
-
-Apache Lucene.Net is compiled against Microsoft .NET Framework 4.0
-
-The Apache Lucene.Net web site is at:
- http://lucenenet.apache.org
-
-Please join the Apache Lucene.Net-User mailing list by sending a message to:
- user-subscribe@lucenenet.apache.org
-
-
-FILES
----------------
-build/scripts
- Build scripts
-
-build/*
- Visual Studio solution files
-
-src/Contrib
- Contributed code whihc extends and enhances Apahce Lucene.Net, but is not part of the core library
-
-src/core
- The Lucene source code.
-
-src/Demo
- Some example code.
-
-test/*
- nUnit tests for Lucene.Net and Contrib projects
-
-DOCUMENTATION
----------------------
-MSDN style API documentation for Apache Lucene.Net exists. Those can be found at this site:
- http://lucenenet.apache.org/docs/3.0.3/Index.html
-
- or
-
- http://lucenenet.apache.org/docs/3.0.3/Lucene.Net.chm
-
-ADDITIONAL LIBRARIES
------------------------------
-There are a number of additional libraries that various parts of Lucene.Net may depend. These are not
-included in the source distribution
-
-These libraries can be found at:
- https://svn.apache.org/repos/asf/lucene.net/tags/Lucene.Net_3_0_3_RC1/lib/
-
-Libraries:
- - Gallio 3.2.750
- - ICSharpCode
- - Nuget
- - NUnit.org
- - Spatial4n
- - StyleCop 4.5
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/font/AllerDisplay.ttf b/external/Lucene.Net/branding/font/AllerDisplay.ttf
deleted file mode 100644
index 9c5a761f95..0000000000
Binary files a/external/Lucene.Net/branding/font/AllerDisplay.ttf and /dev/null differ
diff --git a/external/Lucene.Net/branding/font/Aller_Rg.ttf.REMOVED.git-id b/external/Lucene.Net/branding/font/Aller_Rg.ttf.REMOVED.git-id
deleted file mode 100644
index 64947767af..0000000000
--- a/external/Lucene.Net/branding/font/Aller_Rg.ttf.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-40e9c69dcc94cc12c5560419cc83e8bcb3b81e6b
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/font/Aller_Std_Family.zip.REMOVED.git-id b/external/Lucene.Net/branding/font/Aller_Std_Family.zip.REMOVED.git-id
deleted file mode 100644
index f47fd3c0ee..0000000000
--- a/external/Lucene.Net/branding/font/Aller_Std_Family.zip.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-67fd98292ca8f5ad49414ae37c537bb4524aff6b
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/font/GOTHIC.TTF.REMOVED.git-id b/external/Lucene.Net/branding/font/GOTHIC.TTF.REMOVED.git-id
deleted file mode 100644
index 97970fb326..0000000000
--- a/external/Lucene.Net/branding/font/GOTHIC.TTF.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-c60a324123eaaeab58c400c139bcabbc6d0d2a9f
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/favicon.ico b/external/Lucene.Net/branding/logo/favicon.ico
deleted file mode 100644
index 3f0f9b99de..0000000000
Binary files a/external/Lucene.Net/branding/logo/favicon.ico and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-color-variations.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-color-variations.ai.REMOVED.git-id
deleted file mode 100644
index 8a06f31b38..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-color-variations.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-4f446f2fe625b2834884b1aadc5eede9826edb1d
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net-L.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net-L.ai.REMOVED.git-id
deleted file mode 100644
index 475c5b7790..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-L.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-c1e23562f4b0cd4d4f2e0f89a42b567b99077077
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net-L.png b/external/Lucene.Net/branding/logo/lucene-net-L.png
deleted file mode 100644
index 48df616250..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-L.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-L.svg b/external/Lucene.Net/branding/logo/lucene-net-L.svg
deleted file mode 100644
index b4cb557bef..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-L.svg
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
-
-
-
diff --git a/external/Lucene.Net/branding/logo/lucene-net-badge-120x36.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net-badge-120x36.ai.REMOVED.git-id
deleted file mode 100644
index fb4a3e0119..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-badge-120x36.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-6bd2db8fe38fcdb84bee4df77770c3f7f35915b1
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net-badge-120x36.png b/external/Lucene.Net/branding/logo/lucene-net-badge-120x36.png
deleted file mode 100644
index 66e6ba3905..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-badge-120x36.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-badge-180x36.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net-badge-180x36.ai.REMOVED.git-id
deleted file mode 100644
index 023caa454e..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-badge-180x36.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-a0ba56e6245d37c9bf43fd82e6b2a92dfaff1264
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net-badge-180x36.png b/external/Lucene.Net/branding/logo/lucene-net-badge-180x36.png
deleted file mode 100644
index a2de7d89d2..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-badge-180x36.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-badge-80x100.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net-badge-80x100.ai.REMOVED.git-id
deleted file mode 100644
index b1284e1110..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-badge-80x100.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-a7e57eb5276d63915973b5f3422b9fe010bcca60
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net-badge-80x100.png b/external/Lucene.Net/branding/logo/lucene-net-badge-80x100.png
deleted file mode 100644
index b0a3c112aa..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-badge-80x100.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-color.png b/external/Lucene.Net/branding/logo/lucene-net-color.png
deleted file mode 100644
index d6106f90a7..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-color.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-color.svg b/external/Lucene.Net/branding/logo/lucene-net-color.svg
deleted file mode 100644
index 9dcbc0a9b8..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-color.svg
+++ /dev/null
@@ -1,262 +0,0 @@
-
-
-
-
-
-
diff --git a/external/Lucene.Net/branding/logo/lucene-net-grayscale.png b/external/Lucene.Net/branding/logo/lucene-net-grayscale.png
deleted file mode 100644
index c2395afd10..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-grayscale.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-grayscale.svg b/external/Lucene.Net/branding/logo/lucene-net-grayscale.svg
deleted file mode 100644
index bbecb0bc33..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-grayscale.svg
+++ /dev/null
@@ -1,169 +0,0 @@
-
-
-
-
-
-
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-128.png b/external/Lucene.Net/branding/logo/lucene-net-icon-128.png
deleted file mode 100644
index e010c0cf05..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-128.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-128x128.png b/external/Lucene.Net/branding/logo/lucene-net-icon-128x128.png
deleted file mode 100644
index 85cbdee401..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-128x128.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-256.png b/external/Lucene.Net/branding/logo/lucene-net-icon-256.png
deleted file mode 100644
index 1b1663fcdd..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-256.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-256x256.png b/external/Lucene.Net/branding/logo/lucene-net-icon-256x256.png
deleted file mode 100644
index 017c7d1b8e..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-256x256.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-32.png b/external/Lucene.Net/branding/logo/lucene-net-icon-32.png
deleted file mode 100644
index 6c6607be4e..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-32.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-32x32.png b/external/Lucene.Net/branding/logo/lucene-net-icon-32x32.png
deleted file mode 100644
index 227b7cea40..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-32x32.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-512.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net-icon-512.ai.REMOVED.git-id
deleted file mode 100644
index b560874964..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-icon-512.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-1b519a257237cc5a7876a18e4d84da345db9736d
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-512x256.png b/external/Lucene.Net/branding/logo/lucene-net-icon-512x256.png
deleted file mode 100644
index 5f2c671a40..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-512x256.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-512x512.png b/external/Lucene.Net/branding/logo/lucene-net-icon-512x512.png
deleted file mode 100644
index d14d5ae905..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-512x512.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-64.png b/external/Lucene.Net/branding/logo/lucene-net-icon-64.png
deleted file mode 100644
index b2479eb9b7..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-64.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-64x64.png b/external/Lucene.Net/branding/logo/lucene-net-icon-64x64.png
deleted file mode 100644
index 19abadff1d..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon-64x64.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon.ico b/external/Lucene.Net/branding/logo/lucene-net-icon.ico
deleted file mode 100644
index 3f0f9b99de..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-icon.ico and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-not-outlined.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net-not-outlined.ai.REMOVED.git-id
deleted file mode 100644
index 208f376492..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-not-outlined.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-e1051362ee5f7f32e03e5d7c08dcfcc48a135a53
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net-reverse-color.png b/external/Lucene.Net/branding/logo/lucene-net-reverse-color.png
deleted file mode 100644
index f69aecfb85..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-reverse-color.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-reverse-color.svg b/external/Lucene.Net/branding/logo/lucene-net-reverse-color.svg
deleted file mode 100644
index 3883781170..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-reverse-color.svg
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
-
-
-
diff --git a/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.png b/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.png
deleted file mode 100644
index 4507878a60..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.svg b/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.svg
deleted file mode 100644
index d569a6c95a..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.svg
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
-
-
-
-
diff --git a/external/Lucene.Net/branding/logo/lucene-net-words.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net-words.ai.REMOVED.git-id
deleted file mode 100644
index 796f77b4c5..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-words.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-fea18da569af3cdadee4847c8abb192bc1e6fc0c
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net-words.png b/external/Lucene.Net/branding/logo/lucene-net-words.png
deleted file mode 100644
index 4fd7899a38..0000000000
Binary files a/external/Lucene.Net/branding/logo/lucene-net-words.png and /dev/null differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-words.svg b/external/Lucene.Net/branding/logo/lucene-net-words.svg
deleted file mode 100644
index 54eae9388a..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net-words.svg
+++ /dev/null
@@ -1,166 +0,0 @@
-
-
-
-
-
-
diff --git a/external/Lucene.Net/branding/logo/lucene-net.ai.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net.ai.REMOVED.git-id
deleted file mode 100644
index 1df9e2b674..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net.ai.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-8ad064f686e93b3444d04495435f39ec27ff7c77
\ No newline at end of file
diff --git a/external/Lucene.Net/branding/logo/lucene-net.psd.REMOVED.git-id b/external/Lucene.Net/branding/logo/lucene-net.psd.REMOVED.git-id
deleted file mode 100644
index faa7198a75..0000000000
--- a/external/Lucene.Net/branding/logo/lucene-net.psd.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-0e9db3525f053dbca8434fbe4327682977be1be9
\ No newline at end of file
diff --git a/external/Lucene.Net/build.cmd b/external/Lucene.Net/build.cmd
deleted file mode 100644
index c6b928455f..0000000000
--- a/external/Lucene.Net/build.cmd
+++ /dev/null
@@ -1,27 +0,0 @@
-@echo off
-REM License Block
-GOTO LicenseEnd
- 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.
-:LicenseEnd
-
-SET TARGETS=simple
-SET AREA=all
-SET CONFIGURATION=Release
-IF [%1] NEQ [] SET TARGETS=%1
-IF [%2] NEQ [] SET AREA=%2
-IF [%3] NEQ [] SET CONFIGURATION=%3
-
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe build/scripts/build.targets /t:%TARGETS% /p:BuildArea=%AREA% /p:Configuration=%Configuration% /nologo
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/All/Lucene.Net.nuspec b/external/Lucene.Net/build/scripts/All/Lucene.Net.nuspec
deleted file mode 100644
index 997b5b962e..0000000000
--- a/external/Lucene.Net/build/scripts/All/Lucene.Net.nuspec
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
- Lucene.Net.All
- $version$
- Lucene.Net All
- Lucene.Net Community
- The Apache Software Foundation
- http://incubator.apache.org/lucene.net/media/lucene-net-ico-128x128.png
- http://www.apache.org/licenses/LICENSE-2.0.html
- http://lucenenet.apache.org/
- false
- Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
-
-**This package installs the Lucene.Net.Core & Lucene.Net.Contrib packages.
- Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
- lucene.net core search information retrieval lucene apache
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/All/document.targets b/external/Lucene.Net/build/scripts/All/document.targets
deleted file mode 100644
index 08e262d600..0000000000
--- a/external/Lucene.Net/build/scripts/All/document.targets
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Lucene.Net
- Lucene.Net Class Libraries
- ..\artifacts\all\working\
- ..\artifacts\all\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/All/project.targets b/external/Lucene.Net/build/scripts/All/project.targets
deleted file mode 100644
index f9ebcc3ca1..0000000000
--- a/external/Lucene.Net/build/scripts/All/project.targets
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
- Lucene.Net.nuspec
- Lucene.Net.Contrib.nuspec
-
-
-
- $(BuildFolder)\artifacts\all
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Analyzers/document.targets b/external/Lucene.Net/build/scripts/Analyzers/document.targets
deleted file mode 100644
index d97452ac46..0000000000
--- a/external/Lucene.Net/build/scripts/Analyzers/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Analyzers
- Analyzers Class Library
- ..\artifacts\Analyzers\working\
- ..\artifacts\Analyzers\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Analyzers/project.targets b/external/Lucene.Net/build/scripts/Analyzers/project.targets
deleted file mode 100644
index 85ec04dbc8..0000000000
--- a/external/Lucene.Net/build/scripts/Analyzers/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Analyzers\$(Configuration)
-
-
- $(BinFolder)\contrib\Analyzers\$(Configuration)
- $(BuildFolder)\artifacts\Analyzers
- "$(AnalyzersFolder)\**\Lucene.Net.Contrib.Analyzers.Test.dll"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Contrib-Core/document.targets b/external/Lucene.Net/build/scripts/Contrib-Core/document.targets
deleted file mode 100644
index 781abea9d2..0000000000
--- a/external/Lucene.Net/build/scripts/Contrib-Core/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Core
- Core Class Library
- ..\artifacts\Core\working\
- ..\artifacts\Core\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Contrib-Core/project.targets b/external/Lucene.Net/build/scripts/Contrib-Core/project.targets
deleted file mode 100644
index 7cd602f2bd..0000000000
--- a/external/Lucene.Net/build/scripts/Contrib-Core/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Core\$(Configuration)
-
-
- $(BinFolder)\contrib\Core\$(Configuration)
- $(BuildFolder)\artifacts\Contrib-Core
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Contrib/Lucene.Net.Contrib.nuspec b/external/Lucene.Net/build/scripts/Contrib/Lucene.Net.Contrib.nuspec
deleted file mode 100644
index 483abb48d3..0000000000
--- a/external/Lucene.Net/build/scripts/Contrib/Lucene.Net.Contrib.nuspec
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
- Lucene.Net.Contrib
- $version$
- Lucene.Net Contrib
- Lucene.Net Community
- The Apache Software Foundation
- http://incubator.apache.org/lucene.net/media/lucene-net-ico-128x128.png
- http://www.apache.org/licenses/LICENSE-2.0.html
- http://lucenenet.apache.org/
- false
- Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
-
-**This package contains only the contrib Lucene.Net assemblies.
- Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
- lucene.net core search information retrieval lucene apache
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Contrib/document.targets b/external/Lucene.Net/build/scripts/Contrib/document.targets
deleted file mode 100644
index 962820c39e..0000000000
--- a/external/Lucene.Net/build/scripts/Contrib/document.targets
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib
- Lucene.Net.Contrib Class Libraries
- ..\artifacts\contrib\working\
- ..\artifacts\contrib\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Contrib/project.targets b/external/Lucene.Net/build/scripts/Contrib/project.targets
deleted file mode 100644
index e8d3a25f57..0000000000
--- a/external/Lucene.Net/build/scripts/Contrib/project.targets
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
-
- Lucene.Net.Contrib.nuspec
- Lucene.Net.Spatial.NTS.nuspec
-
-
- $(BuildFolder)\artifacts\contrib
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Core/Lucene.Net.Core.nuspec b/external/Lucene.Net/build/scripts/Core/Lucene.Net.Core.nuspec
deleted file mode 100644
index 21920885dc..0000000000
--- a/external/Lucene.Net/build/scripts/Core/Lucene.Net.Core.nuspec
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- Lucene.Net.Core
- $version$
- Lucene.Net Core
- Lucene.Net Community
- The Apache Software Foundation
- http://incubator.apache.org/lucene.net/media/lucene-net-ico-128x128.png
- http://www.apache.org/licenses/LICENSE-2.0.html
- http://lucenenet.apache.org/
- false
- Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
-
-This package contains only the core Lucene.Net assembly.
- Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
- lucene.net core search information retrieval lucene apache
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Core/document.targets b/external/Lucene.Net/build/scripts/Core/document.targets
deleted file mode 100644
index 797392e67c..0000000000
--- a/external/Lucene.Net/build/scripts/Core/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Core
- Lucene.Net.Core Class Library
- ..\artifacts\core\working\
- ..\artifacts\core\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Core/project.targets b/external/Lucene.Net/build/scripts/Core/project.targets
deleted file mode 100644
index f7ab1e1dd3..0000000000
--- a/external/Lucene.Net/build/scripts/Core/project.targets
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
-
- $(BinFolder)\core\$(Configuration)
- Lucene.Net.Core.nuspec
-
-
- $(BinFolder)\core\$(Configuration)
- $(BuildFolder)\artifacts\core
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/CustomDictionary.xml b/external/Lucene.Net/build/scripts/CustomDictionary.xml
deleted file mode 100644
index e00d9f1f98..0000000000
--- a/external/Lucene.Net/build/scripts/CustomDictionary.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
- Lucene
- Util
- Num
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/FastVectorHighlighter/document.targets b/external/Lucene.Net/build/scripts/FastVectorHighlighter/document.targets
deleted file mode 100644
index 2793a9c483..0000000000
--- a/external/Lucene.Net/build/scripts/FastVectorHighlighter/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.FastVectorHighlighter
- FastVectorHighlighter Class Library
- ..\artifacts\FastVectorHighlighter\working\
- ..\artifacts\FastVectorHighlighter\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/FastVectorHighlighter/project.targets b/external/Lucene.Net/build/scripts/FastVectorHighlighter/project.targets
deleted file mode 100644
index 778532912c..0000000000
--- a/external/Lucene.Net/build/scripts/FastVectorHighlighter/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\FastVectorHighlighter\$(Configuration)
-
-
- $(BinFolder)\contrib\FastVectorHighlighter\$(Configuration)
- $(BuildFolder)\artifacts\FastVectorHighlighter
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Highlighter/document.targets b/external/Lucene.Net/build/scripts/Highlighter/document.targets
deleted file mode 100644
index 8e48c12c4f..0000000000
--- a/external/Lucene.Net/build/scripts/Highlighter/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Highlighter
- Highlighter Class Library
- ..\artifacts\Highlighter\working\
- ..\artifacts\Highlighter\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Highlighter/project.targets b/external/Lucene.Net/build/scripts/Highlighter/project.targets
deleted file mode 100644
index 4802ee80a1..0000000000
--- a/external/Lucene.Net/build/scripts/Highlighter/project.targets
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Highlighter\$(Configuration)
-
-
- $(BinFolder)\contrib\Highlighter\$(Configuration)
- $(BuildFolder)\artifacts\Highlighter
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Memory/document.targets b/external/Lucene.Net/build/scripts/Memory/document.targets
deleted file mode 100644
index 713ffce78c..0000000000
--- a/external/Lucene.Net/build/scripts/Memory/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Memory
- Memory Class Library
- ..\artifacts\Memory\working\
- ..\artifacts\Memory\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Memory/project.targets b/external/Lucene.Net/build/scripts/Memory/project.targets
deleted file mode 100644
index 8c302e9504..0000000000
--- a/external/Lucene.Net/build/scripts/Memory/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Memory\$(Configuration)
-
-
- $(BinFolder)\contrib\Memory\$(Configuration)
- $(BuildFolder)\artifacts\Memory
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Queries/document.targets b/external/Lucene.Net/build/scripts/Queries/document.targets
deleted file mode 100644
index 8209b4faf9..0000000000
--- a/external/Lucene.Net/build/scripts/Queries/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Queries
- Queries Class Library
- ..\artifacts\Queries\working\
- ..\artifacts\Queries\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Queries/project.targets b/external/Lucene.Net/build/scripts/Queries/project.targets
deleted file mode 100644
index f16fd8cb57..0000000000
--- a/external/Lucene.Net/build/scripts/Queries/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Queries\$(Configuration)
-
-
- $(BinFolder)\contrib\Queries\$(Configuration)
- $(BuildFolder)\artifacts\Queries
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Regex/document.targets b/external/Lucene.Net/build/scripts/Regex/document.targets
deleted file mode 100644
index 59d721c32e..0000000000
--- a/external/Lucene.Net/build/scripts/Regex/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Regex
- Regex Class Library
- ..\artifacts\Regex\working\
- ..\artifacts\Regex\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Regex/project.targets b/external/Lucene.Net/build/scripts/Regex/project.targets
deleted file mode 100644
index 7ce0e62b56..0000000000
--- a/external/Lucene.Net/build/scripts/Regex/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Regex\$(Configuration)
-
-
- $(BinFolder)\contrib\Regex\$(Configuration)
- $(BuildFolder)\artifacts\Regex
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/SimpleFacetedSearch/document.targets b/external/Lucene.Net/build/scripts/SimpleFacetedSearch/document.targets
deleted file mode 100644
index 115277b876..0000000000
--- a/external/Lucene.Net/build/scripts/SimpleFacetedSearch/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.SimpleFacetedSearch
- SimpleFacetedSearch Class Library
- ..\artifacts\SimpleFacetedSearch\working\
- ..\artifacts\SimpleFacetedSearch\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/SimpleFacetedSearch/project.targets b/external/Lucene.Net/build/scripts/SimpleFacetedSearch/project.targets
deleted file mode 100644
index 2d7c16f362..0000000000
--- a/external/Lucene.Net/build/scripts/SimpleFacetedSearch/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\SimpleFacetedSearch\$(Configuration)
-
-
- $(BinFolder)\contrib\SimpleFacetedSearch\$(Configuration)
- $(BuildFolder)\artifacts\SimpleFacetedSearch
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Snowball/document.targets b/external/Lucene.Net/build/scripts/Snowball/document.targets
deleted file mode 100644
index 9bbb52ee05..0000000000
--- a/external/Lucene.Net/build/scripts/Snowball/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Snowball
- Snowball Class Library
- ..\artifacts\Snowball\working\
- ..\artifacts\Snowball\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Snowball/project.targets b/external/Lucene.Net/build/scripts/Snowball/project.targets
deleted file mode 100644
index f13e277189..0000000000
--- a/external/Lucene.Net/build/scripts/Snowball/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Snowball\$(Configuration)
-
-
- $(BinFolder)\contrib\Snowball\$(Configuration)
- $(BuildFolder)\artifacts\Snowball
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Spatial.NTS/Lucene.Net.Spatial.NTS.nuspec b/external/Lucene.Net/build/scripts/Spatial.NTS/Lucene.Net.Spatial.NTS.nuspec
deleted file mode 100644
index 21a3ee9ae1..0000000000
--- a/external/Lucene.Net/build/scripts/Spatial.NTS/Lucene.Net.Spatial.NTS.nuspec
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
- Lucene.Net.Spatial.NTS
- $version$
- Lucene.Net Spatial Contrib with NTS support
- Lucene.Net Community
- The Apache Software Foundation
- http://incubator.apache.org/lucene.net/media/lucene-net-ico-128x128.png
- http://www.apache.org/licenses/LICENSE-2.0.html
- http://lucenenet.apache.org/
- false
- Adds support for advanced geo-spatial searches to Lucene.Net 3.0.3, including polygon searches and other WKT shapes. Bundled with NetTopologySuite for performing advanced geometry operations.
- Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
- lucene.net core search information retrieval lucene apache spatial spatial4n spatial4j nts nettopologysuite WKT polygon
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Spatial.NTS/document.targets b/external/Lucene.Net/build/scripts/Spatial.NTS/document.targets
deleted file mode 100644
index 510591d451..0000000000
--- a/external/Lucene.Net/build/scripts/Spatial.NTS/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Spatial.NTS
- Spatial.NTS Class Library
- ..\artifacts\Spatial.NTS\working\
- ..\artifacts\Spatial.NTS\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Spatial.NTS/project.targets b/external/Lucene.Net/build/scripts/Spatial.NTS/project.targets
deleted file mode 100644
index b73ba78cc0..0000000000
--- a/external/Lucene.Net/build/scripts/Spatial.NTS/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Spatial.NTS\$(Configuration)
-
-
- $(BinFolder)\contrib\Spatial.NTS\$(Configuration)
- $(BuildFolder)\artifacts\Spatial.NTS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Spatial/Lucene.Net.Spatial.nuspec b/external/Lucene.Net/build/scripts/Spatial/Lucene.Net.Spatial.nuspec
deleted file mode 100644
index bc6d4f057d..0000000000
--- a/external/Lucene.Net/build/scripts/Spatial/Lucene.Net.Spatial.nuspec
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
- Lucene.Net.Spatial
- $version$
- Lucene.Net Spatial Contrib
- Lucene.Net Community
- The Apache Software Foundation
- http://incubator.apache.org/lucene.net/media/lucene-net-ico-128x128.png
- http://www.apache.org/licenses/LICENSE-2.0.html
- http://lucenenet.apache.org/
- false
- Adds support for geo-spatial searches to Lucene.Net 3.0.3
- Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
- lucene.net core search information retrieval lucene apache spatial spatial4n spatial4j
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Spatial/document.targets b/external/Lucene.Net/build/scripts/Spatial/document.targets
deleted file mode 100644
index da98b93257..0000000000
--- a/external/Lucene.Net/build/scripts/Spatial/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.Spatial
- Spatial Class Library
- ..\artifacts\Spatial\working\
- ..\artifacts\Spatial\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/Spatial/project.targets b/external/Lucene.Net/build/scripts/Spatial/project.targets
deleted file mode 100644
index 63b40b3cc4..0000000000
--- a/external/Lucene.Net/build/scripts/Spatial/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\Spatial\$(Configuration)
-
-
- $(BinFolder)\contrib\Spatial\$(Configuration)
- $(BuildFolder)\artifacts\Spatial
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/SpellChecker/document.targets b/external/Lucene.Net/build/scripts/SpellChecker/document.targets
deleted file mode 100644
index 1dff4fd995..0000000000
--- a/external/Lucene.Net/build/scripts/SpellChecker/document.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
- Lucene.Net.Contrib.SpellChecker
- SpellChecker Class Library
- ..\artifacts\SpellChecker\working\
- ..\artifacts\SpellChecker\docs\
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/SpellChecker/project.targets b/external/Lucene.Net/build/scripts/SpellChecker/project.targets
deleted file mode 100644
index ebff0d4566..0000000000
--- a/external/Lucene.Net/build/scripts/SpellChecker/project.targets
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
- $(BinFolder)\contrib\SpellChecker\$(Configuration)
-
-
- $(BinFolder)\contrib\SpellChecker\$(Configuration)
- $(BuildFolder)\artifacts\SpellChecker
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/build.cmd b/external/Lucene.Net/build/scripts/build.cmd
deleted file mode 100644
index b6010b9879..0000000000
--- a/external/Lucene.Net/build/scripts/build.cmd
+++ /dev/null
@@ -1,25 +0,0 @@
-@echo off
-REM License Block
-GOTO LicenseEnd
- 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.
-:LicenseEnd
-
-SET TARGETS=all
-SET AREA=all
-IF [%1] NEQ [] SET TARGETS=%1
-IF [%2] NEQ [] SET AREA=%2
-
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe build.targets /t:%TARGETS% /p:BuildArea=%AREA% /nologo
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/build.sh b/external/Lucene.Net/build/scripts/build.sh
deleted file mode 100644
index 6edacfdd97..0000000000
--- a/external/Lucene.Net/build/scripts/build.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# 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.
-
-TARGETS="all"
-BuildArea="all"
-Configuration="debug"
-if [ -n "$1" ]
- then
- TARGETS=$1
-fi
-if [ "$#" -gt "1" ]
- then
- TARGETS=${!#}
-fi
-if [ $# -eq 2 ]
- then
- BuildArea="$1"
-fi
-if [ $# -eq 3 ]
- then
- BuildArea="$1"
- Configuration="$2"
-fi
-
-echo "commands will target projects: $BuildArea"
-echo "commands will target the configuration: $Configuration"
-export $BuildArea
-export $Configuration
-
-ROOT=$(dirname $0)
-export NETFRAMEWORK="mono"
-export TEMP=$ROOT/tmp
-
-MONO_IOMAP=case xbuild $ROOT/build.xml /t:$TARGETS
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/build.targets b/external/Lucene.Net/build/scripts/build.targets
deleted file mode 100644
index c05e0924b7..0000000000
--- a/external/Lucene.Net/build/scripts/build.targets
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
-
-
-
-
- Debug
- Release
- all
-
-
- $(TEMP)
- $(MSBuildProjectDirectory)\..
- $(MSBuildProjectDirectory)
- $(MSBuildProjectDirectory)\..\..\
-
-
-
-
- $(BuildFolder)\bin
- $(RootFolder)src
- $(RootFolder)test
- $(RootFolder)lib
- $(RootFolder)lib
-
-
- $(LibFolder)\Nuget\NuGet.exe pack
- -Version $(Version) -OutputDirectory
-
-
-
-
- mono
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/docs.shfbproj b/external/Lucene.Net/build/scripts/docs.shfbproj
deleted file mode 100644
index 967057d413..0000000000
--- a/external/Lucene.Net/build/scripts/docs.shfbproj
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(MSBuildProgramFiles32)
-
-
- $(ProgramFiles32)\EWSoftware\Sandcastle Help File Builder
-
-
-
- Debug
- AnyCPU
- 2.0
- {f57dd4a8-d22e-43fd-87de-2ba22a54564d}
- 1.9.3.0
-
- Documentation
- Documentation
- Documentation
-
-
- en-US
- C:\Program Files (x86)\Sandcastle\
-
-
-
- HtmlHelp1, Website
- False
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/dot-net-tools.targets b/external/Lucene.Net/build/scripts/dot-net-tools.targets
deleted file mode 100644
index 45ccca168f..0000000000
--- a/external/Lucene.Net/build/scripts/dot-net-tools.targets
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
-
-
-
- NUnit.org/NUnit/2.5.9/bin/net-2.0
- Gallio.3.2.750
-
-
-
-
- $(MSBuildProgramFiles32)
-
- GALLIO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/mono-tools.targets b/external/Lucene.Net/build/scripts/mono-tools.targets
deleted file mode 100644
index a46447ff50..0000000000
--- a/external/Lucene.Net/build/scripts/mono-tools.targets
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
- NUnit.2.5.10.11092
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/rules.fxcop b/external/Lucene.Net/build/scripts/rules.fxcop
deleted file mode 100644
index 6b237a7388..0000000000
--- a/external/Lucene.Net/build/scripts/rules.fxcop
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
-
- True
- $(FxCopDir)\Xml\FxCopReport.xsl
-
-
-
-
-
- True
- True
- True
- 40
- 40
-
- False
-
- False
- 120
- True
-
-
-
- $(ProjectDir)/../bin/core/Debug/
- $(ProjectDir)/../bin/core/Debug/
- $(ProjectDir)/../../packages/PortableLibrary/
- $(ProjectDir)/../../PortableLibrary/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/external/Lucene.Net/build/scripts/rules.stylecop b/external/Lucene.Net/build/scripts/rules.stylecop
deleted file mode 100644
index 7f0da4aae7..0000000000
--- a/external/Lucene.Net/build/scripts/rules.stylecop
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
- \.g\.cs$
- \.generated\.cs$
- \.g\.i\.cs$
-
-
-
-
-
-
-
-
- as
- do
- id
- if
- in
- is
- my
- no
- on
- to
- ui
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/template.shfbproj b/external/Lucene.Net/build/scripts/template.shfbproj
deleted file mode 100644
index c27a3b6280..0000000000
--- a/external/Lucene.Net/build/scripts/template.shfbproj
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-
-
-
- Debug
- AnyCPU
- 2.0
- {f57dd4a8-d22e-43fd-87de-2ba22a54564d}
- 1.9.3.0
-
- Documentation
- Documentation
- Documentation
-
- ..\artifacts\docs\
- Lucene.Net
- en-US
-
-
-
-
- C:\Program Files (x86)\Sandcastle\
-
-
-
- ..\artifacts\working\
- HtmlHelp1, Website
- Lucene.Net Class Library
- False
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ..\..\packages\PortableLibrary\mscorlib.dll
-
-
- ..\..\packages\PortableLibrary\System.dll
-
-
- ..\..\packages\PortableLibrary\System.Core.dll
-
-
- ..\..\packages\PortableLibrary\System.Net.dll
-
-
- ..\..\packages\PortableLibrary\System.Xml.dll
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/user.targets b/external/Lucene.Net/build/scripts/user.targets
deleted file mode 100644
index 501f9124c3..0000000000
--- a/external/Lucene.Net/build/scripts/user.targets
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
- Debug
- Release
- all
- core
- contrib
- bin
- src
- test
- lib
-
- lib\NUnit.org\NUnit\2.5.9\bin\net-2.0\
- $(TEMP)
- $(MSBuildProjectDirectory)
- $(MSBuildProjectDirectory)\..\..\
-
-
-
-
-
- mono
-
-
-
- $(RootFolder)$(SourceFolder)\$(LuceneFolder)\
- $(RootFolder)$(TestFolder)\$(LuceneFolder)\
- $(RootFolder)$(BinFolder)\$(LuceneFolder)\
- $(RootFolder)$(SourceFolder)\$(ContribFolder)\
- $(RootFolder)$(TestFolder)\$(ContribFolder)\
- $(RootFolder)$(BinFolder)\$(ContribFolder)\
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/validate-tool-chain.ps1 b/external/Lucene.Net/build/scripts/validate-tool-chain.ps1
deleted file mode 100644
index 940fc35a55..0000000000
--- a/external/Lucene.Net/build/scripts/validate-tool-chain.ps1
+++ /dev/null
@@ -1,304 +0,0 @@
-#
-# 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.
-#
-#
-#
-# NOTICE: This script could mess up your development box. Use with extreme
-# caution. Better yet, test this on a non-production env vm before attempting
-# to use it on any box you consider important.
-#
-#
-# This is essentially a devopts script for installing tools that are needed for
-# the Lucene.NEt build scripts to run CI on windows.
-#
-# The script could use some refactoring and has the need to
-# increase its functionality for version & better error checking.
-#
-# However it is a good alternative to having to remember where to
-# certain download software packages from or what to execute after the install.
-#
-# This could also be handy for setting up new dev machines on windows 8 previews.
-#
-# When Co-App is finally released and is considered stable, we could potentially
-# replace this script with that.
-# http://coapp.org/
-
-function Get-ScriptDirectory
-{
- $script = (Get-Variable MyInvocation -Scope 1).Value
- Split-Path $script.MyCommand.Path
-}
-
-$cd = Get-ScriptDirectory;
-
-$Folder64 = $Env:ProgramFiles;
-$Folder32 = ${Env:ProgramFiles(x86)};
-
-$RequireWin7_1 = $false;
-$RequireFxCop10 = $false;
-$RequireSHFB = $false;
-$RequireNCover = $false;
-
-echo $Folder32;
-
-$FindWin7_1 = Test-Path ($Folder64 + "\Microsoft SDKs\Windows\v7.1");
-if($FindWin7_1 -eq $false) {
- $FindWin7_1 = Test-Path ($Folder32 + "\Microsoft SDKs\Windows\v7.1");
-}
-
-if($FindWin7_1 -eq $false) {
- echo "Windows 7.1 SDK ..Not installed in its expected location.";
- $RequireWin7_1 = $true;
-} else {
- echo "Windows 7.1 SDK ..Found.";
-}
-
-$FindFxCop10 = Test-Path($Folder32 + "\Microsoft Fxcop 10.0");
-
-if($FindFxCop10 -eq $false) {
- echo "Fx Cop 10 is not installed in its expected location.";
- $RequireFxCop10 = $true;
-} else {
- echo "Fx Cop 10 ..Found.";
-}
-
-$FindNCover = Test-Path ($Folder32 + "\NCover\NCover.Console.exe");
-if($FindNCover -eq $false) {
- echo "NCover is not installed in its expected location.";
- $RequireNCover = $true;
-} else {
- echo "NCover ..Found.";
-}
-
-$FindSHFB = Test-Path ($Folder32 + "\EWSoftware\Sandcastle Help File Builder");
-
-if($FindSHFB -eq $false) {
- echo "Sandcastle Help File Builder is not installed in its expected location.";
- $RequireSFHB = $true;
-} else {
- echo "Sandcastle Help File Builder ..Found.";
-}
-
-Function PromptForSHFBInstall
-{
- $process = read-host "Do you want to download and install SandCastle Help File Builder ? (Y) or (N)";
- if($process -eq "Y")
- {
-
- $license = Read-Host "Do you agree to reading and accepting the ms-pl license http://www.opensource.org/licenses/MS-PL ? (Y) or (N)";
-
- if($license -eq "Y")
- {
- [System.Reflection.Assembly]::LoadFrom((Join-Path ($cd) "..\..\lib\ICSharpCode\SharpZipLib\0.85\ICSharpCode.SharpZipLib.dll"));
- $zip = New-Object ICSharpCode.SharpZipLib.Zip.FastZip
- $client = new-object System.Net.WebClient;
- $SHFBUrl = "http://download.codeplex.com/Download?ProjectName=shfb&DownloadId=214182&FileTime=129456589216470000&Build=18101";
- $SHFBFileName = Join-Path $home Downloads\SHFBGuidedInstallation.zip;
- $SHFBFileNameExtract = Join-Path $home Downloads\SHFBGuidedInstallation;
- [System.Net.GlobalProxySelection]::Select = [System.Net.GlobalProxySelection]::GetEmptyWebProxy();
- trap { $error[0].Exception.ToString() }
-
- $exists = Test-Path $SHFBFileName;
- if($exists -eq $false)
- {
- echo ("Downloading SHFB to " + $SHFBFileName);
- $client.DownloadFile($SHFBUrl,$SHFBFileName);
- }
-
- $exists = Test-Path $SHFBFileNameExtract;
- if($exists -eq $false)
- {
- echo ("Extracting SHFB to " + $SHFBFileNameExtract);
- $zip.ExtractZip($SHFBFileName, $SHFBFileNameExtract, $null);
- }
-
-
- echo ("Installing SHFB...");
- $installer = Join-Path $HOME Downloads\SHFBGuidedInstallation\SandCastleInstaller.exe
-
-
- trap [Exception] {
- echo $_.Exception.Message;
- return;
- }
- & $installer | Out-Null
-
- if($LASTEXITCODE -eq 0)
- {
- echo "SHFB was installed" ;
- } else {
- echo "SHFB installation failed.";
- return;
- }
-
- echo ("Deleting SHFB Zip");
- del $SHFBFileName;
-
- echo ("Deleteing Extracted Files...");
- del $SHFBFileNameExtract;
- }
- else
- {
- echo "SandCastle Help File Builder install aborted.";
- }
- }
-}
-
-Function PromptForWinSdk7_1Install
-{
- $process = read-host "Do you want to download and install Windows Sdk 7.1 ? (Y) or (N)";
- if($process -eq "Y")
- {
- $client = new-object System.Net.WebClient;
- $WinSdk7_1Url = "http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe";
- $WinSdk7_1FileName = Join-Path $home Downloads\winsdk_web.exe;
- [System.Net.GlobalProxySelection]::Select = [System.Net.GlobalProxySelection]::GetEmptyWebProxy();
- trap { $error[0].Exception.ToString() }
-
- $exists = Test-Path $WinSdk7_1FileName;
- if($exists -eq $false)
- {
- echo ("Downloading Win Sdk 7.1 to " + $WinSdk7_1FileName);
- $client.DownloadFile($WinSdk7_1Url,$WinSdk7_1FileName);
- }
-
-
- echo ("Installing Win Sdk 7.1 ...");
- $installer = $WinSdk7_1FileName;
- trap [Exception] {
- echo $_.Exception.Message;
- return;
- }
-
- & $installer
-
- echo "Attempting to setup Win Sdk Version...";
- $verExe = "C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\WindowsSdkVer.exe";
- $verExeExists = Test-Path $verExe;
-
-
- echo "Say yes to the next next two prompts if you wish to set WindowsSdkVer to -version:v7.1 ...";
- if($verExeExists)
- {
- $p = [diagnostics.process]::Start($verExe, " -version:v7.1");
-
- trap [Exception] {
- echo ("Most likely this action was cancelled by you.: " + $_.Exception.Message);
- return;
- }
-
- $p.WaitForExit() | out-null
- if($LASTEXITCODE -eq 0)
- {
- echo "Win Sdk 7.1 was installed" ;
- } else {
- echo "Win Sdk 7.1 failed.";
- return;
- }
-
-
- } else {
- echo ($verExe + "was not found.")
- }
-
- echo ("Deleteing installer...");
- del $WinSdk7_1FileName;
- $RequireWin7_1 = $false;
-
- }
- else
- {
- echo "Win Sdk 7.1 install aborted.";
- }
-
-}
-
-Function PromptForFxCop10Install()
-{
- $process = read-host "Do you want to install FxCop 10.0 (WinSdk 7.1 is required)? (Y) or (N)";
- if($process -eq "Y")
- {
- $fxCopExe = "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\FXCop\FxCopSetup.exe";
- $fxCopExeExists = Test-Path $fxCopExe;
-
- if($fxCopExeExists -eq $true)
- {
- trap [Exception] {
- echo $_.Exception.Message;
- return;
- }
- & $fxCopExe;
-
- } else {
- echo ("The installer for fxcop 10 was not found at its expected location: " + $fxCopExe);
- return;
- }
- }
-}
-
-Function PromptForNCoverInstall()
-{
- $process = read-host "NCover is not free, you are responsible for obtaining your own license. Do you want to install NCover ? (Y) or (N)";
-
-
- if($process -eq "Y")
- {
- $client = new-object System.Net.WebClient;
- $download = "http://downloads.ncover.com/NCover-x64-3.4.18.6937.msi";
- $downloadFileName = Join-Path ($home + "Downloads\NCover-x64-3.4.18.6937.msi");
- [System.Net.GlobalProxySelection]::Select = [System.Net.GlobalProxySelection]::GetEmptyWebProxy();
- trap { $error[0].Exception.ToString() }
-
-
- $exists = Test-Path $downloadFileName;
- if($exists -eq $false)
- {
- echo ("Downloading NCover to " + $downloadFileName);
- $client.DownloadFile($download,$downloadFileName);
- }
-
- echo "Installing NCover...";
- trap [Exception] {
- echo $_.Exception.Message;
- return;
- }
- & $fxCopExe;
-
- echo "Deleting installer....";
- del $downloadFileName;
- }
-}
-
-
-if($RequireSFHB -eq $true)
-{
- PromptForSHFBInstall;
-}
-
-if($RequireWin7_1 -eq $true)
-{
- PromptForWinSdk7_1Install
-}
-
-if($RequireWin7_1 -eq $false -and $RequireFxCop10 -eq $true)
-{
- PromptForFxCop10Install
-}
-
-if($RequireNCover -eq $true)
-{
- PromptForNCoverInstall
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/build/scripts/version.targets b/external/Lucene.Net/build/scripts/version.targets
deleted file mode 100644
index 2f8ba49427..0000000000
--- a/external/Lucene.Net/build/scripts/version.targets
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- 3.0.3
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.All.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.All.sln
deleted file mode 100644
index 97f5cab645..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.All.sln
+++ /dev/null
@@ -1,186 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers", "..\..\..\src\contrib\Analyzers\Contrib.Analyzers.csproj", "{4286E961-9143-4821-B46D-3D39D3736386}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter", "..\..\..\src\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.csproj", "{9D2E3153-076F-49C5-B83D-FB2573536B5F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter", "..\..\..\src\contrib\Highlighter\Contrib.Highlighter.csproj", "{901D5415-383C-4AA6-A256-879558841BEA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries", "..\..\..\src\contrib\Queries\Contrib.Queries.csproj", "{481CF6E3-52AF-4621-9DEB-022122079AF6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball", "..\..\..\src\contrib\Snowball\Contrib.Snowball.csproj", "{8F9D7A92-F122-413E-9D8D-027E4ECD327C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial", "..\..\..\src\contrib\Spatial\Contrib.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker", "..\..\..\src\contrib\SpellChecker\Contrib.SpellChecker.csproj", "{FF45EE91-9CA3-443D-8231-75E9FA1AF40E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.SynExpand", "..\..\..\src\contrib\WordNet\SynExpand\Contrib.WordNet.SynExpand.csproj", "{1407C9BA-337C-4C6C-B065-68328D3871B3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.SynLookup", "..\..\..\src\contrib\WordNet\SynLookup\Contrib.WordNet.SynLookup.csproj", "{2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.Syns2Index", "..\..\..\src\contrib\WordNet\Syns2Index\Contrib.WordNet.Syns2Index.csproj", "{7563D4D9-AE91-42BA-A270-1D264660F6DF}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch", "..\..\..\src\contrib\SimpleFacetedSearch\SimpleFacetedSearch.csproj", "{66772190-FB3F-48F5-8E05-0B302BACEA73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release|Any CPU.Build.0 = Release|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release|Any CPU.Build.0 = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.Build.0 = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.Build.0 = Release|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release|Any CPU.Build.0 = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.Build.0 = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.Analyzers.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.Analyzers.sln
deleted file mode 100644
index e14a31c2b0..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.Analyzers.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers", "..\..\..\src\contrib\Analyzers\Contrib.Analyzers.csproj", "{4286E961-9143-4821-B46D-3D39D3736386}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.Core.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.Core.sln
deleted file mode 100644
index 4ee3a096ba..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.Core.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.FastVectorHighlighter.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.FastVectorHighlighter.sln
deleted file mode 100644
index 43a615b5d0..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.FastVectorHighlighter.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter", "..\..\..\src\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.csproj", "{9D2E3153-076F-49C5-B83D-FB2573536B5F}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.Highlighter.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.Highlighter.sln
deleted file mode 100644
index 0d65fdbcbd..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.Highlighter.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter", "..\..\..\src\contrib\Highlighter\Contrib.Highlighter.csproj", "{901D5415-383C-4AA6-A256-879558841BEA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.Memory.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.Memory.sln
deleted file mode 100644
index 6c6dc8c663..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.Memory.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.Queries.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.Queries.sln
deleted file mode 100644
index f7ecdced01..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.Queries.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries", "..\..\..\src\contrib\Queries\Contrib.Queries.csproj", "{481CF6E3-52AF-4621-9DEB-022122079AF6}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.Regex.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.Regex.sln
deleted file mode 100644
index fd568aca29..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.Regex.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.SimpleFacetedSearch.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.SimpleFacetedSearch.sln
deleted file mode 100644
index 0cb2617157..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.SimpleFacetedSearch.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch", "..\..\..\src\contrib\SimpleFacetedSearch\SimpleFacetedSearch.csproj", "{66772190-FB3F-48F5-8E05-0B302BACEA73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.Snowball.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.Snowball.sln
deleted file mode 100644
index 5cc016ffbf..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.Snowball.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball", "..\..\..\src\contrib\Snowball\Contrib.Snowball.csproj", "{8F9D7A92-F122-413E-9D8D-027E4ECD327C}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.Spatial.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.Spatial.sln
deleted file mode 100644
index 31d28ebb65..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.Spatial.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial", "..\..\..\src\contrib\Spatial\Contrib.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS", "..\..\..\src\contrib\Spatial\Contrib.Spatial.NTS.csproj", "{02D030D0-C7B5-4561-8BDD-41408B2E2F41}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug35|Any CPU = Debug35|Any CPU
- Release|Any CPU = Release|Any CPU
- Release35|Any CPU = Release35|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.Build.0 = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.Build.0 = Release35|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.SpellChecker.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.SpellChecker.sln
deleted file mode 100644
index 48fe86f1da..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.SpellChecker.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker", "..\..\..\src\contrib\SpellChecker\Contrib.SpellChecker.csproj", "{FF45EE91-9CA3-443D-8231-75E9FA1AF40E}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/contrib/Contrib.WordNet.sln b/external/Lucene.Net/build/vs2010/contrib/Contrib.WordNet.sln
deleted file mode 100644
index aa6bdd4b1e..0000000000
--- a/external/Lucene.Net/build/vs2010/contrib/Contrib.WordNet.sln
+++ /dev/null
@@ -1,76 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.SynExpand", "..\..\..\src\contrib\WordNet\SynExpand\Contrib.WordNet.SynExpand.csproj", "{1407C9BA-337C-4C6C-B065-68328D3871B3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.SynLookup", "..\..\..\src\contrib\WordNet\SynLookup\Contrib.WordNet.SynLookup.csproj", "{2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.Syns2Index", "..\..\..\src\contrib\WordNet\Syns2Index\Contrib.WordNet.Syns2Index.csproj", "{7563D4D9-AE91-42BA-A270-1D264660F6DF}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release|Any CPU.Build.0 = Release|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/core/Lucene.Net.Core.sln b/external/Lucene.Net/build/vs2010/core/Lucene.Net.Core.sln
deleted file mode 100644
index 638c6add69..0000000000
--- a/external/Lucene.Net/build/vs2010/core/Lucene.Net.Core.sln
+++ /dev/null
@@ -1,46 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/demo/Lucene.Net.Demo.sln b/external/Lucene.Net/build/vs2010/demo/Lucene.Net.Demo.sln
deleted file mode 100644
index f8f0e92331..0000000000
--- a/external/Lucene.Net/build/vs2010/demo/Lucene.Net.Demo.sln
+++ /dev/null
@@ -1,96 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeleteFiles", "..\..\..\src\demo\DeleteFiles\DeleteFiles.csproj", "{BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IndexFiles", "..\..\..\src\demo\IndexFiles\IndexFiles.csproj", "{3E561192-4292-4998-BC67-8C1B82A56108}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IndexHtml", "..\..\..\src\demo\IndexHtml\IndexHtml.csproj", "{2B86751C-0D3A-486E-A176-E995C63EB653}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchFiles", "..\..\..\src\demo\SearchFiles\SearchFiles.csproj", "{5CF56C9F-F8DF-471E-B73A-C736464948C0}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Release|Any CPU.Build.0 = Release|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Release|Any CPU.Build.0 = Release|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.All.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.All.Test.sln
deleted file mode 100644
index f9ce4a2559..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.All.Test.sln
+++ /dev/null
@@ -1,306 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers", "..\..\..\src\contrib\Analyzers\Contrib.Analyzers.csproj", "{4286E961-9143-4821-B46D-3D39D3736386}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter", "..\..\..\src\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.csproj", "{9D2E3153-076F-49C5-B83D-FB2573536B5F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter", "..\..\..\src\contrib\Highlighter\Contrib.Highlighter.csproj", "{901D5415-383C-4AA6-A256-879558841BEA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries", "..\..\..\src\contrib\Queries\Contrib.Queries.csproj", "{481CF6E3-52AF-4621-9DEB-022122079AF6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball", "..\..\..\src\contrib\Snowball\Contrib.Snowball.csproj", "{8F9D7A92-F122-413E-9D8D-027E4ECD327C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial", "..\..\..\src\contrib\Spatial\Contrib.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker", "..\..\..\src\contrib\SpellChecker\Contrib.SpellChecker.csproj", "{FF45EE91-9CA3-443D-8231-75E9FA1AF40E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers.Test", "..\..\..\test\contrib\Analyzers\Contrib.Analyzers.Test.csproj", "{67D27628-F1D5-4499-9818-B669731925C8}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core.Test", "..\..\..\test\contrib\Core\Contrib.Core.Test.csproj", "{A065904B-1EBA-48DA-8D3D-D92A85BA41FC}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter.Test", "..\..\..\test\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.Test.csproj", "{33ED01FD-A87C-4208-BA49-2586EFE32974}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter.Test", "..\..\..\test\contrib\Highlighter\Contrib.Highlighter.Test.csproj", "{31E10ECB-1385-4C06-970B-2C030FBD4893}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries.Test", "..\..\..\test\contrib\Queries\Contrib.Queries.Test.csproj", "{8685A826-9B7A-42C8-88F3-EEE6B41D6D81}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball.Test", "..\..\..\test\contrib\Snowball\Contrib.Snowball.Test.csproj", "{992216FA-372D-4412-8D7C-E252AE042F48}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.Tests", "..\..\..\test\contrib\Spatial\Contrib.Spatial.Tests.csproj", "{19FC2A6B-4DE9-403F-8CEF-10850F57B96E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker.Test", "..\..\..\test\contrib\SpellChecker\Contrib.SpellChecker.Test.csproj", "{4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex.Test", "..\..\..\test\contrib\Regex\Contrib.Regex.Test.csproj", "{F1875552-0E59-46AA-976E-6183733FD2AB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch", "..\..\..\src\contrib\SimpleFacetedSearch\SimpleFacetedSearch.csproj", "{66772190-FB3F-48F5-8E05-0B302BACEA73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch.Test", "..\..\..\test\contrib\SimpleFacetedSearch\SimpleFacetedSearch.Test.csproj", "{D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory.Test", "..\..\..\test\contrib\Memory\Contrib.Memory.Test.csproj", "{66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS", "..\..\..\src\contrib\Spatial\Contrib.Spatial.NTS.csproj", "{02D030D0-C7B5-4561-8BDD-41408B2E2F41}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS.Tests", "..\..\..\test\contrib\Spatial\Contrib.Spatial.NTS.Tests.csproj", "{DEC65744-D581-4007-87B2-BB0726EE0395}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug35|Any CPU = Debug35|Any CPU
- Release|Any CPU = Release|Any CPU
- Release35|Any CPU = Release35|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.Build.0 = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.Build.0 = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.Build.0 = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release|Any CPU.Build.0 = Release|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release|Any CPU.Build.0 = Release|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release|Any CPU.Build.0 = Release|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release|Any CPU.Build.0 = Release|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release|Any CPU.Build.0 = Release|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release|Any CPU.Build.0 = Release|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release|Any CPU.Build.0 = Release|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Any CPU.Build.0 = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release|Any CPU.Build.0 = Release|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.Build.0 = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Release|Any CPU.Build.0 = Release|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Release35|Any CPU.Build.0 = Release35|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.Analyzers.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.Analyzers.Test.sln
deleted file mode 100644
index 6a9100ad75..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.Analyzers.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers", "..\..\..\src\contrib\Analyzers\Contrib.Analyzers.csproj", "{4286E961-9143-4821-B46D-3D39D3736386}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers.Test", "..\..\..\test\contrib\Analyzers\Contrib.Analyzers.Test.csproj", "{67D27628-F1D5-4499-9818-B669731925C8}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.Core.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.Core.Test.sln
deleted file mode 100644
index 97e682ec1c..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.Core.Test.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core.Test", "..\..\..\test\contrib\Core\Contrib.Core.Test.csproj", "{A065904B-1EBA-48DA-8D3D-D92A85BA41FC}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.FastVectorHighlighter.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.FastVectorHighlighter.Test.sln
deleted file mode 100644
index 672811a9af..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.FastVectorHighlighter.Test.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter", "..\..\..\src\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.csproj", "{9D2E3153-076F-49C5-B83D-FB2573536B5F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter.Test", "..\..\..\test\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.Test.csproj", "{33ED01FD-A87C-4208-BA49-2586EFE32974}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.Highlighter.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.Highlighter.Test.sln
deleted file mode 100644
index 9d600af616..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.Highlighter.Test.sln
+++ /dev/null
@@ -1,106 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter", "..\..\..\src\contrib\Highlighter\Contrib.Highlighter.csproj", "{901D5415-383C-4AA6-A256-879558841BEA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter.Test", "..\..\..\test\contrib\Highlighter\Contrib.Highlighter.Test.csproj", "{31E10ECB-1385-4C06-970B-2C030FBD4893}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.Memory.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.Memory.Test.sln
deleted file mode 100644
index f41127edd1..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.Memory.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory.Test", "..\..\..\test\contrib\Memory\Contrib.Memory.Test.csproj", "{66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.Queries.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.Queries.Test.sln
deleted file mode 100644
index 19f835b0a6..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.Queries.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries", "..\..\..\src\contrib\Queries\Contrib.Queries.csproj", "{481CF6E3-52AF-4621-9DEB-022122079AF6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries.Test", "..\..\..\test\contrib\Queries\Contrib.Queries.Test.csproj", "{8685A826-9B7A-42C8-88F3-EEE6B41D6D81}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.Regex.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.Regex.Test.sln
deleted file mode 100644
index 6ec91f269b..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.Regex.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex.Test", "..\..\..\test\contrib\Regex\Contrib.Regex.Test.csproj", "{F1875552-0E59-46AA-976E-6183733FD2AB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.SimpleFacetedSearch.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.SimpleFacetedSearch.Test.sln
deleted file mode 100644
index 9cceee7f4a..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.SimpleFacetedSearch.Test.sln
+++ /dev/null
@@ -1,110 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch.Test", "..\..\..\test\contrib\SimpleFacetedSearch\SimpleFacetedSearch.Test.csproj", "{D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch", "..\..\..\src\contrib\SimpleFacetedSearch\SimpleFacetedSearch.csproj", "{66772190-FB3F-48F5-8E05-0B302BACEA73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug35|Mixed Platforms = Debug35|Mixed Platforms
- Debug35|x86 = Debug35|x86
- Debug|Any CPU = Debug|Any CPU
- Debug|Mixed Platforms = Debug|Mixed Platforms
- Debug|x86 = Debug|x86
- Release35|Any CPU = Release35|Any CPU
- Release35|Mixed Platforms = Release35|Mixed Platforms
- Release35|x86 = Release35|x86
- Release|Any CPU = Release|Any CPU
- Release|Mixed Platforms = Release|Mixed Platforms
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Mixed Platforms.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Mixed Platforms.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|x86.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Mixed Platforms.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Mixed Platforms.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|x86.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|x86.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Mixed Platforms.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Mixed Platforms.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|x86.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|x86.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Mixed Platforms.ActiveCfg = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Mixed Platforms.Build.0 = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|x86.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|x86.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Mixed Platforms.ActiveCfg = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Mixed Platforms.Build.0 = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|x86.ActiveCfg = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Any CPU.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Any CPU.Build.0 = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Mixed Platforms.ActiveCfg = Release35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Mixed Platforms.Build.0 = Release35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|x86.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Any CPU.Build.0 = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|x86.ActiveCfg = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.Snowball.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.Snowball.Test.sln
deleted file mode 100644
index 38c588eaba..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.Snowball.Test.sln
+++ /dev/null
@@ -1,85 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball", "..\..\..\src\contrib\Snowball\Contrib.Snowball.csproj", "{8F9D7A92-F122-413E-9D8D-027E4ECD327C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball.Test", "..\..\..\test\contrib\Snowball\Contrib.Snowball.Test.csproj", "{992216FA-372D-4412-8D7C-E252AE042F48}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.Build.0 = Release|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.Spatial.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.Spatial.Test.sln
deleted file mode 100644
index 5d641cd994..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.Spatial.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial", "..\..\..\src\contrib\Spatial\Contrib.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.Tests", "..\..\..\test\contrib\Spatial\Contrib.Spatial.Tests.csproj", "{19FC2A6B-4DE9-403F-8CEF-10850F57B96E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS", "..\..\..\src\contrib\Spatial\Contrib.Spatial.NTS.csproj", "{02D030D0-C7B5-4561-8BDD-41408B2E2F41}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS.Tests", "..\..\..\test\contrib\Spatial\Contrib.Spatial.NTS.Tests.csproj", "{DEC65744-D581-4007-87B2-BB0726EE0395}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug35|Any CPU = Debug35|Any CPU
- Release|Any CPU = Release|Any CPU
- Release35|Any CPU = Release35|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release|Any CPU.Build.0 = Release|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.Build.0 = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Release|Any CPU.Build.0 = Release|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {DEC65744-D581-4007-87B2-BB0726EE0395}.Release35|Any CPU.Build.0 = Release35|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Contrib.SpellChecker.Test.sln b/external/Lucene.Net/build/vs2010/test/Contrib.SpellChecker.Test.sln
deleted file mode 100644
index f93e73cac9..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Contrib.SpellChecker.Test.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker", "..\..\..\src\contrib\SpellChecker\Contrib.SpellChecker.csproj", "{FF45EE91-9CA3-443D-8231-75E9FA1AF40E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker.Test", "..\..\..\test\contrib\SpellChecker\Contrib.SpellChecker.Test.csproj", "{4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2010/test/Lucene.Net.Test.sln b/external/Lucene.Net/build/vs2010/test/Lucene.Net.Test.sln
deleted file mode 100644
index 317f82543d..0000000000
--- a/external/Lucene.Net/build/vs2010/test/Lucene.Net.Test.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.All.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.All.sln
deleted file mode 100644
index 9a707ebcdd..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.All.sln
+++ /dev/null
@@ -1,196 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers", "..\..\..\src\contrib\Analyzers\Contrib.Analyzers.csproj", "{4286E961-9143-4821-B46D-3D39D3736386}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter", "..\..\..\src\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.csproj", "{9D2E3153-076F-49C5-B83D-FB2573536B5F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter", "..\..\..\src\contrib\Highlighter\Contrib.Highlighter.csproj", "{901D5415-383C-4AA6-A256-879558841BEA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries", "..\..\..\src\contrib\Queries\Contrib.Queries.csproj", "{481CF6E3-52AF-4621-9DEB-022122079AF6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball", "..\..\..\src\contrib\Snowball\Contrib.Snowball.csproj", "{8F9D7A92-F122-413E-9D8D-027E4ECD327C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial", "..\..\..\src\contrib\Spatial\Contrib.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker", "..\..\..\src\contrib\SpellChecker\Contrib.SpellChecker.csproj", "{FF45EE91-9CA3-443D-8231-75E9FA1AF40E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.SynExpand", "..\..\..\src\contrib\WordNet\SynExpand\Contrib.WordNet.SynExpand.csproj", "{1407C9BA-337C-4C6C-B065-68328D3871B3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.SynLookup", "..\..\..\src\contrib\WordNet\SynLookup\Contrib.WordNet.SynLookup.csproj", "{2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.Syns2Index", "..\..\..\src\contrib\WordNet\Syns2Index\Contrib.WordNet.Syns2Index.csproj", "{7563D4D9-AE91-42BA-A270-1D264660F6DF}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch", "..\..\..\src\contrib\SimpleFacetedSearch\SimpleFacetedSearch.csproj", "{66772190-FB3F-48F5-8E05-0B302BACEA73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS", "..\..\..\src\contrib\Spatial\Contrib.Spatial.NTS.csproj", "{02D030D0-C7B5-4561-8BDD-41408B2E2F41}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug35|Any CPU = Debug35|Any CPU
- Release|Any CPU = Release|Any CPU
- Release35|Any CPU = Release35|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.Build.0 = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.Build.0 = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.Build.0 = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release|Any CPU.Build.0 = Release|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release|Any CPU.Build.0 = Release|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release|Any CPU.Build.0 = Release|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.Build.0 = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.Build.0 = Release35|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.Analyzers.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.Analyzers.sln
deleted file mode 100644
index e44e692372..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.Analyzers.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers", "..\..\..\src\contrib\Analyzers\Contrib.Analyzers.csproj", "{4286E961-9143-4821-B46D-3D39D3736386}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.Core.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.Core.sln
deleted file mode 100644
index 15e09d6c2a..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.Core.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.FastVectorHighlighter.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.FastVectorHighlighter.sln
deleted file mode 100644
index 21ad549b0b..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.FastVectorHighlighter.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter", "..\..\..\src\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.csproj", "{9D2E3153-076F-49C5-B83D-FB2573536B5F}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.Highlighter.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.Highlighter.sln
deleted file mode 100644
index b20a7cb5b5..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.Highlighter.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter", "..\..\..\src\contrib\Highlighter\Contrib.Highlighter.csproj", "{901D5415-383C-4AA6-A256-879558841BEA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.Memory.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.Memory.sln
deleted file mode 100644
index 5a8ae6f1db..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.Memory.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.Queries.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.Queries.sln
deleted file mode 100644
index dc468f7496..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.Queries.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries", "..\..\..\src\contrib\Queries\Contrib.Queries.csproj", "{481CF6E3-52AF-4621-9DEB-022122079AF6}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.Regex.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.Regex.sln
deleted file mode 100644
index e997043279..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.Regex.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.SimpleFacetedSearch.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.SimpleFacetedSearch.sln
deleted file mode 100644
index 204498650b..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.SimpleFacetedSearch.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch", "..\..\..\src\contrib\SimpleFacetedSearch\SimpleFacetedSearch.csproj", "{66772190-FB3F-48F5-8E05-0B302BACEA73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.Snowball.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.Snowball.sln
deleted file mode 100644
index 2a908c47e8..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.Snowball.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball", "..\..\..\src\contrib\Snowball\Contrib.Snowball.csproj", "{8F9D7A92-F122-413E-9D8D-027E4ECD327C}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.Spatial.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.Spatial.sln
deleted file mode 100644
index 0c50e46fd1..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.Spatial.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial", "..\..\..\src\contrib\Spatial\Contrib.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS", "..\..\..\src\contrib\Spatial\Contrib.Spatial.NTS.csproj", "{02D030D0-C7B5-4561-8BDD-41408B2E2F41}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug35|Any CPU = Debug35|Any CPU
- Release|Any CPU = Release|Any CPU
- Release35|Any CPU = Release35|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.Build.0 = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.Build.0 = Release35|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.SpellChecker.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.SpellChecker.sln
deleted file mode 100644
index 0117834ded..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.SpellChecker.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker", "..\..\..\src\contrib\SpellChecker\Contrib.SpellChecker.csproj", "{FF45EE91-9CA3-443D-8231-75E9FA1AF40E}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/contrib/Contrib.WordNet.sln b/external/Lucene.Net/build/vs2012/contrib/Contrib.WordNet.sln
deleted file mode 100644
index 18a7a6bbc5..0000000000
--- a/external/Lucene.Net/build/vs2012/contrib/Contrib.WordNet.sln
+++ /dev/null
@@ -1,76 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.SynExpand", "..\..\..\src\contrib\WordNet\SynExpand\Contrib.WordNet.SynExpand.csproj", "{1407C9BA-337C-4C6C-B065-68328D3871B3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.SynLookup", "..\..\..\src\contrib\WordNet\SynLookup\Contrib.WordNet.SynLookup.csproj", "{2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.WordNet.Syns2Index", "..\..\..\src\contrib\WordNet\Syns2Index\Contrib.WordNet.Syns2Index.csproj", "{7563D4D9-AE91-42BA-A270-1D264660F6DF}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1407C9BA-337C-4C6C-B065-68328D3871B3}.Release|Any CPU.Build.0 = Release|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2CA12E3F-76E1-4FA6-9E87-37079A7B7C69}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7563D4D9-AE91-42BA-A270-1D264660F6DF}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/core/Lucene.Net.Core.sln b/external/Lucene.Net/build/vs2012/core/Lucene.Net.Core.sln
deleted file mode 100644
index 53a0b3fe5f..0000000000
--- a/external/Lucene.Net/build/vs2012/core/Lucene.Net.Core.sln
+++ /dev/null
@@ -1,46 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/demo/Lucene.Net.Demo.sln b/external/Lucene.Net/build/vs2012/demo/Lucene.Net.Demo.sln
deleted file mode 100644
index 2d5da0bf3a..0000000000
--- a/external/Lucene.Net/build/vs2012/demo/Lucene.Net.Demo.sln
+++ /dev/null
@@ -1,96 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeleteFiles", "..\..\..\src\demo\DeleteFiles\DeleteFiles.csproj", "{BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IndexFiles", "..\..\..\src\demo\IndexFiles\IndexFiles.csproj", "{3E561192-4292-4998-BC67-8C1B82A56108}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IndexHtml", "..\..\..\src\demo\IndexHtml\IndexHtml.csproj", "{2B86751C-0D3A-486E-A176-E995C63EB653}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchFiles", "..\..\..\src\demo\SearchFiles\SearchFiles.csproj", "{5CF56C9F-F8DF-471E-B73A-C736464948C0}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2B86751C-0D3A-486E-A176-E995C63EB653}.Release|Any CPU.Build.0 = Release|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3E561192-4292-4998-BC67-8C1B82A56108}.Release|Any CPU.Build.0 = Release|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5CF56C9F-F8DF-471E-B73A-C736464948C0}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BA3A94CC-6D1E-4AA8-9C95-8C6FD896810E}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.All.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.All.Test.sln
deleted file mode 100644
index d7e30b6664..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.All.Test.sln
+++ /dev/null
@@ -1,296 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers", "..\..\..\src\contrib\Analyzers\Contrib.Analyzers.csproj", "{4286E961-9143-4821-B46D-3D39D3736386}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter", "..\..\..\src\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.csproj", "{9D2E3153-076F-49C5-B83D-FB2573536B5F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter", "..\..\..\src\contrib\Highlighter\Contrib.Highlighter.csproj", "{901D5415-383C-4AA6-A256-879558841BEA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries", "..\..\..\src\contrib\Queries\Contrib.Queries.csproj", "{481CF6E3-52AF-4621-9DEB-022122079AF6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball", "..\..\..\src\contrib\Snowball\Contrib.Snowball.csproj", "{8F9D7A92-F122-413E-9D8D-027E4ECD327C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial", "..\..\..\src\contrib\Spatial\Contrib.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker", "..\..\..\src\contrib\SpellChecker\Contrib.SpellChecker.csproj", "{FF45EE91-9CA3-443D-8231-75E9FA1AF40E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers.Test", "..\..\..\test\contrib\Analyzers\Contrib.Analyzers.Test.csproj", "{67D27628-F1D5-4499-9818-B669731925C8}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core.Test", "..\..\..\test\contrib\Core\Contrib.Core.Test.csproj", "{A065904B-1EBA-48DA-8D3D-D92A85BA41FC}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter.Test", "..\..\..\test\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.Test.csproj", "{33ED01FD-A87C-4208-BA49-2586EFE32974}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter.Test", "..\..\..\test\contrib\Highlighter\Contrib.Highlighter.Test.csproj", "{31E10ECB-1385-4C06-970B-2C030FBD4893}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries.Test", "..\..\..\test\contrib\Queries\Contrib.Queries.Test.csproj", "{8685A826-9B7A-42C8-88F3-EEE6B41D6D81}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball.Test", "..\..\..\test\contrib\Snowball\Contrib.Snowball.Test.csproj", "{992216FA-372D-4412-8D7C-E252AE042F48}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.Tests", "..\..\..\test\contrib\Spatial\Contrib.Spatial.Tests.csproj", "{19FC2A6B-4DE9-403F-8CEF-10850F57B96E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker.Test", "..\..\..\test\contrib\SpellChecker\Contrib.SpellChecker.Test.csproj", "{4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex.Test", "..\..\..\test\contrib\Regex\Contrib.Regex.Test.csproj", "{F1875552-0E59-46AA-976E-6183733FD2AB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch", "..\..\..\src\contrib\SimpleFacetedSearch\SimpleFacetedSearch.csproj", "{66772190-FB3F-48F5-8E05-0B302BACEA73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch.Test", "..\..\..\test\contrib\SimpleFacetedSearch\SimpleFacetedSearch.Test.csproj", "{D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory.Test", "..\..\..\test\contrib\Memory\Contrib.Memory.Test.csproj", "{66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS", "..\..\..\src\contrib\Spatial\Contrib.Spatial.NTS.csproj", "{02D030D0-C7B5-4561-8BDD-41408B2E2F41}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug35|Any CPU = Debug35|Any CPU
- Release|Any CPU = Release|Any CPU
- Release35|Any CPU = Release35|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.Build.0 = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.Build.0 = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.Build.0 = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release|Any CPU.Build.0 = Release|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release|Any CPU.Build.0 = Release|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release|Any CPU.Build.0 = Release|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release|Any CPU.Build.0 = Release|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release|Any CPU.Build.0 = Release|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release|Any CPU.Build.0 = Release|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release|Any CPU.Build.0 = Release|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Any CPU.Build.0 = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release|Any CPU.Build.0 = Release|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.Build.0 = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.Build.0 = Release35|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.Analyzers.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.Analyzers.Test.sln
deleted file mode 100644
index 63647e9cf7..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.Analyzers.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers", "..\..\..\src\contrib\Analyzers\Contrib.Analyzers.csproj", "{4286E961-9143-4821-B46D-3D39D3736386}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Analyzers.Test", "..\..\..\test\contrib\Analyzers\Contrib.Analyzers.Test.csproj", "{67D27628-F1D5-4499-9818-B669731925C8}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4286E961-9143-4821-B46D-3D39D3736386}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {67D27628-F1D5-4499-9818-B669731925C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.Core.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.Core.Test.sln
deleted file mode 100644
index dde4c9fa6e..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.Core.Test.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core.Test", "..\..\..\test\contrib\Core\Contrib.Core.Test.csproj", "{A065904B-1EBA-48DA-8D3D-D92A85BA41FC}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A065904B-1EBA-48DA-8D3D-D92A85BA41FC}.Release|Any CPU.Build.0 = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FEF899EB-610C-4D3C-A556-A01F56F4AFE0}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.FastVectorHighlighter.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.FastVectorHighlighter.Test.sln
deleted file mode 100644
index 641128f428..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.FastVectorHighlighter.Test.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter", "..\..\..\src\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.csproj", "{9D2E3153-076F-49C5-B83D-FB2573536B5F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.FastVectorHighlighter.Test", "..\..\..\test\contrib\FastVectorHighlighter\Contrib.FastVectorHighlighter.Test.csproj", "{33ED01FD-A87C-4208-BA49-2586EFE32974}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {33ED01FD-A87C-4208-BA49-2586EFE32974}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D2E3153-076F-49C5-B83D-FB2573536B5F}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.Highlighter.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.Highlighter.Test.sln
deleted file mode 100644
index a1678df2ad..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.Highlighter.Test.sln
+++ /dev/null
@@ -1,106 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter", "..\..\..\src\contrib\Highlighter\Contrib.Highlighter.csproj", "{901D5415-383C-4AA6-A256-879558841BEA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Highlighter.Test", "..\..\..\test\contrib\Highlighter\Contrib.Highlighter.Test.csproj", "{31E10ECB-1385-4C06-970B-2C030FBD4893}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {31E10ECB-1385-4C06-970B-2C030FBD4893}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.Memory.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.Memory.Test.sln
deleted file mode 100644
index 2e64ca363a..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.Memory.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory", "..\..\..\src\contrib\Memory\Contrib.Memory.csproj", "{112B9A7C-29CC-4539-8F5A-45669C07CD4D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Memory.Test", "..\..\..\test\contrib\Memory\Contrib.Memory.Test.csproj", "{66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {112B9A7C-29CC-4539-8F5A-45669C07CD4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66C13054-FF41-4C1D-BD0D-8DA009D1DFFD}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.Queries.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.Queries.Test.sln
deleted file mode 100644
index 19ee67340e..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.Queries.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries", "..\..\..\src\contrib\Queries\Contrib.Queries.csproj", "{481CF6E3-52AF-4621-9DEB-022122079AF6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Queries.Test", "..\..\..\test\contrib\Queries\Contrib.Queries.Test.csproj", "{8685A826-9B7A-42C8-88F3-EEE6B41D6D81}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {481CF6E3-52AF-4621-9DEB-022122079AF6}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8685A826-9B7A-42C8-88F3-EEE6B41D6D81}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.Regex.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.Regex.Test.sln
deleted file mode 100644
index b6b6739d86..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.Regex.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex.Test", "..\..\..\test\contrib\Regex\Contrib.Regex.Test.csproj", "{F1875552-0E59-46AA-976E-6183733FD2AB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.SimpleFacetedSearch.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.SimpleFacetedSearch.Test.sln
deleted file mode 100644
index cfdbb9f72e..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.SimpleFacetedSearch.Test.sln
+++ /dev/null
@@ -1,110 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch.Test", "..\..\..\test\contrib\SimpleFacetedSearch\SimpleFacetedSearch.Test.csproj", "{D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleFacetedSearch", "..\..\..\src\contrib\SimpleFacetedSearch\SimpleFacetedSearch.csproj", "{66772190-FB3F-48F5-8E05-0B302BACEA73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug35|Mixed Platforms = Debug35|Mixed Platforms
- Debug35|x86 = Debug35|x86
- Debug|Any CPU = Debug|Any CPU
- Debug|Mixed Platforms = Debug|Mixed Platforms
- Debug|x86 = Debug|x86
- Release35|Any CPU = Release35|Any CPU
- Release35|Mixed Platforms = Release35|Mixed Platforms
- Release35|x86 = Release35|x86
- Release|Any CPU = Release|Any CPU
- Release|Mixed Platforms = Release|Mixed Platforms
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Mixed Platforms.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Mixed Platforms.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|x86.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Mixed Platforms.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Mixed Platforms.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|x86.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|x86.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Mixed Platforms.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|Mixed Platforms.Build.0 = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug35|x86.ActiveCfg = Debug35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Debug|x86.ActiveCfg = Debug|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Mixed Platforms.ActiveCfg = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|Mixed Platforms.Build.0 = Release35|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release35|x86.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Any CPU.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {66772190-FB3F-48F5-8E05-0B302BACEA73}.Release|x86.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Mixed Platforms.ActiveCfg = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|Mixed Platforms.Build.0 = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug35|x86.ActiveCfg = Debug35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Any CPU.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Any CPU.Build.0 = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Mixed Platforms.ActiveCfg = Release35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|Mixed Platforms.Build.0 = Release35|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release35|x86.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Any CPU.Build.0 = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {D8CC9461-64E0-416E-BA6E-1DF6FA66CBF5}.Release|x86.ActiveCfg = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.Snowball.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.Snowball.Test.sln
deleted file mode 100644
index 03051a20ea..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.Snowball.Test.sln
+++ /dev/null
@@ -1,86 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball", "..\..\..\src\contrib\Snowball\Contrib.Snowball.csproj", "{8F9D7A92-F122-413E-9D8D-027E4ECD327C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Snowball.Test", "..\..\..\test\contrib\Snowball\Contrib.Snowball.Test.csproj", "{992216FA-372D-4412-8D7C-E252AE042F48}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8F9D7A92-F122-413E-9D8D-027E4ECD327C}.Release|Any CPU.Build.0 = Release|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {992216FA-372D-4412-8D7C-E252AE042F48}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.Spatial.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.Spatial.Test.sln
deleted file mode 100644
index 092ed29ee6..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.Spatial.Test.sln
+++ /dev/null
@@ -1,76 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial", "..\..\..\src\contrib\Spatial\Contrib.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.Tests", "..\..\..\test\contrib\Spatial\Contrib.Spatial.Tests.csproj", "{19FC2A6B-4DE9-403F-8CEF-10850F57B96E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Spatial.NTS", "..\..\..\src\contrib\Spatial\Contrib.Spatial.NTS.csproj", "{02D030D0-C7B5-4561-8BDD-41408B2E2F41}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {02D030D0-C7B5-4561-8BDD-41408B2E2F41}.Release|Any CPU.Build.0 = Release|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {19FC2A6B-4DE9-403F-8CEF-10850F57B96E}.Release|Any CPU.Build.0 = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Contrib.SpellChecker.Test.sln b/external/Lucene.Net/build/vs2012/test/Contrib.SpellChecker.Test.sln
deleted file mode 100644
index 058ded92ab..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Contrib.SpellChecker.Test.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker", "..\..\..\src\contrib\SpellChecker\Contrib.SpellChecker.csproj", "{FF45EE91-9CA3-443D-8231-75E9FA1AF40E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.SpellChecker.Test", "..\..\..\test\contrib\SpellChecker\Contrib.SpellChecker.Test.csproj", "{4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4DCB81AA-ECC1-4B3D-A0C9-28E54F5B125C}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF45EE91-9CA3-443D-8231-75E9FA1AF40E}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/build/vs2012/test/Lucene.Net.Test.sln b/external/Lucene.Net/build/vs2012/test/Lucene.Net.Test.sln
deleted file mode 100644
index ecc90068d3..0000000000
--- a/external/Lucene.Net/build/vs2012/test/Lucene.Net.Test.sln
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
-#
-# 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Test", "..\..\..\test\core\Lucene.Net.Test.csproj", "{AAF68BCF-F781-45FC-98B3-2B9CEE411E01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug35|Any CPU = Debug35|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release35|Any CPU = Release35|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAF68BCF-F781-45FC-98B3-2B9CEE411E01}.Release|Any CPU.Build.0 = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.ActiveCfg = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug35|Any CPU.Build.0 = Debug35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release35|Any CPU.Build.0 = Release35|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/Gallio License.txt b/external/Lucene.Net/lib/Gallio.3.2.750/Gallio License.txt
deleted file mode 100644
index 3e17665ce6..0000000000
--- a/external/Lucene.Net/lib/Gallio.3.2.750/Gallio License.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2005-2010 Gallio Project - http://www.gallio.org/
-Portions Copyright 2000-2004 Jonathan de Halleux
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/CciMetadata.License.txt b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/CciMetadata.License.txt
deleted file mode 100644
index 0218f75e4f..0000000000
--- a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/CciMetadata.License.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-Microsoft Public License (Ms-PL)
-
-This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
-
-1. Definitions
-
-The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
-
-A "contribution" is the original software, or any additions or changes to the software.
-
-A "contributor" is any person that distributes its contribution under this license.
-
-"Licensed patents" are a contributor's patent claims that read directly on its contribution.
-
-2. Grant of Rights
-
-(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
-
-(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
-
-3. Conditions and Limitations
-
-(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
-
-(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
-
-(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
-
-(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
-
-(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Cecil.FlowAnalysis.license.html b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Cecil.FlowAnalysis.license.html
deleted file mode 100644
index 46822d4507..0000000000
--- a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Cecil.FlowAnalysis.license.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-Cecil.FlowAnalysis.license
-
-
-
-
- (C) 2005-2006 db4objects, Inc. http://www.db4o.com
-
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in the
- Software without restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so, subject to the
- following conditions:
-
-
- The above copyright notice and this permission notice shall be included in all copies
- or substantial portions of the Software.
-
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/ICSharpCode.TextEditor.License.txt b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/ICSharpCode.TextEditor.License.txt
deleted file mode 100644
index 720daab2c4..0000000000
--- a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/ICSharpCode.TextEditor.License.txt
+++ /dev/null
@@ -1,458 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Mono.Cecil.license.html b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Mono.Cecil.license.html
deleted file mode 100644
index c1429b1a14..0000000000
--- a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Mono.Cecil.license.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-Mono.Cecil.license
-
-
-
-
- (C) 2004-2006 Jb Evain
-
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in the
- Software without restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so, subject to the
- following conditions:
-
-
- The above copyright notice and this permission notice shall be included in all copies
- or substantial portions of the Software.
-
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Mono.GetOptions.license.html b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Mono.GetOptions.license.html
deleted file mode 100644
index 115f890704..0000000000
--- a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Mono.GetOptions.license.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-Mono.GetOptions.license
-
-
-
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in the
- Software without restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so, subject to the
- following conditions:
-
-
- The above copyright notice and this permission notice shall be included in all copies
- or substantial portions of the Software.
-
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/WeifenLuo.WinFormsUI.Docking.License.txt b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/WeifenLuo.WinFormsUI.Docking.License.txt
deleted file mode 100644
index 290b9a43f5..0000000000
--- a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/WeifenLuo.WinFormsUI.Docking.License.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-The MIT License
-
-Copyright (c) 2007 Weifen Luo (email: weifenluo@yahoo.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/db4o.license.html b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/db4o.license.html
deleted file mode 100644
index be37aeab27..0000000000
--- a/external/Lucene.Net/lib/Gallio.3.2.750/licenses/db4o.license.html
+++ /dev/null
@@ -1,384 +0,0 @@
-
-
-GNU GENERAL PUBLIC LICENSE
-
-
-
-
- GNU GENERAL PUBLIC LICENSE
-
-
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Everyone is permitted to copy and distribute verbatim copies of this license document,
- but changing it is not allowed.
-
-
-
- Preamble
-
- The licenses for most software are designed to take away your freedom to share and
- change it. By contrast, the GNU General Public License is intended to guarantee
- your freedom to share and change free software--to make sure the software is free
- for all its users. This General Public License applies to most of the Free Software
- Foundation's software and to any other program whose authors commit to using it.
- (Some other Free Software Foundation software is covered by the GNU Library General
- Public License instead.) You can apply it to your programs, too.
-
-
-
- When we speak of free software, we are referring to freedom, not price. Our General
- Public Licenses are designed to make sure that you have the freedom to distribute
- copies of free software (and charge for this service if you wish), that you receive
- source code or can get it if you want it, that you can change the software or use
- pieces of it in new free programs; and that you know you can do these things.
-
-
-
- To protect your rights, we need to make restrictions that forbid anyone to deny
- you these rights or to ask you to surrender the rights. These restrictions translate
- to certain responsibilities for you if you distribute copies of the software, or
- if you modify it.
-
-
- For example, if you distribute copies of such a program, whether gratis or for a
- fee, you must give the recipients all the rights that you have. You must make sure
- that they, too, receive or can get the source code. And you must show them these
- terms so they know their rights.
-
-
- We protect your rights with two steps: (1) copyright the software, and (2) offer
- you this license which gives you legal permission to copy, distribute and/or modify
- the software.
-
-
- Also, for each author's protection and ours, we want to make certain that everyone
- understands that there is no warranty for this free software. If the software is
- modified by someone else and passed on, we want its recipients to know that what
- they have is not the original, so that any problems introduced by others will not
- reflect on the original authors' reputations.
-
-
- Finally, any free program is threatened constantly by software patents. We wish
- to avoid the danger that redistributors of a free program will individually obtain
- patent licenses, in effect making the program proprietary. To prevent this, we have
- made it clear that any patent must be licensed for everyone's free use or not licensed
- at all.
-
-
- The precise terms and conditions for copying, distribution and modification follow.
-
-
-
- GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-
- 0. This License applies to any program or other work which contains a notice placed
- by the copyright holder saying it may be distributed under the terms of this General
- Public License. The "Program", below, refers to any such program or work, and a
- "work based on the Program" means either the Program or any derivative work under
- copyright law: that is to say, a work containing the Program or a portion of it,
- either verbatim or with modifications and/or translated into another language. (Hereinafter,
- translation is included without limitation in the term "modification".) Each licensee
- is addressed as "you".
-
-
- Activities other than copying, distribution and modification are not covered by
- this License; they are outside its scope. The act of running the Program is not
- restricted, and the output from the Program is covered only if its contents constitute
- a work based on the Program (independent of having been made by running the Program).
- Whether that is true depends on what the Program does.
-
-
- 1. You may copy and distribute verbatim copies of the Program's source code as you
- receive it, in any medium, provided that you conspicuously and appropriately publish
- on each copy an appropriate copyright notice and disclaimer of warranty; keep intact
- all the notices that refer to this License and to the absence of any warranty; and
- give any other recipients of the Program a copy of this License along with the Program.
-
-
- You may charge a fee for the physical act of transferring a copy, and you may at
- your option offer warranty protection in exchange for a fee.
-
-
- 2. You may modify your copy or copies of the Program or any portion of it, thus
- forming a work based on the Program, and copy and distribute such modifications
- or work under the terms of Section 1 above, provided that you also meet all of these
- conditions:
-
- a) You must cause the modified files to carry prominent notices stating that you
- changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in whole or in part
- contains or is derived from the Program or any part thereof, to be licensed as a
- whole at no charge to all third parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively when run, you must
- cause it, when started running for such interactive use in the most ordinary way,
- to print or display an announcement including an appropriate copyright notice and
- a notice that there is no warranty (or else, saying that you provide a warranty)
- and that users may redistribute the program under these conditions, and telling
- the user how to view a copy of this License. (Exception: if the Program itself is
- interactive but does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-
- These requirements apply to the modified work as a whole. If identifiable sections
- of that work are not derived from the Program, and can be reasonably considered
- independent and separate works in themselves, then this License, and its terms,
- do not apply to those sections when you distribute them as separate works. But when
- you distribute the same sections as part of a whole which is a work based on the
- Program, the distribution of the whole must be on the terms of this License, whose
- permissions for other licensees extend to the entire whole, and thus to each and
- every part regardless of who wrote it.
-
-
- Thus, it is not the intent of this section to claim rights or contest your rights
- to work written entirely by you; rather, the intent is to exercise the right to
- control the distribution of derivative or collective works based on the Program.
-
-
- In addition, mere aggregation of another work not based on the Program with the
- Program (or with a work based on the Program) on a volume of a storage or distribution
- medium does not bring the other work under the scope of this License.
-
-
- 3. You may copy and distribute the Program (or a work based on it, under Section
- 2) in object code or executable form under the terms of Sections 1 and 2 above provided
- that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable source code, which
- must be distributed under the terms of Sections 1 and 2 above on a medium customarily
- used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three years, to give any
- third party, for a charge no more than your cost of physically performing source
- distribution, a complete machine-readable copy of the corresponding source code,
- to be distributed under the terms of Sections 1 and 2 above on a medium customarily
- used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer to distribute
- corresponding source code. (This alternative is allowed only for noncommercial distribution
- and only if you received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-
- The source code for a work means the preferred form of the work for making modifications
- to it. For an executable work, complete source code means all the source code for
- all modules it contains, plus any associated interface definition files, plus the
- scripts used to control compilation and installation of the executable. However,
- as a special exception, the source code distributed need not include anything that
- is normally distributed (in either source or binary form) with the major components
- (compiler, kernel, and so on) of the operating system on which the executable runs,
- unless that component itself accompanies the executable.
-
-
- If distribution of executable or object code is made by offering access to copy
- from a designated place, then offering equivalent access to copy the source code
- from the same place counts as distribution of the source code, even though third
- parties are not compelled to copy the source along with the object code.
-
-
- 4. You may not copy, modify, sublicense, or distribute the Program except as expressly
- provided under this License. Any attempt otherwise to copy, modify, sublicense or
- distribute the Program is void, and will automatically terminate your rights under
- this License. However, parties who have received copies, or rights, from you under
- this License will not have their licenses terminated so long as such parties remain
- in full compliance.
-
-
- 5. You are not required to accept this License, since you have not signed it. However,
- nothing else grants you permission to modify or distribute the Program or its derivative
- works. These actions are prohibited by law if you do not accept this License. Therefore,
- by modifying or distributing the Program (or any work based on the Program), you
- indicate your acceptance of this License to do so, and all its terms and conditions
- for copying, distributing or modifying the Program or works based on it.
-
-
- 6. Each time you redistribute the Program (or any work based on the Program), the
- recipient automatically receives a license from the original licensor to copy, distribute
- or modify the Program subject to these terms and conditions. You may not impose
- any further restrictions on the recipients' exercise of the rights granted herein.
- You are not responsible for enforcing compliance by third parties to this License.
-
-
- 7. If, as a consequence of a court judgment or allegation of patent infringement
- or for any other reason (not limited to patent issues), conditions are imposed on
- you (whether by court order, agreement or otherwise) that contradict the conditions
- of this License, they do not excuse you from the conditions of this License. If
- you cannot distribute so as to satisfy simultaneously your obligations under this
- License and any other pertinent obligations, then as a consequence you may not distribute
- the Program at all. For example, if a patent license would not permit royalty-free
- redistribution of the Program by all those who receive copies directly or indirectly
- through you, then the only way you could satisfy both it and this License would
- be to refrain entirely from distribution of the Program.
-
-
- If any portion of this section is held invalid or unenforceable under any particular
- circumstance, the balance of the section is intended to apply and the section as
- a whole is intended to apply in other circumstances.
-
-
- It is not the purpose of this section to induce you to infringe any patents or other
- property right claims or to contest validity of any such claims; this section has
- the sole purpose of protecting the integrity of the free software distribution system,
- which is implemented by public license practices. Many people have made generous
- contributions to the wide range of software distributed through that system in reliance
- on consistent application of that system; it is up to the author/donor to decide
- if he or she is willing to distribute software through any other system and a licensee
- cannot impose that choice.
-
-
- This section is intended to make thoroughly clear what is believed to be a consequence
- of the rest of this License.
-
-
- 8. If the distribution and/or use of the Program is restricted in certain countries
- either by patents or by copyrighted interfaces, the original copyright holder who
- places the Program under this License may add an explicit geographical distribution
- limitation excluding those countries, so that distribution is permitted only in
- or among countries not thus excluded. In such case, this License incorporates the
- limitation as if written in the body of this License.
-
-
- 9. The Free Software Foundation may publish revised and/or new versions of the General
- Public License from time to time. Such new versions will be similar in spirit to
- the present version, but may differ in detail to address new problems or concerns.
-
-
- Each version is given a distinguishing version number. If the Program specifies
- a version number of this License which applies to it and "any later version", you
- have the option of following the terms and conditions either of that version or
- of any later version published by the Free Software Foundation. If the Program does
- not specify a version number of this License, you may choose any version ever published
- by the Free Software Foundation.
-
-
- 10. If you wish to incorporate parts of the Program into other free programs whose
- distribution conditions are different, write to the author to ask for permission.
- For software which is copyrighted by the Free Software Foundation, write to the
- Free Software Foundation; we sometimes make exceptions for this. Our decision will
- be guided by the two goals of preserving the free status of all derivatives of our
- free software and of promoting the sharing and reuse of software generally.
-
-
- NO WARRANTY
-
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
- PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
- IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"
- WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
- THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
- OR CORRECTION.
-
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
- COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM
- AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
- INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
- PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE
- OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
- WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
- THE POSSIBILITY OF SUCH DAMAGES.
-
-
- END OF TERMS AND CONDITIONS
-
-
- How to Apply These Terms to Your New Programs
-
-
- If you develop a new program, and you want it to be of the greatest possible use
- to the public, the best way to achieve this is to make it free software which everyone
- can redistribute and change under these terms.
-
-
- To do so, attach the following notices to the program. It is safest to attach them
- to the start of each source file to most effectively convey the exclusion of warranty;
- and each file should have at least the "copyright" line and a pointer to where the
- full notice is found.
-
-
- <one line to give the program's name and a brief idea of what it does.>
-
- Copyright (C) <year> <name of author>
-
-
-
- This program is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software Foundation;
- either version 2 of the License, or (at your option) any later version.
-
-
- This program
- is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
- even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU General Public License for more details.
-
-
- You should have received a
- copy of the GNU General Public License along with this program; if not, write to
- the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA
-
-
- Also add information on how to contact you by electronic and paper mail.
-
-
- If
- the program is interactive, make it output a short notice like this when it starts
- in an interactive mode:
-
-
- Gnomovision version 69, Copyright (C) year name of author
-
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is
- free software, and you are welcome to redistribute it under certain conditions;
- type `show c' for details.
-
-
- The hypothetical commands `show w' and `show c' should
- show the appropriate parts of the General Public License. Of course, the commands
- you use may be called something other than `show w' and `show c'; they could even
- be mouse-clicks or menu items
- -whatever suits your program.
-
-
- You should also get
- your employer (if you work as a programmer) or your school, if any, to sign a "copyright
- disclaimer" for the program, if necessary. Here is a sample; alter the names:
-
-
-
-
- Yoyodyne,
- Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which
- makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>,
- 1 April 1989 Ty Coon, President of Vice
-
-
-
- This General Public License does not permit
- incorporating your program into proprietary programs. If your program is a subroutine
- library, you may consider it more useful to permit linking proprietary applications
- with the library. If this is what you want to do, use the GNU Library General Public
- License instead of this License.
-
- Developers love self-referential programs! Hence, NUnit has always run all it's
- own tests, even those that are not really unit tests.
-
Now, beginning with NUnit 2.4, NUnit has top-level tests using Ward Cunningham's
- FIT framework. At this time, the tests are pretty rudimentary, but it's a start
- and it's a framework for doing more.
-
Running the Tests
-
Open a console or shell window and navigate to the NUnit bin directory, which
- contains this file. To run the test under Microsoft .Net, enter the command
-
- Note the space and dot at the end of each command. The results of your test
- will be in TestResults.html in the same directory.
-
Platform and CLR Version
-
-
-
NUnit.Fixtures.PlatformInfo
-
-
-
Verify Unit Tests
-
- Load and run the NUnit unit tests, verifying that the results are as expected.
- When these tests are run on different platforms, different numbers of tests may
- be skipped, so the values for Skipped and Run tests are informational only.
-
- The number of tests in each assembly should be constant across all platforms -
- any discrepancy usually means that one of the test source files was not
- compiled on the platform. There should be no failures and no tests ignored.
-
Note:
- At the moment, the nunit.extensions.tests assembly is failing because the
- fixture doesn't initialize addins in the test domain.
-
-
-
-
NUnit.Fixtures.AssemblyRunner
-
-
-
Assembly
-
Tests()
-
Run()
-
Skipped()
-
Ignored()
-
Failures()
-
-
-
nunit.framework.tests.dll
-
397
-
-
-
0
-
0
-
-
-
nunit.core.tests.dll
-
355
-
-
-
0
-
0
-
-
-
nunit.util.tests.dll
-
238
-
-
-
0
-
0
-
-
-
nunit.mocks.tests.dll
-
43
-
-
-
0
-
0
-
-
-
nunit.extensions.tests.dll
-
5
-
-
-
0
-
0
-
-
-
nunit-console.tests.dll
-
40
-
-
-
0
-
0
-
-
-
nunit.uikit.tests.dll
-
34
-
-
-
0
-
0
-
-
-
nunit-gui.tests.dll
-
15
-
-
-
0
-
0
-
-
-
nunit.fixtures.tests.dll
-
6
-
-
-
0
-
0
-
-
-
Code Snippet Tests
-
- These tests create a test assembly from a snippet of code and then load and run
- the tests that it contains, verifying that the structure of the loaded tests is
- as expected and that the number of tests run, skipped, ignored or failed is
- correct.
-
-
-
-
NUnit.Fixtures.SnippetRunner
-
-
-
Code
-
Tree()
-
Run()
-
Skipped()
-
Ignored()
-
Failures()
-
-
-
public class TestClass
-{
-}
-
-
EMPTY
-
0
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
-}
-
-
TestClass
-
0
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass
->T1
->T2
->T3
-
-
3
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass1
-{
- [Test]
- public void T1() { }
-}
-
-[TestFixture]
-public class TestClass2
-{
- [Test]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass1
->T1
-TestClass2
->T2
->T3
-
-
3
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test, Ignore]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass
->T1
->T2
->T3
-
-
2
-
0
-
1
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test, Explicit]
- public void T2() { }
- [Test]
- public void T3() { }
-}
- Developers love self-referential programs! Hence, NUnit has always run all it's
- own tests, even those that are not really unit tests.
-
Now, beginning with NUnit 2.4, NUnit has top-level tests using Ward Cunningham's
- FIT framework. At this time, the tests are pretty rudimentary, but it's a start
- and it's a framework for doing more.
-
Running the Tests
-
Open a console or shell window and navigate to the NUnit bin directory, which
- contains this file. To run the test under Microsoft .Net, enter the command
-
- Note the space and dot at the end of each command. The results of your test
- will be in TestResults.html in the same directory.
-
Platform and CLR Version
-
-
-
NUnit.Fixtures.PlatformInfo
-
-
-
Verify Unit Tests
-
- Load and run the NUnit unit tests, verifying that the results are as expected.
- When these tests are run on different platforms, different numbers of tests may
- be skipped, so the values for Skipped and Run tests are informational only.
-
- The number of tests in each assembly should be constant across all platforms -
- any discrepancy usually means that one of the test source files was not
- compiled on the platform. There should be no failures and no tests ignored.
-
Note:
- At the moment, the nunit.extensions.tests assembly is failing because the
- fixture doesn't initialize addins in the test domain.
-
-
-
-
NUnit.Fixtures.AssemblyRunner
-
-
-
Assembly
-
Tests()
-
Run()
-
Skipped()
-
Ignored()
-
Failures()
-
-
-
nunit.framework.tests.dll
-
397
-
-
-
0
-
0
-
-
-
nunit.core.tests.dll
-
355
-
-
-
0
-
0
-
-
-
nunit.util.tests.dll
-
238
-
-
-
0
-
0
-
-
-
nunit.mocks.tests.dll
-
43
-
-
-
0
-
0
-
-
-
nunit.extensions.tests.dll
-
5
-
-
-
0
-
0
-
-
-
nunit-console.tests.dll
-
40
-
-
-
0
-
0
-
-
-
nunit.uikit.tests.dll
-
34
-
-
-
0
-
0
-
-
-
nunit-gui.tests.dll
-
15
-
-
-
0
-
0
-
-
-
nunit.fixtures.tests.dll
-
6
-
-
-
0
-
0
-
-
-
Code Snippet Tests
-
- These tests create a test assembly from a snippet of code and then load and run
- the tests that it contains, verifying that the structure of the loaded tests is
- as expected and that the number of tests run, skipped, ignored or failed is
- correct.
-
-
-
-
NUnit.Fixtures.SnippetRunner
-
-
-
Code
-
Tree()
-
Run()
-
Skipped()
-
Ignored()
-
Failures()
-
-
-
public class TestClass
-{
-}
-
-
EMPTY
-
0
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
-}
-
-
TestClass
-
0
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass
->T1
->T2
->T3
-
-
3
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass1
-{
- [Test]
- public void T1() { }
-}
-
-[TestFixture]
-public class TestClass2
-{
- [Test]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass1
->T1
-TestClass2
->T2
->T3
-
-
3
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test, Ignore]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass
->T1
->T2
->T3
-
-
2
-
0
-
1
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test, Explicit]
- public void T2() { }
- [Test]
- public void T3() { }
-}
- Developers love self-referential programs! Hence, NUnit has always run all it's
- own tests, even those that are not really unit tests.
-
Now, beginning with NUnit 2.4, NUnit has top-level tests using Ward Cunningham's
- FIT framework. At this time, the tests are pretty rudimentary, but it's a start
- and it's a framework for doing more.
-
Running the Tests
-
Open a console or shell window and navigate to the NUnit bin directory, which
- contains this file. To run the test under Microsoft .Net, enter the command
-
- Note the space and dot at the end of each command. The results of your test
- will be in TestResults.html in the same directory.
-
Platform and CLR Version
-
-
-
NUnit.Fixtures.PlatformInfo
-
-
-
Verify Unit Tests
-
- Load and run the NUnit unit tests, verifying that the results are as expected.
- When these tests are run on different platforms, different numbers of tests may
- be skipped, so the values for Skipped and Run tests are informational only.
-
- The number of tests in each assembly should be constant across all platforms -
- any discrepancy usually means that one of the test source files was not
- compiled on the platform. There should be no failures and no tests ignored.
-
Note:
- At the moment, the nunit.extensions.tests assembly is failing because the
- fixture doesn't initialize addins in the test domain.
-
-
-
-
NUnit.Fixtures.AssemblyRunner
-
-
-
Assembly
-
Tests()
-
Run()
-
Skipped()
-
Ignored()
-
Failures()
-
-
-
nunit.framework.tests.dll
-
397
-
-
-
0
-
0
-
-
-
nunit.core.tests.dll
-
355
-
-
-
0
-
0
-
-
-
nunit.util.tests.dll
-
238
-
-
-
0
-
0
-
-
-
nunit.mocks.tests.dll
-
43
-
-
-
0
-
0
-
-
-
nunit.extensions.tests.dll
-
5
-
-
-
0
-
0
-
-
-
nunit-console.tests.dll
-
40
-
-
-
0
-
0
-
-
-
nunit.uikit.tests.dll
-
34
-
-
-
0
-
0
-
-
-
nunit-gui.tests.dll
-
15
-
-
-
0
-
0
-
-
-
nunit.fixtures.tests.dll
-
6
-
-
-
0
-
0
-
-
-
Code Snippet Tests
-
- These tests create a test assembly from a snippet of code and then load and run
- the tests that it contains, verifying that the structure of the loaded tests is
- as expected and that the number of tests run, skipped, ignored or failed is
- correct.
-
-
-
-
NUnit.Fixtures.SnippetRunner
-
-
-
Code
-
Tree()
-
Run()
-
Skipped()
-
Ignored()
-
Failures()
-
-
-
public class TestClass
-{
-}
-
-
EMPTY
-
0
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
-}
-
-
TestClass
-
0
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass
->T1
->T2
->T3
-
-
3
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass1
-{
- [Test]
- public void T1() { }
-}
-
-[TestFixture]
-public class TestClass2
-{
- [Test]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass1
->T1
-TestClass2
->T2
->T3
-
-
3
-
0
-
0
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test, Ignore]
- public void T2() { }
- [Test]
- public void T3() { }
-}
-
-
TestClass
->T1
->T2
->T3
-
-
2
-
0
-
1
-
0
-
-
-
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
- [Test]
- public void T1() { }
- [Test, Explicit]
- public void T2() { }
- [Test]
- public void T3() { }
-}
NUnit isolates test assemblies from its own code and from one another
- by use of separate AppDomains and/or Processes.
-
-
By default, NUnit loads a test assembly into a separate AppDomain,
- while its own code runs in the primary AppDomain.
-
-
When multiple assemblies are run at the same time, NUnit loads them differently
- depending on how they were specified. For assemblies that are part of an
- NUnit project, then a single AppDomain is used. If the assemblies
- were specified on the console runner command line, then a separate
- AppDomain is used for each of them.
-
-
If greater separation is desired, test assemblies may be loaded into
- a separate Process or into multiple processes. This is done
- automatically by NUnit in the case where the tests are to be run under
- a different runtime from the one that NUnit is currently using. Tests
- running in a separate process are executed under the control of the
- nunit-agent program.
-
-
Controlling Isolation
-
-
Beyond the NUnit default behavior, the user may control the level of isolation
- through the command line or through NUnit's general settings. Process and AppDomain
- isolation may also be specified as part of the settings of an NUnit project.
-
-
Command Line
-
-
Assembly Isolation may be specified on the console runner commandline using
- the /process and /domain options. See
- NUnit-Console Command Line Options for more information.
-
-
General Settings
-
-
The built-in NUnit defaults may be overridden using the Assembly Isolation
- panel of the NUnit Settings Dialog. Settings made here are saved and become
- the new default values for all executions of NUnit until changed. For more info,
- see the Settings Dialog page.
-
-
Project Settings
-
-
Isolation settings may be specified for an individual NUnit project using the
- Project Editor.
-
-
Assertions are central to unit testing in any of the xUnit frameworks, and NUnit
- is no exception. NUnit provides a rich set of assertions as static methods of
- the Assert class.
-
-
If an assertion fails, the method call does not return and an error is reported.
- If a test contains multiple assertions, any that follow the one that failed
- will not be executed. For this reason, it's usually best to try for one
- assertion per test.
-
-
Each method may be called without a message, with a simple text message or with
- a message and arguments. In the last case the message is formatted using the
- provided text and arguments.
-
-
Two Models
-
-
Before NUnit 2.4, a separate method of the Assert class was used for each
- different assertion. We call this the "Classic Model." It
- continues to be supported in NUnit, since many people prefer it.
-
-
Beginning with NUnit 2.4, a new "Constraint-based" model was
- introduced. This approach uses a single method of the Assert class
- for all assertions, passing a Constraint object that specifies the test to be performed.
-
-
This constraint-based model is now used internally by NUnit
- for all assertions. The methods of the classic approach have been
- re-implemented on top of this new model.
-
-
-
-
Version 1 of NUnit used the classic approach to identifying tests based on
- inheritance and naming conventions. From version 2.0 on, NUnit has used custom
- attributes for this purpose.
-
Because NUnit test fixtures do not inherit from a framework class, the developer
- is free to use inheritance in other ways. And because there is no arbitrary
- convention for naming tests, the choice of names can be entirely oriented
- toward communicating the purpose of the test.
-
All NUnit attributes are contained in the NUnit.Framework namespace. Each source
- file that contains tests must include a using statement for that namespace and
- the project must reference the framework assembly, nunit.framework.dll.
-
Beginning with NUnit 2.4.6, NUnit's attributes are no longer sealed and any
- attributes that derive from them will be recognized by NUnit.
-
-
The Category attribute provides an alternative to suites for dealing with groups
- of tests. Either individual test cases or fixtures may be identified as
- belonging to a particular category. Both the gui and console test runners allow
- specifying a list of categories to be included in or excluded from the run.
- When categories are used, only the tests in the selected categories will be
- run. Those tests in categories that are not selected are not reported at all.
-
This feature is accessible by use of the /include and /exclude arguments to the
- console runner and through a separate "Categories" tab in the gui. The gui
- provides a visual indication of which categories are selected at any time.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- [Category("LongRunning")]
- public class LongRunningTests
- {
- // ...
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), Category("LongRunning")>
- Public Class LongRunningTests
- ' ...
- End Class
-End Namespace
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [Test]
- [Category("Long")]
- public void VeryLongTest()
- { /* ... */ }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()>
- Public Class SuccessTests
- <Test(), Category("Long")> Public Sub VeryLongTest()
- ' ...
- End Sub
- End Class
-End Namespace
-
Beginning with NUnit 2.4, it is possible to define custom
-attributes that derive from CategoryAttribute and have them
-recognized by NUnit. The default protected constructor of CategoryAttribute
-sets the category name to the name of your class.
-
-
Here's an example that creates a category of Critical tests. It works
-just like any other category, but has a simpler syntax. A test reporting
-system might make use of the attribute to provide special reports.
-
-
The CollectionAssert class provides a number of methods that are useful
-when examining collections and their contents or for comparing two collections.
-
-
The AreEqual overloads succeed if the corresponding elements of the two
-collections are equal. AreEquivalent tests whether the collection contents
-are equal, but without regard to order. In both cases, elements are compared using
-NUnit's default equality comparison.
-
-
Beginning with NUnit 2.4.6, these methods may be used on any object that
-implements IEnumerable. Prior to 2.4.6, only true collections were supported.
-
-
Collection constraints perform tests that are specific to collections.
- The following collection constraints are provided. Before NUnit 2.4.6,
- these constraints only operated on true Collections. Beginning with 2.4.6,
- they can work with any object that implements IEnumerable.
-
-
Beginning with NUnit 2.4.2, use of an improper argument type caused tests
- to fail. Later releases give an error rather than a failure, so that negated
- constraints will not appear to succeed.
-
-
For example, both of the following statements give an error in later releases,
- but the second would have succeeded in earlier versions of NUnit.
-
-
-int[] iarray = new int[] { 1, 2, 3 };
-
-Assert.That( 5, Is.SubsetOf( iarray ) ); // Fails in early releases
-Assert.That( 5, Is.Not.SubsetOf( iarray ) ); /
-
-
-
AllItemsConstraint
-
-
Action
-
Applies a constraint to each item in a collection, succeeding only if all of them succeed.
-
-
For references, Has.Member uses object equality to find a member in a
-collection. To check for an object equal to an item the collection, use
-Has.Some.EqualTo(...).
-
-
-
CollectionEquivalentConstraint
-
-
Action
-
Tests that two collections are equivalent - that they contain
-the same items, in any order.
-
-
Constructor
-
-CollectionEquivalentConstraint( IEnumerable other )
-
The CombinatorialAttribute is used on a test to specify that NUnit should
- generate test cases for all possible combinations of the individual
- data items provided for the parameters of a test. Since this is the
- default, use of this attribute is optional.
-
-
Example
-
-
The following test will be executed six times, as follows:
-
The following methods test whether one object is greater than than another.
- Contrary to the normal order of Asserts, these methods are designed to be
- read in the "natural" English-language or mathematical order. Thus
- Assert.Greater( x, y ) asserts that x is greater than y ( x > y ).
The following methods test whether one object is greater than or equal to another.
- Contrary to the normal order of Asserts, these methods are designed to be
- read in the "natural" English-language or mathematical order. Thus
- Assert.GreaterOrEqual( x, y ) asserts that x is greater than or equal to y ( x >= y ).
The following methods test whether one object is less than than another.
- Contrary to the normal order of Asserts, these methods are designed to be
- read in the "natural" English-language or mathematical order. Thus
- Assert.Less( x, y ) asserts that x is less than y ( x < y ).
The following methods test whether one object is less than or equal to another.
- Contrary to the normal order of Asserts, these methods are designed to be
- read in the "natural" English-language or mathematical order. Thus
- Assert.LessOrEqual( x, y ) asserts that x is less than or equal to y ( x <= y ).
Comparison constraints are able to test whether one value
-is greater or less than another. Comparison constraints work
-on numeric values, as well as other objects that implement the
-IComparable interface or - beginning with NUnit 2.5 -
-IComparable<T>.
-
-
Beginning with NUnit 2.5, you may supply your own comparison
-algorithm through the Using modifier.
-
-
Methods that test a specific condition are named for the condition they test and
- take the value tested as their first argument and, optionally a message as the
- second. The following methods are provided:
Two forms are provided for the True, False, Null and NotNull
-conditions. The "Is" forms are compatible with earlier versions
-of the NUnit framework, while those without "Is" are provided
-for compatibility with NUnitLite.
-
-
Assert.IsEmpty and Assert.IsNotEmpty may be used to test either a string
-or a collection.
ConditionConstraints test a specific condition and are named for the condition
- they test. They verify that the actual value satisfies the condition. The
- following condition helpers are provided.
-
-
EmptyConstraint creates and uses either an EmptyStringConstraint,
-EmptyDirectoryConstraint or EmptyCollectionConstraint depending on
-the argument tested.
-
A DirectoryInfo argument is required in order to test for an empty directory.
-To test whether a string represents a directory path, you must first construct
-a DirectoryInfo.
-
-
-
UniqueItemsConstraint
-
-
Action
-
Tests that an array, collection or other IEnumerable is composed
-of unique items with no duplicates.
-
-
NUnit uses configuration files for the test runner executable – either nunit-console.exe or
-nunitgui.exe – as well as for the tests being run. Only settings that pertain to NUnit itself should be in
-the nunit-console.exe.config and nunit-gui.exe.config, while those that pertain to your own
-application and tests should be in a separate configuration file.
-
-
NUnit Configuration Files
-
-
One main purpose of the nunit-console and nunit-gui config files is to allow
-NUnit to run with various versions of the .NET framework. NUnit is built using
-versions 1.1 and 2.0 of the framework. The two builds are provided as separate
-downloads and either build can be made to run against other versions of the CLR.
-
-
As delivered, the section of each config file is commented out,
-causing NUnit to run with the version of .NET used to build it. If you uncomment
-the section, the entries there control the order in which alternate
-framework versions are selected.
-
-
Test Configuration File
-
-
When a configuration file is used to provide settings or to control the environment in which a test
-is run, specific naming conventions must be followed.
-
-
If a single assembly is being loaded, then the configuration file is given the name of the assembly
-file with the config extension. For example, the configuration file used to run nunit.tests.dll must
-be named nunit.tests.dll.config and located in the same directory as the dll.
-
-
If an NUnit project is being loaded into a single AppDomain, the configuration file uses the
-name of the project file with the extension changed to config. For example, the project
-AllTests.nunit would require a configuration file named AllTests.config, located in the same
-directory as AllTests.nunit. The same rule is followed when loading Visual Studio projects or solutions.
-
-
-
Note: The above only applies if a single AppDomain is being used. If an NUnit
-project is loaded using a separate AppDomain for each assembly, then the individual
-configuration files for each of the assemblies are used.
-
-
-
Generally, you should be able to simply copy your application config file and rename it as
-described above.
-
-
It is also possible to effect the behavior of NUnit by adding special sections
-to the test config file. A config file using these sections might look like this:
-
-
The entries in the above file are all
-set to default values. The meaning of each setting is as follows:
-
-
OldStyleTestCases
-
If set to "true" NUnit will recognize methods beginning
-"test..." as tests. The prefix is case insensitive.
-
-
ApartmentState
-
Sets the apartment state for the thread used to run tests.
-
-
ThreadPriority
-
Sets the thread priority for the test thread.
-
-
DefaultLogThreshold
-
Sets the level for logging captured by NUnit. In the
-current version only log4net logging is captured, so the
-level must be one that is defined by log4net.
-
-
The console interface has a few additional options compared to the forms
- interface. The command line must always specify one or more file names. The
- console interface always creates an XML representation of the test results.
- This file by default is called TestResult.xml and is placed in the working
- directory.
-
Note: By default the nunit-console program is not added to your path. You
- must do this manually if this is the desired behavior.
-
Note: Under the Windows operating system, options may be prefixed by either
- a forward slash or a hyphen. Under Linux, a hyphen must be used. Options that
- take values may use an equal sign, a colon or a space to separate the option
- from its value.
-
Specifying an Assembly
-
The console program must always have an assembly or project specified. To run
-the tests contained in the nunit.tests.dll use the following command:
-
nunit-console nunit.tests.dll
-
-
To run the tests in nunit.tests.dll through the Visual Studio project, use:
-
nunit-console nunit.tests.csproj
-
-
To run the same tests through an NUnit test project you have defined, use:
-
nunit-console nunit.tests.nunit
-
-
Specifying an Assembly and a Test to be Run
-
You may specify a test to be run by providing the full name of the test along
-with the containing assembly. For example to run NUnit.Tests.AssertionTests
-in the nunit.tests assembly use the following command:
-
Unlike the /fixture option, this option affects the running
-rather than the loading of the tests. Consequently it supports much broader use,
-including situations involving SetUpFixtures, which are not run if the class
-in question is not loaded. You should use /run in lieu of /fixture
-in most cases.
-
-
Specifying an Assembly and a Fixture to be Loaded
-
When specifying a fixture, you must give the full name of the test fixture
- along with the containing assembly. For example, to load the
- NUnit.Tests.AssertionTests in the nunit.tests.dll assembly use the following
- command:
-
The name specified after the /fixture option may be that of a TestFixture
- class, a legacy suite (using the Suite property ) or a namespace. If a
- namespace is given, then all fixtures under that namespace are loaded.
-
This option is provided for backward compatibility. In most cases, you will
-be better served by using the /run option.
-
-
Specifying the .NET Framework Version
-
-
Most applications are written to run under a specific version of the CLR.
-A few are designed to operate correctly under multiple versions. In either case,
-it is important to be able to specify the CLR version to be used for testing.
-
-
Prior to version 2.5, it was necessary to run the console program itself using
-the CLR version under which you wanted to run tests. This was done either by
-editing the nunit-console.exe.config file or by setting the COMPLUS_Version
-environment variable before running the program.
-
-
Under NUnit 2.5 and later versions, you may still use either of these approaches,
-but a simpler method is available.
-
-
The /framework option allows you to specify the version of the runtime
- to be used in executing tests. If that version specified is different from the
- one being used by NUnit, the tests are run in a separate process. For example,
- you may enter
-
nunit-console myassembly.dll /framework:net-1.1
-
-
-
This command will run tests under .NET 1.1 even if you are running the .NET 2.0
- build of the nunit-console. Beginning with version 2.5.3, all versions of .NET
- through 4.0 as well as Mono profiles 1.0, 2.0 and 3.5 are supported.
-
-
Specifying Test Categories to Include or Exclude
-
NUnit provides CategoryAttribute for use in marking tests as belonging to
- one or more categories. Categories may be included or excluded in a test run
- using the /include and /exclude options. The following command
- runs only the tests in the BaseLine category:
-
nunit-console myassembly.dll /include:BaseLine
-
-
The following command runs all tests except those in the Database
- category:
-
nunit-console myassembly.dll /exclude:Database
-
-
-Multiple categories may be specified on either option, by using commas to
-separate them.
-
Notes: Beginning with NUnit 2.4, the /include and /exclude options may
- be combined on the command line. When both are used, all tests with the included
- categories are run except for those with the excluded categories.
-
-
Beginning with NUnit 2.4.6, you may use a Category Expression with either
-of these options:
-
-
A|B|C
-
Selects tests having any of the categories A, B or C.
-
A,B,C
-
Selects tests having any of the categories A, B or C.
-
A+B+C
-
Selects only tests having all three of the categories assigned
-
A+B|C
-
Selects tests with both A and B OR with category C.
-
A+B-C
-
Selects tests with both A and B but not C.
-
-A
-
Selects tests not having category A assigned
-
A+(B|C)
-
Selects tests having both category A and either of B or C
-
-
The comma operator is equivalent to | but has a higher precendence. Order
-of evaluation is as follows:
-
-
Unary exclusion operator (-)
-
High-precendence union operator (,)
-
Intersection and set subtraction operators (+ and binary -)
-
Low-precedence union operator (|)
-
-
-
Note: Because the operator characters have special meaning,
-you should avoid creating a category that uses any of them in it's name.
-For example, the category "db-tests" could not be used on the command
-line, since it appears to means "run category db, except for category tests."
-The same limitation applies to characters that have special meaning for
-the shell you are using.
-
-
For a clear understanding of how category
- selection works, review the documentation for both the
- Category Attribute and the
- Explicit Attribute.
-
Redirecting Output
-
Output created by the test, which is normally shown on the console, may be
- redirected to a file. The following command redirects standard output to the
- file TestResult.txt:
-
nunit-console nunit.tests.dll /out:TestResult.txt
-
-
The following command redirects standard error output to the StdErr.txt file.
-
nunit-console nunit.tests.dll /err:StdErr.txt
-
-
-
Note:This option only redirects output produced by the tests,
- together with selected NUnit output that is interspersed with the test output.
- It does not redirect all console output. If you want to redirect all
- output to a file, you should use command line redirection as supported by the
- shell you are using. This option exists for the purpose of separating test
- output from other output, such as the NUnit summary report.
-
-
Labeling Test Output
-
The output from each test normally follows right after that of the preceding
- test. You may use the /labels option to cause an identifying label to be
- displayed at the start of each test case.
-
Specifying the XML file name
-
As stated above, the console program always creates an XML representation of the
- test results. To change the name of the output file to
- "console-test.xml" use the following command line option:
-
Note: For additional information see the XML schema for the test results.
- This file is in the same directory as the executable and is called
- Results.xsd.
-
-
Specifying which Configuration to run
-
When running tests from a Visual Studio or NUnit project, the first
- configuration found will be loaded by default. Usually this is Debug. The
- configuration loaded may be controlled by using the /config switch. The
- following will load and run tests for the Release configuration of
- nunit.tests.dll.
-
nunit-console nunit.tests.csproj /config:Release
-
-
Note: This option has no effect when loading an assembly directly.
-
Specifying Multiple Assemblies
-
You may run tests from multiple assemblies in one run using the console
- interface even if you have not defined an NUnit test project file. The
- following command would run a suite of tests contained in assembly1.dll,
- assembly2.dll and assembly3.dll.
-
Notes: You may specify multiple assemblies, but not multiple NUnit or
- Visual Studio projects on the command line. Further, you may not specify an
- NUnit or Visual Studio project together with a list of assemblies.
-
Beginning with NUnit 2.4, the console loads multiple assemblies specified
- in this way into separate AppDomains by default. You may provide a separate
- config file for each assembly. You may override the default by use of the
- /domain option.
-
Beginning with NUnit 2.4, the /fixture
- option, when used with multiple assemblies, will run tests matching the
- fixture name in all the assemblies. In earlier versions, only the first
- test found was executed.
-
Controlling the Use of Processes
-
The /process option controls how NUnit loads tests in processes. The
- following values are recognized.
-
-
Single
-
All the tests are run in the nunit-console process. This is the default.
-
Separate
-
A separate process is created to run the tests.
-
Multiple
-
A separate process is created for each test assembly, whether specified
- on the command line or listed in an NUnit project file.
-
-
Controlling the Use of AppDomains
-
The /domain option controls of the creation of AppDomains for running tests.
- The following values are recognized:
-
-
None
-
No domain is created - the tests are run in the primary domain. This normally
- requires copying the NUnit assemblies into the same directory as your tests.
-
Single
-
A test domain is created - this is how NUnit worked prior to version 2.4
-
Multiple
-
A separate test domain is created for each assembly
-
-
The default is to use multiple domains if multiple assemblies are listed on
- the command line. Otherwise a single domain is used.
-
-
Specifying a Default Timeout Value
-
The /timeout option takes an int value representing the default timeout
-to be used for test cases in this run. If any test exceeds the timeout value,
-it is cancelled and reported as an error. The default value may be overridden
-for selected tests by use of TimeoutAttribute.
-
-
Note: If you do not use this option, no timeout is set and tests
-may run for any amount of time.
-
-
Other Options
-
The /trace option allows you to control the amount of information that NUnit
- writes to its internal trace log. Valid values are Off, Error, Warning,Info
- and Debug. The default is Off.
-
The /noshadow option disables shadow copying of the assembly in order to
- provide improved performance.
-
The /nothread option suppresses use of a separate thread for running the
- tests and uses the main thread instead.
-
The /wait option causes the program to wait for user input before
- exiting. This is useful when running nunit-console from a shortcut.
-
The /xmlconsole option displays raw XML output on the console rather than
- transforming it. This is useful when debugging problems with the XML format.
-
The /nologo option disables display of the copyright information at the
- start of the program.
-
The /help or /? option displays a brief help message
The constraint-based Assert model uses a single method of the Assert class
- for all assertions. The logic necessary to carry out each assertion is
- embedded in the constraint object passed as the second parameter to that
- method.
-
-
Here's a very simple assert using the constraint model:
-
Assert.That( myString, Is.EqualTo("Hello") );
-
-
The second argument in this assertion uses one of NUnit's syntax helpers
-to create an EqualConstraint. The same assertion could also be made in this form:
-
Assert.That( myString, new EqualConstraint("Hello") );
-
-
Using this model, all assertions are made using one of the forms of the
- Assert.That() method, which has a number of overloads...
-
-
The overloads that take a bool work exactly like Assert.IsTrue.
-
-
For overloads taking a constraint, the argument must be a object implementing
- the IConstraint interface, which supports performing a test
- on an actual value and generating appropriate messages. This interface
- is described in more detail under
- Custom Constraints.
-
-
NUnit provides a number of constraint classes similar to the EqualConstraint
- used in the example above. Generally, these classes may be used directly or
- through a syntax helper. Test fixture classes inheriting from AssertionHelper
- are able to use shorter forms. The valid forms are described on the pages related to
- each constraint. Note that the menu items listed to the right generally reflect the
- names of the syntax helpers.
-
-
The context menu is displayed when one of the tree nodes is right-clicked.
-
-
Run
-
Runs the selected test - disabled if a test is running.
-
-
Run All
-
Runs all the tests.
-
-
Run Failed
-
Runs only the tests that failed on the previous run.
-
-
Show Checkboxes
-
Turns the display of checkboxes in the tree on or off. The checkboxes may
- be used to select multiple tests for running.
-
-
Expand
-
Expands the selected test node – invisible if the node is expanded or has no children.
-
-
Collapse
-
Collapses the selected test node – invisible if the node is collapsed or has no children.
-
-
Expand All
-
Expands all nodes of the tree.
-
-
Collapse All
-
Collapses all nodes in the tree to the root.
-
-
Load Fixture
-
Reloads only the currently selected fixture or namespace. The fixture,
-once loaded, remains in effect through any subsequent reloads. This generally
-results in substantial reduction in load time.
-
-
Clear Fixture
-
Reloads all the tests, clearing the currently loaded fixture.
The Culture attribute is used to specify cultures for which a test or fixture
- should be run. It does not affect the culture setting, but merely uses it to
- determine whether to run the test. If you wish to change the culture when
- running a test, use the SetCulture attribute instead.
-
-
If the specified culture requirements for a test are not met it is skipped.
- In the gui, the tree node for the test remains gray and the status bar color is
- not affected.
-
-
One use of the Culture attribute is to provide alternative tests under different
-cultures. You may specify either specific cultures, like "en-GB" or neutral
-cultures like "de".
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- [Culture("fr-FR")]
- public class FrenchCultureTests
- {
- // ...
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), Culture("fr-FR")>
- Public Class FrenchCultureTests
- ' ...
- End Class
-End Namespace
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [Test]
- [Culture(Exclude="en,de")]
- public void SomeTest()
- { /* ... */ }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()>
- Public Class SuccessTests
- <Test(), Culture(Exclude="en,de")> Public Sub SomeTest()
- ' ...
- End Sub
- End Class
-End Namespace
-
You can implement your own custom constraints by creating a class that
-inherits from the Constraint abstract class, which supports performing a
-test on an actual value and generating appropriate messages. The class includes
-two abstract methods, which you must override and four virtual methods with
-default implementation that may be overridden as needed:
-
-
-
public abstract class Constraint
-{
- ...
- public abstract bool Matches( object actual );
- public virtual bool Matches( ActualValueDelegate del );
- public virtual bool Matches<T>( ref T actual );
- public abstract void WriteDescriptionTo( MessageWriter writer );
- public virtual void WriteMessageTo( MessageWriter writer );
- public virtual void WriteActualValueTo( MessageWriter writer );
- ...
-}
-
-
-
Your derived class should save the actual argument to Matches in the protected
-field actual for later use.
-
-
The MessageWriter abstract class is implemented in the framework by
-TextMessageWriter. Examining the source for some of the builtin constraints
-should give you a good idea of how to use it if you have special formatting
-requirements for error messages.
-
-
Custom Constraint Syntax
-
-
NUnit includes classes that implement a special constraint syntax,
-allowing you to write things like...
-
-
-
Assert.That( myArray, Is.All.InRange(1,100) );
-
-
-
Of course, the NUnit constraint syntax will not be aware of your
-custom constraint unless you modify NUnit itself. As an alternative,
-you may use the Matches(Constraint) syntactic element in order
-to write code like...
-
-
-
MyConstraint myConstraint = new MyConstraint();
-Assert.That( myArray, Has.Some.Matches(myConstraint) );
The Datapoint and Datapoints attributes are used
- to provide data for Theories and are ignored for ordinary
- tests - including tests with parameters.
-
-
DataPointAttribute
-
-
When a Theory is loaded, NUnit creates arguments for each
- of its parameters by using any fields of the same type
- as the parameter annotated with the DatapointAttribute.
- Fields must be members of the class containing the Theory
- and their Type must exactly match the argument for which
- data is being supplied.
-
-
DataPointsAttribute
-
-
In addition to specifying individual datapoints, collections of
- datapoints may be provided by use of the DatapointsAttribute
- - note the spelling. This attribute may be placed on methods or
- properties in addition to fields. The returned value must be
- either an array of the required type or (beginning with NUnit
- 2.5.5) an IEnumerable<T> returning an enumeration
- of the required type. The data Type must exactly match the argument
- for which data is being supplied.
-
-
Automatically Supplied Datapoints
-
-
It is normally not necessary to specify datapoints for
- boolean or enum arguments. Beginning with
- version 2.5.4, NUnit automatically supplies values of true
- and false for boolean arguments and will supply all
- defined values of any enumeration.
-
-
If for some reason you don't wish to use all possible values, you
- can override this behavior by supplying your own datapoints. If you
- supply any datapoints for an argument, automatic datapoint generation
- is suppressed.
-
-
NUnit will call IDataPointProvider2 if it is available. Otherwise
- IDataPointProvider will be used.
-
-
The HasDataFor method should return true if the provider is able to
- supply data for the specified parameter. If a provider only wants to be used
- on certain types of tests, it can examine the supplied ParameterInfo and
- its associated MethodInfo and Type and/or the parent test suite.
-
-
The GetDataFor method should return a list of individual values to
- use for the supplied parameter in running the test.
-
-
Notes:
-
-
-
Most providers will delegate one of the interface implementations
- to the other if they implement both.
-
DataPointProviders that use data from the fixture class should use
- IDataPointProvider2 interface so that they are able to access any
- arguments supplied for constructing the fixture object.
-
Providers that acquire data from outside the fixture will usually
- be able to work with IDataPointProvider alone.
-
The IDataPointProvider2 interface was added in the NUnit 2.5.1 release.
-
DelayedConstraint delays the application of another constraint until a certain
- amount of time has passed. In it's simplest form, it replaces use of a Sleep
- in the code but it also supports polling, which may allow use of a longer
- maximum time while still keeping the tests as fast as possible.
-
-
The After modifier is permitted on any constraint, and the delay applies to
- the entire expression up to the point where After appears.
-
-
Use of a DelayedConstraint with a value argument makes no sense, since
- the value will be extracted at the point of call. It's intended use is with
- delegates and references. If a delegate is used with polling, it may be called
- multiple times so only methods without side effects should be used in this way.
-
-
-
Syntax Helper
Constructor
Operation
-
After(int)
DelayedConstraint(Constraint, int)
tests that a constraint is satisfied after a delay.
-
After(int, int)
DelayedConstraint(Constraint, int, int)
tests that a constraint is satisfied after a delay using polling.
The Description attribute is used to apply descriptive text to a Test,
-TestFixture or Assembly. The text appears in the XML output file and is
-shown in the Test Properties dialog.
[assembly: Description("Assembly description here")]
-
-namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture, Description("Fixture description here")]
- public class SomeTests
- {
- [Test, Description("Test description here")]
- public void OneTest()
- { /* ... */ }
- }
-}
-
-
<assembly: Description("Assembly description here")>
-
-Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), Description("Fixture description here")>_
- Public Class SomeTests
- <Test(), Description("Test description here")>_
- Public Sub OneTest()
- ' ...
- End Sub
- End Class
-End Namespace
-
Note: The Test and TestFixture attributes continue to support an
-optional Description property. The Description attribute should be used for
-new applciations. If both are used, the Description attribute takes precedence.
The DirectoryAssert class provides methods for making asserts about
-file system directories, which may be provided as DirectoryInfos or as strings
-giving the path to each directory.
-
-
DirectoryAssert.AreEqual() and DirectoryAssert.AreNotEqual()
-compare two directories for equality. Directories are considered equal if
-they have the same FullName, Attributes, CreationTime and LastAccessTime.
-
-
Note: Two different directories containing the same files are not
-considered to be equal.
-
-
DirectoryAssert.IsWithin() and DirectoryAssert.IsNotWithin()
-test whether the second directory is a direct or indirect subdirectory
-of the first directory.
-
-
An EqualConstraint is used to test whether an actual value
- is equal to the expected value supplied in its constructor,
- optionally within a specified tolerance.
-
-
Values of type float and double are normally compared using a tolerance
-specified by the Within modifier. The special values PositiveInfinity,
-NegativeInfinity and NaN compare
-as equal to themselves.
-
-
With version 2.5, floating-point values may be compared using a tolerance
-in "Units in the Last Place" or ULPs. For certain types of numerical work,
-this is safer than a fixed tolerance because it automatically compensates
-for the added inaccuracy of larger numbers.
-
-
String comparisons normally respect case. The IgnoreCase modifier
- causes the comparison to be case-insensitive. It may also be used when
- comparing arrays or collections of strings.
-
-
DateTimes and TimeSpans may be compared either with or without
- a tolerance. A tolerance is specified using Within with either a
- TimeSpan as an argument or with a numeric value followed by a one of
- the time conversion modifiers: Days, Hours, Minutes,
- Seconds, Milliseconds or Ticks.
-
-
-DateTime now = DateTime.Now;
-DateTime later = now + TimeSpan.FromHours(1.0);
-
-Assert.That( now, Is.EqualTo(now) );
-Assert.That( later. Is.EqualTo(now).Within(TimeSpan.FromHours(3.0);
-Assert.That( later, Is.EqualTo(now).Within(3).Hours;
-
-
-
Comparing Arrays and Collections
-
-
Since version 2.2, NUnit has been able to compare two single-dimensioned arrays.
- Beginning with version 2.4, multi-dimensioned arrays, nested arrays (arrays of arrays)
- and collections may be compared. With version 2.5, any IEnumerable is supported.
- Two arrays, collections or IEnumerables are considered equal if they have the
- the same dimensions and if each of the corresponding elements is equal.
-
-
If you want to treat two arrays of different shapes as simple collections
- for purposes of comparison, use the AsCollection modifier, which causes
- the comparison to be made element by element, without regard for the rank or
- dimensions of the array. Note that jagged arrays (arrays of arrays) do not
- have a single underlying collection. The modifier would be applied
- to each array separately, which has no effect in most cases.
-
-
Dictionaries implement ICollection, and NUnit has treated
-them as collections since version 2.4. However, this did not
-give useful results, since the dictionary entries had to be
-in the same order for the comparison to succeed and the
-underlying implementation had to be the same.
-
-
Beginning with NUnit 2.5.6, NUnit has specific code for
-comparing dictionaries. Two dictionaries are considered equal if
-
-
-
The list of keys is the same - without regard to ordering.
-
The values associated with each key are equal.
-
-
-
You can use this capability to compare any two objects implementing
-IDictionary. Generic and non-generic dictionaries (Hashtables)
-may be successfully compared.
-
-
User-Specified Comparers
-
-
If the default NUnit or .NET behavior for testing equality doesn't
-meet your needs, you can supply a comparer of your own through the
-Using modifier. When used with EqualConstraint, you
-may supply an IEqualityComparer, IEqualityComparer<T>,
-IComparer, IComparer<T> or Comparison<T>
-as the argument to Using.
-
-
When checking the equality of user-defined classes, NUnit makes use
- of the Equals override on the expected object. If you neglect to
- override Equals, you can expect failures non-identical objects.
- In particular, overriding operator== without overriding Equals
- has no effect.
-
The Within modifier was originally designed for use with floating point
- values only. Beginning with NUnit 2.4, comparisons of DateTime values
- may use a TimeSpan as a tolerance. Beginning with NUnit 2.4.2,
- non-float numeric comparisons may also specify a tolerance.
-
Beginning with NUnit 2.4.4, float and double comparisons for which no
- tolerance is specified use a default, use the value of
- GlobalSettings.DefaultFloatingPointTolerance. If this is not
- set, a tolerance of 0.0d is used.
-
Prior to NUnit 2.2.3, comparison of two NaN values would always fail,
- as specified by IEEE floating point standards. The new behavior, was
- introduced after some discussion becuase it seems more useful in tests.
- To avoid confusion, consider using Is.NaN where appropriate.
-
When an equality test between two strings fails, the relevant portion of
- of both strings is displayed in the error message, clipping the strings to
- fit the length of the line as needed. Beginning with 2.4.4, this behavior
- may be modified by use of the NoClip modifier on the constraint. In
- addition, the maximum line length may be modified for all tests by setting
- the value of TextMessageWriter.MaximumLineLength in the appropriate
- level of setup.
-
When used with arrays, collections or dictionaries, EqualConstraint
- operates recursively. Any modifiers are saved and used as they apply to
- individual items.
-
A user-specified comparer will not be called by EqualConstraint
- if either or both arguments are null. If both are null, the Constraint
- succeeds. If only one is null, it fails.
-
NUnit has special semantics for comparing Streams and
-DirectoryInfos. For a Stream, the contents are compared.
-For a DirectoryInfo, the first-level directory contents are compared.
-
These methods test whether the two arguments are equal. Overloaded
-methods are provided for common value types so that languages that don't
-automatically box values can use them directly.
The method overloads that compare two objects make special provision so that numeric
- values of different types compare as expected. This assert succeeds:
-
Assert.AreEqual( 5, 5.0 );
-
-
-
Comparing Floating Point Values
-
-
Values of type float and double are normally compared using an additional
-argument that indicates a tolerance within which they will be considered
-as equal. Beginning with NUnit 2.4.4, the value of
-GlobalSettings.DefaultFloatingPointTolerance is used if a third argument
-is not provided. In earlier versions, or if the default has not been set,
-values are tested for exact equality.
-
-
Special values are handled so that the following Asserts succeed:
Note: The last example above represents a change with NUnit 2.2.3.
- In earlier releases, the test would fail. We have made this change
- because the new behavior seems to be more useful in tests. To avoid confusion,
- we suggest using the new Assert.IsNaN method where appropriate.
-
-
Comparing Arrays and Collections
-
-
Since version 2.2, NUnit has been able to compare two single-dimensioned arrays.
- Beginning with version 2.4, multi-dimensioned arrays, nested arrays (arrays of arrays)
- and collections may be compared. Two arrays or collections will be treated as equal
- by Assert.AreEqual if they have the same dimensions and if each of the corresponding
- elements is equal.
EventListeners are able to respond to events that occur in the course
-of a test run, usually by recording information of some kind. Note that
-EventListeners called asynchronously with respect to test execution and
-are not able to affect the actual execution of the test.
-
-
Extension Point
-
Addins use the host to access this extension point by name:
-
-
ExpectedExceptionAttribute (NUnit 2.0 plus Updates)
-
-
This is the way to specify that the execution of a test will throw an
- exception. This attribute has a number of positional and
- named parameters, which we will discuss in separate sections
- according to the purpose they serve.
-
-
Specifying the Expected Exception Type
-
-
The original attribute, introduced with NUnit 2.0 took a single
-argument giving the exact type of the expected exception. For example...
Beginning with NUnit 2.2.4, it became possible to specify the type
-of exception as a string, avoiding the need for a reference to the
-defining assembly...
The above two examples function identically: the test only succeeds if a
-System.Argument exception is thrown.
-
-
Specifying the Expected Message
-
-
NUnit 2.1 introduced a constructor with a second argument, specifying the
-exact text of the message property of the exception. After NUnit 2.2.4, the
-same extension was made to the constructor taking a string argument. With
-NUnit 2.4, these arguments are marked obsolete, and a named parameter
-is provided instead...
With NUnit 2.4, it is possible to specify additional tests on the
-exception message, beyond a simple exact match. This is done using the
-MatchType named parameter, whose argument is an enumeration, defined as
-follows:
-
-
-
public enum MessageMatch
-{
- /// Expect an exact match
- Exact,
- /// Expect a message containing the parameter string
- Contains,
- /// Match the regular expression provided as a parameter
- Regex,
- /// Expect a message starting with the parameter string
- StartsWith
-}
-
-
The following example is for a test that passes only if an ArgumentException
-with a message containing "unspecified" is received.
If MatchType is not specified, an exact match is used as before.
-
-
Specifying a Custom Error Message
-
-
With NUnit 2.4, it is possible to specify a custom message to be
-displayed if the ExpectedException attribute is not satisfied. This
-is done through the UserMessage named parameter...
If the processing required for an exception is too complex to express
-in the attribute declaration, the normal practice is to process it in the
-test code using a try/catch block. As an alternative, NUnit 2.4 allows
-designating a method that will be called to process the exception. This
-is particularly useful when multiple exceptions need to be processed
-in the same way.
-
-
An common exception handler may be designated by implementing the
-IExpectExceptionInterface, which is defined as follows...
-
-
-
public interface IExpectException
-{
- void HandleException( System.Exception ex );
-}
-
-
-
The exception handler is only called for methods marked with
-the ExpectedException attribute. If all checks - including
-the type of the exception - are to be performed in code, the
-attribute may be specified without any arguments in order to
-indicate that an exception is expected.
-
-
An handler may be designated for a particular method
-using the Handler named parameter.
This technique may be
-used without implementing IExpectException or in
-combination with it. In the latter case, the designated handler
-applies to any method that specifies it, while the normal
-exception handler applies to any other methods that specify
-an ExpectedException.
-
-
However it is specified, the handler method should examine the exception and
-Assert on whatever properties are relevant. Any resulting failure message
-will then be consistent in format with other assertions performed in the tests.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [Test]
- [ExpectedException(typeof(InvalidOperationException))]
- public void ExpectAnExceptionByType()
- { /* ... */ }
-
- [Test]
- [ExpectedException("System.InvalidOperationException")]
- public void ExpectAnExceptionByName()
- { /* ... */ }
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()> Public Class SuccessTests
- <Test(), ExpectedException(GetType(Exception))>
- Public Sub ExpectAnExceptionByType()
- ' ...
- End Sub
-
- <TestFixture()> Public Class SuccessTests
- <Test(), ExpectedException("System.Exception")>
- Public Sub ExpectAnExceptionByName()
- ' ...
- End Sub
- End Class
-End Namespace
-
The Assert.Throws method is pretty much in a class by itself. Rather than
- comparing values, it attempts to invoke a code snippet, represented as
- a delegate, in order to verify that it throws a particular exception.
-
-
It's also in a class by itself in that it returns an Exception, rather
- than void, if the Assert is successful. See the example below for
- a few ways to use this.
-
-
Assert.Throws may be used with a constraint argument, which is applied
- to the actual exception thrown, or with the Type of exception expected.
- The Type format is available in both both a non-generic and (in the .NET 2.0 version)
- generic form.
-
-
Assert.DoesNotThrow simply verifies that the delegate does not throw
- an exception.
-
-
Assert.Catch is similar to Assert.Throws but will pass for an exception
- that is derived from the one specified.
-
-
In the above code TestDelegate is a delegate of the form
-void TestDelegate(), which is used to execute the code
-in question. Under .NET 2.0, this may be an anonymous delegate.
-If compiling under C# 3.0, it may be a lambda expression.
-
-
The following example shows different ways of writing the
-same test.
-
-
Use the form that matches your style of coding.
-
-
Exact Versus Derived Types
-
-
When used with a Type argument, Assert.Throws requires
-that exact type to be thrown. If you want to test for any
-derived Type, use one of the forms that allows specifying
-a constraint. Alternatively, you may use Assert.Catch,
-which differs from Assert.Throws in allowing derived
-types. See the following code for examples:
-
-
-
-// Require an ApplicationException - derived types fail!
-Assert.Throws( typeof(ApplicationException), code );
-Assert.Throws<ApplicationException>()( code );
-
-// Allow both ApplicationException and any derived type
-Assert.Throws( Is.InstanceOf( typeof(ApplicationException), code );
-Assert.Throws( Is.InstanceOf<ApplicationException>(), code );
-
-// Allow both ApplicationException and any derived type
-Assert.Catch<ApplicationException>( code );
-
-// Allow any kind of exception
-Assert.Catch( code );
-
The Explicit attribute causes a test or test fixture to be ignored unless it is
- explicitly selected for running. The test or fixture will be run if it is
- selected in the gui, if its name is specified on the console runner command
- line as the fixture to run or if it is included by use of a Category filter.
-
-
An optional string argument may be used to give the reason for marking
- the test Explicit.
-
-
If a test or fixture with the Explicit attribute is encountered in the course of
- running tests, it is skipped unless it has been specifically selected by one
- of the above means. The test does not affect the outcome of the run at all:
- it is not considered as ignored and is not even counted in the total number
- of tests. In the gui, the tree node for the test remains gray and the
- status bar color is not affected.
-
-
Note: In versions of NUnit prior to 2.4, these tests were
- shown as ignored.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture, Explicit]
- public class ExplicitTests
- {
- // ...
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), Explicit()>
- Public Class ExplicitTests
- ' ...
- End Class
-End Namespace
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [Test, Explicit]
- public void ExplicitTest()
- { /* ... */ }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()>
- Public Class SuccessTests
- <Test(), Explicit()> Public Sub ExplicitTest()
- ' ...
- End Sub
- End Class
-End Namespace
-
NUnit is designed to be extended in a number of ways.
-
-
Extensions to the NUnit framework - the part of NUnit that is referenced
-by tests - usually take the form of
-Custom Constraints, written by users to
-encapsulate tests that pertain to their specific projects.
-
-
Extending the features found within NUnit itself depends on the use of
-NUnit Addins.
-Currently, The Addin mechanism only supports extensions to the NUnit core -
-the part of NUnit that builds and executes test suites. However, the API that
-is used provides for the future ability to extend the client side of NUnit,
-including the GUI.
An Extenders Guide will be published in the future. At the moment, writing an
-extension is a bit of an adventure. Extension authors are advised to join the
-nunit-developer list and post questions and comments there.
-
-
For the moment, the following tips may be of assistance.
-
-
The nunit.core.interfaces assembly is intended to be stable in the future
-while the nunit.core assembly will change from release to release. Right now,
-both assemblies are still in flux, but extensions that depend solely on the interfaces
-assembly will have a much better chance of surviving NUnit version changes. Unfortunately,
-this is rather difficult to do without duplicating a great deal of NUnit code. Most
-of the add-in samples provided with NUnit are currently version dependent.
-
-
If you place the definition of a custom attribute in the same assembly as your
-add-in, then user tests are dependent on the add-in assembly. If the add-in is
-version-dependent, then the user tests will also be version-dependent. We suggest
-placing any types referenced by user tests in a separate assembly, particularly if
-your extension relies on nunit.core.
-
-
If using Visual Studio, set Copy Local to false for any references to nunit.core
-or nunit.core.interfaces. This is especially important if you are also building
-NUnit itself.
-
-
There is currently no mechanism to allow decorators to apply in a particular order.
-NUnit applies decorators in the order in which they are returned through reflection,
-which may vary among different runtimes.
-
-
Avoid trying to "stretch" the existing extension points to do more than they were
-intended to do. Rather, let us know what further extension points you would like to see!
-
The FileAssert class provides methods for comparing two files,
-which may be provided as Streams, as FileInfos or as strings
-giving the path to each file.
This attribute is used inside a TestFixture to provide a single set of
- functions that are performed once prior to executing any of the tests
- in the fixture.
-
-
Before NUnit 2.5, a TestFixture could have only one TestFixtureSetUp method
- and it was required to be an instance method.
-
-
Beginning with NUnit 2.5, TestFixtureSetUp methods may be either static or
- instance methods and you may define more than one of them in a fixture.
- Normally, multiple TestFixtureSetUp methods are only defined at different levels
- of an inheritance hierarchy, as explained below.
-
-
If a TestFixtueSetUp method fails or throws an exception, none of the tests
- in the fixure are executed and a failure or error is reported.
-
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [TestFixtureSetUp] public void Init()
- { /* ... */ }
-
- [TestFixtureTearDown] public void Cleanup()
- { /* ... */ }
-
- [Test] public void Add()
- { /* ... */ }
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()> Public Class SuccessTests
- <TestFixtureSetUp()> Public Sub Init()
- ' ...
- End Sub
-
- <TestFixtureTearDown()> Public Sub Cleanup()
- ' ...
- End Sub
-
- <Test()> Public Sub Add()
- ' ...
- End Sub
- End Class
-End Namespace
-
The TestFixtureSetUp attribute is inherited from any base class. Therefore, if a base
- class has defined a SetFixtureSetUp method, that method will be called
- after each test method in the derived class.
-
-
Before NUnit 2.5, you were permitted only one TestFixtureSetUp method. If you wanted to
- have some TestFixtureSetUp functionality in the base class and add more in the derived
- class you needed to call the base class method yourself.
-
-
With NUnit 2.5, you can achieve the same result by defining a TestFixtureSetUp method
- in the base class and another in the derived class. NUnit will call base
- class TestFixtureSetUp methods before those in the derived classes.
-
-
Note: Although it is possible to define multiple TestFixtureSetUp methods
- in the same class, you should rarely do so. Unlike methods defined in
- separate classes in the inheritance hierarchy, the order in which they
- are executed is not guaranteed.
-
-
This attribute is used inside a TestFixture to provide a single set of
- functions that are performed once after all tests are completed.
-
-
Before NUnit 2.5, a TestFixture could have only one SetUp method
- and it was required to be an instance method.
-
-
Beginning with NUnit 2.5, TestFixtureTearDown methods may be either static or
- instance methods and you may define more than one of them in a fixture.
- Normally, multiple TestFixtureTearDown methods are only defined at different levels
- of an inheritance hierarchy, as explained below.
-
-
So long as any TestFixtureSetUp method runs without error, the TestFixtureTearDown method is
- guaranteed to run. It will not run if a TestFixtureSetUp method fails or throws an
- exception.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [TestFixtureSetUp] public void Init()
- { /* ... */ }
-
- [TestFixtureTearDown] public void Cleanup()
- { /* ... */ }
-
- [Test] public void Add()
- { /* ... */ }
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()> Public Class SuccessTests
- <TestFixtureSetUp()> Public Sub Init()
- ' ...
- End Sub
-
- <TestFixtureTearDown()> Public Sub Cleanup()
- ' ...
- End Sub
-
- <Test()> Public Sub Add()
- ' ...
- End Sub
- End Class
-End Namespace
-
The TestFixtureTearDown attribute is inherited from any base class. Therefore, if a base
- class has defined a TestFixtureTearDown method, that method will be called
- after each test method in the derived class.
-
-
Before NUnit 2.5, you were permitted only one TestFixtureTearDown method. If you wanted to
- have some TestFixtureTearDown functionality in the base class and add more in the derived
- class you needed to call the base class method yourself.
-
-
With NUnit 2.5, you can achieve the same result by defining a TestFixtureTearDown method
- in the base class and another in the derived class. NUnit will call base
- class TestFixtureTearDown methods after those in the derived classes.
-
-
Note: Although it is possible to define multiple TestFixtureTearDown methods
- in the same class, you should rarely do so. Unlike methods defined in
- separate classes in the inheritance hierarchy, the order in which they
- are executed is not guaranteed.
-
-
If you haven't already done so, go to our Download page, select a version of NUnit and download it. The
- Installation page
- contains instructions for installing on your system.
-
-
To get started using NUnit, read the Quick Start page. This article demonstrates the development process with NUnit in the
- context of a C# banking application. Check the
- Samples page for additional examples,
- including some in VB.Net, J# and managed C++.
-
-
Which Test Runner to use?
-
-
NUnit has two different ways to run your tests. The
- console runner, nunit-console.exe,
- is the fastest to launch, but is not interactive.
- The gui runner,
- nunit.exe, is a Windows Forms application that allows you to work
- selectively with your tests and provides graphical feedback.
The forms interface may be run with or without the name of a file containing
- tests on the command line. If the program is started without any file
- specified, it automatically loads the most recently loaded assembly.
-
Note: Options that take values may use an equal sign, a colon or a space
- to separate the option from its value.
-
Note: Under the Windows operating system, options may be prefixed by either
- a forward slash or a hyphen. Under Linux, a hyphen must be used. Options that
- take values may use an equal sign, a colon or a space to separate the option
- from its value.
-
Run without loading an Assembly
-
To suppress loading of the most recent assembly, use the /noload switch:
-
nunit /noload
-
-
Specifying an Assembly
-
The other option is to specify an assembly or project file name on the command
- line. The following will start the forms interface with the assembly
- nunit.tests.dll:
-
nunit nunit.tests.dll
-
-
The following will start the forms interface loading the same assembly through
- its Visual Studio project definition:
-
nunit nunit.tests.csproj
-
-
Assuming an NUnit test project has been created containing the assembly, the
- following will again load nunit.tests.dll:
-
nunit nunit.tests.nunit
-
-
Specifying an Assembly and a Fixture
-
- When specifying a a fixture, you must give the full name of the test fixture
- along with the containing assembly. For example, to load only the
- NUnit.Tests.AssertionTests in the nunit.tests.dll assembly use the following
- command:
-
The name specified after the /fixture option may be that of a TestFixture
- class, or a namespace. If a namespace is given, then all fixtures under that
- namespace are loaded. This option may be used with Visual Studio or NUnit
- projects as well.
-
-
Specifying Test Categories to Include or Exclude
-
NUnit provides CategoryAttribute for use in marking tests as belonging to
- one or more categories. Categories may be included or excluded in a test run
- using the /include or /exclude options. The following command
- starts the gui with only the tests in the BaseLine category selected:
-
nunit myassembly.dll /include:BaseLine
-
-
The following command selects all tests except those in the Database
- category:
-
nunit myassembly.dll /exclude:Database
-
-
-Multiple categories may be specified on either option, by using commas to
-separate them.
-
Note: At this time, the /include and /exclude options may not be
-combined on the command line.
-
-
-
Load and Run All Tests
-Normally, nunit only loads an assembly and then waits for the user to click
-on the Run button. If you wish to have the tests run immediately, use the /run
-option:
-
nunit nunit.tests.dll /run
-
-
Load and Run Selected Tests
-To load and immediately rerun the last selected tests, use the /runselected
-option:
-
nunit nunit.tests.dll /runselected
-
-
Note: If no selection has been saved, this option works just like /run.
-
Specifying which Configuration to Load
-
When loading a Visual Studio project or an NUnit project, the first
- configuration found will be loaded by default. Usually this is Debug. The
- configuration loaded may be controlled using the /config switch. The
- following will load the Release configuration of the nunit.tests.dll:
-
nunit nunit.tests.csproj /config:Release
-
-
Note: This option has no effect when loading an assembly directly.
-
Specifying Multiple Assemblies
-
The forms interface does not currently provide for specifying more than
- one assembly on the command line. Multiple-assembly projects must be loaded by
- specifying the name of a Visual Studio solution file or an NUnit test project.
-
Clearing the ShadowCopy Cache
-
The /cleanup option erases the shadow copy cache and exits.
-
Displaying Help
-
The /help or /? option displays a message box containing a brief
- help message.
The ignore attribute is an attribute to not run a test or test fixture for a
- period of time. The person marks either a Test or a TestFixture with the Ignore
- Attribute. The running program sees the attribute and does not run the test or
- tests. The progress bar will turn yellow if a test is not run and the test will
- be mentioned in the reports that it was not run.
-
-
This feature should be used to temporarily not run a test or fixture. This is a
- better mechanism than commenting out the test or renaming methods, since the
- tests will be compiled with the rest of the code and there is an indication at
- run time that a test is not being run. This insures that tests will not be
- forgotten.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- [Ignore("Ignore a fixture")]
- public class SuccessTests
- {
- // ...
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), Ignore("Ignore a fixture")>
- Public Class SuccessTests
- ' ...
- End Class
-End Namespace
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [Test]
- [Ignore("Ignore a test")]
- public void IgnoredTest()
- { /* ... */ }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()>
- Public Class SuccessTests
- <Test(), Ignore("Ignore a test")> Public Sub Ignored()
- ' ...
- End Sub
- End Class
-End Namespace
-
This documentation covers the NUnit 2.5.9 release,
- introducing a large set of new features to NUnit, particularly in
- the area of parameterized or data-driven testing.
-
-
Where applicable, we have marked sections with the version in which a feature
- first appeared.
-
-
If you are new to NUnit, we suggest you begin by reading the
- Getting Started section of this site.
- Those who have used earlier releases may want to begin with the
- Upgrading section.
-
-
See the
- Release Notes for more information on this release.
-
-
All documentation is included in the release packages of NUnit. Beginning with NUnit
-2.4.2, you may choose to download the documentation
-separately.
By default the NUnit installation program places all of the files into the
- C:\Program Files\NUnit 2.5.9 directory.
- In the installation directory there are up to four sub-directories: net-1.1,
- net-2.0, doc, and samples. The actual number depends on what the user has
- chosen to install. Source code is no
- longer provided with the binary installation package. Download the source
- package if source is needed.
-
Running NUnit
-
The installation program places a number of shortcuts in the start menu, which
- run NUnit under .NET or Mono, depending on what is installed on your system.
- For NUnit 2.5, the gui only runs under version 2.0 of the CLR, although tests
- may be executed under other versions using a separate process.
-
-
Configuration
-
When running NUnit from the command line or through the desktop shortcut, the
- configuration files files nunit.exe.config and nunit-console.exe.config control
- the operation of NUnit itself.
- Settings that you place in these files are not available to your tests or to the
- production code you are testing.
-
A separate config file is used for your tests themselves.
- If you are running tests from the test.dll assembly, the config file
- should be named test.dll.config. If you are running tests from the NUnit test
- project MyTests.nunit, the config file should be named MyTests.config. In
- either case the config file must reside in the same directory as the file from
- which it takes its name.
-
In addition to settings of your own, the config file for a set of tests may
- contain information used by NUnit in loading your tests. In particular, this
- allows you to control the apartment state and priority of the thread that NUnit
- uses to run your tests. Other settings may be added in the future.
-
See the Configuration Files
- page for further information on configuration.
-
-
Installation Verification
-
NUnit's own tests are available as an installation option. If you installed
-the tests, you may verify that the installation has worked successfully by
-running the NUnit gui and loading and running NUnitTests.nunit. All tests should pass.
-
-
-
-
Note: Although the NUnit installation has been modified to allow non-admin
- users to install, there are still a large number of tests which can only run
- successfully under an administrative id. This is a problem with the code in
- the tests themselves, not with NUnit.
-
Timing Tests
-
The assembly timing-tests.dll contains several tests that measure the performance of
- NUnit in loading tests. In addition, it contains some long-running tests that are used
- to verify that all remoting timeout problems have been fixed. The test cases
- all run for six to 12 minutes and give no indication whatsoever that they are
- working! This is required since correct handling of a non-communicative user
- test is what these tests are all about.
-
Additional Tests
-
Additional tests are included with the samples and in separate assemblies used
- as data by the verification tests themselves. Failures or not run conditions in
- these tests are intentional.
-
-
Manual Installation
-
-
You may build NUnit from source using one of the Visual Studio solutions or
- the NAnt script. In either case, an output directory is created, which
- contains all files needed in the proper relative location. Just copy this
- directory to a permanent location and create shortcuts if desired.
-
-
This software is provided 'as-is', without any express or implied warranty. In
- no event will the authors be held liable for any damages arising from the use
- of this software.
-
Permission is granted to anyone to use this software for any purpose, including
- commercial applications, and to alter it and redistribute it freely, subject to
- the following restrictions:
-
1. The origin of this software must not be misrepresented; you must not claim
- that you wrote the original software. If you use this software in a product, an
- acknowledgment (see the following) in the product documentation is required.
2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-
3. This notice may not be removed or altered from any source distribution.
-
-
License Note
-
This license is based on
-the open source zlib/libpng license. The idea was to keep the license
-as simple as possible to encourage use of NUnit in free and commercial
-applications and libraries, but to keep the source code together and to give
-credit to the NUnit contributors for their efforts. While this license allows
-shipping NUnit in source and binary form, if shipping a NUnit variant is the
-sole purpose of your product, please let
-us know.
Unlike Constraint classes, ListMapper is used to modify the actual
-value argument to Assert.That(). It transforms the actual value, which
-must be a collection, creating a new collection to be tested against the
-supplied constraint. Currently, ListMapper supports one transformation: creating
-a collection of property values.
-
-
Normally, ListMapper will be used through the List.Map() syntax helper
-or the inherited syntax equivalent, Map(). The following example
-shows three forms of the same assert:
-
-
Closes any open project, prompting the user to save it if it has been changed and then opens a
-FileSave dialog to allow selecting the name and location of the new project.
-
-
Open Project…
-
Closes any open project, prompting the user to save it if it has been changed and then opens a
-FileOpen dialog to allow selecting the name and location of an assembly, a test project or (if
-Visual Studio support is enabled) a Visual Studio project.
-
-
Close
-
Closes any open project, prompting the user to save it if it has been changed.
-
-
-
Save
-
Saves the currently open project. Opens the Save As dialog if this is the first time the project
-is being saved.
-
-
Save As…
-
Opens a FileSave dialog to allow specifying the name and location to which the project
-should be saved.
-
-
Reload Project
-
Completely reloads the current project by closing and re-opening it.
-
-
Reload Tests
-
Reloads the tests, merging any changes into the tree.
-
-
Select Runtime
-
Displays a list of runtime versions you may select in order to reload
-the tests using that runtime. This submenu is only present if you have
-more than one runtime version available. Any framework versions not supported
-by your NUnit installation will be disabled until you install the
-necessary NUnit components.
-
-
Recent Projects…
-
Displays a list of recently opened projects and assemblies from which the user is able to select one for opening.
-
-
Exit
-
Closes and exits the application. If a test is running, the user is given the opportunity to
-cancel it and or to allow it to continue. If the open project has any pending changes, the user
-is given the opportunity to save it.
-
-
View Menu
-
-
Full Gui
-
Displays the complete gui - as in prior versions of NUnit. This includes the
- errors and failures and other tabs and the progress bar.
-
-
Mini Gui
-
Switches the display to the mini-gui, which consists of the tree display
- only.
-
-
Result Tabs
-
Displays a submenu that allows showing or hiding the tabs on the right
- hand side of the display.
-
-
-
Errors & Failures, Tests Not Run, etc.
-
Selects the individual tabs to display.
-
-
-
Tree
-
Displays the Tree submenu.
-
-
-
Show Checkboxes
-
Turns the display of checkboxes in the tree on or off. The checkboxes may
- be used to select multiple tests for running.
-
-
Expand
-
Expands the currently selected tree node.
-
-
Collapse
-
Collapses the currently selected tree node.
-
-
Expand All
-
Expands all nodes of the tree.
-
-
Collapse All
-
Collapses all nodes in the tree to the root.
-
-
Hide Tests
-
Collapses all fixture nodes, hiding the test cases.
-
-
Properties…
-
Displays the Properties Dialog for the currently selected test.
-
-
-
GUI Font
-
Displays a submenu that allows changing the general font used by NUnit.
-
-
-
Increase
-
Increases the size of the font.
-
-
Decrease
-
Decreases the size of the font.
-
-
Change...
-
Displays the Font Change dialog.
-
-
Restore
-
Restores the default font.
-
-
-
Fixed Font
-
Displays a submenu that allows changing the fixed font used to display
-console output from the tests.
-
-
-
Increase
-
Increases the size of the fixed font.
-
-
Decrease
-
Decreases the size of the fixed font.
-
-
Restore
-
Restores the default fixed font.
-
-
-
Assembly Details...
-
Displays information about loaded test assemblies.
-
-
Status Bar
-
Displays or hides the status bar.
-
-
Project Menu
-
-
Configurations
-
Displays a submenu allowing selecting, adding or editing a configuration.
-
-
-
Debug, Release, etc.
-
Loads the specified configuration for testing.
-
-
Add…
-
Opens the Add Configuration Dialog, which allows entry of the name of the new
-configuration and specifying an existing configuration to use as a template.
Displays a FileOpen dialog to allow selecting an assembly to be added to the active
-configuration of the currently open project.
-
-
Add VS Project…
-
Only available if Visual Studio Support is enabled. Displays a FileOpen dialog to allows
-selecting a Visual Studio project to be added to the currently open project. Entries are added
-for each configuration specified in the VS project, creating new configurations in the test
-project if necessary.
Runs the test or tests that are selected in the tree. If checkboxes are visible,
-any checked tests are run by preference. This is the same function provided by
-the Run button.
-
-
Run Failed
-
Runs only the tests that failed on the previous run.
-
-
Stop Run
-
Stops the test run. This is the same function provided by the Stop button.
-
-
Tools Menu
-
-
Save Results as XML…
-
Opens a FileSave Dialog for saving the test results as an XML file.
-
-
Exception Details…
-
Displays detailed information about the last exception.
The MaxtimeAttribute is used on test methods to specify a maximum time
- in milliseconds for a test case. If the test case takes longer than the
- specified time to complete, it is reported as a failure.
-
-
Any assertion failures take precedence over the elapsed time check.
-
This attribute does not cancel the test if the time
-is exceeded. It merely waits for the test to complete and then
-compares the elapsed time to the specified maximum. If you want to
-cancel long-running tests, see TimeoutAttribute.
-
Since version 2.1, NUnit has allowed loading suites of tests from multiple assemblies in both
-the console and GUI runners. This may be done on an adhoc basis or by creating NUnit test projects
-saved as files of type '.nunit'. In either case, a top-level suite is constructed, which contains
-the root suite for each assembly. Tests are run and reported just as for a single assembly.
-
-
Adhoc Usage
-
-
Using the console runner, multiple assemblies may be run simply by specifying their names on the
-command line. See NUnit-Console Command Line Options for
-an example of this usage.
-
-
The gui runner does not support specifying multiple assemblies on the command-line.
-However, you can load a single assembly and then use the Project menu to add additional
-assemblies. Additionally, you can drag multiple assemblies to the tree view pane, in which
-case they will replace any assemblies already loaded.
-
-
NUnit Test Projects
-
-
Running tests from multiple assemblies is facilitated by the use of NUnit test projects. These are
-files with the extension .nunit containing information about the assemblies to be loaded. The
-following is an example of a hypothetical test project file:
This project contains two configurations, each of which contains two assemblies. The Debug
-configuration is currently active. By default, the assemblies will be loaded using the directory
-containing this file as the ApplicationBase. The PrivateBinPath will be set automatically to
-LibraryCore\bin\Debug;LibraryUI\bin\Debug or to the corresonding release path.
-XML attributes are used to specify non-default values for the ApplicationBase, Configuration
-File and PrivateBinPath. The Project Editor may
-be used to create or modify NUnit projects.
-
-
Even when you are running a single test assembly, NUnit creates an internal project
-to contain that assembly. If you are using the gui, you can save this project, edit it,
-add additional assemblies, etc. Note that the gui does not display the internal project
-unless you add assemblies or modify it in some other way.
-
-
If you use Visual Studio Support to load Visual
-Studio .Net project or solution files, NUnit converts them to Test projects internally.
-As with other internal projects, these test projects are not saved automatically but may
-be saved by use of the File menu.
-
-
Loading and Running
-
-
In the past, test writers have been able to rely on the current directory being set to the
-directory containing the single loaded assembly. For the purpose of compatibility, NUnit continues
-to set the current directory to the directory containing each assembly whenever any test from that
-assembly is run.
-
-
Additionally, because some assemblies may rely on unmanaged dlls in the same directory, the
-current directory is also set to that of the assembly at the time the assembly is loaded. However,
-in cases where multiple assemblies reference the same unmanaged assembly, this may not be sufficient
-and the user may need to place the directory containing the unmanaged dll on the path.
The nunit-agent.exe program is used by other runners when the tests are being
- run in a separate process. It is not intended for direct execution by users.
-
-
NUnit runs tests in a separate process in several situations:
-
-
-
When the program needs to be run under a different framework or version
-from the one being used by NUnit itself.
-
When the user requests process-level isolation through the command line
-or the NUnit settings.
-
-
-
Debugging
-
-
When debugging tests that are run in a separate process, it is
- not possible to do so by simply running the console or gui runner
- under the debugger. Rather, it is necessary to attach the debugger
- to the nunit-agent process after the tests have been loaded.
-
-
When running under the Gui, NUnit will continue to use the same
- process to reload tests so that it is not normally necessary to
- re-attach to a new process. However, if the settings are changed
- in a way that requires a differnt process - for example, by changing
- the version of the runtime that is being used - the old process will
- be terminated and a new one created. In that case, it's necessary
- to re-attach to the new process.
-
-
-
The nunit-console.exe program is a text-based runner and can be used when you
- want to run all your tests and dont need a red/yellow/green indication of
- success or failure.
-
It is useful for automation of tests and integration into other systems. It
- automatically saves its results in XML format, allowing you to produce reports
- or otherwise process the results. The following is a screenshot of the console
- program.
-
-
-
-
-
In this example, nunit-console has just run the tests in the mock-assembly.dll
- that is part of the NUnit distribution. This assembly contains a number of tests, some
- of which are either ignored or marked explicit. The summary line shows the
- result of the test run. Click here
- to see the XML produced for this test run.
-
-
The .NET 2.0 version of the nunit-console program is built using /platform:anycpu,
-which causes it to be jit-compiled to 32-bit code on a 32-bit system and 64-bit code
-on a 64 bit system. This causes an exception when NUnit is used to test a 32-bit
-application on a 64-bit system. To avoid this problem, use the nunit-console-x86
-program, which is built using /platform:x86, when testing 32-bit code on a
-64-bit system.
-
-
The nunit.exe program is a graphical runner. It shows the tests in an
- explorer-like browser window and provides a visual indication of the success or
- failure of the tests. It allows you to selectively run single tests or suites
- and reloads automatically as you modify and re-compile your code. The following
- is a screenshot of NUnit running the same mock-assembly.dll shown in the
- nunit-console example.
-
-
-
-
-
Tree Display
-
This version of NUnit uses symbols in the test tree, which allow those who
- are unable to easily distinguish colors to determine the test status.
- Successful tests are colored green, with a check mark. Tests that are ignored
- are marked with a yellow circle, containing a question mark. If any
- tests had failed, they would be marked red, with an X symbol.
-
-
In this example, there were a total of 11 test cases, but one of them was not
- counted because it was marked Explicit. Note that it is shown as a gray
- circle in the tree. Of the remaining 10 tests, 5 were run successfully and
- 5 were ignored.
-
-
The symbols shown in the tree are actually files in the NUnit bin directory.
- These files are named Success.jpg, Failure.jpg and Ignored.jpg and may be
- modified or replaced by the user.
-
-
Progress Bar
-
The progress bar shows the progress of the test. It is colored according
-to the "worst" result obtained: red if there were any failures, yellow if
-some tests were ignored and green for success.
-
-
Result Tabs
-
The tabs along the bottom of the display show the results of running
-a test. The Errors and Failures tab displays the error message
-and stack trace for both unexpected exceptions and assertion failures.
-Beginning with NUnit 2.5, source code for each stack location can be displayed
-in this tab - as is seen above - provided that the program was compiled with
-debug information.
-
-
The Tests Not Run tab provides a list of all tests that were
-selected for running but were not run, together with the reason.
-
-
The Text Output tab displays text output from the tests, potentially
-including console output, trace output and log output. The default display
-provides a single tab, but additional tabs may be created by the user to
-hold specific kinds of output. For more information on creating new tabs,
-see the documentation for the
-Settings Dialog.
-
-
-
Mini-Gui
-
-
Since the release of NUnit 2.4, an alternate "mini-gui" is also available. It
- may be selected from the View menu. In the following screenshot, the mini
- gui window has been positioned next to the Visual Studio IDE so
- that both windows can be seen.
NUnit originally identified tests in the time-honored way used in many xUnit
-test frameworks. Test classes inherited from the framework's
-TestCase class. Individual test case methods were identified by having names
-starting with "test..."
-
-
With NUnit 2.0, we introduced the use of attributes to identify both fixtures
-and test cases. Use of attributes in this way was a natural outcome of their
-presence in .NET and gave us a way of identifying tests that was completely
-independent of both inheritance and naming conventions.
-
-
However, by moving away from an inheritance-based mechanism we no longer
-had an easy way for others to extend NUnit's internal behavior. NUnit Addins are
-intended to fill that gap, providing an mechanism to introduce new or changed
-behavior without modifying NUnit itself.
-
-
Extension Points, Extensions and Addins
-
-
NUnit provides a number of Extension Points, places where it is
-possible to extend its behavior. Because NUnit works with various hosts
-and uses separate AppDomains to run tests, Extension Points are
-categorized into three types: Core, Client and Gui. Each of these types is
-supported by a different Extension Host.
-
-
An NUnit Addin provides enhanced functionality through one or more
-extensions, which it installs at identified Extension Points. Each
-Addin is characterized by the types of extensions it supplies, so that
-an Extension Host knows whether to invoke it.
-
-
-
Note: In the current release, only Core extensions are actually
-supported. An Addin may characterize itself as a Client or Gui extension and
-will be listed as such in the Addins Dialog,
-but no other action is taken.
-
-
-
Addin Identification, Loading and Installation
-
-
NUnit examines all assemblies in the bin/addins directory, looking
-for public classes with the NUnitAddinAttribute and implementing the
-IAddin interface. It loads all those it finds as Addins.
-
-
NUnitAddinAttribute supports three optional named parameters: Type,
-Name and Description. Name and Description are strings representing the name
-of the extension and a description of what it does. If no name is provided,
-the name of the class is used. Type may be any one or a combination of the
-ExtensionType enum members:
-
-
-
-The values may be or'ed together, allowing for future Addins that require
-extensions at multiple levels of the application. If not provided, Type
-defaults to ExtensionType.Core.
-
-
The IAddin interface, which must be implemented by each Addin,
-is defined as follows:
The Install method is called by each host for which the addin has
-specified an ExtensionType. The addin should check that the necessary extension
-points are available and install itself, returning true for success or false
-for failure to install. The method will be called once for each extension
-host and - for Core extensions - each time a new test domain is loaded.
-
-
The Install method uses the IExtensionHost interface to locate
-extension points. It is defined as follows:
The ExtensionPoints property returns an array of all extension points
-for those extensions that need the information. The ExtensionTypes
-property returns the flags for the type of extension supported by this host,
-allowing, for example, Gui extensions to only load in a Gui host.
-
-
Most addins will only need to use the GetExtensionPoint method to
-get the interface to a particular extension point. The IExtensionPoint
-interface is defined as follows:
Once again, most addins will only need to use one method - the
-Install method in this case. This method passes an extension object
-to the Extension Point where it is installed. Generally, extensions
-do not need to remove themselves once installed, but the method is
-provided in any case.
-
-
With NUnit 2.5, an additional interface, IExtensionPoint2 is
-available. It derives from IExtensionPoint and also allows setting
-the priority order in which the extension will be called in comparison to
-other extensions on the same extension point. The interface is defined
-as follows:
-
-
- public interface IExtensionPoint2 : IExtensionPoint
- {
- void Install( object extension, int priority );
- }
-
-
-
Only extension points that use a priority scheme implement this interface.
-In general, extension points with a priority scheme will use a default value
-for priority if the Install method without a priority is called.
-
-
In the NUnit 2.5 release, only the TestDecorators extension point implements
-IExtensionPoint2.
-
-
Extension Point Details
-
-
Depending on the particular extension point, the object passed will
-need to implement one or more interfaces. The following ExtensionPoints
-are implemented in this release of NUnit:
-
-
For examples of implementing each type of extension, see the Extensibility
-samples provided with NUnit. More complete examples are available in the
-code of NUnit itself, since NUnit uses the same mechanism internally.
The PairwiseAttribute is used on a test to specify that NUnit should
- generate test cases in such a way that all possible pairs of
- values are used. This is a well-known approach for combatting
- the combinatorial explosion of test cases when more than
- two features (parameters) are involved.
-
-
Note: In the current Alpha release, this attribute is
-accepted but ignored and data items are combined usin the default
-combinatorial approach.
-
-
NUnit 2.5 supports parameterized tests. Test methods
-may have parameters and various attributes are available
-to indicate what arguments should be supplied by NUnit.
-
-
Multiple sets of arguments cause the creation of multiple
-tests. All arguments are created at the point of loading the
-tests, so the individual test cases are available for
-display and selection in the Gui, if desired.
-
-
Some attributes allow you to specify arguments inline - directly on
- the attribute - while others use a separate method, property or field
- to hold the arguments. In addition, some attributes identify complete test cases,
- including all the necessary arguments, while others only provide data
- for a single argument. This gives rise to four groups of attributes,
- as shown in the following table.
-
-
In addition, when data is specified for individual arguments, special attributes
-may be added to the test method itself in order to tell NUnit how
-to go about combining the arguments. Currently, the following attributes
-are provided:
-
-
In NUnit 2.5, individual test cases are sorted alphabetically and executed in
- that order. With NUnit 2.5.1, the individual cases are not sorted, but are
- executed in the order in which NUnit discovers them. This order does not
- follow the lexical order of the attributes and will often vary between different
- compilers or different versions of the CLR.
-
-
The following specific rules for ordering apply:
-
-
If all arguments are specified in a single TestCaseSource attribute,
- the ordering of the cases provided will be maintained.
-
If each parameter has a single Values, ValueSource or
- Range attribute and the Sequential combining strategy
- is used - or there is only one argument - the ordering will be maintained.
-
In all other cases, including using multiple TestCase attributes
- or a combination of different types of attributes, the ordering of the
- test cases is undefined.
-
Path constraints perform tests on paths, without reference to any
- actual files or directories. This allows testing paths that are
- created by an application for reference or later use, without
- any effect on the environment.
-
-
Path constraints are intended to work across multiple file systems,
- and convert paths to a canonical form before comparing them.
-
-
It is usually not necessary to know the file system of the paths
- in order to compare them. Where necessary, the programmer may
- use the IgnoreCase and RespectCase modifiers to provide
- behavior other than the system default.
-
-
The Platform attribute is used to specify platforms for which a test or fixture
- should be run. Platforms are specified using case-insensitive string values
- and may be either included or excluded from the run by use of the Include or
- Exclude properties respectively. Platforms to be included may alternatively
- be specified as an argument to the PlatformAttribute constructor. In either
- case, multiple comma-separated values may be specified.
-
-
If a test or fixture with the Platform attribute does not satisfy the specified
- platform requirements it is skipped. The test does not affect the outcome of
- the run at all: it is not considered as ignored and is not even counted in
- the total number of tests. In the gui, the tree node for the test remains
- gray and the status bar color is not affected.
-
-
Note: In versions of NUnit prior to 2.4, these tests were
- shown as ignored.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- [Platform("NET-2.0")]
- public class DotNetTwoTests
- {
- // ...
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), Platform("NET-2.0")>
- Public Class DotNetTwoTests
- ' ...
- End Class
-End Namespace
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [Test]
- [Platform(Exclude="Win98,WinME")]
- public void SomeTest()
- { /* ... */ }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()>
- Public Class SuccessTests
- <Test(), Platform(Exclude="Win98,WinME")> Public Sub SomeTest()
- ' ...
- End Sub
- End Class
-End Namespace
-
PNUnit stands for "Parallel NUnit." It is an extension of NUNit
-developed by Pablo Santos Luaces and his team at Codice Software for
-their internal use in testing the Plastic (TM) Software Configuration
-Management System. Codice released PNUnit to the community in 2007.
-
-
As part of the NUnit 2.5 release, we worked with the NUnit and PNUnit
-teams worked together to make PNUnit work with NUnit without any modifications.
-PNUnit is now included in the NUnit distribution.
-
-
How it Works
-
-
PNUnit is not intended for "casual" parallelism merely to
-make the tests run faster. Rather, it's intended as a way to test
-applications composed of distributed, communicating components. Tests
-of each component run in parallel and use memory barriers to synchronize
-their operation.
-
-
PNUnit uses a special executable to launch its tests.
-The launcher reads an xml file that specifies the tests to be
-executed and where they should run, whether on the same machine or
-on another machine on the network.
-
-
The Project Editor is displayed through the Project | Edit menu item and allows creating or
-modifying NUnit test projects. It should be noted that a Test Project is active whenever any tests
-have been loaded, even if no project was explicitly created or referenced. In the case of an
-assembly being loaded, an internal wrapper project is created. This allows the user to change
-settings and save the project directly without needing to perform any extra steps. The editor
-consists of a common area and two tabs, as seen in the image below.
-
-
Common Area
-
-
The common area of the Project Editor contains information pertaining to
- the project as a whole. Information that applies to a particular configuration
- is displayed in the General and Assemblies tabs.
-
-
Project Path
-
This label shows the full path to the project file. In the case of a
- wrapper project, the path is set to the same directory as the assembly
- that was initially opened.
-
-
Application Base
-
This TextBox allows the user to change the project AppBase, which defaults to
- the directory of the project file. The button to the right of the TextBox
- allows the user to browse and select a directory.
-
-
Process Model
-
This dropdown list allows you to specify how operating system processes are
- used in loading and running the tests in this project. Four settings are
- defined:
-
-
The Default setting refers to the option selected by the user
- on the Assembly Isolation page of the NUnit Settings Dialog.
-
Single means that tests are run in a test domain in the
- same process as NUnit. This is the way previous versions of NUnit
- ran tests.
-
Separate means that all the tests are run in a separate process
- that NUnit creates.
-
Multiple means that NUnit will create a separate process for
- each test assembly in the project and run its tests there.
-
-
-
Domain Usage
-
This dropdown list allows you to specify how tests are loaded into
- AppDomains by NUnit. Three settings are defined:
-
-
The Default setting refers to the option selected by the user
- on the Assembly Isolation page of the NUnit Settings Dialog.
-
Single means that all tests will run in a single test domain
- created by NUnit. This was the way versions of NUnit prior to 2.4
- ran tests.
-
Multiple means that each test assembly is loaded into a
- separate AppDomain. This setting is not available when Multiple
- processes are selected in the Process Model dropown.
-
-
-
Configuration
-
This dropdown list allows you to select the particular configuration
- within a project that is displayed in the bottom part of the dialog.
-
-
Edit Configs...
-
This button opens the
- Configuration Editor,
- which allows you to add, delete or rename configs and set the
- active configuration.
-
-
-
-
-
General Tab
-
-
The General tab allows setting a number of options pertaining to the selected configuration, all of
-which will be stored in the NUnit project file as attributes of the xml node.
-
-
Runtime
-
This dropdown allows you to select a particular runtime framework to be used
- for loading and running tests under the current configuration. Currently,
- only Microsoft .NET and Mono are supported. If Any is selected, the
- tests will be run under the same runtime that NUnit itself is currently using.
-
-
Version
-
This ComboBox allows you to select the particular version of the runtime framework
- to be used for loading and running tests under the current configuration. The
- dropdown list contains entries for
-
-
Default
-
1.0
-
1.1
-
2.0
-
4.0
-
-
-
If you select "Default" the assemblies in the project are examined to determine
- the version that is required.
- See Runtime Selection for
- more information on how NUnit selects the version to be used.
-
-
In special cases, you may wish to enter a version number that is not listed
- in the list box. You may specify the version using two, three or four
- components. The version you provide will be saved as you enter it. Leaving
- the text box blank is equivalent to selecting "Default."
-
-
Note: Running tests under a different runtime or version from the one that NUnit
- is currently using will force them to run in a separate process.
-
-
Note: To conform with normal usage, specifying Mono as the runtime
- with "1.0" as the version results in use of the Mono 1.0 profile, equating
- to version 1.1.4322.
-
-
ApplicationBase
-
The ApplicationBase defaults to the directory containing the project file. Beginning
-with NUnit 2.2.3, it may be set to any location that is desired.
-
-
Configuration File Name
-
The configuration file defaults to the name of the test project with the extension changed
-from .nunit to .config. The user may substitute another name.
-
-
PrivateBinPath
-
By default, the PrivateBinPath is generated from the assembly locations specified on the
-Assemblies Tab. For those applications requiring a different level of control, it may be
-specified manually or using this editor or placed in the configuration file.
-
-
Assemblies Tab
-
-
The assemblies tab contains the list of assemblies that form part of this test project.
-
-
Note: Although the dialog shows the location of assemblies as absolute paths, they are always
-persisted in the NUnit project file as paths relative to the application base. This allows moving
-projects as a whole to a different directory location.
-
-
-
-
-
Add...
-
Opens a dialog allowing adding an assembly to this configuration. If Visual
-Stuio support is enabled, you may also select and add a VS project.
-
-
Remove
-
After confirmation, removes the selected assembly from this configuration.
-
-
Assembly Path
-
This text box displays the full path to the selected assembly. You may edit
-the contents to change the path to the assembly.
-
-
The Property attribute provides a generalized approach to setting named
- properties on any test case or fixture, using a name/value pair.
-
-
In the example below, the fixture class MathTests is given a Location
- value of 723 while the test case AdditionTest is given a Severity
- of "Critical"
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture, Property("Location",723)]
- public class MathTests
- {
- [Test, Property("Severity", "Critical")]
- public void AdditionTest()
- { /* ... */ }
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), Property("Location",723)>
- Public Class MathTests
-
- <Test(), Property("Severity","Critical")>
- Public Sub AdditionTest()
- ' ...
- End Sub
-
- End Class
-
-End Namespace
-
The PropertyAttribute is not used for any purpose by NUnit itself, but
-it does display them in the XML output file and in the Test Properties
-dialog of the gui.
-
-
It is
- possible to write extensions that access the value of specific properties.
- It is also possible to access the value of properties from within a test
- using reflection.
-
-
Custom Property Attributes
-
-
Users can define custom
-attributes that derive from PropertyAttribute and have them
-recognized by NUnit. PropertyAttribute provides a protected constructor
-that takes the value of the property and sets the property name to the
-name of the derived class. NUnit itself uses this facility: some of
-it's specialized attributes are actually specializations of PropertyAttribute.
-
-
Here's an example that creates a Severity property. It works
-just like any other property, but has a simpler syntax and is type-safe.
-A test reporting system might make use of the property to provide special reports.
-
-
Beginning with NUnit 2.5, a property attribute is able to contain
-multiple name/value pairs. This capability is not exposed publicly
-but may be used by derived property classes. NUnit uses this
-feature itself for certain attributes. See, for example,
-RequiresThreadAttribute.
-
-
PropertyConstraint is used to test for existence of a named property and
-optionally tests its value. It may also be used as a prefix for other constraints
-to be applied to the property.
-
-
-
Syntax Helper
Constructor
Operation
-
Has.Property( string )
PropertyConstraint( string )
tests that a specific property exists
-
Has.Property( string, object )
PropertyConstraint( string, object )
tests that the value of a property is equal to the value provided
-
Has.Property( string, Constraint)...
PropertyConstraint
applies the following constraint to the value of a named property
-
Has.Length( int )
PropertyConstraint
tests that the object's Length property is equal to the value given
-
Has.Count( int )
PropertyConstraint
tests that the object's Count property is equal to the value given
Note: This page is based on the original QuickStart.doc, found in
-earlier releases of NUnit. It has been pointed out that it isn't a good
-example of Test-Driven Development. However, we're keeping it in the docs
-because it does illustrate the basics of using NUnit. We'll revise or replace
-it in a future release.
-
-
Let’s start with a simple example. Suppose we are writing a bank application and we have a basic domain class – Account. Account supports operations to deposit, withdraw, and transfer funds. The Account class may look like this:
-
-
-
namespace bank
-{
- public class Account
- {
- private float balance;
- public void Deposit(float amount)
- {
- balance+=amount;
- }
-
- public void Withdraw(float amount)
- {
- balance-=amount;
- }
-
- public void TransferFunds(Account destination, float amount)
- {
- }
-
- public float Balance
- {
- get{ return balance;}
- }
- }
-}
-
-
-
Now let’s write a test for this class – AccountTest. The first method we will test is TransferFunds.
-
-
-
namespace bank
-{
- using NUnit.Framework;
-
- [TestFixture]
- public class AccountTest
- {
- [Test]
- public void TransferFunds()
- {
- Account source = new Account();
- source.Deposit(200.00F);
- Account destination = new Account();
- destination.Deposit(150.00F);
-
- source.TransferFunds(destination, 100.00F);
- Assert.AreEqual(250.00F, destination.Balance);
- Assert.AreEqual(100.00F, source.Balance);
-
- }
- }
-}
-
-
-
The first thing to notice about this class is that it has a [TestFixture] attribute associated with it – this is the way to indicate that the class contains test code (this attribute can be inherited). The class has to be public and there are no restrictions on its superclass. The class also has to have a default constructor.
-
-
The only method in the class – TransferFunds, has a [Test] attribute associated with it – this is an indication that it is a test method. Test methods have to return void and take no parameters. In our test method we do the usual initialization of the required test objects, execute the tested business method and check the state of the business objects. The Assert class defines a collection of methods used to check the post-conditions and in our example we use the AreEqual method to make sure that after the transfer both accounts have the correct balances (there are several overloadings of this method, the version that was used in this example has the following parameters : the first parameter is an expected value and the second parameter is the actual value).
-
-
Compile and run this example. Assume that you have compiled your test code into a bank.dll. Start the NUnit Gui (the installer will have created a shortcut on your desktop and in the “Program Files” folder), after the GUI starts, select the File->Open menu item, navigate to the location of your bank.dll and select it in the “Open” dialog box. When the bank.dll is loaded you will see a test tree structure in the left panel and a collection of status panels on the right. Click the Run button, the status bar and the TransferFunds node in the test tree turn red – our test has failed. The “Errors and Failures” panel displayed the following message:
-
-
TransferFunds : expected <250> but was <150>
-
-and the stack trace panel right below it reported where in the test code the failure has occurred –
-
-
at bank.AccountTest.TransferFunds() in C:\nunit\BankSampleTests\AccountTest.cs:line 17
-
-
That is expected behavior; the test has failed because we have not implemented the TransferFunds method yet. Now let’s get it to work. Don’t close the GUI and go back to your IDE and fix the code, make your TransferFunds method look like this:
Now recompile your code and click the run button in GUI again – the status bar and the test tree turn green. (Note how the GUI has reloaded the assembly automatically for you; we will keep the GUI open all the time and continue working with our code in IDE and write more tests).
-
-
Let’s add some error checking to our Account code. We are adding the minimum balance requirement for the account to make sure that banks continue to make their money by charging your minimal overdraft protection fee. Let’s add the minimum balance property to our Account class:
This test method in addition to [Test] attribute has an [ExpectedException] attribute associated with it – this is the way to indicate that the test code is expecting an exception of a certain type; if such an exception is not thrown during the execution – the test will fail. Compile your code and go back to the GUI. As you compiled your test code, the GUI has grayed out and collapsed the test tree as if the tests were not run yet (GUI watches for the changes made to the test assemblies and updates itself when the structure of the test tree has changed – e.g. new test is added). Click the “Run” button – we have a red status bar again. We got the following Failure :
-
-
TransferWithInsufficentFunds : InsufficientFundsException was expected
-
-Let’s fix our Account code again, modify the TransferFunds method this way:
-
-
-
public void TransferFunds(Account destination, float amount)
-{
- destination.Deposit(amount);
- if(balance-amount<minimumBalance)
- throw new InsufficientFundsException();
- Withdraw(amount);
-}
-
-
-
Compile and run the tests – green bar. Success! But wait, looking at the code we’ve just written we can see that the bank may be loosing money on every unsuccessful funds Transfer operation. Let’s write a test to confirm our suspicions. Add this test method:
We are testing the transactional property of our business method – all operations are successful or none. Compile and run – red bar. OK, we’ve made $300.00 out of a thin air (1999.com déjà vu?) – the source account has the correct balance of 200.00 but the destination account shows : $450.00. How do we fix this? Can we just move the minimum balance check call in front of the updates:
-
-
-
public void TransferFunds(Account destination, float amount)
-{
- if(balance-amount<minimumBalance)
- throw new InsufficientFundsException();
- destination.Deposit(amount);
- Withdraw(amount);
-}
-
-
-
What if the Withdraw() method throws another exception? Should we execute a compensating transaction in the catch block or rely on our transaction manager to restore the state of the objects? We need to answer those questions at some point, but not now; but what do we do with the failing test in the meantime – remove it? A better way is to temporarily ignore it, add the following attribute to your test method
-
-
-
[Test]
-[Ignore("Decide how to implement transaction management")]
-public void TransferWithInsufficientFundsAtomicity()
-{
- // code is the same
-}
-
-
-
Compile and run – yellow bar. Click on “Tests Not Run” tab and you will see bank.AccountTest.TransferWithInsufficientFundsAtomicity() in the list along with the Reason this test is ignored.
-
-
Looking at our test code we can see that some refactoring is in order. All test methods share a common set of test objects. Let’s extract this initialization code into a setup method and reuse it in all of our tests. The refactored version of our test class looks like this:
-
-
-
namespace bank
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class AccountTest
- {
- Account source;
- Account destination;
-
- [SetUp]
- public void Init()
- {
- source = new Account();
- source.Deposit(200.00F);
- destination = new Account();
- destination.Deposit(150.00F);
- }
-
- [Test]
- public void TransferFunds()
- {
- source.TransferFunds(destination, 100.00f);
- Assert.AreEqual(250.00F, destination.Balance);
- Assert.AreEqual(100.00F, source.Balance);
- }
-
- [Test]
- [ExpectedException(typeof(InsufficientFundsException))]
- public void TransferWithInsufficientFunds()
- {
- source.TransferFunds(destination, 300.00F);
- }
-
- [Test]
- [Ignore("Decide how to implement transaction management")]
- public void TransferWithInsufficientFundsAtomicity()
- {
- try
- {
- source.TransferFunds(destination, 300.00F);
- }
- catch(InsufficientFundsException expected)
- {
- }
-
- Assert.AreEqual(200.00F,source.Balance);
- Assert.AreEqual(150.00F,destination.Balance);
- }
- }
-}
-
-
-
Note that Init method has the common initialization code, it has void return type, no parameters, and it is marked with [SetUp] attribute. Compile and run – same yellow bar!
The RandomAttribute is used to specify a set of random values to be provided
- for an individual parameter of a parameterized test method. Since
- NUnit combines the data provided for each parameter into a set of
- test cases, data must be provided for all parameters if it is
- provided for any of them.
-
-
By default, NUnit creates test cases from all possible combinations
- of the datapoints provided on parameters - the combinatorial approach.
- This default may be modified by use of specific attributes on the
- test method itself.
-
-
RandomAttribute supports the following constructors:
-
-
-public Random( int count );
-public Random( double min, double max, int count );
-public Random( int min, int max, int count );
-
-
-
Example
-
-
The following test will be executed fifteen times, three times
-for each value of x, each combined with 5 random doubles from -1.0 to +1.0.
-
-
The RangeAttribute is used to specify a range of values to be provided
- for an individual parameter of a parameterized test method. Since
- NUnit combines the data provided for each parameter into a set of
- test cases, data must be provided for all parameters if it is
- provided for any of them.
-
-
By default, NUnit creates test cases from all possible combinations
- of the datapoints provided on parameters - the combinatorial approach.
- This default may be modified by use of specific attributes on the
- test method itself.
-
-
RangeAttribute supports the following constructors:
-
-
-public RangeAttribute( int from, int to );
-public RangeAttribute( int from, int to, int step );
-public RangeAttribute( long from, long to, long step );
-public RangeAttribute( float from, float to, float step );
-public RangeAttribute( double from, double to, double step );
-
-
-
Example
-
-
The following test will be executed nine times, as follows:
-
NUnit 2.5.9 - Version 2.5.9.10348 - December 14, 2010
-
-
Bug Fixes
-
-
-
423611 Bug 686560 AppDomainUnloadedException not fixed
-
498664 SetUp failure reported as FailureSite.Test
-
602761 nunit-agent hangs after tests complete
-
612052 NUnit-agent should be reused on reload
-
655882 Make CategoryAttribute inherited
-
666800 Throws.Nothing doesn't work properly
-
669317 Loading test in separate process causes exception under Mono+Linux
-
669684 Change Menu text from "Recent Files" to "Recent Projects"
-
669689 Info from last run remains while loading a new project
-
671349 Add doc page for SetUICultureAttribute
-
671432 Upgrade NAnt to 0.90 or 0.91
-
673691 nunit.exe session degrades with ever-lengthening "Reloading..." phase when test project is recompiled
-
674718 Reload when assembly changes setting disabled on Linux
-
674860 Using() modifier missing on NUnit.Framework.Contains.Item()
-
684513 NUnit 2.5.8 Build Problems
-
684598 Number of asserts in XML result file always stays 0
-
684821 ResultSummarizer doesn't count tests with [RequiresSTA]
-
-
-
-
NUnit 2.5.8 - Version 2.5.8.10295 - October 22, 2010
-
-
General
-
-
-
The test file mock-assembly.dll has been enhanced to contain examples of all
-types of test suites for use in development of custom test reports.
-
-
-
Framework
-
-
-
SubDirectoryConstraint has been removed and is replaced by SubPathConstraint, which operates on paths without the need to access the underlying directories.
-
Custom attributes may now be derived from ExplicitAttribute.
-
New key words "Windows7" and "Windows2008ServerR2" are recognized by the PlatformAttribute.
-
A warning is now given if a test changes the current directory.
-
-
-
Console Runner
-
-
-
A new /trace option may be used to set NUnit's internal trace level for a console run.
-
-
-
Gui Runner
-
-
-
Stability problems with the NUnit Gui under Linux have been resolved and NUnit 2.5.8 is the recommended release for all platforms. Various cosmetic fixes have been made under Linux as well, so that the Gui functions in the same way as it does under Windows.
-
A new setting dialog allows control of NUnit's InternalTrace facility, which was previously controlled by an entry in the config file.
-
Tests run out of process may be debugged by attaching to the nunit-agent process once,
-since the same process is now used across multiple reloads of the test assembly.
-
-
-
Bug Fixes
-
-
-
487999 RequiresThreadAttribute not working on Windows 7 64-bit
-
491300 Self containing enumerables cause stack overflow when compared for equality
-
524474 NUnit GUI issue: /exclude categories are saved each time
-
602761 nunit-agent hangs after tests complete
-
603088 NUnit Gui: Project Config Change from Menu Does Not Change AssemblyWatcher
-
608897 Incorrect program name in Test Assemblies display under Mono
-
612052 NUnit-agent should be reused on reload
-
613031 Subclasses of ExplicitAttribute ignored
-
615340 Give warning if CurrentDirectory is changed
-
624603 Outdated copyright notice
-
631620 UnauthorizedAccessException in DirectoryAssert
-
631809 Misleading doc of CollectionAssert.AreEqual() and .AreEquivalent()
-
633884 TestCaseSource does not use Arguments, Categories etc as described in documentation for 2.5.7
-
641423 Timeout test fails under Mono on Linux
-
644252 Memory leak in ParameterizedMethodSuite
-
644643 NUnit uses fonts which may not be present on Linux
-
644682 Tab text not properly aligned under linux
-
644684 Tree display text is sometimes centered under linux
-
645430 Status bar panels not sized correctly under Linux
-
650598 Exception thrown when nunit-console run from networked drive on unit-tests built with .Net 4
-
654788 TestContext is null when the test/fixture has a timeout attribute
-
655674 New Fixture Object Suite requires pre-constructed objects to have a no-arg constructor
-
657797 Remove InternalTrace settings from config file
-
664081 Add Server2008 R2 and Windows 7 to PlatformAttribute
-
665236 Support for Mono 4.0 profile not detected in Linux
-
-
-
-
NUnit 2.5.7 - Version 2.5.7.10213 - August 1, 2010
-
-
Features
-
-
-
The new TestContext class allows tests to
-access information about themselves. The following properties
-are supported:
-
-
TestName gets the name of the test
-
Properties gets the test properties dictionary
-
State gets the TestState
-
Status gets the TestStatus
-
- Notes:
-
-
This is an experimental feature and could change in future releases. It is not included in the docs at this time.
-
TestState and TestStatus are intended for use in a TearDown method. Consult the intellisense for values of each enumeration.
-
TestStatus should preferred over TestState for compatibility with future releases.
-
-
-
-
Bug Fixes
-
-
-
570162 FileNotFoundException when loading .nunit file
-
595683 NUnit console runner fails to load assemblies
-
611325 Allow Teardown to detect if last test failed
-
611938 Generic Test Instances disappear
-
-
-
-
NUnit 2.5.6 - Version 2.5.6.10205 - July 24, 2010
-
-
Features
-
-
-
ReusableConstraint provides reusability of constraint
-expressions within the test code. This feature is experimental.
-
The Mono 4.0 profile is now listed in the Gui when support for it is detected.
-
Multiple test names may be supplied to the console /run option.
-
Dictionaries and Hashtables may be tested for equality without regard to order of entries.
-
PNunit has been updated to match the latest release available.
-
DirectoryAssert, xxxx and xxx are now marked as Obsolete.
-
-
-
Bug Fixes
-
-
-
441022 Setup not called when test method inherited
-
498656 TestCase should show array values in GUI
-
532488 Constraints from ConstraintExpression/ConstraintBuilder are not reusable
-
548841 [Explicit] does not get overridden if there is another category exclude
-
570162 FileNotFoundException when loading .nunit file
-
571256 NUnit 2.5.5 Console Runner Requires /framework flag to run with .NET 4
-
574408 DirectoryAssert fails to recognise the sub folder using IsWithin
-
590717 Category contains dash or trail spaces is not selectable
-
590970 Static TestFixtureSetUp/TestFixtureTearDown methods in base classes are not run
-
591622 When SetUp method fails, no clear indication in GUI
-
595996 Missing files in source package
-
600554 NUnit uses wrong priority-scheme for addins
-
600555 NullReferenceException when ISuiteBuilder.BuildFrom(Type) returns null
-
600627 Assertion message formatted poorly by PropertyConstraint
-
601108 Duplicate test using abstract test fixtures
-
601129 Mono 4.0 not supported
-
601645 Parameterized test should try to convert data type from source to parameter
-
NUnit 2.5.5 - Version 2.5.5.10112 - April 22, 2010
-
-
Features
-
-
-
The Runtime Version dropdown on the Project Editor dialog
-now includes only major and minor version numbers like 2.0 or 4.0.
-When loading the tests, these versions are resolved to the highest
-version of the particular runtime available on your system. You may
-still enter a complete version number in the text box if desired.
-
The DatapointsAttribute may now be specified on properties
-and methods as well as fields. For parameters of type T, the attribute
-now supports members of Type IEnumerable<T> in addition
-to arrays of the parameter Type.
-
Timeouts are now suppressed when running under a debugger.
-
-
-
Bug Fixes
-
-
-
FileNotFoundException when test assembly is built for x64 platform.
-
Config files not found with /domain:Multiple.
-
SetCultureAttribute ignored on parameterized test methods.
-
NUnit not recognizing .NET 4.0 RC or Final Release.
-
TestFixtureTearDown in static class not executed
-
Failing tests in sample files AssertSyntaxTests.cs and AssertSyntaxTests.vb.
-
Invalid XML character in TestResult.xml when a test case string argument
-uses certain control or unicode characters.
-
-
-
-
NUnit 2.5.4 - Version 2.5.4.10098 - April 8, 2010
-
-
Features
-
-
-
NUnit now defaults to running an assembly under the runtime version for
-which it was built. If that version is not available, a higher version may be
-used. See the Runtime Selection
-page for details.
-
ProjectEditor now provides a 'Default' selection for the runtime
-version to be used.
-
The XML result file format has been enhanced to provide additional information
-needed to identify and report on theories and also includes extended result states
-such as Inconclusive, Invalid, Error and Cancelled.
-
The EmptyConstraint (Is.Empty) may now be used with a DirectoryInfo
-to test whether the directory is empty.
-
Datapoints for boolean and enum arguments are now generated
-automatically for theories.
-
The cache path for shadow copying is now saved in the NUnit settings file
-rather than in the config files. The settings dialog may be used to change it
-if necessary.
-
-
-
Bug Fixes
-
-
-
NUnit crashing when a message contains ']]>'
-
Replace compile-time exclusion of code from Mono with run-time test
-
Message associated with Assert.Inconclusive() not shown in XML
-
Category on test case clashes with category on the test method
-
Console crash when specifying /domain:Single with multiple assemblies
-
Incorrect relative path causing problems in saving projects
-
Message associated with Assert.Pass() not shown in XML
-
Tests with ExpectedException compiled against NUnit 2.4 always pass under 2.5
-
Datapoints with a null value were not being passed correctly to theories
-
Error in XML output with FSharp.Net
-
Documentation refers to files missing from Windows install
-
Parameterized test fixtures with null parameters not handled correctly
-
Theories now work as designed, failing when no data satisfies the assumptions
-
Target framework of net-3.5 was causing console to crash
-
Mono stack traces are now parsed correctly in the Gui
-
Test failures under .NET 1.1
-
Thread CurentPrincipal set in TestFixtureSetUp not maintained between tests
-
-
-
-
NUnit 2.5.3 - Version 2.5.3.9345 - December 11, 2009
-
-
Note: This is the first release of NUnit on Launchpad.
-
-
Features
-
-
-
Test execution under .NET 4.0 is now supported. It may be selected
- in the Gui runner or using the console runner /framework option.
- NUnit test projects may specify .NET 4.0 as the required framework
- to be used for loading the the project. PlatformAttribute allows
- testing for .NET 4.0.
-
The distribution now includes nunit-agent-x86.exe, which is used
- for running tests in a separate process under nunit-x86.exe
- or nunit-console-x86.exe when the target framework is .NET 2.0
- or greater.
-
Static methods Contains.Substring() and Contains.Item() have been
- added to the NUnit syntax for compatibility with NUnitLite.
-
Non-public test fixtures are now allowed in all cases,
- whether the TestFixtureAttribute is present or not.
-
Abstract classes may now be marked with TestFixtureAttribute
- to indicate that derived classes are to be treated as
- test fixtures. The abstract class is no longer marked as invalid.
-
Fixtures without tests are no longer shown as non-runnable but
- are simply executed. If the fixture setup or teardown does not cause
- an error, they are reported as inconclusive.
-
-
-
Bug Fixes
-
-
-
Reloading tests in the Gui no longer uses the default runtime if
- a different runtime was previously selected.
-
Thread principal is now saved before each test and restored afterward
- eliminating failures under .NET 4.0.
-
Assume.That() overload with a message no longer results in test failure.
-
An expected Result of null is now handled correctly on parameterized tests.
-
Duplicate caching of metadata has been eliminated, resolving a
- load performance problem when many methods are inherited from
- a base class.
-
The names of nested generic and non-generic classes are now displayed
- correctly.
-
Assert.Catch<T> now correctly returns exception type T rather than
- System.Exception.
-
ValueSourceAttribute now works correctly when used with an external type.
-
The /domain=None option on nunit-console once again works correctly.
-
Parameterized test fixture names are now displayed with the actual
- arguments used so that failures may be associated with the correct
- instantiation of the fixture.
-
Test labels for generics are now displayed correctly by the console
- runner and in the Gui text output tab.
-
Generic fixtures without type attributes provided are now shown
- as non-runnable rather than causing a runtime error. (1)
-
Use of an unknown file type in the console command line no longer causes
- an error. (2)
-
A number of tests that ran incorrectly under Linux have been fixed.
-
A number of tests failing under .NET 4.0 have been fixed.
-
-
-
Notes
-
-
-
As a side effect of this fix, TestFixtureAttribute on a base class is
- overridden by a TestFixtureAttribute on the derived class.
-
This was originally reported as "crash when using /option in linux."
-
-
-
-
NUnit 2.5.2 - Version 2.5.2.9222 - August 10, 2009
-
-
Note: This is the last release of NUnit using source code
- maintained on Sourceforge. The CVS repository there will be kept,
- but no longer updated. After this release, the source is being
- maintained on Launchpad at http://launchpad.net/nunit-2.5.
-
-
Framework
-
-
-
The new SetUICultureAttribute allows setting CurrentUICulture
- for the duration of a test method, fixture or assembly.
-
The TestFixture, TestCase and TestCaseData attributes
- have been enhanced to allow ignoring an individual fixture instance or
- test case. Two new named parameters are provided:
-
-
Ignore may be set to true to ignore an item.
-
IgnoreReason may be set to specify the reason for ignoring
- the item. If IgnoreReason is set to a non-empty string, then setting
- Ignore is optional.
-
-
Assert.Catch has been added with several overloads. It differs
- from Assert.Throws in accepting exceptions derived from the one
- that is specified. Like Assert.Throws, it returns the exception
- thrown when it succeeds so that further tests can be made on it.
-
The Throws syntax has a number of new additions:
-
-
ThrowsTargetInvocationException, ThrowsArgumentException
- and Throws.InvalidOperationException provide a shorter syntax
- for testing for these common exception types.
-
Throws.InnerException applies any constraints to the InnerException
- of the exception that was thrown rather than to the exception itself.
-
InnerException can also be used in constraint expressions - see
- the documentation for an example.
-
-
-
-
Bug Fixes
-
-
-
Data from a TestCaseSource in a separate class from the tests
- is now handled correctly.
-
Arguments specified using TestCaseData are now used correctly.
-
Comparing the a stream to itself no longer causes an error.
-
TimeoutAttribute is now permitted on an assembly as documented.
-
Clear All and Clear Failures buttons are now displayed correctly
- depending on whether Checkboxes are displayed in the Gui.
-
The console runner option descriptions have been revised to
- more clearly indicate what each option does.
-
Running special tests that do not use the nunit.framework assembly
- no longer causes a null reference exception.
-
Console Runner option descriptions have been edited for accuracy.
-
Gui TreeView now updates correctly when the order of tests has changed.
-
An exception in TearDown now displays the actual exception
- at the top of the stack rather than a TargetInvocationException.
-
-
-
-
NUnit 2.5.1 - Version 2.5.1.9189 - July 8, 2009
-
-
Framework
-
-
-
A new TestResult state has been defined for tests cancelled by the
- user. Results with ResultState.Cancelled are reported as a type of
- failure and no longer generate an ApplicationException.
-
Parameterized test fixtures with TestCaseSource or ValueSource
- data are now constructed using the appropriate parameterized constructor
- when test cases are being created. This avoids the need for a default
- constructor and permits use of member data initialized from
- the fixture parameters in creating the test data.
-
The TestCaseData class now supports use of a string or other
- array type as the sole argument value, without the need to nest
- that array in an object array.
-
Abstract classes marked with TestFixtureAttribute are no longer
- reported as ignored or non-runnable.
-
- Note: This was changed in 2.5 but was omitted from the release notes.
-
The methods in the Text class are now marked as obsolete. For string
- constraints, use one of the following at the start of an expression:
-
-
Is.StringContaining
-
Is.StringStarting
-
Is.StringEnding
-
Is.StringMatching
-
- Within an expression (afer Not, Some, All, And, Or, etc.) you may use
-
-
Contains or ContainsSubstring
-
StartsWith
-
EndsWith
-
Matches
-
-
ThrowsConstraint now has a constructor taking an ActualValueDelegate
- in addition to the constructor that takes a TestDelegate. This allows
- simpler use of Lambda expressions under C# 3.0, but requires users of pre-3.0
- compilers to disambiguate their delegates by use of an explicit return
- expression.
-
-
-
Core
-
-
-
Individual test cases under a parameterized test are
- no longer sorted by name within the test group but are
- run (and shown in the Gui) in the order in which the
- data is retrieved.
-
- Note: Since the order of retrieval of custom
- attributes is not guaranteed by the CLR, the order
- of test cases will not necessarily match the textual
- ordering of attributes in the source code. The order
- of tests will vary across different compilers and
- CLR versions as well.
-
The XML test result file now contains a count of
- inconclusive results.
-
-
-
Gui
-
-
-
The default icons in the Gui tree have been updated.
-
Alternative icons placed by the user in the directory containing
- nunit.uikit.dll may now be in PNG format. Icons are now recognized
- for Skipped and Inconclusive status in addition to Success, Failure
- and Ignored.
-
A new setting option allows the user to disable checking for the
- existence of files in the Recent Files list before listing them. This
- prevents NUnit from appearing to freeze when the file is on a network
- path that is no longer connected.
-
-
-
Extensibility
-
-
-
The ITestCaseProvider2 and IDatapointProvider2 interfaces
- extend ITestCaseProvider and IDatapointProvider
- with methods that include the fixture for which the test case is being
- built. Providers may implement either the old or the new interface,
- but the new interface is required if the data source is contained in
- the test fixture itself so that the fixture may be constructed with
- the proper parameters in the case of a parameterized fixture.
-
-
-
Bug Fixes
-
-
-
Lambda in Throws constraint was not compiling correctly.
-
Null reference exception is no longer thrown when adding an assembly to a
- new project that has not yet been saved.
-
Dispose is now called on disposable types created while loading test case
- parameters.
-
Installations that copy NUnit to a single folder (no lib or framework folders)
- now work correctly.
-
Test Assemblies menu item is no longer enabled when no test was loaded
-
The Text Output tab of the Settings dialog no longer causes an exception
- when invoked from the mini-gui.
-
Errors in various copyright statements were fixed and the year updated to 2009.
-
Control characters in test arguments are now escaped in the display.
-
Additional control characters are now escaped in error messages.
-
Miscellaneous typographic corrections were made to the documentation.
-
-
NUnit 2.5 Final Release - Version 2.5.0.9122 - May 2, 2009
-
-
Framework
-
-
-
A new syntax element, Matches(Constraint), allows use of
-custom constraints, predicates or lambda expressions in constraint expressions.
-
-
The MessageMatch enum used with ExpectedExceptionAttribute
-has been extended with a new value StartsWith, indicating that the
-exception message must start with the string provided.
-
-
TestCaseAttribute now supports a MessageMatch
-property.
-
-
-
Gui
-
-
-
The File menu now allows selecting an alternate runtime,
-such as Mono, on a machine with multiple CLR implementations
-installed. This feature is still considered experimental and
-may change in the future.
-
-
The combo box in the Project Editor allowing selection of
-a particular runtime type such as Mono for loading the test
-has been re-enabled.
-
-
-
Bug Fixes
-
-
-
Provided a workaround to a Mono 2.4 bug in handling remote
-references to an interface, where the provider is running under
-MS .NET and the implementation is explicit.
-
-
Fixed a problem with the display of line numbers from a German
-language stack trace, with lines terminating in a period.
-
-
The Console Runner display now shows the settings for ProcessModel,
-DomainUsage and RuntimeFramework actually provided, before resolution
-of any defaults.
-
-
Removed references in the docs to pages that no longer exist.
-
-
-
NUnit 2.5 Release Candidate - Version 2.5.0.9117 - April 27, 2009
-
-
General
-
-
-
The installation now uses a 'lib' subdirectory to hold dlls.
-
-
The build script target names have been changed to make more sense.
-In particular, 'package' now builds the default package and
-targets not intended to be called directly are no longer listed
-as 'Main Targets' by the -projecthelp option.
-
-
-
Framework
-
-
-
The following Constraints now use the NUnit definition
-of equality in comparing items, which may lead to changed behavior
-of some tests.
-
-
UniqueItemsConstraint
-
CollectionContainsConstraint
-
CollectionEquivalentConstraint
-
CollectionSubsetConstraint
-
-The constraints listed now accept the IgnoreCase and Using
-modifiers, which work exactly as they do with EqualConstraint
-
-
-
Core
-
-
-
Caching is now used to reduce the time required to load tests.
-
-
-
Gui
-
-
-
A new submenu under File allows selecting a runtime version
-under which to reload the tests. Reloading in this way does not affect
-any runtime version setting in the project file.
-
-
The project editor now provides a combo box listing known versions
-of the runtime. Other versions may still be entered in the edit box.
-Cross-CLR execution (for example, running Mono from .NET) has
-been disabled in the Gui, since it isn't yet implemented.
-
-
The new stack trace display now follows the NUnit Font settings.
-The stack display uses the general gui font, while the source code
-display uses the fixed font.
-
-
The separate settings for Recent Files under .NET 1.1
-and .NET 2.0 have been combined, since the Gui now runs exclusively
-under .NET 2.0.
-
-
The time required to restore the visual state of the tree after
-reloading has been substantially reduced, especially for large numbers
-of tests.
-
-
-
Bug Fixes
-
-
-
Use of a long assembly name for the ApplicationName of the AppDomain
-was causing excessively long paths in the shadow cache.
-
-
The Using modifier of EqualConstraint now works as
-expected for string operands.
-
-
TestCaseAttribute.ExpectedExceptionMessage is no longer ignored.
-
-
The max number of files setting was not being saved when modified
-in the Gui Settings dialog.
-
-
As a temporary fix, the pnunit.tests.dll has been moved to the
-same directory as pnunit-agent.exe and pnunit-launcher.exe, since
-pnunit tests don't allow for setting an appbase separate from the
-location of the test assembly.
-
-
-
NUnit 2.5 Beta 3 Release - Version 2.5.0.9096 - April 6, 2009
-
-
General
-
-
-
The Gui is now built against .NET 2.0 only. Tests may still
-be run under .NET 1.x by running in a separate process.
-
-
The Visual Studio 2003 solution has been removed. Framework
-and other components may still be built under .NET 1.x through
-the NAnt script.
-
-
The nunit.framework.extensions assembly has been removed
-from the build.
-
-
-
Framework
-
-
-
EqualConstraint has been enhanced with
- several new modifiers, which may be used immediately after
- the Within(...) modifier to indicate how a numeric tolerance value
- should be interpreted.
-
-
Ulps = as units in the last place (floating point only)
-
Percent = as a percentage of expected value
-
Days = as a TimeSpan in days
-
Hours = as a TimeSpan in hours
-
Minutes = as a TimeSpan in minutes
-
Seconds = as a TimeSpan in seconds
-
Milliseconds = as a TimeSpan in milliseconds
-
Ticks = as a TimeSpan in ticks
-
-
-
The comparison constraints (GreaterThan, LessThan, etc.),
- RangeConstraint and CollectionOrderedConstraint may now be used
- with objects that implement IComparable<T>.
-
-
The syntax used for specifying that a collection is ordered has changed.
- Is.Ordered is now a property. The property name to use for ordering
- is specified using Is.Ordered.By(name).
-
-
The following constraints now accept a Using modifier to indicate
- that a user-specified comparer should be used:
-
-
EqualConstraint
-
GreaterThanConstraint
-
GreaterThanOrEqualConstraint
-
LessThanConstraint
-
LessThanOrEqualConstraint
-
RangeConstraint
-
CollectionOrderedConstraint
-
- The provided comparer may be any of the following:
-
-
IComparer
-
IComparer<T>
-
Comparison<T>
-
- In addition, EqualConstraint may use:
-
-
IEqualityComparer
-
IEqualityComparer<T>
-
-
-
-
NUnit 2.5 Beta 2 Release - Version 2.5.0.9015 - January 15, 2009
-
-
Framework
-
-
-
NUnit now includes an implementation of Theories, similar to what
- is found in JUnit. Support for Theories is provided by the
- Theory, Datapoint and Datapoints attributes and by
- the Assume.That method. For more information and further links,
- see the TheoryAttribute
- documentation page.
-
AssertionHelper has been updated so that the Expect overloads now
- include the signatures newly introduced for Assert.That.
-
The code for Assert is now generated. This is in addition to the files
- that were generated in beta-1.
-
AfterConstraint has been renamed to DelayedConstraint.
-
-
-
Console
-
-
-
The console runner now supports a /framework option, which
- allows running the tests under a different version of the CLR.
-
-
-
Gui
-
-
-
The Gui is now able to display the source code for test or production
- code from the stack trace, provided the assemblies contain source code
- information and the source code is available. Contributed by Irénée Hottier.
-
Reloading the tests after changing settings in a way that modifies
- the shape of the tree is now handled correctly.
-
The Settings Dialog now opens to the page that was last viewed.
-
-
-
NUnit 2.5 Beta 1 Release - Version 2.5.0.8332 - November 27, 2008
-
-
General
-
-
-
Most of the code for elements of the constraint
- syntax is now generated. This allows us to more rapidly deploy new
- constraints with their corresponding syntax. The file SyntaxElements.txt
- contains the specifications used in generating the code. At this time,
- we are including both this file and the generated files with the NUnit source,
- so that those working in other areas of the code don't have to regenerate
- them each time they make changes.
-
The nunit.core.extensions assembly has been removed from the build. Features
- that were previously in that assembly are now in the nunit.core assembly.
-
All third-party addins have been removed from the build and must be
- downloaded separately from their own sites. An index of such
- addins is maintained on the NUnit site.
-
-
-
Framework
-
-
New attributes are provided to control use of threads by tests. All of
- the following may be used on methods, classes or assemblies:
-
-
RequiresThreadAttribute forces creation of a new thread and
- may optionally indicate the desired ApartmentState for the thread.
-
RequiresSTAAttribute causes the test to run in the STA. A
- new thread is created only if the parent is not in the STA. On
- methods, the .NET-provided STAThreadAttribute may also be used.
-
RequiresMTAAttribute causes the test to run in the MTA. A
- new thread is created only if the parent is not in the MTA. On
- methods, the .NET-provided MTAThreadAttribute may also be used.
-
TimeoutAttribute is used to set the timeout for tests. When
- used on classes or assemblies, the timeout value is used as the
- default timeout for all subordinate test cases. Test cases with
- a timeout value run on a separate thread and return a failure
- message if the timeout is exceeded.
-
-
The MaxTimeAttribute specifies a miximum elapsed time for a
- test case. If the test takes longer, it is reported as a failure.
- This attribute was previously available as an extension.
-
- Note: Unlike TimeoutAttribute, MaxTimeAttribute
- does not cause the test to be cancelled, but merely times it.
-
RepeatAttribute causes a test case to be executed multiple
- times. This attribute was previously available as an extension.
-
PairwiseAttribute now works, generating all pairs of each
- argument value. [In earlier betas, it was unimpemented and simply
- generated all combinations.]
-
PropertyAttribute has been modified internally to use a dictionary
- of name/value pairs rather than just a single name and value. This feature
- is not exposed for direct use, but may be accessed by derived attributes
- that want to apply multiple named values to the test. For a simple
- example of usage, see the code for RequiredThreadAttribute.
-
The presence of TestCaseSourceAttribute on a method is now
- sufficient to identify it as a test. As with TestCaseAttribute,
- use of TestAttribute is optional.
-
Assert.That has been extended to allow a delegate or a reference
- as the argument. By default, these are evaluated before being used by
- the constraint supplied but some constraints may delay evaluation. The
- new AfterConstraint is an example.
-
An additional overload of Assert.Throws allows passing a
- constraint or constraint expression as the first argument.
-
The syntax for AttributeConstraints has been enhanced so that further
- tests may be applied to properties of the attribute rather than just
- checking for its existence.
-
AfterConstraint allows delaying the application of a constraint
- until a certain time has passed. In it's simplest form, it replaces
- use of a Sleep in the code but it also supports polling, which may
- allow use of a longer maximum time while still keeping the tests as
- fast as possible. The After modifier is permitted on any
- constraint, but the delay applies to the entire expression up to the
- point where After appears.
-
- Note: Use of After with a simple value makes no sense, since
- the value will be extracted at the point of call. It's intended use
- is with delegates and references. If a delegate is used with polling,
- it may be called multiple times so only methods without side effects
- should be used in this way.
-
-
-
Core
-
-
-
NUnit now supports running tests in a separate process or in
- multiple processes per assembly. In addition, tests run in
- a separate process may use a different runtime version
- from that under which NUnit is running.
-
- Note: In the Beta release, execution of tests under Mono
- from a copy of NUnit that is running under .NET is not yet supported.
-
-
-
Console
-
-
-
The new /process:xxxxx command line option is used to run
- tests in a separate process or in multiple processes per assembly.
-
A new commandline option, /timeout:nnnn allows you to specify a
- default timeout value, which is applied to each test case in the run without
- a Timeout specified.
-
-
-
Gui
-
-
-
The Assembly Info display now uses a scrolling text box and has
- been enhanced to show information about the Process and AppDomain
- in which the test is running and the runtime version under that
- is being used.
-
The Project Editor now allows setting the ProcessModel and
- DomainUsage for a project to control how that project is
- loaded and run. It also supports setting a target runtime
- framework for each configuration. If the target runtime is
- different from the runtime under which NUnit is running, the
- tests will be run automatically in a separate process under
- the target runtime.
-
The Project Editor no longer reloads the tests as each
- individual change is made. Tests are reloaded after the
- editor is closed and only if changes have been made to
- the overall project configuration or to the active
- configuration.
-
The "Options" dialog is now called "Settings."
-
-
-
Extensibility
-
-
-
The implementation of constraints has been changed so that it is no
- longer necessary to create an additional "Modifier" class when a
- custom constraint takes modifiers. If you simply implement each modifier
- as a property or method returning the object itself, it will be
- usable in the full range of constraint expressions.
-
- Note: Although you can readily create custom constraints,
- this release of NUnit still lacks the ability to create new syntactic
- elements without rebuilding the framework.
-
-
-
Bug Fixes
-
-
-
Loading a single assembly and then adding another assembly using
- the Add Assembly menu item was not working correctly.
-
Reloading tests after settings changes was failing when the
- new settings changed the shape of the tree in such a way
- that the new tests didn't match the old ones correctly.
-
The Reload Project menu item was followed by a prompt asking
- if the current project state should be saved first and making
- the reload work in an unexpected way if you answered yes.
-
A class without a TestFixture attribute, containing only
- TestCase methods, without any Tests, was not recognized as
- a test fixture.
-
Assert.DoesNotThrow was failing to display a user message.
-
Xml documentation for Assert.IsNotEmpty and Assert.AreEqual
- was incorrect.
-
CollectionAssert.AreEqual and EqualConstraint were not
- working with IEnumerables that were not also Collections.
-
PlatformAttribute now distinguishes correctly between
- Vista and Windows 2008 Server.
-
-
-
NUnit 2.5 Alpha 4 Release - Version 2.5.0.8528 - September 14, 2008
-
-
Framework
-
-
Use of the TestFixtureAttribute is now optional in designating
- classes that contain tests.
-
More than one method may now be marked with the SetUp, TearDown,
- TestFixtureSetUp and TestFixtureTearDown attributes. Setups
- in a base class are executed before those in a derived class and teardowns
- are executed in the reverse order. If there are multiple setups or teardowns
- defined at the same level, the order is unspecified so this practice is
- not generally recommended.
-
The FactoryAttribute and TestCaseFactoryAttribute introduced
- in alhpa-3 have been removed. The new TestCaseSourceAttribute allows
- specification of the name of the source of test cases and - optionally - the
- type providing the source if it is not the same as the type that contains the
- test. Only one source may be specified per attribute but the attribute may be
- applied more than once to indicate multiple sources.
-
It is now possibe to specify Categories and Properties on test cases
- defined using the TestCaseData class.
-
Named fields, properties or methods may be used to provide values for
- individual method parameters using the new ValueSourceAttribute.
-
New constraints and corresponding syntactic constructs are provided:
-
-
Is.InRange tests that a value lies within a specified range.
-
Has.Attribute() tests for the presence of a specified attribute
- on a type.
-
Is.AssignableTo allows reversing the operands of AssignableFrom
- for increased clarity in the code and in any error messages when the
- actual value is of the derived type.
-
Throws.Exception allows testing the exception thrown by a
- delegate in place and provides the ability to make arbitrary tests
- on the caught exception. Throws.TypeOf() and Throws.InstanceOf()
- are provided as shorthand for the commonly used Throws.Exception.TypeOf()
- and Throws.Exception.InstanceOf.
-
Throws.Nothing provides for testing that a delegate does
- not throw. While it doesn't do much, it serves the purpose of
- converting an unexpected error into a test failure.
-
-
The parsing of constraint expressions written using the fluent interface
- has been reorganized internally, with the following benefits:
-
-
Meaningless sequences like "...Null.Null..." or "...And.Or..."
- will no longer compile - the NUnit tests actually verify this
- by attempting to compile them.
-
Syntax modifiers like Within and IgnoreCase are
- now only accepted - and shown by intellisense - on constraints that
- actually make use of them.
-
New And and Or infix operators are provided.
-
The With provides some ability to group constraints.
-
-
-
Note: Operators are evaluated in the following order:
-
-
Postfix modifiers (highest)
-
Not Operator
-
And operator (see below)
-
Or operator (see below)
-
With operator
-
Some, None and All operators
-
And operator when followed directly by Some, None or All
-
Or operator when followed directly by Some, None or All
-
Overloaded operator &
-
Overloaded operator | (lowest)
-
- Operators of equal precedence associate left to right.
-
-
The "syntax helper" classes, Is, Has, Text and
- List have been moved to the NUnit.Framework namespace, since they
- seem to have entered the mainstream.
-
NUnit 2.5 is able to recognize, load and run NUnitLite tests.
-
PropertyConstraint now works with Types when testing for the
- existence of a named property.
-
-
-
Core
-
-
Experimental support is provided for running tests in a separate process.
- Currently, this is only exposed in the Gui runner.
-
NUnit recognizes a special attribute on
- the config element of the nunit project file, runtimeFramework,
- which may be set to "net-1.1" or "net-2.0." This causes use of the
- appropriate runner if tests are run in a separate process.
-
- Note: Both of the above features are experimental and
- somewhat fragile. Results are expected to vary for different
- installations and we ask that problems be reported.
-
-
-
Gui
-
-
-
The Addin Dialog now shows an error message for any addin that
- fails to load. (from 2.4.8)
-
The TestLoader settings dialog provides an option for running tests
- in a separate process.
-
The Assembly Info display now shows two runtime versions for each
- test assembly: the one for which it was built and the one under
- which it is currently loaded.
-
-
-
Extensibility
-
-
-
The RequiredAddinAttribute is now only permitted at the assembly level.
-
-
-
Bug Fixes
-
-
-
The Gui output panes were failing to use a fixed font. (from 2.4.8)
-
-
-
NUnit 2.5 Alpha 3 Release - Version 2.5.0.8189 - July 7, 2008
-
-
General
-
-
-
NUnit now uses a new version numbering scheme. The first three
- dot-separated values represent the release level, as before, while
- the fourth is a build number tied to the date of the release. This
- alpha release, for example, is numbered 2.5.0.8189.
-
The NUnit source now includes a VS2008 project, in addition to
- the existing VS2005 and VS2003 projects
-
-
-
Framework
-
-
-
DataSourceAttribute has been replaced with FactoryAttribute.
- The new attribute may refer to any field, method or property that
- provides test cases consistent with the signature of the method on which
- it appears. The naming of this attribute is still a bit unsatisfactory
- and it may change in the final release.
-
The new TestCaseFactoryAttribute class may be used to mark a
- field, method or property that provides test cases. It specifies the
- argument types of the test cases that will be provided and is used
- to identify the cases to be used when the name of a factory is not
- specified.
-
Data may be specified for individual arguments of a parameterized test
- using the new attributes: ValuesAttribute, RangeAttribute
- and RandomAttribute. By default, test cases are created using
- every possible combination of the items provided. Attributes on the
- test method may specify how data is combined. This release includes
- SequentialAttribute, CombinatorialAttribute (the default) and
- PairwiseAttribute. However, Pairwise combination is not yet
- implemented, so that attribute is currently ignored.
-
TestFixture classes may now be generic. They must be marked with
- or or more instances of TextFixtureAttribute using the new
- constructor that takes an array of Types. NUnit will instantiate
- the fixture multiple times, using the type arguments provided.
-
Parameterized test methods may now be generic. NUnit will deduce
- the correct implementation to use based on the types of the
- parameters provided.
-
The new RequiredAddinAttribute may be used to mark tests,
- fixtures or assemblies, indicating the name of any addin that is
- required to run the tests. If the addin is not present, the test,
- fixture or assembly is marked NotRunnable.
-
A new assertion and corresponding constraint IsOrdered
- has been added. (contributed by Simone Busoli)
-
PlatformAttribute has been extended to accept the new keywords
- NT6, Vista and Win2008Server.
-
- Note: In the current alpha release, NUnit is unable to
- distintuish between Vista and Windows 2008 Server. Either
- of them will match all the above values.
-
-
-
Gui
-
-
-
Properties with a collection for a value are now displayed
-displayed as a comma-separated list in the properties window.
-
-
-
Extensibility
-
-
-
The IParameterProvider interface has been replaced with
- ITestCaseProvider. The ParameterProviders extension point
- has been renamed to TestCaseProviders.
-
A new extension point, DataPointProviders, has been
- added to support extensions that provide data for individual
- test parameters. Extensions must implement the IDataPointProvider
- interface.
-
A simpler method of providing new data point extensions based
- on attributes applied to the parameter itself is also available.
- Such attributes may be derived from ValuesAttribute and
- do not require any special addin in order to work.
-
-
-
Bug Fixes
-
-
-
NUnit tests of AssertThrows were not working on systems using
- non-English cultures.
-
Domains were not unloading correctly in some circumstances. Unloading
- is now done on a separate thread.
-
An NUnitSettings.xml file of zero length was causing a crash. (from 2.4.8)
-
Invoking the gui with /exclude:XXX, where XXX is a non-existent
- category, was causing all tests to be excluded. (from 2.4.8)
-
Categories were not working properly on repeated tests. (from 2.4.8)
-
A serious memory leak was fixed in the NUnit test runners. (from 2.4.8)
-
Static SetUp and TearDown methods were not being called in a SetUpFixture.
-
The current directory used when executing addins that load tests was
- not correctly set.
-
-
-
NUnit 2.5 Alpha 2 Release - May 7, 2008
-
-
Note: Since this is an alpha level release, the
-features are not complete and some features present in
-this release may be removed or changed in future releases.
-
-
General
-
-
-
This release includes pNUnit, an extended NUnit runner for distributed
- parallel tests. The pNUnit program was developed at Codice Software
- for use in testing the Plastic SCM and has been contributed to NUnit.
- For more info about using pNUnit see the
- pNUnit site.
-
The install now offers Typical, Complete and Custom options. Selecting
- Typical gets you the NUnit framework, core, console runner and Gui.
- To install pNUnit, any of the bundled addins or the NUnit tests,
- select Complete or Custom.
-
-
-
Extensibility
-
-
-
The RowTestExtension, which was merged into the nunit extension dlls
- in Alpha-1, is now provided as a separate addin. This is the general
- approach we plan to take with regard to any bundled addins, since it
- permits the creator of an addin to provide updates separately from
- the NUnit release.
-
This release includes the CSUnitAddin extension, which allows the running of
- CSUnit tests under NUnit. The csunit.dll must be available in order to
- run the tests.
-
-
-
NUnit 2.5 Alpha 1 Release - April 18, 2008
-
-
General
-
-
-
There are no longer separate distributed packages for .NET 1.1 an 2.0.
- Both the binary zip and msi packages contain subdirectories for .NET
- 1.1 and 2.0. In the case of the msi, the user may elect to install either
- or both of them.
-
The Visual Studio solutions and projects are now in a directory tree that
- is parallel to the source tree. This eliminates problems where the VS2003
- and VS2005 builds were interfering with one another and makes room for
- adding VS2008.
-
NUnit is now built using NAnt 0.86 beta 1
-
The windows installer is now created using WiX 2.0.5085
-
-
-
Framework
-
-
-
Two new attributes have been added to support passing arguments
- to test methods:
-
-
TestCaseAttribute allows the programmer to
- specify the arguments and a number of optional parameters inline.
-
DataSourceAttribute identifies a static property that
- will provide the arguments and other parameters.
-
-
-
Two new constraints have been added to permit testing of
- application-created paths, without requiring that they exist in
- the file system. The following syntax is supported:
-
-
Is.SamePath(string)
-
Is.SamePathOrUnder(string)
-
-
-
The DirectoryAssert class has been added, providing the following Methods:
-
-
AreEqual(DirectoryInfo, DirectoryInfo)
-
AreEqual(string, string)
-
AreNotEqual(DirectoryInfo, DirectoryInfo)
-
AreNotEqual(string, string)
-
IsEmpty(DirectoryInfo, DirectoryInfo)
-
IsEmpty(string, string)
-
IsNotEmpty(DirectoryInfo, DirectoryInfo)
-
IsNotEmpty(string, string)
-
IsWithin(DirectoryInfo, DirectoryInfo)
-
IsWithin(string, string)
-
IsNotWithin(DirectoryInfo, DirectoryInfo)
-
IsNotWithin(string, string)
-
-
-
The method Assert.Throws(Type expectedException, TestSnippet code)
- has been added to provide more control over tests of expected exceptions.
- TestSnippet is a delegate, which may of course be supplied
- anonymously under .NET 2.0. If the correct exception type is thrown,
- the actual exception is returned from the method, allowing further
- verification to be performed.
-
-
The Assert.DoesNotThrow method may be used to verify that a
- delegate does not throw an exception.
-
-
The Assert.Pass method allows early termination of a test with a
- successful result.
-
-
The Assert.Inconclusive method allows returning
- the new Inconclusive result state.
-
-
NUnit now includes added funtionality in the .NET 2.0 build of
- the framework. The following additional features are supported:
-
-
All Asserts and Constraints work with nullable types.
-
Some Asserts allow an alternate generic syntax for convenience:
-
-
Assert.IsInstanceOf<T>(object actual);
-
Assert.IsNotInstanceOf<T>(object actual);
-
Assert.IsAssignableFrom<T>(object actual);
-
Assert.IsNotAssignableFrom<T>(object actual);
-
Assert.Throws<T>(TypeSnippet code);
-
-
-
-
The following obsolete interfaces, classes and methods have been removed:
-
-
The IAsserter interface
-
The AbstractAsserter class
-
The Assertion class
-
The AssertionFailureMessage class
-
The old NUnit.Framework.TestCase class used for inheriting test classes
-
The Assert.DoAssert() method
-
Two ExpectedExceptionAttribute(Type, string) constructor
-
Two ExpectedExceptionAttribute(string, string) constructor
-
-
-
The syntactic constructs in the SyntaxHelpers namespace have been
- moved to the NUnit.Framework.Syntax.CSharp namespace. The old
- namespace may still be used for existing classes, but will not be
- supported after the 2.5 release.
-
-
-
-
Core
-
-
-
NUnit now allows use of static methods as tests and for SetUp, TearDown,
- TestFixtureSetUp and TestFixtureTearDown.
-
Failures and Errors are now distinquished internally and in summary reports.
- Methods that are not run because they are invalid are also reported separately.
-
-
-
Console
-
-
-
The summary report now displays Errors, Failures, Inconclusive, Ignored and Skipped tests
- separately. More detailed information on non-runnable tests and setup failures
- is provided.
-
The console summary report is no longer created using a stylesheet, which
- renders the /transform option meaningless. The option has been removed.
-
-
-
Gui
-
-
-
The default gui display now uses a single tab for all text output. For
- users upgrading from an earlier release, the current settings are
- honored. If you wish to change to the new default, use the Restore Defaults
- button on the Text Output settings dialog.
-
-
The final test run display shows a more detailed summary: passed tests,
- errors, failures, inconclusive, non-runnable, skipped and ignored.
-
-
The status bar now displays errors and failures separately in.
-
-
The tree display shows non-runnable tests in red and inconclusive tests
- in orange. Inconclusive tests are temporarily listed
- on the Tests Not Run tab for this alpha release.
-
-
-
Extensibility
-
-
-
A new extension point ParameterProviders allows addins to
- provide data for parameterized tests.
-
-
The following extensions are included in the nunit.core.extensions
- and nunit.framework.extensions assemblies:
-
-
The MaxTime extension, which was previously a sample.
-
The RowTest extension, which remains an alternative to NUnit's
- native TestCase syntax.
-
The XmlConstraint extension, which allows comparing two xml files
-
RepeatAttribute is used on a test case to specify that it should be
- executed multiple times. If any repetition fails, the remaining ones are
- not run and a failure is reported.
-
-
The RequiredAddin attribute is used to indicate that an
- assembly requires a particular addin in order to function correctly. If
- that addin is not installed, the entire assembly is marked as non-runnable.
-
-
Note: In the Alpha-3 release, this attribute may be applied to
-classes or methods as well. This is of limited utility, for two reasons:
-
-
If the method or class is not recognized as a test, due to the addin
-being missing, then NUnit will never process it.
-
If the method or class is handled by some a different addin, that
-addin may not recognize the attribute.
-
-
The attribute will be limited to assemblies only in the next release.
-
-
Example
-
-
-[assembly: RequiredAddin("MyTestFixtureAddin")]
-[assembly: RequiredAddin("MyTestAddin")]
-[assembly: RequiredAddin("MyDecoratorAddin")]
-
-...
-
-namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [MyTestFixture]
- public class MyTests
- {
- [MyTest]
- public void SomeTest()
- {
- ...
- }
- }
-
- [TestFixture, MyDecorator]
- public class MoreTests
- {
- [Test, MyDecorator]
- public void AnotherTest()
- {
- ...
- }
- }
-}
-
The RequiresMTAAttribute is used on a test method, class or assembly
- to specify that the tests should be run in the multi-threaded apartment.
- It causes creation of a new thread if the parent test is not already running
- in the MTA.
-
-
Note: On test methods, you may also use the MTAThreadAttribute.
- Although the runtime only recognizes this attribute on the entrypoint of
- an executable assembly, many users have expected it to work on tests, so
- we treat it as a synonym.
-
-
Examples
-
-
-
-
-
-// An MTA thread will be created and used to run
-// all the tests in the assembly
-[assembly:RequiresMTA]
-
-...
-
-// TestFixture requiring a separate thread
-[TestFixture, RequiresMTA]
-public class FixtureRequiringMTA
-{
- // An MTA thread will be created and all
- // tests in the fixture will run on it
- // unless the containing assembly is
- // already running on an MTA Thread
-}
-
-[TestFixture]
-public class AnotherFixture
-{
- [Test, RequiresMTA]
- public void TestRequiringMTA()
- {
- // A separate thread will be created for this test
- // unless the containing fixture is already running
- // in the MTA.
- }
-}
-
-
The RequiresSTAAttribute is used on a test method, class or assembly
- to specify that the tests should be run in the Single-threaded apartment.
- It causes creation of a new thread if the parent test is not already running
- in the STA.
-
-
Note: On test methods, you may also use the STAThreadAttribute.
- Although the runtime only recognizes this attribute on the entrypoint of
- an executable assembly, many users have expected it to work on tests, so
- we treat it as a synonym.
-
-
Examples
-
-
-
-
-
-// An STA thread will be created and used to run
-// all the tests in the assembly
-[assembly:RequiresSTA]
-
-...
-
-// TestFixture requiring a separate thread
-[TestFixture, RequiresSTA]
-public class FixtureRequiringSTA
-{
- // An STA thread will be created and all
- // tests in the fixture will run on it
- // unless the containing assembly is
- // already running on an STA Thread
-}
-
-[TestFixture]
-public class AnotherFixture
-{
- [Test, RequiresSTA]
- public void TestRequiringSTA()
- {
- // A separate thread will be created for this test
- // unless the containing fixture is already running
- // in the STA.
- }
-}
-
-
The RequiresThreadAttribute is used to indicate that a test method,
- class or assembly should be run on a separate thread. Optionally, the
- desired apartment for the thread may be specified in the constructor.
-
-
Note: This attribute, used with or without an ApartmentState
- argument will always result in creation of a new thread. To
- create a thread only if the current ApartmentState is not appropriate,
- use RequiresSTAAttribute or RequiresMTAAttribute.
-
-
Examples
-
-
-
-
-
-// A thread will be created and used to run
-// all the tests in the assembly
-[assembly:RequiresThread]
-
-...
-
-// TestFixture requiring a separate thread
-[TestFixture, RequiresThread]
-public class FixtureOnThread
-{
- // A separate thread will be created and all
- // tests in the fixture will run on it.
-}
-
-[TestFixture]
-public class AnotherFixture
-{
- [Test, RequiresThread]
- public void TestRequiringThread()
- {
- // A separate thread will be created for this test
- }
-
- [Test, RequiresThread(ApartmentState.STA)]
- public void TestRequiringSTAThread()
- {
- // A separate STA thread will be created for tnis test.
- }
-}
-
-
Normally constraints just work. However, attempting to reuse the
-same constraint in several places can lead to unexpected results.
-
-
Consider the following code as an example:
-
-
- Constraint myConstraint = Is.Not.Null;
- Assert.That("not a null", myConstraint); // Passes, of course
- Assert.That("not a null", myConstraint); // Fails! What's that about?
-
-
-
We'll save the technical explanation for later and show the
-solution first:
-
-
- ReusableConstraint myConstraint = Is.Not.Null;
- Assert.That("not a null", myConstraint); // Passes
- Assert.That("not a null", myConstraint); // Passes
-
-
-Or alternatively..
-
-
- var myConstraint = new ReusableConstraint(Is.Not.Null);
- Assert.That("not a null", myConstraint); // Passes
- Assert.That("not a null", myConstraint); // Passes
-
-
-
Technical Explanation
-
-
In the original example, the value assigned to myConstraint is
-known as an unresolved constraint. In fact, it's an
-unresolved NullConstraint, because that was the last constraint
-encountered in the expression. It's associated with a Not
-operator that has not yet been applied.
-
-
That's OK for use with Assert.That(), because the method
-knows how to resolve a constraint before using it. Assert.That()
-resolves this constraint to a NotConstraint referencing the
-original NullConstraint.
-
-
Of course, the original reference in myConstraint is left
-unchanged in all of this. But the EqualConstraint it points
-to has now been resolved. It is now a resolved constraint
-and can't be resolved again by the second Assert.That(), which
-only sees the NullConstraint and not the NotConstraint.
-
-
So, for reusability, what we want to save is the result
-of resolving the constraint, in this case
-
-
NotConstraint => NullConstraint
-
-That's what ReusableConstraint does for us. It resolves
-the full expression and saves the result. Then it passes all
-operations on to that saved result.
-
-
When to Use It
-
-
Use this constraint any time you want to reuse a constraint
-expression and you'll be safe.
-
-
If you like to take chances, you'll find that you can
-avoid using it in the following cases...
-
-
-
With a simple constraint involving no operators, like...
-
-
With any constraint you construct using new, without
-using the "dotted" constraint syntax...
-
-
- Constraint myConstraint = new NotConstraint(new NullConstraint());
- Constraint myConstraint = new AndConstraint(
- new GreaterThanConstraint(0),
- new LessThanConstraint(100));
-
-
-
However, there is no significant penalty to using ReusableConstraint.
-It makes your intent much clearer and the exceptions listed are accidents of
-the internal implementation and could disappear in future releases.
-
-
-
Nunit provides three different runners, which may be used to load and
-run your tests.
-
-
-
The console runner,
- nunit-console.exe, is used for batch execution.
-
The gui runner, nunit.exe,
- provides interactive loading and running of tests.
-
The pNUnit runner,
- pnunit-launcher.exe, is used to run parallel, distributed tests under the
- control of pNUnit.
-
-
-
NUnit Agent
-
-
When running tests in a separate process, the console and gui runners
- make use of the nunit-agent program, nunit-agent.exe. Although not directly run by users, nunit-agent
- does load and execute tests and users need to be aware of it, especially
- when debugging is involved.
-
-
Third-Party Runners
-
-
Various third-party applications are available for loading and running
- NUnit tests. Some of these actually use NUnit to load the tests, while
- others provide their own emulation and may not work in the same way
- that NUnit does.
-
-
Because the status of such projects may change from time to time, we don't
- discuss them individually here. For the latest information, consult the
- manufacturer of any third-party software or ask other users on our
- discussion list.
-
-
Additional Information
-
-
For additional general information on how tests are loaded and run, see
-
-
Before loading an assembly, NUnit must determine what runtime to use. By default
-(see below for exceptions) the following rules are used:
-
-
-
If the assembly was built for the same runtime under which NUnit is currently
-running, then that runtime is used.
-
-
If the assembly was built for a different runtime version and that version
-is available, NUnit uses it, running out of process if necessary.
-
-
If the assembly was built for a different runtime version, which is not
-available, then the result depends on whether the build version is earlier or
-later than the current version. If earlier, the test will be run using the
-same runtime version under which NUnit is running. If later, then it is not
-possible to load the test and NUnit gives an error message.
-
-
If multiple assemblies are being run at the same time, NUnit first
-determines the runtime under which each assembly was built. The highest version
-is then selected for the entire group, and rules 1 through 3 are applied.
-
-
-
Note: For versions 2.5.4 and 2.5.5, automatic runtime selection only
-works in the Gui runner. Use the /framework option to select the appropriate
-runtime under the Console runner.
-
-
Overriding the Defaults
-
-
The default runtime framework may be overridden using command line arguments,
- menu items in the Gui or settings in an NUnit project file. Provided that the
- requested framework is available, it will be used. If it isn't available,
- NUnit will issue an error message.
-
-
Note: To use version 1.x runtimes, you must have NUnit's support
- for those runtimes installed, in addition to the runtime itself. This
- support is an option of the NUnit installation.
-
-
Command Line Options
-
-
The /framework option of console runner allows you to specify
- the framework type and version to be used for a test run. See
- NUnit-Console Command Line Options for more information.
-
-
Gui Menu Selection
-
-
The main menu provides File | Select Runtime sub-items allowing you
- to reload the tests under a specific runtime. See
- Main Menu for more info.
-
-
Project Settings
-
-
The NUnit project format supports specification of a specific runtime to
- be used with a project at the configuration level. See
- Project Editor for more information.
-
A SameAsConstraint is used to test whether the object passed
- as an actual value has the same identity as the object supplied
- in its constructor.
-
-
-
-NUnit 2.5 samples continue to be organized by language, with an additional
-folder for Extensibility examples. The 'money-port' example has been
-removed.
-
-
C# Samples
-
-
Failures
-
This sample written in C# demonstrates 4 failing unit tests and one test
- that is not run.
-
Money
-
This is a C# version of the money example which is found in most xUnit
- implementations. Thanks to Kent Beck.
-
-
-
J# Samples
-
-
Failures
-
This has three failing tests and one ignored test written in J#.
-
-
-
VB.NET Samples
-
-
Failures
-
This sample written in VB.NET demonstrates 4 failing unit tests and
- one test that is not run.
-
Money
-
This is a VB.NET version of the money example which is found in most xUnit
- implementations. Thanks to Kent Beck.
-
-
-
Managed C++ Samples
-
-
Failures
-
This is the same example as the others with four failing unit
- tests and one ignored test. NOTE: The results are as expected when
- compiled in Debug mode. In Release mode the divide by zero test succeeds.
-
-
-
C++/CLI Samples
-
-
Failures
-
This is the same example as the others with four failing unit
- tests and one ignored test.
-
-
-
Extensibility Examples
-
-
Minimal
-
The smallest possible Addin: it does nothing but is
- recognized by NUnit and listed in the Addins dialog.
-
SampleSuiteExtension
-
A "toy" SuiteBuilder. It recognizes a special attribute
- and identifies tests right in the suite extension. This example
- uses separate objects for the addin and the suite builder.
-
SampleFixtureExtension
-
A slightly more involved SuiteBuilder. It recognizes
- a special attribute and registers a test case builder to
- identify its tests. It inherits from NUnitTestFixture and
- so gets all the features of that class as well for free.
- This example uses the same object to implement both the
- addin and the suite builder.
-
The SequentialAttribute is used on a test to specify that NUnit should
- generate test cases by selecting individual data items provided
- for the parameters of the test, without generating additional
- combinations.
-
-
Note: If parameter data is provided by multiple attributes,
-the order in which NUnit uses the data items is not guaranteed. However,
-it can be expected to remain constant for a given runtime and operating
-system.
-
-
Example
-
-
The following test will be executed three times, as follows:
-
The SetCulture attribute is used to set the current Culture for the duration
-of a test. It may be specified at the level of a test or a fixture. The culture
-remains set until the test or fixture completes and is then reset to its original
-value. If you wish to use the current culture setting to decide whether to run
-a test, use the Culture attribute instead of this one.
-
-
Only one culture may be specified. Running a test under
-multiple cultures is a planned future enhancement. At this time, you can
-achieve the same result by factoring out your test code into a private method
-that is called by each individual test method.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- [SetCulture("fr-FR")]
- public class FrenchCultureTests
- {
- // ...
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), SetCulture("fr-FR")>
- Public Class FrenchCultureTests
- ' ...
- End Class
-End Namespace
-
The SetUICulture attribute is used to set the current UI Culture for the duration
-of a test. It may be specified at the level of a test or a fixture. The UI culture
-remains set until the test or fixture completes and is then reset to its original
-value. If you wish to use the current culture setting to decide whether to run
-a test, use the Culture attribute instead of this one.
-
-
Only one culture may be specified. Running a test under
-multiple cultures is a planned future enhancement. At this time, you can
-achieve the same result by factoring out your test code into a private method
-that is called by each individual test method.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- [SetUICulture("fr-FR")]
- public class FrenchCultureTests
- {
- // ...
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture(), SetUICulture("fr-FR")>
- Public Class FrenchCultureTests
- ' ...
- End Class
-End Namespace
-
The Settings Dialog is displayed using the Tools | Settings menu item and allows the user to
-control some aspects of NUnit’s operation. Beginning with NUnit 2.4.4, a tree-based dialog
-replaced the older tabbed format.
-
-
Gui Settings - General
-
-
-
-
-
Gui Display
-
-
Full Gui
-
Displays the complete gui - as in prior versions of NUnit. This includes the
- test result tabs and the progress bar.
-
-
Mini Gui
-
Switches the display to the mini-gui, which consists of the tree display
- only.
-
Recent Files
-
-
The Display ... files in list TextBox allows the user to choose the number
-of entries to display in the recent files list.
-
-
Normally, NUnit checks that project files still exist before
-displaying them in the recent files list. This can cause long delays if the
-file is on a network connection that is no longer available. Unchecking
-Check that files exist before listing will avoid this delay, so
-long as the missing file is not actually selected.
-
-
If Load most recent project at startup is checked, the GUI will load the
-last file opened unless it is run with a specific filename or with the
-/noload parameter.
-
-
Gui Settings - Tree Display
-
-
-
-
-
Tree View
-
-
The list box allows selecting the degree of expansion of the tree when tests are loaded:
-
-
Auto – selects a setting based on the space available for the tree display.
-
Expand – expands all tests
-
Collapse – collapses all tests
-
Hide Tests – expands all suites except for the fixtures themselves.
-
-
-
If Clear results when reloading is checked, an automatic or manual reload will reinitialize all
-test nodes in the tree (grey display) – if it is not checked, result information for tests that do
-not seem to have changed will be retained.
-
-
If Save visual state of each project is checked, NUnit saves the state of the tree
-and restores it when the project is next opened. The information saved includes which
-branches of the tree are expanded, the selected node, any checked nodes and any
-category selection.
-
-
If Show Checkboxes is checked, the tree includes checkboxes, which may
- be used to select multiple tests for running. This setting is also available
- in the View | Tree menu.
-
-
Test Structure
-
-
If Automatic Namespace suites is selected, tests will be
- shown in a hierarchical listing based on namespaces. This is the
- standard display as used in versions prior to NUnit 2.4.
-
-
If Flat list of TestFixtures is selected, tests will be
- shown as a sequential list of fixtures.
-
-
Gui Settings - Test Results
-
-
-
-
-
Errors Tab
-
-
Check Display Errors and Failures Tab to display the
-Errors and Failures tab, which shows information about failing tests.
-
-
Check Enable Failure ToolTips to display the tip window over the
-Errors and Failures display and the stack trace. Clear it if you prefer not
-to see the tip window.
-
-
Check Enable Word Wrap to turn on word wrapping
-in the Errors and Failures display. While you can select this item and the
-preceding one at the same time, they do not interact well, so you will
-normally choose one or the other.
-
-
Not Run Tab
-
-
Check Display Tests Not Run Tab to display the
-Tests Not Run tab, which shows information about tests that were
-skipped or ignored.
-
-
Gui Settings - Text Output
-
-
-
-
-
Select Tab
-
-
The Select Tab dropdown list is used to select one of the output tabs, for which
-settings are to be viewed or changed. It also contains entries that allow
-you to add a new tab or edit the list of tabs.
-
-
The Restore Defaults button is used to restore the default
-setting, which is a single tab labeled "Text Output." The default tab
-displays all types of output and includes a label for each test that
-displays text.
-
-
The Title text box is used to modify the title displayed
-for the selected output tab.
-
-
Enabled is checked by default. If you uncheck it,
-the selected tab will be removed from the tab control. This allows you to temporarily
-suppress output to a tab without actually removing its definition.
-
-
Content
-
-
The four check boxes enable or disable a particular type of output
-on the selected output window. For each type, the display captures
-output produced while your test is running - either by the test
-itself or by the program you are testing.
-
-
Standard Output
-
Captures all output written to Console.Out.
-
-
Error Output
-
Captures all output written to Console.Error.
-
-
Trace Output
-
Captures all output written to Trace or Debug.
-
-
Log Output
-
Captures output written to a log4net log. NUnit captures
-all output at the Error level or above unless another level
-is specified for the DefaultLogThreshold setting in the
-configuration file for the test assembly or project.
-
-
Test Labels
-
-
Check Display TestCase Labels to precede text in the output window
-with the name of the test that produced it.
-
-
Check Suppress label if no output is displayed to eliminate display
-of labels for tests that produce no output in the window.
-
-
-
Test Loader Settings - Assembly Isolation
-
-
-
-
-
Default Process Model
-
-
These settings determine NUnit's default use of operating system
-processes and may be overridden by settings in the NUnit project.
-
-
If Run tests directly in the NUnit process is selected,
-all tests are run in a test domain in the same process as NUnit.
-This is the way previous versions of NUnit ran tests and is the
-default setting.
-
-
If Run tests in a single separate process is selected,
-a separate process is used for all tests.
-
-
If Run tests in a separate process per Assembly is selected,
-a separate process is used for each test assembly.
-
-
Default Domain Usage
-
-
If Use a separate AppDomain per Assembly is selected, each assembly
- in a multiple-assembly test run will be loaded in a separate AppDomain.
- This setting is not available when Run tests in a separate process
- per Assembly is selected above.
-
-
If Use a single AppDomain for all tests is selected, all assemblies in
- a multiple-assembly test run will use the same AppDomain. This was
- the standard behavior of NUnit prior to version 2.4 and is the
- default setting.
-
-
If Merge tests across assemblies is checked, the display of tests
- will not be divided across assemblies. If automatic namespace suites are
- used, they will be merged across all assemblies. This option is only
- available when tests are run in the same appdomain.
-
-
Test Loader Settings - Assembly Reload
-
-
-
-
-
Assembly Reload
-
-
If Reload before each test run is checked, a reload will occur whenever the run button is
-pressed whether the assemblies appear to have changed or not.
-
-
If Reload when test assembly changes is checked, assemblies are watched for any change and
-an automatic reload is initiated. This item is disabled on Windows 98 or ME.
-
-
If Re-run last tests run is checked, tests are re-run whenever a Reload
- takes place.
-
-
Test Loader Settings - Advanced
-
-
-
-
-
Shadow Copy
-
-
NUnit normally uses .Net shadow-copying in order to allow you to edit
-and recompile assemblies while it is running. Uncheck this box to disable
-shadow-copy only if you have a particular problem that requires it.
-
-
Note: If you are tempted to disable shadow copy in order to access
-files in the same directory as your assembly, you should be aware that there
-are alternatives. Consider using the Assembly.Codebase property rather than
-Assembly.Location.
-
-
-
IDE Support Settings - Visual Studio
-
-
-
-
-
Visual Studio
-
-
If Enable Visual Studio Support is checked, the user will be able to open Visual Studio projects
-and solutions and add Visual Studio projects to existing test projects.
-
-
Advanced Settings - Internal Trace
-
-
-
-
-
Internal Trace
-
-
The Trace Level dropdown controls the level of internal trace output.
This attribute is used inside a TestFixture to provide a common set of
- functions that are performed just before each test method is called.
-
-
Before NUnit 2.5, a TestFixture could have only one SetUp method
- and it was required to be an instance method.
-
-
Beginning with NUnit 2.5, SetUp methods may be either static or
- instance methods and you may define more than one of them in a fixture.
- Normally, multiple SetUp methods are only defined at different levels
- of an inheritance hierarchy, as explained below.
-
-
If a SetUp method fails or throws an exception, the test is not executed
- and a failure or error is reported.
-
-
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [SetUp] public void Init()
- { /* ... */ }
-
- [TearDown] public void Cleanup()
- { /* ... */ }
-
- [Test] public void Add()
- { /* ... */ }
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()> Public Class SuccessTests
- <SetUp()> Public Sub Init()
- ' ...
- End Sub
-
- <TearDown()> Public Sub Cleanup()
- ' ...
- End Sub
-
- <Test()> Public Sub Add()
- ' ...
- End Sub
- End Class
-End Namespace
-
The SetUp attribute is inherited from any base class. Therefore, if a base
- class has defined a SetUp method, that method will be called
- before each test method in the derived class.
-
-
Before NUnit 2.5, you were permitted only one SetUp method. If you wanted to
- have some SetUp functionality in the base class and add more in the derived
- class you needed to call the base class method yourself.
-
-
With NUnit 2.5, you can achieve the same result by defining a SetUp method
- in the base class and another in the derived class. NUnit will call base
- class SetUp methods before those in the derived classes.
-
-
Note: Although it is possible to define multiple SetUp methods
- in the same class, you should rarely do so. Unlike methods defined in
- separate classes in the inheritance hierarchy, the order in which they
- are executed is not guaranteed.
-
-
This is the attribute that marks a class that contains the one-time
- setup or teardown methods for all the test fixtures under a given
- namespace. The class may contain at most one method marked with the
- SetUpAttribute and one method marked with the TearDownAttribute.
-
-
There are a few restrictions on a class that is used as a setup fixture.
-
-
- It must be a publicly exported type or NUnit will not see it.
-
- It must have a default constructor or NUnit will not be able to construct it.
-
-
-
-
The SetUp method in a SetUpFixture is executed once before any of the fixtures
-contained in its namespace. The TearDown method is executed once after all the
-fixtures have completed execution. In the examples below, the method RunBeforeAnyTests()
-is called before any tests or setup methods in the NUnit.Tests namespace. The method
-RunAfterAnyTests() is called after all the tests in the namespace as well as their
-individual or fixture teardowns have completed exection.
-
-
Only one SetUpFixture should be created in a given namespace. A SetUpFixture
-outside of any namespace provides SetUp and TearDown for the entire assembly.
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()> Public Class MySetUpClass
- <SetUp()> Public Sub RunBeforeAnyTests()
- ' ...
- End Sub
-
- <TearDown()> Public Sub RunAfterAnyTests()
- ' ...
- End Sub
- End Class
-End Namespace
-
String constraints perform tests that are specific to strings.
- Attempting to test a non-string value with a string constraint
- is an error and gives an exception.
-
-
The Text prefix is deprecated beginning with NUnit 2.5.1
- and will be removed in NUnit 3.0.
-
-
The Suite Attribute is used to define subsets of test to be run from the
- command-line, using the /fixture option. It was introduced in NUnit
- 2.0 to replace the older approach of inheriting from the TestSuite class.
-
-
Originally, the NUnit developers believed that the need for the Suite
- mechanism would diminish because of the dynamic creation of suites based
- on namespaces. It was provided for backwards compatibility.
-
-
That has not proven to be true. Suites are still used today by many people,
- so we are making an effort to revive them in terms of usability.
-
-
The Suite mechanism depends on a static property marked with the SuiteAttribute.
- In the clasic implementation, supported by all releases since 2.0, that property
- returns a TestSuite, populated with the tests that are to be executed.
-
-
Old Approach
-
-
-
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
- using NUnit.Core;
-
- public class AllTests
- {
- [Suite]
- public static TestSuite Suite
- {
- get
- {
- TestSuite suite = new TestSuite("All Tests");
- suite.Add(new OneTestCase());
- suite.Add(new Assemblies.AssemblyTests());
- suite.Add(new AssertionTest());
- return suite;
- }
- }
- }
-}
-
-
-
-
-
This approach has a serious problem: it requires a reference to the nunit.core assembly,
- which is not normally referenced by user tests. This means that the tests
- cannot be ported across versions of NUnit without recompilation. In some cases,
- introducing more than one version of the core assembly can prevent NUnit
- from running correctly.
-
-
Beginning with NUnit 2.4.4, a new approach is available. The property marked
- with the SuiteAttribute may simply return a collection containing test
- fixture objects or Types.
- If a Type is provided, NUnit creates an object of that type for use
- as a fixture. Any other object is assumed to be a pre-created fixture object.
- This allows objects with parameterized constructors or settable
- properties to be used as fixtures.
-
-
Test suites created through use of the SuiteAttribute may contain TestFixtureSetUp and
- TestFixtureTearDown methods, to perform one-time setup and teardown
- for the tests included in the suite.
-
-
New Approach - Fixture Objects
-
-
-
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- private class AllTests
- {
- [Suite]
- public static IEnumerable Suite
- {
- get
- {
- ArrayList suite = new ArrayList();
- suite.Add(new OneTestCase());
- suite.Add(new AssemblyTests());
- suite.Add(new NoNamespaceTestFixture());
- return suite;
- }
- }
- }
-}
-
-
-
-
-
New Approach - Fixture Types
-
-
-
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- private class AllTests
- {
- [Suite]
- public static IEnumerable Suite
- {
- get
- {
- ArrayList suite = new ArrayList();
- suite.Add(typeof(OneTestCase));
- suite.Add(typeof(AssemblyTests));
- suite.Add(typeof(NoNamespaceTestFixture));
- return suite;
- }
- }
- }
-}
-
-
-
-
-
Limitations
-
-NUnit support for user-defined Suites currently has two limitations:
-
-
-
It is not possible to include individual test cases directly
- in a Suite using the new approach. Anyone wanting to do so will
- need to use the old approach and create an object derive from
- NUnit.Core.TestCase. This is not recommended, since it requires
- a reference to the core assembly.
-
-
Suites are currently not displayed in the Gui or run automatically
- by either runner when they are encountered. The historical purpose of
- the Suite mechanism was to provide a way of aggregating tests at the
- top level of each run. Hence, they are only supported when used with
- the /fixture option on the console or gui command line.
-
-
-Approaches to removing these limitations are being investigated as part
-of the planning for future NUnit releases.
-
-
The extension object passed to Install must implement the ISuiteBuilder interface:
-
-
- public interface ISuiteBuilder
- {
- bool CanBuildFrom( Type type );
- Test BuildFrom( Type type );
- }
-
-
-
CanBuildFrom should return true if the specified Type is one from which
-the builder is able to create a fixture. This usually involve examining
-the Type and its attriutes.
-
-
The BuildFrom method should return a test fixture completely populated
-with its contained test cases. Return null if it is not possible to
-build a fixture using the provided Type.
-
-
-
This attribute is used inside a TestFixture to provide a common set of
- functions that are performed after each test method is run.
-
-
Before NUnit 2.5, a TestFixture could have only one TearDown method
- and it was required to be an instance method.
-
-
Beginning with NUnit 2.5, TearDown methods may be either static or
- instance methods and you may define more than one of them in a fixture.
- Normally, multiple TearDown methods are only defined at different levels
- of an inheritance hierarchy, as explained below.
-
-
So long as any SetUp method runs without error, the TearDown method is
- guaranteed to run. It will not run if a SetUp method fails or throws an
- exception.
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [SetUp] public void Init()
- { /* ... */ }
-
- [TearDown] public void Cleanup()
- { /* ... */ }
-
- [Test] public void Add()
- { /* ... */ }
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()> Public Class SuccessTests
- <SetUp()> Public Sub Init()
- ' ...
- End Sub
-
- <TearDown()> Public Sub Cleanup()
- ' ...
- End Sub
-
- <Test()> Public Sub Add()
- ' ...
- End Sub
- End Class
-End Namespace
-
The TearDown attribute is inherited from any base class. Therefore, if a base
- class has defined a TearDown method, that method will be called
- after each test method in the derived class.
-
-
Before NUnit 2.5, you were permitted only one TearDown method. If you wanted to
- have some TearDown functionality in the base class and add more in the derived
- class you needed to call the base class method yourself.
-
-
With NUnit 2.5, you can achieve the same result by defining a TearDown method
- in the base class and another in the derived class. NUnit will call base
- class TearDown methods after those in the derived classes.
-
-
Note: Although it is possible to define multiple TearDown methods
- in the same class, you should rarely do so. Unlike methods defined in
- separate classes in the inheritance hierarchy, the order in which they
- are executed is not guaranteed.
-
-
The Test attribute is one way of marking a method inside a TestFixture class
- as a test. For backwards compatibility with previous versions of Nunit a
- test method may also be found if the first 4 letters are "test"
- regardless of case. This option is available by setting a value in
- the config file for the test.
-
-
Prior to NUnit 2.5, the signature for a test method was:
-
public void MethodName()
-
-
Beginning with NUnit 2.5, static methods may be used as tests:
-
public static void MethodName()
-
-
In addition, with 2.5, test methods may have arguments and return
- values, provided that NUnit is told what values to use for the
- arguments and how to handle the return value. For more information
- on these capabilities, see
- Parameterized Tests as well as some of the related attributes
- listed at the end of this page.
-
-
Parameterized test methods may also be generic, provided that
- NUnit is able to deduce the proper argument types from the
- types of the data arguments supplied.
-
-
If the programmer marks a test method that does not have the correct signature
- it will be considered as not runnable and be indicated as such by the console
- or gui runner. In the Gui, such tests are marked in red.
-
-
In the examples on this page, NUnit would have no way of knowing what values
- to supply as arguments, so methods without parameters are used.
-
-
namespace NUnit.Tests
-{
- using System;
- using NUnit.Framework;
-
- [TestFixture]
- public class SuccessTests
- {
- [Test] public void Add()
- { /* ... */ }
-
- public void TestSubtract()
- { /* backwards compatibility */ }
- }
-}
-
-
-
Imports System
-Imports Nunit.Framework
-
-Namespace Nunit.Tests
-
- <TestFixture()> Public Class SuccessTests
- <Test()> Public Sub Add()
- ' ...
- End Sub
- End Class
-End Namespace
-
TestCaseAttribute serves the dual purpose of marking a method with
- parameters as a test method and providing inline data to be used when
- invoking that method. Here is an example of a test being run three
- times, with three different sets of data:
-
-
-
[TestCase(12,3,4)]
-[TestCase(12,2,6)]
-[TestCase(12,4,3)]
-public void DivideTest(int n, int d, int q)
-{
- Assert.AreEqual( q, n / d );
-}
-
-
-
-
Note: Because arguments to .NET attributes are limited in terms of the
-Types that may be used, NUnit will make some attempt to convert the supplied
-values using Convert.ChangeType() before supplying it to the test.
-
-
TestCaseAttribute may appear one or more times on a test method,
-which may also carry other attributes providing test data, such as the
-FactoriesAttribute.
-The method may optionally be marked with the
-TestAttribute as well.
-
-
By using the named parameter Result this test set may be simplified
-further:
-
-
-
[TestCase(12,3, Result=4)]
-[TestCase(12,2, Result=6)]
-[TestCase(12,4, Result=3)]
-public int DivideTest(int n, int d)
-{
- return( n / d );
-}
-
-
-
-
In the above example, NUnit checks that the return
-value of the method is equal to the expected result provided on the attribut
-
-
TestCaseAttribute supports a number of additional
-named parameters, which may be used as follows:
-
-
-
Description
-
Sets the description property of the test
-
ExpectedException
-
Specifies a the Type of an exception that should be thrown by this invocation
-
ExpectedExceptionName
-
Specifies a the FullName of an exception that should be thrown by this invocation
-
ExpectedMessage
-
Specifies the message text of the expected exception
-
MatchType
-
A MessageMatch enum value indicating how to test the expected message
-(See ExpectedExceptionAttribute)
-
Result
-
The expected result to be returned from the method, which must have
-a compatible return type.
-
TestName
-
Provides a name for the test. If not specified, a name is generated based on
-the method name and the arguments provided.
-
Ignore
-
Set to true in order to ignore the individual test case.
-
IgnoreReason
-
Specifies the reason for ignoring this test case. If set to a non-empty
- string, then Ignore is assumed to be true.
-
-
-
Order of Execution
-
-
In NUnit 2.5, individual test cases are sorted alphabetically and executed in
- that order. With NUnit 2.5.1, the individual cases are not sorted, but are
- executed in the order in which NUnit discovers them. This order does not
- follow the lexical order of the attributes and will often vary between different
- compilers or different versions of the CLR.
-
-
As a result, when TestCaseAttribute appears multiple times on a method
- or when other data-providing attributes are used in combination with
- TestCaseAttribute, the order of the test cases is undefined.
-
-
TestCaseSourceAttribute is used on a parameterized test method to
-identify the property, method or field that will provide the required
-arguments. The attribute has two public constructors.
-
-
If sourceType is specified, it represents the class that provides
-the test cases. It must have a default constructor.
-
-
If sourceType is not specified, the class containing the test
-method is used. NUnit will construct it using either the default constructor
-or - if arguments are provided - the appropriate constructor for those
-arguments.
-
-
The sourceName argument represents the name of the source used
-to provide test cases. It has the following characteristics:
-
-
It may be a field, property or method.
-
It may be either an instance or a static member.
-
It must return an IEnumerable or a type that implements IEnumerable.
-
The individual items returned by the enumerator must be compatible
- with the signature of the method on which the attribute appears.
- The rules for this are described in the next section.
-
-
-
Constructing Test Cases
-
-
In constructing tests, NUnit uses each item returned by
-the enumerator as follows:
-
-
-
If it is an object implementing NUnit.Framework.ITestCaseData,
-its properties are used to provide the test case. In NUnit 2.5, this is
-done using reflection to allow compatibility with earlier versions that
-did not implement ITestCaseData.
-
-
The following public fields or properties are used:
-
-
Arguments
-
An object[] representing the arguments to the method
-
Categories
-
An IList of categories to be applied to the test case.
-
Description
-
Sets the description property of the test
-
ExpectedException
-
Specifies a the Type of an exception that should be thrown by this invocation
-
ExpectedExceptionName
-
Specifies a the FullName of an exception that should be thrown by this invocation
-
Properties
-
An IDictionary of properties to be applied to the test case.
- Note that the values provided must be compatible with PropertiesAttribute.
- In particular, use of custom types or enums will cause problems.
-
Result
-
The expected result to be returned from the method, which must have
- a compatible return type.
-
TestName
-
Provides a name for the test. If not specified, a name is generated based on
- the method name and the arguments provided
-
Ignored
-
If true, the test case is ignored.
-
IgnoreReason
-
Specifies the reason for ignoring this test case. If set to a non-empty
- string, then the test is ignored.
-
-
-
-
If the test has a single argument and the returned value matches the type of
-that argument it is used directly.
-
-
If it is an object[], its members are used to provide
-the arguments for the method, as in this example, which returns
-arguments from a named static field.
-
-
-
[Test, TestCaseSource("DivideCases")]
-public void DivideTest(int n, int d, int q)
-{
- Assert.AreEqual( q, n / d );
-}
-
-static object[] DivideCases =
-{
- new object[] { 12, 3, 4 },
- new object[] { 12, 2, 6 },
- new object[] { 12, 4, 3 }
-};
-
-
-
If it is an array of some other type, NUnit can use it provided
-that the arguments to the method are all of that type. For example,
-the above code could be modified to make the three nested arrays
-of type int[].
-
-
If anything else is returned, it is used directly as the sole
-argument to the method. This allows NUnit to give an error message
-in cases where the method requires a different number arguments or
-an argument of a different type.
-This can also eliminate a bit of extra typing by the programmer,
-as in this example:
-
-
Although any object implementing ITestCaseData may be used to
- provide extended test case information, NUnit provides the TestCaseData
- class for this purpose. The following example returns TestCaseData
- instances from a data source in a separately defined class.
-
-
-
[TestFixture]
-public class MyTests
-{
- [Test,TestCaseSource(typeof(MyFactoryClass),"TestCases")]
- public int DivideTest(int n, int d)
- {
- return n/d;
- }
-
- ...
-}
-
-public class MyFactoryClass
-{
- public static IEnumerable TestCases
- {
- get
- {
- yield return new TestCaseData( 12, 3 ).Returns( 4 );
- yield return new TestCaseData( 12, 2 ).Returns( 6 );
- yield return new TestCaseData( 12, 4 ).Returns( 3 );
- yield return new TestCaseData( 0, 0 )
- .Throws(typeof(DivideByZeroException))
- .SetName("DivideByZero")
- .SetDescription("An exception is expected");
- }
- }
-}
-
-
-
This example uses the fluent interface supported by TestCaseData
-to make the program more readable. The last yield statement above is equivalent to
-
-
- TestCaseData data = new TestCaseData(0,0);
- data.ExpectedException = typeof(DivideByZeroException;
- data.TestName = "DivideByZero";
- data.Description = "An exception is expected";
- yield return data;
-
-
-
-
TestCaseData supports the following properties
-and methods, which may be appended to an instance in any order.
-
-
-
-
.Returns
-
The expected result to be returned from the method, which must have
- a compatible return type.
-
.SetCategory(string)
-
Applies a category to the test
-
.SetProperty(string, string)
-
.SetProperty(string, int)
-
.SetProperty(string, double)
-
Applies a named property and value to the test
-
.SetDescription(string)
-
Sets the description property of the test
-
.SetName(string)
-
Provides a name for the test. If not specified, a name is generated based on
- the method name and the arguments provided
-
.Throws(Type)
-
.Throws(string)
-
Specifies a the Type or FullName of an exception that should be thrown by this invocation
-
.Ignore()
-
Causes the test case to be ignored.
-
.Ignore(string)
-
Causes the test case to be ignored with a reason specified.
-
-
-
Order of Execution
-
-
In NUnit 2.5, individual test cases are sorted alphabetically and executed in
- that order. With NUnit 2.5.1, the individual cases are not sorted, but are
- executed in the order in which NUnit discovers them. This order does not
- follow the lexical order of the attributes and will often vary between different
- compilers or different versions of the CLR.
-
-
As a result, when TestCaseSourceAttribute appears multiple times on a
- method or when other data-providing attributes are used in combination with
- TestCaseSourceAttribute, the order of the test cases is undefined.
-
-
However, when a single TestCaseSourceAttribute is used by itself,
- the order of the tests follows exactly the order in which the test cases
- are returned from the source.
-
-
Note on Object Construction
-
-
NUnit locates the test cases at the time the tests are loaded, creates
-instances of each class with non-static sources and builds a list of
-tests to be executed. Each source object is only created once at this
-time and is destroyed after all tests are loaded.
-
-
If the data source is in the test fixture itself, the object is created
-using the appropriate constructor for the fixture parameters provided on
-the TestFixtureAttribute or
-the default constructor if no parameters were specified. Since this object
-is destroyed before the tests are run, no communication is possible between
-these two phases - or between different runs - except through the parameters
-themselves.
-
-
-
-
The extension object passed to Install must implement the ITestDecorator interface:
-
-
- public interface ITestDecorator
- {
- Test Decorate( Test test, MemberInfo member );
- }
-
-
-
The Decorate method may do several things, depending on what it needs
-to accomplish:
-
-
Return test unmodified
-
Modify properties of the test object and return it
-
Replace test with another object, either discarding the
- original or aggregating it in the new test.
-
-
-
Depending on what the decorator does, it may need to run
-ahead of other decorators or after them. Decorators should
-be installed using the Install method overload that takes
-a priority. The priorities range from 1 to 9 and decorators
-with lower priority values are installed first. The following
-standard values are defined for use if desired:
-
This is the attribute that marks a class that contains tests and, optionally,
- setup or teardown methods. NUnit 2.5 introduces parameterized and generic
- test fixtures - see below.
-
-
Most restrictions on a class that is used as a test fixture have now been
- eliminated. As of NUnit 2.5.3, a test fixture class:
-
-
May be public, protected, private or internal.
-
May be a static class in .NET 2.0 or later.
-
May be generic, so long as any type parameters are provided or
- can be inferred from the actual arguments.
-
May not be abstract - although the attribute may be applied to an
- abstract class intended to serve as a base class for test fixtures.
-
If no arguments are provided with the TestFixtureAttribute, the class
- must have a default constructor.
-
If arguments are provided, they must match one of the constructors.
-
-
-
-
If any of these restrictions are violated, the class is not runnable
- as a test and will display as an error.
-
-
It is advisable that the constructor not have any side effects,
- since NUnit may construct the object multiple times in the course of a session.
-
-
Beginning with NUnit 2.5, the TestFixture attribute is optional
- for non-parameterized, non-generic fixtures. So long as the class contains
- at least one method marked with the Test, TestCase or
- TestCaseSource attribute, it will be treated as a test fixture.
-
-
The TestFixtureAttribute may be applied to a base class and is
-inherited by any derived classes. This includes any abstract base class,
-so the well-known Abstract Fixture pattern may be implemented if desired.
-
-
In order to facilitate use of generic and/or parameterized classes,
-where the derived class may require a different number of arguments (or
-type arguments) from the base class, any TestFixture attribute on a
-derived class causes those on the base classes to be ignored. This allows
-use of code like the following:
-
-
-
[TestFixture]
-public class AbstractFixtureBase
-{
- ...
-}
-
-[TestFixture(typeof(string))]
-public class DerivedFixture<T> : AbstractFixtureBase
-{
- ...
-}
-
-
-
-
Parameterized Test Fixtures (NUnit 2.5)
-
-
Beginning with NUnit 2.5, test fixtures may take constructor arguments.
- Argument values are specified as arguments to the TestFixture
- attribute. NUnit will construct a separate instance of the fixture
- for each set of arguments.
-
-
Individual fixture instances in a set of parameterized fixtures may be ignored.
- Set the Ignore named parameter of the attribute to true or set
- IgnoreReason to a non-empty string.
-
-
Example
-
-
The following test fixture would be instantiated by NUnit three times,
- passing in each set of arguments to the appropriate constructor. Note
- that there are three different constructors, matching the data types
- provided as arguments.
-
-
Beginning with NUnit 2.5, you may also use a generic class as a test fixture.
- In order for NUnit to instantiate the fixture, you must either specify the
- types to be used as arguments to TestFixtureAttribute or use the
- named parameter TypeArgs= to specify them. NUnit will construct a
- separate instance of the fixture for each TestFixtureAttribute
- you provide.
-
-
Example
-
-
The following test fixture would be instantiated by NUnit twice,
- once using an ArrayList and once using a List<int>.
-
-
-[TestFixture(typeof(ArrayList))]
-[TestFixture(typeof(List<int>))]
-public class IList_Tests<TList> where TList : IList, new()
-{
- private IList list;
-
- [SetUp]
- public void CreateList()
- {
- this.list = new TList();
- }
-
- [Test]
- public void CanAddToList()
- {
- list.Add(1); list.Add(2); list.Add(3);
- Assert.AreEqual(3, list.Count);
- }
-}
-
-
Generic Test Fixtures with Parameters (NUnit 2.5)
-
-
If a Generic fixture, uses constructor arguments, there are three
- approaches to telling NUnit which arguments are type parameters
- and which are normal constructor parameters.
-
-
Specify both sets of parameters as arguments to the TestFixtureAttribute.
- Leading System.Type arguments are used as type parameters, while
- any remaining arguments are used to construct the instance. In the
- following example, this leads to some obvious duplication...
-
-
Specify normal parameters as arguments to TestFixtureAttribute
- and use the named parameter TypeArgs= to specify the type
- arguments. Again, for this example, the type info is duplicated, but
- it is at least more cleanly separated from the normal arguments...
-
-
In some cases, when the constructor makes use of all the type parameters
- NUnit may simply be able to deduce them from the arguments provided.
- That's the case here and the following is the preferred way to
- write this example...
-
-
The test properties dialog is displayed using either the View | Properties menu item on the main
-menu or the Properties item on the context menu. It shows information about the test and – if it
-has been run – about the results. The dialog contains a “pin” button in the upper right corner,
-which causes it to remain open as the user clicks on different tests.
The extension object passed to Install must implement either the ITestCaseBuilder
-or the ITestCaseBuilder2 interface:
-
-
- public interface ITestCaseBuilder
- {
- bool CanBuildFrom( MethodInfo method );
- Test BuildFrom( MethodInfo method );
- }
-
- public interface ITestCaseBuilder2 : ITestCaseBuilder
- {
- bool CanBuildFrom( MethodInfo method, Test suite );
- Test BuildFrom( MethodInfo method, Test suite );
- }
-
-
-
NUnit will call ITestCaseBuilder2 if it is available. Otherwise
-ITestCaseBuilder will be used.
-
-
The CanBuildFrom method should return true if the addin can build
-a test from the MethodInfo provided. Some TestCaseBuilder addins are only
-intended to apply to methods within a specific type of fixture. The
-suite argument of the ITestCaseBuilder2 interface may be used to make
-this determination.
-
-
The BuildFrom method should return a test constructed over the MethodInfo
-provided as an argument or null if the method cannot be used.
-
-
-
The extension object passed to Install must implement either the
- ITestCaseProvider or the ITestCaseProvider2 interface:
-
-
- public interface ITestCaseProvider
- {
- bool HasTestCasesFor( MethodInfo method );
- IEnumerable GetTestCasesFor( MethodInfo method );
- }
-
- public interface ITestCaseProvider2 : ITestCaseProvider
- {
- bool HasTestCasesFor( MethodInfo method, Test suite );
- IEnumerable GetTestCasesFor( MethodInfo method, Test suite );
- }
-
-
-
NUnit will call ITestCaseProvider2 if it is available. Otherwise
- ITestCaseProvider will be used.
-
-
HasTestCasesFor should return true if the provider is able to supply test cases
- for the specified method. If a provider only wants to be used on certain types
- of tests, it can examine the provided MethodInfo and the suite for which the
- test is being constructed and return true or false based on what it finds.
-
-
The GetParametersFor method should return a list of individual test cases.
- Each test case may be expressed as a ParameterSet, as an array of arguments
- or as a custom object containing one or more of the following properties:
-
-
-
Arguments
-
RunState
-
NotRunReason
-
ExpectedExceptionType
-
ExpectedExceptionName
-
ExpectedExceptionMessage
-
Result
-
Description
-
TestName
-
-
-
The ParameterSet class provides all these properties and may be used
-to avoid the overhead of reflecting on the properties.
-
-
Notes:
-
-
-
Most providers will delegate one of the interface implementations
- to the other if they implement both.
-
TestCaseProviders that use data from the fixture class should use
- ITestCaseProvider2 interface so that they are able to access any
- arguments supplied for constructing the fixture object.
-
Providers that acquire data from outside the fixture will usually
- be able to work with ITestCaseProvider alone.
-
The ITestCaseProvider2 interface was added in the NUnit 2.5.1 release.
-
A Theory is a special type of test, used to verify a general
- statement about the system under development. Normal tests are
- example-based. That is, the developer supplies one or
- more examples of inputs and expected outputs either within the
- code of the test or - in the case of
- Parameterized Tests
- - as arguments to the test method. A theory, on the other hand,
- makes a general statement that all of its assertions will pass
- for all arguments satisfying certain assumptions.
-
-
Theories are implemented in NUnit
- as methods within a TestFixture, which are annotated
- with the TheoryAttribute. Theory methods must always have
- arguments and therefore appears quite similar to
- Parameterized Tests at first glance. However, a Theory incorporates additional data sources
- for its arguments and allows special processing for assumptions
- about that data. The key difference, though, is that theories
- make general statements and are more than just a set of examples.
-
-
Data for Theories
-
-
The primary source of data for a Theory is the
- Datapoint or Datapoints attribute.
- NUnit will use any fields of the required types, which are annotated
- with one of these attributes, to provide data for each parameter
- of the Theory. NUnit assembles the values for individual arguments
- combinatorially to provide test cases for the theory.
-
-
In addition to the Datapoint and Datapoints attributes, it
- is possible to use any of the approaches for supplying data
- that are recognized on normal parameterized tests. We suggest
- that this capability not be overused, since it runs counter
- to the distinction between a test based on examples and a
- theory. However, it may be useful in order to guarantee that
- a specific test case is included.
-
-
Assumptions
-
-
The theory itself is responsible for ensuring that all data supplied
- meets its assumptions. It does this by use of the
- Assume.That(...) construct, which works just like
- Assert.That(...) but does not cause a failure. If
- the assumption is not satisfied for a particular test case, that case
- returns an Inconclusive result, rather than a Success or Failure.
-
-
The overall result of executing a Theory over a set of test cases is
- determined as follows:
-
-
-
If the assumptions are violated for all test cases, then the
- Theory itself is marked as a failure.
-
-
If any Assertion fails, the Theory itself fails.
-
-
If at least some cases pass the stated assumptions, and
- there are no assertion failures or exceptions, then the
- Theory passes.
-
-
-
Example:
-
-
In the following example, the theory SquareRootDefinition
- verifies that the implementation of square root satisies
- the following definition:
-
-
-"Given a non-negative number, the square root of that number
- is always non-negative and, when multiplied by itself, gives
- the original number."
-
-
ThrowsConstraint is used to test that some code, represented as a delegate,
-throws a particular exception. It may be used alone, to merely test the type
-of constraint, or with an additional constraint to be applied to the exception
-specified as an argument.
-
-p>The related ThrowsNothingConstraint simply asserts that the delegate
-does not throw an exception.
-
-
Throws.Exception may be followed by further constraints,
- which are applied to the exception itself as shown in the last two
- examples above. It may also be used alone to verify that some
- exception has been thrown, without regard to type. This is
- not a recommended practice since you should normally know
- what exception you are expecting.
-
Throws.TypeOf and Throws.InstanceOf are provided
- as a shorter syntax for this common test. They work exactly like
- the corresponding forms following Throws.Exception.
-
Throws.TargetInvocationException/b>, Throws.ArgumentException
- and Throws.InvalidOperationException provide a shortened form
- for some common exceptions.
-
Used alone, Throws.InnerException simply tests the InnerException
- value of the thrown exception. More commonly, it will be used in
- combination with a test for the type of the outer exception as shown
- in the examples above.
-
The TimeoutAttribute is used to specify a timeout value in milliseconds
- for a test case. If the test case runs longer than the time specified it
- is immediately cancelled and reported as a failure, with a message
- indicating that the timeout was exceeded.
-
-
The attribute may also be specified on a fixture or assembly, in which
- case it indicates the default timeout for any subordinate test cases.
-
-
Beginning with version 2.2.1, old style test cases ("Test....") are no longer
-recognized by default. We recommend that you convert such test cases to use the
-TestAttribute. Alternatively, you may
-specify a setting in the test config file to allow use of old style test cases by
-default.
-
-
Beginning with NUnit 2.2.2, NUnit is able to run tests Built with older
-versions of NUnit 2.x without recompilation. Note that you must have an
-available copy of the nunit.framework assembly from the older version
-in order for your tests to load correctly.
-
-
From NUnit 1.x
-
-
NUnit 2.5 no longer supports inheriting from TestCase when defining a test.
- If you need to run such tests, you may continue to do so using the
- a 2.4.x or earlier version of the nunit.framework assembly. Of course, you
- will not be able to use new features introduced in 2.5 if you follow this
- course.
-
-
For a complete conversion to 2.5, you should modify and recompile your tests
- using the new version of NUnit.
-
-
Suite property
-
The NUnit 1.x Suite property will not be found by the new program. These must be
- changed to the "Suite" attribute for the test runners to find them.
- Another alternative is that these suites are no longer needed due to the
- automatic capability that is built in to the new version.
-
-
AssertionFailedError
-
If you have written code expecting the exception AssertionFailedError, this must
- be changed to AssertionException.
The Assert.Pass method allows you to immediately end the test, recording
- it as successful. Since it causes an exception to be thrown, it is more
- efficient to simply allow the test to return. However, Assert.Pass allows
- you to record a message in the test result and may also make the test
- easier to read in some situations. Additionally, like the other methods
- on this page, it can be invoked from a nested method call with the
- result of immediately terminating test execution.
-
The Assert.Fail method provides you with the ability to generate a failure based
- on tests that are not encapsulated by the other methods. It is also useful in
- developing your own project-specific assertions.
-
Here's an example of its use to create a private assertion that tests whether a
- string contains an expected value.
The Assert.Ignore method provides you with the ability to dynamically cause a
- test or suite to be ignored at runtime. It may be called in a test, setup or
- fixture setup method. We recommend that you use this only in isolated cases.
- The category facility is provided for more extensive inclusion or exclusion of
- tests or you may elect to simply divide tests run on different occasions into
- different assemblies.
-
The Assert.Inconclusive method indicates that the test could not be
- completed with the data available. It should be used in situations where
- another run with different data might run to completion, with either a
- success or failure outcome.
-
-
ValueSourceAttribute is used on individual parameters of a test method to
-identify a named source for the argument values to be supplied. The attribute has
-two public constructors.
-
-
If sourceType is specified, it represents the class that provides
-the data. It must have a default constructor.
-
-
If sourceType is not specified, the class containing the test
-method is used. NUnit will construct it using either the default constructor
-or - if arguments are provided - the appropriate constructor for those
-arguments.
-
-
The sourceName, represents the name of the source that will
-provide the arguments. It should have the following characteristics:
-
-
It may be a field, a non-indexed property or a method taking no arguments.
-
It may be either an instance or a static member.
-
It must return an IEnumerable or a type that implements IEnumerable.
-
The individual items returned from the enumerator must be compatible
- with the type of the parameter on which the attribute appears.
-
-
-
Order of Execution
-
-
In NUnit 2.5, individual test cases are sorted alphabetically and executed in
- that order. With NUnit 2.5.1, the individual cases are not sorted, but are
- executed in the order in which NUnit discovers them. This order does not
- follow the lexical order of the attributes and will often vary between different
- compilers or different versions of the CLR.
-
-
As a result, when ValueSourceAttribute appears multiple times on a
- parameter or when other data-providing attributes are used in combination with
- ValueSourceAttribute, the order of the arguments is undefined.
-
-
However, when a single ValueSourceAttribute is used by itself,
- the order of the arguments follows exactly the order in which the data
- is returned from the source.
-
-
Note on Object Construction
-
-
NUnit locates the test cases at the time the tests are loaded, creates
-instances of each class with non-static sources and builds a list of
-tests to be executed. Each source object is only created once at this
-time and is destroyed after all tests are loaded.
-
-
If the data source is in the test fixture itself, the object is created
-using the appropriate constructor for the fixture parameters provided on
-the TestFixtureAttribute, or
-the default constructor if no parameters were specified. Since this object
-is destroyed before the tests are run, no communication is possible between
-these two phases - or between different runs - except through the parameters
-themselves.
-
-
The ValuesAttribute is used to specify a set of values to be provided
- for an individual parameter of a parameterized test method. Since
- NUnit combines the data provided for each parameter into a set of
- test cases, data must be provided for all parameters if it is
- provided for any of them.
-
-
By default, NUnit creates test cases from all possible combinations
- of the datapoints provided on parameters - the combinatorial approach.
- This default may be modified by use of specific attributes on the
- test method itself.
-
-
Example
-
-
The following test will be executed six times, as follows:
-
Visual Studio support in this release is a sort of “poor man’s integration.” We have implemented
-a number of features while avoiding any that would require using an Addin or otherwise
-interacting with the Visual Studio extensibility model.
-
-
Running From Within Visual Studio
-
-
The most convenient way to do this is to set up a custom tool entry specifying the path to
-NUnit as the command. For a VS2003 C# project, you can use $(TargetPath) for the arguments and
-$(TargetDir) for the initial directory.
-
-
With Visual Studio VS2005 this becomes a bit harder, because that release changed the
-meaning of the 'Target' macros so they now point to the intermediate 'obj' directories rather
-than the final output in one of the 'bin' directories. Here are some alternatives that
-work in both versions:
-
-
-
$(ProjectDir)$(ProjectFileName) to open the VS Project rather than the assembly.
- If you use this approach, be sure to rename your config file accordingly and put it
- in the same directory as the VS project file.
-
$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt) to run the assembly directly.
- Note that this requires hard-coding part of the path, including the configuration.
-
-
-
If you would like to debug your tests, use the Visual Studio
-Debug | Processes… menu item to attach to NUnit after starting it and set breakpoints in
-your test code as desired before running the tests.
-
-
Using Console Interface to Debug Applications
-
-
When the nunit-console program is run in debug mode under Visual Studio, it detects that it is
-running in this mode and sends output to the Visual Studio output window. Output is formatted so
-that double clicking any error or failure entries opens the appropriate test file at the location
-where the failure was detected.
-
-
Opening Visual Studio Projects
-
-
When Visual Studio support is enabled, the File Open dialog displays the following supported
-Visual Studio project types: C#, VB.Net, J# and C++. The project file is read and the
-configurations and output assembly locations are identified. Since the project files do not contain
-information about the most recently opened configuration, the output assembly for the first
-configuration found (usually Debug) is loaded in the GUI. The tree shows the project as the toplevel
-node with the assembly shown as its descendant.
-
-
Beginning with NUnit 2.2.2, you may also open a Visual Studio project by dragging it to the gui tree control.
-
-
When tests are run for a Visual studio project, they run just as if the output assembly had been
-loaded with one exception. The default location for the config file is the directory containing the
-project file and it’s default name is the same as the project file with an extension of .config.
-For example, the following command would load the tests in the nunit.tests assembly using the
-configuration file nunit.tests.dll.config located in the same directory as the dll.
-
nunit.exe nunit.tests.dll
-On the other hand, the following command would load the tests using the configuration file
-nunit.tests.config located in the same directory as the csproj file.
-
nunit.exe nunit.tests.csproj
-The same consideration applies to running tests using the console runner.
-
-
Opening Visual Studio Solutions
-
-
When Visual Studio support is enabled, solution files may be opened as well. All the output
-assemblies from contained projects of the types supported will be loaded in the tree. In the case
-where all contained projects are located in the subdirectories beneath the solution, it will be
-possible to load and run tests using this method directly.
-
-
Beginning with NUnit 2.2.2, you may also open a Visual Studio solution by dragging it to the gui tree control.
-
-
When a solution contains projects located elsewhere in the file system, it may not be possible to
-run the tests – although the solution will generally load without problem. In this case, the Project
-Editor should be use to modify and save the NUnit test project so that there is all referenced
-assemblies are located in or beneath the application base directory.
-
-
Adding Visual Studio Projects to the Open Test Project
-
-
When Visual Studio support is enabled, the Project menu contains an active entry to add a VS
-project to the loaded project. The output assembly will be added for each of the configurations
-specified in the VS project.
- /// Therefore the index created by CJKTokenizer is much larger.
- ///
- ///
- /// The problem is that when searching for C1, C1C2, C1C3,
- /// C4C2, C1C2C3 ... the ChineseTokenizer works, but the
- /// CJKTokenizer will not work.
- ///
- ///
- public sealed class ChineseTokenizer : Tokenizer
- {
- public ChineseTokenizer(TextReader _in)
- : base(_in)
- {
- Init();
- }
-
- public ChineseTokenizer(AttributeSource source, TextReader _in)
- : base(source, _in)
- {
- Init();
- }
-
- public ChineseTokenizer(AttributeFactory factory, TextReader _in)
- : base(factory, _in)
- {
- Init();
- }
-
- private void Init()
- {
- termAtt = AddAttribute();
- offsetAtt = AddAttribute();
- }
-
- private int offset = 0, bufferIndex = 0, dataLen = 0;
- private static readonly int MAX_WORD_LEN = 255;
- private static readonly int IO_BUFFER_SIZE = 1024;
- private readonly char[] buffer = new char[MAX_WORD_LEN];
- private readonly char[] ioBuffer = new char[IO_BUFFER_SIZE];
-
- private int length;
- private int start;
-
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
-
- private void Push(char c)
- {
- if (length == 0) start = offset - 1; // start of token
- buffer[length++] = Char.ToLower(c); // buffer it
- }
-
- private bool Flush()
- {
-
- if (length > 0)
- {
- termAtt.SetTermBuffer(buffer, 0, length);
- offsetAtt.SetOffset(CorrectOffset(start), CorrectOffset(start + length));
- return true;
- }
- else
- return false;
- }
-
-
- public override bool IncrementToken()
- {
- ClearAttributes();
-
- length = 0;
- start = offset;
-
-
- while (true)
- {
-
- char c;
- offset++;
-
- if (bufferIndex >= dataLen)
- {
- dataLen = input.Read(ioBuffer, 0, ioBuffer.Length);
- bufferIndex = 0;
- }
-
- if (dataLen == 0)
- {
- offset--;
- return Flush();
- }
- else
- c = ioBuffer[bufferIndex++];
-
-
- switch (char.GetUnicodeCategory(c))
- {
-
- case UnicodeCategory.DecimalDigitNumber:
- case UnicodeCategory.LowercaseLetter:
- case UnicodeCategory.UppercaseLetter:
- Push(c);
- if (length == MAX_WORD_LEN) return Flush();
- break;
-
- case UnicodeCategory.OtherLetter:
- if (length > 0)
- {
- bufferIndex--;
- offset--;
- return Flush();
- }
- Push(c);
- return Flush();
-
- default:
- if (length > 0) return Flush();
- break;
- }
- }
- }
-
- public override sealed void End()
- {
- // set final offset
- int finalOffset = CorrectOffset(offset);
- this.offsetAtt.SetOffset(finalOffset, finalOffset);
- }
-
- public override void Reset()
- {
- base.Reset();
- offset = bufferIndex = dataLen = 0;
- }
-
- public override void Reset(TextReader input)
- {
- base.Reset(input);
- Reset();
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/CompoundWordTokenFilterBase.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/CompoundWordTokenFilterBase.cs
deleted file mode 100644
index 6ae819abb1..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/CompoundWordTokenFilterBase.cs
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.Compound
-{
-
- /*
- * Base class for decomposition token filters.
- */
- public abstract class CompoundWordTokenFilterBase : TokenFilter
- {
- /*
- * The default for minimal word length that gets decomposed
- */
- public static readonly int DEFAULT_MIN_WORD_SIZE = 5;
-
- /*
- * The default for minimal length of subwords that get propagated to the output of this filter
- */
- public static readonly int DEFAULT_MIN_SUBWORD_SIZE = 2;
-
- /*
- * The default for maximal length of subwords that get propagated to the output of this filter
- */
- public static readonly int DEFAULT_MAX_SUBWORD_SIZE = 15;
-
- protected readonly CharArraySet dictionary;
- protected readonly LinkedList tokens;
- protected readonly int minWordSize;
- protected readonly int minSubwordSize;
- protected readonly int maxSubwordSize;
- protected readonly bool onlyLongestMatch;
-
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
- private IFlagsAttribute flagsAtt;
- private IPositionIncrementAttribute posIncAtt;
- private ITypeAttribute typeAtt;
- private IPayloadAttribute payloadAtt;
-
- private readonly Token wrapper = new Token();
-
- protected CompoundWordTokenFilterBase(TokenStream input, String[] dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
- : this(input, MakeDictionary(dictionary), minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch)
- {
-
- }
-
- protected CompoundWordTokenFilterBase(TokenStream input, String[] dictionary, bool onlyLongestMatch)
- : this(input, MakeDictionary(dictionary), DEFAULT_MIN_WORD_SIZE, DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE, onlyLongestMatch)
- {
-
- }
-
- protected CompoundWordTokenFilterBase(TokenStream input, ISet dictionary, bool onlyLongestMatch)
- : this(input, dictionary, DEFAULT_MIN_WORD_SIZE, DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE, onlyLongestMatch)
- {
-
- }
-
- protected CompoundWordTokenFilterBase(TokenStream input, String[] dictionary)
- : this(input, MakeDictionary(dictionary), DEFAULT_MIN_WORD_SIZE, DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE, false)
- {
-
- }
-
- protected CompoundWordTokenFilterBase(TokenStream input, ISet dictionary)
- : this(input, dictionary, DEFAULT_MIN_WORD_SIZE, DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE, false)
- {
-
- }
-
- protected CompoundWordTokenFilterBase(TokenStream input, ISet dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
- : base(input)
- {
- this.tokens = new LinkedList();
- this.minWordSize = minWordSize;
- this.minSubwordSize = minSubwordSize;
- this.maxSubwordSize = maxSubwordSize;
- this.onlyLongestMatch = onlyLongestMatch;
-
- if (dictionary is CharArraySet)
- {
- this.dictionary = (CharArraySet)dictionary;
- }
- else
- {
- this.dictionary = new CharArraySet(dictionary.Count, false);
- AddAllLowerCase(this.dictionary, dictionary);
- }
-
- termAtt = AddAttribute();
- offsetAtt = AddAttribute();
- flagsAtt = AddAttribute();
- posIncAtt = AddAttribute();
- typeAtt = AddAttribute();
- payloadAtt = AddAttribute();
- }
-
- /*
- * Create a set of words from an array
- * The resulting Set does case insensitive matching
- * TODO We should look for a faster dictionary lookup approach.
- * @param dictionary
- * @return {@link Set} of lowercased terms
- */
- public static ISet MakeDictionary(String[] dictionary)
- {
- // is the below really case insensitive?
- CharArraySet dict = new CharArraySet(dictionary.Length, false);
- AddAllLowerCase(dict, dictionary);
- return dict;
- }
-
- private void setToken(Token token)
- {
- ClearAttributes();
- termAtt.SetTermBuffer(token.TermBuffer(), 0, token.TermLength());
- flagsAtt.Flags = token.Flags;
- typeAtt.Type = token.Type;
- offsetAtt.SetOffset(token.StartOffset, token.EndOffset);
- posIncAtt.PositionIncrement = token.PositionIncrement;
- payloadAtt.Payload = token.Payload;
- }
-
- public sealed override bool IncrementToken()
- {
- if (tokens.Count > 0)
- {
- setToken((Token)tokens.First.Value);
- tokens.RemoveFirst();
- return true;
- }
-
- if (input.IncrementToken() == false)
- return false;
-
- wrapper.SetTermBuffer(termAtt.TermBuffer(), 0, termAtt.TermLength());
- wrapper.StartOffset = offsetAtt.StartOffset;
- wrapper.EndOffset = offsetAtt.EndOffset;
- wrapper.Flags = flagsAtt.Flags;
- wrapper.Type = typeAtt.Type;
- wrapper.PositionIncrement = posIncAtt.PositionIncrement;
- wrapper.Payload = payloadAtt.Payload;
-
- Decompose(wrapper);
-
- if (tokens.Count > 0)
- {
- setToken(tokens.First.Value);
- tokens.RemoveFirst();
- return true;
- }
- else
- {
- return false;
- }
- }
-
- protected static void AddAllLowerCase(ISet target, ICollection col)
- {
- foreach (var str in col)
- {
- target.Add(str.ToLower(System.Globalization.CultureInfo.GetCultureInfo("en-US")));
- }
- }
-
- protected static char[] MakeLowerCaseCopy(char[] buffer)
- {
- char[] result = new char[buffer.Length];
- Array.Copy(buffer, 0, result, 0, buffer.Length);
-
- for (int i = 0; i < buffer.Length; ++i)
- {
- result[i] = char.ToLower(buffer[i]); // Is java invariant?
- }
-
- return result;
- }
-
- protected Token CreateToken(int offset, int length,
- Token prototype)
- {
- int newStart = prototype.StartOffset + offset;
- Token t = prototype.Clone(prototype.TermBuffer(), offset, length, newStart, newStart + length);
- t.PositionIncrement = 0;
- return t;
- }
-
- protected void Decompose(Token token)
- {
- // In any case we give the original token back
- tokens.AddLast((Token)token.Clone());
-
- // Only words longer than minWordSize get processed
- if (token.TermLength() < this.minWordSize)
- {
- return;
- }
-
- DecomposeInternal(token);
- }
-
- protected abstract void DecomposeInternal(Token token);
-
- public override void Reset()
- {
- base.Reset();
- tokens.Clear();
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/DictionaryCompoundWordTokenFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/DictionaryCompoundWordTokenFilter.cs
deleted file mode 100644
index 37c1aed189..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/DictionaryCompoundWordTokenFilter.cs
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-
-namespace Lucene.Net.Analysis.Compound
-{
- /*
- * A {@link TokenFilter} that decomposes compound words found in many Germanic languages.
- *
- * "Donaudampfschiff" becomes Donau, dampf, schiff so that you can find
- * "Donaudampfschiff" even when you only enter "schiff".
- * It uses a brute-force algorithm to achieve this.
- *
- */
- public class DictionaryCompoundWordTokenFilter : CompoundWordTokenFilterBase
- {
- /*
- *
- * @param input the {@link TokenStream} to process
- * @param dictionary the word dictionary to match against
- * @param minWordSize only words longer than this get processed
- * @param minSubwordSize only subwords longer than this get to the output stream
- * @param maxSubwordSize only subwords shorter than this get to the output stream
- * @param onlyLongestMatch Add only the longest matching subword to the stream
- */
- public DictionaryCompoundWordTokenFilter(TokenStream input, String[] dictionary,
- int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
- : base(input, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch)
- {
-
- }
-
- /*
- *
- * @param input the {@link TokenStream} to process
- * @param dictionary the word dictionary to match against
- */
- public DictionaryCompoundWordTokenFilter(TokenStream input, String[] dictionary)
- : base(input, dictionary)
- {
-
- }
-
- /*
- *
- * @param input the {@link TokenStream} to process
- * @param dictionary the word dictionary to match against. If this is a {@link org.apache.lucene.analysis.CharArraySet CharArraySet} it must have set ignoreCase=false and only contain
- * lower case strings.
- */
- public DictionaryCompoundWordTokenFilter(TokenStream input, ISet dictionary)
- : base(input, dictionary)
- {
-
- }
-
- /*
- *
- * @param input the {@link TokenStream} to process
- * @param dictionary the word dictionary to match against. If this is a {@link org.apache.lucene.analysis.CharArraySet CharArraySet} it must have set ignoreCase=false and only contain
- * lower case strings.
- * @param minWordSize only words longer than this get processed
- * @param minSubwordSize only subwords longer than this get to the output stream
- * @param maxSubwordSize only subwords shorter than this get to the output stream
- * @param onlyLongestMatch Add only the longest matching subword to the stream
- */
- public DictionaryCompoundWordTokenFilter(TokenStream input, ISet dictionary,
- int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
- : base(input, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch)
- {
-
- }
-
- protected override void DecomposeInternal(Token token)
- {
- // Only words longer than minWordSize get processed
- if (token.TermLength() < this.minWordSize)
- {
- return;
- }
-
- char[] lowerCaseTermBuffer = MakeLowerCaseCopy(token.TermBuffer());
-
- for (int i = 0; i < token.TermLength() - this.minSubwordSize; ++i)
- {
- Token longestMatchToken = null;
- for (int j = this.minSubwordSize - 1; j < this.maxSubwordSize; ++j)
- {
- if (i + j > token.TermLength())
- {
- break;
- }
- if (dictionary.Contains(lowerCaseTermBuffer, i, j))
- {
- if (this.onlyLongestMatch)
- {
- if (longestMatchToken != null)
- {
- if (longestMatchToken.TermLength() < j)
- {
- longestMatchToken = CreateToken(i, j, token);
- }
- }
- else
- {
- longestMatchToken = CreateToken(i, j, token);
- }
- }
- else
- {
- tokens.AddLast(CreateToken(i, j, token));
- }
- }
- }
- if (this.onlyLongestMatch && longestMatchToken != null)
- {
- tokens.AddLast(longestMatchToken);
- }
- }
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/ByteVector.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/ByteVector.cs
deleted file mode 100644
index 4a8f6f1cd6..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/ByteVector.cs
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * 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.
- */
-
-
-//using System;
-
-//namespace Lucene.Net.Analysis.Compound.Hyphenation
-//{
-// ///////
-// /// This class implements a simple byte vector with access to the underlying
-// /// array.
-// /// This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-// ////
-
-// [Serializable]
-// public class ByteVector
-// {
-// ///
-// /// Capacity increment size
-// ///
-// private static int DEFAULT_BLOCK_SIZE = 2048;
-
-// private int blockSize;
-
-// ///
-// /// The encapsulated array
-// ///
-// private byte[] array;
-
-// ///
-// /// Points to next free item
-// ///
-// private int n;
-
-// public ByteVector()
-// : this(DEFAULT_BLOCK_SIZE)
-// {
-
-// }
-
-// public ByteVector(int capacity)
-// {
-// if (capacity > 0)
-// {
-// blockSize = capacity;
-// }
-// else
-// {
-// blockSize = DEFAULT_BLOCK_SIZE;
-// }
-// array = new byte[blockSize];
-// n = 0;
-// }
-
-// public ByteVector(byte[] a)
-// {
-// blockSize = DEFAULT_BLOCK_SIZE;
-// array = a;
-// n = 0;
-// }
-
-// public ByteVector(byte[] a, int capacity)
-// {
-// if (capacity > 0)
-// {
-// blockSize = capacity;
-// }
-// else
-// {
-// blockSize = DEFAULT_BLOCK_SIZE;
-// }
-// array = a;
-// n = 0;
-// }
-
-// public byte[] GetArray()
-// {
-// return array;
-// }
-
-// ///
-// /// return number of items in array
-// ///
-// public int Length()
-// {
-// return n;
-// }
-
-// ///
-// /// returns current capacity of array
-// ///
-// public int Capacity()
-// {
-// return array.Length;
-// }
-
-// public void Put(int index, byte val)
-// {
-// array[index] = val;
-// }
-
-// public byte Get(int index)
-// {
-// return array[index];
-// }
-
-// ///
-// /// This is to implement memory allocation in the array. Like malloc().
-// ///
-// public int Alloc(int size)
-// {
-// int index = n;
-// int len = array.Length;
-// if (n + size >= len)
-// {
-// byte[] aux = new byte[len + blockSize];
-// Array.Copy(array, 0, aux, 0, len);
-// array = aux;
-// }
-// n += size;
-// return index;
-// }
-
-// public void TrimToSize()
-// {
-// if (n < array.Length)
-// {
-// byte[] aux = new byte[n];
-// Array.Copy(array, 0, aux, 0, n);
-// array = aux;
-// }
-// }
-// }
-//}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/CharVector.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/CharVector.cs
deleted file mode 100644
index 522c923753..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/CharVector.cs
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * 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.
- */
-
-//using System;
-
-//namespace Lucene.Net.Analysis.Compound.Hyphenation
-//{
-
-// ///
-// /// This class implements a simple char vector with access to the underlying
-// /// array.
-// ///
-// /// This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-// ///
-
-// [Serializable]
-// public class CharVector : ICloneable
-// {
-
-// ///
-// /// Capacity increment size
-// ///
-// private static readonly int DEFAULT_BLOCK_SIZE = 2048;
-
-// private int blockSize;
-
-// ///
-// /// The encapsulated array
-// ///
-// private char[] array;
-
-// ///
-// /// Points to next free item
-// ///
-// private int n;
-
-// public CharVector()
-// : this(DEFAULT_BLOCK_SIZE)
-// {
-
-// }
-
-// public CharVector(int capacity)
-// {
-// if (capacity > 0)
-// {
-// blockSize = capacity;
-// }
-// else
-// {
-// blockSize = DEFAULT_BLOCK_SIZE;
-// }
-// array = new char[blockSize];
-// n = 0;
-// }
-
-// public CharVector(char[] a)
-// {
-// blockSize = DEFAULT_BLOCK_SIZE;
-// array = a;
-// n = a.Length;
-// }
-
-// public CharVector(char[] a, int capacity)
-// {
-// if (capacity > 0)
-// {
-// blockSize = capacity;
-// }
-// else
-// {
-// blockSize = DEFAULT_BLOCK_SIZE;
-// }
-// array = a;
-// n = a.Length;
-// }
-
-// ///
-// /// Reset Vector but don't resize or clear elements
-// ///
-// public void Clear()
-// {
-// n = 0;
-// }
-
-// public Object Clone()
-// {
-// CharVector cv = new CharVector((char[]) array.Clone(), blockSize);
-// cv.n = this.n;
-// return cv;
-// }
-
-// public char[] GetArray()
-// {
-// return array;
-// }
-
-// ///
-// /// return number of items in array
-// ///
-// public int Length()
-// {
-// return n;
-// }
-
-// ///
-// /// returns current capacity of array
-// ///
-// public int Capacity()
-// {
-// return array.Length;
-// }
-
-// public void Put(int index, char val)
-// {
-// array[index] = val;
-// }
-
-// public char Get(int index)
-// {
-// return array[index];
-// }
-
-// public int Alloc(int size)
-// {
-// int index = n;
-// int len = array.Length;
-// if (n + size >= len)
-// {
-// char[] aux = new char[len + blockSize];
-// Array.Copy(array, 0, aux, 0, len);
-// array = aux;
-// }
-// n += size;
-// return index;
-// }
-
-// public void TrimToSize()
-// {
-// if (n < array.Length)
-// {
-// char[] aux = new char[n];
-// Array.Copy(array, 0, aux, 0, n);
-// array = aux;
-// }
-// }
-// }
-//}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/Hyphen.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/Hyphen.cs
deleted file mode 100644
index 373e6d4c46..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/Hyphen.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.
- */
-
-
-//using System;
-//using System.Text;
-
-//namespace Lucene.Net.Analysis.Compound.Hyphenation
-//{
-
-// ///
-// /// This class represents a hyphen. A 'full' hyphen is made of 3 parts: the
-// /// pre-break text, post-break text and no-break. If no line-break is generated
-// /// at this position, the no-break text is used, otherwise, pre-break and
-// /// post-break are used. Typically, pre-break is equal to the hyphen character
-// /// and the others are empty. However, this general scheme allows support for
-// /// cases in some languages where words change spelling if they're split across
-// /// lines, like german's 'backen' which hyphenates 'bak-ken'. BTW, this comes
-// /// from TeX.
-// ///
-// /// This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-// ///
-// [Serializable]
-// public class Hyphen
-// {
-// public String preBreak;
-
-// public String noBreak;
-
-// public String postBreak;
-
-// private Hyphen(String pre, String no, String post)
-// {
-// preBreak = pre;
-// noBreak = no;
-// postBreak = post;
-// }
-
-// private Hyphen(String pre)
-// {
-// preBreak = pre;
-// noBreak = null;
-// postBreak = null;
-// }
-
-// public override string ToString()
-// {
-// if (noBreak == null && postBreak == null && preBreak != null
-// && preBreak.Equals("-"))
-// {
-// return "-";
-// }
-// StringBuilder res = new StringBuilder("{");
-// res.Append(preBreak);
-// res.Append("}{");
-// res.Append(postBreak);
-// res.Append("}{");
-// res.Append(noBreak);
-// res.Append('}');
-// return res.ToString();
-// }
-
-// }
-//}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/Hyphenation.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/Hyphenation.cs
deleted file mode 100644
index 79ba6a3179..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/Hyphenation.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-
-//namespace Lucene.Net.Analysis.Compound.Hyphenation
-//{
-// ///
-// /// This class represents a hyphenated word.
-// ///
-// /// This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-// ///
-// public class Hyphenation
-// {
-
-// private int[] hyphenPoints;
-
-// ///
-// /// number of hyphenation points in word
-// ///
-// private int len;
-
-// ///
-// /// rawWord as made of alternating strings and {@link Hyphen Hyphen} instances
-// ///
-// Hyphenation(int[] points)
-// {
-// hyphenPoints = points;
-// }
-
-// ///
-// /// return the number of hyphenation points in the word
-// ///
-// public int Length()
-// {
-// return hyphenPoints.Length;
-// }
-
-// ///
-// /// return the hyphenation points
-// ///
-// public int[] GetHyphenationPoints()
-// {
-// return hyphenPoints;
-// }
-// }
-//}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/HyphenationException.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/HyphenationException.cs
deleted file mode 100644
index 6266d76c81..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/HyphenationException.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.
- */
-
-//using System;
-//using System.Runtime.Serialization;
-
-//namespace Lucene.Net.Analysis.Compound.Hyphenation
-//{
-// [Serializable]
-// public class HyphenationException : Exception
-// {
-// //
-// // For guidelines regarding the creation of new exception types, see
-// // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp
-// // and
-// // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
-// //
-
-// public HyphenationException()
-// {
-// }
-
-// public HyphenationException(string message) : base(message)
-// {
-// }
-
-// public HyphenationException(string message, Exception inner) : base(message, inner)
-// {
-// }
-
-// protected HyphenationException(
-// SerializationInfo info,
-// StreamingContext context) : base(info, context)
-// {
-// }
-// }
-//}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/HyphenationTree.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/HyphenationTree.cs
deleted file mode 100644
index 1f4b914e33..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/HyphenationTree.cs
+++ /dev/null
@@ -1,480 +0,0 @@
-////*
-// * 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.
-// */
-
-//using System;
-//using System.Collections.Generic;
-//using System.IO;
-//using System.Linq;
-//using System.Text;
-//using Lucene.Net.Support;
-
-//namespace Lucene.Net.Analysis.Compound.Hyphenation
-//{
-////*
-// * This tree structure stores the hyphenation patterns in an efficient way for
-// * fast lookup. It provides the provides the method to hyphenate a word.
-// *
-// * This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-// */
-//[Serializable]
-//public class HyphenationTree : TernaryTree, PatternConsumer
-//{
-
-// private static readonly long serialVersionUID = -7842107987915665573L;
-
-// /*
-// * value space: stores the interletter values
-// */
-// protected ByteVector vspace;
-
-// /*
-// * This map stores hyphenation exceptions
-// */
-// protected HashMap stoplist;
-
-// /*
-// * This map stores the character classes
-// */
-// protected TernaryTree classmap;
-
-// /*
-// * Temporary map to store interletter values on pattern loading.
-// */
-// [NonSerialized]
-// private TernaryTree ivalues;
-
-// public HyphenationTree() {
-// stoplist = new HashMap(23); // usually a small table
-// classmap = new TernaryTree();
-// vspace = new ByteVector();
-// vspace.Alloc(1); // this reserves index 0, which we don't use
-// }
-
-// /*
-// * Packs the values by storing them in 4 bits, two values into a byte Values
-// * range is from 0 to 9. We use zero as terminator, so we'll add 1 to the
-// * value.
-// *
-// * @param values a string of digits from '0' to '9' representing the
-// * interletter values.
-// * @return the index into the vspace array where the packed values are stored.
-// */
-// protected int packValues(String values) {
-// int i, n = values.Length;
-// int m = (n & 1) == 1 ? (n >> 1) + 2 : (n >> 1) + 1;
-// int offset = vspace.Alloc(m);
-// byte[] va = vspace.GetArray();
-// for (i = 0; i < n; i++) {
-// int j = i >> 1;
-// byte v = (byte) ((values[i] - '0' + 1) & 0x0f);
-// if ((i & 1) == 1) {
-// va[j + offset] = (byte) (va[j + offset] | v);
-// } else {
-// va[j + offset] = (byte) (v << 4); // big endian
-// }
-// }
-// va[m - 1 + offset] = 0; // terminator
-// return offset;
-// }
-
-// protected String unpackValues(int k) {
-// StringBuilder buf = new StringBuilder();
-// byte v = vspace.Get(k++);
-// while (v != 0) {
-// char c = (char) ((v >>> 4) - 1 + '0');
-// buf.Append(c);
-// c = (char) (v & 0x0f);
-// if (c == 0) {
-// break;
-// }
-// c = (char) (c - 1 + '0');
-// buf.Append(c);
-// v = vspace.Get(k++);
-// }
-// return buf.ToString();
-// }
-
-// /*
-// * Read hyphenation patterns from an XML file.
-// *
-// * @param f the filename
-// * @throws HyphenationException In case the parsing fails
-// */
-// public void loadPatterns(FileInfo f)
-// {
-// try {
-// InputSource src = new InputSource(f.toURL().toExternalForm());
-// loadPatterns(src);
-// } catch (MalformedURLException e) {
-// throw new HyphenationException("Error converting the File '" + f
-// + "' to a URL: " + e.getMessage());
-// }
-// }
-
-// /*
-// * Read hyphenation patterns from an XML file.
-// *
-// * @param source the InputSource for the file
-// * @throws HyphenationException In case the parsing fails
-// */
-// public void loadPatterns(InputSource source)
-// {
-// PatternParser pp = new PatternParser(this);
-// ivalues = new TernaryTree();
-
-// pp.parse(source);
-
-// // patterns/values should be now in the tree
-// // let's optimize a bit
-// trimToSize();
-// vspace.trimToSize();
-// classmap.trimToSize();
-
-// // get rid of the auxiliary map
-// ivalues = null;
-// }
-
-// public String findPattern(String pat) {
-// int k = super.find(pat);
-// if (k >= 0) {
-// return unpackValues(k);
-// }
-// return "";
-// }
-
-// /*
-// * String compare, returns 0 if equal or t is a substring of s
-// */
-// protected int hstrcmp(char[] s, int si, char[] t, int ti) {
-// for (; s[si] == t[ti]; si++, ti++) {
-// if (s[si] == 0) {
-// return 0;
-// }
-// }
-// if (t[ti] == 0) {
-// return 0;
-// }
-// return s[si] - t[ti];
-// }
-
-// protected byte[] getValues(int k) {
-// StringBuilder buf = new StringBuilder();
-// byte v = vspace.get(k++);
-// while (v != 0) {
-// char c = (char) ((v >>> 4) - 1);
-// buf.append(c);
-// c = (char) (v & 0x0f);
-// if (c == 0) {
-// break;
-// }
-// c = (char) (c - 1);
-// buf.append(c);
-// v = vspace.get(k++);
-// }
-// byte[] res = new byte[buf.length()];
-// for (int i = 0; i < res.length; i++) {
-// res[i] = (byte) buf.charAt(i);
-// }
-// return res;
-// }
-
-// /*
-// *
-// * Search for all possible partial matches of word starting at index an update
-// * interletter values. In other words, it does something like:
-// *
-// *
-// * for(i=0; i
-// *
-// * But it is done in an efficient way since the patterns are stored in a
-// * ternary tree. In fact, this is the whole purpose of having the tree: doing
-// * this search without having to test every single pattern. The number of
-// * patterns for languages such as English range from 4000 to 10000. Thus,
-// * doing thousands of string comparisons for each word to hyphenate would be
-// * really slow without the tree. The tradeoff is memory, but using a ternary
-// * tree instead of a trie, almost halves the the memory used by Lout or TeX.
-// * It's also faster than using a hash table
-// *
-// *
-// * @param word null terminated word to match
-// * @param index start index from word
-// * @param il interletter values array to update
-// */
-// protected void searchPatterns(char[] word, int index, byte[] il) {
-// byte[] values;
-// int i = index;
-// char p, q;
-// char sp = word[i];
-// p = root;
-
-// while (p > 0 && p < sc.length) {
-// if (sc[p] == 0xFFFF) {
-// if (hstrcmp(word, i, kv.getArray(), lo[p]) == 0) {
-// values = getValues(eq[p]); // data pointer is in eq[]
-// int j = index;
-// for (int k = 0; k < values.length; k++) {
-// if (j < il.length && values[k] > il[j]) {
-// il[j] = values[k];
-// }
-// j++;
-// }
-// }
-// return;
-// }
-// int d = sp - sc[p];
-// if (d == 0) {
-// if (sp == 0) {
-// break;
-// }
-// sp = word[++i];
-// p = eq[p];
-// q = p;
-
-// // look for a pattern ending at this position by searching for
-// // the null char ( splitchar == 0 )
-// while (q > 0 && q < sc.length) {
-// if (sc[q] == 0xFFFF) { // stop at compressed branch
-// break;
-// }
-// if (sc[q] == 0) {
-// values = getValues(eq[q]);
-// int j = index;
-// for (int k = 0; k < values.length; k++) {
-// if (j < il.length && values[k] > il[j]) {
-// il[j] = values[k];
-// }
-// j++;
-// }
-// break;
-// } else {
-// q = lo[q];
-
-// /*
-// * actually the code should be: q = sc[q] < 0 ? hi[q] : lo[q]; but
-// * java chars are unsigned
-// */
-// }
-// }
-// } else {
-// p = d < 0 ? lo[p] : hi[p];
-// }
-// }
-// }
-
-// /*
-// * Hyphenate word and return a Hyphenation object.
-// *
-// * @param word the word to be hyphenated
-// * @param remainCharCount Minimum number of characters allowed before the
-// * hyphenation point.
-// * @param pushCharCount Minimum number of characters allowed after the
-// * hyphenation point.
-// * @return a {@link Hyphenation Hyphenation} object representing the
-// * hyphenated word or null if word is not hyphenated.
-// */
-// public Hyphenation hyphenate(String word, int remainCharCount,
-// int pushCharCount) {
-// char[] w = word.toCharArray();
-// return hyphenate(w, 0, w.length, remainCharCount, pushCharCount);
-// }
-
-// /*
-// * w = "****nnllllllnnn*****", where n is a non-letter, l is a letter, all n
-// * may be absent, the first n is at offset, the first l is at offset +
-// * iIgnoreAtBeginning; word = ".llllll.'\0'***", where all l in w are copied
-// * into word. In the first part of the routine len = w.length, in the second
-// * part of the routine len = word.length. Three indices are used: index(w),
-// * the index in w, index(word), the index in word, letterindex(word), the
-// * index in the letter part of word. The following relations exist: index(w) =
-// * offset + i - 1 index(word) = i - iIgnoreAtBeginning letterindex(word) =
-// * index(word) - 1 (see first loop). It follows that: index(w) - index(word) =
-// * offset - 1 + iIgnoreAtBeginning index(w) = letterindex(word) + offset +
-// * iIgnoreAtBeginning
-// */
-
-// /*
-// * Hyphenate word and return an array of hyphenation points.
-// *
-// * @param w char array that contains the word
-// * @param offset Offset to first character in word
-// * @param len Length of word
-// * @param remainCharCount Minimum number of characters allowed before the
-// * hyphenation point.
-// * @param pushCharCount Minimum number of characters allowed after the
-// * hyphenation point.
-// * @return a {@link Hyphenation Hyphenation} object representing the
-// * hyphenated word or null if word is not hyphenated.
-// */
-// public Hyphenation hyphenate(char[] w, int offset, int len,
-// int remainCharCount, int pushCharCount) {
-// int i;
-// char[] word = new char[len + 3];
-
-// // normalize word
-// char[] c = new char[2];
-// int iIgnoreAtBeginning = 0;
-// int iLength = len;
-// boolean bEndOfLetters = false;
-// for (i = 1; i <= len; i++) {
-// c[0] = w[offset + i - 1];
-// int nc = classmap.find(c, 0);
-// if (nc < 0) { // found a non-letter character ...
-// if (i == (1 + iIgnoreAtBeginning)) {
-// // ... before any letter character
-// iIgnoreAtBeginning++;
-// } else {
-// // ... after a letter character
-// bEndOfLetters = true;
-// }
-// iLength--;
-// } else {
-// if (!bEndOfLetters) {
-// word[i - iIgnoreAtBeginning] = (char) nc;
-// } else {
-// return null;
-// }
-// }
-// }
-// len = iLength;
-// if (len < (remainCharCount + pushCharCount)) {
-// // word is too short to be hyphenated
-// return null;
-// }
-// int[] result = new int[len + 1];
-// int k = 0;
-
-// // check exception list first
-// String sw = new String(word, 1, len);
-// if (stoplist.containsKey(sw)) {
-// // assume only simple hyphens (Hyphen.pre="-", Hyphen.post = Hyphen.no =
-// // null)
-// ArrayList hw = stoplist.get(sw);
-// int j = 0;
-// for (i = 0; i < hw.size(); i++) {
-// Object o = hw.get(i);
-// // j = index(sw) = letterindex(word)?
-// // result[k] = corresponding index(w)
-// if (o instanceof String) {
-// j += ((String) o).length();
-// if (j >= remainCharCount && j < (len - pushCharCount)) {
-// result[k++] = j + iIgnoreAtBeginning;
-// }
-// }
-// }
-// } else {
-// // use algorithm to get hyphenation points
-// word[0] = '.'; // word start marker
-// word[len + 1] = '.'; // word end marker
-// word[len + 2] = 0; // null terminated
-// byte[] il = new byte[len + 3]; // initialized to zero
-// for (i = 0; i < len + 1; i++) {
-// searchPatterns(word, i, il);
-// }
-
-// // hyphenation points are located where interletter value is odd
-// // i is letterindex(word),
-// // i + 1 is index(word),
-// // result[k] = corresponding index(w)
-// for (i = 0; i < len; i++) {
-// if (((il[i + 1] & 1) == 1) && i >= remainCharCount
-// && i <= (len - pushCharCount)) {
-// result[k++] = i + iIgnoreAtBeginning;
-// }
-// }
-// }
-
-// if (k > 0) {
-// // trim result array
-// int[] res = new int[k+2];
-// System.arraycopy(result, 0, res, 1, k);
-// // We add the synthetical hyphenation points
-// // at the beginning and end of the word
-// res[0]=0;
-// res[k+1]=len;
-// return new Hyphenation(res);
-// } else {
-// return null;
-// }
-// }
-
-// /*
-// * Add a character class to the tree. It is used by
-// * {@link PatternParser PatternParser} as callback to add character classes.
-// * Character classes define the valid word characters for hyphenation. If a
-// * word contains a character not defined in any of the classes, it is not
-// * hyphenated. It also defines a way to normalize the characters in order to
-// * compare them with the stored patterns. Usually pattern files use only lower
-// * case characters, in this case a class for letter 'a', for example, should
-// * be defined as "aA", the first character being the normalization char.
-// */
-// public void AddClass(String chargroup) {
-// if (chargroup.Length > 0) {
-// char equivChar = chargroup[0];
-// char[] key = new char[2];
-// key[1] = (char)0;
-// for (int i = 0; i < chargroup.Length; i++) {
-// key[0] = chargroup[i];
-// classmap.Insert(key, 0, equivChar);
-// }
-// }
-// }
-
-// /*
-// * Add an exception to the tree. It is used by
-// * {@link PatternParser PatternParser} class as callback to store the
-// * hyphenation exceptions.
-// *
-// * @param word normalized word
-// * @param hyphenatedword a vector of alternating strings and
-// * {@link Hyphen hyphen} objects.
-// */
-// public void AddException(String word, ArrayList hyphenatedword) {
-// stoplist.Add(word, hyphenatedword);
-// }
-
-// /*
-// * Add a pattern to the tree. Mainly, to be used by
-// * {@link PatternParser PatternParser} class as callback to add a pattern to
-// * the tree.
-// *
-// * @param pattern the hyphenation pattern
-// * @param ivalue interletter weight values indicating the desirability and
-// * priority of hyphenating at a given point within the pattern. It
-// * should contain only digit characters. (i.e. '0' to '9').
-// */
-// public void AddPattern(String pattern, String ivalue) {
-// int k = ivalues.Find(ivalue);
-// if (k <= 0) {
-// k = packValues(ivalue);
-// ivalues.Insert(ivalue, (char)k);
-// }
-// Insert(pattern, (char) k);
-// }
-
-// public override void PrintStats() {
-// Console.WriteLine("Value space size = " + vspace.Length());
-// base.PrintStats();
-
-// }
-//}
-
-//}
-
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/PatternConsumer.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/PatternConsumer.cs
deleted file mode 100644
index fa6ed1e292..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/PatternConsumer.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.
- */
-
-//using System;
-//using System.Collections;
-
-//namespace Lucene.Net.Analyzers.Compound.Hyphenation
-//{
-// /*
-// * This interface is used to connect the XML pattern file parser to the
-// * hyphenation tree.
-// *
-// * This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-// */
-//public interface PatternConsumer {
-
-// /*
-// * Add a character class. A character class defines characters that are
-// * considered equivalent for the purpose of hyphenation (e.g. "aA"). It
-// * usually means to ignore case.
-// *
-// * @param chargroup character group
-// */
-// void AddClass(string chargroup);
-
-// /*
-// * Add a hyphenation exception. An exception replaces the result obtained by
-// * the algorithm for cases for which this fails or the user wants to provide
-// * his own hyphenation. A hyphenatedword is a vector of alternating String's
-// * and {@link Hyphen Hyphen} instances
-// */
-// void AddException(string word, ArrayList hyphenatedword);
-
-// /*
-// * Add hyphenation patterns.
-// *
-// * @param pattern the pattern
-// * @param values interletter values expressed as a string of digit characters.
-// */
-// void AddPattern(string pattern, string values);
-
-//}
-
-//}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/PatternParser.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/PatternParser.cs
deleted file mode 100644
index 5c795179fe..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/PatternParser.cs
+++ /dev/null
@@ -1,495 +0,0 @@
-//using System;
-//using System.Collections;
-//using System.Collections.Generic;
-//using System.IO;
-//using System.Linq;
-//using System.Text;
-//using Lucene.Net.Analysis.Compound.Hyphenation;
-
-//namespace Lucene.Net.Analyzers.Compound.Hyphenation
-//{
-// /*
-// * A SAX document handler to read and parse hyphenation patterns from a XML
-// * file.
-// *
-// * This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-// */
-//public class PatternParser : DefaultHandler, PatternConsumer {
-
-// XMLReader parser;
-
-// int currElement;
-
-// PatternConsumer consumer;
-
-// StringBuilder token;
-
-// ArrayList exception;
-
-// char hyphenChar;
-
-// String errMsg;
-
-// static readonly int ELEM_CLASSES = 1;
-
-// static readonly int ELEM_EXCEPTIONS = 2;
-
-// static readonly int ELEM_PATTERNS = 3;
-
-// static readonly int ELEM_HYPHEN = 4;
-
-// public PatternParser()
-// {
-// token = new StringBuilder();
-// parser = CreateParser();
-// parser.SetContentHandler(this);
-// parser.SetErrorHandler(this);
-// parser.SetEntityResolver(this);
-// hyphenChar = '-'; // default
-
-// }
-
-// public PatternParser(PatternConsumer consumer)
-// : this()
-// {
-// this.consumer = consumer;
-// }
-
-// public void setConsumer(PatternConsumer consumer) {
-// this.consumer = consumer;
-// }
-
-// /*
-// * Parses a hyphenation pattern file.
-// *
-// * @param filename the filename
-// * @throws HyphenationException In case of an exception while parsing
-// */
-// public void parse(String filename)
-// {
-// parse(new FileInfo(filename));
-// }
-
-// /*
-// * Parses a hyphenation pattern file.
-// *
-// * @param file the pattern file
-// * @throws HyphenationException In case of an exception while parsing
-// */
-// public void parse(FileInfo file)
-// {
-// try {
-// InputSource src = new InputSource(file.toURL().toExternalForm());
-// parse(src);
-// } catch (MalformedURLException e) {
-// throw new HyphenationException("Error converting the File '" + file
-// + "' to a URL: " + e.GetMessage());
-// }
-// }
-
-// /*
-// * Parses a hyphenation pattern file.
-// *
-// * @param source the InputSource for the file
-// * @throws HyphenationException In case of an exception while parsing
-// */
-// public void parse(InputSource source)
-// {
-// try {
-// parser.parse(source);
-// } catch (FileNotFoundException fnfe) {
-// throw new HyphenationException("File not found: " + fnfe.GetMessage());
-// } catch (IOException ioe) {
-// throw new HyphenationException(ioe.GetMessage());
-// } catch (SAXException e) {
-// throw new HyphenationException(errMsg);
-// }
-// }
-
-// /*
-// * Creates a SAX parser using JAXP
-// *
-// * @return the created SAX parser
-// */
-// static XMLReader createParser() {
-// try {
-// SAXParserFactory factory = SAXParserFactory.newInstance();
-// factory.SetNamespaceAware(true);
-// return factory.newSAXParser().GetXMLReader();
-// } catch (Exception e) {
-// throw new RuntimeException("Couldn't create XMLReader: " + e.GetMessage());
-// }
-// }
-
-// protected String readToken(StringBuffer chars) {
-// String word;
-// bool space = false;
-// int i;
-// for (i = 0; i < chars.Length(); i++) {
-// if (char.isWhitespace(chars.charAt(i))) {
-// space = true;
-// } else {
-// break;
-// }
-// }
-// if (space) {
-// // chars.delete(0,i);
-// for (int countr = i; countr < chars.Length(); countr++) {
-// chars.SetCharAt(countr - i, chars.charAt(countr));
-// }
-// chars.SetLength(chars.Length() - i);
-// if (token.Length() > 0) {
-// word = token.ToString();
-// token.SetLength(0);
-// return word;
-// }
-// }
-// space = false;
-// for (i = 0; i < chars.Length(); i++) {
-// if (char.isWhitespace(chars.charAt(i))) {
-// space = true;
-// break;
-// }
-// }
-// token.Append(chars.ToString().substring(0, i));
-// // chars.delete(0,i);
-// for (int countr = i; countr < chars.Length(); countr++) {
-// chars.SetCharAt(countr - i, chars.charAt(countr));
-// }
-// chars.SetLength(chars.Length() - i);
-// if (space) {
-// word = token.ToString();
-// token.SetLength(0);
-// return word;
-// }
-// token.Append(chars);
-// return null;
-// }
-
-// protected static String getPattern(String word) {
-// StringBuilder pat = new StringBuilder();
-// int len = word.Length();
-// for (int i = 0; i < len; i++) {
-// if (!char.isDigit(word.charAt(i))) {
-// pat.Append(word.charAt(i));
-// }
-// }
-// return pat.ToString();
-// }
-
-// protected ArrayList normalizeException(ArrayList ex) {
-// ArrayList res = new ArrayList();
-// for (int i = 0; i < ex.size(); i++) {
-// Object item = ex.Get(i);
-// if (item instanceof String) {
-// String str = (String) item;
-// StringBuilder buf = new StringBuilder();
-// for (int j = 0; j < str.Length(); j++) {
-// char c = str.charAt(j);
-// if (c != hyphenChar) {
-// buf.Append(c);
-// } else {
-// res.add(buf.ToString());
-// buf.SetLength(0);
-// char[] h = new char[1];
-// h[0] = hyphenChar;
-// // we use here hyphenChar which is not necessarily
-// // the one to be printed
-// res.add(new Hyphen(new String(h), null, null));
-// }
-// }
-// if (buf.Length() > 0) {
-// res.add(buf.ToString());
-// }
-// } else {
-// res.add(item);
-// }
-// }
-// return res;
-// }
-
-// protected String getExceptionWord(ArrayList ex) {
-// StringBuilder res = new StringBuilder();
-// for (int i = 0; i < ex.size(); i++) {
-// Object item = ex.Get(i);
-// if (item instanceof String) {
-// res.Append((String) item);
-// } else {
-// if (((Hyphen) item).noBreak != null) {
-// res.Append(((Hyphen) item).noBreak);
-// }
-// }
-// }
-// return res.ToString();
-// }
-
-// protected static String getInterletterValues(String pat) {
-// StringBuilder il = new StringBuilder();
-// String word = pat + "a"; // add dummy letter to serve as sentinel
-// int len = word.Length();
-// for (int i = 0; i < len; i++) {
-// char c = word.charAt(i);
-// if (char.isDigit(c)) {
-// il.Append(c);
-// i++;
-// } else {
-// il.Append('0');
-// }
-// }
-// return il.ToString();
-// }
-
-// //
-// // EntityResolver methods
-// //
-// public override InputSource resolveEntity(String publicId, String systemId) {
-// return HyphenationDTDGenerator.generateDTD();
-// }
-
-// //
-// // ContentHandler methods
-// //
-
-// /*
-// * @see org.xml.sax.ContentHandler#startElement(java.lang.String,
-// * java.lang.String, java.lang.String, org.xml.sax.Attributes)
-// */
-// public override void startElement(String uri, String local, String raw,
-// Attributes attrs) {
-// if (local.equals("hyphen-char")) {
-// String h = attrs.GetValue("value");
-// if (h != null && h.Length() == 1) {
-// hyphenChar = h.charAt(0);
-// }
-// } else if (local.equals("classes")) {
-// currElement = ELEM_CLASSES;
-// } else if (local.equals("patterns")) {
-// currElement = ELEM_PATTERNS;
-// } else if (local.equals("exceptions")) {
-// currElement = ELEM_EXCEPTIONS;
-// exception = new ArrayList();
-// } else if (local.equals("hyphen")) {
-// if (token.Length() > 0) {
-// exception.add(token.ToString());
-// }
-// exception.add(new Hyphen(attrs.GetValue("pre"), attrs.GetValue("no"),
-// attrs.GetValue("post")));
-// currElement = ELEM_HYPHEN;
-// }
-// token.SetLength(0);
-// }
-
-// /*
-// * @see org.xml.sax.ContentHandler#endElement(java.lang.String,
-// * java.lang.String, java.lang.String)
-// */
-// public override void endElement(String uri, String local, String raw) {
-
-// if (token.Length() > 0) {
-// String word = token.ToString();
-// switch (currElement) {
-// case ELEM_CLASSES:
-// consumer.addClass(word);
-// break;
-// case ELEM_EXCEPTIONS:
-// exception.add(word);
-// exception = normalizeException(exception);
-// consumer.addException(getExceptionWord(exception),
-// (ArrayList) exception.clone());
-// break;
-// case ELEM_PATTERNS:
-// consumer.addPattern(getPattern(word), getInterletterValues(word));
-// break;
-// case ELEM_HYPHEN:
-// // nothing to do
-// break;
-// }
-// if (currElement != ELEM_HYPHEN) {
-// token.SetLength(0);
-// }
-// }
-// if (currElement == ELEM_HYPHEN) {
-// currElement = ELEM_EXCEPTIONS;
-// } else {
-// currElement = 0;
-// }
-
-// }
-
-// /*
-// * @see org.xml.sax.ContentHandler#chars(char[], int, int)
-// */
-// public override void chars(char ch[], int start, int Length) {
-// StringBuffer chars = new StringBuffer(Length);
-// chars.Append(ch, start, Length);
-// String word = readToken(chars);
-// while (word != null) {
-// // Console.WriteLine("\"" + word + "\"");
-// switch (currElement) {
-// case ELEM_CLASSES:
-// consumer.addClass(word);
-// break;
-// case ELEM_EXCEPTIONS:
-// exception.add(word);
-// exception = normalizeException(exception);
-// consumer.addException(getExceptionWord(exception),
-// (ArrayList) exception.clone());
-// exception.clear();
-// break;
-// case ELEM_PATTERNS:
-// consumer.addPattern(getPattern(word), getInterletterValues(word));
-// break;
-// }
-// word = readToken(chars);
-// }
-
-// }
-
-// //
-// // ErrorHandler methods
-// //
-
-// /*
-// * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
-// */
-// public override void warning(SAXParseException ex) {
-// errMsg = "[Warning] " + getLocationString(ex) + ": " + ex.GetMessage();
-// }
-
-// /*
-// * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
-// */
-// public override void error(SAXParseException ex) {
-// errMsg = "[Error] " + getLocationString(ex) + ": " + ex.GetMessage();
-// }
-
-// /*
-// * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
-// */
-// public override void fatalError(SAXParseException ex) throws SAXException {
-// errMsg = "[Fatal Error] " + getLocationString(ex) + ": " + ex.GetMessage();
-// throw ex;
-// }
-
-// /*
-// * Returns a string of the location.
-// */
-// private String getLocationString(SAXParseException ex) {
-// StringBuilder str = new StringBuilder();
-
-// String systemId = ex.GetSystemId();
-// if (systemId != null) {
-// int index = systemId.lastIndexOf('/');
-// if (index != -1) {
-// systemId = systemId.substring(index + 1);
-// }
-// str.Append(systemId);
-// }
-// str.Append(':');
-// str.Append(ex.GetLineNumber());
-// str.Append(':');
-// str.Append(ex.GetColumnNumber());
-
-// return str.ToString();
-
-// } // getLocationString(SAXParseException):String
-
-// // PatternConsumer implementation for testing purposes
-// public void addClass(String c) {
-// Console.WriteLine("class: " + c);
-// }
-
-// public void addException(String w, ArrayList e) {
-// Console.WriteLine("exception: " + w + " : " + e.ToString());
-// }
-
-// public void addPattern(String p, String v) {
-// Console.WriteLine("pattern: " + p + " : " + v);
-// }
-
-// public static void main(String[] args)
-// {
-// if (args.Length > 0) {
-// PatternParser pp = new PatternParser();
-// pp.SetConsumer(pp);
-// pp.parse(args[0]);
-// }
-// }
-//}
-
-//class HyphenationDTDGenerator {
-// public static readonly String DTD_STRING=
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n"+
-// "\n";
-
-// public static InputSource generateDTD() {
-// return new InputSource(new StringReader(DTD_STRING));
-// }
-//}
-//}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/TernaryTree.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/TernaryTree.cs
deleted file mode 100644
index 5ca380ce3a..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/Hyphenation/TernaryTree.cs
+++ /dev/null
@@ -1,766 +0,0 @@
-/*
- * 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.
- */
-
-//using System;
-//using System.Collections;
-//using System.Text;
-
-//namespace Lucene.Net.Analysis.Compound.Hyphenation
-//{
-// /*
-// *
Ternary Search Tree.
-// *
-// *
-// * A ternary search tree is a hybrid between a binary tree and a digital search
-// * tree (trie). Keys are limited to strings. A data value of type char is stored
-// * in each leaf node. It can be used as an index (or pointer) to the data.
-// * Branches that only contain one key are compressed to one node by storing a
-// * pointer to the trailer substring of the key. This class is intended to serve
-// * as base class or helper class to implement Dictionary collections or the
-// * like. Ternary trees have some nice properties as the following: the tree can
-// * be traversed in sorted order, partial matches (wildcard) can be implemented,
-// * retrieval of all keys within a given distance from the target, etc. The
-// * storage requirements are higher than a binary tree but a lot less than a
-// * trie. Performance is comparable with a hash table, sometimes it outperforms a
-// * hash function (most of the time can determine a miss faster than a hash).
-// *
-// *
-// *
-// * The main purpose of this java port is to serve as a base for implementing
-// * TeX's hyphenation algorithm (see The TeXBook, appendix H). Each language
-// * requires from 5000 to 15000 hyphenation patterns which will be keys in this
-// * tree. The strings patterns are usually small (from 2 to 5 characters), but
-// * each char in the tree is stored in a node. Thus memory usage is the main
-// * concern. We will sacrifice 'elegance' to keep memory requirements to the
-// * minimum. Using java's char type as pointer (yes, I know pointer it is a
-// * forbidden word in java) we can keep the size of the node to be just 8 bytes
-// * (3 pointers and the data char). This gives room for about 65000 nodes. In my
-// * tests the english patterns took 7694 nodes and the german patterns 10055
-// * nodes, so I think we are safe.
-// *
-// *
-// *
-// * All said, this is a map with strings as keys and char as value. Pretty
-// * limited!. It can be extended to a general map by using the string
-// * representation of an object and using the char value as an index to an array
-// * that contains the object values.
-// *
-// *
-// * This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-// */
-// [Serializable]
-// public class TernaryTree : ICloneable
-// {
-
-// /*
-// * We use 4 arrays to represent a node. I guess I should have created a proper
-// * node class, but somehow Knuth's pascal code made me forget we now have a
-// * portable language with virtual memory management and automatic garbage
-// * collection! And now is kind of late, furthermore, if it ain't broken, don't
-// * fix it.
-// */
-
-// /*
-// * Pointer to low branch and to rest of the key when it is stored directly in
-// * this node, we don't have unions in java!
-// */
-// protected char[] lo;
-
-// /*
-// * Pointer to high branch.
-// */
-// protected char[] hi;
-
-// /*
-// * Pointer to equal branch and to data when this node is a string terminator.
-// */
-// protected char[] eq;
-
-// /*
-// *
-// * The character stored in this node: splitchar. Two special values are
-// * reserved:
-// *
-// *
-// *
0x0000 as string terminator
-// *
0xFFFF to indicate that the branch starting at this node is compressed
-// *
-// *
-// * This shouldn't be a problem if we give the usual semantics to strings since
-// * 0xFFFF is guaranteed not to be an Unicode character.
-// *
-// */
-// protected char[] sc;
-
-// /*
-// * This vector holds the trailing of the keys when the branch is compressed.
-// */
-// protected CharVector kv;
-
-// protected char root;
-
-// protected char freenode;
-
-// protected int length; // number of items in tree
-
-// protected static readonly int BLOCK_SIZE = 2048; // allocation size for arrays
-
-// private TernaryTree()
-// {
-// Init();
-// }
-
-// protected void Init()
-// {
-// root = (char)0;
-// freenode = (char)1;
-// length = 0;
-// lo = new char[BLOCK_SIZE];
-// hi = new char[BLOCK_SIZE];
-// eq = new char[BLOCK_SIZE];
-// sc = new char[BLOCK_SIZE];
-// kv = new CharVector();
-// }
-
-// /*
-// * Branches are initially compressed, needing one node per key plus the size
-// * of the string key. They are decompressed as needed when another key with
-// * same prefix is inserted. This saves a lot of space, specially for long
-// * keys.
-// */
-// public void insert(String key, char val)
-// {
-// // make sure we have enough room in the arrays
-// int len = key.Length + 1; // maximum number of nodes that may be generated
-// if (freenode + len > eq.Length)
-// {
-// redimNodeArrays(eq.Length + BLOCK_SIZE);
-// }
-// char[] strkey = new char[len--];
-// key.GetChars(0, len, strkey, 0);
-// strkey[len] = (char)0;
-// root = insert(root, strkey, 0, val);
-// }
-
-// public void insert(char[] key, int start, char val)
-// {
-// int len = strlen(key) + 1;
-// if (freenode + len > eq.Length)
-// {
-// redimNodeArrays(eq.Length + BLOCK_SIZE);
-// }
-// root = insert(root, key, start, val);
-// }
-
-// /*
-// * The actual insertion function, recursive version.
-// */
-// private char insert(char p, char[] key, int start, char val)
-// {
-// int len = strlen(key, start);
-// if (p == 0)
-// {
-// // this means there is no branch, this node will start a new branch.
-// // Instead of doing that, we store the key somewhere else and create
-// // only one node with a pointer to the key
-// p = freenode++;
-// eq[p] = val; // holds data
-// length++;
-// hi[p] = (char)0;
-// if (len > 0)
-// {
-// sc[p] = (char)0xFFFF; // indicates branch is compressed
-// lo[p] = (char)kv.Alloc(len + 1); // use 'lo' to hold pointer to key
-// strcpy(kv.GetArray(), lo[p], key, start);
-// }
-// else
-// {
-// sc[p] = (char)0;
-// lo[p] = (char)0;
-// }
-// return p;
-// }
-
-// if (sc[p] == 0xFFFF)
-// {
-// // branch is compressed: need to decompress
-// // this will generate garbage in the external key array
-// // but we can do some garbage collection later
-// char pp = freenode++;
-// lo[pp] = lo[p]; // previous pointer to key
-// eq[pp] = eq[p]; // previous pointer to data
-// lo[p] = (char)0;
-// if (len > 0)
-// {
-// sc[p] = kv.Get(lo[pp]);
-// eq[p] = pp;
-// lo[pp]++;
-// if (kv.Get(lo[pp]) == 0)
-// {
-// // key completly decompressed leaving garbage in key array
-// lo[pp] = (char)0;
-// sc[pp] = (char)0;
-// hi[pp] = (char)0;
-// }
-// else
-// {
-// // we only got first char of key, rest is still there
-// sc[pp] = (char)0xFFFF;
-// }
-// }
-// else
-// {
-// // In this case we can save a node by swapping the new node
-// // with the compressed node
-// sc[pp] = (char)0xFFFF;
-// hi[p] = pp;
-// sc[p] = (char)0;
-// eq[p] = val;
-// length++;
-// return p;
-// }
-// }
-// char s = key[start];
-// if (s < sc[p])
-// {
-// lo[p] = insert(lo[p], key, start, val);
-// }
-// else if (s == sc[p])
-// {
-// if (s != 0)
-// {
-// eq[p] = insert(eq[p], key, start + 1, val);
-// }
-// else
-// {
-// // key already in tree, overwrite data
-// eq[p] = val;
-// }
-// }
-// else
-// {
-// hi[p] = insert(hi[p], key, start, val);
-// }
-// return p;
-// }
-
-// /*
-// * Compares 2 null terminated char arrays
-// */
-// public static int strcmp(char[] a, int startA, char[] b, int startB)
-// {
-// for (; a[startA] == b[startB]; startA++, startB++)
-// {
-// if (a[startA] == 0)
-// {
-// return 0;
-// }
-// }
-// return a[startA] - b[startB];
-// }
-
-// /*
-// * Compares a string with null terminated char array
-// */
-// public static int strcmp(String str, char[] a, int start)
-// {
-// int i, d, len = str.Length;
-// for (i = 0; i < len; i++)
-// {
-// d = (int)str[i] - a[start + i];
-// if (d != 0)
-// {
-// return d;
-// }
-// if (a[start + i] == 0)
-// {
-// return d;
-// }
-// }
-// if (a[start + i] != 0)
-// {
-// return (int)-a[start + i];
-// }
-// return 0;
-
-// }
-
-// public static void strcpy(char[] dst, int di, char[] src, int si)
-// {
-// while (src[si] != 0)
-// {
-// dst[di++] = src[si++];
-// }
-// dst[di] = (char)0;
-// }
-
-// public static int strlen(char[] a, int start)
-// {
-// int len = 0;
-// for (int i = start; i < a.Length && a[i] != 0; i++)
-// {
-// len++;
-// }
-// return len;
-// }
-
-// public static int strlen(char[] a)
-// {
-// return strlen(a, 0);
-// }
-
-// public int find(String key)
-// {
-// int len = key.Length;
-// char[] strkey = new char[len + 1];
-// key.GetChars(0, len, strkey, 0);
-// strkey[len] = (char)0;
-
-// return find(strkey, 0);
-// }
-
-// public int find(char[] key, int start)
-// {
-// int d;
-// char p = root;
-// int i = start;
-// char c;
-
-// while (p != 0)
-// {
-// if (sc[p] == 0xFFFF)
-// {
-// if (strcmp(key, i, kv.GetArray(), lo[p]) == 0)
-// {
-// return eq[p];
-// }
-// else
-// {
-// return -1;
-// }
-// }
-// c = key[i];
-// d = c - sc[p];
-// if (d == 0)
-// {
-// if (c == 0)
-// {
-// return eq[p];
-// }
-// i++;
-// p = eq[p];
-// }
-// else if (d < 0)
-// {
-// p = lo[p];
-// }
-// else
-// {
-// p = hi[p];
-// }
-// }
-// return -1;
-// }
-
-// public bool knows(String key)
-// {
-// return (find(key) >= 0);
-// }
-
-// // redimension the arrays
-// private void redimNodeArrays(int newsize)
-// {
-// int len = newsize < lo.Length ? newsize : lo.Length;
-// char[] na = new char[newsize];
-// Array.Copy(lo, 0, na, 0, len);
-// lo = na;
-// na = new char[newsize];
-// Array.Copy(hi, 0, na, 0, len);
-// hi = na;
-// na = new char[newsize];
-// Array.Copy(eq, 0, na, 0, len);
-// eq = na;
-// na = new char[newsize];
-// Array.Copy(sc, 0, na, 0, len);
-// sc = na;
-// }
-
-// public int size()
-// {
-// return length;
-// }
-
-// public Object clone()
-// {
-// TernaryTree t = new TernaryTree();
-// t.lo = (char[])this.lo.Clone();
-// t.hi = (char[])this.hi.Clone();
-// t.eq = (char[])this.eq.Clone();
-// t.sc = (char[])this.sc.Clone();
-// t.kv = (CharVector)this.kv.Clone();
-// t.root = this.root;
-// t.freenode = this.freenode;
-// t.length = this.length;
-
-// return t;
-// }
-
-// /*
-// * Recursively insert the median first and then the median of the lower and
-// * upper halves, and so on in order to get a balanced tree. The array of keys
-// * is assumed to be sorted in ascending order.
-// */
-// protected void insertBalanced(String[] k, char[] v, int offset, int n)
-// {
-// int m;
-// if (n < 1)
-// {
-// return;
-// }
-// m = n >> 1;
-
-// insert(k[m + offset], v[m + offset]);
-// insertBalanced(k, v, offset, m);
-
-// insertBalanced(k, v, offset + m + 1, n - m - 1);
-// }
-
-// /*
-// * Balance the tree for best search performance
-// */
-// public void balance()
-// {
-// // System.out.print("Before root splitchar = ");
-// // System.out.println(sc[root]);
-
-// int i = 0, n = length;
-// String[] k = new String[n];
-// char[] v = new char[n];
-// Iterator iter = new Iterator();
-// while (iter.HasMoreElements())
-// {
-// v[i] = iter.getValue();
-// k[i++] = (String)iter.nextElement();
-// }
-// Init();
-// insertBalanced(k, v, 0, n);
-
-// // With uniform letter distribution sc[root] should be around 'm'
-// // System.out.print("After root splitchar = ");
-// // System.out.println(sc[root]);
-// }
-
-// /*
-// * Each node stores a character (splitchar) which is part of some key(s). In a
-// * compressed branch (one that only contain a single string key) the trailer
-// * of the key which is not already in nodes is stored externally in the kv
-// * array. As items are inserted, key substrings decrease. Some substrings may
-// * completely disappear when the whole branch is totally decompressed. The
-// * tree is traversed to find the key substrings actually used. In addition,
-// * duplicate substrings are removed using a map (implemented with a
-// * TernaryTree!).
-// *
-// */
-// public void trimToSize()
-// {
-// // first balance the tree for best performance
-// balance();
-
-// // redimension the node arrays
-// redimNodeArrays(freenode);
-
-// // ok, compact kv array
-// CharVector kx = new CharVector();
-// kx.Alloc(1);
-// TernaryTree map = new TernaryTree();
-// compact(kx, map, root);
-// kv = kx;
-// kv.TrimToSize();
-// }
-
-// private void compact(CharVector kx, TernaryTree map, char p)
-// {
-// int k;
-// if (p == 0)
-// {
-// return;
-// }
-// if (sc[p] == 0xFFFF)
-// {
-// k = map.find(kv.GetArray(), lo[p]);
-// if (k < 0)
-// {
-// k = kx.Alloc(strlen(kv.GetArray(), lo[p]) + 1);
-// strcpy(kx.GetArray(), k, kv.GetArray(), lo[p]);
-// map.insert(kx.GetArray(), k, (char)k);
-// }
-// lo[p] = (char)k;
-// }
-// else
-// {
-// compact(kx, map, lo[p]);
-// if (sc[p] != 0)
-// {
-// compact(kx, map, eq[p]);
-// }
-// compact(kx, map, hi[p]);
-// }
-// }
-
-// public IEnumerator keys()
-// {
-// return new Iterator();
-// }
-
-// public class Iterator : IEnumerator
-// {
-
-// /*
-// * current node index
-// */
-// int cur;
-
-// /*
-// * current key
-// */
-// String curkey;
-
-// private class Item : ICloneable
-// {
-// char parent;
-
-// char child;
-
-// public Item()
-// {
-// parent = (char)0;
-// child = (char)0;
-// }
-
-// public Item(char p, char c)
-// {
-// parent = p;
-// child = c;
-// }
-
-// public Object Clone()
-// {
-// return new Item(parent, child);
-// }
-
-// }
-
-// /*
-// * Node stack
-// */
-// Stack ns;
-
-// /*
-// * key stack implemented with a StringBuilder
-// */
-// StringBuilder ks;
-
-// public Iterator()
-// {
-// cur = -1;
-// ns = new Stack();
-// ks = new StringBuilder();
-// rewind();
-// }
-
-// public void rewind()
-// {
-// ns.Clear();
-// ks.SetLength(0);
-// cur = root;
-// Run();
-// }
-
-// public Object nextElement()
-// {
-// String res = curkey;
-// cur = up();
-// Run();
-// return res;
-// }
-
-// public char getValue()
-// {
-// if (cur >= 0)
-// {
-// return eq[cur];
-// }
-// return 0;
-// }
-
-// public bool hasMoreElements()
-// {
-// return (cur != -1);
-// }
-
-// /*
-// * traverse upwards
-// */
-// private int up()
-// {
-// Item i = new Item();
-// int res = 0;
-
-// if (ns.Empty())
-// {
-// return -1;
-// }
-
-// if (cur != 0 && sc[cur] == 0)
-// {
-// return lo[cur];
-// }
-
-// bool climb = true;
-
-// while (climb)
-// {
-// i = (Item)ns.Pop();
-// i.child++;
-// switch (i.child)
-// {
-// case 1:
-// if (sc[i.parent] != 0)
-// {
-// res = eq[i.parent];
-// ns.Push(i.Clone());
-// ks.Append(sc[i.parent]);
-// }
-// else
-// {
-// i.child++;
-// ns.Push(i.Clone());
-// res = hi[i.parent];
-// }
-// climb = false;
-// break;
-
-// case 2:
-// res = hi[i.parent];
-// ns.Push(i.Clone());
-// if (ks.Length() > 0)
-// {
-// ks.SetLength(ks.Length() - 1); // pop
-// }
-// climb = false;
-// break;
-
-// default:
-// if (ns.Clear())
-// {
-// return -1;
-// }
-// climb = true;
-// break;
-// }
-// }
-// return res;
-// }
-
-// /*
-// * traverse the tree to find next key
-// */
-// private int Run()
-// {
-// if (cur == -1)
-// {
-// return -1;
-// }
-
-// bool leaf = false;
-// while (true)
-// {
-// // first go down on low branch until leaf or compressed branch
-// while (cur != 0)
-// {
-// if (sc[cur] == 0xFFFF)
-// {
-// leaf = true;
-// break;
-// }
-// ns.Push(new Item((char)cur, '\u0000'));
-// if (sc[cur] == 0)
-// {
-// leaf = true;
-// break;
-// }
-// cur = lo[cur];
-// }
-// if (leaf)
-// {
-// break;
-// }
-// // nothing found, go up one node and try again
-// cur = up();
-// if (cur == -1)
-// {
-// return -1;
-// }
-// }
-// // The current node should be a data node and
-// // the key should be in the key stack (at least partially)
-// StringBuilder buf = new StringBuilder(ks.ToString());
-// if (sc[cur] == 0xFFFF)
-// {
-// int p = lo[cur];
-// while (kv.Get(p) != 0)
-// {
-// buf.Append(kv.Get(p++));
-// }
-// }
-// curkey = buf.ToString();
-// return 0;
-// }
-
-// }
-
-// public void PrintStats()
-// {
-// Console.WriteLine("Number of keys = " + length);
-// Console.WriteLine("Node count = " + freenode);
-// // System.out.println("Array length = " + Integer.toString(eq.length));
-// Console.WriteLine("Key Array length = " + kv.Length());
-
-// /*
-// * for(int i=0; i
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Compound/HyphenationCompoundWordTokenFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Compound/HyphenationCompoundWordTokenFilter.cs
deleted file mode 100644
index 51c49fab41..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Compound/HyphenationCompoundWordTokenFilter.cs
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * 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.
- */
-
-//using System;
-//using System.Collections.Generic;
-//using System.IO;
-//using System.Linq;
-//using Lucene.Net.Analysis.Compound.Hyphenation;
-
-//namespace Lucene.Net.Analysis.Compound
-//{
-// /*
-// * A {@link TokenFilter} that decomposes compound words found in many Germanic languages.
-// *
-// * "Donaudampfschiff" becomes Donau, dampf, schiff so that you can find
-// * "Donaudampfschiff" even when you only enter "schiff". It uses a hyphenation
-// * grammar and a word dictionary to achieve this.
-// *
-// */
-//public class HyphenationCompoundWordTokenFilter : CompoundWordTokenFilterBase
-//{
-// private HyphenationTree hyphenator;
-
-// /*
-// *
-// * @param input the {@link TokenStream} to process
-// * @param hyphenator the hyphenation pattern tree to use for hyphenation
-// * @param dictionary the word dictionary to match against
-// * @param minWordSize only words longer than this get processed
-// * @param minSubwordSize only subwords longer than this get to the output
-// * stream
-// * @param maxSubwordSize only subwords shorter than this get to the output
-// * stream
-// * @param onlyLongestMatch Add only the longest matching subword to the stream
-// */
-// public HyphenationCompoundWordTokenFilter(TokenStream input, HyphenationTree hyphenator, String[] dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
-// : this(input, hyphenator, MakeDictionary(dictionary), minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch)
-// {
-// }
-
-// /*
-// *
-// * @param input the {@link TokenStream} to process
-// * @param hyphenator the hyphenation pattern tree to use for hyphenation
-// * @param dictionary the word dictionary to match against
-// */
-// public HyphenationCompoundWordTokenFilter(TokenStream input, HyphenationTree hyphenator, String[] dictionary)
-// : this(input, hyphenator, MakeDictionary(dictionary), DEFAULT_MIN_WORD_SIZE,
-// DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE, false)
-// {
-
-// }
-
-// /*
-// *
-// * @param input the {@link TokenStream} to process
-// * @param hyphenator the hyphenation pattern tree to use for hyphenation
-// * @param dictionary the word dictionary to match against. If this is a {@link org.apache.lucene.analysis.CharArraySet CharArraySet} it must have set ignoreCase=false and only contain
-// * lower case strings.
-// */
-// public HyphenationCompoundWordTokenFilter(TokenStream input,
-// HyphenationTree hyphenator, ISet dictionary)
-// : this(input, hyphenator, dictionary, DEFAULT_MIN_WORD_SIZE, DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE, false)
-// {
-
-// }
-
-// /*
-// *
-// * @param input the {@link TokenStream} to process
-// * @param hyphenator the hyphenation pattern tree to use for hyphenation
-// * @param dictionary the word dictionary to match against. If this is a {@link org.apache.lucene.analysis.CharArraySet CharArraySet} it must have set ignoreCase=false and only contain
-// * lower case strings.
-// * @param minWordSize only words longer than this get processed
-// * @param minSubwordSize only subwords longer than this get to the output
-// * stream
-// * @param maxSubwordSize only subwords shorter than this get to the output
-// * stream
-// * @param onlyLongestMatch Add only the longest matching subword to the stream
-// */
-// public HyphenationCompoundWordTokenFilter(TokenStream input,
-// HyphenationTree hyphenator, ISet dictionary, int minWordSize,
-// int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
-// : base(input, dictionary, minWordSize, minSubwordSize, maxSubwordSize,
-// onlyLongestMatch)
-// {
-
-
-// this.hyphenator = hyphenator;
-// }
-
-// /*
-// * Create a hyphenator tree
-// *
-// * @param hyphenationFilename the filename of the XML grammar to load
-// * @return An object representing the hyphenation patterns
-// * @throws Exception
-// */
-// public static HyphenationTree GetHyphenationTree(String hyphenationFilename)
-// {
-// return GetHyphenationTree(new InputSource(hyphenationFilename));
-// }
-
-// /*
-// * Create a hyphenator tree
-// *
-// * @param hyphenationFile the file of the XML grammar to load
-// * @return An object representing the hyphenation patterns
-// * @throws Exception
-// */
-// public static HyphenationTree GetHyphenationTree(FileInfo hyphenationFile)
-// {
-// return GetHyphenationTree(new InputSource(hyphenationFile.toURL().toExternalForm()));
-// }
-
-// /*
-// * Create a hyphenator tree
-// *
-// * @param hyphenationReader the reader of the XML grammar to load from
-// * @return An object representing the hyphenation patterns
-// * @throws Exception
-// */
-// public static HyphenationTree GetHyphenationTree(TextReader hyphenationReader)
-// {
-// InputSource _is = new InputSource(hyphenationReader);
-// // we need this to load the DTD in very old parsers (like the one in JDK 1.4).
-// // The DTD itsself is provided via EntityResolver, so it should always load, but
-// // some parsers still want to have a base URL (Crimson).
-// _is.setSystemId("urn:java:" + HyphenationTree.class.getName());
-// return getHyphenationTree(is);
-// }
-
-// /*
-// * Create a hyphenator tree
-// *
-// * @param hyphenationSource the InputSource pointing to the XML grammar
-// * @return An object representing the hyphenation patterns
-// * @throws Exception
-// */
-// public static HyphenationTree GetHyphenationTree(InputSource hyphenationSource)
-//{
-// HyphenationTree tree = new HyphenationTree();
-// tree.loadPatterns(hyphenationSource);
-// return tree;
-// }
-
-// protected override void DecomposeInternal(Token token)
-//{
-// // get the hyphenation points
-// Hyphenation.Hyphenation hyphens = hyphenator.hyphenate(token.TermBuffer(), 0, token.TermLength(), 1, 1);
-// // No hyphen points found -> exit
-// if (hyphens == null) {
-// return;
-// }
-
-// int[] hyp = hyphens.GetHyphenationPoints();
-// char[] lowerCaseTermBuffer=MakeLowerCaseCopy(token.TermBuffer());
-
-// for (int i = 0; i < hyp.Length; ++i) {
-// int remaining = hyp.Length - i;
-// int start = hyp[i];
-// Token longestMatchToken = null;
-// for (int j = 1; j < remaining; j++) {
-// int partLength = hyp[i + j] - start;
-
-// // if the part is longer than maxSubwordSize we
-// // are done with this round
-// if (partLength > this.maxSubwordSize) {
-// break;
-// }
-
-// // we only put subwords to the token stream
-// // that are longer than minPartSize
-// if (partLength < this.minSubwordSize) {
-// continue;
-// }
-
-// // check the dictionary
-// if (dictionary.Contains(lowerCaseTermBuffer, start, partLength)) {
-// if (this.onlyLongestMatch) {
-// if (longestMatchToken != null) {
-// if (longestMatchToken.TermLength() < partLength) {
-// longestMatchToken = CreateToken(start, partLength, token);
-// }
-// } else {
-// longestMatchToken = CreateToken(start, partLength, token);
-// }
-// } else {
-// tokens.AddLast(CreateToken(start, partLength, token));
-// }
-// } else if (dictionary.Contains(lowerCaseTermBuffer, start,
-// partLength - 1)) {
-// // check the dictionary again with a word that is one character
-// // shorter
-// // to avoid problems with genitive 's characters and other binding
-// // characters
-// if (this.onlyLongestMatch) {
-// if (longestMatchToken != null) {
-// if (longestMatchToken.TermLength() < partLength - 1) {
-// longestMatchToken = CreateToken(start, partLength - 1, token);
-// }
-// } else {
-// longestMatchToken = CreateToken(start, partLength - 1, token);
-// }
-// } else {
-// tokens.AddLast(CreateToken(start, partLength - 1, token));
-// }
-// }
-// }
-// if (this.onlyLongestMatch && longestMatchToken!=null) {
-// tokens.AddLast(longestMatchToken);
-// }
-// }
-// }
-//}
-//}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Contrib.Analyzers.csproj b/external/Lucene.Net/src/contrib/Analyzers/Contrib.Analyzers.csproj
deleted file mode 100644
index 4f7826e1de..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Contrib.Analyzers.csproj
+++ /dev/null
@@ -1,224 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- 9.0.21022
- 2.0
- {4286E961-9143-4821-B46D-3D39D3736386}
- Properties
- Lucene.Net.Analysis
- Lucene.Net.Contrib.Analyzers
- 512
-
-
- 3.5
-
-
-
-
- v4.0
- $(TargetFrameworkVersion.Replace("v", "NET").Replace(".", ""))
- true
- full
- false
- ..\..\..\build\bin\contrib\Analyzers\$(Configuration.Replace("35", ""))\$(Framework)\
- DEBUG;TRACE;$(Framework)
- prompt
- 4
- true
- 618
- Library
-
-
- v3.5
- $(TargetFrameworkVersion.Replace("v", "NET").Replace(".", ""))
- true
- full
- false
- ..\..\..\build\bin\contrib\Analyzers\$(Configuration.Replace("35", ""))\$(Framework)\
- DEBUG;TRACE;$(Framework)
- prompt
- 4
- true
- 618
- Library
-
-
- v4.0
- $(TargetFrameworkVersion.Replace("v", "NET").Replace(".", ""))
- pdbonly
- true
- ..\..\..\build\bin\contrib\Analyzers\$(Configuration.Replace("35", ""))\$(Framework)\
- TRACE;$(Framework)
- prompt
- 4
- ..\..\..\build\bin\contrib\Analyzers\$(Configuration.Replace("35", ""))\$(Framework)\Lucene.Net.Contrib.Analyzers.XML
- 618
- true
- Library
-
-
- v3.5
- $(TargetFrameworkVersion.Replace("v", "NET").Replace(".", ""))
- pdbonly
- true
- ..\..\..\build\bin\contrib\Analyzers\$(Configuration.Replace("35", ""))\$(Framework)\
- TRACE;$(Framework)
- prompt
- 4
- ..\..\..\build\bin\contrib\Analyzers\$(Configuration.Replace("35", ""))\$(Framework)\Lucene.Net.Contrib.Analyzers.XML
- 618
- true
- Library
-
-
- true
-
-
- Lucene.Net.snk
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {5D4AD9BE-1FFB-41AB-9943-25737971BF57}
- Lucene.Net
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Cz/CzechAnalyzer.cs b/external/Lucene.Net/src/contrib/Analyzers/Cz/CzechAnalyzer.cs
deleted file mode 100644
index baf3dbf548..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Cz/CzechAnalyzer.cs
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-using System.Collections;
-
-using Lucene.Net.Analysis;
-using Lucene.Net.Analysis.De;
-using Lucene.Net.Analysis.Standard;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.Cz
-{
-/*
- * {@link Analyzer} for Czech language.
- *
- * Supports an external list of stopwords (words that
- * will not be indexed at all).
- * A default set of stopwords is used unless an alternative list is specified.
- *
- *
- *
NOTE: This class uses the same {@link Version}
- * dependent settings as {@link StandardAnalyzer}.
- */
-public sealed class CzechAnalyzer : Analyzer {
-
- /*
- * List of typical stopwords.
- * @deprecated use {@link #getDefaultStopSet()} instead
- */
- // TODO make this private in 3.1
- public static readonly String[] CZECH_STOP_WORDS = {
- "a","s","k","o","i","u","v","z","dnes","cz","t\u00edmto","bude\u0161","budem",
- "byli","jse\u0161","m\u016fj","sv\u00fdm","ta","tomto","tohle","tuto","tyto",
- "jej","zda","pro\u010d","m\u00e1te","tato","kam","tohoto","kdo","kte\u0159\u00ed",
- "mi","n\u00e1m","tom","tomuto","m\u00edt","nic","proto","kterou","byla",
- "toho","proto\u017ee","asi","ho","na\u0161i","napi\u0161te","re","co\u017e","t\u00edm",
- "tak\u017ee","sv\u00fdch","jej\u00ed","sv\u00fdmi","jste","aj","tu","tedy","teto",
- "bylo","kde","ke","prav\u00e9","ji","nad","nejsou","\u010di","pod","t\u00e9ma",
- "mezi","p\u0159es","ty","pak","v\u00e1m","ani","kdy\u017e","v\u0161ak","neg","jsem",
- "tento","\u010dl\u00e1nku","\u010dl\u00e1nky","aby","jsme","p\u0159ed","pta","jejich",
- "byl","je\u0161t\u011b","a\u017e","bez","tak\u00e9","pouze","prvn\u00ed","va\u0161e","kter\u00e1",
- "n\u00e1s","nov\u00fd","tipy","pokud","m\u016f\u017ee","strana","jeho","sv\u00e9","jin\u00e9",
- "zpr\u00e1vy","nov\u00e9","nen\u00ed","v\u00e1s","jen","podle","zde","u\u017e","b\u00fdt","v\u00edce",
- "bude","ji\u017e","ne\u017e","kter\u00fd","by","kter\u00e9","co","nebo","ten","tak",
- "m\u00e1","p\u0159i","od","po","jsou","jak","dal\u0161\u00ed","ale","si","se","ve",
- "to","jako","za","zp\u011bt","ze","do","pro","je","na","atd","atp",
- "jakmile","p\u0159i\u010dem\u017e","j\u00e1","on","ona","ono","oni","ony","my","vy",
- "j\u00ed","ji","m\u011b","mne","jemu","tomu","t\u011bm","t\u011bmu","n\u011bmu","n\u011bmu\u017e",
- "jeho\u017e","j\u00ed\u017e","jeliko\u017e","je\u017e","jako\u017e","na\u010de\u017e",
- };
-
- /*
- * Returns a set of default Czech-stopwords
- * @return a set of default Czech-stopwords
- */
- public static ISet getDefaultStopSet(){
- return DefaultSetHolder.DEFAULT_SET;
- }
-
- private static class DefaultSetHolder {
- internal static ISet DEFAULT_SET = CharArraySet.UnmodifiableSet(new CharArraySet(
- (IEnumerable)CZECH_STOP_WORDS, false));
- }
-
- /*
- * Contains the stopwords used with the {@link StopFilter}.
- */
- // TODO make this final in 3.1
- private ISet stoptable;
- private readonly Version matchVersion;
-
- /*
- * Builds an analyzer with the default stop words ({@link #CZECH_STOP_WORDS}).
- */
- public CzechAnalyzer(Version matchVersion)
- : this(matchVersion, DefaultSetHolder.DEFAULT_SET)
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words and stemming exclusion words
- *
- * @param matchVersion
- * lucene compatibility version
- * @param stopwords
- * a stopword set
- */
- public CzechAnalyzer(Version matchVersion, ISet stopwords) {
- this.matchVersion = matchVersion;
- this.stoptable = CharArraySet.UnmodifiableSet(CharArraySet.Copy(stopwords));
- }
-
-
- /*
- * Builds an analyzer with the given stop words.
- * @deprecated use {@link #CzechAnalyzer(Version, Set)} instead
- */
- public CzechAnalyzer(Version matchVersion, params string[] stopwords)
- : this(matchVersion, StopFilter.MakeStopSet( stopwords ))
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words.
- *
- * @deprecated use {@link #CzechAnalyzer(Version, Set)} instead
- */
- public CzechAnalyzer(Version matchVersion, HashSet stopwords)
- : this(matchVersion, (ISet)stopwords)
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words.
- * @deprecated use {@link #CzechAnalyzer(Version, Set)} instead
- */
- public CzechAnalyzer(Version matchVersion, FileInfo stopwords )
- : this(matchVersion, WordlistLoader.GetWordSet( stopwords ))
- {
-
- }
-
- /*
- * Loads stopwords hash from resource stream (file, database...).
- * @param wordfile File containing the wordlist
- * @param encoding Encoding used (win-1250, iso-8859-2, ...), null for default system encoding
- * @deprecated use {@link WordlistLoader#getWordSet(Reader, String) }
- * and {@link #CzechAnalyzer(Version, Set)} instead
- */
- public void LoadStopWords( Stream wordfile, System.Text.Encoding encoding ) {
- PreviousTokenStream = null; // force a new stopfilter to be created
- if ( wordfile == null )
- {
- stoptable = Support.Compatibility.SetFactory.CreateHashSet();
- return;
- }
- try {
- // clear any previous table (if present)
- stoptable = Support.Compatibility.SetFactory.CreateHashSet();
-
- StreamReader isr;
- if (encoding == null)
- isr = new StreamReader(wordfile);
- else
- isr = new StreamReader(wordfile, encoding);
-
- stoptable = WordlistLoader.GetWordSet(isr);
- } catch ( IOException) {
- // clear any previous table (if present)
- // TODO: throw IOException
- stoptable = Support.Compatibility.SetFactory.CreateHashSet();
- }
- }
-
- /*
- * Creates a {@link TokenStream} which tokenizes all the text in the provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a {@link StandardTokenizer} filtered with
- * {@link StandardFilter}, {@link LowerCaseFilter}, and {@link StopFilter}
- */
- public override sealed TokenStream TokenStream( String fieldName, TextReader reader ) {
- TokenStream result = new StandardTokenizer( matchVersion, reader );
- result = new StandardFilter( result );
- result = new LowerCaseFilter( result );
- result = new StopFilter( StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- result, stoptable );
- return result;
- }
-
- private class SavedStreams {
- protected internal Tokenizer source;
- protected internal TokenStream result;
- };
-
- /*
- * Returns a (possibly reused) {@link TokenStream} which tokenizes all the text in
- * the provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a {@link StandardTokenizer} filtered with
- * {@link StandardFilter}, {@link LowerCaseFilter}, and {@link StopFilter}
- */
- public override TokenStream ReusableTokenStream(String fieldName, TextReader reader)
- {
- SavedStreams streams = (SavedStreams) PreviousTokenStream;
- if (streams == null) {
- streams = new SavedStreams();
- streams.source = new StandardTokenizer(matchVersion, reader);
- streams.result = new StandardFilter(streams.source);
- streams.result = new LowerCaseFilter(streams.result);
- streams.result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- streams.result, stoptable);
- PreviousTokenStream = streams;
- } else {
- streams.source.Reset(reader);
- }
- return streams.result;
- }
-}
-
-
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/De/GermanAnalyzer.cs b/external/Lucene.Net/src/contrib/Analyzers/De/GermanAnalyzer.cs
deleted file mode 100644
index d6946b6329..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/De/GermanAnalyzer.cs
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Collections;
-using System.Linq;
-using Lucene.Net.Analysis.Standard;
-using Lucene.Net.Analysis;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.De
-{
- ///
- /// Analyzer for German language. Supports an external list of stopwords (words that
- /// will not be indexed at all) and an external list of exclusions (word that will
- /// not be stemmed, but indexed).
- /// A default set of stopwords is used unless an alternative list is specified, the
- /// exclusion list is empty by default.
- ///
- public class GermanAnalyzer : Analyzer
- {
- ///
- /// List of typical german stopwords.
- ///
- //TODO: make this private in 3.1
- private static readonly String[] GERMAN_STOP_WORDS =
- {
- "einer", "eine", "eines", "einem", "einen",
- "der", "die", "das", "dass", "daß",
- "du", "er", "sie", "es",
- "was", "wer", "wie", "wir",
- "und", "oder", "ohne", "mit",
- "am", "im", "in", "aus", "auf",
- "ist", "sein", "war", "wird",
- "ihr", "ihre", "ihres",
- "als", "für", "von",
- "dich", "dir", "mich", "mir",
- "mein", "kein",
- "durch", "wegen"
- };
-
- ///
- /// Returns a set of default German-stopwords
- ///
- public static ISet GetDefaultStopSet()
- {
- return DefaultSetHolder.DEFAULT_SET;
- }
-
- private static class DefaultSetHolder
- {
- internal static readonly ISet DEFAULT_SET = CharArraySet.UnmodifiableSet(new CharArraySet(
- (IEnumerable)GERMAN_STOP_WORDS,
- false));
- }
-
- ///
- /// Contains the stopwords used with the StopFilter.
- ///
- //TODO: make this readonly in 3.1
- private ISet stopSet;
-
- ///
- /// Contains words that should be indexed but not stemmed.
- ///
- //TODO: make this readonly in 3.1
- private ISet exclusionSet;
-
- private Version matchVersion;
- private readonly bool _normalizeDin2;
-
- ///
- /// Builds an analyzer with the default stop words:
- ///
- ///
- [Obsolete("Use GermanAnalyzer(Version) instead")]
- public GermanAnalyzer()
- : this(Version.LUCENE_CURRENT)
- {
- }
-
- ///
- /// Builds an analyzer with the default stop words:
- ///
- ///
- /// Lucene compatibility version
- public GermanAnalyzer(Version matchVersion)
- : this(matchVersion, DefaultSetHolder.DEFAULT_SET)
- { }
-
- ///
- /// Builds an analyzer with the default stop words:
- ///
- ///
- /// Lucene compatibility version
- /// Specifies if the DIN-2007-2 style stemmer should be used in addition to DIN1. This
- /// will cause words with 'ae', 'ue', or 'oe' in them (expanded umlauts) to be first converted to 'a', 'u', and 'o'
- /// respectively, before the DIN1 stemmer is invoked.
- public GermanAnalyzer(Version matchVersion, bool normalizeDin2)
- : this(matchVersion, DefaultSetHolder.DEFAULT_SET, normalizeDin2)
- { }
-
- ///
- /// Builds an analyzer with the given stop words, using the default DIN-5007-1 stemmer
- ///
- /// Lucene compatibility version
- /// a stopword set
- public GermanAnalyzer(Version matchVersion, ISet stopwords)
- : this(matchVersion, stopwords, CharArraySet.EMPTY_SET)
- {
- }
-
- ///
- /// Builds an analyzer with the given stop words
- ///
- /// Lucene compatibility version
- /// a stopword set
- /// Specifies if the DIN-2007-2 style stemmer should be used in addition to DIN1. This
- /// will cause words with 'ae', 'ue', or 'oe' in them (expanded umlauts) to be first converted to 'a', 'u', and 'o'
- /// respectively, before the DIN1 stemmer is invoked.
- public GermanAnalyzer(Version matchVersion, ISet stopwords, bool normalizeDin2)
- : this(matchVersion, stopwords, CharArraySet.EMPTY_SET, normalizeDin2)
- {
- }
-
- ///
- /// Builds an analyzer with the given stop words, using the default DIN-5007-1 stemmer
- ///
- /// lucene compatibility version
- /// a stopword set
- /// a stemming exclusion set
- public GermanAnalyzer(Version matchVersion, ISet stopwords, ISet stemExclusionSet)
- : this(matchVersion, stopwords, stemExclusionSet, false)
- { }
-
-
- ///
- /// Builds an analyzer with the given stop words
- ///
- /// lucene compatibility version
- /// a stopword set
- /// a stemming exclusion set
- /// Specifies if the DIN-2007-2 style stemmer should be used in addition to DIN1. This
- /// will cause words with 'ae', 'ue', or 'oe' in them (expanded umlauts) to be first converted to 'a', 'u', and 'o'
- /// respectively, before the DIN1 stemmer is invoked.
- public GermanAnalyzer(Version matchVersion, ISet stopwords, ISet stemExclusionSet, bool normalizeDin2)
- {
- stopSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(stopwords));
- exclusionSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(stemExclusionSet));
- this.matchVersion = matchVersion;
- _normalizeDin2 = normalizeDin2;
- SetOverridesTokenStreamMethod();
- }
-
- ///
- /// Builds an analyzer with the given stop words.
- ///
- ///
- [Obsolete("use GermanAnalyzer(Version, Set) instead")]
- public GermanAnalyzer(Version matchVersion, params string[] stopwords)
- : this(matchVersion, StopFilter.MakeStopSet(stopwords))
- {
- }
-
- ///
- /// Builds an analyzer with the given stop words.
- ///
- [Obsolete("Use GermanAnalyzer(Version, ISet)")]
- public GermanAnalyzer(Version matchVersion, IDictionary stopwords)
- : this(matchVersion, stopwords.Keys.ToArray())
- {
-
- }
-
- ///
- /// Builds an analyzer with the given stop words.
- ///
- [Obsolete("Use GermanAnalyzer(Version, ISet)")]
- public GermanAnalyzer(Version matchVersion, FileInfo stopwords)
- : this(matchVersion, WordlistLoader.GetWordSet(stopwords))
- {
- }
-
- ///
- /// Builds an exclusionlist from an array of Strings.
- ///
- [Obsolete("Use GermanAnalyzer(Version, ISet, ISet) instead")]
- public void SetStemExclusionTable(String[] exclusionlist)
- {
- exclusionSet = StopFilter.MakeStopSet(exclusionlist);
- PreviousTokenStream = null;
- }
-
- ///
- /// Builds an exclusionlist from a IDictionary.
- ///
- [Obsolete("Use GermanAnalyzer(Version, ISet, ISet) instead")]
- public void SetStemExclusionTable(IDictionary exclusionlist)
- {
- exclusionSet = Support.Compatibility.SetFactory.CreateHashSet(exclusionlist.Keys);
- PreviousTokenStream = null;
- }
-
- ///
- /// Builds an exclusionlist from the words contained in the given file.
- ///
- [Obsolete("Use GermanAnalyzer(Version, ISet, ISet) instead")]
- public void SetStemExclusionTable(FileInfo exclusionlist)
- {
- exclusionSet = WordlistLoader.GetWordSet(exclusionlist);
- PreviousTokenStream = null;
- }
-
- ///
- /// Creates a TokenStream which tokenizes all the text in the provided TextReader.
- ///
- ///
- ///
- /// A TokenStream build from a StandardTokenizer filtered with StandardFilter, StopFilter, GermanStemFilter
- public override TokenStream TokenStream(String fieldName, TextReader reader)
- {
- TokenStream result = new StandardTokenizer(matchVersion, reader);
- result = new StandardFilter(result);
- result = new LowerCaseFilter(result);
- result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion), result, stopSet);
- result = new GermanStemFilter(result, exclusionSet, _normalizeDin2);
- return result;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/De/GermanDIN2Stemmer.cs b/external/Lucene.Net/src/contrib/Analyzers/De/GermanDIN2Stemmer.cs
deleted file mode 100644
index f6db6b165f..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/De/GermanDIN2Stemmer.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Lucene.Net.Analysis.De
-{
- ///
- /// A stemmer for the german language that uses the
- /// DIN-5007-2 "Phone Book" rules for handling
- /// umlaut characters.
- ///
- public sealed class GermanDIN2Stemmer : GermanStemmer
- {
- protected override void Substitute(StringBuilder buffer)
- {
- for (int c = 0; c < buffer.Length; c++)
- {
- if (buffer[c] == 'e')
- {
- switch (buffer[c - 1])
- {
- case 'a':
- case 'o':
- case 'u':
- buffer.Remove(c, 1);
- break;
- }
- }
- }
- base.Substitute(buffer);
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/De/GermanStemFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/De/GermanStemFilter.cs
deleted file mode 100644
index 2bb4cd9f69..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/De/GermanStemFilter.cs
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Collections;
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.De
-{
- ///
- /// A filter that stems German words. It supports a table of words that should
- /// not be stemmed at all. The stemmer used can be changed at runtime after the
- /// filter object is created (as long as it is a GermanStemmer).
- ///
- public sealed class GermanStemFilter : TokenFilter
- {
- ///
- /// The actual token in the input stream.
- ///
- private GermanStemmer stemmer = null;
- private ISet exclusionSet = null;
-
- private ITermAttribute termAtt;
-
- public GermanStemFilter(TokenStream _in)
- : this(_in, false)
- { }
-
- public GermanStemFilter(TokenStream _in, bool useDin2Stemmer)
- : this(_in, null, useDin2Stemmer)
- { }
-
- ///
- /// Builds a GermanStemFilter that uses an exclusiontable.
- ///
- ///
- ///
- public GermanStemFilter(TokenStream _in, ISet exclusiontable)
- : this(_in, exclusiontable, false)
- { }
-
- ///
- /// Builds a GermanStemFilter that uses an exclusiontable.
- ///
- ///
- ///
- /// Specifies if the DIN-2007-2 style stemmer should be used in addition to DIN1. This
- /// will cause words with 'ae', 'ue', or 'oe' in them (expanded umlauts) to be first converted to 'a', 'u', and 'o'
- /// respectively, before the DIN1 stemmer is invoked.
- public GermanStemFilter(TokenStream _in, ISet exclusiontable, bool normalizeDin2)
- : base(_in)
- {
- exclusionSet = exclusiontable;
- stemmer = normalizeDin2 ? new GermanDIN2Stemmer() : new GermanStemmer();
- termAtt = AddAttribute();
- }
-
- ///
- /// Returns true for next token in the stream, or false at EOS
- ///
- public override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- String term = termAtt.Term;
- // Check the exclusion table.
- if (exclusionSet == null || !exclusionSet.Contains(term))
- {
- String s = stemmer.Stem(term);
- // If not stemmed, don't waste the time adjusting the token.
- if ((s != null) && !s.Equals(term))
- termAtt.SetTermBuffer(s);
- }
- return true;
- }
- else
- {
- return false;
- }
- }
-
- ///
- /// Set a alternative/custom GermanStemmer for this filter.
- ///
- ///
- public void SetStemmer(GermanStemmer stemmer)
- {
- if (stemmer != null)
- {
- this.stemmer = stemmer;
- }
- }
-
- ///
- /// Set an alternative exclusion list for this filter.
- ///
- ///
- public void SetExclusionTable(ISet exclusiontable)
- {
- exclusionSet = exclusiontable;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/De/GermanStemmer.cs b/external/Lucene.Net/src/contrib/Analyzers/De/GermanStemmer.cs
deleted file mode 100644
index d94d604da1..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/De/GermanStemmer.cs
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.IO;
-using System.Text;
-using System.Collections;
-
-namespace Lucene.Net.Analysis.De
-{
- ///
- /// A stemmer for German words. The algorithm is based on the report
- /// "A Fast and Simple Stemming Algorithm for German Words" by Jörg
- /// Caumanns (joerg.caumanns@isst.fhg.de).
- ///
- public class GermanStemmer
- {
- ///
- /// Buffer for the terms while stemming them.
- ///
- private StringBuilder sb = new StringBuilder();
-
- ///
- /// Amount of characters that are removed with Substitute() while stemming.
- ///
- protected int substCount = 0;
-
- ///
- /// Stemms the given term to an unique discriminator.
- ///
- /// The term that should be stemmed.
- /// Discriminator for term
- internal String Stem( String term )
- {
- // Use lowercase for medium stemming.
- term = term.ToLower();
- if ( !IsStemmable( term ) )
- return term;
- // Reset the StringBuilder.
- sb.Remove(0, sb.Length);
- sb.Insert(0, term);
- // Stemming starts here...
- Substitute( sb );
- Strip( sb );
- Optimize( sb );
- Resubstitute( sb );
- RemoveParticleDenotion( sb );
- return sb.ToString();
- }
-
- ///
- /// Checks if a term could be stemmed.
- ///
- ///
- /// true if, and only if, the given term consists in letters.
- private bool IsStemmable( String term )
- {
- for ( int c = 0; c < term.Length; c++ )
- {
- if ( !Char.IsLetter(term[c])) return false;
- }
- return true;
- }
-
- ///
- /// Suffix stripping (stemming) on the current term. The stripping is reduced
- /// to the seven "base" suffixes "e", "s", "n", "t", "em", "er" and * "nd",
- /// from which all regular suffixes are build of. The simplification causes
- /// some overstemming, and way more irregular stems, but still provides unique.
- /// discriminators in the most of those cases.
- /// The algorithm is context free, except of the length restrictions.
- ///
- ///
- private void Strip( StringBuilder buffer )
- {
- bool doMore = true;
- while ( doMore && buffer.Length > 3 )
- {
- if ( ( buffer.Length + substCount > 5 ) &&
- buffer.ToString().Substring(buffer.Length - 2, 2).Equals( "nd" ) )
- {
- buffer.Remove( buffer.Length - 2, 2 );
- }
- else if ( ( buffer.Length + substCount > 4 ) &&
- buffer.ToString().Substring( buffer.Length - 2, 2).Equals( "em" ) )
- {
- buffer.Remove( buffer.Length - 2, 2 );
- }
- else if ( ( buffer.Length + substCount > 4 ) &&
- buffer.ToString().Substring( buffer.Length - 2, 2).Equals( "er" ) )
- {
- buffer.Remove( buffer.Length - 2, 2 );
- }
- else if ( buffer[buffer.Length - 1] == 'e' )
- {
- buffer.Remove(buffer.Length - 1, 1);
- }
- else if ( buffer[buffer.Length - 1] == 's' )
- {
- buffer.Remove(buffer.Length - 1, 1);
- }
- else if ( buffer[buffer.Length - 1] == 'n' )
- {
- buffer.Remove(buffer.Length - 1, 1);
- }
- // "t" occurs only as suffix of verbs.
- else if ( buffer[buffer.Length - 1] == 't')
- {
- buffer.Remove(buffer.Length - 1, 1);
- }
- else
- {
- doMore = false;
- }
- }
- }
-
- ///
- /// Does some optimizations on the term. This optimisations are contextual.
- ///
- ///
- private void Optimize( StringBuilder buffer )
- {
- // Additional step for female plurals of professions and inhabitants.
- if ( buffer.Length > 5 && buffer.ToString().Substring(buffer.Length - 5, 5).Equals( "erin*" ))
- {
- buffer.Remove(buffer.Length - 1, 1);
- Strip(buffer);
- }
- // Additional step for irregular plural nouns like "Matrizen -> Matrix".
- if ( buffer[buffer.Length - 1] == ('z') )
- {
- buffer[buffer.Length - 1] = 'x';
- }
- }
-
- ///
- /// Removes a particle denotion ("ge") from a term.
- ///
- ///
- private void RemoveParticleDenotion( StringBuilder buffer )
- {
- if ( buffer.Length > 4 )
- {
- for ( int c = 0; c < buffer.Length - 3; c++ )
- {
- if ( buffer.ToString().Substring( c, 4 ).Equals( "gege" ) )
- {
- buffer.Remove(c, 2);
- return;
- }
- }
- }
- }
-
- ///
- /// Do some substitutions for the term to reduce overstemming:
- ///
- /// - Substitute Umlauts with their corresponding vowel: äöü -> aou,
- /// "ß" is substituted by "ss"
- /// - Substitute a second char of a pair of equal characters with
- /// an asterisk: ?? -> ?*
- /// - Substitute some common character combinations with a token:
- /// sch/ch/ei/ie/ig/st -> $/Ð’§/%/&/#/!
- ///
- protected virtual void Substitute( StringBuilder buffer )
- {
- substCount = 0;
- for ( int c = 0; c < buffer.Length; c++ )
- {
- // Replace the second char of a pair of the equal characters with an asterisk
- if (c > 0 && buffer[c] == buffer[c - 1])
- {
- buffer[c] = '*';
- }
- // Substitute Umlauts.
- else if (buffer[c] == 'ä')
- {
- buffer[c] = 'a';
- }
- else if (buffer[c] == 'ö')
- {
- buffer[c] = 'o';
- }
- else if (buffer[c] == 'ü')
- {
- buffer[c] = 'u';
- }
- // Fix bug so that 'ß' at the end of a word is replaced.
- else if (buffer[c] == 'ß')
- {
- buffer[c] = 's';
- buffer.Insert(c + 1, 's');
- substCount++;
- }
-
- // Take care that at least one character is left left side from the current one
- if ( c < buffer.Length - 1 )
- {
- // Masking several common character combinations with an token
- if ( ( c < buffer.Length - 2 ) && buffer[c] == 's' &&
- buffer[c + 1] == 'c' && buffer[c + 2] == 'h' )
- {
- buffer[c] = '$';
- buffer.Remove(c + 1, 2);
- substCount =+ 2;
- }
- else if ( buffer[c] == 'c' && buffer[c + 1] == 'h' )
- {
- buffer[c] = '§';
- buffer.Remove(c + 1, 1);
- substCount++;
- }
- else if ( buffer[c] == 'e' && buffer[c + 1] == 'i' )
- {
- buffer[c] = '%';
- buffer.Remove(c + 1, 1);
- substCount++;
- }
- else if ( buffer[c] == 'i' && buffer[c + 1] == 'e' )
- {
- buffer[c] = '&';
- buffer.Remove(c + 1, 1);
- substCount++;
- }
- else if ( buffer[c] == 'i' && buffer[c + 1] == 'g' )
- {
- buffer[c] = '#';
- buffer.Remove(c + 1, 1);
- substCount++;
- }
- else if ( buffer[c] == 's' && buffer[c + 1] == 't' )
- {
- buffer[c] = '!';
- buffer.Remove(c + 1, 1);
- substCount++;
- }
- }
- }
- }
-
- ///
- /// Undoes the changes made by Substitute(). That are character pairs and
- /// character combinations. Umlauts will remain as their corresponding vowel,
- /// as "?" remains as "ss".
- ///
- ///
- private void Resubstitute( StringBuilder buffer )
- {
- for ( int c = 0; c < buffer.Length; c++ )
- {
- if ( buffer[c] == '*' )
- {
- char x = buffer[c - 1];
- buffer[c] = x;
- }
- else if ( buffer[c] == '$' )
- {
- buffer[c] = 's';
- buffer.Insert( c + 1, new char[]{'c', 'h'}, 0, 2);
- }
- else if ( buffer[c] == '§' )
- {
- buffer[c] = 'c';
- buffer.Insert( c + 1, 'h' );
- }
- else if ( buffer[c] == '%' )
- {
- buffer[c] = 'e';
- buffer.Insert( c + 1, 'i' );
- }
- else if ( buffer[c] == '&' )
- {
- buffer[c] = 'i';
- buffer.Insert( c + 1, 'e' );
- }
- else if ( buffer[c] == '#' )
- {
- buffer[c] = 'i';
- buffer.Insert( c + 1, 'g' );
- }
- else if ( buffer[c] == '!' )
- {
- buffer[c] = 's';
- buffer.Insert( c + 1, 't' );
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/El/GreekAnalyzer.cs b/external/Lucene.Net/src/contrib/Analyzers/El/GreekAnalyzer.cs
deleted file mode 100644
index 1242ec7161..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/El/GreekAnalyzer.cs
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using Lucene.Net.Analysis.Standard;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.El
-{
- /*
- * {@link Analyzer} for the Greek language.
- *
- * Supports an external list of stopwords (words
- * that will not be indexed at all).
- * A default set of stopwords is used unless an alternative list is specified.
- *
- *
- *
NOTE: This class uses the same {@link Version}
- * dependent settings as {@link StandardAnalyzer}.
- */
- public sealed class GreekAnalyzer : Analyzer
- {
- /*
- * List of typical Greek stopwords.
- */
-
- private static readonly String[] GREEK_STOP_WORDS = {
- "ο", "η", "το", "οι", "τα", "του", "τησ", "των", "τον",
- "την", "και",
- "κι", "κ", "ειμαι", "εισαι", "ειναι", "ειμαστε", "ειστε"
- , "στο", "στον",
- "στη", "στην", "μα", "αλλα", "απο", "για", "Ï€Ïοσ", "με",
- "σε", "ωσ",
- "παÏα", "αντι", "κατα", "μετα", "θα", "να", "δε", "δεν",
- "μη", "μην",
- "επι", "ενω", "εαν", "αν", "τοτε", "που", "πωσ", "ποιοσ"
- , "ποια", "ποιο",
- "ποιοι", "ποιεσ", "ποιων", "ποιουσ", "αυτοσ", "αυτη",
- "αυτο", "αυτοι",
- "αυτων", "αυτουσ", "αυτεσ", "αυτα", "εκεινοσ", "εκεινη",
- "εκεινο",
- "εκεινοι", "εκεινεσ", "εκεινα", "εκεινων", "εκεινουσ",
- "οπωσ", "ομωσ",
- "ισωσ", "οσο", "οτι"
- };
-
- /*
- * Returns a set of default Greek-stopwords
- * @return a set of default Greek-stopwords
- */
- public static ISet GetDefaultStopSet()
- {
- return DefaultSetHolder.DEFAULT_SET;
- }
-
- private static class DefaultSetHolder
- {
- internal static ISet DEFAULT_SET = CharArraySet.UnmodifiableSet(new CharArraySet((IEnumerable)GREEK_STOP_WORDS, false));
- }
-
- /*
- * Contains the stopwords used with the {@link StopFilter}.
- */
- private readonly ISet stopSet;
-
- private readonly Version matchVersion;
-
- public GreekAnalyzer(Version matchVersion)
- : this(matchVersion, DefaultSetHolder.DEFAULT_SET)
- {
- }
-
- /*
- * Builds an analyzer with the given stop words
- *
- * @param matchVersion
- * lucene compatibility version
- * @param stopwords
- * a stopword set
- */
- public GreekAnalyzer(Version matchVersion, ISet stopwords)
- {
- stopSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(stopwords));
- this.matchVersion = matchVersion;
- }
-
- /*
- * Builds an analyzer with the given stop words.
- * @param stopwords Array of stopwords to use.
- * @deprecated use {@link #GreekAnalyzer(Version, Set)} instead
- */
- public GreekAnalyzer(Version matchVersion, params string[] stopwords)
- : this(matchVersion, StopFilter.MakeStopSet(stopwords))
- {
- }
-
- /*
- * Builds an analyzer with the given stop words.
- * @deprecated use {@link #GreekAnalyzer(Version, Set)} instead
- */
- public GreekAnalyzer(Version matchVersion, IDictionary stopwords)
- : this(matchVersion, stopwords.Keys.ToArray())
- {
- }
-
- /*
- * Creates a {@link TokenStream} which tokenizes all the text in the provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a {@link StandardTokenizer} filtered with
- * {@link GreekLowerCaseFilter} and {@link StopFilter}
- */
- public override TokenStream TokenStream(String fieldName, TextReader reader)
- {
- TokenStream result = new StandardTokenizer(matchVersion, reader);
- result = new GreekLowerCaseFilter(result);
- result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- result, stopSet);
- return result;
- }
-
- private class SavedStreams
- {
- protected internal Tokenizer source;
- protected internal TokenStream result;
- };
-
- /*
- * Returns a (possibly reused) {@link TokenStream} which tokenizes all the text
- * in the provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a {@link StandardTokenizer} filtered with
- * {@link GreekLowerCaseFilter} and {@link StopFilter}
- */
- public override TokenStream ReusableTokenStream(String fieldName, TextReader reader)
- {
- SavedStreams streams = (SavedStreams)PreviousTokenStream;
- if (streams == null)
- {
- streams = new SavedStreams();
- streams.source = new StandardTokenizer(matchVersion, reader);
- streams.result = new GreekLowerCaseFilter(streams.source);
- streams.result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- streams.result, stopSet);
- PreviousTokenStream = streams;
- }
- else
- {
- streams.source.Reset(reader);
- }
- return streams.result;
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/El/GreekLowerCaseFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/El/GreekLowerCaseFilter.cs
deleted file mode 100644
index 5c157be434..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/El/GreekLowerCaseFilter.cs
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.El
-{
- /*
- * Normalizes token text to lower case, removes some Greek diacritics,
- * and standardizes final sigma to sigma.
- *
- */
- public sealed class GreekLowerCaseFilter : TokenFilter
- {
- private ITermAttribute termAtt;
-
- public GreekLowerCaseFilter(TokenStream _in)
- : base(_in)
- {
- termAtt = AddAttribute();
- }
-
- public override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- char[] chArray = termAtt.TermBuffer();
- int chLen = termAtt.TermLength();
- // TODO: iterate codepoints to support supp. characters
- for (int i = 0; i < chLen; i++)
- {
- chArray[i] = (char)lowerCase(chArray[i]);
- }
- return true;
- }
- else
- {
- return false;
- }
- }
-
- private int lowerCase(int codepoint)
- {
- switch (codepoint)
- {
- /* There are two lowercase forms of sigma:
- * U+03C2: small final sigma (end of word)
- * U+03C3: small sigma (otherwise)
- *
- * Standardize both to U+03C3
- */
- case '\u03C2': /* small final sigma */
- return '\u03C3'; /* small sigma */
-
- /* Some greek characters contain diacritics.
- * This filter removes these, converting to the lowercase base form.
- */
-
- case '\u0386': /* capital alpha with tonos */
- case '\u03AC': /* small alpha with tonos */
- return '\u03B1'; /* small alpha */
-
- case '\u0388': /* capital epsilon with tonos */
- case '\u03AD': /* small epsilon with tonos */
- return '\u03B5'; /* small epsilon */
-
- case '\u0389': /* capital eta with tonos */
- case '\u03AE': /* small eta with tonos */
- return '\u03B7'; /* small eta */
-
- case '\u038A': /* capital iota with tonos */
- case '\u03AA': /* capital iota with dialytika */
- case '\u03AF': /* small iota with tonos */
- case '\u03CA': /* small iota with dialytika */
- case '\u0390': /* small iota with dialytika and tonos */
- return '\u03B9'; /* small iota */
-
- case '\u038E': /* capital upsilon with tonos */
- case '\u03AB': /* capital upsilon with dialytika */
- case '\u03CD': /* small upsilon with tonos */
- case '\u03CB': /* small upsilon with dialytika */
- case '\u03B0': /* small upsilon with dialytika and tonos */
- return '\u03C5'; /* small upsilon */
-
- case '\u038C': /* capital omicron with tonos */
- case '\u03CC': /* small omicron with tonos */
- return '\u03BF'; /* small omicron */
-
- case '\u038F': /* capital omega with tonos */
- case '\u03CE': /* small omega with tonos */
- return '\u03C9'; /* small omega */
-
- /* The previous implementation did the conversion below.
- * Only implemented for backwards compatibility with old indexes.
- */
-
- case '\u03A2': /* reserved */
- return '\u03C2'; /* small final sigma */
-
- default:
- return char.ToLower((char)codepoint);
- }
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianAnalyzer.cs b/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianAnalyzer.cs
deleted file mode 100644
index db6292d7f2..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianAnalyzer.cs
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using Lucene.Net.Analysis.AR;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.Fa
-{
- /*
- * {@link Analyzer} for Persian.
- *
- * This Analyzer uses {@link ArabicLetterTokenizer} which implies tokenizing around
- * zero-width non-joiner in addition to whitespace. Some persian-specific variant forms (such as farsi
- * yeh and keheh) are standardized. "Stemming" is accomplished via stopwords.
- *
- */
- public sealed class PersianAnalyzer : Analyzer
- {
-
- /*
- * File containing default Persian stopwords.
- *
- * Default stopword list is from
- * http://members.unine.ch/jacques.savoy/clef/index.html The stopword list is
- * BSD-Licensed.
- *
- */
- public readonly static String DEFAULT_STOPWORD_FILE = "stopwords.txt";
-
- /*
- * Contains the stopwords used with the StopFilter.
- */
- private readonly ISet stoptable;
-
- /*
- * The comment character in the stopwords file. All lines prefixed with this
- * will be ignored
- */
- public static readonly String STOPWORDS_COMMENT = "#";
-
- /*
- * Returns an unmodifiable instance of the default stop-words set.
- * @return an unmodifiable instance of the default stop-words set.
- */
- public static ISet getDefaultStopSet()
- {
- return DefaultSetHolder.DEFAULT_STOP_SET;
- }
-
- /*
- * Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class
- * accesses the static final set the first time.;
- */
- private static class DefaultSetHolder
- {
- internal static readonly ISet DEFAULT_STOP_SET;
-
- static DefaultSetHolder()
- {
- try
- {
- DEFAULT_STOP_SET = LoadDefaultStopWordSet();
- }
- catch (IOException ex)
- {
- // default set should always be present as it is part of the
- // distribution (JAR)
- throw new Exception("Unable to load default stopword set");
- }
- }
-
- static ISet LoadDefaultStopWordSet()
- {
-
- var stream = System.Reflection.Assembly.GetAssembly(typeof(PersianAnalyzer)).GetManifestResourceStream("Lucene.Net.Analyzers.Fa." + DEFAULT_STOPWORD_FILE);
- try
- {
- StreamReader reader = new StreamReader(stream, System.Text.Encoding.UTF8);
- // make sure it is unmodifiable as we expose it in the outer class
- return CharArraySet.UnmodifiableSet(new CharArraySet(WordlistLoader.GetWordSet(reader, STOPWORDS_COMMENT), true));
- }
- finally
- {
- stream.Close();
- }
- }
- }
-
- private readonly Version matchVersion;
-
- /*
- * Builds an analyzer with the default stop words:
- * {@link #DEFAULT_STOPWORD_FILE}.
- */
- public PersianAnalyzer(Version matchVersion)
- : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET)
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words
- *
- * @param matchVersion
- * lucene compatibility version
- * @param stopwords
- * a stopword set
- */
- public PersianAnalyzer(Version matchVersion, ISet stopwords)
- {
- stoptable = CharArraySet.UnmodifiableSet(CharArraySet.Copy(stopwords));
- this.matchVersion = matchVersion;
- }
-
- /*
- * Builds an analyzer with the given stop words.
- * @deprecated use {@link #PersianAnalyzer(Version, Set)} instead
- */
- public PersianAnalyzer(Version matchVersion, params string[] stopwords)
- : this(matchVersion, StopFilter.MakeStopSet(stopwords))
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words.
- * @deprecated use {@link #PersianAnalyzer(Version, Set)} instead
- */
- public PersianAnalyzer(Version matchVersion, IDictionary stopwords)
- : this(matchVersion, stopwords.Keys.ToArray())
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words. Lines can be commented out
- * using {@link #STOPWORDS_COMMENT}
- * @deprecated use {@link #PersianAnalyzer(Version, Set)} instead
- */
- public PersianAnalyzer(Version matchVersion, FileInfo stopwords)
- : this(matchVersion, WordlistLoader.GetWordSet(stopwords, STOPWORDS_COMMENT))
- {
-
- }
-
- /*
- * Creates a {@link TokenStream} which tokenizes all the text in the provided
- * {@link Reader}.
- *
- * @return A {@link TokenStream} built from a {@link ArabicLetterTokenizer}
- * filtered with {@link LowerCaseFilter},
- * {@link ArabicNormalizationFilter},
- * {@link PersianNormalizationFilter} and Persian Stop words
- */
- public override TokenStream TokenStream(String fieldName, TextReader reader)
- {
- TokenStream result = new ArabicLetterTokenizer(reader);
- result = new LowerCaseFilter(result);
- result = new ArabicNormalizationFilter(result);
- /* additional persian-specific normalization */
- result = new PersianNormalizationFilter(result);
- /*
- * the order here is important: the stopword list is normalized with the
- * above!
- */
- result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- result, stoptable);
- return result;
- }
-
- private class SavedStreams
- {
- protected internal Tokenizer source;
- protected internal TokenStream result;
- }
-
- /*
- * Returns a (possibly reused) {@link TokenStream} which tokenizes all the text
- * in the provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a {@link ArabicLetterTokenizer}
- * filtered with {@link LowerCaseFilter},
- * {@link ArabicNormalizationFilter},
- * {@link PersianNormalizationFilter} and Persian Stop words
- */
- public override TokenStream ReusableTokenStream(String fieldName, TextReader reader)
- {
- SavedStreams streams = (SavedStreams)PreviousTokenStream;
- if (streams == null)
- {
- streams = new SavedStreams();
- streams.source = new ArabicLetterTokenizer(reader);
- streams.result = new LowerCaseFilter(streams.source);
- streams.result = new ArabicNormalizationFilter(streams.result);
- /* additional persian-specific normalization */
- streams.result = new PersianNormalizationFilter(streams.result);
- /*
- * the order here is important: the stopword list is normalized with the
- * above!
- */
- streams.result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- streams.result, stoptable);
- PreviousTokenStream = streams;
- }
- else
- {
- streams.source.Reset(reader);
- }
- return streams.result;
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianNormalizationFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianNormalizationFilter.cs
deleted file mode 100644
index 841e907da8..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianNormalizationFilter.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.Fa
-{
- /*
- * A {@link TokenFilter} that applies {@link PersianNormalizer} to normalize the
- * orthography.
- *
- */
-
-public sealed class PersianNormalizationFilter : TokenFilter {
-
- private readonly PersianNormalizer normalizer;
- private readonly ITermAttribute termAtt;
-
- public PersianNormalizationFilter(TokenStream input)
- :base(input)
- {
- normalizer = new PersianNormalizer();
- termAtt = AddAttribute();
- }
-
- public override bool IncrementToken()
-{
- if (input.IncrementToken()) {
- int newlen = normalizer.Normalize(termAtt.TermBuffer(), termAtt.TermLength());
- termAtt.SetTermLength(newlen);
- return true;
- }
- return false;
- }
-}
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianNormalizer.cs b/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianNormalizer.cs
deleted file mode 100644
index 4e0bbb173f..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Fa/PersianNormalizer.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-
-namespace Lucene.Net.Analysis.Fa
-{
-/*
- * Normalizer for Persian.
- *
- * Normalization is done in-place for efficiency, operating on a termbuffer.
- *
- * Normalization is defined as:
- *
- *
Normalization of various heh + hamza forms and heh goal to heh.
- *
Normalization of farsi yeh and yeh barree to arabic yeh
- *
Normalization of persian keheh to arabic kaf
- *
- *
- */
-public class PersianNormalizer {
- public const char YEH = '\u064A';
-
- public const char FARSI_YEH = '\u06CC';
-
- public const char YEH_BARREE = '\u06D2';
-
- public const char KEHEH = '\u06A9';
-
- public const char KAF = '\u0643';
-
- public const char HAMZA_ABOVE = '\u0654';
-
- public const char HEH_YEH = '\u06C0';
-
- public const char HEH_GOAL = '\u06C1';
-
- public const char HEH = '\u0647';
-
- /*
- * Normalize an input buffer of Persian text
- *
- * @param s input buffer
- * @param len length of input buffer
- * @return length of input buffer after normalization
- */
- public int Normalize(char[] s, int len) {
-
- for (int i = 0; i < len; i++) {
- switch (s[i]) {
- case FARSI_YEH:
- case YEH_BARREE:
- s[i] = YEH;
- break;
- case KEHEH:
- s[i] = KAF;
- break;
- case HEH_YEH:
- case HEH_GOAL:
- s[i] = HEH;
- break;
- case HAMZA_ABOVE: // necessary for HEH + HAMZA
- len = Delete(s, i, len);
- i--;
- break;
- default:
- break;
- }
- }
-
- return len;
- }
-
- /*
- * Delete a character in-place
- *
- * @param s Input Buffer
- * @param pos Position of character to delete
- * @param len length of input buffer
- * @return length of input buffer after deletion
- */
- protected int Delete(char[] s, int pos, int len) {
- if (pos < len)
- Array.Copy(s, pos + 1, s, pos, len - pos - 1);
-
- return len - 1;
- }
-
-}
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Filters/ChainedFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Filters/ChainedFilter.cs
deleted file mode 100644
index 8bc2ffd065..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Filters/ChainedFilter.cs
+++ /dev/null
@@ -1,275 +0,0 @@
-/**
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-using Lucene.Net.Search;
-using Lucene.Net.Index;
-using Lucene.Net.Util;
-
-namespace Lucene.Net.Analysis
-{
-
- ///
- ///*
- /// * Allows multiple {@link Filter}s to be chained.
- /// * Logical operations such as NOT and XOR
- /// * are applied between filters. One operation can be used
- /// * for all filters, or a specific operation can be declared
- /// * for each filter.
- /// *
- /// *
- /// * Order in which filters are called depends on
- /// * the position of the filter in the chain. It's probably
- /// * more efficient to place the most restrictive filters
- /// * /least computationally-intensive filters first.
- /// *
- ///
- public class ChainedFilter : Filter
- {
- public enum Logic
- {
- NONE = -1,
- OR = 0,
- AND = 1,
- ANDNOT = 2,
- XOR = 3
- };
-
- ///Logical operation when none is declared. Defaults to OR
- public const Logic DEFAULT = Logic.OR;
-
- /** The filter chain */
- private Filter[] chain = null;
-
- private Logic[] logicArray;
-
- private Logic logic = Logic.NONE;
-
- ///CtorThe chain of filters
- public ChainedFilter(Filter[] chain)
- {
- this.chain = chain;
- }
-
- ///ctor
- ///The chain of filters
- ///Logical operations to apply between filters
- public ChainedFilter(Filter[] chain, Logic[] logicArray)
- {
- this.chain = chain;
- this.logicArray = logicArray;
- }
-
- ///ctor
- ///The chain of filters
- ///Logical operation to apply to ALL filters
- public ChainedFilter(Filter[] chain, Logic logic)
- {
- this.chain = chain;
- this.logic = logic;
- }
-
- ///
- public override DocIdSet GetDocIdSet(IndexReader reader)
- {
- int[] index = new int[1]; // use array as reference to modifiable int;
- index[0] = 0; // an object attribute would not be thread safe.
- if (logic != Logic.NONE)
- return GetDocIdSet(reader, logic, index);
- else if (logicArray != null)
- return GetDocIdSet(reader, logicArray, index);
- else
- return GetDocIdSet(reader, DEFAULT, index);
- }
-
- private DocIdSetIterator GetDISI(Filter filter, IndexReader reader)
- {
- DocIdSet docIdSet = filter.GetDocIdSet(reader);
- if (docIdSet == null)
- {
- return DocIdSet.EMPTY_DOCIDSET.Iterator();
- }
- else
- {
- DocIdSetIterator iter = docIdSet.Iterator();
- if (iter == null)
- {
- return DocIdSet.EMPTY_DOCIDSET.Iterator();
- }
- else
- {
- return iter;
- }
- }
- }
-
- private OpenBitSetDISI InitialResult(IndexReader reader, Logic logic, int[] index)
- {
- OpenBitSetDISI result;
- /**
- * First AND operation takes place against a completely false
- * bitset and will always return zero results.
- */
- if (logic == Logic.AND)
- {
- result = new OpenBitSetDISI(GetDISI(chain[index[0]], reader), reader.MaxDoc());
- ++index[0];
- }
- else if (logic == Logic.ANDNOT)
- {
- result = new OpenBitSetDISI(GetDISI(chain[index[0]], reader), reader.MaxDoc());
- result.Flip(0, reader.MaxDoc()); // NOTE: may set bits for deleted docs.
- ++index[0];
- }
- else
- {
- result = new OpenBitSetDISI(reader.MaxDoc());
- }
- return result;
- }
-
-
- ///
- /// * Provide a SortedVIntList when it is definitely
- /// * smaller than an OpenBitSet
- /// * @deprecated Either use CachingWrapperFilter, or
- /// * switch to a different DocIdSet implementation yourself.
- /// * This method will be removed in Lucene 4.0
- ///
- protected DocIdSet FinalResult(OpenBitSetDISI result, int maxDocs)
- {
- return result;
- }
-
-
- /**
- * Delegates to each filter in the chain.
- * @param reader IndexReader
- * @param logic Logical operation
- * @return DocIdSet
- */
- private DocIdSet GetDocIdSet(IndexReader reader, Logic logic, int[] index)
- {
- OpenBitSetDISI result = InitialResult(reader, logic, index);
- for (; index[0] < chain.Length; index[0]++)
- {
- DoChain(result, logic, chain[index[0]].GetDocIdSet(reader));
- }
- return FinalResult(result, reader.MaxDoc());
- }
-
- /**
- * Delegates to each filter in the chain.
- * @param reader IndexReader
- * @param logic Logical operation
- * @return DocIdSet
- */
- private DocIdSet GetDocIdSet(IndexReader reader, Logic[] logic, int[] index)
- {
- if (logic.Length != chain.Length)
- throw new ArgumentException("Invalid number of elements in logic array");
-
- OpenBitSetDISI result = InitialResult(reader, logic[0], index);
- for (; index[0] < chain.Length; index[0]++)
- {
- DoChain(result, logic[index[0]], chain[index[0]].GetDocIdSet(reader));
- }
- return FinalResult(result, reader.MaxDoc());
- }
-
- public override String ToString()
- {
- StringBuilder sb = new StringBuilder();
- sb.Append("ChainedFilter: [");
- for (int i = 0; i < chain.Length; i++)
- {
- sb.Append(chain[i]);
- sb.Append(' ');
- }
- sb.Append(']');
- return sb.ToString();
- }
-
- private void DoChain(OpenBitSetDISI result, Logic logic, DocIdSet dis)
- {
-
- if (dis is OpenBitSet)
- {
- // optimized case for OpenBitSets
- switch (logic)
- {
- case Logic.OR:
- result.Or((OpenBitSet)dis);
- break;
- case Logic.AND:
- result.And((OpenBitSet)dis);
- break;
- case Logic.ANDNOT:
- result.AndNot((OpenBitSet)dis);
- break;
- case Logic.XOR:
- result.Xor((OpenBitSet)dis);
- break;
- default:
- DoChain(result, DEFAULT, dis);
- break;
- }
- }
- else
- {
- DocIdSetIterator disi;
- if (dis == null)
- {
- disi = DocIdSet.EMPTY_DOCIDSET.Iterator();
- }
- else
- {
- disi = dis.Iterator();
- if (disi == null)
- {
- disi = DocIdSet.EMPTY_DOCIDSET.Iterator();
- }
- }
-
- switch (logic)
- {
- case Logic.OR:
- result.InPlaceOr(disi);
- break;
- case Logic.AND:
- result.InPlaceAnd(disi);
- break;
- case Logic.ANDNOT:
- result.InPlaceNot(disi);
- break;
- case Logic.XOR:
- result.InPlaceXor(disi);
- break;
- default:
- DoChain(result, DEFAULT, dis);
- break;
- }
- }
- }
-
- }
-
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Fr/ElisionFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Fr/ElisionFilter.cs
deleted file mode 100644
index cf2d2ae5e7..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Fr/ElisionFilter.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.Fr
-{
- /*
- * Removes elisions from a {@link TokenStream}. For example, "l'avion" (the plane) will be
- * tokenized as "avion" (plane).
- *
- * Note that {@link StandardTokenizer} sees " ' " as a space, and cuts it out.
- *
- * @see Elision in Wikipedia
- */
- public sealed class ElisionFilter : TokenFilter
- {
- private CharArraySet articles = null;
- private ITermAttribute termAtt;
-
- private static char[] apostrophes = { '\'', '’' };
-
- public void SetArticles(ISet articles)
- {
- if (articles is CharArraySet)
- this.articles = (CharArraySet)articles;
- else
- this.articles = new CharArraySet(articles, true);
- }
-
- /*
- * Constructs an elision filter with standard stop words
- */
- internal ElisionFilter(TokenStream input)
- : this(input, new[] { "l", "m", "t", "qu", "n", "s", "j" })
- { }
-
- /*
- * Constructs an elision filter with a Set of stop words
- */
- public ElisionFilter(TokenStream input, ISet articles)
- : base(input)
- {
- SetArticles(articles);
- termAtt = AddAttribute();
- }
-
- /*
- * Constructs an elision filter with an array of stop words
- */
- public ElisionFilter(TokenStream input, IEnumerable articles)
- : base(input)
- {
- this.articles = new CharArraySet(articles, true);
- termAtt = AddAttribute();
- }
-
- /*
- * Increments the {@link TokenStream} with a {@link TermAttribute} without elisioned start
- */
- public override sealed bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- char[] termBuffer = termAtt.TermBuffer();
- int termLength = termAtt.TermLength();
-
- int minPoz = int.MaxValue;
- for (int i = 0; i < apostrophes.Length; i++)
- {
- char apos = apostrophes[i];
- // The equivalent of String.indexOf(ch)
- for (int poz = 0; poz < termLength; poz++)
- {
- if (termBuffer[poz] == apos)
- {
- minPoz = Math.Min(poz, minPoz);
- break;
- }
- }
- }
-
- // An apostrophe has been found. If the prefix is an article strip it off.
- if (minPoz != int.MaxValue
- && articles.Contains(termAtt.TermBuffer(), 0, minPoz))
- {
- termAtt.SetTermBuffer(termAtt.TermBuffer(), minPoz + 1, termAtt.TermLength() - (minPoz + 1));
- }
-
- return true;
- }
- else
- {
- return false;
- }
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Fr/FrenchAnalyzer.cs b/external/Lucene.Net/src/contrib/Analyzers/Fr/FrenchAnalyzer.cs
deleted file mode 100644
index 9bdc94fb92..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Fr/FrenchAnalyzer.cs
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-using System.Collections;
-
-using Lucene.Net.Analysis;
-using Lucene.Net.Analysis.De;
-using Lucene.Net.Analysis.Standard;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.Fr
-{
- /*
- * {@link Analyzer} for French language.
- *
- * Supports an external list of stopwords (words that
- * will not be indexed at all) and an external list of exclusions (word that will
- * not be stemmed, but indexed).
- * A default set of stopwords is used unless an alternative list is specified, but the
- * exclusion list is empty by default.
- *
- *
- *
- *
You must specify the required {@link Version}
- * compatibility when creating FrenchAnalyzer:
- *
- *
As of 2.9, StopFilter preserves position
- * increments
- *
- *
- *
NOTE: This class uses the same {@link Version}
- * dependent settings as {@link StandardAnalyzer}.
- * It supports a table of words that should
- * not be stemmed at all. The used stemmer can be changed at runtime after the
- * filter object is created (as long as it is a {@link FrenchStemmer}).
- *
- * NOTE: This stemmer does not implement the Snowball algorithm correctly,
- * especially involving case problems. It is recommended that you consider using
- * the "French" stemmer in the snowball package instead. This stemmer will likely
- * be deprecated in a future release.
- */
- public sealed class FrenchStemFilter : TokenFilter
- {
-
- /*
- * The actual token in the input stream.
- */
- private FrenchStemmer stemmer = null;
- private ISet exclusions = null;
-
- private ITermAttribute termAtt;
-
- public FrenchStemFilter(TokenStream _in)
- : base(_in)
- {
-
- stemmer = new FrenchStemmer();
- termAtt = AddAttribute();
- }
-
-
- public FrenchStemFilter(TokenStream _in, ISet exclusiontable)
- : this(_in)
- {
- exclusions = exclusiontable;
- }
-
- /*
- * @return Returns true for the next token in the stream, or false at EOS
- */
- public override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- String term = termAtt.Term;
-
- // Check the exclusion table
- if (exclusions == null || !exclusions.Contains(term))
- {
- String s = stemmer.Stem(term);
- // If not stemmed, don't waste the time adjusting the token.
- if ((s != null) && !s.Equals(term))
- termAtt.SetTermBuffer(s);
- }
- return true;
- }
- else
- {
- return false;
- }
- }
- /*
- * Set a alternative/custom {@link FrenchStemmer} for this filter.
- */
- public void SetStemmer(FrenchStemmer stemmer)
- {
- if (stemmer != null)
- {
- this.stemmer = stemmer;
- }
- }
- /*
- * Set an alternative exclusion list for this filter.
- */
- public void SetExclusionTable(IDictionary exclusiontable)
- {
- exclusions = Support.Compatibility.SetFactory.CreateHashSet(exclusiontable.Keys);
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Fr/FrenchStemmer.cs b/external/Lucene.Net/src/contrib/Analyzers/Fr/FrenchStemmer.cs
deleted file mode 100644
index e2decb5f61..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Fr/FrenchStemmer.cs
+++ /dev/null
@@ -1,726 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Text;
-
-namespace Lucene.Net.Analysis.Fr
-{
-
-/*
- * A stemmer for French words.
- *
- * The algorithm is based on the work of
- * Dr Martin Porter on his snowball project
- * refer to http://snowball.sourceforge.net/french/stemmer.html
- * (French stemming algorithm) for details
- *
- * If you are unsure how exactly a regular expression should look like, consider
- * prototyping by simply trying various expressions on some test texts via
- * {@link String#split(String)}. Once you are satisfied, give that regex to
- * RegexAnalyzer. Also see Java Regular Expression Tutorial.
- *
- * This class can be considerably faster than the "normal" Lucene tokenizers.
- * It can also serve as a building block in a compound Lucene
- * {@link org.apache.lucene.analysis.TokenFilter} chain. For example as in this
- * stemming example:
- *
- * RegexAnalyzer pat = ...
- * TokenStream tokenStream = new SnowballFilter(
- * pat.tokenStream("content", "James is running round in the woods"),
- * "English"));
- *
- *
- */
- public class PatternAnalyzer : Analyzer
- {
-
- /* "\\W+"; Divides text at non-letters (NOT char.IsLetter(c)) */
- public static readonly Regex NON_WORD_PATTERN = new Regex("\\W+", RegexOptions.Compiled);
-
- /* "\\s+"; Divides text at whitespaces (char.IsWhitespace(c)) */
- public static readonly Regex WHITESPACE_PATTERN = new Regex("\\s+", RegexOptions.Compiled);
-
- private static readonly CharArraySet EXTENDED_ENGLISH_STOP_WORDS =
- CharArraySet.UnmodifiableSet(new CharArraySet((IEnumerable)new[]{
- "a", "about", "above", "across", "adj", "after", "afterwards",
- "again", "against", "albeit", "all", "almost", "alone", "along",
- "already", "also", "although", "always", "among", "amongst", "an",
- "and", "another", "any", "anyhow", "anyone", "anything",
- "anywhere", "are", "around", "as", "at", "be", "became", "because",
- "become", "becomes", "becoming", "been", "before", "beforehand",
- "behind", "being", "below", "beside", "besides", "between",
- "beyond", "both", "but", "by", "can", "cannot", "co", "could",
- "down", "during", "each", "eg", "either", "else", "elsewhere",
- "enough", "etc", "even", "ever", "every", "everyone", "everything",
- "everywhere", "except", "few", "first", "for", "former",
- "formerly", "from", "further", "had", "has", "have", "he", "hence",
- "her", "here", "hereafter", "hereby", "herein", "hereupon", "hers",
- "herself", "him", "himself", "his", "how", "however", "i", "ie", "if",
- "in", "inc", "indeed", "into", "is", "it", "its", "itself", "last",
- "latter", "latterly", "least", "less", "ltd", "many", "may", "me",
- "meanwhile", "might", "more", "moreover", "most", "mostly", "much",
- "must", "my", "myself", "namely", "neither", "never",
- "nevertheless", "next", "no", "nobody", "none", "noone", "nor",
- "not", "nothing", "now", "nowhere", "of", "off", "often", "on",
- "once one", "only", "onto", "or", "other", "others", "otherwise",
- "our", "ours", "ourselves", "out", "over", "own", "per", "perhaps",
- "rather", "s", "same", "seem", "seemed", "seeming", "seems",
- "several", "she", "should", "since", "so", "some", "somehow",
- "someone", "something", "sometime", "sometimes", "somewhere",
- "still", "such", "t", "than", "that", "the", "their", "them",
- "themselves", "then", "thence", "there", "thereafter", "thereby",
- "therefor", "therein", "thereupon", "these", "they", "this",
- "those", "though", "through", "throughout", "thru", "thus", "to",
- "together", "too", "toward", "towards", "under", "until", "up",
- "upon", "us", "very", "via", "was", "we", "well", "were", "what",
- "whatever", "whatsoever", "when", "whence", "whenever",
- "whensoever", "where", "whereafter", "whereas", "whereat",
- "whereby", "wherefrom", "wherein", "whereinto", "whereof",
- "whereon", "whereto", "whereunto", "whereupon", "wherever",
- "wherewith", "whether", "which", "whichever", "whichsoever",
- "while", "whilst", "whither", "who", "whoever", "whole", "whom",
- "whomever", "whomsoever", "whose", "whosoever", "why", "will",
- "with", "within", "without", "would", "xsubj", "xcal", "xauthor",
- "xother ", "xnote", "yet", "you", "your", "yours", "yourself",
- "yourselves"
- }, true));
-
- /*
- * A lower-casing word analyzer with English stop words (can be shared
- * freely across threads without harm); global per class loader.
- */
- public static readonly PatternAnalyzer DEFAULT_ANALYZER = new PatternAnalyzer(
- Version.LUCENE_CURRENT, NON_WORD_PATTERN, true, StopAnalyzer.ENGLISH_STOP_WORDS_SET);
-
- /*
- * A lower-casing word analyzer with extended English stop words
- * (can be shared freely across threads without harm); global per class
- * loader. The stop words are borrowed from
- * http://thomas.loc.gov/home/stopwords.html, see
- * http://thomas.loc.gov/home/all.about.inquery.html
- */
- public static readonly PatternAnalyzer EXTENDED_ANALYZER = new PatternAnalyzer(
- Version.LUCENE_CURRENT, NON_WORD_PATTERN, true, EXTENDED_ENGLISH_STOP_WORDS);
-
- private readonly Regex Regex;
- private readonly bool toLowerCase;
- private readonly ISet stopWords;
-
- private readonly Version matchVersion;
-
- /*
- * Constructs a new instance with the given parameters.
- *
- * @param matchVersion If >= {@link Version#LUCENE_29}, StopFilter.enablePositionIncrement is set to true
- * @param Regex
- * a regular expression delimiting tokens
- * @param toLowerCase
- * if true returns tokens after applying
- * String.toLowerCase()
- * @param stopWords
- * if non-null, ignores all tokens that are contained in the
- * given stop set (after previously having applied toLowerCase()
- * if applicable). For example, created via
- * {@link StopFilter#makeStopSet(String[])}and/or
- * {@link org.apache.lucene.analysis.WordlistLoader}as in
- * WordlistLoader.getWordSet(new File("samples/fulltext/stopwords.txt")
- * or other stop words
- * lists .
- */
- public PatternAnalyzer(Version matchVersion, Regex Regex, bool toLowerCase, ISet stopWords)
- {
- if (Regex == null)
- throw new ArgumentException("Regex must not be null");
-
- if (EqRegex(NON_WORD_PATTERN, Regex)) Regex = NON_WORD_PATTERN;
- else if (EqRegex(WHITESPACE_PATTERN, Regex)) Regex = WHITESPACE_PATTERN;
-
- if (stopWords != null && stopWords.Count == 0) stopWords = null;
-
- this.Regex = Regex;
- this.toLowerCase = toLowerCase;
- this.stopWords = stopWords;
- this.matchVersion = matchVersion;
- }
-
- /*
- * Creates a token stream that tokenizes the given string into token terms
- * (aka words).
- *
- * @param fieldName
- * the name of the field to tokenize (currently ignored).
- * @param text
- * the string to tokenize
- * @return a new token stream
- */
- public TokenStream TokenStream(String fieldName, String text)
- {
- // Ideally the Analyzer superclass should have a method with the same signature,
- // with a default impl that simply delegates to the StringReader flavour.
- if (text == null)
- throw new ArgumentException("text must not be null");
-
- TokenStream stream;
- if (Regex == NON_WORD_PATTERN)
- { // fast path
- stream = new FastStringTokenizer(text, true, toLowerCase, stopWords);
- }
- else if (Regex == WHITESPACE_PATTERN)
- { // fast path
- stream = new FastStringTokenizer(text, false, toLowerCase, stopWords);
- }
- else
- {
- stream = new RegexTokenizer(text, Regex, toLowerCase);
- if (stopWords != null) stream = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion), stream, stopWords);
- }
-
- return stream;
- }
-
- /*
- * Creates a token stream that tokenizes all the text in the given Reader;
- * This implementation forwards to tokenStream(String, String) and is
- * less efficient than tokenStream(String, String).
- *
- * @param fieldName
- * the name of the field to tokenize (currently ignored).
- * @param reader
- * the reader delivering the text
- * @return a new token stream
- */
- public override TokenStream TokenStream(String fieldName, TextReader reader)
- {
- if (reader is FastStringReader)
- { // fast path
- return TokenStream(fieldName, ((FastStringReader)reader).GetString());
- }
-
- try
- {
- String text = ToString(reader);
- return TokenStream(fieldName, text);
- }
- catch (IOException e)
- {
- throw new Exception("Wrapped Exception", e);
- }
- }
-
- /*
- * Indicates whether some other object is "equal to" this one.
- *
- * @param other
- * the reference object with which to compare.
- * @return true if equal, false otherwise
- */
- public override bool Equals(Object other)
- {
- if (this == other) return true;
- if (this == DEFAULT_ANALYZER && other == EXTENDED_ANALYZER) return false;
- if (other == DEFAULT_ANALYZER && this == EXTENDED_ANALYZER) return false;
-
- if (other is PatternAnalyzer)
- {
- PatternAnalyzer p2 = (PatternAnalyzer)other;
- return
- toLowerCase == p2.toLowerCase &&
- EqRegex(Regex, p2.Regex) &&
- Eq(stopWords, p2.stopWords);
- }
- return false;
- }
-
- /*
- * Returns a hash code value for the object.
- *
- * @return the hash code.
- */
- public override int GetHashCode()
- {
- if (this == DEFAULT_ANALYZER) return -1218418418; // fast path
- if (this == EXTENDED_ANALYZER) return 1303507063; // fast path
-
- int h = 1;
- h = 31 * h + Regex.GetHashCode();
- h = 31 * h + (int)Regex.Options;
- h = 31 * h + (toLowerCase ? 1231 : 1237);
- h = 31 * h + (stopWords != null ? stopWords.GetHashCode() : 0);
- return h;
- }
-
- /* equality where o1 and/or o2 can be null */
- private static bool Eq(Object o1, Object o2)
- {
- return (o1 == o2) || (o1 != null ? o1.Equals(o2) : false);
- }
-
- /* assumes p1 and p2 are not null */
- private static bool EqRegex(Regex p1, Regex p2)
- {
- return p1 == p2 || (p1.Options == p2.Options && p1.ToString() == p2.ToString());
- }
-
- /*
- * Reads until end-of-stream and returns all read chars, finally closes the stream.
- *
- * @param input the input stream
- * @throws IOException if an I/O error occurs while reading the stream
- */
- private static String ToString(TextReader input)
- {
- try
- {
- int len = 256;
- char[] buffer = new char[len];
- char[] output = new char[len];
-
- len = 0;
- int n;
- while ((n = input.Read(buffer, 0, buffer.Length)) != 0)
- {
- if (len + n > output.Length)
- { // grow capacity
- char[] tmp = new char[Math.Max(output.Length << 1, len + n)];
- Array.Copy(output, 0, tmp, 0, len);
- Array.Copy(buffer, 0, tmp, len, n);
- buffer = output; // use larger buffer for future larger bulk reads
- output = tmp;
- }
- else
- {
- Array.Copy(buffer, 0, output, len, n);
- }
- len += n;
- }
-
- return new String(output, 0, len);
- }
- finally
- {
- if (input != null) input.Dispose();
- }
- }
-
-
- ///////////////////////////////////////////////////////////////////////////////
- // Nested classes:
- ///////////////////////////////////////////////////////////////////////////////
- /*
- * The work horse; performance isn't fantastic, but it's not nearly as bad
- * as one might think - kudos to the Sun regex developers.
- */
- private sealed class RegexTokenizer : TokenStream
- {
-
- private readonly String str;
- private readonly bool toLowerCase;
- private Match matcher;
- private int pos = 0;
- private static readonly System.Globalization.CultureInfo locale = System.Globalization.CultureInfo.CurrentCulture;
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
-
- public RegexTokenizer(String str, Regex regex, bool toLowerCase)
- {
- this.str = str;
- this.matcher = regex.Match(str);
- this.toLowerCase = toLowerCase;
- this.termAtt = AddAttribute();
- this.offsetAtt = AddAttribute();
- }
-
- public sealed override bool IncrementToken()
- {
- if (matcher == null) return false;
- ClearAttributes();
- while (true)
- { // loop takes care of leading and trailing boundary cases
- int start = pos;
- int end;
- bool isMatch = matcher.Success;
- if (isMatch)
- {
- end = matcher.Index;
- pos = matcher.Index + matcher.Length;
- matcher = matcher.NextMatch();
- }
- else
- {
- end = str.Length;
- matcher = null; // we're finished
- }
-
- if (start != end)
- { // non-empty match (header/trailer)
- String text = str.Substring(start, end - start);
- if (toLowerCase) text = text.ToLower(locale);
- termAtt.SetTermBuffer(text);
- offsetAtt.SetOffset(start, end);
- return true;
- }
- return false;
- }
- }
-
- public override sealed void End()
- {
- // set final offset
- int finalOffset = str.Length;
- this.offsetAtt.SetOffset(finalOffset, finalOffset);
- }
-
- protected override void Dispose(bool disposing)
- {
- // Do Nothing
- }
- }
-
-
- ///////////////////////////////////////////////////////////////////////////////
- // Nested classes:
- ///////////////////////////////////////////////////////////////////////////////
- /*
- * Special-case class for best performance in common cases; this class is
- * otherwise unnecessary.
- */
- private sealed class FastStringTokenizer : TokenStream
- {
-
- private readonly String str;
- private int pos;
- private readonly bool isLetter;
- private readonly bool toLowerCase;
- private readonly ISet stopWords;
- private static readonly System.Globalization.CultureInfo locale = System.Globalization.CultureInfo.CurrentCulture;
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
-
- public FastStringTokenizer(String str, bool isLetter, bool toLowerCase, ISet stopWords)
- {
- this.str = str;
- this.isLetter = isLetter;
- this.toLowerCase = toLowerCase;
- this.stopWords = stopWords;
- this.termAtt = AddAttribute();
- this.offsetAtt = AddAttribute();
- }
-
- public override bool IncrementToken()
- {
- ClearAttributes();
- // cache loop instance vars (performance)
- String s = str;
- int len = s.Length;
- int i = pos;
- bool letter = isLetter;
-
- int start = 0;
- String text;
- do
- {
- // find beginning of token
- text = null;
- while (i < len && !IsTokenChar(s[i], letter))
- {
- i++;
- }
-
- if (i < len)
- { // found beginning; now find end of token
- start = i;
- while (i < len && IsTokenChar(s[i], letter))
- {
- i++;
- }
-
- text = s.Substring(start, i - start);
- if (toLowerCase) text = text.ToLower(locale);
- // if (toLowerCase) {
- //// use next line once JDK 1.5 String.toLowerCase() performance regression is fixed
- //// see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6265809
- // text = s.substring(start, i).toLowerCase();
- //// char[] chars = new char[i-start];
- //// for (int j=start; j < i; j++) chars[j-start] = char.toLowerCase(s[j] );
- //// text = new String(chars);
- // } else {
- // text = s.substring(start, i);
- // }
- }
- } while (text != null && IsStopWord(text));
-
- pos = i;
- if (text == null)
- {
- return false;
- }
- termAtt.SetTermBuffer(text);
- offsetAtt.SetOffset(start, i);
- return true;
- }
-
- public override sealed void End()
- {
- // set final offset
- int finalOffset = str.Length;
- this.offsetAtt.SetOffset(finalOffset, finalOffset);
- }
-
- protected override void Dispose(bool disposing)
- {
- // Do Nothing
- }
-
- private bool IsTokenChar(char c, bool isLetter)
- {
- return isLetter ? char.IsLetter(c) : !char.IsWhiteSpace(c);
- }
-
- private bool IsStopWord(string text)
- {
- return stopWords != null && stopWords.Contains(text);
- }
-
- }
-
-
- ///////////////////////////////////////////////////////////////////////////////
- // Nested classes:
- ///////////////////////////////////////////////////////////////////////////////
- /*
- * A StringReader that exposes it's contained string for fast direct access.
- * Might make sense to generalize this to CharSequence and make it public?
- */
- internal sealed class FastStringReader : StringReader
- {
-
- private readonly string s;
-
- protected internal FastStringReader(string s)
- : base(s)
- {
- this.s = s;
- }
-
- internal string GetString()
- {
- return s;
- }
- }
-
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/PrefixAndSuffixAwareTokenFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/PrefixAndSuffixAwareTokenFilter.cs
deleted file mode 100644
index 9ef8edc951..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/PrefixAndSuffixAwareTokenFilter.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.
- */
-
-namespace Lucene.Net.Analysis.Miscellaneous
-{
- ///
- /// Links two PrefixAwareTokenFilter.
- ///
- /// NOTE: This filter might not behave correctly if used with custom Attributes, i.e. Attributes other than
- /// the ones located in Lucene.Net.Analysis.Tokenattributes.
- ///
- public class PrefixAndSuffixAwareTokenFilter : TokenStream
- {
- private readonly PrefixAwareTokenFilter _suffix;
-
- public PrefixAndSuffixAwareTokenFilter(TokenStream prefix, TokenStream input, TokenStream suffix) : base(suffix)
- {
- _suffix =
- new InjectablePrefixAwareTokenFilter(
- new InjectablePrefixAwareTokenFilter(prefix, input)
- {
- UpdateAction = UpdateInputToken
- },
- suffix)
- {
- UpdateAction = UpdateSuffixToken
- };
- }
-
- public Token UpdateInputToken(Token inputToken, Token lastPrefixToken)
- {
- inputToken.StartOffset = lastPrefixToken.EndOffset + inputToken.StartOffset;
- inputToken.EndOffset = lastPrefixToken.EndOffset + inputToken.EndOffset;
- return inputToken;
- }
-
- public Token UpdateSuffixToken(Token suffixToken, Token lastInputToken)
- {
- suffixToken.StartOffset = lastInputToken.EndOffset + suffixToken.StartOffset;
- suffixToken.EndOffset = lastInputToken.EndOffset + suffixToken.EndOffset;
- return suffixToken;
- }
-
-
- public override sealed bool IncrementToken()
- {
- return _suffix.IncrementToken();
- }
-
- public override void Reset()
- {
- _suffix.Reset();
- }
-
- protected override void Dispose(bool disposing)
- {
- _suffix.Dispose();
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/PrefixAwareTokenStream.cs b/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/PrefixAwareTokenStream.cs
deleted file mode 100644
index 45e1d19619..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/PrefixAwareTokenStream.cs
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * 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.
- */
-
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Index;
-
-namespace Lucene.Net.Analysis.Miscellaneous
-{
- ///
- /// Joins two token streams and leaves the last token of the first stream available
- /// to be used when updating the token values in the second stream based on that token.
- ///
- /// The default implementation adds last prefix token end offset to the suffix token start and end offsets.
- ///
- /// NOTE: This filter might not behave correctly if used with custom Attributes, i.e. Attributes other than
- /// the ones located in Lucene.Net.Analysis.TokenAttributes.
- ///
- public class PrefixAwareTokenFilter : TokenStream
- {
- private readonly IFlagsAttribute _flagsAtt;
- private readonly IOffsetAttribute _offsetAtt;
- private readonly IFlagsAttribute _pFlagsAtt;
-
- private readonly IOffsetAttribute _pOffsetAtt;
- private readonly IPayloadAttribute _pPayloadAtt;
- private readonly IPositionIncrementAttribute _pPosIncrAtt;
- private readonly ITermAttribute _pTermAtt;
- private readonly ITypeAttribute _pTypeAtt;
- private readonly IPayloadAttribute _payloadAtt;
- private readonly IPositionIncrementAttribute _posIncrAtt;
-
- private readonly Token _previousPrefixToken = new Token();
- private readonly Token _reusableToken = new Token();
- private readonly ITermAttribute _termAtt;
- private readonly ITypeAttribute _typeAtt;
-
- private bool _prefixExhausted;
-
- public PrefixAwareTokenFilter(TokenStream prefix, TokenStream suffix) : base(suffix)
- {
- Suffix = suffix;
- Prefix = prefix;
- _prefixExhausted = false;
-
- // ReSharper disable DoNotCallOverridableMethodsInConstructor
- _termAtt = AddAttribute();
- _posIncrAtt = AddAttribute();
- _payloadAtt = AddAttribute();
- _offsetAtt = AddAttribute();
- _typeAtt = AddAttribute();
- _flagsAtt = AddAttribute();
- // ReSharper restore DoNotCallOverridableMethodsInConstructor
-
- _pTermAtt = prefix.AddAttribute();
- _pPosIncrAtt = prefix.AddAttribute();
- _pPayloadAtt = prefix.AddAttribute();
- _pOffsetAtt = prefix.AddAttribute();
- _pTypeAtt = prefix.AddAttribute();
- _pFlagsAtt = prefix.AddAttribute();
- }
-
- public TokenStream Prefix { get; set; }
-
- public TokenStream Suffix { get; set; }
-
- public override sealed bool IncrementToken()
- {
- if (!_prefixExhausted)
- {
- Token nextToken = GetNextPrefixInputToken(_reusableToken);
- if (nextToken == null)
- {
- _prefixExhausted = true;
- }
- else
- {
- _previousPrefixToken.Reinit(nextToken);
- // Make it a deep copy
- Payload p = _previousPrefixToken.Payload;
- if (p != null)
- {
- _previousPrefixToken.Payload = (Payload) p.Clone();
- }
- SetCurrentToken(nextToken);
- return true;
- }
- }
-
- Token nextSuffixToken = GetNextSuffixInputToken(_reusableToken);
- if (nextSuffixToken == null)
- {
- return false;
- }
-
- nextSuffixToken = UpdateSuffixToken(nextSuffixToken, _previousPrefixToken);
- SetCurrentToken(nextSuffixToken);
- return true;
- }
-
- private void SetCurrentToken(Token token)
- {
- if (token == null) return;
- ClearAttributes();
- _termAtt.SetTermBuffer(token.TermBuffer(), 0, token.TermLength());
- _posIncrAtt.PositionIncrement = token.PositionIncrement;
- _flagsAtt.Flags =token.Flags;
- _offsetAtt.SetOffset(token.StartOffset, token.EndOffset);
- _typeAtt.Type = token.Type;
- _payloadAtt.Payload = token.Payload;
- }
-
- private Token GetNextPrefixInputToken(Token token)
- {
- if (!Prefix.IncrementToken()) return null;
- token.SetTermBuffer(_pTermAtt.TermBuffer(), 0, _pTermAtt.TermLength());
- token.PositionIncrement = _pPosIncrAtt.PositionIncrement;
- token.Flags = _pFlagsAtt.Flags;
- token.SetOffset(_pOffsetAtt.StartOffset, _pOffsetAtt.EndOffset);
- token.Type = _pTypeAtt.Type;
- token.Payload = _pPayloadAtt.Payload;
- return token;
- }
-
- private Token GetNextSuffixInputToken(Token token)
- {
- if (!Suffix.IncrementToken()) return null;
- token.SetTermBuffer(_termAtt.TermBuffer(), 0, _termAtt.TermLength());
- token.PositionIncrement = _posIncrAtt.PositionIncrement;
- token.Flags = _flagsAtt.Flags;
- token.SetOffset(_offsetAtt.StartOffset, _offsetAtt.EndOffset);
- token.Type = _typeAtt.Type;
- token.Payload = _payloadAtt.Payload;
- return token;
- }
-
- ///
- /// The default implementation adds last prefix token end offset to the suffix token start and end offsets.
- ///
- /// a token from the suffix stream
- /// the last token from the prefix stream
- /// consumer token
- public virtual Token UpdateSuffixToken(Token suffixToken, Token lastPrefixToken)
- {
- suffixToken.StartOffset = lastPrefixToken.EndOffset + suffixToken.StartOffset;
- suffixToken.EndOffset = lastPrefixToken.EndOffset + suffixToken.EndOffset;
- return suffixToken;
- }
-
- protected override void Dispose(bool disposing)
- {
- Prefix.Dispose();
- Suffix.Dispose();
- }
-
- public override void Reset()
- {
- base.Reset();
-
- if (Prefix != null)
- {
- _prefixExhausted = false;
- Prefix.Reset();
- }
-
- if (Suffix != null)
- Suffix.Reset();
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/SingleTokenTokenStream.cs b/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/SingleTokenTokenStream.cs
deleted file mode 100644
index b24c0f39af..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Miscellaneous/SingleTokenTokenStream.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.
- */
-
-using System.Diagnostics;
-using Lucene.Net.Analysis.Tokenattributes;
-using Attribute = Lucene.Net.Util.Attribute;
-
-namespace Lucene.Net.Analysis.Miscellaneous
-{
- ///
- /// A TokenStream containing a single token.
- ///
- public sealed class SingleTokenTokenStream : TokenStream
- {
- private bool _exhausted;
-
- // The token needs to be immutable, so work with clones!
- private Token _singleToken;
- private readonly Attribute _tokenAtt;
-
- public SingleTokenTokenStream(Token token)
- : base(Token.TOKEN_ATTRIBUTE_FACTORY)
- {
- Debug.Assert(token != null, "Token was null!");
- _singleToken = (Token) token.Clone();
-
- _tokenAtt = (Attribute)AddAttribute();
-
- Debug.Assert(_tokenAtt is Token);
- }
-
- public override sealed bool IncrementToken()
- {
- if (_exhausted)
- return false;
-
- ClearAttributes();
- _singleToken.CopyTo(_tokenAtt);
- _exhausted = true;
-
- return true;
- }
-
- public override void Reset()
- {
- _exhausted = false;
- }
-
- protected override void Dispose(bool disposing)
- {
- // Do nothing
- }
-
- public Token GetToken()
- {
- return (Token) _singleToken.Clone();
- }
-
- public void SetToken(Token token)
- {
- _singleToken = (Token) token.Clone();
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/NGram/EdgeNGramTokenFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/NGram/EdgeNGramTokenFilter.cs
deleted file mode 100644
index b2ddd36b03..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/NGram/EdgeNGramTokenFilter.cs
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.IO;
-using System.Collections;
-
-using Lucene.Net.Analysis;
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Util;
-
-namespace Lucene.Net.Analysis.NGram
-{
- public static class SideExtensions
- {
- public static string GetLabel(this Side theSide)
- {
- switch(theSide)
- {
- case Side.FRONT:
- return "front";
- case Side.BACK:
- return "back";
- default:
- throw new ArgumentException(string.Format("{0} is not a valid value for EdgeNGramTokenFilter.Side", theSide));
- }
- }
-
- public static Side GetSide(string sideName)
- {
- if (Side.FRONT.GetLabel() == sideName)
- {
- return Side.FRONT;
- }
-
- if (Side.BACK.GetLabel() == sideName)
- {
- return Side.BACK;
- }
-
- return (Side)(-1); // TODO: returning null instead of null? Should an exception be thrown instead?
- }
- }
-
- ///
- /// Specifies which side of the input the n-gram should be generated from
- ///
- public enum Side
- {
- FRONT,
- BACK
- }
-
- /*
- * Tokenizes the given token into n-grams of given size(s).
- *
- * This create n-grams from the beginning edge or ending edge of a input token.
- *
- */
- public sealed class EdgeNGramTokenFilter : TokenFilter
- {
- public static Side DEFAULT_SIDE = Side.FRONT;
- public static int DEFAULT_MAX_GRAM_SIZE = 1;
- public static int DEFAULT_MIN_GRAM_SIZE = 1;
-
- private int minGram;
- private int maxGram;
- private Side side;
- private char[] curTermBuffer;
- private int curTermLength;
- private int curGramSize;
- private int tokStart;
-
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
-
-
- protected EdgeNGramTokenFilter(TokenStream input) : base(input)
- {
- this.termAtt = AddAttribute();
- this.offsetAtt = AddAttribute();
- }
-
- /*
- * Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
- *
- * holding the input to be tokenized
- * the from which to chop off an n-gram
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public EdgeNGramTokenFilter(TokenStream input, Side side, int minGram, int maxGram)
- : base(input)
- {
-
-
- if (side != Side.FRONT && side != Side.BACK)
- {
- throw new System.ArgumentException("sideLabel must be either front or back");
- }
-
- if (minGram < 1)
- {
- throw new System.ArgumentException("minGram must be greater than zero");
- }
-
- if (minGram > maxGram)
- {
- throw new System.ArgumentException("minGram must not be greater than maxGram");
- }
-
- this.minGram = minGram;
- this.maxGram = maxGram;
- this.side = side;
- this.termAtt = AddAttribute();
- this.offsetAtt = AddAttribute();
- }
-
- /*
- * Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
- *
- * holding the input to be tokenized
- * the name of the from which to chop off an n-gram
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public EdgeNGramTokenFilter(TokenStream input, string sideLabel, int minGram, int maxGram)
- : this(input, SideExtensions.GetSide(sideLabel), minGram, maxGram)
- {
- }
-
- public override bool IncrementToken()
- {
- while (true)
- {
- if (curTermBuffer == null)
- {
- if (!input.IncrementToken())
- {
- return false;
- }
- else
- {
- curTermBuffer = (char[])termAtt.TermBuffer().Clone();
- curTermLength = termAtt.TermLength();
- curGramSize = minGram;
- tokStart = offsetAtt.StartOffset;
- }
- }
- if (curGramSize <= maxGram)
- {
- if (!(curGramSize > curTermLength // if the remaining input is too short, we can't generate any n-grams
- || curGramSize > maxGram))
- { // if we have hit the end of our n-gram size range, quit
- // grab gramSize chars from front or back
- int start = side == Side.FRONT ? 0 : curTermLength - curGramSize;
- int end = start + curGramSize;
- ClearAttributes();
- offsetAtt.SetOffset(tokStart + start, tokStart + end);
- termAtt.SetTermBuffer(curTermBuffer, start, curGramSize);
- curGramSize++;
- return true;
- }
- }
- curTermBuffer = null;
- }
- }
-
- public override void Reset()
- {
- base.Reset();
- curTermBuffer = null;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/NGram/EdgeNGramTokenizer.cs b/external/Lucene.Net/src/contrib/Analyzers/NGram/EdgeNGramTokenizer.cs
deleted file mode 100644
index a925d65090..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/NGram/EdgeNGramTokenizer.cs
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * 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.
- */
-
-using System.IO;
-using System.Collections;
-
-using Lucene.Net.Analysis;
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Util;
-
-namespace Lucene.Net.Analysis.NGram
-{
-
- /*
- * Tokenizes the input from an edge into n-grams of given size(s).
- *
- * This create n-grams from the beginning edge or ending edge of a input token.
- * MaxGram can't be larger than 1024 because of limitation.
- *
- */
- public sealed class EdgeNGramTokenizer : Tokenizer
- {
- public static Side DEFAULT_SIDE = Side.FRONT;
- public static int DEFAULT_MAX_GRAM_SIZE = 1;
- public static int DEFAULT_MIN_GRAM_SIZE = 1;
-
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
-
- /* Specifies which side of the input the n-gram should be generated from */
- // Moved Side enum from this class to external definition
-
- private int minGram;
- private int maxGram;
- private int gramSize;
- private Side side;
- private bool started = false;
- private int inLen;
- private string inStr;
-
-
- /*
- * Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
- * holding the input to be tokenized
- * the from which to chop off an n-gram
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public EdgeNGramTokenizer(TextReader input, Side side, int minGram, int maxGram)
- : base(input)
- {
- init(side, minGram, maxGram);
- }
-
- /*
- * Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
- * to use
- * holding the input to be tokenized
- * the from which to chop off an n-gram
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public EdgeNGramTokenizer(AttributeSource source, TextReader input, Side side, int minGram, int maxGram)
- : base(source, input)
- {
-
- init(side, minGram, maxGram);
- }
-
- /*
- * Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
- * to use
- * holding the input to be tokenized
- * the from which to chop off an n-gram
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public EdgeNGramTokenizer(AttributeFactory factory, TextReader input, Side side, int minGram, int maxGram)
- : base(factory, input)
- {
-
- init(side, minGram, maxGram);
- }
-
- /*
- * Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
- * holding the input to be tokenized
- * the name of the from which to chop off an n-gram
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public EdgeNGramTokenizer(TextReader input, string sideLabel, int minGram, int maxGram)
- : this(input, SideExtensions.GetSide(sideLabel), minGram, maxGram)
- {
-
- }
-
- /*
- * Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
- * to use
- * holding the input to be tokenized
- * the name of the from which to chop off an n-gram
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public EdgeNGramTokenizer(AttributeSource source, TextReader input, string sideLabel, int minGram, int maxGram)
- : this(source, input, SideExtensions.GetSide(sideLabel), minGram, maxGram)
- {
-
- }
-
- /*
- * Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
- * to use
- * holding the input to be tokenized
- * the name of the from which to chop off an n-gram
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public EdgeNGramTokenizer(AttributeFactory factory, TextReader input, string sideLabel, int minGram, int maxGram) :
- this(factory, input, SideExtensions.GetSide(sideLabel), minGram, maxGram)
- {
- }
-
- private void init(Side side, int minGram, int maxGram)
- {
- if (side == null)
- {
- throw new System.ArgumentException("sideLabel must be either front or back");
- }
-
- if (minGram < 1)
- {
- throw new System.ArgumentException("minGram must be greater than zero");
- }
-
- if (minGram > maxGram)
- {
- throw new System.ArgumentException("minGram must not be greater than maxGram");
- }
-
- this.minGram = minGram;
- this.maxGram = maxGram;
- this.side = side;
-
- this.termAtt = AddAttribute();
- this.offsetAtt = AddAttribute();
-
- }
-
- /* Returns the next token in the stream, or null at EOS. */
- public override bool IncrementToken()
- {
- ClearAttributes();
- // if we are just starting, read the whole input
- if (!started)
- {
- started = true;
- char[] chars = new char[1024];
- inStr = input.ReadToEnd().Trim(); // remove any leading or trailing spaces
- inLen = inStr.Length;
- gramSize = minGram;
- }
-
- // if the remaining input is too short, we can't generate any n-grams
- if (gramSize > inLen)
- {
- return false;
- }
-
- // if we have hit the end of our n-gram size range, quit
- if (gramSize > maxGram)
- {
- return false;
- }
-
- // grab gramSize chars from front or back
- int start = side == Side.FRONT ? 0 : inLen - gramSize;
- int end = start + gramSize;
- termAtt.SetTermBuffer(inStr, start, gramSize);
- offsetAtt.SetOffset(CorrectOffset(start), CorrectOffset(end));
- gramSize++;
- return true;
- }
-
- public override void End()
- {
- // set offset
- int finalOffset = inLen;
- this.offsetAtt.SetOffset(finalOffset, finalOffset);
- }
-
- public override void Reset(TextReader input)
- {
- base.Reset(input);
- Reset();
- }
-
- public override void Reset()
- {
- base.Reset();
- started = false;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/NGram/NGramTokenFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/NGram/NGramTokenFilter.cs
deleted file mode 100644
index be11de2b4b..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/NGram/NGramTokenFilter.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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.
- */
-
-using System.IO;
-using System.Collections;
-
-using Lucene.Net.Analysis;
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Util;
-
-namespace Lucene.Net.Analysis.NGram
-{
- /*
- * Tokenizes the input into n-grams of the given size(s).
- */
- public sealed class NGramTokenFilter : TokenFilter
- {
- public static int DEFAULT_MIN_NGRAM_SIZE = 1;
- public static int DEFAULT_MAX_NGRAM_SIZE = 2;
-
- private int minGram, maxGram;
-
- private char[] curTermBuffer;
- private int curTermLength;
- private int curGramSize;
- private int curPos;
- private int tokStart;
-
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
-
- /*
- * Creates NGramTokenFilter with given min and max n-grams.
- * holding the input to be tokenized
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public NGramTokenFilter(TokenStream input, int minGram, int maxGram)
- : base(input)
- {
-
- if (minGram < 1)
- {
- throw new System.ArgumentException("minGram must be greater than zero");
- }
- if (minGram > maxGram)
- {
- throw new System.ArgumentException("minGram must not be greater than maxGram");
- }
- this.minGram = minGram;
- this.maxGram = maxGram;
-
- this.termAtt = AddAttribute();
- this.offsetAtt = AddAttribute();
- }
-
- /*
- * Creates NGramTokenFilter with default min and max n-grams.
- * holding the input to be tokenized
- */
- public NGramTokenFilter(TokenStream input)
- : this(input, DEFAULT_MIN_NGRAM_SIZE, DEFAULT_MAX_NGRAM_SIZE)
- {
-
- }
-
- /* Returns the next token in the stream, or null at EOS. */
- public override bool IncrementToken()
- {
- while (true)
- {
- if (curTermBuffer == null)
- {
- if (!input.IncrementToken())
- {
- return false;
- }
- else
- {
- curTermBuffer = (char[])termAtt.TermBuffer().Clone();
- curTermLength = termAtt.TermLength();
- curGramSize = minGram;
- curPos = 0;
- tokStart = offsetAtt.StartOffset;
- }
- }
- while (curGramSize <= maxGram)
- {
- while (curPos + curGramSize <= curTermLength)
- { // while there is input
- ClearAttributes();
- termAtt.SetTermBuffer(curTermBuffer, curPos, curGramSize);
- offsetAtt.SetOffset(tokStart + curPos, tokStart + curPos + curGramSize);
- curPos++;
- return true;
- }
- curGramSize++; // increase n-gram size
- curPos = 0;
- }
- curTermBuffer = null;
- }
- }
-
- public override void Reset()
- {
- base.Reset();
- curTermBuffer = null;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/NGram/NGramTokenizer.cs b/external/Lucene.Net/src/contrib/Analyzers/NGram/NGramTokenizer.cs
deleted file mode 100644
index 773bdb5a14..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/NGram/NGramTokenizer.cs
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * 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.
- */
-
-using System.IO;
-using System.Collections;
-
-using Lucene.Net.Analysis;
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Util;
-
-namespace Lucene.Net.Analysis.NGram
-{
-
- /*
- * Tokenizes the input into n-grams of the given size(s).
- */
- public sealed class NGramTokenizer : Tokenizer
- {
- public static int DEFAULT_MIN_NGRAM_SIZE = 1;
- public static int DEFAULT_MAX_NGRAM_SIZE = 2;
-
- private int minGram, maxGram;
- private int gramSize;
- private int pos = 0;
- private int inLen;
- private string inStr;
- private bool started = false;
-
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
-
- /*
- * Creates NGramTokenizer with given min and max n-grams.
- * holding the input to be tokenized
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public NGramTokenizer(TextReader input, int minGram, int maxGram)
- : base(input)
- {
- init(minGram, maxGram);
- }
-
- /*
- * Creates NGramTokenizer with given min and max n-grams.
- * to use
- * holding the input to be tokenized
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public NGramTokenizer(AttributeSource source, TextReader input, int minGram, int maxGram)
- : base(source, input)
- {
- init(minGram, maxGram);
- }
-
- /*
- * Creates NGramTokenizer with given min and max n-grams.
- * to use
- * holding the input to be tokenized
- * the smallest n-gram to generate
- * the largest n-gram to generate
- */
- public NGramTokenizer(AttributeFactory factory, TextReader input, int minGram, int maxGram)
- : base(factory, input)
- {
- init(minGram, maxGram);
- }
-
- /*
- * Creates NGramTokenizer with default min and max n-grams.
- * holding the input to be tokenized
- */
- public NGramTokenizer(TextReader input)
- : this(input, DEFAULT_MIN_NGRAM_SIZE, DEFAULT_MAX_NGRAM_SIZE)
- {
-
- }
-
- private void init(int minGram, int maxGram)
- {
- if (minGram < 1)
- {
- throw new System.ArgumentException("minGram must be greater than zero");
- }
- if (minGram > maxGram)
- {
- throw new System.ArgumentException("minGram must not be greater than maxGram");
- }
- this.minGram = minGram;
- this.maxGram = maxGram;
-
- this.termAtt = AddAttribute();
- this.offsetAtt = AddAttribute();
- }
-
- /* Returns the next token in the stream, or null at EOS. */
- public override bool IncrementToken()
- {
- ClearAttributes();
- if (!started)
- {
- started = true;
- gramSize = minGram;
- char[] chars = new char[1024];
- inStr = input.ReadToEnd(); // remove any trailing empty strings
- inLen = inStr.Length;
- }
-
- if (pos + gramSize > inLen)
- { // if we hit the end of the string
- pos = 0; // reset to beginning of string
- gramSize++; // increase n-gram size
- if (gramSize > maxGram) // we are done
- return false;
- if (pos + gramSize > inLen)
- return false;
- }
-
- int oldPos = pos;
- pos++;
- termAtt.SetTermBuffer(inStr, oldPos, gramSize);
- offsetAtt.SetOffset(CorrectOffset(oldPos), CorrectOffset(oldPos + gramSize));
- return true;
- }
-
- public override void End()
- {
- // set offset
- int finalOffset = inLen;
- this.offsetAtt.SetOffset(finalOffset, finalOffset);
- }
-
- public override void Reset(TextReader input)
- {
- base.Reset(input);
- Reset();
- }
-
- public override void Reset()
- {
- base.Reset();
- started = false;
- pos = 0;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchAnalyzer.cs b/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchAnalyzer.cs
deleted file mode 100644
index b7878dd7e4..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchAnalyzer.cs
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Collections;
-using Lucene.Net.Analysis.Standard;
-using Lucene.Net.Support;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.Nl
-{
- /*
- * {@link Analyzer} for Dutch language.
- *
- * Supports an external list of stopwords (words that
- * will not be indexed at all), an external list of exclusions (word that will
- * not be stemmed, but indexed) and an external list of word-stem pairs that overrule
- * the algorithm (dictionary stemming).
- * A default set of stopwords is used unless an alternative list is specified, but the
- * exclusion list is empty by default.
- *
- *
- *
NOTE: This class uses the same {@link Version}
- * dependent settings as {@link StandardAnalyzer}.
- */
- public class DutchAnalyzer : Analyzer
- {
- /*
- * List of typical Dutch stopwords.
- * @deprecated use {@link #getDefaultStopSet()} instead
- */
- public static readonly String[] DUTCH_STOP_WORDS =
- {
- "de", "en", "van", "ik", "te", "dat", "die", "in", "een",
- "hij", "het", "niet", "zijn", "is", "was", "op", "aan", "met", "als", "voor", "had",
- "er", "maar", "om", "hem", "dan", "zou", "of", "wat", "mijn", "men", "dit", "zo",
- "door", "over", "ze", "zich", "bij", "ook", "tot", "je", "mij", "uit", "der", "daar",
- "haar", "naar", "heb", "hoe", "heeft", "hebben", "deze", "u", "want", "nog", "zal",
- "me", "zij", "nu", "ge", "geen", "omdat", "iets", "worden", "toch", "al", "waren",
- "veel", "meer", "doen", "toen", "moet", "ben", "zonder", "kan", "hun", "dus",
- "alles", "onder", "ja", "eens", "hier", "wie", "werd", "altijd", "doch", "wordt",
- "wezen", "kunnen", "ons", "zelf", "tegen", "na", "reeds", "wil", "kon", "niets",
- "uw", "iemand", "geweest", "andere"
- };
- /*
- * Returns an unmodifiable instance of the default stop-words set.
- * @return an unmodifiable instance of the default stop-words set.
- */
- public static ISet getDefaultStopSet()
- {
- return DefaultSetHolder.DEFAULT_STOP_SET;
- }
-
- static class DefaultSetHolder
- {
- internal static readonly ISet DEFAULT_STOP_SET = CharArraySet
- .UnmodifiableSet(new CharArraySet((IEnumerable)DUTCH_STOP_WORDS, false));
- }
-
-
- /*
- * Contains the stopwords used with the StopFilter.
- */
- private readonly ISet stoptable;
-
- /*
- * Contains words that should be indexed but not stemmed.
- */
- private ISet excltable = Support.Compatibility.SetFactory.CreateHashSet();
-
- private IDictionary stemdict = new HashMap();
- private readonly Version matchVersion;
-
- /*
- * Builds an analyzer with the default stop words ({@link #DUTCH_STOP_WORDS})
- * and a few default entries for the stem exclusion table.
- *
- */
- public DutchAnalyzer(Version matchVersion)
- : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET)
- {
- stemdict.Add("fiets", "fiets"); //otherwise fiet
- stemdict.Add("bromfiets", "bromfiets"); //otherwise bromfiet
- stemdict.Add("ei", "eier");
- stemdict.Add("kind", "kinder");
- }
-
- public DutchAnalyzer(Version matchVersion, ISet stopwords)
- : this(matchVersion, stopwords, CharArraySet.EMPTY_SET)
- {
-
- }
-
- public DutchAnalyzer(Version matchVersion, ISet stopwords, ISet stemExclusionTable)
- {
- stoptable = CharArraySet.UnmodifiableSet(CharArraySet.Copy(stopwords));
- excltable = CharArraySet.UnmodifiableSet(CharArraySet.Copy(stemExclusionTable));
- this.matchVersion = matchVersion;
- SetOverridesTokenStreamMethod();
- }
-
- /*
- * Builds an analyzer with the given stop words.
- *
- * @param matchVersion
- * @param stopwords
- * @deprecated use {@link #DutchAnalyzer(Version, Set)} instead
- */
- public DutchAnalyzer(Version matchVersion, params string[] stopwords)
- : this(matchVersion, StopFilter.MakeStopSet(stopwords))
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words.
- *
- * @param stopwords
- * @deprecated use {@link #DutchAnalyzer(Version, Set)} instead
- */
- public DutchAnalyzer(Version matchVersion, HashSet stopwords)
- : this(matchVersion, (ISet)stopwords)
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words.
- *
- * @param stopwords
- * @deprecated use {@link #DutchAnalyzer(Version, Set)} instead
- */
- public DutchAnalyzer(Version matchVersion, FileInfo stopwords)
- {
- // this is completely broken!
- SetOverridesTokenStreamMethod();
- try
- {
- stoptable = WordlistLoader.GetWordSet(stopwords);
- }
- catch (IOException e)
- {
- // TODO: throw IOException
- throw new Exception("", e);
- }
- this.matchVersion = matchVersion;
- }
-
- /*
- * Builds an exclusionlist from an array of Strings.
- *
- * @param exclusionlist
- * @deprecated use {@link #DutchAnalyzer(Version, Set, Set)} instead
- */
- public void SetStemExclusionTable(params string[] exclusionlist)
- {
- excltable = StopFilter.MakeStopSet(exclusionlist);
- PreviousTokenStream = null; // force a new stemmer to be created
- }
-
- /*
- * Builds an exclusionlist from a Hashtable.
- * @deprecated use {@link #DutchAnalyzer(Version, Set, Set)} instead
- */
- public void SetStemExclusionTable(ISet exclusionlist)
- {
- excltable = exclusionlist;
- PreviousTokenStream = null; // force a new stemmer to be created
- }
-
- /*
- * Builds an exclusionlist from the words contained in the given file.
- * @deprecated use {@link #DutchAnalyzer(Version, Set, Set)} instead
- */
- public void SetStemExclusionTable(FileInfo exclusionlist)
- {
- try
- {
- excltable = WordlistLoader.GetWordSet(exclusionlist);
- PreviousTokenStream = null; // force a new stemmer to be created
- }
- catch (IOException e)
- {
- // TODO: throw IOException
- throw new Exception("", e);
- }
- }
-
- /*
- * Reads a stemdictionary file , that overrules the stemming algorithm
- * This is a textfile that contains per line
- * word\tstem, i.e: two tab seperated words
- */
- public void SetStemDictionary(FileInfo stemdictFile)
- {
- try
- {
- stemdict = WordlistLoader.GetStemDict(stemdictFile);
- PreviousTokenStream = null; // force a new stemmer to be created
- }
- catch (IOException e)
- {
- // TODO: throw IOException
- throw new Exception(string.Empty, e);
- }
- }
-
- /*
- * Creates a {@link TokenStream} which tokenizes all the text in the
- * provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a {@link StandardTokenizer}
- * filtered with {@link StandardFilter}, {@link StopFilter},
- * and {@link DutchStemFilter}
- */
- public override TokenStream TokenStream(String fieldName, TextReader reader)
- {
- TokenStream result = new StandardTokenizer(matchVersion, reader);
- result = new StandardFilter(result);
- result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- result, stoptable);
- result = new DutchStemFilter(result, excltable, stemdict);
- return result;
- }
-
- class SavedStreams
- {
- protected internal Tokenizer source;
- protected internal TokenStream result;
- };
-
- /*
- * Returns a (possibly reused) {@link TokenStream} which tokenizes all the
- * text in the provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a {@link StandardTokenizer}
- * filtered with {@link StandardFilter}, {@link StopFilter},
- * and {@link DutchStemFilter}
- */
- public override TokenStream ReusableTokenStream(String fieldName, TextReader reader)
- {
- if (overridesTokenStreamMethod)
- {
- // LUCENE-1678: force fallback to tokenStream() if we
- // have been subclassed and that subclass overrides
- // tokenStream but not reusableTokenStream
- return TokenStream(fieldName, reader);
- }
-
- SavedStreams streams = (SavedStreams)PreviousTokenStream;
- if (streams == null)
- {
- streams = new SavedStreams();
- streams.source = new StandardTokenizer(matchVersion, reader);
- streams.result = new StandardFilter(streams.source);
- streams.result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- streams.result, stoptable);
- streams.result = new DutchStemFilter(streams.result, excltable, stemdict);
- PreviousTokenStream = streams;
- }
- else
- {
- streams.source.Reset(reader);
- }
- return streams.result;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchStemFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchStemFilter.cs
deleted file mode 100644
index a3a4c42efb..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchStemFilter.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Collections;
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Support;
-
-namespace Lucene.Net.Analysis.Nl
-{
- /*
- * A {@link TokenFilter} that stems Dutch words.
- *
- * It supports a table of words that should
- * not be stemmed at all. The stemmer used can be changed at runtime after the
- * filter object is created (as long as it is a {@link DutchStemmer}).
- *
- * NOTE: This stemmer does not implement the Snowball algorithm correctly,
- * specifically doubled consonants. It is recommended that you consider using
- * the "Dutch" stemmer in the snowball package instead. This stemmer will likely
- * be deprecated in a future release.
- */
- public sealed class DutchStemFilter : TokenFilter
- {
- /*
- * The actual token in the input stream.
- */
- private DutchStemmer stemmer = null;
- private ISet exclusions = null;
-
- private ITermAttribute termAtt;
-
- public DutchStemFilter(TokenStream _in)
- : base(_in)
- {
- stemmer = new DutchStemmer();
- termAtt = AddAttribute();
- }
-
- /*
- * Builds a DutchStemFilter that uses an exclusion table.
- */
- public DutchStemFilter(TokenStream _in, ISet exclusiontable)
- : this(_in)
- {
- exclusions = exclusiontable;
- }
-
- /*
- * @param stemdictionary Dictionary of word stem pairs, that overrule the algorithm
- */
- public DutchStemFilter(TokenStream _in, ISet exclusiontable, IDictionary stemdictionary)
- : this(_in, exclusiontable)
- {
- stemmer.SetStemDictionary(stemdictionary);
- }
-
- /*
- * Returns the next token in the stream, or null at EOS
- */
- public override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- String term = termAtt.Term;
-
- // Check the exclusion table.
- if (exclusions == null || !exclusions.Contains(term))
- {
- String s = stemmer.Stem(term);
- // If not stemmed, don't waste the time adjusting the token.
- if ((s != null) && !s.Equals(term))
- termAtt.SetTermBuffer(s);
- }
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /*
- * Set a alternative/custom {@link DutchStemmer} for this filter.
- */
- public void SetStemmer(DutchStemmer stemmer)
- {
- if (stemmer != null)
- {
- this.stemmer = stemmer;
- }
- }
-
- /*
- * Set an alternative exclusion list for this filter.
- */
- public void SetExclusionTable(ISet exclusiontable)
- {
- exclusions = exclusiontable;
- }
-
- /*
- * Set dictionary for stemming, this dictionary overrules the algorithm,
- * so you can correct for a particular unwanted word-stem pair.
- */
- public void SetStemDictionary(IDictionary dict)
- {
- if (stemmer != null)
- stemmer.SetStemDictionary(dict);
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchStemmer.cs b/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchStemmer.cs
deleted file mode 100644
index b1036a81ae..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Nl/DutchStemmer.cs
+++ /dev/null
@@ -1,462 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.IO;
-using System.Text;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace Lucene.Net.Analysis.Nl
-{
- /*
- * A stemmer for Dutch words.
- *
- * The algorithm is an implementation of
- * the dutch stemming
- * algorithm in Martin Porter's snowball project.
- *
- */
-
- public class DutchStemmer
- {
- /*
- * Buffer for the terms while stemming them.
- */
- private StringBuilder sb = new StringBuilder();
- private bool _removedE;
- private IDictionary _stemDict;
-
- private int _R1;
- private int _R2;
-
- //TODO convert to internal
- /*
- * Stems the given term to an unique discriminator.
- *
- * @param term The term that should be stemmed.
- * @return Discriminator for term
- */
- public String Stem(String term)
- {
- term = term.ToLower();
- if (!isStemmable(term))
- return term;
- if (_stemDict != null && _stemDict.ContainsKey(term))
- if (_stemDict[term] is String)
- return (String)_stemDict[term];
- else
- return null;
-
- // Reset the StringBuilder.
- sb.Length = 0;
- sb.Insert(0, term);
- // Stemming starts here...
- substitute(sb);
- storeYandI(sb);
- _R1 = getRIndex(sb, 0);
- _R1 = Math.Max(3, _R1);
- step1(sb);
- step2(sb);
- _R2 = getRIndex(sb, _R1);
- step3a(sb);
- step3b(sb);
- step4(sb);
- reStoreYandI(sb);
- return sb.ToString();
- }
-
- private bool enEnding(StringBuilder sb)
- {
- String[] enend = new String[] { "ene", "en" };
- for (int i = 0; i < enend.Length; i++)
- {
- String end = enend[i];
- String s = sb.ToString();
- int index = s.Length - end.Length;
- if (s.EndsWith(end) &&
- index >= _R1 &&
- isValidEnEnding(sb, index - 1)
- )
- {
- sb.Remove(index, end.Length);
- unDouble(sb, index);
- return true;
- }
- }
- return false;
- }
-
-
- private void step1(StringBuilder sb)
- {
- if (_R1 >= sb.Length)
- return;
-
- String s = sb.ToString();
- int LengthR1 = sb.Length - _R1;
- int index;
-
- if (s.EndsWith("heden"))
- {
- var toReplace = sb.ToString(_R1, LengthR1).Replace("heden", "heid");
- sb.Remove(_R1, LengthR1);
- sb.Insert(_R1, toReplace);
- return;
- }
-
- if (enEnding(sb))
- return;
-
- if (s.EndsWith("se") &&
- (index = s.Length - 2) >= _R1 &&
- isValidSEnding(sb, index - 1)
- )
- {
- sb.Remove(index, 2);
- return;
- }
- if (s.EndsWith("s") &&
- (index = s.Length - 1) >= _R1 &&
- isValidSEnding(sb, index - 1))
- {
- sb.Remove(index, 1);
- }
- }
-
- /*
- * Remove suffix e if in R1 and
- * preceded by a non-vowel, and then undouble the ending
- *
- * @param sb String being stemmed
- */
- private void step2(StringBuilder sb)
- {
- _removedE = false;
- if (_R1 >= sb.Length)
- return;
- String s = sb.ToString();
- int index = s.Length - 1;
- if (index >= _R1 &&
- s.EndsWith("e") &&
- !isVowel(sb[index - 1]))
- {
- sb.Remove(index, 1);
- unDouble(sb);
- _removedE = true;
- }
- }
-
- /*
- * Remove "heid"
- *
- * @param sb String being stemmed
- */
- private void step3a(StringBuilder sb)
- {
- if (_R2 >= sb.Length)
- return;
- String s = sb.ToString();
- int index = s.Length - 4;
- if (s.EndsWith("heid") && index >= _R2 && sb[index - 1] != 'c')
- {
- sb.Remove(index, 4); //remove heid
- enEnding(sb);
- }
- }
-
- /*
- *
A d-suffix, or derivational suffix, enables a new word,
- * often with a different grammatical category, or with a different
- * sense, to be built from another word. Whether a d-suffix can be
- * attached is discovered not from the rules of grammar, but by
- * referring to a dictionary. So in English, ness can be added to
- * certain adjectives to form corresponding nouns (littleness,
- * kindness, foolishness ...) but not to all adjectives
- * (not for example, to big, cruel, wise ...) d-suffixes can be
- * used to change meaning, often in rather exotic ways.
Decode the payload that was encoded using encodeFloat(float)
- ///
NOTE: the length of the array must be at least offset + 4 long.
- ///
- /// The bytes to decode
- /// the decoded float
- public static float DecodeFloat(byte[] bytes)
- {
- return DecodeFloat(bytes, 0);
- }
-
- ///
- ///
Decode the payload that was encoded using encodeFloat(float)
- ///
NOTE: the length of the array must be at least offset + 4 long.
- ///
- /// The bytes to decode
- /// The offset into the array.
- /// The float that was encoded
- public static float DecodeFloat(byte[] bytes, int offset)
- {
- return Single.IntBitsToFloat(DecodeInt(bytes, offset));
- }
-
- public static int DecodeInt(byte[] bytes, int offset)
- {
- return ((bytes[offset] & 0xFF) << 24) | ((bytes[offset + 1] & 0xFF) << 16)
- | ((bytes[offset + 2] & 0xFF) << 8) | (bytes[offset + 3] & 0xFF);
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Payloads/TokenOffsetPayloadTokenFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Payloads/TokenOffsetPayloadTokenFilter.cs
deleted file mode 100644
index a9d9b51ba3..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Payloads/TokenOffsetPayloadTokenFilter.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Index;
-
-namespace Lucene.Net.Analysis.Payloads
-{
- ///
- /// Adds the
- /// and
- /// First 4 bytes are the start
- ///
- public class TokenOffsetPayloadTokenFilter : TokenFilter
- {
- protected IOffsetAttribute offsetAtt;
- protected IPayloadAttribute payAtt;
-
- public TokenOffsetPayloadTokenFilter(TokenStream input)
- : base(input)
- {
- offsetAtt = AddAttribute();
- payAtt = AddAttribute();
- }
-
- public sealed override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- byte[] data = new byte[8];
- PayloadHelper.EncodeInt(offsetAtt.StartOffset, data, 0);
- PayloadHelper.EncodeInt(offsetAtt.EndOffset, data, 4);
- Payload payload = new Payload(data);
- payAtt.Payload = payload;
- return true;
- }
- else
- {
- return false;
- }
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Payloads/TypeAsPayloadTokenFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Payloads/TypeAsPayloadTokenFilter.cs
deleted file mode 100644
index 8edc30191d..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Payloads/TypeAsPayloadTokenFilter.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Text;
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Index;
-
-namespace Lucene.Net.Analysis.Payloads
-{
- ///
- /// Makes the Token.Type() a payload.
- /// Encodes the type using as the encoding
- ///
- public class TypeAsPayloadTokenFilter : TokenFilter
- {
- private IPayloadAttribute payloadAtt;
- private ITypeAttribute typeAtt;
-
- public TypeAsPayloadTokenFilter(TokenStream input)
- : base(input)
- {
- payloadAtt = AddAttribute();
- typeAtt = AddAttribute();
- }
-
- public sealed override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- String type = typeAtt.Type;
- if (type != null && type.Equals("") == false)
- {
- payloadAtt.Payload = new Payload(Encoding.UTF8.GetBytes(type));
- }
- return true;
- }
- else
- {
- return false;
- }
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Position/PositionFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Position/PositionFilter.cs
deleted file mode 100644
index bbfa0d27f0..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Position/PositionFilter.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.Position
-{
- /* Set the positionIncrement of all tokens to the "positionIncrement",
- * except the first return token which retains its original positionIncrement value.
- * The default positionIncrement value is zero.
- */
- public sealed class PositionFilter : TokenFilter
- {
-
- /* Position increment to assign to all but the first token - default = 0 */
- private int positionIncrement = 0;
-
- /* The first token must have non-zero positionIncrement **/
- private bool firstTokenPositioned = false;
-
- private IPositionIncrementAttribute posIncrAtt;
-
- /*
- * Constructs a PositionFilter that assigns a position increment of zero to
- * all but the first token from the given input stream.
- *
- * @param input the input stream
- */
- public PositionFilter(TokenStream input)
- : base(input)
- {
- posIncrAtt = AddAttribute();
- }
-
- /*
- * Constructs a PositionFilter that assigns the given position increment to
- * all but the first token from the given input stream.
- *
- * @param input the input stream
- * @param positionIncrement position increment to assign to all but the first
- * token from the input stream
- */
- public PositionFilter(TokenStream input, int positionIncrement)
- : this(input)
- {
- this.positionIncrement = positionIncrement;
- }
-
- public sealed override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- if (firstTokenPositioned)
- {
- posIncrAtt.PositionIncrement = positionIncrement;
- }
- else
- {
- firstTokenPositioned = true;
- }
- return true;
- }
- else
- {
- return false;
- }
- }
-
- public override void Reset()
- {
- base.Reset();
- firstTokenPositioned = false;
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Properties/AssemblyInfo.cs b/external/Lucene.Net/src/contrib/Analyzers/Properties/AssemblyInfo.cs
deleted file mode 100644
index a549681161..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Lucene.Net.Contrib.Analyzers")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("The Apache Software Foundation")]
-[assembly: AssemblyProduct("Lucene.Net.Contrib.Analyzers")]
-[assembly: AssemblyCopyright("Copyright 2006 - 2011 The Apache Software Foundation")]
-[assembly: AssemblyTrademark("Copyright 2006 - 2011 The Apache Software Foundation")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("36a962fb-a8be-4238-88c4-32568216e247")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.0.3")]
-[assembly: AssemblyFileVersion("3.0.3")]
-
-// for testing
-[assembly: InternalsVisibleTo("Lucene.Net.Contrib.Analyzers.Test, PublicKey=002400000480000094000000060200000024000052534131000400000100010075a07ce602f88e" +
- "f263c7db8cb342c58ebd49ecdcc210fac874260b0213fb929ac3dcaf4f5b39744b800f99073eca" +
- "72aebfac5f7284e1d5f2c82012a804a140f06d7d043d83e830cdb606a04da2ad5374cc92c0a495" +
- "08437802fb4f8fb80a05e59f80afb99f4ccd0dfe44065743543c4b053b669509d29d332cd32a0c" +
- "b1e97e84")]
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Query/QueryAutoStopWordAnalyzer.cs b/external/Lucene.Net/src/contrib/Analyzers/Query/QueryAutoStopWordAnalyzer.cs
deleted file mode 100644
index 54e47554fb..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Query/QueryAutoStopWordAnalyzer.cs
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using Lucene.Net.Index;
-using Lucene.Net.Support;
-using Lucene.Net.Util;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.Query
-{
-/*
- * An {@link Analyzer} used primarily at query time to wrap another analyzer and provide a layer of protection
- * which prevents very common words from being passed into queries.
- *
- * For very large indexes the cost
- * of reading TermDocs for a very common word can be high. This analyzer was created after experience with
- * a 38 million doc index which had a term in around 50% of docs and was causing TermQueries for
- * this term to take 2 seconds.
- *
- *
- * Use the various "addStopWords" methods in this class to automate the identification and addition of
- * stop words found in an already existing index.
- *
- */
-public class QueryAutoStopWordAnalyzer : Analyzer {
- Analyzer _delegate;
- HashMap> stopWordsPerField = new HashMap>();
- //The default maximum percentage (40%) of index documents which
- //can contain a term, after which the term is considered to be a stop word.
- public const float defaultMaxDocFreqPercent = 0.4f;
- private readonly Version matchVersion;
-
- /*
- * Initializes this analyzer with the Analyzer object that actually produces the tokens
- *
- * @param _delegate The choice of {@link Analyzer} that is used to produce the token stream which needs filtering
- */
- public QueryAutoStopWordAnalyzer(Version matchVersion, Analyzer _delegate)
- {
- this._delegate = _delegate;
- SetOverridesTokenStreamMethod();
- this.matchVersion = matchVersion;
- }
-
- /*
- * Automatically adds stop words for all fields with terms exceeding the defaultMaxDocFreqPercent
- *
- * @param reader The {@link IndexReader} which will be consulted to identify potential stop words that
- * exceed the required document frequency
- * @return The number of stop words identified.
- * @throws IOException
- */
- public int AddStopWords(IndexReader reader)
- {
- return AddStopWords(reader, defaultMaxDocFreqPercent);
- }
-
- /*
- * Automatically adds stop words for all fields with terms exceeding the maxDocFreqPercent
- *
- * @param reader The {@link IndexReader} which will be consulted to identify potential stop words that
- * exceed the required document frequency
- * @param maxDocFreq The maximum number of index documents which can contain a term, after which
- * the term is considered to be a stop word
- * @return The number of stop words identified.
- * @throws IOException
- */
- public int AddStopWords(IndexReader reader, int maxDocFreq)
- {
- int numStopWords = 0;
- ICollection fieldNames = reader.GetFieldNames(IndexReader.FieldOption.INDEXED);
- for (IEnumerator iter = fieldNames.GetEnumerator(); iter.MoveNext();) {
- String fieldName = iter.Current;
- numStopWords += AddStopWords(reader, fieldName, maxDocFreq);
- }
- return numStopWords;
- }
-
- /*
- * Automatically adds stop words for all fields with terms exceeding the maxDocFreqPercent
- *
- * @param reader The {@link IndexReader} which will be consulted to identify potential stop words that
- * exceed the required document frequency
- * @param maxPercentDocs The maximum percentage (between 0.0 and 1.0) of index documents which
- * contain a term, after which the word is considered to be a stop word.
- * @return The number of stop words identified.
- * @throws IOException
- */
- public int AddStopWords(IndexReader reader, float maxPercentDocs)
- {
- int numStopWords = 0;
- ICollection fieldNames = reader.GetFieldNames(IndexReader.FieldOption.INDEXED);
- for (IEnumerator iter = fieldNames.GetEnumerator(); iter.MoveNext();) {
- String fieldName = iter.Current;
- numStopWords += AddStopWords(reader, fieldName, maxPercentDocs);
- }
- return numStopWords;
- }
-
- /*
- * Automatically adds stop words for the given field with terms exceeding the maxPercentDocs
- *
- * @param reader The {@link IndexReader} which will be consulted to identify potential stop words that
- * exceed the required document frequency
- * @param fieldName The field for which stopwords will be added
- * @param maxPercentDocs The maximum percentage (between 0.0 and 1.0) of index documents which
- * contain a term, after which the word is considered to be a stop word.
- * @return The number of stop words identified.
- * @throws IOException
- */
- public int AddStopWords(IndexReader reader, String fieldName, float maxPercentDocs)
- {
- return AddStopWords(reader, fieldName, (int) (reader.NumDocs() * maxPercentDocs));
- }
-
- /*
- * Automatically adds stop words for the given field with terms exceeding the maxPercentDocs
- *
- * @param reader The {@link IndexReader} which will be consulted to identify potential stop words that
- * exceed the required document frequency
- * @param fieldName The field for which stopwords will be added
- * @param maxDocFreq The maximum number of index documents which
- * can contain a term, after which the term is considered to be a stop word.
- * @return The number of stop words identified.
- * @throws IOException
- */
- public int AddStopWords(IndexReader reader, String fieldName, int maxDocFreq)
- {
- var stopWords = Support.Compatibility.SetFactory.CreateHashSet();
- String internedFieldName = StringHelper.Intern(fieldName);
- TermEnum te = reader.Terms(new Term(fieldName));
- Term term = te.Term;
- while (term != null) {
- if (term.Field != internedFieldName) {
- break;
- }
- if (te.DocFreq() > maxDocFreq) {
- stopWords.Add(term.Text);
- }
- if (!te.Next()) {
- break;
- }
- term = te.Term;
- }
- stopWordsPerField.Add(fieldName, stopWords);
-
- /* if the stopwords for a field are changed,
- * then saved streams for that field are erased.
- */
- IDictionary streamMap = (IDictionary) PreviousTokenStream;
- if (streamMap != null)
- streamMap.Remove(fieldName);
-
- return stopWords.Count;
- }
-
- public override TokenStream TokenStream(String fieldName, TextReader reader) {
- TokenStream result;
- try {
- result = _delegate.ReusableTokenStream(fieldName, reader);
- } catch (IOException) {
- result = _delegate.TokenStream(fieldName, reader);
- }
- var stopWords = stopWordsPerField[fieldName];
- if (stopWords != null) {
- result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- result, stopWords);
- }
- return result;
- }
-
- private class SavedStreams {
- /* the underlying stream */
- protected internal TokenStream Wrapped;
-
- /*
- * when there are no stopwords for the field, refers to wrapped.
- * if there stopwords, it is a StopFilter around wrapped.
- */
- protected internal TokenStream WithStopFilter;
- };
-
- public override TokenStream ReusableTokenStream(String fieldName, TextReader reader)
-{
- if (overridesTokenStreamMethod) {
- // LUCENE-1678: force fallback to tokenStream() if we
- // have been subclassed and that subclass overrides
- // tokenStream but not reusableTokenStream
- return TokenStream(fieldName, reader);
- }
-
- /* map of SavedStreams for each field */
- IDictionary streamMap = (IDictionary)PreviousTokenStream;
- if (streamMap == null) {
- streamMap = new HashMap();
- PreviousTokenStream = streamMap;
- }
-
- SavedStreams streams = streamMap[fieldName];
- if (streams == null) {
- /* an entry for this field does not exist, create one */
- streams = new SavedStreams();
- streamMap.Add(fieldName, streams);
- streams.Wrapped = _delegate.ReusableTokenStream(fieldName, reader);
-
- /* if there are any stopwords for the field, save the stopfilter */
- var stopWords = stopWordsPerField[fieldName];
- if (stopWords != null)
- streams.WithStopFilter = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- streams.Wrapped, stopWords);
- else
- streams.WithStopFilter = streams.Wrapped;
-
- } else {
- /*
- * an entry for this field exists, verify the wrapped stream has not
- * changed. if it has not, reuse it, otherwise wrap the new stream.
- */
- TokenStream result = _delegate.ReusableTokenStream(fieldName, reader);
- if (result == streams.Wrapped) {
- /* the wrapped analyzer reused the stream */
- streams.WithStopFilter.Reset();
- } else {
- /*
- * the wrapped analyzer did not. if there are any stopwords for the
- * field, create a new StopFilter around the new stream
- */
- streams.Wrapped = result;
- var stopWords = stopWordsPerField[fieldName];
- if (stopWords != null)
- streams.WithStopFilter = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- streams.Wrapped, stopWords);
- else
- streams.WithStopFilter = streams.Wrapped;
- }
- }
-
- return streams.WithStopFilter;
- }
-
- /*
- * Provides information on which stop words have been identified for a field
- *
- * @param fieldName The field for which stop words identified in "addStopWords"
- * method calls will be returned
- * @return the stop words identified for a field
- */
- public String[] GetStopWords(String fieldName) {
- String[] result;
- var stopWords = stopWordsPerField[fieldName];
- if (stopWords != null) {
- result = stopWords.ToArray();
- } else {
- result = new String[0];
- }
- return result;
- }
-
- /*
- * Provides information on which stop words have been identified for all fields
- *
- * @return the stop words (as terms)
- */
- public Term[] GetStopWords() {
- List allStopWords = new List();
- foreach(var fieldName in stopWordsPerField.Keys)
- {
- var stopWords = stopWordsPerField[fieldName];
- foreach(var text in stopWords) {
- allStopWords.Add(new Term(fieldName, text));
- }
- }
- return allStopWords.ToArray();
- }
-
-}
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Reverse/ReverseStringFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Reverse/ReverseStringFilter.cs
deleted file mode 100644
index 607bfea9b0..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Reverse/ReverseStringFilter.cs
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.Reverse
-{
- /*
- * Reverse token string, for example "country" => "yrtnuoc".
- *
- * If marker is supplied, then tokens will be also prepended by
- * that character. For example, with a marker of \u0001, "country" =>
- * "\u0001yrtnuoc". This is useful when implementing efficient leading
- * wildcards search.
- *
- */
- public sealed class ReverseStringFilter : TokenFilter
- {
-
- private ITermAttribute termAtt;
- private readonly char marker;
- private const char NOMARKER = '\uFFFF';
-
- /*
- * Example marker character: U+0001 (START OF HEADING)
- */
- public const char START_OF_HEADING_MARKER = '\u0001';
-
- /*
- * Example marker character: U+001F (INFORMATION SEPARATOR ONE)
- */
- public const char INFORMATION_SEPARATOR_MARKER = '\u001F';
-
- /*
- * Example marker character: U+EC00 (PRIVATE USE AREA: EC00)
- */
- public const char PUA_EC00_MARKER = '\uEC00';
-
- /*
- * Example marker character: U+200F (RIGHT-TO-LEFT MARK)
- */
- public const char RTL_DIRECTION_MARKER = '\u200F';
-
- /*
- * Create a new ReverseStringFilter that reverses all tokens in the
- * supplied {@link TokenStream}.
- *
- * The reversed tokens will not be marked.
- *
- *
- * @param in {@link TokenStream} to filter
- */
- public ReverseStringFilter(TokenStream _in)
- : this(_in, NOMARKER)
- {
-
- }
-
- /*
- * Create a new ReverseStringFilter that reverses and marks all tokens in the
- * supplied {@link TokenStream}.
- *
- * The reversed tokens will be prepended (marked) by the marker
- * character.
- *
- *
- * @param in {@link TokenStream} to filter
- * @param marker A character used to mark reversed tokens
- */
- public ReverseStringFilter(TokenStream _in, char marker)
- : base(_in)
- {
- this.marker = marker;
- termAtt = AddAttribute();
- }
-
- public override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- int len = termAtt.TermLength();
- if (marker != NOMARKER)
- {
- len++;
- termAtt.ResizeTermBuffer(len);
- termAtt.TermBuffer()[len - 1] = marker;
- }
- Reverse(termAtt.TermBuffer(), len);
- termAtt.SetTermLength(len);
- return true;
- }
- else
- {
- return false;
- }
- }
-
- public static String Reverse(String input)
- {
- char[] charInput = input.ToCharArray();
- Reverse(charInput);
- return new String(charInput);
- }
-
- public static void Reverse(char[] buffer)
- {
- Reverse(buffer, buffer.Length);
- }
-
- public static void Reverse(char[] buffer, int len)
- {
- Reverse(buffer, 0, len);
- }
-
- public static void Reverse(char[] buffer, int start, int len)
- {
- if (len <= 1) return;
- int num = len >> 1;
- for (int i = start; i < (start + num); i++)
- {
- char c = buffer[i];
- buffer[i] = buffer[start * 2 + len - i - 1];
- buffer[start * 2 + len - i - 1] = c;
- }
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianAnalyzer.cs b/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianAnalyzer.cs
deleted file mode 100644
index b37eade8ae..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianAnalyzer.cs
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
-using System.Collections;
-using Lucene.Net.Analysis;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.Ru
-{
- ///
- /// Analyzer for Russian language. Supports an external list of stopwords (words that
- /// will not be indexed at all).
- /// A default set of stopwords is used unless an alternative list is specified.
- ///
- public sealed class RussianAnalyzer : Analyzer
- {
- ///
- /// List of typical Russian stopwords.
- ///
- private static readonly String[] RUSSIAN_STOP_WORDS = {
- "а", "без", "более", "бы", "был", "была", "были",
- "было", "быть", "в",
- "вам", "ваÑ", "веÑÑŒ", "во", "вот", "вÑе", "вÑего",
- "вÑех", "вы", "где",
- "да", "даже", "длÑ", "до", "его", "ее", "ей", "ею",
- "еÑли", "еÑÑ‚ÑŒ",
- "еще", "же", "за", "здеÑÑŒ", "и", "из", "или", "им",
- "их", "к", "как",
- "ко", "когда", "кто", "ли", "либо", "мне", "может",
- "мы", "на", "надо",
- "наш", "не", "него", "нее", "нет", "ни", "них", "но",
- "ну", "о", "об",
- "однако", "он", "она", "они", "оно", "от", "очень",
- "по", "под", "при",
- "Ñ", "Ñо", "так", "также", "такой", "там", "те", "тем"
- , "то", "того",
- "тоже", "той", "только", "том", "ты", "у", "уже",
- "хотÑ", "чего", "чей",
- "чем", "что", "чтобы", "чье", "чьÑ", "Ñта", "Ñти",
- "Ñто", "Ñ"
- };
-
- private static class DefaultSetHolder
- {
- internal static readonly ISet DEFAULT_STOP_SET = CharArraySet.UnmodifiableSet(new CharArraySet((IEnumerable)RUSSIAN_STOP_WORDS, false));
- }
-
- ///
- /// Contains the stopwords used with the StopFilter.
- ///
- private readonly ISet stopSet;
-
- private readonly Version matchVersion;
-
-
- public RussianAnalyzer(Version matchVersion)
- : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET)
- {
- }
-
- /*
- * Builds an analyzer with the given stop words.
- * @deprecated use {@link #RussianAnalyzer(Version, Set)} instead
- */
- public RussianAnalyzer(Version matchVersion, params string[] stopwords)
- : this(matchVersion, StopFilter.MakeStopSet(stopwords))
- {
-
- }
-
- /*
- * Builds an analyzer with the given stop words
- *
- * @param matchVersion
- * lucene compatibility version
- * @param stopwords
- * a stopword set
- */
- public RussianAnalyzer(Version matchVersion, ISet stopwords)
- {
- stopSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(stopwords));
- this.matchVersion = matchVersion;
- }
-
- /*
- * Builds an analyzer with the given stop words.
- * TODO: create a Set version of this ctor
- * @deprecated use {@link #RussianAnalyzer(Version, Set)} instead
- */
- public RussianAnalyzer(Version matchVersion, IDictionary stopwords)
- : this(matchVersion, stopwords.Keys.ToArray())
- {
- }
-
- /*
- * Creates a {@link TokenStream} which tokenizes all the text in the
- * provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a
- * {@link RussianLetterTokenizer} filtered with
- * {@link RussianLowerCaseFilter}, {@link StopFilter},
- * and {@link RussianStemFilter}
- */
- public override TokenStream TokenStream(String fieldName, TextReader reader)
- {
- TokenStream result = new RussianLetterTokenizer(reader);
- result = new LowerCaseFilter(result);
- result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- result, stopSet);
- result = new RussianStemFilter(result);
- return result;
- }
-
- private class SavedStreams
- {
- protected internal Tokenizer source;
- protected internal TokenStream result;
- };
-
- /*
- * Returns a (possibly reused) {@link TokenStream} which tokenizes all the text
- * in the provided {@link Reader}.
- *
- * @return A {@link TokenStream} built from a
- * {@link RussianLetterTokenizer} filtered with
- * {@link RussianLowerCaseFilter}, {@link StopFilter},
- * and {@link RussianStemFilter}
- */
- public override TokenStream ReusableTokenStream(String fieldName, TextReader reader)
- {
- SavedStreams streams = (SavedStreams)PreviousTokenStream;
- if (streams == null)
- {
- streams = new SavedStreams();
- streams.source = new RussianLetterTokenizer(reader);
- streams.result = new LowerCaseFilter(streams.source);
- streams.result = new StopFilter(StopFilter.GetEnablePositionIncrementsVersionDefault(matchVersion),
- streams.result, stopSet);
- streams.result = new RussianStemFilter(streams.result);
- PreviousTokenStream = streams;
- }
- else
- {
- streams.source.Reset(reader);
- }
- return streams.result;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianLetterTokenizer.cs b/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianLetterTokenizer.cs
deleted file mode 100644
index 03ef873944..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianLetterTokenizer.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.IO;
-using Lucene.Net.Analysis;
-using Lucene.Net.Util;
-
-namespace Lucene.Net.Analysis.Ru
-{
- ///
- /// A RussianLetterTokenizer is a {@link Tokenizer} that extends {@link LetterTokenizer}
- /// by also allowing the basic latin digits 0-9.
- ///
- public class RussianLetterTokenizer : CharTokenizer
- {
- public RussianLetterTokenizer(TextReader _in)
- : base(_in)
- {
- }
-
- public RussianLetterTokenizer(AttributeSource source, TextReader _in)
- : base(source, _in)
- {
- }
-
- public RussianLetterTokenizer(AttributeSource.AttributeFactory factory, TextReader __in)
- : base(factory, __in)
- {
- }
-
- /*
- * Collects only characters which satisfy
- * {@link Character#isLetter(char)}.
- */
- protected override bool IsTokenChar(char c)
- {
- if (char.IsLetter(c) || (c >= '0' && c <= '9'))
- return true;
- else
- return false;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianLowerCaseFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianLowerCaseFilter.cs
deleted file mode 100644
index 274f7d4291..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianLowerCaseFilter.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using Lucene.Net.Analysis;
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.Ru
-{
- ///
- /// Normalizes token text to lower case.
- ///
- [Obsolete("Use LowerCaseFilter instead, which has the same functionality. This filter will be removed in Lucene 4.0")]
- public sealed class RussianLowerCaseFilter : TokenFilter
- {
- private ITermAttribute termAtt;
-
- public RussianLowerCaseFilter(TokenStream _in)
- : base(_in)
- {
- termAtt = AddAttribute();
- }
-
- public sealed override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- char[] chArray = termAtt.TermBuffer();
- int chLen = termAtt.TermLength();
- for (int i = 0; i < chLen; i++)
- {
- chArray[i] = char.ToLower(chArray[i]);
- }
- return true;
- }
- else
- {
- return false;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianStemFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianStemFilter.cs
deleted file mode 100644
index 1f00695c67..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianStemFilter.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using Lucene.Net.Analysis;
-using Lucene.Net.Analysis.Tokenattributes;
-
-namespace Lucene.Net.Analysis.Ru
-{
- /*
- * A {@link TokenFilter} that stems Russian words.
- *
- * The implementation was inspired by GermanStemFilter.
- * The input should be filtered by {@link LowerCaseFilter} before passing it to RussianStemFilter ,
- * because RussianStemFilter only works with lowercase characters.
- *
- */
- public sealed class RussianStemFilter : TokenFilter
- {
- /*
- * The actual token in the input stream.
- */
- private RussianStemmer stemmer = null;
-
- private ITermAttribute termAtt;
-
- public RussianStemFilter(TokenStream _in)
- : base(_in)
- {
- stemmer = new RussianStemmer();
- termAtt = AddAttribute();
- }
- /*
- * Returns the next token in the stream, or null at EOS
- */
- public sealed override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- String term = termAtt.Term;
- String s = stemmer.Stem(term);
- if (s != null && !s.Equals(term))
- termAtt.SetTermBuffer(s);
- return true;
- }
- else
- {
- return false;
- }
- }
-
-
- // I don't get the point of this. All methods in java are private, so they can't be
- // overridden...You can't really subclass any of its behavior. I've commented it out,
- // as it doesn't compile as is. - cc
- ////*
- // * Set a alternative/custom {@link RussianStemmer} for this filter.
- // */
- //public void SetStemmer(RussianStemmer stemmer)
- //{
- // if (stemmer != null)
- // {
- // this.stemmer = stemmer;
- // }
- //}
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianStemmer.cs b/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianStemmer.cs
deleted file mode 100644
index eaf25e5ccb..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Ru/RussianStemmer.cs
+++ /dev/null
@@ -1,615 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-using System;
-using System.Text;
-
-namespace Lucene.Net.Analysis.Ru
-{
- /*
- * Russian stemming algorithm implementation (see http://snowball.sourceforge.net for detailed description).
- */
- public class RussianStemmer
- {
- // positions of RV, R1 and R2 respectively
- private int RV, R1, R2;
-
- // letters (currently unused letters are commented out)
- private const char A = '\u0430';
- //private const char B = '\u0431';
- private const char V = '\u0432';
- private const char G = '\u0433';
- //private const char D = '\u0434';
- private const char E = '\u0435';
- //private const char ZH = '\u0436';
- //private const char Z = '\u0437';
- private const char I = '\u0438';
- private const char I_ = '\u0439';
- //private const char K = '\u043A';
- private const char L = '\u043B';
- private const char M = '\u043C';
- private const char N = '\u043D';
- private const char O = '\u043E';
- //private const char P = '\u043F';
- //private const char R = '\u0440';
- private const char S = '\u0441';
- private const char T = '\u0442';
- private const char U = '\u0443';
- //private const char F = '\u0444';
- private const char X = '\u0445';
- //private const char TS = '\u0446';
- //private const char CH = '\u0447';
- private const char SH = '\u0448';
- private const char SHCH = '\u0449';
- //private const char HARD = '\u044A';
- private const char Y = '\u044B';
- private const char SOFT = '\u044C';
- private const char AE = '\u044D';
- private const char IU = '\u044E';
- private const char IA = '\u044F';
-
- // stem definitions
- private static char[] vowels = { A, E, I, O, U, Y, AE, IU, IA };
-
- private static char[][] perfectiveGerundEndings1 = {
- new[] {V},
- new[] {V, SH, I},
- new[] {V, SH, I, S, SOFT}
- };
-
- private static char[][] perfectiveGerund1Predessors = {
- new[] {A},
- new[] {IA}
- };
-
- private static char[][] perfectiveGerundEndings2 = {
- new[] {I, V},
- new[] {Y, V},
- new[] {I, V, SH, I},
- new[] {Y, V, SH, I},
- new[] {I, V, SH, I, S, SOFT},
- new[] {Y, V, SH, I, S, SOFT}
- };
-
- private static char[][] adjectiveEndings = {
- new[] {E, E},
- new[] {I, E},
- new[] {Y, E},
- new[] {O, E},
- new[] {E, I_},
- new[] {I, I_},
- new[] {Y, I_},
- new[] {O, I_},
- new[] {E, M},
- new[] {I, M},
- new[] {Y, M},
- new[] {O, M},
- new[] {I, X},
- new[] {Y, X},
- new[] {U, IU},
- new[] {IU, IU},
- new[] {A, IA},
- new[] {IA, IA},
- new[] {O, IU},
- new[] {E, IU},
- new[] {I, M, I},
- new[] {Y, M, I},
- new[] {E, G, O},
- new[] {O, G, O},
- new[] {E, M, U},
- new[] {O, M, U}
- };
-
- private static char[][] participleEndings1 = {
- new[] {SHCH},
- new[] {E, M},
- new[] {N, N},
- new[] {V, SH},
- new[] {IU, SHCH}
- };
-
- private static char[][] participleEndings2 = {
- new[] {I, V, SH},
- new[] {Y, V, SH},
- new[] {U, IU, SHCH}
- };
-
- private static char[][] participle1Predessors = {
- new[] {A},
- new[] {IA}
- };
-
- private static char[][] reflexiveEndings = {
- new[] {S, IA},
- new[] {S, SOFT}
- };
-
- private static char[][] verbEndings1 = {
- new[] {I_},
- new[] {L},
- new[] {N},
- new[] {L, O},
- new[] {N, O},
- new[] {E, T},
- new[] {IU, T},
- new[] {L, A},
- new[] {N, A},
- new[] {L, I},
- new[] {E, M},
- new[] {N, Y},
- new[] {E, T, E},
- new[] {I_, T, E},
- new[] {T, SOFT},
- new[] {E, SH, SOFT},
- new[] {N, N, O}
- };
-
- private static char[][] verbEndings2 = {
- new[] {IU},
- new[] {U, IU},
- new[] {E, N},
- new[] {E, I_},
- new[] {IA, T},
- new[] {U, I_},
- new[] {I, L},
- new[] {Y, L},
- new[] {I, M},
- new[] {Y, M},
- new[] {I, T},
- new[] {Y, T},
- new[] {I, L, A},
- new[] {Y, L, A},
- new[] {E, N, A},
- new[] {I, T, E},
- new[] {I, L, I},
- new[] {Y, L, I},
- new[] {I, L, O},
- new[] {Y, L, O},
- new[] {E, N, O},
- new[] {U, E, T},
- new[] {U, IU, T},
- new[] {E, N, Y},
- new[] {I, T, SOFT},
- new[] {Y, T, SOFT},
- new[] {I, SH, SOFT},
- new[] {E, I_, T, E},
- new[] {U, I_, T, E}
- };
-
- private static char[][] verb1Predessors = {
- new[] {A},
- new[] {IA}
- };
-
- private static char[][] nounEndings = {
- new[] {A},
- new[] {U},
- new[] {I_},
- new[] {O},
- new[] {U},
- new[] {E},
- new[] {Y},
- new[] {I},
- new[] {SOFT},
- new[] {IA},
- new[] {E, V},
- new[] {O, V},
- new[] {I, E},
- new[] {SOFT, E},
- new[] {IA, X},
- new[] {I, IU},
- new[] {E, I},
- new[] {I, I},
- new[] {E, I_},
- new[] {O, I_},
- new[] {E, M},
- new[] {A, M},
- new[] {O, M},
- new[] {A, X},
- new[] {SOFT, IU},
- new[] {I, IA},
- new[] {SOFT, IA},
- new[] {I, I_},
- new[] {IA, M},
- new[] {IA, M, I},
- new[] {A, M, I},
- new[] {I, E, I_},
- new[] {I, IA, M},
- new[] {I, E, M},
- new[] {I, IA, X},
- new[] {I, IA, M, I}
- };
-
- private static char[][] superlativeEndings = {
- new[] {E, I_, SH},
- new[] {E, I_, SH, E}
- };
-
- private static char[][] derivationalEndings = {
- new[] {O, S, T},
- new[] {O, S, T, SOFT}
- };
-
- /*
- * RussianStemmer constructor comment.
- */
- public RussianStemmer()
- {
- }
-
- /*
- * Adjectival ending is an adjective ending,
- * optionally preceded by participle ending.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool adjectival(StringBuilder stemmingZone)
- {
- // look for adjective ending in a stemming zone
- if (!findAndRemoveEnding(stemmingZone, adjectiveEndings))
- return false;
- // if adjective ending was found, try for participle ending.
- // variable r is unused, we are just interested in the side effect of
- // findAndRemoveEnding():
- bool r =
- findAndRemoveEnding(stemmingZone, participleEndings1, participle1Predessors)
- ||
- findAndRemoveEnding(stemmingZone, participleEndings2);
- return true;
- }
-
- /*
- * Derivational endings
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool derivational(StringBuilder stemmingZone)
- {
- int endingLength = findEnding(stemmingZone, derivationalEndings);
- if (endingLength == 0)
- // no derivational ending found
- return false;
- else
- {
- // Ensure that the ending locates in R2
- if (R2 - RV <= stemmingZone.Length - endingLength)
- {
- stemmingZone.Length = stemmingZone.Length - endingLength;
- return true;
- }
- else
- {
- return false;
- }
- }
- }
-
- /*
- * Finds ending among given ending class and returns the length of ending found(0, if not found).
- * Creation date: (17/03/2002 8:18:34 PM)
- */
- private int findEnding(StringBuilder stemmingZone, int startIndex, char[][] theEndingClass)
- {
- bool match = false;
- for (int i = theEndingClass.Length - 1; i >= 0; i--)
- {
- char[] theEnding = theEndingClass[i];
- // check if the ending is bigger than stemming zone
- if (startIndex < theEnding.Length - 1)
- {
- match = false;
- continue;
- }
- match = true;
- int stemmingIndex = startIndex;
- for (int j = theEnding.Length - 1; j >= 0; j--)
- {
- if (stemmingZone[stemmingIndex--] != theEnding[j])
- {
- match = false;
- break;
- }
- }
- // check if ending was found
- if (match)
- {
- return theEndingClass[i].Length; // cut ending
- }
- }
- return 0;
- }
-
- private int findEnding(StringBuilder stemmingZone, char[][] theEndingClass)
- {
- return findEnding(stemmingZone, stemmingZone.Length - 1, theEndingClass);
- }
-
- /*
- * Finds the ending among the given class of endings and removes it from stemming zone.
- * Creation date: (17/03/2002 8:18:34 PM)
- */
- private bool findAndRemoveEnding(StringBuilder stemmingZone, char[][] theEndingClass)
- {
- int endingLength = findEnding(stemmingZone, theEndingClass);
- if (endingLength == 0)
- // not found
- return false;
- else
- {
- stemmingZone.Length = stemmingZone.Length - endingLength;
- // cut the ending found
- return true;
- }
- }
-
- /*
- * Finds the ending among the given class of endings, then checks if this ending was
- * preceded by any of given predecessors, and if so, removes it from stemming zone.
- * Creation date: (17/03/2002 8:18:34 PM)
- */
- private bool findAndRemoveEnding(StringBuilder stemmingZone,
- char[][] theEndingClass, char[][] thePredessors)
- {
- int endingLength = findEnding(stemmingZone, theEndingClass);
- if (endingLength == 0)
- // not found
- return false;
- else
- {
- int predessorLength =
- findEnding(stemmingZone,
- stemmingZone.Length - endingLength - 1,
- thePredessors);
- if (predessorLength == 0)
- return false;
- else
- {
- stemmingZone.Length = stemmingZone.Length - endingLength;
- // cut the ending found
- return true;
- }
- }
-
- }
-
- /*
- * Marks positions of RV, R1 and R2 in a given word.
- * Creation date: (16/03/2002 3:40:11 PM)
- */
- private void markPositions(String word)
- {
- RV = 0;
- R1 = 0;
- R2 = 0;
- int i = 0;
- // find RV
- while (word.Length > i && !isVowel(word[i]))
- {
- i++;
- }
- if (word.Length - 1 < ++i)
- return; // RV zone is empty
- RV = i;
- // find R1
- while (word.Length > i && isVowel(word[i]))
- {
- i++;
- }
- if (word.Length - 1 < ++i)
- return; // R1 zone is empty
- R1 = i;
- // find R2
- while (word.Length > i && !isVowel(word[i]))
- {
- i++;
- }
- if (word.Length - 1 < ++i)
- return; // R2 zone is empty
- while (word.Length > i && isVowel(word[i]))
- {
- i++;
- }
- if (word.Length - 1 < ++i)
- return; // R2 zone is empty
- R2 = i;
- }
-
- /*
- * Checks if character is a vowel..
- * Creation date: (16/03/2002 10:47:03 PM)
- * @return bool
- * @param letter char
- */
- private bool isVowel(char letter)
- {
- for (int i = 0; i < vowels.Length; i++)
- {
- if (letter == vowels[i])
- return true;
- }
- return false;
- }
-
- /*
- * Noun endings.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool noun(StringBuilder stemmingZone)
- {
- return findAndRemoveEnding(stemmingZone, nounEndings);
- }
-
- /*
- * Perfective gerund endings.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool perfectiveGerund(StringBuilder stemmingZone)
- {
- return findAndRemoveEnding(
- stemmingZone,
- perfectiveGerundEndings1,
- perfectiveGerund1Predessors)
- || findAndRemoveEnding(stemmingZone, perfectiveGerundEndings2);
- }
-
- /*
- * Reflexive endings.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool reflexive(StringBuilder stemmingZone)
- {
- return findAndRemoveEnding(stemmingZone, reflexiveEndings);
- }
-
- /*
- * Insert the method's description here.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool removeI(StringBuilder stemmingZone)
- {
- if (stemmingZone.Length > 0
- && stemmingZone[stemmingZone.Length - 1] == I)
- {
- stemmingZone.Length = stemmingZone.Length - 1;
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /*
- * Insert the method's description here.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool removeSoft(StringBuilder stemmingZone)
- {
- if (stemmingZone.Length > 0
- && stemmingZone[stemmingZone.Length - 1] == SOFT)
- {
- stemmingZone.Length = stemmingZone.Length - 1;
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /*
- * Finds the stem for given Russian word.
- * Creation date: (16/03/2002 3:36:48 PM)
- * @return java.lang.String
- * @param input java.lang.String
- */
- public virtual String Stem(String input)
- {
- markPositions(input);
- if (RV == 0)
- return input; //RV wasn't detected, nothing to stem
- StringBuilder stemmingZone = new StringBuilder(input.Substring(RV));
- // stemming goes on in RV
- // Step 1
-
- if (!perfectiveGerund(stemmingZone))
- {
- reflexive(stemmingZone);
- // variable r is unused, we are just interested in the flow that gets
- // created by logical expression: apply adjectival(); if that fails,
- // apply verb() etc
- bool r =
- adjectival(stemmingZone)
- || Verb(stemmingZone)
- || noun(stemmingZone);
- }
- // Step 2
- removeI(stemmingZone);
- // Step 3
- derivational(stemmingZone);
- // Step 4
- Superlative(stemmingZone);
- UndoubleN(stemmingZone);
- removeSoft(stemmingZone);
- // return result
- return input.Substring(0, RV) + stemmingZone.ToString();
- }
-
- /*
- * Superlative endings.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool Superlative(StringBuilder stemmingZone)
- {
- return findAndRemoveEnding(stemmingZone, superlativeEndings);
- }
-
- /*
- * Undoubles N.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool UndoubleN(StringBuilder stemmingZone)
- {
- char[][] doubleN = {
- new[] {N, N}
- };
- if (findEnding(stemmingZone, doubleN) != 0)
- {
- stemmingZone.Length = stemmingZone.Length - 1;
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /*
- * Verb endings.
- * Creation date: (17/03/2002 12:14:58 AM)
- * @param stemmingZone java.lang.StringBuilder
- */
- private bool Verb(StringBuilder stemmingZone)
- {
- return findAndRemoveEnding(
- stemmingZone,
- verbEndings1,
- verb1Predessors)
- || findAndRemoveEnding(stemmingZone, verbEndings2);
- }
-
- /*
- * Static method for stemming.
- */
- public static String StemWord(String theWord)
- {
- RussianStemmer stemmer = new RussianStemmer();
- return stemmer.Stem(theWord);
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/OneDimensionalNonWeightedTokenSettingsCodec.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/OneDimensionalNonWeightedTokenSettingsCodec.cs
deleted file mode 100644
index a5cec145f5..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/OneDimensionalNonWeightedTokenSettingsCodec.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.
- */
-
-namespace Lucene.Net.Analysis.Shingle.Codec
-{
- ///
- /// Using this codec makes a ShingleMatrixFilter act like ShingleFilter.
- /// It produces the most simple sort of shingles, ignoring token position increments, etc.
- ///
- /// It adds each token as a new column.
- ///
- public class OneDimensionalNonWeightedTokenSettingsCodec : TokenSettingsCodec
- {
- public override TokenPositioner GetTokenPositioner(Token token)
- {
- return TokenPositioner.NewColumn;
- }
-
- public override void SetTokenPositioner(Token token, TokenPositioner tokenPositioner)
- {
- }
-
- public override float GetWeight(Token token)
- {
- return 1f;
- }
-
- public override void SetWeight(Token token, float weight)
- {
- }
- }
-}
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/SimpleThreeDimensionalTokenSettingsCodec.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/SimpleThreeDimensionalTokenSettingsCodec.cs
deleted file mode 100644
index 5edb112f88..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/SimpleThreeDimensionalTokenSettingsCodec.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * 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.
- */
-
-using System.IO;
-using Lucene.Net.Analysis.Payloads;
-using Lucene.Net.Index;
-
-namespace Lucene.Net.Analysis.Shingle.Codec
-{
- ///
- /// A full featured codec not to be used for something serious.
- ///
- /// It takes complete control of
- /// payload for weight
- /// and the bit flags for positioning in the matrix.
- ///
- /// Mainly exist for demonstrational purposes.
- ///
- public class SimpleThreeDimensionalTokenSettingsCodec : TokenSettingsCodec
- {
- ///
- ///
- ///
- ///
- /// the token flags int value as TokenPosition
- public override TokenPositioner GetTokenPositioner(Token token)
- {
- switch (token.Flags)
- {
- case 0:
- return TokenPositioner.NewColumn;
- case 1:
- return TokenPositioner.NewRow;
- case 2:
- return TokenPositioner.SameRow;
- }
- throw new IOException("Unknown matrix positioning of token " + token);
- }
-
- ///
- /// Sets the TokenPositioner as token flags int value.
- ///
- ///
- ///
- public override void SetTokenPositioner(Token token, TokenPositioner tokenPositioner)
- {
- token.Flags = tokenPositioner.Index;
- }
-
- ///
- /// Returns a 32 bit float from the payload, or 1f it null.
- ///
- ///
- ///
- public override float GetWeight(Token token)
- {
- if (token.Payload == null || token.Payload.GetData() == null)
- return 1f;
-
- return PayloadHelper.DecodeFloat(token.Payload.GetData());
- }
-
- ///
- /// Stores a 32 bit float in the payload, or set it to null if 1f;
- ///
- ///
- ///
- public override void SetWeight(Token token, float weight)
- {
- token.Payload = weight == 1f ? null : new Payload(PayloadHelper.EncodeFloat(weight));
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/TokenSettingsCodec.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/TokenSettingsCodec.cs
deleted file mode 100644
index b25a78777b..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/TokenSettingsCodec.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.
- */
-
-namespace Lucene.Net.Analysis.Shingle.Codec
-{
- ///
- /// Strategy used to code and decode meta data of the tokens from the input stream
- /// regarding how to position the tokens in the matrix, set and retreive weight, etc.
- ///
- public abstract class TokenSettingsCodec
- {
- ///
- /// Retrieves information on how a Token is to be inserted to a ShingleMatrixFilter.Matrix.
- ///
- ///
- ///
- public abstract TokenPositioner GetTokenPositioner(Token token);
-
- ///
- /// Sets information on how a Token is to be inserted to a ShingleMatrixFilter.Matrix.
- ///
- ///
- ///
- public abstract void SetTokenPositioner(Token token, TokenPositioner tokenPositioner);
-
- ///
- /// Have this method return 1f in order to 'disable' weights.
- ///
- ///
- ///
- public abstract float GetWeight(Token token);
-
- ///
- /// Have this method do nothing in order to 'disable' weights.
- ///
- ///
- ///
- public abstract void SetWeight(Token token, float weight);
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/TwoDimensionalNonWeightedSynonymTokenSettingsCodec.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/TwoDimensionalNonWeightedSynonymTokenSettingsCodec.cs
deleted file mode 100644
index 5300bef332..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Codec/TwoDimensionalNonWeightedSynonymTokenSettingsCodec.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-
-namespace Lucene.Net.Analysis.Shingle.Codec
-{
- ///
- /// A codec that creates a two dimensional matrix
- /// by treating tokens from the input stream with 0 position increment
- /// as new rows to the current column.
- ///
- public class TwoDimensionalNonWeightedSynonymTokenSettingsCodec : TokenSettingsCodec
- {
- public override TokenPositioner GetTokenPositioner(Token token)
- {
- return
- token.PositionIncrement == 0 ? TokenPositioner.NewRow : TokenPositioner.NewColumn;
- }
-
- public override void SetTokenPositioner(Token token, TokenPositioner tokenPositioner)
- {
- throw new NotSupportedException();
- }
-
- public override float GetWeight(Token token)
- {
- return 1f;
- }
-
- public override void SetWeight(Token token, float weight)
- {
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Column.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Column.cs
deleted file mode 100644
index 1680f9addd..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Column.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-
-namespace Lucene.Net.Analysis.Shingle.Matrix
-{
- public class Column
- {
- public Column(Token token, Analysis.Shingle.Matrix.Matrix enclosingInstance)
- : this(enclosingInstance)
- {
- var row = new Row(this);
- row.Tokens.AddLast(token);
- }
-
- public Column(Analysis.Shingle.Matrix.Matrix enclosingInstance)
- {
- Rows = new List();
- Matrix = enclosingInstance;
-
- lock (Matrix)
- {
- if (Matrix.Columns.Count == 0)
- IsFirst = true;
- }
- Matrix.Columns.Add(this);
- }
-
- public Matrix Matrix { get; private set; }
-
- public List Rows { get; private set; }
-
- public int Index
- {
- get { return Matrix.Columns.IndexOf(this); }
- }
-
- public bool IsFirst { get; set; }
-
- public bool IsLast { get; set; }
-
- public override String ToString()
- {
- return "Column{" +
- "first=" + IsFirst +
- ", last=" + IsLast +
- ", rows=" + Rows +
- '}';
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Matrix.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Matrix.cs
deleted file mode 100644
index f0a8ec947b..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Matrix.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-using System.Collections.Generic;
-
-namespace Lucene.Net.Analysis.Shingle.Matrix
-{
- ///
- /// A column focused matrix in three dimensions:
- ///
- ///
- ///
- /// todo consider row groups
- /// to indicate that shingles is only to contain permutations with texts in that same row group.
- ///
- public class Matrix
- {
- public Matrix()
- {
- Columns = new List();
- }
-
- public List Columns { get; private set; }
-
- public MatrixPermutationIterator PermutationIterator()
- {
- return new MatrixPermutationIterator(this);
- }
-
- public override string ToString()
- {
- return "Matrix{" +
- "columns=" + Columns +
- '}';
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/MatrixPermutationIterator.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/MatrixPermutationIterator.cs
deleted file mode 100644
index 1bc6f32383..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/MatrixPermutationIterator.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-
-namespace Lucene.Net.Analysis.Shingle.Matrix
-{
- public class MatrixPermutationIterator
- {
- private readonly Analysis.Shingle.Matrix.Matrix _enclosingInstance;
-
- private readonly int[] _columnRowCounters;
-
- public MatrixPermutationIterator(Analysis.Shingle.Matrix.Matrix enclosingInstance)
- {
- _enclosingInstance = enclosingInstance;
- _columnRowCounters = new int[_enclosingInstance.Columns.Count];
- }
-
- public bool HasNext()
- {
- var s = _columnRowCounters.Length;
- var n = _enclosingInstance.Columns.Count;
- return s != 0 && n >= s && _columnRowCounters[s - 1] < _enclosingInstance.Columns[s - 1].Rows.Count;
- }
-
- public Row[] Next()
- {
- if (!HasNext())
- throw new Exception("no more elements");
-
- var rows = new Row[_columnRowCounters.Length];
-
- for (int i = 0; i < _columnRowCounters.Length; i++)
- {
- rows[i] = _enclosingInstance.Columns[i].Rows[_columnRowCounters[i]];
- }
-
- IncrementColumnRowCounters();
-
- return rows;
- }
-
- private void IncrementColumnRowCounters()
- {
- for (int i = 0; i < _columnRowCounters.Length; i++)
- {
- _columnRowCounters[i]++;
-
- if (_columnRowCounters[i] != _enclosingInstance.Columns[i].Rows.Count ||
- i >= _columnRowCounters.Length - 1)
- break;
-
- _columnRowCounters[i] = 0;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Row.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Row.cs
deleted file mode 100644
index 464bf113e2..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/Matrix/Row.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.
- */
-
-using System.Collections.Generic;
-
-namespace Lucene.Net.Analysis.Shingle.Matrix
-{
- public class Row
- {
- public Row(Column enclosingInstance)
- {
- Tokens = new LinkedList();
- Column = enclosingInstance;
- Column.Rows.Add(this);
- }
-
- public Column Column { get; private set; }
-
- public int Index
- {
- get { return Column.Rows.IndexOf(this); }
- }
-
- public LinkedList Tokens { get; set; }
-
- public override string ToString()
- {
- return "Row{" +
- "index=" + Index +
- ", tokens=" + Tokens +
- '}';
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleAnalyzerWrapper.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleAnalyzerWrapper.cs
deleted file mode 100644
index c057768564..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleAnalyzerWrapper.cs
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.IO;
-using Lucene.Net.Analysis.Standard;
-using Version = Lucene.Net.Util.Version;
-
-namespace Lucene.Net.Analysis.Shingle
-{
- /*
- * A ShingleAnalyzerWrapper wraps a {@link ShingleFilter} around another {@link Analyzer}.
- *
- * A shingle is another name for a token based n-gram.
- *
- */
- public class ShingleAnalyzerWrapper : Analyzer
- {
-
- protected Analyzer defaultAnalyzer;
- protected int maxShingleSize = 2;
- protected bool outputUnigrams = true;
-
- public ShingleAnalyzerWrapper(Analyzer defaultAnalyzer)
- {
- this.defaultAnalyzer = defaultAnalyzer;
- SetOverridesTokenStreamMethod();
- }
-
- public ShingleAnalyzerWrapper(Analyzer defaultAnalyzer, int maxShingleSize)
- : this(defaultAnalyzer)
- {
-
- this.maxShingleSize = maxShingleSize;
- }
-
- /*
- * Wraps {@link StandardAnalyzer}.
- */
- public ShingleAnalyzerWrapper(Version matchVersion)
- {
- this.defaultAnalyzer = new StandardAnalyzer(matchVersion);
- SetOverridesTokenStreamMethod();
- }
-
- /*
- * Wraps {@link StandardAnalyzer}.
- */
- public ShingleAnalyzerWrapper(Version matchVersion, int nGramSize)
- : this(matchVersion)
- {
- this.maxShingleSize = nGramSize;
- }
-
- ///
- /// Gets or sets the max shingle (ngram) size
- ///
- public int MaxShingleSize
- {
- get { return maxShingleSize; }
- set { this.maxShingleSize = value; }
- }
- ///
- /// Gets or sets whether or not to have the filter pass the original tokens
- /// (the "unigrams") to the output stream
- ///
- public bool IsOutputUnigrams
- {
- get { return outputUnigrams; }
- set { this.outputUnigrams = value; }
- }
-
- public override TokenStream TokenStream(String fieldName, TextReader reader)
- {
- TokenStream wrapped;
- try
- {
- wrapped = defaultAnalyzer.ReusableTokenStream(fieldName, reader);
- }
- catch (IOException)
- {
- wrapped = defaultAnalyzer.TokenStream(fieldName, reader);
- }
- ShingleFilter filter = new ShingleFilter(wrapped);
- filter.SetMaxShingleSize(maxShingleSize);
- filter.SetOutputUnigrams(outputUnigrams);
- return filter;
- }
-
- class SavedStreams
- {
- protected internal TokenStream wrapped;
- protected internal ShingleFilter shingle;
- };
-
- public override TokenStream ReusableTokenStream(String fieldName, TextReader reader)
- {
- if (overridesTokenStreamMethod)
- {
- // LUCENE-1678: force fallback to tokenStream() if we
- // have been subclassed and that subclass overrides
- // tokenStream but not reusableTokenStream
- return TokenStream(fieldName, reader);
- }
-
- SavedStreams streams = (SavedStreams)PreviousTokenStream;
- if (streams == null)
- {
- streams = new SavedStreams();
- streams.wrapped = defaultAnalyzer.ReusableTokenStream(fieldName, reader);
- streams.shingle = new ShingleFilter(streams.wrapped);
- PreviousTokenStream = streams;
- }
- else
- {
- TokenStream result = defaultAnalyzer.ReusableTokenStream(fieldName, reader);
- if (result == streams.wrapped)
- {
- /* the wrapped analyzer reused the stream */
- streams.shingle.Reset();
- }
- else
- {
- /* the wrapped analyzer did not, create a new shingle around the new one */
- streams.wrapped = result;
- streams.shingle = new ShingleFilter(streams.wrapped);
- }
- }
- streams.shingle.SetMaxShingleSize(maxShingleSize);
- streams.shingle.SetOutputUnigrams(outputUnigrams);
- return streams.shingle;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleFilter.cs
deleted file mode 100644
index 38c5eec61d..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleFilter.cs
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Util;
-
-namespace Lucene.Net.Analysis.Shingle
-{
- /*
- *
A ShingleFilter constructs shingles (token n-grams) from a token stream.
- * In other words, it creates combinations of tokens as a single token.
- *
- *
For example, the sentence "please divide this sentence into shingles"
- * might be tokenized into shingles "please divide", "divide this",
- * "this sentence", "sentence into", and "into shingles".
- *
- *
This filter handles position increments > 1 by inserting filler tokens
- * (tokens with termtext "_"). It does not handle a position increment of 0.
- */
- public sealed class ShingleFilter : TokenFilter
- {
-
- private LinkedList shingleBuf = new LinkedList();
- private StringBuilder[] shingles;
- private String tokenType = "shingle";
-
- /*
- * filler token for when positionIncrement is more than 1
- */
- public static readonly char[] FILLER_TOKEN = { '_' };
-
-
- /*
- * default maximum shingle size is 2.
- */
- public const int DEFAULT_MAX_SHINGLE_SIZE = 2;
-
- /*
- * The string to use when joining adjacent tokens to form a shingle
- */
- public const String TOKEN_SEPARATOR = " ";
-
- /*
- * By default, we output unigrams (individual tokens) as well as shingles
- * (token n-grams).
- */
- private bool outputUnigrams = true;
-
- /*
- * maximum shingle size (number of tokens)
- */
- private int maxShingleSize;
-
- /*
- * Constructs a ShingleFilter with the specified single size from the
- * {@link TokenStream} input
- *
- * @param input input stream
- * @param maxShingleSize maximum shingle size produced by the filter.
- */
- public ShingleFilter(TokenStream input, int maxShingleSize)
- : base(input)
- {
- SetMaxShingleSize(maxShingleSize);
- this.termAtt = AddAttribute(); ;
- this.offsetAtt = AddAttribute(); ;
- this.posIncrAtt = AddAttribute(); ;
- this.typeAtt = AddAttribute(); ;
- }
-
- /*
- * Construct a ShingleFilter with default shingle size.
- *
- * @param input input stream
- */
- public ShingleFilter(TokenStream input)
- : this(input, DEFAULT_MAX_SHINGLE_SIZE)
- {
- }
-
- /*
- * Construct a ShingleFilter with the specified token type for shingle tokens.
- *
- * @param input input stream
- * @param tokenType token type for shingle tokens
- */
- public ShingleFilter(TokenStream input, String tokenType)
- : this(input, DEFAULT_MAX_SHINGLE_SIZE)
- {
- setTokenType(tokenType);
- }
-
- /*
- * Set the type of the shingle tokens produced by this filter.
- * (default: "shingle")
- *
- * @param tokenType token tokenType
- */
- public void setTokenType(String tokenType)
- {
- this.tokenType = tokenType;
- }
-
- /*
- * Shall the output stream contain the input tokens (unigrams) as well as
- * shingles? (default: true.)
- *
- * @param outputUnigrams Whether or not the output stream shall contain
- * the input tokens (unigrams)
- */
- public void SetOutputUnigrams(bool outputUnigrams)
- {
- this.outputUnigrams = outputUnigrams;
- }
-
- /*
- * Set the max shingle size (default: 2)
- *
- * @param maxShingleSize max size of output shingles
- */
- public void SetMaxShingleSize(int maxShingleSize)
- {
- if (maxShingleSize < 2)
- {
- throw new ArgumentException("Max shingle size must be >= 2");
- }
- shingles = new StringBuilder[maxShingleSize];
- for (int i = 0; i < shingles.Length; i++)
- {
- shingles[i] = new StringBuilder();
- }
- this.maxShingleSize = maxShingleSize;
- }
-
- /*
- * Clear the StringBuilders that are used for storing the output shingles.
- */
- private void ClearShingles()
- {
- for (int i = 0; i < shingles.Length; i++)
- {
- shingles[i].Length = 0;
- }
- }
-
- private AttributeSource.State nextToken;
- private int shingleBufferPosition;
- private int[] endOffsets;
-
- /* (non-Javadoc)
- * @see org.apache.lucene.analysis.TokenStream#next()
- */
- public sealed override bool IncrementToken()
- {
- while (true)
- {
- if (nextToken == null)
- {
- if (!FillShingleBuffer())
- {
- return false;
- }
- }
-
- nextToken = shingleBuf.First.Value;
-
- if (outputUnigrams)
- {
- if (shingleBufferPosition == 0)
- {
- RestoreState(nextToken);
- posIncrAtt.PositionIncrement = 1;
- shingleBufferPosition++;
- return true;
- }
- }
- else if (shingleBufferPosition % this.maxShingleSize == 0)
- {
- shingleBufferPosition++;
- }
-
- if (shingleBufferPosition < shingleBuf.Count)
- {
- RestoreState(nextToken);
- typeAtt.Type = tokenType;
- offsetAtt.SetOffset(offsetAtt.StartOffset, endOffsets[shingleBufferPosition]);
- StringBuilder buf = shingles[shingleBufferPosition];
- int termLength = buf.Length;
- char[] TermBuffer = termAtt.TermBuffer();
- if (TermBuffer.Length < termLength)
- TermBuffer = termAtt.ResizeTermBuffer(termLength);
- buf.CopyTo(0, TermBuffer, 0, termLength);
- termAtt.SetTermLength(termLength);
- if ((!outputUnigrams) && shingleBufferPosition % this.maxShingleSize == 1)
- {
- posIncrAtt.PositionIncrement = 1;
- }
- else
- {
- posIncrAtt.PositionIncrement = 0;
- }
- shingleBufferPosition++;
- if (shingleBufferPosition == shingleBuf.Count)
- {
- nextToken = null;
- shingleBufferPosition = 0;
- }
- return true;
- }
- else
- {
- nextToken = null;
- shingleBufferPosition = 0;
- }
- }
- }
-
- private int numFillerTokensToInsert;
- private AttributeSource.State currentToken;
- private bool hasCurrentToken;
-
- private ITermAttribute termAtt;
- private IOffsetAttribute offsetAtt;
- private IPositionIncrementAttribute posIncrAtt;
- private ITypeAttribute typeAtt;
-
- /*
- * Get the next token from the input stream and push it on the token buffer.
- * If we encounter a token with position increment > 1, we put filler tokens
- * on the token buffer.
- *
- * Returns null when the end of the input stream is reached.
- * @return the next token, or null if at end of input stream
- * @throws IOException if the input stream has a problem
- */
- private bool GetNextToken()
- {
-
- while (true)
- {
- if (numFillerTokensToInsert > 0)
- {
- if (currentToken == null)
- {
- currentToken = CaptureState();
- }
- else
- {
- RestoreState(currentToken);
- }
- numFillerTokensToInsert--;
- // A filler token occupies no space
- offsetAtt.SetOffset(offsetAtt.StartOffset, offsetAtt.StartOffset);
- termAtt.SetTermBuffer(FILLER_TOKEN, 0, FILLER_TOKEN.Length);
- return true;
- }
-
- if (hasCurrentToken)
- {
- if (currentToken != null)
- {
- RestoreState(currentToken);
- currentToken = null;
- }
- hasCurrentToken = false;
- return true;
- }
-
- if (!input.IncrementToken()) return false;
- hasCurrentToken = true;
-
- if (posIncrAtt.PositionIncrement > 1)
- {
- numFillerTokensToInsert = posIncrAtt.PositionIncrement - 1;
- }
- }
- }
-
- /*
- * Fill the output buffer with new shingles.
- *
- * @throws IOException if there's a problem getting the next token
- */
- private bool FillShingleBuffer()
- {
- bool addedToken = false;
- /*
- * Try to fill the shingle buffer.
- */
- do
- {
- if (GetNextToken())
- {
- shingleBuf.AddLast(CaptureState());
- if (shingleBuf.Count > maxShingleSize)
- {
- shingleBuf.RemoveFirst();
- }
- addedToken = true;
- }
- else
- {
- break;
- }
- } while (shingleBuf.Count < maxShingleSize);
-
- if (shingleBuf.Count == 0)
- {
- return false;
- }
-
- /*
- * If no new token could be added to the shingle buffer, we have reached
- * the end of the input stream and have to discard the least recent token.
- */
- if (!addedToken)
- {
- shingleBuf.RemoveFirst();
- }
-
- if (shingleBuf.Count == 0)
- {
- return false;
- }
-
- ClearShingles();
-
- endOffsets = new int[shingleBuf.Count];
- // Set all offsets to 0
- endOffsets.Initialize();
-
- int i = 0;
- for (IEnumerator it = shingleBuf.GetEnumerator(); it.MoveNext(); )
- {
- RestoreState(it.Current);
- for (int j = i; j < shingles.Length; j++)
- {
- if (shingles[j].Length != 0)
- {
- shingles[j].Append(TOKEN_SEPARATOR);
- }
- shingles[j].Append(termAtt.TermBuffer().Take(termAtt.TermLength()).ToArray());
- }
-
- endOffsets[i] = offsetAtt.EndOffset;
- i++;
- }
-
- return true;
- }
-
- public override void Reset()
- {
- base.Reset();
- nextToken = null;
- shingleBufferPosition = 0;
- shingleBuf.Clear();
- numFillerTokensToInsert = 0;
- currentToken = null;
- hasCurrentToken = false;
- }
- }
-}
\ No newline at end of file
diff --git a/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleMatrixFilter.cs b/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleMatrixFilter.cs
deleted file mode 100644
index 0b242e5e78..0000000000
--- a/external/Lucene.Net/src/contrib/Analyzers/Shingle/ShingleMatrixFilter.cs
+++ /dev/null
@@ -1,638 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Lucene.Net.Analysis.Miscellaneous;
-using Lucene.Net.Analysis.Shingle.Codec;
-using Lucene.Net.Analysis.Shingle.Matrix;
-using Lucene.Net.Analysis.Tokenattributes;
-using Lucene.Net.Support;
-
-namespace Lucene.Net.Analysis.Shingle
-{
- ///
- ///
A ShingleMatrixFilter constructs shingles (token n-grams) from a token stream.
- /// In other words, it creates combinations of tokens as a single token.
- ///
- ///
For example, the sentence "please divide this sentence into shingles"
- /// might be tokenized into shingles "please divide", "divide this",
- /// "this sentence", "sentence into", and "into shingles".
- ///
- ///
Using a shingle filter at index and query time can in some instances
- /// be used to replace phrase queries, especially them with 0 slop.
- ///
- ///
Without a spacer character
- /// it can be used to handle composition and decomposition of words
- /// such as searching for "multi dimensional" instead of "multidimensional".
- /// It is a rather common human problem at query time
- /// in several languages, notably the northern Germanic branch.
- ///
- ///
Shingles are amongst many things also known to solve problems
- /// in spell checking, language detection and document clustering.
- ///
- ///
This filter is backed by a three dimensional column oriented matrix
- /// used to create permutations of the second dimension, the rows,
- /// and leaves the third, the z-axis, for for multi token synonyms.
- ///
- ///
In order to use this filter you need to define a way of positioning
- /// the input stream tokens in the matrix. This is done using a
- /// ShingleMatrixFilter.TokenSettingsCodec.
- /// There are three simple implementations for demonstrational purposes,
- /// see ShingleMatrixFilter.OneDimensionalNonWeightedTokenSettingsCodec,
- /// ShingleMatrixFilter.TwoDimensionalNonWeightedSynonymTokenSettingsCodec
- /// and ShingleMatrixFilter.SimpleThreeDimensionalTokenSettingsCodec.
This implementation can be rather heap demanding
- /// if (maximum shingle size - minimum shingle size) is a great number and the stream contains many columns,
- /// or if each column contains a great number of rows.
- ///
- ///
The problem is that in order avoid producing duplicates
- /// the filter needs to keep track of any shingle already produced and returned to the consumer.
- ///
- ///
There is a bit of resource management to handle this
- /// but it would of course be much better if the filter was written
- /// so it never created the same shingle more than once in the first place.
- ///
- ///
The filter also has basic support for calculating weights for the shingles
- /// based on the weights of the tokens from the input stream, output shingle size, etc.
- /// See CalculateShingleWeight.
- ///
- /// NOTE: This filter might not behave correctly if used with custom Attributes, i.e. Attributes other than
- /// the ones located in org.apache.lucene.analysis.tokenattributes.
- ///
- public sealed class ShingleMatrixFilter : TokenStream
- {
- public static Char DefaultSpacerCharacter = '_';
- public static TokenSettingsCodec DefaultSettingsCodec = new OneDimensionalNonWeightedTokenSettingsCodec();
- public static bool IgnoringSinglePrefixOrSuffixShingleByDefault;
-
- private readonly IFlagsAttribute _flagsAtt;
- private readonly IFlagsAttribute _inFlagsAtt;
-
- private readonly IOffsetAttribute _inOffsetAtt;
- private readonly IPayloadAttribute _inPayloadAtt;
- private readonly IPositionIncrementAttribute _inPosIncrAtt;
- private readonly ITermAttribute _inTermAtt;
- private readonly ITypeAttribute _inTypeAtt;
- private readonly TokenStream _input;
- private readonly IOffsetAttribute _offsetAtt;
- private readonly IPayloadAttribute _payloadAtt;
- private readonly IPositionIncrementAttribute _posIncrAtt;
- private readonly Token _requestNextToken = new Token();
- private readonly Token _reusableToken = new Token();
- private readonly TokenSettingsCodec _settingsCodec;
-
- ///
- /// A set containing shingles that has been the result of a call to Next(Token),
- /// used to avoid producing the same shingle more than once.
- ///
- ///
- /// NOTE: The Java List implementation uses a different equality comparison scheme
- /// than .NET's Generic List. So We have to use a custom IEqualityComparer implementation
- /// to get the same behaviour.
- ///
- ///
- private readonly HashSet> _shinglesSeen =
- new HashSet>();
-
- private readonly ITermAttribute _termAtt;
- private readonly ITypeAttribute _typeAtt;
- private List _currentPermuationTokens;
-
- // Index to what row a token in currentShingleTokens represents
- private List _currentPermutationRows;
-
- private int _currentPermutationTokensStartOffset;
- private int _currentShingleLength;
- private MatrixPermutationIterator _permutations;
- private Token _readColumnBuf;
-
-
- ///
- /// Creates a shingle filter based on a user defined matrix.
- ///
- /// The filter /will/ delete columns from the input matrix! You will not be able to reset the filter if you used this constructor.
- /// todo: don't touch the matrix! use a bool, set the input stream to null or something, and keep track of where in the matrix we are at.
- ///
- ///
- /// the input based for creating shingles. Does not need to contain any information until ShingleMatrixFilter.IncrementToken() is called the first time.
- /// minimum number of tokens in any shingle.
- /// maximum number of tokens in any shingle.
- /// character to use between texts of the token parts in a shingle. null for none.
- /// if true, shingles that only contains permutation of the first of the last column will not be produced as shingles. Useful when adding boundary marker tokens such as '^' and '$'.
- /// codec used to read input token weight and matrix positioning.
- public ShingleMatrixFilter(Matrix.Matrix matrix, int minimumShingleSize, int maximumShingleSize, Char spacerCharacter, bool ignoringSinglePrefixOrSuffixShingle, TokenSettingsCodec settingsCodec)
- {
- Matrix = matrix;
- MinimumShingleSize = minimumShingleSize;
- MaximumShingleSize = maximumShingleSize;
- SpacerCharacter = spacerCharacter;
- IsIgnoringSinglePrefixOrSuffixShingle = ignoringSinglePrefixOrSuffixShingle;
- _settingsCodec = settingsCodec;
-
- // ReSharper disable DoNotCallOverridableMethodsInConstructor
- _termAtt = AddAttribute();
- _posIncrAtt = AddAttribute();
- _payloadAtt = AddAttribute();
- _offsetAtt = AddAttribute();
- _typeAtt = AddAttribute();
- _flagsAtt = AddAttribute();
- // ReSharper restore DoNotCallOverridableMethodsInConstructor
-
- // set the input to be an empty token stream, we already have the data.
- _input = new EmptyTokenStream();
-
- _inTermAtt = _input.AddAttribute();
- _inPosIncrAtt = _input.AddAttribute();
- _inPayloadAtt = _input.AddAttribute();
- _inOffsetAtt = _input.AddAttribute();
- _inTypeAtt = _input.AddAttribute();
- _inFlagsAtt = _input.AddAttribute();
- }
-
- ///
- /// Creates a shingle filter using default settings.
- ///
- /// See ShingleMatrixFilter.DefaultSpacerCharacter,
- /// ShingleMatrixFilter.IgnoringSinglePrefixOrSuffixShingleByDefault,
- /// and ShingleMatrixFilter.DefaultSettingsCodec
- ///
- /// stream from which to construct the matrix
- /// minimum number of tokens in any shingle.
- /// maximum number of tokens in any shingle.
- public ShingleMatrixFilter(TokenStream input, int minimumShingleSize, int maximumShingleSize)
- : this(input, minimumShingleSize, maximumShingleSize, DefaultSpacerCharacter) { }
-
- ///
- /// Creates a shingle filter using default settings.
- ///
- /// See IgnoringSinglePrefixOrSuffixShingleByDefault, and DefaultSettingsCodec
- ///
- /// stream from which to construct the matrix
- /// minimum number of tokens in any shingle.
- /// maximum number of tokens in any shingle.
- /// character to use between texts of the token parts in a shingle. null for none.
- public ShingleMatrixFilter(TokenStream input, int minimumShingleSize, int maximumShingleSize, Char? spacerCharacter)
- : this( input, minimumShingleSize, maximumShingleSize, spacerCharacter, IgnoringSinglePrefixOrSuffixShingleByDefault) { }
-
- ///
- /// Creates a shingle filter using the default .
- ///
- /// See DefaultSettingsCodec
- ///
- /// stream from which to construct the matrix
- /// minimum number of tokens in any shingle.
- /// maximum number of tokens in any shingle.
- /// character to use between texts of the token parts in a shingle. null for none.
- /// if true, shingles that only contains permutation of the first of the last column will not be produced as shingles. Useful when adding boundary marker tokens such as '^' and '$'.
- public ShingleMatrixFilter(TokenStream input, int minimumShingleSize, int maximumShingleSize, Char? spacerCharacter, bool ignoringSinglePrefixOrSuffixShingle)
- : this(input, minimumShingleSize, maximumShingleSize, spacerCharacter, ignoringSinglePrefixOrSuffixShingle, DefaultSettingsCodec) { }
-
- ///
- /// Creates a shingle filter with ad hoc parameter settings.
- ///
- /// stream from which to construct the matrix
- /// minimum number of tokens in any shingle.
- /// maximum number of tokens in any shingle.
- /// character to use between texts of the token parts in a shingle. null for none.
- /// if true, shingles that only contains permutation of the first of the last column will not be produced as shingles. Useful when adding boundary marker tokens such as '^' and '$'.
- /// codec used to read input token weight and matrix positioning.
- public ShingleMatrixFilter(TokenStream input, int minimumShingleSize, int maximumShingleSize, Char? spacerCharacter, bool ignoringSinglePrefixOrSuffixShingle, TokenSettingsCodec settingsCodec)
- {
- _input = input;
- MinimumShingleSize = minimumShingleSize;
- MaximumShingleSize = maximumShingleSize;
- SpacerCharacter = spacerCharacter;
- IsIgnoringSinglePrefixOrSuffixShingle = ignoringSinglePrefixOrSuffixShingle;
- _settingsCodec = settingsCodec;
-
- // ReSharper disable DoNotCallOverridableMethodsInConstructor
- _termAtt = AddAttribute();
- _posIncrAtt = AddAttribute();
- _payloadAtt = AddAttribute();
- _offsetAtt = AddAttribute();
- _typeAtt = AddAttribute();
- _flagsAtt = AddAttribute();
- // ReSharper restore DoNotCallOverridableMethodsInConstructor
-
- _inTermAtt = input.AddAttribute();
- _inPosIncrAtt = input.AddAttribute();
- _inPayloadAtt = input.AddAttribute();
- _inOffsetAtt = input.AddAttribute();
- _inTypeAtt = input.AddAttribute();
- _inFlagsAtt = input.AddAttribute();
- }
-
- public int MinimumShingleSize { get; set; }
-
- public int MaximumShingleSize { get; set; }
-
- public Matrix.Matrix Matrix { get; set; }
-
- public Char? SpacerCharacter { get; set; }
-
- public bool IsIgnoringSinglePrefixOrSuffixShingle { get; set; }
-
- public override void Reset()
- {
- _permutations = null;
- _shinglesSeen.Clear();
- _input.Reset();
- }
-
- protected override void Dispose(bool disposing)
- {
- // Do nothing
- }
-
- public override sealed bool IncrementToken()
- {
- if (Matrix == null)
- {
- Matrix = new Matrix.Matrix();
-
- // fill matrix with maximumShingleSize columns
- while (Matrix.Columns.Count < MaximumShingleSize && ReadColumn())
- {
- // this loop looks ugly
- }
- }
-
- // This loop exists in order to avoid recursive calls to the next method
- // as the complexity of a large matrix
- // then would require a multi gigabyte sized stack.
- Token token;
- do
- {
- token = ProduceNextToken(_reusableToken);
- } while (token == _requestNextToken);
-
- if (token == null)
- return false;
-
- ClearAttributes();
-
- _termAtt.SetTermBuffer(token.TermBuffer(), 0, token.TermLength());
- _posIncrAtt.PositionIncrement = token.PositionIncrement;
- _flagsAtt.Flags = token.Flags;
- _offsetAtt.SetOffset(token.StartOffset, token.EndOffset);
- _typeAtt.Type = token.Type;
- _payloadAtt.Payload = token.Payload;
-
- return true;
- }
-
- private Token GetNextInputToken(Token token)
- {
- if (!_input.IncrementToken()) return null;
-
- token.SetTermBuffer(_inTermAtt.TermBuffer(), 0, _inTermAtt.TermLength());
- token.PositionIncrement = _inPosIncrAtt.PositionIncrement;
- token.Flags = _inFlagsAtt.Flags;
- token.SetOffset(_inOffsetAtt.StartOffset, _inOffsetAtt.EndOffset);
- token.Type = _inTypeAtt.Type;
- token.Payload = _inPayloadAtt.Payload;
- return token;
- }
-
- private Token GetNextToken(Token token)
- {
- if (!this.IncrementToken()) return null;
- token.SetTermBuffer(_termAtt.TermBuffer(), 0, _termAtt.TermLength());
- token.PositionIncrement = _posIncrAtt.PositionIncrement;
- token.Flags = _flagsAtt.Flags;
- token.SetOffset(_offsetAtt.StartOffset, _offsetAtt.EndOffset);
- token.Type = _typeAtt.Type;
- token.Payload = _payloadAtt.Payload;
- return token;
- }
-
- ///
- /// This method exists in order to avoid recursive calls to the method
- /// as the complexity of a fairly small matrix then easily would require
- /// a gigabyte sized stack per thread.
- ///
- ///
- /// null if exhausted, instance request_next_token if one more call is required for an answer,
- /// or instance parameter resuableToken.
- private Token ProduceNextToken(Token reusableToken)
- {
- if (_currentPermuationTokens != null)
- {
- _currentShingleLength++;
-
- if (_currentShingleLength + _currentPermutationTokensStartOffset <= _currentPermuationTokens.Count
- && _currentShingleLength <= MaximumShingleSize)
- {
- // it is possible to create at least one more shingle of the current matrix permutation
-
- if (IsIgnoringSinglePrefixOrSuffixShingle &&
- _currentShingleLength == 1 &&
- (_currentPermutationRows[_currentPermutationTokensStartOffset].Column.IsFirst || _currentPermutationRows[_currentPermutationTokensStartOffset].Column.IsLast))
- {
- return GetNextToken(reusableToken);
- }
-
- var termLength = 0;
-
- var shingle = new EquatableList();
-
- for (int i = 0; i < _currentShingleLength; i++)
- {
- var shingleToken = _currentPermuationTokens[i + _currentPermutationTokensStartOffset];
- termLength += shingleToken.TermLength();
- shingle.Add(shingleToken);
- }
- if (SpacerCharacter != null)
- termLength += _currentShingleLength - 1;
-
- // only produce shingles that not already has been created
- if (!_shinglesSeen.Add(shingle))
- return _requestNextToken;
-
- // shingle token factory
- var sb = new StringBuilder(termLength + 10); // paranormal ability to foresee the future. ;)
- foreach (var shingleToken in shingle)
- {
- if (SpacerCharacter != null && sb.Length > 0)
- sb.Append(SpacerCharacter);
-
- sb.Append(shingleToken.TermBuffer(), 0, shingleToken.TermLength());
- }
-
- reusableToken.SetTermBuffer(sb.ToString());
- UpdateToken(reusableToken, shingle, _currentPermutationTokensStartOffset, _currentPermutationRows,
- _currentPermuationTokens);
-
- return reusableToken;
- }
-
- // it is NOT possible to create one more shingles of the current matrix permutation
- if (_currentPermutationTokensStartOffset < _currentPermuationTokens.Count - 1)
- {
- // reset shingle size and move one step to the right in the current tokens permutation
- _currentPermutationTokensStartOffset++;
- _currentShingleLength = MinimumShingleSize - 1;
- return _requestNextToken;
- }
-
-
- // todo does this ever occur?
- if (_permutations == null)
- return null;
-
- if (!_permutations.HasNext())
- {
- // load more data (if available) to the matrix
-
- // don't really care, we just read it.
- if (_input != null)
- ReadColumn();
-
- // get rid of resources
-
- // delete the first column in the matrix
- var deletedColumn = Matrix.Columns[0];
- Matrix.Columns.RemoveAt(0);
-
- // remove all shingles seen that include any of the tokens from the deleted column.
- var deletedColumnTokens = deletedColumn.Rows.SelectMany(row => row.Tokens).ToList();
-
- // I'm a little concerned about this part of the code, because the unit tests currently
- // don't cover this scenario. (I put a break point here, and ran the unit tests in debug mode
- // and this code block was never hit... I also changed it significatly from the Java version
- // to use RemoveWhere and LINQ.
- //
- // TODO: Write a unit test to cover this and make sure this is a good port! -thoward
-
- // linq version
- _shinglesSeen.RemoveWhere(
- shingle => (shingle.Find(deletedColumnTokens.Contains) != default(Token)));
-
- //// initial conversion
- //var shinglesSeenIterator = _shinglesSeen.ToList();
- //foreach (var shingle in shinglesSeenIterator)
- //{
- // foreach (var deletedColumnToken in deletedColumnTokens)
- // {
- // if (shingle.Contains(deletedColumnToken))
- // {
- // _shinglesSeen.Remove(shingle);
- // break;
- // }
- // }
- //}
-
- // exhausted
- if (Matrix.Columns.Count < MinimumShingleSize)
- return null;
-
- // create permutations of the matrix it now looks
- _permutations = Matrix.PermutationIterator();
- }
-
- NextTokensPermutation();
- return _requestNextToken;
- }
-
- if (_permutations == null)
- _permutations = Matrix.PermutationIterator();
-
- if (!_permutations.HasNext())
- return null;
-
- NextTokensPermutation();
-
- return _requestNextToken;
- }
-
- ///