aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-05-20 10:56:26 +0200
committerGitHub <noreply@github.com>2022-05-20 10:56:26 +0200
commit16e4b58f78662bc9a77070917b2b616d44be68c3 (patch)
tree383c33cf5c1c00e1ad916041106185588ac3feda
parent2e1bf435671d233ac70635c1bc338da0153aec86 (diff)
parent5ecf186af848c4a518d7268fcb452b264fba939a (diff)
Merge pull request #22674 from vespa-engine/balder/fold-juniper-into-searchsummary
Fold juniper into searchsummary library.
-rw-r--r--CMakeLists.txt1
-rw-r--r--juniper/.gitignore7
-rw-r--r--juniper/CMakeLists.txt13
-rw-r--r--juniper/INSTALL.txt49
-rw-r--r--juniper/OWNERS2
-rw-r--r--juniper/README36
-rw-r--r--juniper/doc/written/fsearchparams.html488
-rw-r--r--juniper/src/Doxyfile931
-rw-r--r--juniper/src/testproject.el98
-rw-r--r--searchcore/CMakeLists.txt1
-rw-r--r--searchsummary/CMakeLists.txt3
-rw-r--r--searchsummary/src/tests/juniper/.gitignore (renamed from juniper/src/test/.gitignore)0
-rw-r--r--searchsummary/src/tests/juniper/CMakeLists.txt (renamed from juniper/src/test/CMakeLists.txt)28
-rw-r--r--searchsummary/src/tests/juniper/SrcTestSuite.cpp (renamed from juniper/src/test/SrcTestSuite.cpp)2
-rw-r--r--searchsummary/src/tests/juniper/appender_test.cpp (renamed from juniper/src/test/appender_test.cpp)0
-rw-r--r--searchsummary/src/tests/juniper/auxTest.cpp (renamed from juniper/src/test/auxTest.cpp)0
-rw-r--r--searchsummary/src/tests/juniper/auxTest.h (renamed from juniper/src/test/auxTest.h)0
-rw-r--r--searchsummary/src/tests/juniper/auxTestApp.cpp (renamed from juniper/src/test/auxTestApp.cpp)2
-rw-r--r--searchsummary/src/tests/juniper/fakerewriter.cpp (renamed from juniper/src/test/fakerewriter.cpp)0
-rw-r--r--searchsummary/src/tests/juniper/fakerewriter.h (renamed from juniper/src/test/fakerewriter.h)0
-rw-r--r--searchsummary/src/tests/juniper/largeblockchinese.input.utf8 (renamed from juniper/src/test/largeblockchinese.input.utf8)0
-rw-r--r--searchsummary/src/tests/juniper/matchobjectTest.cpp (renamed from juniper/src/test/matchobjectTest.cpp)0
-rw-r--r--searchsummary/src/tests/juniper/matchobjectTest.h (renamed from juniper/src/test/matchobjectTest.h)0
-rw-r--r--searchsummary/src/tests/juniper/matchobjectTestApp.cpp (renamed from juniper/src/test/matchobjectTestApp.cpp)2
-rw-r--r--searchsummary/src/tests/juniper/mcandTest.cpp (renamed from juniper/src/test/mcandTest.cpp)0
-rw-r--r--searchsummary/src/tests/juniper/mcandTest.h (renamed from juniper/src/test/mcandTest.h)0
-rw-r--r--searchsummary/src/tests/juniper/mcandTestApp.cpp (renamed from juniper/src/test/mcandTestApp.cpp)2
-rw-r--r--searchsummary/src/tests/juniper/partialutf8.input.utf8 (renamed from juniper/src/test/partialutf8.input.utf8)0
-rw-r--r--searchsummary/src/tests/juniper/queryparserTest.cpp (renamed from juniper/src/test/queryparserTest.cpp)0
-rw-r--r--searchsummary/src/tests/juniper/queryparserTest.h (renamed from juniper/src/test/queryparserTest.h)0
-rw-r--r--searchsummary/src/tests/juniper/queryparserTestApp.cpp (renamed from juniper/src/test/queryparserTestApp.cpp)2
-rw-r--r--searchsummary/src/tests/juniper/queryvisitor_test.cpp (renamed from juniper/src/test/queryvisitor_test.cpp)0
-rw-r--r--searchsummary/src/tests/juniper/testclient.rc (renamed from juniper/src/rpclient/testclient.rc)0
-rw-r--r--searchsummary/src/tests/juniper/testenv.cpp (renamed from juniper/src/test/testenv.cpp)0
-rw-r--r--searchsummary/src/tests/juniper/testenv.h (renamed from juniper/src/test/testenv.h)0
-rw-r--r--searchsummary/src/vespa/juniper/.gitignore (renamed from juniper/src/vespa/juniper/.gitignore)0
-rw-r--r--searchsummary/src/vespa/juniper/CMakeLists.txt (renamed from juniper/src/vespa/juniper/CMakeLists.txt)3
-rw-r--r--searchsummary/src/vespa/juniper/IJuniperProperties.h (renamed from juniper/src/vespa/juniper/IJuniperProperties.h)0
-rw-r--r--searchsummary/src/vespa/juniper/ITokenProcessor.h (renamed from juniper/src/vespa/juniper/ITokenProcessor.h)0
-rw-r--r--searchsummary/src/vespa/juniper/Matcher.cpp (renamed from juniper/src/vespa/juniper/Matcher.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/Matcher.h (renamed from juniper/src/vespa/juniper/Matcher.h)0
-rw-r--r--searchsummary/src/vespa/juniper/SummaryConfig.cpp (renamed from juniper/src/vespa/juniper/SummaryConfig.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/SummaryConfig.h (renamed from juniper/src/vespa/juniper/SummaryConfig.h)0
-rw-r--r--searchsummary/src/vespa/juniper/appender.cpp (renamed from juniper/src/vespa/juniper/appender.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/appender.h (renamed from juniper/src/vespa/juniper/appender.h)0
-rw-r--r--searchsummary/src/vespa/juniper/charutil.h (renamed from juniper/src/vespa/juniper/charutil.h)0
-rw-r--r--searchsummary/src/vespa/juniper/config.cpp (renamed from juniper/src/vespa/juniper/config.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/config.h (renamed from juniper/src/vespa/juniper/config.h)0
-rw-r--r--searchsummary/src/vespa/juniper/dpinterface.cpp (renamed from juniper/src/vespa/juniper/dpinterface.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/dpinterface.h (renamed from juniper/src/vespa/juniper/dpinterface.h)0
-rw-r--r--searchsummary/src/vespa/juniper/expcache.cpp (renamed from juniper/src/vespa/juniper/expcache.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/expcache.h (renamed from juniper/src/vespa/juniper/expcache.h)0
-rw-r--r--searchsummary/src/vespa/juniper/foreach_utils.h (renamed from juniper/src/vespa/juniper/foreach_utils.h)0
-rw-r--r--searchsummary/src/vespa/juniper/hashbase.h (renamed from juniper/src/vespa/juniper/hashbase.h)0
-rw-r--r--searchsummary/src/vespa/juniper/juniperdebug.h (renamed from juniper/src/vespa/juniper/juniperdebug.h)0
-rw-r--r--searchsummary/src/vespa/juniper/juniperparams.cpp (renamed from juniper/src/vespa/juniper/juniperparams.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/juniperparams.h (renamed from juniper/src/vespa/juniper/juniperparams.h)0
-rw-r--r--searchsummary/src/vespa/juniper/keyocc.cpp (renamed from juniper/src/vespa/juniper/keyocc.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/keyocc.h (renamed from juniper/src/vespa/juniper/keyocc.h)0
-rw-r--r--searchsummary/src/vespa/juniper/matchelem.cpp (renamed from juniper/src/vespa/juniper/matchelem.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/matchelem.h (renamed from juniper/src/vespa/juniper/matchelem.h)0
-rw-r--r--searchsummary/src/vespa/juniper/matchobject.cpp (renamed from juniper/src/vespa/juniper/matchobject.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/matchobject.h (renamed from juniper/src/vespa/juniper/matchobject.h)0
-rw-r--r--searchsummary/src/vespa/juniper/mcand.cpp (renamed from juniper/src/vespa/juniper/mcand.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/mcand.h (renamed from juniper/src/vespa/juniper/mcand.h)0
-rw-r--r--searchsummary/src/vespa/juniper/propreader.cpp (renamed from juniper/src/vespa/juniper/propreader.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/propreader.h (renamed from juniper/src/vespa/juniper/propreader.h)0
-rw-r--r--searchsummary/src/vespa/juniper/query.h (renamed from juniper/src/vespa/juniper/query.h)0
-rw-r--r--searchsummary/src/vespa/juniper/queryhandle.cpp (renamed from juniper/src/vespa/juniper/queryhandle.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/queryhandle.h (renamed from juniper/src/vespa/juniper/queryhandle.h)0
-rw-r--r--searchsummary/src/vespa/juniper/querymodifier.cpp (renamed from juniper/src/vespa/juniper/querymodifier.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/querymodifier.h (renamed from juniper/src/vespa/juniper/querymodifier.h)0
-rw-r--r--searchsummary/src/vespa/juniper/querynode.cpp (renamed from juniper/src/vespa/juniper/querynode.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/querynode.h (renamed from juniper/src/vespa/juniper/querynode.h)0
-rw-r--r--searchsummary/src/vespa/juniper/queryparser.cpp (renamed from juniper/src/vespa/juniper/queryparser.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/queryparser.h (renamed from juniper/src/vespa/juniper/queryparser.h)0
-rw-r--r--searchsummary/src/vespa/juniper/queryvisitor.cpp (renamed from juniper/src/vespa/juniper/queryvisitor.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/queryvisitor.h (renamed from juniper/src/vespa/juniper/queryvisitor.h)0
-rw-r--r--searchsummary/src/vespa/juniper/reducematcher.cpp (renamed from juniper/src/vespa/juniper/reducematcher.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/reducematcher.h (renamed from juniper/src/vespa/juniper/reducematcher.h)0
-rw-r--r--searchsummary/src/vespa/juniper/result.cpp (renamed from juniper/src/vespa/juniper/result.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/result.h (renamed from juniper/src/vespa/juniper/result.h)0
-rw-r--r--searchsummary/src/vespa/juniper/rewriter.h (renamed from juniper/src/vespa/juniper/rewriter.h)0
-rw-r--r--searchsummary/src/vespa/juniper/rpinterface.cpp (renamed from juniper/src/vespa/juniper/rpinterface.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/rpinterface.h (renamed from juniper/src/vespa/juniper/rpinterface.h)0
-rw-r--r--searchsummary/src/vespa/juniper/simplemap.h (renamed from juniper/src/vespa/juniper/simplemap.h)0
-rw-r--r--searchsummary/src/vespa/juniper/specialtokenregistry.cpp (renamed from juniper/src/vespa/juniper/specialtokenregistry.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/specialtokenregistry.h (renamed from juniper/src/vespa/juniper/specialtokenregistry.h)0
-rw-r--r--searchsummary/src/vespa/juniper/stringmap.cpp (renamed from juniper/src/vespa/juniper/stringmap.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/stringmap.h (renamed from juniper/src/vespa/juniper/stringmap.h)0
-rw-r--r--searchsummary/src/vespa/juniper/sumdesc.cpp (renamed from juniper/src/vespa/juniper/sumdesc.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/sumdesc.h (renamed from juniper/src/vespa/juniper/sumdesc.h)0
-rw-r--r--searchsummary/src/vespa/juniper/tokenizer.cpp (renamed from juniper/src/vespa/juniper/tokenizer.cpp)0
-rw-r--r--searchsummary/src/vespa/juniper/tokenizer.h (renamed from juniper/src/vespa/juniper/tokenizer.h)0
-rw-r--r--searchsummary/src/vespa/juniper/wildcard_match.h (renamed from juniper/src/vespa/juniper/wildcard_match.h)0
-rw-r--r--searchsummary/src/vespa/searchsummary/CMakeLists.txt1
96 files changed, 16 insertions, 1655 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 595e3432913..b1f2e81d54c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -95,7 +95,6 @@ add_subdirectory(jdisc_core)
add_subdirectory(jdisc-security-filters)
add_subdirectory(jdisc_jetty)
add_subdirectory(jrt_test)
-add_subdirectory(juniper)
add_subdirectory(linguistics)
add_subdirectory(linguistics-components)
add_subdirectory(logd)
diff --git a/juniper/.gitignore b/juniper/.gitignore
deleted file mode 100644
index a106509440d..00000000000
--- a/juniper/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-*.dsp
-Makefile.ini
-config_command.sh
-include
-lib
-project.dsw
-Makefile
diff --git a/juniper/CMakeLists.txt b/juniper/CMakeLists.txt
deleted file mode 100644
index 34dea870ec8..00000000000
--- a/juniper/CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_define_module(
- DEPENDS
- fastos
- fastlib_fast
- vespalog
-
- LIBS
- src/vespa/juniper
-
- TESTS
- src/test
-)
diff --git a/juniper/INSTALL.txt b/juniper/INSTALL.txt
deleted file mode 100644
index 284b3eb38b2..00000000000
--- a/juniper/INSTALL.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-Juniper configuration and build instructions
---------------------------------------------------
-
-Juniper basically adheres to the standard FastOS configure/build environment.
-
-configure --help
-
-gives a list of configure options.
-
-Juniper supports most of the common build targets.
-
-Default configure parameters are set to assume that other dependent Fast modules
-are located at the same directory level as this modul.
-Default is to expect the minimal required set of modules.
-
-Prerequisites:
-----------------
-Common module dependencies:
-
-fastos and fastlib must have been built and installed.
-
-This version of Juniper requires fastlib 1.5.16 or higher.
-To be able to utilize the functionality for building in a different
-directory, fastos <= 1.6.0 is required.
-
-Postgres Document Store (optional,obsolete)
----------------------------------------------
-To build with Document Store support, Postgres must have been installed and
-path to this installation provided with the --pgsql-dir option. Default is
-to view document store as external to this module.
-
-
-libiconv (optional)
---------------------------
-The 3rdparty module libiconv is needed to run the unit tests in the src/tests directory.
-
-
-To build/install this module:
------------------------------------
-
-1) run configure
-
- A shell script named config_command.sh / config_command.bat will be updated to contain last
- used configure command to avoid having to re-remember the configure
- options currently in use.
-
-2) make depend
-
-3) make install
diff --git a/juniper/OWNERS b/juniper/OWNERS
deleted file mode 100644
index 6aeaba5f2a8..00000000000
--- a/juniper/OWNERS
+++ /dev/null
@@ -1,2 +0,0 @@
-geirst
-baldersheim
diff --git a/juniper/README b/juniper/README
deleted file mode 100644
index f044cad83e8..00000000000
--- a/juniper/README
+++ /dev/null
@@ -1,36 +0,0 @@
-
-This module implements a result processing solution to create
-dynamic teasers and proximity boosting of documents based on the
-input query.
-
-The module offers the following main interface:
-
-rpinterface.h
-
- This interface provides access for Juniper to full query structure information.
- The query provider needs to implement the IQuery interface to allow Juniper
- to traverse the query and possibly obtain additional information about each term.
- (see query.h which is included by rpinterface.h)
-
- This is the preferred result processing interface to Juniper.
-
- src/rpclient/testclient.cpp
-
- is an example of use of this interface.
-
-
-Directory structure:
--------------------------
-build - contains the fbuild official build specification for Juniper
-doc - contains manually written and generated (doxygen) documentation
- for Juniper.
-include - default public include file location
-lib - default library location
-src - the main source directory
-src/rpclient - example and regression test client
-src/test - unit and submodule tests using the Fastlib test framework
-src/util - contains some debug utilities for debugging/converting between
- unicode/iso character sets.
-
-See INSTALL.txt for build instructions.
-
diff --git a/juniper/doc/written/fsearchparams.html b/juniper/doc/written/fsearchparams.html
deleted file mode 100644
index 1a968e55c41..00000000000
--- a/juniper/doc/written/fsearchparams.html
+++ /dev/null
@@ -1,488 +0,0 @@
-<!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
-<title>Juniper Configuration Documentation</title>
-<h1>Juniper Configuration Documentation</h1>
-
-<b>Note:</b> This document describes in details the functionality of Juniper v.2.1.0.
-The document has gradually become more and more for internal use for
-instance for detailed tuning
-by Professional Service. A more high level and less detailed user level
-configuration documentation is also available.
-<p>
-Juniper implements a combined proximity ranking and dynamic teaser result
-processing module.This module is intended to be interfaced to by different
-Fast software modules on demand. Currently, the only available module that
-makes use of Juniper is the Fast Server module, in which Juniper currently
-is an integrated part of <dfn>fsearch</dfn> (the search engine executable
-that runs on each search node in the system).
-
-<h2>Juniper simple description of functionality/implementation</h2>
-
-The document body is stripped for markup during document processing and
-stored as an extended document summary field.
-A max limit of how much of the document that gets stored is configurable as
-of Fast Server v.4.17 (see the Fast Server�configuration documentation for
-details). For each document
-on the result page, this document extract is retrieved and fed through
-Juniper which will perform the following steps:
-
-<ol>
- <li> Scan the stripped document text (docsum) for matches of the query,
- create a data structure containing information about those matches,
- and provide a quality measure (rank boost value) that can be used as a
- metric to determine the quality of the document wrt. proximity and
- position of the search string in the document. The data structure
- contains ao. a list of matches of the query ordered by quality (see below
- for the quality measure). The document quality measure is computed from the
- quality measure of the best of the individual matches and the total
- number of hits within the document.
-
- <li> Generate a dynamic teaser based on the data structure previously
- generated. The dynamic teaser is composed of a number of text segments
- that include the "best" matches of the query in that
- document. The teaser is presented with the query words highlighted.
- The definition of highlight is configurable. If the document is short
- enough to fit completely into the configured teaser length, it will be
- provided as is, but with highlighting of the relevant keywords.
-</ol>
-
-Step 2 is only necessary if the teaser is going to be displayed, which
-might be a decision taken on basis of the quality measure provided in step 1.
-
-<h3>Quality measure</h3>
-The text segments matching the query are ranked by (in decreasing order of
-significance):
-
-<ol>
- <li> Completeness * keyword weight -
- higher ranking if more search words are present in
- the same context, and relatively higher weight on matches that
- contains "important" terms compared to matches with stop words if
- equal number of words.
- <li> Proximity - query terms occurring near each other is better
- <li> Position - earlier in document is better
-</ol>
-
-The number of matches selected is based on text segment lengths including
-a configurable amound of surrounding text, the number of matching segments
-to use (configurable) and the required total summary
-size (configurable). The final set of matches is
-returned with markup for the hits and the abbreviated sections
-(continuation symbol).
-
-The query used for teaser generation has undergone proper name recognition
-and English spell checking. Highlighting is done on individual terms of the
-query. In particular, phrases are broken down into individual terms, but
-the preference to proximal terms will maintain the phrasing in the
-generated teaser.
-
-Lemmatization by expanding documents with word inflections cannot be used
-by Juniper. In the future, Juniper would expand the query based on the
-original query and language information. This functionality is not
-available yet, thus lemmatized terms will in general not be highlighted by
-Juniper.
-
-Currently Juniper uses an alternative, simple brute force stemming
-algorithm that basically allows prefixes of the document words to match if
-the document word in question is no longer than P (configurable) bytes
-<i>longer</i> than the query keyword.
-This algorithm works well for keywords of a certain size, but not for very
-short keywords. Thus an additional configuration variable defines a lower
-bound for what lengths of keywords that will be subject to this algorithm.
-With this simple algorithm in place, typical weak form singular to plural
-mapping will get highlighted while the opposite, going from a long form to
-a shorter one will not work as might be expected. Eg. this algorithm does
-not change the keywords themselves. Consequently, the shorter forms of the
-keywords are more likely to give non-exact hits in the dynamic summary.
-
-
-<h2>Fast Search configuration of Juniper</h2>
-Enabling Juniper functionality within Fast Search is done on a per field
-basis by means of override specifications in summary.map.
-Currently the following override specs are supported by Juniper:
-<p>
-<ul>
-<li><pre>override &lt;outputfield&gt; dynamicteaser &lt;inputfield&gt;</pre>
-<li><pre>override &lt;outputfield&gt; dynamicteasermetric
-&lt;inputfield&gt;</pre>
-<li><pre>override &lt;outputfield&gt; juniperlog &lt;inputfield&gt;</pre>
-</ul>
-<p>
-Details of the override directive can be found in <i>Fast Search 4.13 -
-Dynamic Docsum Generation Framework</i>.
-The <tt>dynamicteasermetric</tt> field provides a ranking of the document
-based on a corresponding metric as that used to select between individual
-matches for dynamic teaser generation inside a document. See the section on
-using Juniper for proximity boosting <a href="#proximity">below</a>
-The <tt>juniperlog</tt> field is new as of Juniper 2.0, and is used to
-retrieve the information generated by Juniper by means of the log query
-option, see the runtime option table <a href="#dynpar">below</a>.
-
-Note that when integrated into Data Search 3.1 and later,
-this part of the configuration will be generated via
-<ol>
-<li>The index profile
-<li>The index configuration (indexConfig.xml) by the config server.
-</ol>
-
-<h3>Configuration levels</h3>
-When integrated into Fast Search, Juniper receives its default parameters from
-global settings in the <dfn>fsearchrc</dfn> config file.
-These configuration parameter settings must be preconfigured at
-<dfn>fsearch</dfn> process startup time. Two levels of system configuration
-is currently supported,
-<ol>
-<li><b>System default configuration:</b> This is the configuration settings
-exemplified by the parameter descriptions below.
-<li><b>Per field configuration:</b>By using the field names instead of the
-string "juniper" as prefix, the default setting can be overridden on a
-<dfn>result field</dfn> basis. Eg. setting for instance
-<pre>myfield.dynsum.length 512</pre> (see below) would allow the
-<tt>myfield</tt> result field to receive a different teaser length.
-</ol>
-In addition Juniper 2.x supports changing certain subset of the parameters
-on a per query basis. See <a href="#dynpar">separate section</a> on this below.
-<p>
-<b>Performance note:</b> The per field configuration possibility should be used with
-care since overriding some parameters may cause significant computation
-overhead in that Juniper would have to scan the whole text multiple times.
-Changing the <tt>dynsum</tt> group of fields is generally quite performance
-conservative (only the teaser generation phase would have to be repeated),
-while changing any of the <tt>stem</tt> or <tt>matcher</tt>
-fields would require a different text scan for each combination of
-parameters.
-
-<h3>Arbitrary byte sequences in markup parameters</h3>
-To allow arbitrary byte seqences (such as low ascii values) to be used to
-denote highlight on/off and continuation symbol(s), Juniper now accepts
-strings on the form \xNN where the N's are hex values [0-9a-fA-F].
-This will be converted into a byte value of NN. Note that Juniper exports
-UTF-8 text so this sequence should be a valid UTF-8 byte sequence. No
-checks are performed from Juniper on the validity of such strings in the
-<dfn>fsearch</dfn> domain.
-As a consequence of this, occurrences of backslash must be escaped
-accordingly (<dfn>\\</dfn>).
-
-
-<h3>Blanks in text parameters must be escaped</h3>
-Note that <dfn>fsearchrc</dfn> does not accept blanks in the
-parameters. To allow more complicated highlight markup, the sequence
-<dfn>\x20</dfn> must be used as space in text fields.
-
-<p>
-<h3><a name="em"></a>Escaping markup in the summary text</h3>
-Since Juniper may supply markup through the use of the
-highlight and continuation parameters, problems may occur if the
-analysed text itself contains markup. To avoid this, Juniper may be
-configured to escape the 5 XML/HTML markup symbols
-(<dfn>&quot;&amp;&lt;&apos;&gt;</dfn>) before adding the mentioned
-parametrized symbols. See the description of the
-juniper.dynsum.escape_markup parameter <a href="#empar">below</a>.
-<p>
-The following variables are available for static, global configuration for
-a particular search node:
-<p>
-
-<table><a name="conftable"></a>
- <tr bgcolor="#f0f0f0"><td><b>Parameter name</b></td><td><b>Default
- value</b></td><td><b>Description</b></td>
- </tr>
-
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.highlight_on</td><td>&lt;b&gt;</td>
- <td>A string to be included <i>before</i> each hit in the generated summary</td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.highlight_off</td>
- <td>&lt;/b&gt;</td><td>A string to be included <i>after</i> each hit in
- the generated summary</td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.continuation</td>
- <td>...</td><td>A string to be included to denote
- abbreviated/left out pieces of the original text in the generated summary</td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.separators</td>
- <td>\x1D\x1F</td><td>A string containing characters that are added for
- word separation purposes (eg.CJK languages and German/Norwegian
- etc. word separation). This list should contain non-word characters
- only for this to be meaningful. Also, currently only single byte
- characters are supported. These characters wil be removed from the
- generated teaser by Juniper.</td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.connectors</td>
- <td>-'</td><td>A string containing characters that may connect two word
- tokens to form a single word. Words connected by a single such
- character will not be splitted by Juniper when generating the teaser.</td>
- <tr bgcolor="#f0f0f0">
- <td><a name="empar"></a>juniper.dynsum.escape_markup</td>
- <td>auto</td><td>See <a href="#em">description</a> above. Accepted values:
- <dfn>on</dfn>,<dfn>off</dfn> or <dfn>auto</dfn>. If <dfn>auto</dfn> is
- used, Juniper will escape markup in the generated summary if any of the symbols
- <dfn>highlight_on</dfn>, <dfn>highlight_off</dfn> or
- <dfn>continuation</dfn> contains a <dfn>&lt;</dfn> as the first
- character.
- </td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.length</td>
- <td>256</td><td>Length of the generated summary in bytes. This is a
- hint to Juniper. The result may be slightly longer or shorter depending
- on the structure of the available document text and the submitted
- query.</td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.max_matches</td>
- <td>4</td><td>The number of (possibly partial) set of keywords
- matching the query, to attempt to include in the summary. The larger this
- value compared is set relative to the <i>length</i> parameter, the more
- dense the keywords may appear in the summary.</td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.min_length</td>
- <td>128</td><td>Minimal desired length of the generated summary in
- bytes. This is the shortest summary length for which the number of
- matches will be respected. Eg. if
- a summary appear to become shorter than <i>min_length</i> bytes with
- <i>max_matches</i> matches, then additional matches will be used if available.</td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.dynsum.surround_max</td>
- <td>80</td><td>The maximal number of bytes of context to prepend and append to
- each of the selected query keyword hits. This parameter defines the
- max size a summary would become if there are few keyword hits
- (max_matches set low or document contained few matches of the
- keywords.</td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.stem.min_length</td>
- <td>5</td><td>The minimal number of bytes in a query keyword for
- it to be subject to the simple Juniper stemming algorithm. Keywords
- that are shorter than or equal to this limit will only yield exact
- matches in the dynamic summaries.
- </td>
- <tr bgcolor="#f0f0f0">
- <td>juniper.stem.max_extend</td>
- <td>3</td><td>The maximal number of bytes that a word in the document
- can be <i>longer</i> than the keyword itself to yield a match. Eg. for
- the default values, if the keyword is 7 bytes long, it will match any
- word with length less than or equal to 10 for which the keyword is a prefix.
- </td>
- </tr>
- <tr bgcolor="#f0f0f0">
- <td>juniper.matcher.winsize</td>
- <td>400</td><td>The size of the sliding window used to determine if
- multiple query terms occur together. The larger the value, the more
- likely the system will find (and present in dynamic summary) complete
- matches containing all the search terms. The downside is a potential
- performance overhead of keeping candidates for matches longer during
- matching, and consequently updating more candidates that eventually
- gets thrown.
- </td>
- </tr>
- <tr bgcolor="#f0f0f0">
- <td>juniper.proximity.factor</td><td>0.25</td><td>
-A factor to multiply the internal Juniper metric with when producing
-proximity metric for a given field. A real/floating point value accepted
-Note that the QRserver (see <a href="#qrserver">below</a>)
-also supports a factor that is global to all proximity
-metric fields, and that is applied in addition. </td>
- </tr>
-
-</table>
-
-<h2><a name="dynpar"></a>Alternate behaviour of Juniper on a per query
-basis</h2>
-As of Juniper v.2.x and Fastserver v.4.17, and QRserver for Data Search
-3.2, Juniper supports a number of Juniper specific options that can be
-provided as part of the URL. The format of the option string is
-<pre>
- juniper=&lt;param_name&gt;.&lt;value&gt;[_&lt;param_name&gt;.&lt;value&gt;]*
-</pre>
-As an example, consider the following URL addition:
-<pre>
- juniper=near.2_dynlength.512_dynmatches.8
-</pre>
-If this string is present in the URL, Juniper would generate teasers that
-are up to twice as long and contains up to twice as many matches of the
-query compared to the default values.
-In addition, teasers (and <a href="#proximity">proximity metric</a>) will
-only be
-generated for those documents that fulfills the extra constraint that there
-exist at least one complete match of the query where the distance in words
-between the first and the last word of the query match is no more than 2 (+
-the number of words in the query).
-
-<h3>Supported per query options in Juniper 2.1.0</h3>
-
-<table>
- <tr bgcolor="#f0f0f0"><td><b>Parameter
- name</b></td><td><b>Corresponding config name, see <a href="#conftable">above</a></b></td><td><b>Description</b></td></tr>
- <tr bgcolor="#f0f0f0"><td>dynlength</td><td>dynsum.length</td>
- <td>The desired max length of the generated teaser</td></tr>
- <tr bgcolor="#f0f0f0"><td>dynmatches</td><td>dynsum.max_matches</td>
- <td>The number of matches to try to fit in the teaser</td>
- </tr>
- <tr bgcolor="#f0f0f0"><td>dynsurmax</td><td>dynsum.surround_max</td>
- <td>The maximal amount of surrounding context per keyword hit</td>
- </tr>
- <tr bgcolor="#f0f0f0"><td>near</td><td><i>N/A</i></td><td>Specifies a
- proximity search where keywords should occur closer than the specified
- value in number of words not counting the query terms themselves.</td>
- </tr>
- <tr bgcolor="#f0f0f0"><td>stemext</td><td>juniper.stem.max_extend</td><td>
- The maximal number of bytes that a word in the document can be longer
- than the keyword itself to yield a match.</td>
- </tr>
- <tr bgcolor="#f0f0f0"><td>stemmin</td><td>juniper.stem.min_length</td><td>
- The minimal number of bytes in a query keyword for it to be subject to
- the simple Juniper stemming algorithm.</td>
- </tr>
- <tr bgcolor="#f0f0f0"><td>within</td><td><i>N/A</i></td><td>Same as
- <i>near</i> with the additional constraint that matches of the query must
- have the same order of the query words as the original query.</td>
- </tr>
- <tr bgcolor="#f0f0f0"><td>winsize</td><td>juniper.matcher.winsize</td><td>
- The size of the sliding window used to determine if multiple query terms
- occur together.</td>
- </tr>
- <tr bgcolor="#f0f0f0"><td>log</td><td><i>N/A</i></td><td>Internal debug
- option (privileged port only). Value is a bitmap that allows selectively
- enabled log output to be generated by Juniper for output into a
- juniperlog override configured summary field. Useful only with a special
- template that makes use of this information. Currently the only
- supported bit is 0x8000 which will provide a html table with up to 20 of the
- topmost matches of each document, and their identified proximity
- (distance) and rank.
-</td>
-</table>
-
-<h3>Juniper debug template in Data Search</h3>
-Template support for the log parameter as well as extracting the whole
-juniper input document text is provided by Data Search 3.2 by means of the
-<tt>jsearch</tt> page from the qrserver port. Replace <tt>asearch</tt>
-with <tt>jsearch</tt>
-in the URL of a qrserver privileged port search.
-
-<h2>Using Juniper for proximity boosting with the QRserver</h2>
-In order to use Juniper to boost hits that have good proximity of the query
-(or to filter the hits based on NEAR or WITHIN constraints) the QRserver
-would need to be provided with the following URL addition:
-<pre>
-rpf_proximitybooster:enabled=1
-</pre>
-Note that Juniper will return 0 as proximity metric (dynamicteasermetric)
-if the query with juniper option constraints cannot be satisfied by
-the information in the configured input field. Thus if the selection of a
-hit is done solely on the basis of information not present in the Juniper input
-(such as the title in the default configuration)
-proximity boosting may demote such hits. A solution for this problem has
-been proposed for future versions of Juniper.
-
-<h3><a name="qrserver"></a>Supported QRserver options to use with proximity
-boosting via Juniper</h3>
-QRserver behaviour wrt. proximity boosting can be set both in configuration
-(at QRserver startup) or on a per query basis. In the below table, some of the
-default configuration settings are listed together with their corresponding
-runtime setting, if any. Consult QRserver documentation for the complete
-list of options.
-<p>
-<table>
- <tr bgcolor="#f0f0f0"><td><b>Config parameter
- name</b></td><td><b>Corresponding runtime (URL)
- syntax</a></b></td><td><b>Description</b></td></tr>
- <tr bgcolor="#f0f0f0"><td>rp.proximityboost.enabled=1</td><td>N/A</td><td>Configure for
- proximity boosting in the QRserver (not necessarily enable it)</td></tr>
- <tr
- bgcolor="#f0f0f0"><td>#rp.proximityboost.default</td>
- <td>rpf_proximityboost:enabled=1</td><td>Enable proximity
- boosting</td></tr>
- <tr
- bgcolor="#f0f0f0"><td>rp.proximityboost.factor=0.5</td>
- <td>N/A</td><td>A value that the combined proximity boost value
- calculated possibly from multiple fields, scaled by their individual
- factors are multipled with before adding it to the Fastserver rank value
- to be used to reorder hits.</td></tr>
- <tr bgcolor="#f0f0f0"><td>rp.proximityboost.hits=100</td>
- <td>rpf_proximityboost:hits=100</td><td>The number of Fastserver hits to
- retrieve as basis for the reordering.</td></tr>
- <tr
- bgcolor="#f0f0f0"><td>rp.proximityboost.maxoffset=100</td>
- <td>N/A</td><td>The maximal offset within the list of hits that will be
- subject to any proximity boost reordering/filtering. Hits above this
- range in the original result set will not be subject to proximity boosting.</td></tr>
-</table>
-
-<h2>Configuring Juniper within Data Search</h2>
-Except where explicitly noted, configuring Juniper for Data Search is
-similar to configuring for Real-Time Search. As of Data Search 3.0 Juniper
-is by default configured and enabled in Data Search.
-
-<h2>Configuring Juniper within Fast Real-Time Search</h2>
-Juniper is provided as part of Real-Time Search (through Fast Search)
-starting with version 2.4. To enable the Fast Search integrated Juniper in
-a Real-Time Search environment, see the documentation extensions to
-Real-Time Search 2.4. Note that to configure Juniper within Real-Time
-Search, the configuration variables should be put in the
-<tt>etc/fsearch.addon*</tt> file(s) which will be used as input when Real-Time
-Search generates <tt>fsearchrc</tt> files for all configured search
-engines. Also a proper <tt>summary.map</tt> file is needed to enable the
-dynamic summaries on particular fields.
-
-<h2>Configuring Juniper for Fast Search v.4.15 and higher</h2>
-Newer versions of Fast Search provide template support to allow different
-Juniper markup depending on the type of display desired (plain,html or
-xml).
-
-All the http frontends that needs an interpretation of the highlight
-information provided by Juniper should have the following setup for Juniper:
-<p>
-<table>
-<tr bgcolor="#f0f0f0"><td>juniper.dynsum.highlight_on</td><td>\02</td></tr>
-<tr bgcolor="#f0f0f0"><td>juniper.dynsum.highlight_off</td><td>\03</td></tr>
-<tr bgcolor="#f0f0f0"><td>juniper.dynsum.continuation</td><td>\1E</td></tr>
-</table>
-<p>
-The actual frontend markup configuration then takes place by setting
-variables such as
-<p>
-<table>
-<tr bgcolor="#f0f0f0"><td>tvm.dynsum.html.highlight_on</td></tr>
-<tr bgcolor="#f0f0f0"><td>tvm.dynsum.xml.highlight_off</td></tr>
-</table>
-<p>
-in the relevant rc file.
-
-<h2>How to report bugs/errors related to Juniper</h2>
-Errors/problems related to Juniper can be divided into two categories:
-<ol>
- <li> Problems with specific documents/teasers
- <li> System errors/instability etc.
-</ol>
-Due to the complexity of a full, running system it is much easier for all
-parts if the particular query/document pair triggering the problem can be
-identified and analysed off-line.
-
-<h3>Problems with specific teasers</h3>
-Problems of this category is likely to occur because there are so many
-combinations of queries and documents that it is not possible to
-test for all cases. To be able to analyse such problems, it is vital that
-the exact (byte-by-byte) teaser generation source (document summary input
-to Juniper) can be made available together with the exact query as
-presented to Juniper. To determine this requires the following information:
-<ol>
- <li> The teaser source docsum. The name of the docsum field is dependent
- on the configuration in summary.map. The data should be provided without
- any post processing performed, if possible, to avoid missing problems
- related to bad input data such as malformet UTF8 characters.
- <li> The original query as submitted by the user
- <li> The expanded query (available under <tt>var/log/querylogs/</tt>)
- <li> A corresponding <tt>fsearchrc</tt> (pure fastserver4) or
- <tt>fsearch.addon</tt> (Real Time Search/DS 3.x) file used by the
- fsearch process that performed the task.
-</ol>
-
-
-<h3>System errors/instability problems</h3>
-Problems of category 2 should, if occurring at all only be associated with
-development/beta releases. If such an unfortunate event should happen, the
-following information <dfn>in addition to the information associated with
-category 1</dfn> would be useful to pin down the problem:
-<ol>
- <li> Core file of <dfn>fsearch</dfn> accompanied with the associated
- <dfn>fsearch</dfn> binary.
- <li> Log files from the crashed process (in Data Search these will be
- present as <tt>var/fsearch-*.log</tt> and <tt>var/log/stdout.log</tt>.
-</ol>
diff --git a/juniper/src/Doxyfile b/juniper/src/Doxyfile
deleted file mode 100644
index fb848bfd931..00000000000
--- a/juniper/src/Doxyfile
+++ /dev/null
@@ -1,931 +0,0 @@
-# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-# Doxyfile 1.2.14
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = Juniper
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = ../doc/doxygen
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French,
-# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish,
-# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
-
-OUTPUT_LANGUAGE = English
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = YES
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these class will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = YES
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
-# members of a class in the documentation of that class as if those members were
-# ordinary class members. Constructors, destructors and assignment operators of
-# the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. It is allowed to use relative paths in the argument list.
-
-STRIP_FROM_PATH =
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower case letters. If set to YES upper case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# users are adviced to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explict @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = YES
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# reimplements.
-
-INHERIT_DOCS = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-#ENABLED_SECTIONS = simple \
-# juniper \
-# textproc
-# utils
-
-ENABLED_SECTIONS = juniper
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consist of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C.
-# For instance some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text.
-
-WARN_FORMAT =
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-# Result processing interface:
-#
-INPUT = rpinterface.h query.h IJuniperProperties.h dpinterface.h
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
-# *.h++ *.idl *.odl
-
-FILE_PATTERNS = *.h \
- *.hpp \
- *.txt
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
-# that are symbolic links (a Unix filesystem feature) are excluded from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-
-INPUT_FILTER =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse.
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-
-SOURCE_BROWSER = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT =
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the Html help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+,
-# or Internet explorer 4.0+). Note that for large projects the tree generation
-# can take a very long time. In such cases it is better to disable this feature.
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = YES
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT =
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimised for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT =
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assigments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = YES
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT =
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION =
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_XML = NO
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line and do not end with a semicolon. Such function macros are typically
-# used for boiler-plate code, and will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tagfiles.
-
-TAGFILES = ../../fastos/doc/doxygen/fastos.tag
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE = juniper.tag
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or
-# super classes. Setting the tag to NO turns the diagrams off. Note that this
-# option is superceded by the HAVE_DOT option below. This is only a fallback. It is
-# recommended to install and use dot, since it yield more powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = NO
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are gif, jpg, and png
-# If left blank gif will be used.
-
-DOT_IMAGE_FORMAT = gif
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermedate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL =
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL =
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH =
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH =
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS =
diff --git a/juniper/src/testproject.el b/juniper/src/testproject.el
deleted file mode 100644
index fa8d580b0eb..00000000000
--- a/juniper/src/testproject.el
+++ /dev/null
@@ -1,98 +0,0 @@
-;; Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-;; testproject.el
-
-;; Local configurations for the cpptest Emacs unit-test
-;; framework. This is just an example of typical variables that one
-;; usually uses This file should be located in the same directory as
-;; the class(es) you want to test.
-
-;; $Revision: 1.2 $ $Date: 2003-02-27 12:32:24 $
-;; Author: Nils Sandøy <nils.sandoy@fast.no>
-
-;; Just a message to show that this file is beeing read. Look for this
-;; in the *Messages* buffer.
-(message "Setting local test configuration for the module")
-
-;; Don't use an underscore based naming scheme
-;; classes and method names will Upcase each word instead
-(setq cppt-use-underscore-p nil)
-
-;; Use author in documentation. Set this value to nil if not
-(setq cppt-doc-author-p "t")
-
-;; This is a subdirectory of the directory in which this file, along with
-;; the source code to test, resides
-(setq cppt-test-dir "test")
-
-;; Use this variable to include extra file in your test source, and
-;; application files. Typically this will hold headers for log
-;; functionality etc.
-;; Example: (setq cppt-extra-source-includes "#include \"../Log.h\"")
-(setq cppt-extra-source-includes "#include \"testenv.h\"")
-
-;; If the above source files are not part of a library, you will
-;; probably have to include them in the fastos.project file.
-;; Example: (setq cppt-extra-object-files '("../Log"))
-(setq cppt-extra-object-files '("testenv"))
-
-;; If the source code does not have a fastos.project file with all
-;; required libraries for linking an executable (typically the case
-;; when the source is part of a library itself), then you should use
-;; this variable to provide a list of libraries which will be appended
-;; to the EXTERNALLIBS section for all applications in the
-;; fastos.project file.
-;; Example: (setq cppt-extra-libraries '("fast"))
-(setq cppt-extra-libraries '("src/juniper"))
-(setq cppt-extra-external-libraries '("fast"))
-
-;; Include source file in test executables.
-;; Set this to nil if you are testing part of a library
-(setq cppt-include-source-p "t")
-
-
-;; If your initialisation code below requires special parameters for
-;; running the test executables, add them here
-;; Example: (setq cppt-test-parameters "--test-mode")
-(setq cppt-test-parameters "")
-
-;; If you support a special debug mode, which is executed through the
-;; cppt-suite-debug or cppt-run-test-debug methods, then you should
-;; add the parameter for identifying this here
-;; Example: (setq cppt-test-dbflags "-d")
-(setq cppt-test-dbflags "")
-
-;; If you support logging etc, you should include code here for
-;; insitializing this as part of the Main body of the test application
-;; Example:
-;; Add intialization code that turns on logging, and logs to stderr in debug
-;; mode
-;; (setq cppt-application-init-code
-;; "RTLogDistributor::GetInstance().RegisterDestination(
-;; new Fast_FileLogger(\"CLASSTest.log\"), FLOG_ALL);
-;; for (int i=0; i < argc; ++i) {
-;; if (strcmp(argv[i], \"-d\") == 0) {
-;; // Turn on debug mode (log to stderr)
-;; RTLogDistributor::GetInstance().RegisterDestination(
-;; new Fast_FileLogger(stderr), FLOG_ALL);
-;; LOG_DBG(\"Running in debug mode\");
-;; }
-;; }")
-(setq cppt-application-init-code "")
-
-;; Pretty much the same as the application init code, but this is used
-;; for the Main method of the test suite.
-;; Example:
-;; Add intialization code that turns on logging, and logs to stderr in debug
-;; mode
-;; (setq cppt-suite-init-code
-;; "RTLogDistributor::GetInstance().RegisterDestination(
-;; new Fast_FileLogger(\"SUITETest.log\"), FLOG_ALL);
-;; for (int i=0; i < argc; ++i) {
-;; if (strcmp(argv[i], \"-d\") == 0) {
-;; // Turn on debug mode (log to stderr)
-;; RTLogDistributor::GetInstance().RegisterDestination(
-;; new Fast_FileLogger(stderr), FLOG_ALL);
-;; LOG_DBG(\"Running in debug mode\");
-;; }
-;; }")
-(setq cppt-suite-init-code "")
diff --git a/searchcore/CMakeLists.txt b/searchcore/CMakeLists.txt
index 6d725f01908..48a5e03fca0 100644
--- a/searchcore/CMakeLists.txt
+++ b/searchcore/CMakeLists.txt
@@ -8,7 +8,6 @@ vespa_define_module(
metrics
config_cloudconfig
fastlib_fast
- juniper
configdefinitions
document
searchlib
diff --git a/searchsummary/CMakeLists.txt b/searchsummary/CMakeLists.txt
index 0a5c7ed4c99..668ac5fa60a 100644
--- a/searchsummary/CMakeLists.txt
+++ b/searchsummary/CMakeLists.txt
@@ -8,9 +8,9 @@ vespa_define_module(
document
searchcommon
searchlib
- juniper
LIBS
+ src/vespa/juniper
src/vespa/searchsummary
src/vespa/searchsummary/config
src/vespa/searchsummary/docsummary
@@ -24,4 +24,5 @@ vespa_define_module(
src/tests/docsummary/matched_elements_filter
src/tests/docsummary/slime_summary
src/tests/extractkeywords
+ src/tests/juniper
)
diff --git a/juniper/src/test/.gitignore b/searchsummary/src/tests/juniper/.gitignore
index 46b307da632..46b307da632 100644
--- a/juniper/src/test/.gitignore
+++ b/searchsummary/src/tests/juniper/.gitignore
diff --git a/juniper/src/test/CMakeLists.txt b/searchsummary/src/tests/juniper/CMakeLists.txt
index 73c6b222220..d15e91f1f63 100644
--- a/juniper/src/test/CMakeLists.txt
+++ b/searchsummary/src/tests/juniper/CMakeLists.txt
@@ -5,9 +5,7 @@ vespa_add_executable(juniper_mcandTest_app TEST
mcandTestApp.cpp
testenv.cpp
DEPENDS
- juniper
- vespalib
- fastlib_fast
+ searchsummary
fastlib_fast_testsuite
)
vespa_add_test(NAME juniper_mcandTest_app COMMAND juniper_mcandTest_app)
@@ -18,9 +16,7 @@ vespa_add_executable(juniper_queryparserTest_app TEST
fakerewriter.cpp
testenv.cpp
DEPENDS
- juniper
- vespalib
- fastlib_fast
+ searchsummary
fastlib_fast_testsuite
)
vespa_add_test(NAME juniper_queryparserTest_app COMMAND juniper_queryparserTest_app)
@@ -31,9 +27,7 @@ vespa_add_executable(juniper_matchobjectTest_app TEST
testenv.cpp
fakerewriter.cpp
DEPENDS
- juniper
- vespalib
- fastlib_fast
+ searchsummary
fastlib_fast_testsuite
)
vespa_add_test(NAME juniper_matchobjectTest_app COMMAND juniper_matchobjectTest_app)
@@ -41,9 +35,7 @@ vespa_add_executable(juniper_appender_test_app TEST
SOURCES
appender_test.cpp
DEPENDS
- juniper
- vespalib
- fastlib_fast
+ searchsummary
fastlib_fast_testsuite
)
vespa_add_test(NAME juniper_appender_test_app COMMAND juniper_appender_test_app)
@@ -51,9 +43,7 @@ vespa_add_executable(juniper_queryvisitor_test_app TEST
SOURCES
queryvisitor_test.cpp
DEPENDS
- juniper
- vespalib
- fastlib_fast
+ searchsummary
fastlib_fast_testsuite
)
vespa_add_test(NAME juniper_queryvisitor_test_app COMMAND juniper_queryvisitor_test_app)
@@ -63,9 +53,7 @@ vespa_add_executable(juniper_auxTest_app TEST
auxTestApp.cpp
testenv.cpp
DEPENDS
- juniper
- vespalib
- fastlib_fast
+ searchsummary
fastlib_fast_testsuite
)
vespa_add_test(NAME juniper_auxTest_app COMMAND juniper_auxTest_app)
@@ -79,9 +67,7 @@ vespa_add_executable(juniper_SrcTestSuite_app TEST
auxTest.cpp
testenv.cpp
DEPENDS
- juniper
- vespalib
- fastlib_fast
+ searchsummary
fastlib_fast_testsuite
)
vespa_add_test(NAME juniper_SrcTestSuite_app COMMAND juniper_SrcTestSuite_app)
diff --git a/juniper/src/test/SrcTestSuite.cpp b/searchsummary/src/tests/juniper/SrcTestSuite.cpp
index 1fcaa6e29de..c1e4dc2cd19 100644
--- a/juniper/src/test/SrcTestSuite.cpp
+++ b/searchsummary/src/tests/juniper/SrcTestSuite.cpp
@@ -29,7 +29,7 @@ SrcTestSuite::SrcTestSuite() :
}
int main(int argc, char **argv) {
- juniper::TestEnv te(argc, argv, TEST_PATH("../rpclient/testclient.rc").c_str());
+ juniper::TestEnv te(argc, argv, TEST_PATH("./testclient.rc").c_str());
SrcTestSuite suite;
suite.Run();
long failures = suite.Report();
diff --git a/juniper/src/test/appender_test.cpp b/searchsummary/src/tests/juniper/appender_test.cpp
index 65e876f1a35..65e876f1a35 100644
--- a/juniper/src/test/appender_test.cpp
+++ b/searchsummary/src/tests/juniper/appender_test.cpp
diff --git a/juniper/src/test/auxTest.cpp b/searchsummary/src/tests/juniper/auxTest.cpp
index 15f5ad1749e..15f5ad1749e 100644
--- a/juniper/src/test/auxTest.cpp
+++ b/searchsummary/src/tests/juniper/auxTest.cpp
diff --git a/juniper/src/test/auxTest.h b/searchsummary/src/tests/juniper/auxTest.h
index dd6d79e024a..dd6d79e024a 100644
--- a/juniper/src/test/auxTest.h
+++ b/searchsummary/src/tests/juniper/auxTest.h
diff --git a/juniper/src/test/auxTestApp.cpp b/searchsummary/src/tests/juniper/auxTestApp.cpp
index 1c85796bb1f..5090e2d7dfc 100644
--- a/juniper/src/test/auxTestApp.cpp
+++ b/searchsummary/src/tests/juniper/auxTestApp.cpp
@@ -9,7 +9,7 @@ void Usage(char* s)
int main(int argc, char **argv) {
- juniper::TestEnv te(argc, argv, TEST_PATH("../rpclient/testclient.rc").c_str());
+ juniper::TestEnv te(argc, argv, TEST_PATH("./testclient.rc").c_str());
AuxTest pta;
pta.SetStream(&std::cout);
pta.Run(argc, argv);
diff --git a/juniper/src/test/fakerewriter.cpp b/searchsummary/src/tests/juniper/fakerewriter.cpp
index bbaf7079525..bbaf7079525 100644
--- a/juniper/src/test/fakerewriter.cpp
+++ b/searchsummary/src/tests/juniper/fakerewriter.cpp
diff --git a/juniper/src/test/fakerewriter.h b/searchsummary/src/tests/juniper/fakerewriter.h
index e1e5de59feb..e1e5de59feb 100644
--- a/juniper/src/test/fakerewriter.h
+++ b/searchsummary/src/tests/juniper/fakerewriter.h
diff --git a/juniper/src/test/largeblockchinese.input.utf8 b/searchsummary/src/tests/juniper/largeblockchinese.input.utf8
index 9b85e8d06e6..9b85e8d06e6 100644
--- a/juniper/src/test/largeblockchinese.input.utf8
+++ b/searchsummary/src/tests/juniper/largeblockchinese.input.utf8
diff --git a/juniper/src/test/matchobjectTest.cpp b/searchsummary/src/tests/juniper/matchobjectTest.cpp
index 07e3cf84767..07e3cf84767 100644
--- a/juniper/src/test/matchobjectTest.cpp
+++ b/searchsummary/src/tests/juniper/matchobjectTest.cpp
diff --git a/juniper/src/test/matchobjectTest.h b/searchsummary/src/tests/juniper/matchobjectTest.h
index 5bfd29a371f..5bfd29a371f 100644
--- a/juniper/src/test/matchobjectTest.h
+++ b/searchsummary/src/tests/juniper/matchobjectTest.h
diff --git a/juniper/src/test/matchobjectTestApp.cpp b/searchsummary/src/tests/juniper/matchobjectTestApp.cpp
index 525f7b9446a..8bdebfe7207 100644
--- a/juniper/src/test/matchobjectTestApp.cpp
+++ b/searchsummary/src/tests/juniper/matchobjectTestApp.cpp
@@ -34,7 +34,7 @@ test_wildcard()
int main(int argc, char **argv) {
test_wildcard();
- juniper::TestEnv te(argc, argv, TEST_PATH("../rpclient/testclient.rc").c_str());
+ juniper::TestEnv te(argc, argv, TEST_PATH("./testclient.rc").c_str());
MatchObjectTest test;
test.SetStream(&std::cout);
test.Run(argc, argv);
diff --git a/juniper/src/test/mcandTest.cpp b/searchsummary/src/tests/juniper/mcandTest.cpp
index 5a465275a80..5a465275a80 100644
--- a/juniper/src/test/mcandTest.cpp
+++ b/searchsummary/src/tests/juniper/mcandTest.cpp
diff --git a/juniper/src/test/mcandTest.h b/searchsummary/src/tests/juniper/mcandTest.h
index cdb01e91e3b..cdb01e91e3b 100644
--- a/juniper/src/test/mcandTest.h
+++ b/searchsummary/src/tests/juniper/mcandTest.h
diff --git a/juniper/src/test/mcandTestApp.cpp b/searchsummary/src/tests/juniper/mcandTestApp.cpp
index 825dc61da06..7b1a15934d3 100644
--- a/juniper/src/test/mcandTestApp.cpp
+++ b/searchsummary/src/tests/juniper/mcandTestApp.cpp
@@ -4,7 +4,7 @@
#include <vespa/vespalib/testkit/testapp.h>
int main(int argc, char **argv) {
- juniper::TestEnv te(argc, argv, TEST_PATH("../rpclient/testclient.rc").c_str());
+ juniper::TestEnv te(argc, argv, TEST_PATH("./testclient.rc").c_str());
MatchCandidateTest test;
test.SetStream(&std::cout);
test.Run(argc, argv);
diff --git a/juniper/src/test/partialutf8.input.utf8 b/searchsummary/src/tests/juniper/partialutf8.input.utf8
index df25fbb8c60..df25fbb8c60 100644
--- a/juniper/src/test/partialutf8.input.utf8
+++ b/searchsummary/src/tests/juniper/partialutf8.input.utf8
diff --git a/juniper/src/test/queryparserTest.cpp b/searchsummary/src/tests/juniper/queryparserTest.cpp
index e8afbcc0cee..e8afbcc0cee 100644
--- a/juniper/src/test/queryparserTest.cpp
+++ b/searchsummary/src/tests/juniper/queryparserTest.cpp
diff --git a/juniper/src/test/queryparserTest.h b/searchsummary/src/tests/juniper/queryparserTest.h
index 7dc4dda63fa..7dc4dda63fa 100644
--- a/juniper/src/test/queryparserTest.h
+++ b/searchsummary/src/tests/juniper/queryparserTest.h
diff --git a/juniper/src/test/queryparserTestApp.cpp b/searchsummary/src/tests/juniper/queryparserTestApp.cpp
index a2c551a4730..c34f0b77ae9 100644
--- a/juniper/src/test/queryparserTestApp.cpp
+++ b/searchsummary/src/tests/juniper/queryparserTestApp.cpp
@@ -6,7 +6,7 @@
int main(int argc, char **argv) {
- juniper::TestEnv te(argc, argv, TEST_PATH("../rpclient/testclient.rc").c_str());
+ juniper::TestEnv te(argc, argv, TEST_PATH("./testclient.rc").c_str());
QueryParserTest test;
test.SetStream(&std::cout);
test.Run(argc, argv);
diff --git a/juniper/src/test/queryvisitor_test.cpp b/searchsummary/src/tests/juniper/queryvisitor_test.cpp
index 0b99bf6583c..0b99bf6583c 100644
--- a/juniper/src/test/queryvisitor_test.cpp
+++ b/searchsummary/src/tests/juniper/queryvisitor_test.cpp
diff --git a/juniper/src/rpclient/testclient.rc b/searchsummary/src/tests/juniper/testclient.rc
index d04262c364c..d04262c364c 100644
--- a/juniper/src/rpclient/testclient.rc
+++ b/searchsummary/src/tests/juniper/testclient.rc
diff --git a/juniper/src/test/testenv.cpp b/searchsummary/src/tests/juniper/testenv.cpp
index 769c24b829c..769c24b829c 100644
--- a/juniper/src/test/testenv.cpp
+++ b/searchsummary/src/tests/juniper/testenv.cpp
diff --git a/juniper/src/test/testenv.h b/searchsummary/src/tests/juniper/testenv.h
index a43f4a11bec..a43f4a11bec 100644
--- a/juniper/src/test/testenv.h
+++ b/searchsummary/src/tests/juniper/testenv.h
diff --git a/juniper/src/vespa/juniper/.gitignore b/searchsummary/src/vespa/juniper/.gitignore
index d4d35b71c0f..d4d35b71c0f 100644
--- a/juniper/src/vespa/juniper/.gitignore
+++ b/searchsummary/src/vespa/juniper/.gitignore
diff --git a/juniper/src/vespa/juniper/CMakeLists.txt b/searchsummary/src/vespa/juniper/CMakeLists.txt
index 5420aa203ea..3d6b72ef511 100644
--- a/juniper/src/vespa/juniper/CMakeLists.txt
+++ b/searchsummary/src/vespa/juniper/CMakeLists.txt
@@ -1,5 +1,5 @@
# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_library(juniper
+vespa_add_library(searchsummary_juniper OBJECT
SOURCES
Matcher.cpp
appender.cpp
@@ -25,6 +25,5 @@ vespa_add_library(juniper
expcache.cpp
reducematcher.cpp
specialtokenregistry.cpp
- INSTALL lib64
DEPENDS
)
diff --git a/juniper/src/vespa/juniper/IJuniperProperties.h b/searchsummary/src/vespa/juniper/IJuniperProperties.h
index 63ada17684c..63ada17684c 100644
--- a/juniper/src/vespa/juniper/IJuniperProperties.h
+++ b/searchsummary/src/vespa/juniper/IJuniperProperties.h
diff --git a/juniper/src/vespa/juniper/ITokenProcessor.h b/searchsummary/src/vespa/juniper/ITokenProcessor.h
index fbb9a93075c..fbb9a93075c 100644
--- a/juniper/src/vespa/juniper/ITokenProcessor.h
+++ b/searchsummary/src/vespa/juniper/ITokenProcessor.h
diff --git a/juniper/src/vespa/juniper/Matcher.cpp b/searchsummary/src/vespa/juniper/Matcher.cpp
index e286068038b..e286068038b 100644
--- a/juniper/src/vespa/juniper/Matcher.cpp
+++ b/searchsummary/src/vespa/juniper/Matcher.cpp
diff --git a/juniper/src/vespa/juniper/Matcher.h b/searchsummary/src/vespa/juniper/Matcher.h
index 5564537ae4a..5564537ae4a 100644
--- a/juniper/src/vespa/juniper/Matcher.h
+++ b/searchsummary/src/vespa/juniper/Matcher.h
diff --git a/juniper/src/vespa/juniper/SummaryConfig.cpp b/searchsummary/src/vespa/juniper/SummaryConfig.cpp
index 5b009ea5cd2..5b009ea5cd2 100644
--- a/juniper/src/vespa/juniper/SummaryConfig.cpp
+++ b/searchsummary/src/vespa/juniper/SummaryConfig.cpp
diff --git a/juniper/src/vespa/juniper/SummaryConfig.h b/searchsummary/src/vespa/juniper/SummaryConfig.h
index fdf4cdcaae1..fdf4cdcaae1 100644
--- a/juniper/src/vespa/juniper/SummaryConfig.h
+++ b/searchsummary/src/vespa/juniper/SummaryConfig.h
diff --git a/juniper/src/vespa/juniper/appender.cpp b/searchsummary/src/vespa/juniper/appender.cpp
index 4d55f62a27a..4d55f62a27a 100644
--- a/juniper/src/vespa/juniper/appender.cpp
+++ b/searchsummary/src/vespa/juniper/appender.cpp
diff --git a/juniper/src/vespa/juniper/appender.h b/searchsummary/src/vespa/juniper/appender.h
index 760fd18feca..760fd18feca 100644
--- a/juniper/src/vespa/juniper/appender.h
+++ b/searchsummary/src/vespa/juniper/appender.h
diff --git a/juniper/src/vespa/juniper/charutil.h b/searchsummary/src/vespa/juniper/charutil.h
index 859bb6e6ed9..859bb6e6ed9 100644
--- a/juniper/src/vespa/juniper/charutil.h
+++ b/searchsummary/src/vespa/juniper/charutil.h
diff --git a/juniper/src/vespa/juniper/config.cpp b/searchsummary/src/vespa/juniper/config.cpp
index b9213bb21f1..b9213bb21f1 100644
--- a/juniper/src/vespa/juniper/config.cpp
+++ b/searchsummary/src/vespa/juniper/config.cpp
diff --git a/juniper/src/vespa/juniper/config.h b/searchsummary/src/vespa/juniper/config.h
index a9dabdd91d1..a9dabdd91d1 100644
--- a/juniper/src/vespa/juniper/config.h
+++ b/searchsummary/src/vespa/juniper/config.h
diff --git a/juniper/src/vespa/juniper/dpinterface.cpp b/searchsummary/src/vespa/juniper/dpinterface.cpp
index 7b7c5aa7120..7b7c5aa7120 100644
--- a/juniper/src/vespa/juniper/dpinterface.cpp
+++ b/searchsummary/src/vespa/juniper/dpinterface.cpp
diff --git a/juniper/src/vespa/juniper/dpinterface.h b/searchsummary/src/vespa/juniper/dpinterface.h
index 8f538cee05d..8f538cee05d 100644
--- a/juniper/src/vespa/juniper/dpinterface.h
+++ b/searchsummary/src/vespa/juniper/dpinterface.h
diff --git a/juniper/src/vespa/juniper/expcache.cpp b/searchsummary/src/vespa/juniper/expcache.cpp
index 7436054932b..7436054932b 100644
--- a/juniper/src/vespa/juniper/expcache.cpp
+++ b/searchsummary/src/vespa/juniper/expcache.cpp
diff --git a/juniper/src/vespa/juniper/expcache.h b/searchsummary/src/vespa/juniper/expcache.h
index 5f16397d69a..5f16397d69a 100644
--- a/juniper/src/vespa/juniper/expcache.h
+++ b/searchsummary/src/vespa/juniper/expcache.h
diff --git a/juniper/src/vespa/juniper/foreach_utils.h b/searchsummary/src/vespa/juniper/foreach_utils.h
index ebbf1f41049..ebbf1f41049 100644
--- a/juniper/src/vespa/juniper/foreach_utils.h
+++ b/searchsummary/src/vespa/juniper/foreach_utils.h
diff --git a/juniper/src/vespa/juniper/hashbase.h b/searchsummary/src/vespa/juniper/hashbase.h
index 2cdfc02800f..2cdfc02800f 100644
--- a/juniper/src/vespa/juniper/hashbase.h
+++ b/searchsummary/src/vespa/juniper/hashbase.h
diff --git a/juniper/src/vespa/juniper/juniperdebug.h b/searchsummary/src/vespa/juniper/juniperdebug.h
index cf6a3c971f8..cf6a3c971f8 100644
--- a/juniper/src/vespa/juniper/juniperdebug.h
+++ b/searchsummary/src/vespa/juniper/juniperdebug.h
diff --git a/juniper/src/vespa/juniper/juniperparams.cpp b/searchsummary/src/vespa/juniper/juniperparams.cpp
index e600c23f7c4..e600c23f7c4 100644
--- a/juniper/src/vespa/juniper/juniperparams.cpp
+++ b/searchsummary/src/vespa/juniper/juniperparams.cpp
diff --git a/juniper/src/vespa/juniper/juniperparams.h b/searchsummary/src/vespa/juniper/juniperparams.h
index 44980ce8b43..44980ce8b43 100644
--- a/juniper/src/vespa/juniper/juniperparams.h
+++ b/searchsummary/src/vespa/juniper/juniperparams.h
diff --git a/juniper/src/vespa/juniper/keyocc.cpp b/searchsummary/src/vespa/juniper/keyocc.cpp
index 7214bc72fe9..7214bc72fe9 100644
--- a/juniper/src/vespa/juniper/keyocc.cpp
+++ b/searchsummary/src/vespa/juniper/keyocc.cpp
diff --git a/juniper/src/vespa/juniper/keyocc.h b/searchsummary/src/vespa/juniper/keyocc.h
index 8c79e51e3a3..8c79e51e3a3 100644
--- a/juniper/src/vespa/juniper/keyocc.h
+++ b/searchsummary/src/vespa/juniper/keyocc.h
diff --git a/juniper/src/vespa/juniper/matchelem.cpp b/searchsummary/src/vespa/juniper/matchelem.cpp
index 27c4c9516e9..27c4c9516e9 100644
--- a/juniper/src/vespa/juniper/matchelem.cpp
+++ b/searchsummary/src/vespa/juniper/matchelem.cpp
diff --git a/juniper/src/vespa/juniper/matchelem.h b/searchsummary/src/vespa/juniper/matchelem.h
index 7948eabb8ed..7948eabb8ed 100644
--- a/juniper/src/vespa/juniper/matchelem.h
+++ b/searchsummary/src/vespa/juniper/matchelem.h
diff --git a/juniper/src/vespa/juniper/matchobject.cpp b/searchsummary/src/vespa/juniper/matchobject.cpp
index 376f970d73b..376f970d73b 100644
--- a/juniper/src/vespa/juniper/matchobject.cpp
+++ b/searchsummary/src/vespa/juniper/matchobject.cpp
diff --git a/juniper/src/vespa/juniper/matchobject.h b/searchsummary/src/vespa/juniper/matchobject.h
index 3278448e0f7..3278448e0f7 100644
--- a/juniper/src/vespa/juniper/matchobject.h
+++ b/searchsummary/src/vespa/juniper/matchobject.h
diff --git a/juniper/src/vespa/juniper/mcand.cpp b/searchsummary/src/vespa/juniper/mcand.cpp
index f67788d59ed..f67788d59ed 100644
--- a/juniper/src/vespa/juniper/mcand.cpp
+++ b/searchsummary/src/vespa/juniper/mcand.cpp
diff --git a/juniper/src/vespa/juniper/mcand.h b/searchsummary/src/vespa/juniper/mcand.h
index a09a18267c1..a09a18267c1 100644
--- a/juniper/src/vespa/juniper/mcand.h
+++ b/searchsummary/src/vespa/juniper/mcand.h
diff --git a/juniper/src/vespa/juniper/propreader.cpp b/searchsummary/src/vespa/juniper/propreader.cpp
index 99a6e580126..99a6e580126 100644
--- a/juniper/src/vespa/juniper/propreader.cpp
+++ b/searchsummary/src/vespa/juniper/propreader.cpp
diff --git a/juniper/src/vespa/juniper/propreader.h b/searchsummary/src/vespa/juniper/propreader.h
index fbc6f53bfb1..fbc6f53bfb1 100644
--- a/juniper/src/vespa/juniper/propreader.h
+++ b/searchsummary/src/vespa/juniper/propreader.h
diff --git a/juniper/src/vespa/juniper/query.h b/searchsummary/src/vespa/juniper/query.h
index 8208b234d6b..8208b234d6b 100644
--- a/juniper/src/vespa/juniper/query.h
+++ b/searchsummary/src/vespa/juniper/query.h
diff --git a/juniper/src/vespa/juniper/queryhandle.cpp b/searchsummary/src/vespa/juniper/queryhandle.cpp
index ab2e24970fd..ab2e24970fd 100644
--- a/juniper/src/vespa/juniper/queryhandle.cpp
+++ b/searchsummary/src/vespa/juniper/queryhandle.cpp
diff --git a/juniper/src/vespa/juniper/queryhandle.h b/searchsummary/src/vespa/juniper/queryhandle.h
index d0b266e99ce..d0b266e99ce 100644
--- a/juniper/src/vespa/juniper/queryhandle.h
+++ b/searchsummary/src/vespa/juniper/queryhandle.h
diff --git a/juniper/src/vespa/juniper/querymodifier.cpp b/searchsummary/src/vespa/juniper/querymodifier.cpp
index 797617b605a..797617b605a 100644
--- a/juniper/src/vespa/juniper/querymodifier.cpp
+++ b/searchsummary/src/vespa/juniper/querymodifier.cpp
diff --git a/juniper/src/vespa/juniper/querymodifier.h b/searchsummary/src/vespa/juniper/querymodifier.h
index ec0d20778fb..ec0d20778fb 100644
--- a/juniper/src/vespa/juniper/querymodifier.h
+++ b/searchsummary/src/vespa/juniper/querymodifier.h
diff --git a/juniper/src/vespa/juniper/querynode.cpp b/searchsummary/src/vespa/juniper/querynode.cpp
index 1a7a80333c7..1a7a80333c7 100644
--- a/juniper/src/vespa/juniper/querynode.cpp
+++ b/searchsummary/src/vespa/juniper/querynode.cpp
diff --git a/juniper/src/vespa/juniper/querynode.h b/searchsummary/src/vespa/juniper/querynode.h
index c6fecaf1b9f..c6fecaf1b9f 100644
--- a/juniper/src/vespa/juniper/querynode.h
+++ b/searchsummary/src/vespa/juniper/querynode.h
diff --git a/juniper/src/vespa/juniper/queryparser.cpp b/searchsummary/src/vespa/juniper/queryparser.cpp
index 9b8169bee44..9b8169bee44 100644
--- a/juniper/src/vespa/juniper/queryparser.cpp
+++ b/searchsummary/src/vespa/juniper/queryparser.cpp
diff --git a/juniper/src/vespa/juniper/queryparser.h b/searchsummary/src/vespa/juniper/queryparser.h
index 5715daa3661..5715daa3661 100644
--- a/juniper/src/vespa/juniper/queryparser.h
+++ b/searchsummary/src/vespa/juniper/queryparser.h
diff --git a/juniper/src/vespa/juniper/queryvisitor.cpp b/searchsummary/src/vespa/juniper/queryvisitor.cpp
index dcd716c0c0f..dcd716c0c0f 100644
--- a/juniper/src/vespa/juniper/queryvisitor.cpp
+++ b/searchsummary/src/vespa/juniper/queryvisitor.cpp
diff --git a/juniper/src/vespa/juniper/queryvisitor.h b/searchsummary/src/vespa/juniper/queryvisitor.h
index 7c82d3fa50a..7c82d3fa50a 100644
--- a/juniper/src/vespa/juniper/queryvisitor.h
+++ b/searchsummary/src/vespa/juniper/queryvisitor.h
diff --git a/juniper/src/vespa/juniper/reducematcher.cpp b/searchsummary/src/vespa/juniper/reducematcher.cpp
index 642daae9773..642daae9773 100644
--- a/juniper/src/vespa/juniper/reducematcher.cpp
+++ b/searchsummary/src/vespa/juniper/reducematcher.cpp
diff --git a/juniper/src/vespa/juniper/reducematcher.h b/searchsummary/src/vespa/juniper/reducematcher.h
index cfdc252b17e..cfdc252b17e 100644
--- a/juniper/src/vespa/juniper/reducematcher.h
+++ b/searchsummary/src/vespa/juniper/reducematcher.h
diff --git a/juniper/src/vespa/juniper/result.cpp b/searchsummary/src/vespa/juniper/result.cpp
index 653e692e015..653e692e015 100644
--- a/juniper/src/vespa/juniper/result.cpp
+++ b/searchsummary/src/vespa/juniper/result.cpp
diff --git a/juniper/src/vespa/juniper/result.h b/searchsummary/src/vespa/juniper/result.h
index f0dcf3d4335..f0dcf3d4335 100644
--- a/juniper/src/vespa/juniper/result.h
+++ b/searchsummary/src/vespa/juniper/result.h
diff --git a/juniper/src/vespa/juniper/rewriter.h b/searchsummary/src/vespa/juniper/rewriter.h
index 92542da5acc..92542da5acc 100644
--- a/juniper/src/vespa/juniper/rewriter.h
+++ b/searchsummary/src/vespa/juniper/rewriter.h
diff --git a/juniper/src/vespa/juniper/rpinterface.cpp b/searchsummary/src/vespa/juniper/rpinterface.cpp
index 75a441fb957..75a441fb957 100644
--- a/juniper/src/vespa/juniper/rpinterface.cpp
+++ b/searchsummary/src/vespa/juniper/rpinterface.cpp
diff --git a/juniper/src/vespa/juniper/rpinterface.h b/searchsummary/src/vespa/juniper/rpinterface.h
index 6cda324ae5c..6cda324ae5c 100644
--- a/juniper/src/vespa/juniper/rpinterface.h
+++ b/searchsummary/src/vespa/juniper/rpinterface.h
diff --git a/juniper/src/vespa/juniper/simplemap.h b/searchsummary/src/vespa/juniper/simplemap.h
index 079637de231..079637de231 100644
--- a/juniper/src/vespa/juniper/simplemap.h
+++ b/searchsummary/src/vespa/juniper/simplemap.h
diff --git a/juniper/src/vespa/juniper/specialtokenregistry.cpp b/searchsummary/src/vespa/juniper/specialtokenregistry.cpp
index cda8bc0fcd7..cda8bc0fcd7 100644
--- a/juniper/src/vespa/juniper/specialtokenregistry.cpp
+++ b/searchsummary/src/vespa/juniper/specialtokenregistry.cpp
diff --git a/juniper/src/vespa/juniper/specialtokenregistry.h b/searchsummary/src/vespa/juniper/specialtokenregistry.h
index 2240dcf65b0..2240dcf65b0 100644
--- a/juniper/src/vespa/juniper/specialtokenregistry.h
+++ b/searchsummary/src/vespa/juniper/specialtokenregistry.h
diff --git a/juniper/src/vespa/juniper/stringmap.cpp b/searchsummary/src/vespa/juniper/stringmap.cpp
index 3cb9e9b62e0..3cb9e9b62e0 100644
--- a/juniper/src/vespa/juniper/stringmap.cpp
+++ b/searchsummary/src/vespa/juniper/stringmap.cpp
diff --git a/juniper/src/vespa/juniper/stringmap.h b/searchsummary/src/vespa/juniper/stringmap.h
index 4b6265695ad..4b6265695ad 100644
--- a/juniper/src/vespa/juniper/stringmap.h
+++ b/searchsummary/src/vespa/juniper/stringmap.h
diff --git a/juniper/src/vespa/juniper/sumdesc.cpp b/searchsummary/src/vespa/juniper/sumdesc.cpp
index fcee1eb605f..fcee1eb605f 100644
--- a/juniper/src/vespa/juniper/sumdesc.cpp
+++ b/searchsummary/src/vespa/juniper/sumdesc.cpp
diff --git a/juniper/src/vespa/juniper/sumdesc.h b/searchsummary/src/vespa/juniper/sumdesc.h
index d91bf160e04..d91bf160e04 100644
--- a/juniper/src/vespa/juniper/sumdesc.h
+++ b/searchsummary/src/vespa/juniper/sumdesc.h
diff --git a/juniper/src/vespa/juniper/tokenizer.cpp b/searchsummary/src/vespa/juniper/tokenizer.cpp
index db6e1ecfccd..db6e1ecfccd 100644
--- a/juniper/src/vespa/juniper/tokenizer.cpp
+++ b/searchsummary/src/vespa/juniper/tokenizer.cpp
diff --git a/juniper/src/vespa/juniper/tokenizer.h b/searchsummary/src/vespa/juniper/tokenizer.h
index 34ed1dba5bb..34ed1dba5bb 100644
--- a/juniper/src/vespa/juniper/tokenizer.h
+++ b/searchsummary/src/vespa/juniper/tokenizer.h
diff --git a/juniper/src/vespa/juniper/wildcard_match.h b/searchsummary/src/vespa/juniper/wildcard_match.h
index 2cde4364693..2cde4364693 100644
--- a/juniper/src/vespa/juniper/wildcard_match.h
+++ b/searchsummary/src/vespa/juniper/wildcard_match.h
diff --git a/searchsummary/src/vespa/searchsummary/CMakeLists.txt b/searchsummary/src/vespa/searchsummary/CMakeLists.txt
index 917e8b017da..6ec91622980 100644
--- a/searchsummary/src/vespa/searchsummary/CMakeLists.txt
+++ b/searchsummary/src/vespa/searchsummary/CMakeLists.txt
@@ -3,6 +3,7 @@ vespa_add_library(searchsummary
SOURCES
$<TARGET_OBJECTS:searchsummary_config>
$<TARGET_OBJECTS:searchsummary_docsummary>
+ $<TARGET_OBJECTS:searchsummary_juniper>
INSTALL lib64
DEPENDS
z