+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.
+
+
+
+
mono_gc_out_of_memory
+
+
Prototype: mono_gc_out_of_memory
+
+
mono_gc_start_world
@@ -497,6 +524,13 @@ mono_loader_lock (void)
Prototype: mono_gc_alloc_fixed
+
+
+
mono_gc_enable_events
+
+
Prototype: mono_gc_enable_events
+
+
mono_gc_free_fixed
diff --git a/docs/deploy/mono-api-jit.html b/docs/deploy/mono-api-jit.html
index f8f86ac094..b26123c17b 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/external/Lucene.Net/.gitignore b/external/Lucene.Net/.gitignore
new file mode 100644
index 0000000000..cb595e7e16
--- /dev/null
+++ b/external/Lucene.Net/.gitignore
@@ -0,0 +1,17 @@
+# 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
new file mode 100644
index 0000000000..8b45b38157
--- /dev/null
+++ b/external/Lucene.Net/ACKNOWLEDGEMENTS.txt
@@ -0,0 +1,10 @@
+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
new file mode 100644
index 0000000000..74cbf29a6f
--- /dev/null
+++ b/external/Lucene.Net/CHANGES.txt.REMOVED.git-id
@@ -0,0 +1 @@
+c0daf5afda647e912fcb3fee849f83bd5df94c39
\ No newline at end of file
diff --git a/external/Lucene.Net/LICENSE.txt b/external/Lucene.Net/LICENSE.txt
new file mode 100644
index 0000000000..8669b7c1d1
--- /dev/null
+++ b/external/Lucene.Net/LICENSE.txt
@@ -0,0 +1,271 @@
+
+ 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
new file mode 100644
index 0000000000..528c8a372f
--- /dev/null
+++ b/external/Lucene.Net/NOTICE.txt
@@ -0,0 +1,6 @@
+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
new file mode 100644
index 0000000000..17cbb15e1c
--- /dev/null
+++ b/external/Lucene.Net/README.txt
@@ -0,0 +1,61 @@
+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
new file mode 100644
index 0000000000..9c5a761f95
Binary files /dev/null and b/external/Lucene.Net/branding/font/AllerDisplay.ttf 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
new file mode 100644
index 0000000000..64947767af
--- /dev/null
+++ b/external/Lucene.Net/branding/font/Aller_Rg.ttf.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..f47fd3c0ee
--- /dev/null
+++ b/external/Lucene.Net/branding/font/Aller_Std_Family.zip.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..97970fb326
--- /dev/null
+++ b/external/Lucene.Net/branding/font/GOTHIC.TTF.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..3f0f9b99de
Binary files /dev/null and b/external/Lucene.Net/branding/logo/favicon.ico 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
new file mode 100644
index 0000000000..8a06f31b38
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-color-variations.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..475c5b7790
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-L.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..48df616250
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-L.png differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-L.svg b/external/Lucene.Net/branding/logo/lucene-net-L.svg
new file mode 100644
index 0000000000..b4cb557bef
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-L.svg
@@ -0,0 +1,147 @@
+
+
+
+
+
+
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
new file mode 100644
index 0000000000..fb4a3e0119
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-badge-120x36.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..66e6ba3905
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-badge-120x36.png 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
new file mode 100644
index 0000000000..023caa454e
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-badge-180x36.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..a2de7d89d2
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-badge-180x36.png 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
new file mode 100644
index 0000000000..b1284e1110
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-badge-80x100.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..b0a3c112aa
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-badge-80x100.png differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-color.png b/external/Lucene.Net/branding/logo/lucene-net-color.png
new file mode 100644
index 0000000000..d6106f90a7
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-color.png differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-color.svg b/external/Lucene.Net/branding/logo/lucene-net-color.svg
new file mode 100644
index 0000000000..9dcbc0a9b8
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-color.svg
@@ -0,0 +1,262 @@
+
+
+
+
+
+
diff --git a/external/Lucene.Net/branding/logo/lucene-net-grayscale.png b/external/Lucene.Net/branding/logo/lucene-net-grayscale.png
new file mode 100644
index 0000000000..c2395afd10
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-grayscale.png differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-grayscale.svg b/external/Lucene.Net/branding/logo/lucene-net-grayscale.svg
new file mode 100644
index 0000000000..bbecb0bc33
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-grayscale.svg
@@ -0,0 +1,169 @@
+
+
+
+
+
+
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon-128.png b/external/Lucene.Net/branding/logo/lucene-net-icon-128.png
new file mode 100644
index 0000000000..e010c0cf05
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-128.png 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
new file mode 100644
index 0000000000..85cbdee401
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-128x128.png 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
new file mode 100644
index 0000000000..1b1663fcdd
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-256.png 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
new file mode 100644
index 0000000000..017c7d1b8e
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-256x256.png 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
new file mode 100644
index 0000000000..6c6607be4e
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-32.png 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
new file mode 100644
index 0000000000..227b7cea40
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-32x32.png 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
new file mode 100644
index 0000000000..b560874964
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-icon-512.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..5f2c671a40
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-512x256.png 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
new file mode 100644
index 0000000000..d14d5ae905
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-512x512.png 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
new file mode 100644
index 0000000000..b2479eb9b7
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-64.png 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
new file mode 100644
index 0000000000..19abadff1d
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon-64x64.png differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-icon.ico b/external/Lucene.Net/branding/logo/lucene-net-icon.ico
new file mode 100644
index 0000000000..3f0f9b99de
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-icon.ico 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
new file mode 100644
index 0000000000..208f376492
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-not-outlined.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..f69aecfb85
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-reverse-color.png 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
new file mode 100644
index 0000000000..3883781170
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-reverse-color.svg
@@ -0,0 +1,263 @@
+
+
+
+
+
+
diff --git a/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.png b/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.png
new file mode 100644
index 0000000000..4507878a60
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.png 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
new file mode 100644
index 0000000000..d569a6c95a
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-reverse-grayscale.svg
@@ -0,0 +1,173 @@
+
+
+
+
+
+
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
new file mode 100644
index 0000000000..796f77b4c5
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-words.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..4fd7899a38
Binary files /dev/null and b/external/Lucene.Net/branding/logo/lucene-net-words.png differ
diff --git a/external/Lucene.Net/branding/logo/lucene-net-words.svg b/external/Lucene.Net/branding/logo/lucene-net-words.svg
new file mode 100644
index 0000000000..54eae9388a
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net-words.svg
@@ -0,0 +1,166 @@
+
+
+
+
+
+
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
new file mode 100644
index 0000000000..1df9e2b674
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net.ai.REMOVED.git-id
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..faa7198a75
--- /dev/null
+++ b/external/Lucene.Net/branding/logo/lucene-net.psd.REMOVED.git-id
@@ -0,0 +1 @@
+0e9db3525f053dbca8434fbe4327682977be1be9
\ No newline at end of file
diff --git a/external/Lucene.Net/build.cmd b/external/Lucene.Net/build.cmd
new file mode 100644
index 0000000000..c6b928455f
--- /dev/null
+++ b/external/Lucene.Net/build.cmd
@@ -0,0 +1,27 @@
+@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
new file mode 100644
index 0000000000..997b5b962e
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/All/Lucene.Net.nuspec
@@ -0,0 +1,41 @@
+
+
+
+
+ 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
new file mode 100644
index 0000000000..08e262d600
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/All/document.targets
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..f9ebcc3ca1
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/All/project.targets
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..d97452ac46
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Analyzers/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..85ec04dbc8
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Analyzers/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..781abea9d2
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Contrib-Core/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..7cd602f2bd
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Contrib-Core/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..483abb48d3
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Contrib/Lucene.Net.Contrib.nuspec
@@ -0,0 +1,62 @@
+
+
+
+
+ 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
new file mode 100644
index 0000000000..962820c39e
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Contrib/document.targets
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..e8d3a25f57
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Contrib/project.targets
@@ -0,0 +1,72 @@
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..21920885dc
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Core/Lucene.Net.Core.nuspec
@@ -0,0 +1,42 @@
+
+
+
+
+ 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
new file mode 100644
index 0000000000..797392e67c
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Core/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..f7ab1e1dd3
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Core/project.targets
@@ -0,0 +1,75 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..e00d9f1f98
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/CustomDictionary.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..2793a9c483
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/FastVectorHighlighter/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..778532912c
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/FastVectorHighlighter/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..8e48c12c4f
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Highlighter/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..4802ee80a1
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Highlighter/project.targets
@@ -0,0 +1,65 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..713ffce78c
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Memory/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..8c302e9504
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Memory/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..8209b4faf9
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Queries/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..f16fd8cb57
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Queries/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..59d721c32e
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Regex/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..7ce0e62b56
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Regex/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..115277b876
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/SimpleFacetedSearch/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..2d7c16f362
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/SimpleFacetedSearch/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..9bbb52ee05
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Snowball/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..f13e277189
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Snowball/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..21a3ee9ae1
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Spatial.NTS/Lucene.Net.Spatial.NTS.nuspec
@@ -0,0 +1,43 @@
+
+
+
+
+ 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
new file mode 100644
index 0000000000..510591d451
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Spatial.NTS/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..b73ba78cc0
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Spatial.NTS/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..bc6d4f057d
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Spatial/Lucene.Net.Spatial.nuspec
@@ -0,0 +1,43 @@
+
+
+
+
+ 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
new file mode 100644
index 0000000000..da98b93257
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Spatial/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..63b40b3cc4
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/Spatial/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..1dff4fd995
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/SpellChecker/document.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..ebff0d4566
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/SpellChecker/project.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..b6010b9879
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/build.cmd
@@ -0,0 +1,25 @@
+@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
new file mode 100644
index 0000000000..6edacfdd97
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/build.sh
@@ -0,0 +1,47 @@
+#!/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
new file mode 100644
index 0000000000..c05e0924b7
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/build.targets
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..967057d413
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/docs.shfbproj
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(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
new file mode 100644
index 0000000000..45ccca168f
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/dot-net-tools.targets
@@ -0,0 +1,192 @@
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..a46447ff50
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/mono-tools.targets
@@ -0,0 +1,46 @@
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..6b237a7388
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/rules.fxcop
@@ -0,0 +1,143 @@
+
+
+
+
+ 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
new file mode 100644
index 0000000000..7f0da4aae7
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/rules.stylecop
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+ \.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
new file mode 100644
index 0000000000..c27a3b6280
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/template.shfbproj
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..501f9124c3
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/user.targets
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..940fc35a55
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/validate-tool-chain.ps1
@@ -0,0 +1,304 @@
+#
+# 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
new file mode 100644
index 0000000000..2f8ba49427
--- /dev/null
+++ b/external/Lucene.Net/build/scripts/version.targets
@@ -0,0 +1,25 @@
+
+
+
+
+
+ 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
new file mode 100644
index 0000000000..97f5cab645
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.All.sln
@@ -0,0 +1,186 @@
+
+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
new file mode 100644
index 0000000000..e14a31c2b0
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.Analyzers.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..4ee3a096ba
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.Core.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..43a615b5d0
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.FastVectorHighlighter.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..0d65fdbcbd
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.Highlighter.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..6c6dc8c663
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.Memory.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..f7ecdced01
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.Queries.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..fd568aca29
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.Regex.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..0cb2617157
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.SimpleFacetedSearch.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..5cc016ffbf
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.Snowball.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..31d28ebb65
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.Spatial.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..48fe86f1da
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.SpellChecker.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..aa6bdd4b1e
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/contrib/Contrib.WordNet.sln
@@ -0,0 +1,76 @@
+
+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
new file mode 100644
index 0000000000..638c6add69
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/core/Lucene.Net.Core.sln
@@ -0,0 +1,46 @@
+
+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
new file mode 100644
index 0000000000..f8f0e92331
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/demo/Lucene.Net.Demo.sln
@@ -0,0 +1,96 @@
+
+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
new file mode 100644
index 0000000000..f9ce4a2559
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.All.Test.sln
@@ -0,0 +1,306 @@
+
+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
new file mode 100644
index 0000000000..6a9100ad75
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.Analyzers.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..97e682ec1c
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.Core.Test.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..672811a9af
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.FastVectorHighlighter.Test.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..9d600af616
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.Highlighter.Test.sln
@@ -0,0 +1,106 @@
+
+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
new file mode 100644
index 0000000000..f41127edd1
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.Memory.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..19f835b0a6
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.Queries.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..6ec91f269b
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.Regex.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..9cceee7f4a
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.SimpleFacetedSearch.Test.sln
@@ -0,0 +1,110 @@
+
+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
new file mode 100644
index 0000000000..38c588eaba
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.Snowball.Test.sln
@@ -0,0 +1,85 @@
+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
new file mode 100644
index 0000000000..5d641cd994
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.Spatial.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..f93e73cac9
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Contrib.SpellChecker.Test.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..317f82543d
--- /dev/null
+++ b/external/Lucene.Net/build/vs2010/test/Lucene.Net.Test.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..9a707ebcdd
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.All.sln
@@ -0,0 +1,196 @@
+
+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
new file mode 100644
index 0000000000..e44e692372
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.Analyzers.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..15e09d6c2a
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.Core.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..21ad549b0b
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.FastVectorHighlighter.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..b20a7cb5b5
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.Highlighter.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..5a8ae6f1db
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.Memory.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..dc468f7496
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.Queries.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..e997043279
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.Regex.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..204498650b
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.SimpleFacetedSearch.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..2a908c47e8
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.Snowball.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..0c50e46fd1
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.Spatial.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..0117834ded
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.SpellChecker.sln
@@ -0,0 +1,56 @@
+
+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
new file mode 100644
index 0000000000..18a7a6bbc5
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/contrib/Contrib.WordNet.sln
@@ -0,0 +1,76 @@
+
+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
new file mode 100644
index 0000000000..53a0b3fe5f
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/core/Lucene.Net.Core.sln
@@ -0,0 +1,46 @@
+
+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
new file mode 100644
index 0000000000..2d5da0bf3a
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/demo/Lucene.Net.Demo.sln
@@ -0,0 +1,96 @@
+
+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
new file mode 100644
index 0000000000..d7e30b6664
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.All.Test.sln
@@ -0,0 +1,296 @@
+
+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
new file mode 100644
index 0000000000..63647e9cf7
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.Analyzers.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..dde4c9fa6e
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.Core.Test.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..641128f428
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.FastVectorHighlighter.Test.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..a1678df2ad
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.Highlighter.Test.sln
@@ -0,0 +1,106 @@
+
+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
new file mode 100644
index 0000000000..2e64ca363a
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.Memory.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..19ee67340e
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.Queries.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..b6b6739d86
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.Regex.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..cfdbb9f72e
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.SimpleFacetedSearch.Test.sln
@@ -0,0 +1,110 @@
+
+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
new file mode 100644
index 0000000000..03051a20ea
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.Snowball.Test.sln
@@ -0,0 +1,86 @@
+
+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
new file mode 100644
index 0000000000..092ed29ee6
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.Spatial.Test.sln
@@ -0,0 +1,76 @@
+
+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
new file mode 100644
index 0000000000..058ded92ab
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Contrib.SpellChecker.Test.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..ecc90068d3
--- /dev/null
+++ b/external/Lucene.Net/build/vs2012/test/Lucene.Net.Test.sln
@@ -0,0 +1,66 @@
+
+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
new file mode 100644
index 0000000000..3e17665ce6
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/Gallio License.txt
@@ -0,0 +1,14 @@
+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
new file mode 100644
index 0000000000..0218f75e4f
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/CciMetadata.License.txt
@@ -0,0 +1,31 @@
+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
new file mode 100644
index 0000000000..46822d4507
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Cecil.FlowAnalysis.license.html
@@ -0,0 +1,37 @@
+
+
+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
new file mode 100644
index 0000000000..720daab2c4
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/ICSharpCode.TextEditor.License.txt
@@ -0,0 +1,458 @@
+ 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
new file mode 100644
index 0000000000..c1429b1a14
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Mono.Cecil.license.html
@@ -0,0 +1,36 @@
+
+
+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
new file mode 100644
index 0000000000..115f890704
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/Mono.GetOptions.license.html
@@ -0,0 +1,38 @@
+
+
+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
new file mode 100644
index 0000000000..290b9a43f5
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/WeifenLuo.WinFormsUI.Docking.License.txt
@@ -0,0 +1,9 @@
+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
new file mode 100644
index 0000000000..be37aeab27
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/licenses/db4o.license.html
@@ -0,0 +1,384 @@
+
+
+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.
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.html-condensed.xsl b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.html-condensed.xsl
new file mode 100644
index 0000000000..7b3fc92b87
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.html-condensed.xsl
@@ -0,0 +1,21 @@
+
+
+
+
+
+ /css/
+ /js/
+ /img/
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.html.xsl b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.html.xsl
new file mode 100644
index 0000000000..8276d02313
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.html.xsl
@@ -0,0 +1,21 @@
+
+
+
+
+
+ /css/
+ /js/
+ /img/
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt-common.xsl b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt-common.xsl
new file mode 100644
index 0000000000..bd92cd5bf4
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt-common.xsl
@@ -0,0 +1,228 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ * Results:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [
+
+
+
+
+
+
+
+
+ ]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Attachment:
+
+ ]
+
+
+
+
+
+
+
+
+ * Annotations:
+
+
+
+
+
+
+
+
+
+
+ [
+
+ ]
+
+
+
+
+
+
+
+
+ Location:
+
+
+
+
+
+
+
+
+
+
+
+ Reference:
+
+
+
+
+
+
+
+
+
+
+
+ Details:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ * Diagnostic Log:
+
+
+
+
+
+
+
+
+ [
+
+ ]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt-condensed.xsl b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt-condensed.xsl
new file mode 100644
index 0000000000..264da711c5
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt-condensed.xsl
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt.xsl b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt.xsl
new file mode 100644
index 0000000000..01b18b2c40
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.txt.xsl
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.xhtml-condensed.xsl b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.xhtml-condensed.xsl
new file mode 100644
index 0000000000..287ec84cfe
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.xhtml-condensed.xsl
@@ -0,0 +1,22 @@
+
+
+
+
+
+ /css/
+ /js/
+ /img/
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.xhtml.xsl b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.xhtml.xsl
new file mode 100644
index 0000000000..7616969757
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/Resources/xsl/Gallio-Report.xhtml.xsl
@@ -0,0 +1,22 @@
+
+
+
+
+
+ /css/
+ /js/
+ /img/
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Gallio.TDNetRunner.UI.plugin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Gallio.TDNetRunner.UI.plugin
new file mode 100644
index 0000000000..c9d7529ab6
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Gallio.TDNetRunner.UI.plugin
@@ -0,0 +1,57 @@
+
+
+
+ TestDriven.Net Runner UI
+ 3.2.0.0
+ TestDriven.Net runner UI components.
+ plugin://Gallio.TDNetRunner/Resources/TestDriven.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TestDriven.Net
+ plugin://Gallio.TDNetRunner/Resources/TestDriven.ico
+
+
+
+
+
+ TestDriven.Net/Frameworks
+ plugin://Gallio.TDNetRunner/Resources/TestDriven.ico
+ Machine
+
+
+
+
+
+ TestDriven.Net/Reports
+ plugin://Gallio.TDNetRunner/Resources/TestDriven.ico
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Gallio.TDNetRunner.plugin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Gallio.TDNetRunner.plugin
new file mode 100644
index 0000000000..ec61ed3722
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Gallio.TDNetRunner.plugin
@@ -0,0 +1,46 @@
+
+
+
+ TestDriven.Net Runner
+ 3.2.0.0
+ Enables TestDriven.Net to run tests using Gallio.
+ plugin://Gallio.TDNetRunner/Resources/TestDriven.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Resources/TestDriven.ico b/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Resources/TestDriven.ico
new file mode 100644
index 0000000000..5881f91036
Binary files /dev/null and b/external/Lucene.Net/lib/Gallio.3.2.750/tools/TDNet/Resources/TestDriven.ico differ
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/Gallio.VisualStudio.Shell.plugin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/Gallio.VisualStudio.Shell.plugin
new file mode 100644
index 0000000000..c55952483c
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/Gallio.VisualStudio.Shell.plugin
@@ -0,0 +1,43 @@
+
+
+
+ Visual Studio Integration Shell
+ 3.2.0.0
+ Provides a framework for hosting Gallio plugins within Visual Studio.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Shell100.addin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Shell100.addin
new file mode 100644
index 0000000000..c31c71a674
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Shell100.addin
@@ -0,0 +1,16 @@
+
+
+
+ Microsoft Visual Studio
+ 10.0
+
+
+ Gallio
+ Gallio integration for Visual Studio
+ Gallio.VisualStudio.Shell100.dll
+ Gallio.VisualStudio.Shell.Core.ShellAddInHandler
+ 1
+ 0
+ 0
+
+
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Shell100.plugin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Shell100.plugin
new file mode 100644
index 0000000000..ec63d6ec06
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Shell100.plugin
@@ -0,0 +1,49 @@
+
+
+
+ Visual Studio 2010 Integration Shell
+ 3.2.0.0
+ Provides a framework for hosting Gallio plugins within Visual Studio 2010.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ v10.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Tip100.plugin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Tip100.plugin
new file mode 100644
index 0000000000..8c60f262f2
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v10.0/Gallio.VisualStudio.Tip100.plugin
@@ -0,0 +1,51 @@
+
+
+
+ Visual Studio 2010 Test Runner
+ 3.2.0.0
+ Enables Visual Studio 2010 to run Gallio tests via the Test View.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ v10.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Shell90.addin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Shell90.addin
new file mode 100644
index 0000000000..2ba973ab37
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Shell90.addin
@@ -0,0 +1,16 @@
+
+
+
+ Microsoft Visual Studio
+ 9.0
+
+
+ Gallio
+ Gallio integration for Visual Studio
+ Gallio.VisualStudio.Shell90.dll
+ Gallio.VisualStudio.Shell.Core.ShellAddInHandler
+ 1
+ 0
+ 0
+
+
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Shell90.plugin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Shell90.plugin
new file mode 100644
index 0000000000..75e577ec1b
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Shell90.plugin
@@ -0,0 +1,49 @@
+
+
+
+ Visual Studio 2008 Integration Shell
+ 3.2.0.0
+ Provides a framework for hosting Gallio plugins within Visual Studio 2008.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ v9.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Tip90.plugin b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Tip90.plugin
new file mode 100644
index 0000000000..c9a6b6aad2
--- /dev/null
+++ b/external/Lucene.Net/lib/Gallio.3.2.750/tools/VisualStudio/v9.0/Gallio.VisualStudio.Tip90.plugin
@@ -0,0 +1,51 @@
+
+
+
+ Visual Studio 2008 Test Runner
+ 3.2.0.0
+ Enables Visual Studio 2008 to run Gallio tests via the Test View.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ v9.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/Lucene.Net.snk b/external/Lucene.Net/lib/Lucene.Net.snk
new file mode 100644
index 0000000000..f7f9ee5e03
Binary files /dev/null and b/external/Lucene.Net/lib/Lucene.Net.snk differ
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/Logo.ico b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/Logo.ico
new file mode 100644
index 0000000000..13c4ff9d5b
Binary files /dev/null and b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/Logo.ico differ
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/NUnitFitTests.html b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/NUnitFitTests.html
new file mode 100644
index 0000000000..ca5cd4ff70
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/NUnitFitTests.html
@@ -0,0 +1,277 @@
+
+
+
+
NUnit Acceptance Tests
+
+ 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.
+
+
Lets 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 lets 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 lets get it to work. Dont 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).
+
+
Lets 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. Lets 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
+
+Lets 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 weve just written we can see that the bank may be loosing money on every unsuccessful funds Transfer operation. Lets 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, weve made $300.00 out of a thin air (1999.com dj 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. Lets 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 Irne 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 NUnits 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 mans 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 its 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.
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/fit-license.txt b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/fit-license.txt
new file mode 100644
index 0000000000..d5bdfa2815
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/fit-license.txt
@@ -0,0 +1,342 @@
+
+
+ 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.
+
+
+ Copyright (C)
+
+ 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.
+
+ , 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.
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/license.txt b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/license.txt
new file mode 100644
index 0000000000..66a5ebf28b
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/license.txt
@@ -0,0 +1,15 @@
+Copyright 2002-2008 Charlie Poole
+Copyright 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov
+Copyright 2000-2002 Philip A. Craig
+
+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.
+
+Portions Copyright 2002-2008 Charlie Poole or Copyright 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright 2000-2002 Philip A. Craig
+
+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.
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/CoreExtensibility.sln b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/CoreExtensibility.sln
new file mode 100644
index 0000000000..6e5ae577da
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/CoreExtensibility.sln
@@ -0,0 +1,53 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Minimal", "Minimal\Minimal.csproj", "{EF428E5B-B3E7-4C2F-B005-98DE7D6E7CDB}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleFixtureExtension", "SampleFixtureExtension\SampleFixtureExtension.csproj", "{ED281A23-9579-4A70-B608-1B86DCDEB78C}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleFixtureExtensionTests", "SampleFixtureExtension\Tests\SampleFixtureExtensionTests.csproj", "{0DE6C90F-BB74-4BC8-887A-2222DB56D2EB}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleSuiteExtension", "SampleSuiteExtension\SampleSuiteExtension.csproj", "{0C4269EE-3266-45DD-9062-E356C067FBEF}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleSuiteExtensionTests", "SampleSuiteExtension\Tests\SampleSuiteExtensionTests.csproj", "{9F609A0D-FF7E-4F0C-B2DF-417EBC557CFF}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {EF428E5B-B3E7-4C2F-B005-98DE7D6E7CDB}.Debug.ActiveCfg = Debug|.NET
+ {EF428E5B-B3E7-4C2F-B005-98DE7D6E7CDB}.Debug.Build.0 = Debug|.NET
+ {EF428E5B-B3E7-4C2F-B005-98DE7D6E7CDB}.Release.ActiveCfg = Release|.NET
+ {EF428E5B-B3E7-4C2F-B005-98DE7D6E7CDB}.Release.Build.0 = Release|.NET
+ {ED281A23-9579-4A70-B608-1B86DCDEB78C}.Debug.ActiveCfg = Debug|.NET
+ {ED281A23-9579-4A70-B608-1B86DCDEB78C}.Debug.Build.0 = Debug|.NET
+ {ED281A23-9579-4A70-B608-1B86DCDEB78C}.Release.ActiveCfg = Release|.NET
+ {ED281A23-9579-4A70-B608-1B86DCDEB78C}.Release.Build.0 = Release|.NET
+ {0DE6C90F-BB74-4BC8-887A-2222DB56D2EB}.Debug.ActiveCfg = Debug|.NET
+ {0DE6C90F-BB74-4BC8-887A-2222DB56D2EB}.Debug.Build.0 = Debug|.NET
+ {0DE6C90F-BB74-4BC8-887A-2222DB56D2EB}.Release.ActiveCfg = Release|.NET
+ {0DE6C90F-BB74-4BC8-887A-2222DB56D2EB}.Release.Build.0 = Release|.NET
+ {0C4269EE-3266-45DD-9062-E356C067FBEF}.Debug.ActiveCfg = Debug|.NET
+ {0C4269EE-3266-45DD-9062-E356C067FBEF}.Debug.Build.0 = Debug|.NET
+ {0C4269EE-3266-45DD-9062-E356C067FBEF}.Release.ActiveCfg = Release|.NET
+ {0C4269EE-3266-45DD-9062-E356C067FBEF}.Release.Build.0 = Release|.NET
+ {9F609A0D-FF7E-4F0C-B2DF-417EBC557CFF}.Debug.ActiveCfg = Debug|.NET
+ {9F609A0D-FF7E-4F0C-B2DF-417EBC557CFF}.Debug.Build.0 = Debug|.NET
+ {9F609A0D-FF7E-4F0C-B2DF-417EBC557CFF}.Release.ActiveCfg = Release|.NET
+ {9F609A0D-FF7E-4F0C-B2DF-417EBC557CFF}.Release.Build.0 = Release|.NET
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.build b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.build
new file mode 100644
index 0000000000..f92d521ba4
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.build
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.cs
new file mode 100644
index 0000000000..17b4bdb5ef
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.cs
@@ -0,0 +1,36 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+using NUnit.Core.Extensibility;
+
+namespace NUnit.Samples.Extensibility
+{
+ ///
+ /// This is the smallest possible Addin, which does nothing
+ /// but is recognized by NUnit and listed in the Addins dialog.
+ ///
+ /// The Addin class is marked by the NUnitAddin attribute and
+ /// implements IAddin, as required. Optional property syntax
+ /// is used here to override the default name of the addin and
+ /// to provide a description. Both are displayed by NUnit in the
+ /// Addin Dialog.
+ ///
+ /// The addin doesn't actually install anything, but simply
+ /// returns false in its Install method.
+ ///
+ [NUnitAddin(Name="Minimal Addin", Description="This Addin doesn't do anything")]
+ public class Minimal : IAddin
+ {
+ #region IAddin Members
+ public bool Install(IExtensionHost host)
+ {
+ // TODO: Add Minimal.Install implementation
+ return true;
+ }
+ #endregion
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.csproj b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.csproj
new file mode 100644
index 0000000000..f6677e1322
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/Minimal.csproj
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/ReadMe.txt b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/ReadMe.txt
new file mode 100644
index 0000000000..901df80fbe
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/Minimal/ReadMe.txt
@@ -0,0 +1,27 @@
+Minimal Addin Example
+
+
+MinimalAddin Class
+
+This class represents the addin. It is marked by the NUnitAddinAttribute
+and implements the required IAddin interface. When called by NUnit to
+install itself, it simply returns false.
+
+Note on Building this Extension
+
+If you use the Visual Studio solution, the NUnit references in both
+included projects must be changed so that they refer to the copy of
+NUnit in which you want to install the extension. The post-build step
+for the SampleSuiteExtension project must be changed to copy the
+extension into the addins directory for your NUnit install.
+
+NOTE:
+
+The references to nunit.core and nunit.common in the
+SampleSuiteExtension project have their Copy Local property set to
+false, rather than the Visual Studio default of true. In developing
+extensions, it is essential there be no extra copies of these assemblies
+be created. Once the extension is complete, those who install it in
+binary form will not need to deal with this issue.
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/AssemblyInfo.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/AssemblyInfo.cs
new file mode 100644
index 0000000000..9f89a3282c
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/AssemblyInfo.cs
@@ -0,0 +1,58 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// 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("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//
+// 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 Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+// (*) If no key is specified, the assembly is not signed.
+// (*) KeyName refers to a key that has been installed in the Crypto Service
+// Provider (CSP) on your machine. KeyFile refers to a file which contains
+// a key.
+// (*) If the KeyFile and the KeyName values are both specified, the
+// following processing occurs:
+// (1) If the KeyName can be found in the CSP, that key is used.
+// (2) If the KeyName does not exist and the KeyFile does exist, the key
+// in the KeyFile is installed into the CSP and used.
+// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+// When specifying the KeyFile, the location of the KeyFile should be
+// relative to the project output directory which is
+// %Project Directory%\obj\. For example, if your KeyFile is
+// located in the project directory, you would specify the AssemblyKeyFile
+// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+// documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/ReadMe.txt b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/ReadMe.txt
new file mode 100644
index 0000000000..11fb204ccb
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/ReadMe.txt
@@ -0,0 +1,43 @@
+SampleSuiteExtension Example
+
+This is a minimal example of a SuiteBuilder extension. It extends
+NUnit.Core.TestSuite test suite and creates a fixture that runs every
+test starting with "SampleTest..." It packages both the core extension
+and the attribute used in the tests in the same assembly.
+
+SampleSuiteExtension Class
+
+This class derives from NUnit.Framework.TestSuite and represents the
+extended suite within NUnit. Because it inherits from TestSuite,
+rather than TestFixture, it has to construct its own fixture object and
+find its own tests. Everything is done in the constructor for simplicity.
+
+SampleSuiteExtensionBuilder
+
+This class is the actual SuiteBuilder loaded by NUnit as an add-in.
+It recognizes the SampleSuiteExtensionAttribute and invokes the
+SampleSuiteExtension constructor to build the suite.
+
+SampleSuiteExtensionAttribute
+
+This is the special attribute used to mark tests to be constructed
+using this add-in. It is the only class referenced from the user tests.
+
+Note on Building this Extension
+
+If you use the Visual Studio solution, the NUnit references in both
+included projects must be changed so that they refer to the copy of
+NUnit in which you want to install the extension. The post-build step
+for the SampleSuiteExtension project must be changed to copy the
+extension into the addins directory for your NUnit install.
+
+NOTE:
+
+The references to nunit.core and nunit.common in the
+SampleSuiteExtension project have their Copy Local property set to
+false, rather than the Visual Studio default of true. In developing
+extensions, it is essential there be no extra copies of these assemblies
+be created. Once the extension is complete, those who install it in
+binary form will not need to deal with this issue.
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.build b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.build
new file mode 100644
index 0000000000..474d4aa78e
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.build
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.cs
new file mode 100644
index 0000000000..8359d2fc09
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.cs
@@ -0,0 +1,44 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+
+namespace NUnit.Core.Extensions
+{
+ ///
+ /// SampleFixtureExtension extends NUnitTestFixture and adds a custom setup
+ /// before running TestFixtureSetUp and after running TestFixtureTearDown.
+ /// Because it inherits from NUnitTestFixture, a lot of work is done for it.
+ ///
+ class SampleFixtureExtension : NUnitTestFixture
+ {
+ public SampleFixtureExtension( Type fixtureType )
+ : base( fixtureType )
+ {
+ // NOTE: Since we are inheriting from NUnitTestFixture we don't
+ // have to do anything if we don't want to. All the attributes
+ // that are normally used with an NUnitTestFixture will be
+ // recognized.
+ //
+ // Just to have something to do, we override DoOneTimeSetUp and
+ // DoOneTimeTearDown below to do some special processing before
+ // and after the normal TestFixtureSetUp and TestFixtureTearDown.
+ // In this example, we simply display a message.
+ }
+
+ protected override void DoOneTimeSetUp(TestResult suiteResult)
+ {
+ Console.WriteLine( "Extended Fixture SetUp called" );
+ base.DoOneTimeSetUp (suiteResult);
+ }
+
+ protected override void DoOneTimeTearDown(TestResult suiteResult)
+ {
+ base.DoOneTimeTearDown (suiteResult);
+ Console.WriteLine( "Extended Fixture TearDown called" );
+ }
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.csproj b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.csproj
new file mode 100644
index 0000000000..1fb245be05
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.csproj
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtensionAttribute.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtensionAttribute.cs
new file mode 100644
index 0000000000..2d9737cc2a
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtensionAttribute.cs
@@ -0,0 +1,18 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+
+namespace NUnit.Core.Extensions
+{
+ ///
+ /// SampleFixtureExtensionAttribute is used to identify a SampleFixtureExtension class
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple=false)]
+ public sealed class SampleFixtureExtensionAttribute : Attribute
+ {
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtensionBuilder.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtensionBuilder.cs
new file mode 100644
index 0000000000..3713a7e50f
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/SampleFixtureExtensionBuilder.cs
@@ -0,0 +1,58 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+using NUnit.Core.Builders;
+using NUnit.Core.Extensibility;
+
+namespace NUnit.Core.Extensions
+{
+ ///
+ /// MockFixtureExtensionBuilder knows how to build
+ /// a MockFixtureExtension.
+ ///
+ [NUnitAddin(Description="Wraps an NUnitTestFixture with an additional level of SetUp and TearDown")]
+ public class SampleFixtureExtensionBuilder : ISuiteBuilder, IAddin
+ {
+ #region NUnitTestFixtureBuilder Overrides
+ ///
+ /// Makes a SampleFixtureExtension instance
+ ///
+ /// The type to be used
+ /// A SampleFixtureExtension as a TestSuite
+// protected override TestSuite MakeSuite(Type type)
+// {
+// return new SampleFixtureExtension( type );
+// }
+
+ // The builder recognizes the types that it can use by the presense
+ // of SampleFixtureExtensionAttribute. Note that an attribute does not
+ // have to be used. You can use any arbitrary set of rules that can be
+ // implemented using reflection on the type.
+ public bool CanBuildFrom(Type type)
+ {
+ return Reflect.HasAttribute( type, "NUnit.Core.Extensions.SampleFixtureExtensionAttribute", false );
+ }
+
+ public Test BuildFrom(Type type)
+ {
+ return null;
+ }
+ #endregion
+
+ #region IAddin Members
+ public bool Install(IExtensionHost host)
+ {
+ IExtensionPoint suiteBuilders = host.GetExtensionPoint( "SuiteBuilders" );
+ if ( suiteBuilders == null )
+ return false;
+
+ suiteBuilders.Install( this );
+ return true;
+ }
+ #endregion
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/AssemblyInfo.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/AssemblyInfo.cs
new file mode 100644
index 0000000000..9f89a3282c
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/AssemblyInfo.cs
@@ -0,0 +1,58 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// 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("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//
+// 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 Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+// (*) If no key is specified, the assembly is not signed.
+// (*) KeyName refers to a key that has been installed in the Crypto Service
+// Provider (CSP) on your machine. KeyFile refers to a file which contains
+// a key.
+// (*) If the KeyFile and the KeyName values are both specified, the
+// following processing occurs:
+// (1) If the KeyName can be found in the CSP, that key is used.
+// (2) If the KeyName does not exist and the KeyFile does exist, the key
+// in the KeyFile is installed into the CSP and used.
+// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+// When specifying the KeyFile, the location of the KeyFile should be
+// relative to the project output directory which is
+// %Project Directory%\obj\. For example, if your KeyFile is
+// located in the project directory, you would specify the AssemblyKeyFile
+// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+// documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/SampleFixtureExtensionTests.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/SampleFixtureExtensionTests.cs
new file mode 100644
index 0000000000..671fca9274
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/SampleFixtureExtensionTests.cs
@@ -0,0 +1,48 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+using NUnit.Framework;
+using NUnit.Core.Extensions;
+
+namespace NUnit.Extensions.Tests
+{
+ ///
+ /// Test class that demonstrates SampleFixtureExtension
+ ///
+ [SampleFixtureExtension]
+ public class SampleFixtureExtensionTests
+ {
+ [TestFixtureSetUp]
+ public void SetUpTests()
+ {
+ Console.WriteLine( "TestFixtureSetUp called" );
+ }
+
+ [TestFixtureTearDown]
+ public void FixtureTearDown()
+ {
+ Console.WriteLine( "TestFixtureTearDown called" );
+ }
+
+ [Test]
+ public void SomeTest()
+ {
+ Console.WriteLine( "Hello from some test" );
+ }
+
+ [Test]
+ public void AnotherTest()
+ {
+ Console.WriteLine( "Hello from another test" );
+ }
+
+ public void NotATest()
+ {
+ Console.WriteLine( "I shouldn't be called!" );
+ }
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/SampleFixtureExtensionTests.csproj b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/SampleFixtureExtensionTests.csproj
new file mode 100644
index 0000000000..cc082b9e51
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleFixtureExtension/Tests/SampleFixtureExtensionTests.csproj
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Addin.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Addin.cs
new file mode 100644
index 0000000000..20a359afa6
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Addin.cs
@@ -0,0 +1,30 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+using NUnit.Core.Extensibility;
+
+namespace NUnit.Core.Extensions
+{
+ ///
+ /// Summary description for Addin.
+ ///
+ [NUnitAddin(Name="SampleSuiteExtension", Description = "Recognizes Tests starting with SampleTest...")]
+ public class Addin : IAddin
+ {
+ #region IAddin Members
+ public bool Install(IExtensionHost host)
+ {
+ IExtensionPoint builders = host.GetExtensionPoint( "SuiteBuilders" );
+ if ( builders == null )
+ return false;
+
+ builders.Install( new SampleSuiteExtensionBuilder() );
+ return true;
+ }
+ #endregion
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/AssemblyInfo.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/AssemblyInfo.cs
new file mode 100644
index 0000000000..9f89a3282c
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/AssemblyInfo.cs
@@ -0,0 +1,58 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// 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("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//
+// 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 Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+// (*) If no key is specified, the assembly is not signed.
+// (*) KeyName refers to a key that has been installed in the Crypto Service
+// Provider (CSP) on your machine. KeyFile refers to a file which contains
+// a key.
+// (*) If the KeyFile and the KeyName values are both specified, the
+// following processing occurs:
+// (1) If the KeyName can be found in the CSP, that key is used.
+// (2) If the KeyName does not exist and the KeyFile does exist, the key
+// in the KeyFile is installed into the CSP and used.
+// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+// When specifying the KeyFile, the location of the KeyFile should be
+// relative to the project output directory which is
+// %Project Directory%\obj\. For example, if your KeyFile is
+// located in the project directory, you would specify the AssemblyKeyFile
+// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+// documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/ReadMe.txt b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/ReadMe.txt
new file mode 100644
index 0000000000..11fb204ccb
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/ReadMe.txt
@@ -0,0 +1,43 @@
+SampleSuiteExtension Example
+
+This is a minimal example of a SuiteBuilder extension. It extends
+NUnit.Core.TestSuite test suite and creates a fixture that runs every
+test starting with "SampleTest..." It packages both the core extension
+and the attribute used in the tests in the same assembly.
+
+SampleSuiteExtension Class
+
+This class derives from NUnit.Framework.TestSuite and represents the
+extended suite within NUnit. Because it inherits from TestSuite,
+rather than TestFixture, it has to construct its own fixture object and
+find its own tests. Everything is done in the constructor for simplicity.
+
+SampleSuiteExtensionBuilder
+
+This class is the actual SuiteBuilder loaded by NUnit as an add-in.
+It recognizes the SampleSuiteExtensionAttribute and invokes the
+SampleSuiteExtension constructor to build the suite.
+
+SampleSuiteExtensionAttribute
+
+This is the special attribute used to mark tests to be constructed
+using this add-in. It is the only class referenced from the user tests.
+
+Note on Building this Extension
+
+If you use the Visual Studio solution, the NUnit references in both
+included projects must be changed so that they refer to the copy of
+NUnit in which you want to install the extension. The post-build step
+for the SampleSuiteExtension project must be changed to copy the
+extension into the addins directory for your NUnit install.
+
+NOTE:
+
+The references to nunit.core and nunit.common in the
+SampleSuiteExtension project have their Copy Local property set to
+false, rather than the Visual Studio default of true. In developing
+extensions, it is essential there be no extra copies of these assemblies
+be created. Once the extension is complete, those who install it in
+binary form will not need to deal with this issue.
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.build b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.build
new file mode 100644
index 0000000000..0dda8cc0c1
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.build
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.cs
new file mode 100644
index 0000000000..7abfa2cdf4
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.cs
@@ -0,0 +1,39 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+using System.Reflection;
+
+namespace NUnit.Core.Extensions
+{
+ ///
+ /// SampleSuiteExtension is a minimal example of a suite extension. It
+ /// extends test suite and creates a fixture that runs every test starting
+ /// with "SampleTest..." Because it inherits from TestSuite, rather than
+ /// TestFixture, it has to construct its own fixture object and find its
+ /// own tests. Everything is done in the constructor for simplicity.
+ ///
+ class SampleSuiteExtension : TestSuite
+ {
+ public SampleSuiteExtension( Type fixtureType )
+ : base( fixtureType )
+ {
+ // Create the fixture object. We could wait to do this when
+ // it is needed, but we do it here for simplicity.
+ this.Fixture = Reflect.Construct( fixtureType );
+
+ // Locate our test methods and add them to the suite using
+ // the Add method of TestSuite. Note that we don't do a simple
+ // Tests.Add, because that wouldn't set the parent of the tests.
+ foreach( MethodInfo method in fixtureType.GetMethods(
+ BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly ) )
+ {
+ if ( method.Name.StartsWith( "SampleTest" ) )
+ this.Add( new NUnitTestMethod( method ) );
+ }
+ }
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.csproj b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.csproj
new file mode 100644
index 0000000000..c7d0a70e65
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.csproj
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtensionAttribute.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtensionAttribute.cs
new file mode 100644
index 0000000000..7194ea590a
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtensionAttribute.cs
@@ -0,0 +1,18 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+
+namespace NUnit.Core.Extensions
+{
+ ///
+ /// SampleSuiteExtensionAttribute is used to identify a SampleSuiteExtension fixture
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple=false)]
+ public sealed class SampleSuiteExtensionAttribute : Attribute
+ {
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtensionBuilder.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtensionBuilder.cs
new file mode 100644
index 0000000000..39b7b49c47
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/SampleSuiteExtensionBuilder.cs
@@ -0,0 +1,41 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+using NUnit.Core.Extensibility;
+
+namespace NUnit.Core.Extensions
+{
+ ///
+ /// SampleSuiteExtensionBuilder knows how to build a SampleSuiteExtension
+ ///
+ public class SampleSuiteExtensionBuilder : ISuiteBuilder
+ {
+ #region ISuiteBuilder Members
+
+ // This builder delegates all the work to the constructor of the
+ // extension suite. Many builders will need to do more work,
+ // looking for other attributes, setting properties on the
+ // suite and locating methods for tests, setup and teardown.
+ public Test BuildFrom(Type type)
+ {
+ if ( CanBuildFrom( type ) )
+ return new SampleSuiteExtension( type );
+ return null;
+ }
+
+ // The builder recognizes the types that it can use by the presense
+ // of SampleSuiteExtensionAttribute. Note that an attribute does not
+ // have to be used. You can use any arbitrary set of rules that can be
+ // implemented using reflection on the type.
+ public bool CanBuildFrom(Type type)
+ {
+ return Reflect.HasAttribute( type, "NUnit.Core.Extensions.SampleSuiteExtensionAttribute", false );
+ }
+
+ #endregion
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Tests/SampleSuiteExtensionTests.cs b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Tests/SampleSuiteExtensionTests.cs
new file mode 100644
index 0000000000..d1a7660ea7
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Tests/SampleSuiteExtensionTests.cs
@@ -0,0 +1,33 @@
+// ****************************************************************
+// Copyright 2007, Charlie Poole
+// This is free software licensed under the NUnit license. You may
+// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
+// ****************************************************************
+
+using System;
+using System.Reflection;
+
+namespace NUnit.Core.Extensions.Tests
+{
+ ///
+ /// Test class that demonstrates SampleSuiteExtension
+ ///
+ [SampleSuiteExtension]
+ public class SampleSuiteExtensionTests
+ {
+ public void SampleTest1()
+ {
+ Console.WriteLine( "Hello from sample test 1" );
+ }
+
+ public void SampleTest2()
+ {
+ Console.WriteLine( "Hello from sample test 2" );
+ }
+
+ public void NotATest()
+ {
+ Console.WriteLine( "I shouldn't be called!" );
+ }
+ }
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Tests/SampleSuiteExtensionTests.csproj b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Tests/SampleSuiteExtensionTests.csproj
new file mode 100644
index 0000000000..339d89bb60
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/Extensibility/Core/SampleSuiteExtension/Tests/SampleSuiteExtensionTests.csproj
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/ReadMe.txt b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/ReadMe.txt
new file mode 100644
index 0000000000..71e0ee7d7d
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/ReadMe.txt
@@ -0,0 +1,69 @@
+NUnit Samples
+
+This directory contains sample applications demonstrating the use of NUnit and organized as follows...
+
+ CSharp: Samples in C#
+
+ Failures: Demonstrates 4 failing tests and one 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.
+
+ Money-Port: This shows how the Money example can be ported from Version 1 of NUnit with minimal changes.
+
+ Syntax: Illustrates most Assert methods using both the classic and constraint-based syntax.
+
+ JSharp: Samples in J#
+
+ Failures: Demonstrates 4 failing tests and one that is not run.
+
+ CPP: C++ Samples
+
+ MANAGED: Managed C++ Samples (VS 2003 compatible)
+
+ Failures: Demonstrates 4 failing tests and one that is not run.
+
+ CPP-CLI: C++/CLI Samples (VS 2005 only)
+
+ Failures: Demonstrates 4 failing tests and one that is not run.
+
+ Syntax: Illustrates most Assert methods using both the classic and constraint-based syntax.
+
+ VB: Samples in VB.NET
+
+ Failures: Demonstrates 4 failing tests and one that is not run.
+
+ Money: This is a VB.NET version of the money example found in most xUnit implementations. Thanks to Kent Beck.
+
+ Syntax: Illustrates most Assert methods using both the classic and constraint-based syntax.
+
+ Extensibility: Examples of extending NUnit
+
+ Framework:
+
+ Core:
+
+ TestSuiteExtension
+
+ TestFixtureExtension
+
+
+Building the Samples
+
+A Visual Studio 2003 project is included for most samples.
+Visual Studio 2005 will convert the format automatically upon
+opening it. The C++/CLI samples, as well as other samples that
+depend on .NET 2.0 features, include Visual Studio 2005 projects.
+
+In most cases, you will need to remove the reference to the
+nunit.framework assembly and replace it with a reference to
+your installed copy of NUnit.
+
+To build using the Microsoft compiler, use a command similar
+to the following:
+
+ csc /target:library /r:/nunit.framework.dll example.cs
+
+To build using the mono compiler, use a command like this:
+
+ msc /target:library /r:/nunit.framework.dll example.cs
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/cpp-cli.sln b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/cpp-cli.sln
new file mode 100644
index 0000000000..a30cf36783
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/cpp-cli.sln
@@ -0,0 +1,41 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpp-cli-failures", "failures\cpp-cli-failures.vcproj", "{A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpp-cli-syntax", "syntax\cpp-cli-syntax.vcproj", "{72448C2D-17C9-419E-B28D-3B533E7E0CD5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|Win32 = Debug|Win32
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Debug|Mixed Platforms.Build.0 = Debug|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Debug|Win32.Build.0 = Debug|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Release|Any CPU.ActiveCfg = Release|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Release|Mixed Platforms.Build.0 = Release|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Release|Win32.ActiveCfg = Release|Win32
+ {A0987BCD-AFE6-40E4-95A8-ADA7ADB7E97D}.Release|Win32.Build.0 = Release|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Debug|Mixed Platforms.Build.0 = Debug|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Debug|Win32.Build.0 = Debug|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Release|Any CPU.ActiveCfg = Release|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Release|Mixed Platforms.Build.0 = Release|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Release|Win32.ActiveCfg = Release|Win32
+ {72448C2D-17C9-419E-B28D-3B533E7E0CD5}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/AssemblyInfo.cpp b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/AssemblyInfo.cpp
new file mode 100644
index 0000000000..e64d6eec4d
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/AssemblyInfo.cpp
@@ -0,0 +1,56 @@
+using namespace System::Reflection;
+using namespace System::Runtime::CompilerServices;
+
+//
+// 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:AssemblyTitleAttribute("")];
+[assembly:AssemblyDescriptionAttribute("")];
+[assembly:AssemblyConfigurationAttribute("")];
+[assembly:AssemblyCompanyAttribute("")];
+[assembly:AssemblyProductAttribute("")];
+[assembly:AssemblyCopyrightAttribute("")];
+[assembly:AssemblyTrademarkAttribute("")];
+[assembly:AssemblyCultureAttribute("")];
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the value or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly:AssemblyVersionAttribute("2.2.0.0")];
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+// (*) If no key is specified, the assembly is not signed.
+// (*) KeyName refers to a key that has been installed in the Crypto Service
+// Provider (CSP) on your machine. KeyFile refers to a file which contains
+// a key.
+// (*) If the KeyFile and the KeyName values are both specified, the
+// following processing occurs:
+// (1) If the KeyName can be found in the CSP, that key is used.
+// (2) If the KeyName does not exist and the KeyFile does exist, the key
+// in the KeyFile is installed into the CSP and used.
+// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+// When specifying the KeyFile, the location of the KeyFile should be
+// relative to the project directory.
+// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+// documentation for more information on this.
+//
+[assembly:AssemblyDelaySignAttribute(false)];
+[assembly:AssemblyKeyFileAttribute("")];
+[assembly:AssemblyKeyNameAttribute("")];
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cpp-cli-failures.build b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cpp-cli-failures.build
new file mode 100644
index 0000000000..8cf139e9f8
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cpp-cli-failures.build
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cpp-cli-failures.vcproj b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cpp-cli-failures.vcproj
new file mode 100644
index 0000000000..364a6beefc
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cpp-cli-failures.vcproj
@@ -0,0 +1,208 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cppsample.cpp b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cppsample.cpp
new file mode 100644
index 0000000000..f5aea7cffd
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cppsample.cpp
@@ -0,0 +1,48 @@
+// ****************************************************************
+// This is free software licensed under the NUnit license. You
+// may obtain a copy of the license as well as information regarding
+// copyright ownership at http://nunit.org/?p=license&r=2.4.
+// ****************************************************************
+
+#include "cppsample.h"
+
+namespace NUnitSamples {
+
+ void SimpleCPPSample::Init() {
+ fValue1 = 2;
+ fValue2 = 3;
+ }
+
+ void SimpleCPPSample::Add() {
+ int result = fValue1 + fValue2;
+ Assert::AreEqual(6,result);
+ }
+
+ void SimpleCPPSample::DivideByZero()
+ {
+ int zero= 0;
+ int result= 8/zero;
+ }
+
+ void SimpleCPPSample::Equals() {
+ Assert::AreEqual(12, 12, "Integer");
+ Assert::AreEqual(12L, 12L, "Long");
+ Assert::AreEqual('a', 'a', "Char");
+
+
+ Assert::AreEqual(12, 13, "Expected Failure (Integer)");
+ Assert::AreEqual(12.0, 11.99, 0.0, "Expected Failure (Double)");
+ }
+
+ void SimpleCPPSample::IgnoredTest()
+ {
+ throw gcnew InvalidCastException();
+ }
+
+ void SimpleCPPSample::ExpectAnException()
+ {
+ throw gcnew InvalidCastException();
+ }
+
+}
+
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cppsample.h b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cppsample.h
new file mode 100644
index 0000000000..863feb577d
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/failures/cppsample.h
@@ -0,0 +1,28 @@
+// ****************************************************************
+// This is free software licensed under the NUnit license. You
+// may obtain a copy of the license as well as information regarding
+// copyright ownership at http://nunit.org/?p=license&r=2.4.
+// ****************************************************************
+
+#pragma once
+
+using namespace System;
+using namespace NUnit::Framework;
+
+namespace NUnitSamples
+{
+ [TestFixture]
+ public ref class SimpleCPPSample
+ {
+ int fValue1;
+ int fValue2;
+ public:
+ [SetUp] void Init();
+
+ [Test] void Add();
+ [Test] void DivideByZero();
+ [Test] void Equals();
+ [Test] [Ignore("ignored test")] void IgnoredTest();
+ [Test] [ExpectedException(InvalidOperationException::typeid)] void ExpectAnException();
+ };
+}
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/AssemblyInfo.cpp b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/AssemblyInfo.cpp
new file mode 100644
index 0000000000..b18cdfabb6
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/AssemblyInfo.cpp
@@ -0,0 +1,40 @@
+#include "stdafx.h"
+
+using namespace System;
+using namespace System::Reflection;
+using namespace System::Runtime::CompilerServices;
+using namespace System::Runtime::InteropServices;
+using namespace System::Security::Permissions;
+
+//
+// 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:AssemblyTitleAttribute("cppclisyntax")];
+[assembly:AssemblyDescriptionAttribute("")];
+[assembly:AssemblyConfigurationAttribute("")];
+[assembly:AssemblyCompanyAttribute("")];
+[assembly:AssemblyProductAttribute("cppclisyntax")];
+[assembly:AssemblyCopyrightAttribute("Copyright (c) 2007")];
+[assembly:AssemblyTrademarkAttribute("")];
+[assembly:AssemblyCultureAttribute("")];
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the value or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly:AssemblyVersionAttribute("1.0.*")];
+
+[assembly:ComVisible(false)];
+
+[assembly:CLSCompliantAttribute(true)];
+
+[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/cpp-cli-syntax.build b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/cpp-cli-syntax.build
new file mode 100644
index 0000000000..f3b632897e
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/cpp-cli-syntax.build
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/cpp-cli-syntax.cpp b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/cpp-cli-syntax.cpp
new file mode 100644
index 0000000000..a554e95cc0
--- /dev/null
+++ b/external/Lucene.Net/lib/NUnit.org/NUnit/2.5.9/samples/cpp/cpp-cli/syntax/cpp-cli-syntax.cpp
@@ -0,0 +1,641 @@
+// ****************************************************************
+// This is free software licensed under the NUnit license. You
+// may obtain a copy of the license as well as information regarding
+// copyright ownership at http://nunit.org/?p=license&r=2.4.
+// ****************************************************************
+
+using namespace NUnit::Framework;
+using NUnit::Framework::Is;
+using NUnit::Framework::Text;
+using NUnit::Framework::List;
+using NUnit::Framework::Has;
+using System::String;
+
+namespace NUnitSamples
+{
+ [TestFixture]
+ public ref class AssertSyntaxTests : AssertionHelper
+ {
+ public:
+ [Test]
+ void IsNull()
+ {
+ Object ^nada = nullptr;
+
+ // Classic syntax
+ Assert::IsNull(nada);
+
+ // Helper syntax
+ Assert::That(nada, Is::Null);
+
+ // Inherited syntax
+ Expect(nada, Null);
+ }
+
+ [Test]
+ void IsNotNull()
+ {
+ // Classic syntax
+ Assert::IsNotNull(42);
+
+ // Helper syntax
+ Assert::That(42, Is::Not->Null);
+
+ // Inherited syntax
+ Expect( 42, Not->Null );
+ }
+
+ [Test]
+ void IsTrue()
+ {
+ // Classic syntax
+ Assert::IsTrue(2+2==4);
+
+ // Helper syntax
+ Assert::That(2+2==4, Is::True);
+ Assert::That(2+2==4);
+
+ // Inherited syntax
+ Expect(2+2==4, True);
+ Expect(2+2==4);
+ }
+
+ [Test]
+ void IsFalse()
+ {
+ // Classic syntax
+ Assert::IsFalse(2+2==5);
+
+ // Helper syntax
+ Assert::That(2+2==5, Is::False);
+
+ // Inherited syntax
+ Expect(2+2==5, False);
+ }
+
+ [Test]
+ void IsNaN()
+ {
+ double d = double::NaN;
+ float f = float::NaN;
+
+ // Classic syntax
+ Assert::IsNaN(d);
+ Assert::IsNaN(f);
+
+ // Helper syntax
+ Assert::That(d, Is::NaN);
+ Assert::That(f, Is::NaN);
+
+ // Inherited syntax
+ Expect(d, NaN);
+ Expect(f, NaN);
+ }
+
+ [Test]
+ void EmptyStringTests()
+ {
+ // Classic syntax
+ Assert::IsEmpty("");
+ Assert::IsNotEmpty("Hello!");
+
+ // Helper syntax
+ Assert::That("", Is::Empty);
+ Assert::That("Hello!", Is::Not->Empty);
+
+ // Inherited syntax
+ Expect("", Empty);
+ Expect("Hello!", Not->Empty);
+ }
+
+ [Test]
+ void EmptyCollectionTests()
+ {
+ // Classic syntax
+ Assert::IsEmpty(gcnew array(0));
+ Assert::IsNotEmpty(gcnew array(3));
+
+ // Helper syntax
+ Assert::That(gcnew array(0), Is::Empty);
+ Assert::That(gcnew array(3), Is::Not->Empty);
+
+ // Inherited syntax
+ Expect(gcnew array(0), Empty);
+ Expect(gcnew array(3), Not->Empty);
+ }
+
+ [Test]
+ void ExactTypeTests()
+ {
+ // Classic syntax workarounds)
+ String^ greeting = "Hello";
+ Assert::AreEqual(String::typeid, greeting->GetType());
+ Assert::AreEqual("System.String", greeting->GetType()->FullName);
+ Assert::AreNotEqual(int::typeid, greeting->GetType());
+ Assert::AreNotEqual("System.Int32", greeting->GetType()->FullName);
+
+ // Helper syntax
+ Assert::That(greeting, Is::TypeOf(String::typeid));
+ Assert::That(greeting, Is::Not->TypeOf(int::typeid));
+
+ // Inherited syntax
+ Expect( "Hello", TypeOf(String::typeid));
+ Expect( "Hello", Not->TypeOf(int::typeid));
+ }
+
+ [Test]
+ void InstanceOfTypeTests()
+ {
+ // Classic syntax
+ Assert::IsInstanceOfType(String::typeid, "Hello");
+ Assert::IsNotInstanceOfType(String::typeid, 5);
+
+ // Helper syntax
+ Assert::That("Hello", Is::InstanceOfType(String::typeid));
+ Assert::That(5, Is::Not->InstanceOfType(String::typeid));
+
+ // Inherited syntax
+ Expect("Hello", InstanceOfType(String::typeid));
+ Expect(5, Not->InstanceOfType(String::typeid));
+ }
+
+ [Test]
+ void AssignableFromTypeTests()
+ {
+ // Classic syntax
+ Assert::IsAssignableFrom(String::typeid, "Hello");
+ Assert::IsNotAssignableFrom(String::typeid, 5);
+
+ // Helper syntax
+ Assert::That( "Hello", Is::AssignableFrom(String::typeid));
+ Assert::That( 5, Is::Not->AssignableFrom(String::typeid));
+
+ // Inherited syntax
+ Expect( "Hello", AssignableFrom(String::typeid));
+ Expect( 5, Not->AssignableFrom(String::typeid));
+ }
+
+ [Test]
+ void SubstringTests()
+ {
+ String^ phrase = "Hello World!";
+ array^ strings = {"abc", "bad", "dba" };
+
+ // Classic Syntax
+ StringAssert::Contains("World", phrase);
+
+ // Helper syntax
+ Assert::That(phrase, Contains("World"));
+ // Only available using new syntax
+ Assert::That(phrase, Text::DoesNotContain("goodbye"));
+ Assert::That(phrase, Text::Contains("WORLD")->IgnoreCase);
+ Assert::That(phrase, Text::DoesNotContain("BYE")->IgnoreCase);
+ Assert::That(strings, Text::All->Contains( "b" ) );
+
+ // Inherited syntax
+ Expect(phrase, Contains("World"));
+ // Only available using new syntax
+ Expect(phrase, Not->Contains("goodbye"));
+ Expect(phrase, Contains("WORLD")->IgnoreCase);
+ Expect(phrase, Not->Contains("BYE")->IgnoreCase);
+ Expect(strings, All->Contains("b"));
+ }
+
+ [Test]
+ void StartsWithTests()
+ {
+ String^ phrase = "Hello World!";
+ array^ greetings = { "Hello!", "Hi!", "Hola!" };
+
+ // Classic syntax
+ StringAssert::StartsWith("Hello", phrase);
+
+ // Helper syntax
+ Assert::That(phrase, Text::StartsWith("Hello"));
+ // Only available using new syntax
+ Assert::That(phrase, Text::DoesNotStartWith("Hi!"));
+ Assert::That(phrase, Text::StartsWith("HeLLo")->IgnoreCase);
+ Assert::That(phrase, Text::DoesNotStartWith("HI")->IgnoreCase);
+ Assert::That(greetings, Text::All->StartsWith("h")->IgnoreCase);
+
+ // Inherited syntax
+ Expect(phrase, StartsWith("Hello"));
+ // Only available using new syntax
+ Expect(phrase, Not->StartsWith("Hi!"));
+ Expect(phrase, StartsWith("HeLLo")->IgnoreCase);
+ Expect(phrase, Not->StartsWith("HI")->IgnoreCase);
+ Expect(greetings, All->StartsWith("h")->IgnoreCase);
+ }
+
+ [Test]
+ void EndsWithTests()
+ {
+ String^ phrase = "Hello World!";
+ array^ greetings = { "Hello!", "Hi!", "Hola!" };
+
+ // Classic Syntax
+ StringAssert::EndsWith("!", phrase);
+
+ // Helper syntax
+ Assert::That(phrase, Text::EndsWith("!"));
+ // Only available using new syntax
+ Assert::That(phrase, Text::DoesNotEndWith("?"));
+ Assert::That(phrase, Text::EndsWith("WORLD!")->IgnoreCase);
+ Assert::That(greetings, Text::All->EndsWith("!"));
+
+ // Inherited syntax
+ Expect(phrase, EndsWith("!"));
+ // Only available using new syntax
+ Expect(phrase, Not->EndsWith("?"));
+ Expect(phrase, EndsWith("WORLD!")->IgnoreCase);
+ Expect(greetings, All->EndsWith("!") );
+ }
+
+ [Test]
+ void EqualIgnoringCaseTests()
+ {
+ String^ phrase = "Hello World!";
+
+ // Classic syntax
+ StringAssert::AreEqualIgnoringCase("hello world!",phrase);
+
+ // Helper syntax
+ Assert::That(phrase, Is::EqualTo("hello world!")->IgnoreCase);
+ //Only available using new syntax
+ Assert::That(phrase, Is::Not->EqualTo("goodbye world!")->IgnoreCase);
+ Assert::That(gcnew array { "Hello", "World" },
+ Is::EqualTo(gcnew array