summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java6
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/HexByteIterator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/PacketDumper.java2
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/PacketListener.java2
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/PacketNotificationsBroadcaster.java2
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/PacketQueryTracer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java2
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/mplex/Backend.java20
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/mplex/FS4Channel.java18
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/CacheControl.java8
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java6
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java11
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java20
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java13
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/ProgrammaticParser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/Discloser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/TextualQueryRepresentation.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java4
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/searcher/MultipleResultsSearcher.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/templates/HitContext.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/templates/LogExceptionUserTemplateDelegator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/templates/SearchRendererAdaptor.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/Query.java28
-rw-r--r--container-search/src/main/java/com/yahoo/search/config/dispatchprototype/package-info.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/SearchCluster.java9
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPClientSearcher.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPProviderSearcher.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/http/HTTPClientSearcher.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/http/HTTPProviderSearcher.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/http/HTTPSearcher.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/selection/FederationTarget.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/selection/TargetSelector.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainInvocationSpec.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SingleTarget.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/Target.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedProviderException.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/vespa/VespaSearcher.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/Continuation.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/GroupingValidator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/UnavailableAttributeException.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/AddFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/AggregatorNode.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/AllOperation.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/AndFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/AttributeFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/AttributeValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/AvgAggregator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/AvgFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/BucketResolver.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/BucketValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/CatFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/ConstantValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/CountAggregator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DivFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DocIdNsSpecificValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DoubleBucket.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DoublePredefined.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DoubleValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/EachOperation.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/ExpressionVisitor.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/GroupingNode.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/LongBucket.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/LongPredefined.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/LongValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MathResolver.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MaxAggregator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MaxFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MinAggregator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/ModFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MulFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/OrFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/PredefinedFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/RelevanceValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/StrCatFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/StringBucket.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/StringPredefined.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/StringValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/SubFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/SumAggregator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/SummaryValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/TimeFunctions.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/XorAggregator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/XorFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/YmumValue.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/parser/GroupingParserInput.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/AbstractList.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/BucketGroupId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/DoubleBucketId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/DoubleId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/Group.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/GroupId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/GroupList.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/HitList.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/HitRenderer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/LongBucketId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/LongId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/NullId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/RawId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/RootGroup.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/RootId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/StringBucketId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/StringId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/result/ValueGroupId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/CompositeContinuation.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/ContinuationDecoder.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/EncodableContinuation.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/ExpressionConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingTransform.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerDecoder.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerEncoder.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/RequestBuilder.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultBuilder.java4
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultId.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java76
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/parser/Parser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/parser/ParserEnvironment.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/TextSerialize.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/AndNotRestConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/CompositeConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/IntConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemContext.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemExecutorRegistry.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormHandler.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/ListUtil.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/NearConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/PrefixConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/SubStringConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/SuffixConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/TermConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/TypeCheck.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/WordConverter.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/parser/DispatchFormHandler.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/DispatchForm.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/ItemIdMapper.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/QueryTreeSerializer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/Serializer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/Renderer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/MetaHitsFirstComparator.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationOptions.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationSearcherModel.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchchain/model/federation/HttpProviderSpec.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/yql/VespaGroupingStep.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/yql/YqlParser.java2
-rw-r--r--container-search/src/main/javacc/com/yahoo/search/query/textserialize/parser/Parser.jj2
-rw-r--r--container-search/src/test/java/com/yahoo/fs4/test/HexByteIteratorTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/IndexFactsFactory.java2
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java10
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTester.java3
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/test/fs4mock/MockFS4ResourcePool.java3
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/query/parser/TestLinguistics.java2
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/query/textualrepresentation/test/TextualQueryRepresentationTestCase.java2
-rwxr-xr-xcontainer-search/src/test/java/com/yahoo/prelude/querytransform/test/RecallSearcherTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/searcher/test/MultipleResultsTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SearchChainResolverTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SourceRefResolverTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/federation/test/AddHitsWithRelevanceSearcher.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/federation/test/BlockingSearcher.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/federation/test/HitCountTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/federation/test/SetHitCountsSearcher.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/ContinuationTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/GroupingValidatorTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/request/BucketResolverTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/request/ExpressionVisitorTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/request/GroupingOperationTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/request/MathResolverTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/request/RequestTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserBenchmarkTest.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/result/GroupIdTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/result/GroupTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerDecoderTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerEncoderTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultBuilderTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultIdTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java466
-rw-r--r--container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java8
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileVariantsCloneTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/textserialize/item/test/ParseItemTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/textserialize/serializer/test/SerializeItemTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/searchchain/config/test/DependencyConfigTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/searchchain/test/SimpleSearchChain.java2
236 files changed, 863 insertions, 283 deletions
diff --git a/container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java b/container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java
index 075ec60c099..e5ab00fb139 100644
--- a/container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java
+++ b/container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java
@@ -28,9 +28,9 @@ public class DocumentInfo implements Cloneable {
}
public DocumentInfo(GlobalId globalId, int metric, int partId, int distributionKey) {
- this.globalId=globalId;
- this.metric=metric;
- this.partId=partId;
+ this.globalId = globalId;
+ this.metric = metric;
+ this.partId = partId;
this.distributionKey = distributionKey;
}
diff --git a/container-search/src/main/java/com/yahoo/fs4/HexByteIterator.java b/container-search/src/main/java/com/yahoo/fs4/HexByteIterator.java
index 5df9e260c15..78ba857c475 100644
--- a/container-search/src/main/java/com/yahoo/fs4/HexByteIterator.java
+++ b/container-search/src/main/java/com/yahoo/fs4/HexByteIterator.java
@@ -8,7 +8,7 @@ import java.util.Iterator;
* Provides sequential access to each byte of a buffer
* as a hexadecimal string of length 2.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public final class HexByteIterator implements Iterator<String> {
private final ByteBuffer buffer;
diff --git a/container-search/src/main/java/com/yahoo/fs4/PacketDumper.java b/container-search/src/main/java/com/yahoo/fs4/PacketDumper.java
index 123403a1c8d..6b2c792837a 100644
--- a/container-search/src/main/java/com/yahoo/fs4/PacketDumper.java
+++ b/container-search/src/main/java/com/yahoo/fs4/PacketDumper.java
@@ -20,7 +20,7 @@ import com.yahoo.search.Query;
/**
* Responsible for dumping query &amp; query result packets
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class PacketDumper implements PacketListener {
/** High level representation of packet types (e.g. query, result, ...) */
diff --git a/container-search/src/main/java/com/yahoo/fs4/PacketListener.java b/container-search/src/main/java/com/yahoo/fs4/PacketListener.java
index a876caf9699..113da03b420 100644
--- a/container-search/src/main/java/com/yahoo/fs4/PacketListener.java
+++ b/container-search/src/main/java/com/yahoo/fs4/PacketListener.java
@@ -8,7 +8,7 @@ import com.yahoo.fs4.mplex.FS4Channel;
/**
* Interface for recieving notifications of packets sent or recieved.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public interface PacketListener {
void packetSent(FS4Channel channel, BasicPacket packet, ByteBuffer serializedForm);
diff --git a/container-search/src/main/java/com/yahoo/fs4/PacketNotificationsBroadcaster.java b/container-search/src/main/java/com/yahoo/fs4/PacketNotificationsBroadcaster.java
index 06c908cac4b..1be79031d1b 100644
--- a/container-search/src/main/java/com/yahoo/fs4/PacketNotificationsBroadcaster.java
+++ b/container-search/src/main/java/com/yahoo/fs4/PacketNotificationsBroadcaster.java
@@ -8,7 +8,7 @@ import com.yahoo.fs4.mplex.FS4Channel;
/**
* Broadcasts packet notifications to a list of listeners.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class PacketNotificationsBroadcaster implements PacketListener {
diff --git a/container-search/src/main/java/com/yahoo/fs4/PacketQueryTracer.java b/container-search/src/main/java/com/yahoo/fs4/PacketQueryTracer.java
index ded5db99594..b577ef31ad8 100644
--- a/container-search/src/main/java/com/yahoo/fs4/PacketQueryTracer.java
+++ b/container-search/src/main/java/com/yahoo/fs4/PacketQueryTracer.java
@@ -9,7 +9,7 @@ import com.yahoo.search.Query;
/**
* Adds packets to the query context
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class PacketQueryTracer implements PacketListener {
diff --git a/container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java b/container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java
index b18d1e88a4b..239101184ea 100644
--- a/container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java
+++ b/container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java
@@ -125,7 +125,7 @@ public class QueryResultPacket extends Packet {
soonActiveDocs = buffer.getLong();
degradedReason = buffer.getInt();
- decodeDocuments(buffer,documentCount);
+ decodeDocuments(buffer, documentCount);
if (propsFeature) {
int numMaps = buffer.getInt();
propsArray = new FS4Properties[numMaps];
diff --git a/container-search/src/main/java/com/yahoo/fs4/mplex/Backend.java b/container-search/src/main/java/com/yahoo/fs4/mplex/Backend.java
index 81192be035a..68a13c06e32 100644
--- a/container-search/src/main/java/com/yahoo/fs4/mplex/Backend.java
+++ b/container-search/src/main/java/com/yahoo/fs4/mplex/Backend.java
@@ -61,7 +61,7 @@ public class Backend implements ConnectionFactory {
private final ConnectionPool connectionPool;
private final PacketDumper packetDumper;
private final AtomicInteger connectionCount = new AtomicInteger(0);
-
+ private final Optional<Integer> distributionKey;
/**
* For unit testing. do not use
@@ -74,9 +74,15 @@ public class Backend implements ConnectionFactory {
packetDumper = null;
address = null;
connectionPool = new ConnectionPool();
+ distributionKey = Optional.empty();
}
- public Backend(String host, int port, String serverDiscriminator, ListenerPool listenerPool, ConnectionPool connectionPool) {
+ public Backend(String host,
+ int port,
+ String serverDiscriminator,
+ ListenerPool listenerPool,
+ ConnectionPool connectionPool,
+ Optional<Integer> distributionKey) {
String fileNamePattern = "qrs." + serverDiscriminator + '.' + host + ":" + port + ".%s" + ".dump";
packetDumper = new PacketDumper(new File(Defaults.getDefaults().underVespaHome("logs/vespa/qrs/")),
fileNamePattern);
@@ -86,6 +92,7 @@ public class Backend implements ConnectionFactory {
this.port = port;
address = new InetSocketAddress(host, port);
this.connectionPool = connectionPool;
+ this.distributionKey = distributionKey;
}
private void logWarning(String attemptDescription, Exception e) {
@@ -96,11 +103,13 @@ public class Backend implements ConnectionFactory {
log.log(Level.INFO, "Exception on " + attemptDescription + " '" + host + ":" + port + "': " + Exceptions.toMessageString(e));
}
+ /** Returns the distribution key of the content node this represents, or empty if it is a dispatch node */
+ public Optional<Integer> distributionKey() { return distributionKey; }
+
// ============================================================
// ==== connection pool stuff
// ============================================================
-
/**
* Fetch a connection from the connection pool. If the pool
* is empty we create a connection.
@@ -187,10 +196,7 @@ public class Backend implements ConnectionFactory {
//==== channel management
//============================================================
- /**
- * Open a new channel to fdispatch. Analogous to the "Channel"
- * concept as used in FS4.
- */
+ /** Opens a new channel to fdispatch. Analogous to the "Channel" concept as used in FS4. */
public FS4Channel openChannel () {
int cachedChannelId;
synchronized (this) {
diff --git a/container-search/src/main/java/com/yahoo/fs4/mplex/FS4Channel.java b/container-search/src/main/java/com/yahoo/fs4/mplex/FS4Channel.java
index b0fce14e73f..237b0cdb8e2 100644
--- a/container-search/src/main/java/com/yahoo/fs4/mplex/FS4Channel.java
+++ b/container-search/src/main/java/com/yahoo/fs4/mplex/FS4Channel.java
@@ -1,10 +1,10 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
package com.yahoo.fs4.mplex;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
@@ -16,23 +16,18 @@ import com.yahoo.fs4.ChannelTimeoutException;
import com.yahoo.fs4.Packet;
import com.yahoo.search.Query;
-
-
/**
- *
* This class is used to represent a "channel" in the FS4 protocol.
* A channel represents a session between a client and the fdispatch.
* Internally this class has a response queue used by the backend
* for queueing up FS4 packets that belong to this channel (or
* <em>session</em>, which might be a more appropriate name for it).
- *
- * <P>
* Outbound packets are handed off to the FS4Connection.
*
* @author Bjorn Borud
*/
-public class FS4Channel
-{
+public class FS4Channel {
+
private static Logger log = Logger.getLogger(FS4Channel.class.getName());
private Integer channelId;
@@ -67,13 +62,14 @@ public class FS4Channel
return query;
}
- /**
- * @return returns an Integer representing the (fs4) channel id
- */
+ /** Returns the (fs4) channel id */
public Integer getChannelId () {
return channelId;
}
+ /** Returns the distribution key of the content node this represents, or empty if it is a dispatch node */
+ public Optional<Integer> distributionKey() { return backend == null ? Optional.empty() : backend.distributionKey(); }
+
/**
* Closes the channel
*/
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/CacheControl.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/CacheControl.java
index b7e16b6c082..dd5b3caf0c5 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/CacheControl.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/CacheControl.java
@@ -8,6 +8,8 @@ import com.yahoo.fs4.QueryResultPacket;
import com.yahoo.search.Query;
import com.yahoo.processing.request.CompoundName;
+import java.util.Optional;
+
/**
* The cache control logic for FastSearcher
@@ -16,7 +18,7 @@ import com.yahoo.processing.request.CompoundName;
*/
public class CacheControl {
- private static final CompoundName nocachewrite=new CompoundName("nocachewrite");
+ public static final CompoundName nocachewrite=new CompoundName("nocachewrite");
/** Whether this CacheControl actually should cache hits at all. */
private final boolean activeCache;
@@ -84,7 +86,7 @@ public class CacheControl {
}
}
- void cache(CacheKey key, Query query, DocsumPacketKey[] packetKeys, Packet[] packets) {
+ void cache(CacheKey key, Query query, DocsumPacketKey[] packetKeys, Packet[] packets, Optional<Integer> distributionKey) {
if ( ! activeCache) return;
if (query.getNoCache()) return;
@@ -92,7 +94,7 @@ public class CacheControl {
PacketWrapper wrapper = lookup(key, query);
if (wrapper == null) {
- wrapper = new PacketWrapper(key, packetKeys,packets);
+ wrapper = new PacketWrapper(key, packetKeys, packets, distributionKey);
long now = System.currentTimeMillis();
synchronized (packetCache) {
packetCache.put(key, wrapper, now);
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java
index 8d4e9418c1c..e933f4857b3 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java
@@ -14,6 +14,7 @@ import com.yahoo.io.Connection;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import java.util.Optional;
import java.util.Timer;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -60,11 +61,14 @@ public class FS4ResourcePool extends AbstractComponent {
}
public Backend getBackend(String host, int port) {
+ return getBackend(host, port, Optional.empty());
+ }
+ public Backend getBackend(String host, int port, Optional<Integer> distributionKey) {
String key = host + ":" + port;
synchronized (connectionPoolMap) {
Backend pool = connectionPoolMap.get(key);
if (pool == null) {
- pool = new Backend(host, port, Server.get().getServerDiscriminator(), listeners, new ConnectionPool(timer));
+ pool = new Backend(host, port, Server.get().getServerDiscriminator(), listeners, new ConnectionPool(timer), distributionKey);
connectionPoolMap.put(key, pool);
}
return pool;
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java
index 30e2adab182..90410699748 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java
@@ -229,8 +229,9 @@ public class FastSearcher extends VespaBackEndSearcher {
// Dispatch directly to the single, local search node
query.trace(false, 2, "Dispatching directly to ", directDispatchRecipient.get());
- return fs4ResourcePool.getBackend(directDispatchRecipient.get().hostname(),
- directDispatchRecipient.get().fs4port());
+ return fs4ResourcePool.getBackend(directDispatchRecipient.get().hostname(),
+ directDispatchRecipient.get().fs4port(),
+ Optional.of(directDispatchRecipient.get().key()));
}
/**
@@ -373,7 +374,6 @@ public class FastSearcher extends VespaBackEndSearcher {
}
private Result searchTwoPhase(FS4Channel channel, Query query, QueryPacket queryPacket, CacheKey cacheKey) throws IOException {
-
if (isLoggingFine())
getLogger().finest("sending query packet");
@@ -417,7 +417,8 @@ public class FastSearcher extends VespaBackEndSearcher {
addMetaInfo(query, queryPacket.getQueryPacketData(), resultPacket, result, false);
- addUnfilledHits(result, resultPacket.getDocuments(), false, queryPacket.getQueryPacketData(), cacheKey);
+ addUnfilledHits(result, resultPacket.getDocuments(), false,
+ queryPacket.getQueryPacketData(), cacheKey, channel.distributionKey());
Packet[] packets;
PacketWrapper packetWrapper = cacheControl.lookup(cacheKey, query);
@@ -432,7 +433,7 @@ public class FastSearcher extends VespaBackEndSearcher {
} else {
packets = new Packet[1];
packets[0] = resultPacket;
- cacheControl.cache(cacheKey, query, new DocsumPacketKey[0], packets);
+ cacheControl.cache(cacheKey, query, new DocsumPacketKey[0], packets, channel.distributionKey());
}
}
return result;
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java
index 2b1b7dd24cc..8e22bae430a 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java
@@ -7,6 +7,7 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import java.util.logging.Logger;
import com.yahoo.fs4.BasicPacket;
@@ -31,10 +32,13 @@ public class PacketWrapper implements Cloneable {
private static Logger log = Logger.getLogger(PacketWrapper.class.getName());
- final int keySize;
+ private final int keySize;
// associated result packets, sorted in regard to offset
private ArrayList<BasicPacket> resultPackets = new ArrayList<>(3); // length = "some small number"
- LinkedHashMap<DocsumPacketKey, BasicPacket> packets;
+
+ private LinkedHashMap<DocsumPacketKey, BasicPacket> packets;
+
+ private final Optional<Integer> distributionKey;
private static class ResultPacketComparator<T extends BasicPacket> implements Comparator<T> {
@Override
@@ -47,11 +51,12 @@ public class PacketWrapper implements Cloneable {
private static ResultPacketComparator<BasicPacket> resultPacketComparator = new ResultPacketComparator<>();
- public PacketWrapper(CacheKey key, DocsumPacketKey[] packetKeys, BasicPacket[] bpackets) {
+ public PacketWrapper(CacheKey key, DocsumPacketKey[] packetKeys, BasicPacket[] bpackets, Optional<Integer> distributionKey) {
// Should not support key == null
this.keySize = key.byteSize();
resultPackets.add(bpackets[0]);
this.packets = new LinkedHashMap<>();
+ this.distributionKey = distributionKey;
Packet[] ppackets = new Packet[packetKeys.length];
for (int i = 0; i < packetKeys.length; i++) {
@@ -72,6 +77,7 @@ public class PacketWrapper implements Cloneable {
}
resultPackets.add(packets[0]);
this.packets = new LinkedHashMap<>();
+ this.distributionKey = Optional.empty();
for (int i = 0; i < packets.length - 1; i++) {
this.packets.put(new DocsumPacketKey(new GlobalId(new DocumentId("doc:test:" + i).getGlobalId()), i, null), packets[i + 1]);
}
@@ -87,7 +93,13 @@ public class PacketWrapper implements Cloneable {
}
/**
- * @return list of documents, null if not all are available
+ * Returns the distribution key of the content node producing these hits,
+ * or empty if the hits were returned through dispatch
+ */
+ public Optional<Integer> distributionKey() { return distributionKey; }
+
+ /**
+ * Returns the list of documents, null if not all are available
*/
public List<DocumentInfo> getDocuments(int offset, int hits) {
// speculatively allocate list for the hits
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
index 34e8390892d..3e9a92ea0f7 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
@@ -137,7 +137,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
addMetaInfo(query, queryPacketData, resultPacket, result, true);
if (packetWrapper.getNumPackets() == 0)
- addUnfilledHits(result, documents, true, queryPacketData, key);
+ addUnfilledHits(result, documents, true, queryPacketData, key, packetWrapper.distributionKey());
else
addCachedHits(result, packetWrapper, summaryClass, documents);
return result;
@@ -616,8 +616,16 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
*
* @param queryPacketData binary data from first phase of search, or null
* @param cacheKey the key this hit should match in the packet cache, or null
+ * @param channelDistributionKey distribution key of the node producing these hits.
+ * Only set if produced directly by a search node, not dispatch
+ * (in which case it is not set in the received packets.)
*/
- boolean addUnfilledHits(Result result, List<DocumentInfo> documents, boolean fromCache, QueryPacketData queryPacketData, CacheKey cacheKey) {
+ boolean addUnfilledHits(Result result,
+ List<DocumentInfo> documents,
+ boolean fromCache,
+ QueryPacketData queryPacketData,
+ CacheKey cacheKey,
+ Optional<Integer> channelDistributionKey) {
boolean allHitsOK = true;
Query myQuery = result.getQuery();
@@ -634,6 +642,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
hit.setCached(fromCache);
extractDocumentInfo(hit, document);
+ channelDistributionKey.ifPresent(hit::setDistributionKey);
result.hits().add(hit);
} catch (ConfigurationException e) {
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java
index db9c5b8f726..e57e06f6b12 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java
@@ -11,7 +11,7 @@ import java.util.Objects;
import java.util.Set;
/**
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
* @since 5.1.4
*/
public interface CustomParser extends Parser {
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/ProgrammaticParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/ProgrammaticParser.java
index e55da49b921..eab001042d3 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/ProgrammaticParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/ProgrammaticParser.java
@@ -12,7 +12,7 @@ import com.yahoo.search.query.textserialize.TextSerialize;
import java.util.Set;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
* @since 5.1.4
*/
public final class ProgrammaticParser implements CustomParser {
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/Discloser.java b/container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/Discloser.java
index 7bced128ac5..1d7372a2497 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/Discloser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/Discloser.java
@@ -6,7 +6,7 @@ import com.yahoo.prelude.query.Item;
/**
* Allows an item to disclose its properties and children/value.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public interface Discloser {
void addProperty(String key, Object value);
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/TextualQueryRepresentation.java b/container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/TextualQueryRepresentation.java
index f00219122c4..56f106a43f4 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/TextualQueryRepresentation.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/textualrepresentation/TextualQueryRepresentation.java
@@ -10,7 +10,7 @@ import java.util.regex.Pattern;
/**
* Creates a detailed, QED inspired representation of a query tree.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class TextualQueryRepresentation {
private Map<Item, Integer> itemReferences = new IdentityHashMap<>();
diff --git a/container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java b/container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java
index 69331a196a2..060fd598245 100644
--- a/container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java
@@ -29,13 +29,13 @@ import static com.yahoo.prelude.querytransform.StemmingSearcher.STEMMING;
*
* If the "recall" property is unset, this searcher does nothing.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
@After("com.yahoo.search.querytransform.WandSearcher")
@Before({STEMMING, ACCENT_REMOVAL})
public class RecallSearcher extends Searcher {
- private static final CompoundName recallName=new CompoundName("recall");
+ public static final CompoundName recallName=new CompoundName("recall");
@Override
public Result search(Query query, Execution execution) {
diff --git a/container-search/src/main/java/com/yahoo/prelude/searcher/MultipleResultsSearcher.java b/container-search/src/main/java/com/yahoo/prelude/searcher/MultipleResultsSearcher.java
index 3b2fd596cfa..75066a424fc 100644
--- a/container-search/src/main/java/com/yahoo/prelude/searcher/MultipleResultsSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/searcher/MultipleResultsSearcher.java
@@ -17,7 +17,7 @@ import java.util.*;
*
* <p> For each group, the desired number of hits can be specified. </p>
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class MultipleResultsSearcher extends Searcher {
diff --git a/container-search/src/main/java/com/yahoo/prelude/templates/HitContext.java b/container-search/src/main/java/com/yahoo/prelude/templates/HitContext.java
index 4d1daa97306..14b05f5e2a6 100644
--- a/container-search/src/main/java/com/yahoo/prelude/templates/HitContext.java
+++ b/container-search/src/main/java/com/yahoo/prelude/templates/HitContext.java
@@ -16,7 +16,7 @@ import java.util.Set;
/**
* A context providing all the fields of a hit, and falls back to MapContext behavior for all other keys.
*
- * @author tonytv
+ * @author Tony Vaagenes
* @deprecated use a Renderer instead
*/
@SuppressWarnings("deprecation")
diff --git a/container-search/src/main/java/com/yahoo/prelude/templates/LogExceptionUserTemplateDelegator.java b/container-search/src/main/java/com/yahoo/prelude/templates/LogExceptionUserTemplateDelegator.java
index b9272ac4c3d..f9ad3ebf86e 100644
--- a/container-search/src/main/java/com/yahoo/prelude/templates/LogExceptionUserTemplateDelegator.java
+++ b/container-search/src/main/java/com/yahoo/prelude/templates/LogExceptionUserTemplateDelegator.java
@@ -12,7 +12,7 @@ import java.util.logging.Logger;
/**
* Delegates to another UserTemplate, but handles any exceptions(except IOException) by logging them.
*
- * @author tonytv
+ * @author Tony Vaagenes
* @deprecated use a renderer instead
*/
@SuppressWarnings("deprecation")
diff --git a/container-search/src/main/java/com/yahoo/prelude/templates/SearchRendererAdaptor.java b/container-search/src/main/java/com/yahoo/prelude/templates/SearchRendererAdaptor.java
index a639a6b97ec..8439dd105a8 100644
--- a/container-search/src/main/java/com/yahoo/prelude/templates/SearchRendererAdaptor.java
+++ b/container-search/src/main/java/com/yahoo/prelude/templates/SearchRendererAdaptor.java
@@ -20,7 +20,7 @@ import java.util.Iterator;
/**
* Renders a search result using the old templates API.
*
- * @author tonytv
+ * @author Tony Vaagenes
* @deprecated do not use
*/
@SuppressWarnings({ "rawtypes", "deprecation", "unchecked" })
diff --git a/container-search/src/main/java/com/yahoo/search/Query.java b/container-search/src/main/java/com/yahoo/search/Query.java
index 5ec2202d0c3..cbc8b15eff9 100644
--- a/container-search/src/main/java/com/yahoo/search/Query.java
+++ b/container-search/src/main/java/com/yahoo/search/Query.java
@@ -46,7 +46,6 @@ import com.yahoo.search.yql.VespaSerializer;
import com.yahoo.search.yql.YqlParser;
import com.yahoo.yolean.Exceptions;
import edu.umd.cs.findbugs.annotations.Nullable;
-
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
@@ -270,6 +269,7 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
this("");
}
+
/**
* Construct a query from a string formatted in the http style, e.g <code>?query=test&amp;offset=10&amp;hits=13</code>
* The query must be uri encoded.
@@ -278,6 +278,16 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
this(query, null);
}
+
+ /**
+ * Creates a query from a request
+ *
+ * @param request the HTTP request from which this is created
+ */
+ public Query(HttpRequest request) {
+ this(request, null);
+ }
+
/**
* Construct a query from a string formatted in the http style, e.g <code>?query=test&amp;offset=10&amp;hits=13</code>
* The query must be uri encoded.
@@ -293,20 +303,24 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
* @param queryProfile the query profile to use for this query, or null if none.
*/
public Query(HttpRequest request, CompiledQueryProfile queryProfile) {
- super(new QueryPropertyAliases(propertyAliases));
- this.httpRequest = request;
- init(request.propertyMap(), queryProfile);
+ this(request, request.propertyMap(), queryProfile);
}
/**
* Creates a query from a request
*
- * @param request the HTTP request from which this is created
+ * @param request the HTTP request from which this is created.
+ * @param requestMap the property map of the query.
+ * @param queryProfile the query profile to use for this query, or null if none.
*/
- public Query(HttpRequest request) {
- this(request, null);
+ public Query(HttpRequest request, Map<String, String> requestMap, CompiledQueryProfile queryProfile) {
+ super(new QueryPropertyAliases(propertyAliases));
+ this.httpRequest = request;
+ init(requestMap, queryProfile);
}
+
+
private void init(Map<String, String> requestMap, CompiledQueryProfile queryProfile) {
startTime = System.currentTimeMillis();
if (queryProfile != null) {
diff --git a/container-search/src/main/java/com/yahoo/search/config/dispatchprototype/package-info.java b/container-search/src/main/java/com/yahoo/search/config/dispatchprototype/package-info.java
index 60bd4fd71ab..3b1a3b3bd05 100644
--- a/container-search/src/main/java/com/yahoo/search/config/dispatchprototype/package-info.java
+++ b/container-search/src/main/java/com/yahoo/search/config/dispatchprototype/package-info.java
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
/**
* Package for dispatchprototype config.
- * @author tonytv
+ * @author Tony Vaagenes
*/
@ExportPackage
package com.yahoo.search.config.dispatchprototype;
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
index 654fd6cc68f..3eb010da555 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
@@ -62,8 +62,7 @@ public class Dispatcher extends AbstractComponent {
this.client = new RpcClient();
this.searchCluster = new SearchCluster(dispatchConfig, fs4ResourcePool, containerClusterSize, vipStatus);
- // Create node rpc connections, indexed by the legacy "partid", which allows us to bridge
- // between fs4 calls (for search) and rpc calls (for summary fetch)
+ // Create node rpc connections, indexed by the node distribution key
ImmutableMap.Builder<Integer, Client.NodeConnection> nodeConnectionsBuilder = new ImmutableMap.Builder<>();
for (DispatchConfig.Node node : dispatchConfig.node()) {
nodeConnectionsBuilder.put(node.key(), client.createConnection(node.host(), node.port()));
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/SearchCluster.java b/container-search/src/main/java/com/yahoo/search/dispatch/SearchCluster.java
index 9b2a24cd01f..efce2fdac9c 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/SearchCluster.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/SearchCluster.java
@@ -137,7 +137,7 @@ public class SearchCluster implements NodeManager<SearchCluster.Node> {
private static ImmutableList<Node> toNodes(DispatchConfig dispatchConfig) {
ImmutableList.Builder<Node> nodesBuilder = new ImmutableList.Builder<>();
for (DispatchConfig.Node node : dispatchConfig.node())
- nodesBuilder.add(new Node(node.host(), node.fs4port(), node.group()));
+ nodesBuilder.add(new Node(node.key(), node.host(), node.fs4port(), node.group()));
return nodesBuilder.build();
}
@@ -360,6 +360,7 @@ public class SearchCluster implements NodeManager<SearchCluster.Node> {
/** A node in a search cluster. This class is multithread safe. */
public static class Node {
+ private final int key;
private final String hostname;
private final int fs4port;
private final int group;
@@ -367,12 +368,16 @@ public class SearchCluster implements NodeManager<SearchCluster.Node> {
private final AtomicBoolean working = new AtomicBoolean(true);
private final AtomicLong activeDocuments = new AtomicLong(0);
- public Node(String hostname, int fs4port, int group) {
+ public Node(int key, String hostname, int fs4port, int group) {
+ this.key = key;
this.hostname = hostname;
this.fs4port = fs4port;
this.group = group;
}
+ /** Returns the unique and stable distribution key of this node */
+ public int key() { return key; }
+
public String hostname() { return hostname; }
public int fs4port() { return fs4port; }
diff --git a/container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPClientSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPClientSearcher.java
index f201861bc0c..8abd6deb5f9 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPClientSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPClientSearcher.java
@@ -16,6 +16,7 @@ import com.yahoo.statistics.Statistics;
*
* @author bratseth
*/
+@Deprecated
public abstract class ConfiguredHTTPClientSearcher extends HTTPClientSearcher {
/** Create this from a configuraton */
diff --git a/container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPProviderSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPProviderSearcher.java
index c2a7e6fa640..22c2802c9e8 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPProviderSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/http/ConfiguredHTTPProviderSearcher.java
@@ -19,6 +19,7 @@ import java.util.Collections;
* @author <a href="mailto:arnebef@yahoo-inc.com">Arne Bergene Fossaa</a>
* @author bratseth
*/
+@Deprecated
public abstract class ConfiguredHTTPProviderSearcher extends HTTPProviderSearcher {
/** Create this from a configuraton */
diff --git a/container-search/src/main/java/com/yahoo/search/federation/http/HTTPClientSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/http/HTTPClientSearcher.java
index 3d36994984d..dc0b5981e63 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/http/HTTPClientSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/http/HTTPClientSearcher.java
@@ -91,6 +91,7 @@ import java.util.logging.Logger;
* @author <a href="mailto:arnebef@yahoo-inc.com">Arne Bergene Fossaa</a>
* @author bratseth
*/
+@Deprecated
public abstract class HTTPClientSearcher extends HTTPSearcher {
static final CompoundName REQUEST_META_CARRIER = new CompoundName("com.yahoo.search.federation.http.HTTPClientSearcher_requestMeta");
diff --git a/container-search/src/main/java/com/yahoo/search/federation/http/HTTPProviderSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/http/HTTPProviderSearcher.java
index 5348a687253..d0f76b815dc 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/http/HTTPProviderSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/http/HTTPProviderSearcher.java
@@ -39,6 +39,7 @@ import java.util.logging.Logger;
* @author Arne Bergene Fossaa
* @author bratseth
*/
+@Deprecated
public abstract class HTTPProviderSearcher extends HTTPSearcher {
private final Counter emptyResults;
diff --git a/container-search/src/main/java/com/yahoo/search/federation/http/HTTPSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/http/HTTPSearcher.java
index 3707d7fa77a..80e785f0175 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/http/HTTPSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/http/HTTPSearcher.java
@@ -136,6 +136,7 @@ import java.util.logging.Logger;
*
* @author Arne Bergene Fossaa
*/
+@Deprecated
public abstract class HTTPSearcher extends ClusterSearcher<Connection> {
protected static final String YCA_HTTP_HEADER = "Yahoo-App-Auth";
diff --git a/container-search/src/main/java/com/yahoo/search/federation/selection/FederationTarget.java b/container-search/src/main/java/com/yahoo/search/federation/selection/FederationTarget.java
index 32a5644f29f..7ade9a0eaf9 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/selection/FederationTarget.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/selection/FederationTarget.java
@@ -13,7 +13,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
* along with a timeout and
* custom data reserved for use by the TargetSelector.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public final class FederationTarget<T> {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/selection/TargetSelector.java b/container-search/src/main/java/com/yahoo/search/federation/selection/TargetSelector.java
index d4ae147eae7..465ddedbecf 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/selection/TargetSelector.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/selection/TargetSelector.java
@@ -18,7 +18,7 @@ import java.util.Collection;
* 1) call modifyTargetQuery(target, query)
* 2) call modifyTargetResult(target, result)
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public interface TargetSelector<T> {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainInvocationSpec.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainInvocationSpec.java
index 4fe41d16d35..6cb8d2ef174 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainInvocationSpec.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainInvocationSpec.java
@@ -12,7 +12,7 @@ import java.util.Objects;
* Specifices which search chain should be run and how it should be run.
* This is a value object.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SearchChainInvocationSpec implements Cloneable {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java
index 66874f1a2f1..97ceee96dfc 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java
@@ -37,7 +37,7 @@ import java.util.TreeSet;
* o: SearchChainInvocationSpec
* </pre>
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SearchChainResolver {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SingleTarget.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SingleTarget.java
index 6e08fa2f966..f4c98075a5a 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SingleTarget.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SingleTarget.java
@@ -7,7 +7,7 @@ import com.yahoo.processing.request.Properties;
/**
* TODO: What is this?
*
-* @author tonytv
+* @author Tony Vaagenes
*/
public class SingleTarget extends Target {
private final SearchChainInvocationSpec searchChainInvocationSpec;
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java
index e14c46056b7..ee98d033440 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java
@@ -15,7 +15,7 @@ import com.yahoo.processing.request.Properties;
/**
* Maps a source reference to search chain invocation specs.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SourceRefResolver {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/Target.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/Target.java
index cf7276d767e..f23e24525bb 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/Target.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/Target.java
@@ -8,7 +8,7 @@ import com.yahoo.processing.request.Properties;
/**
* TODO: What's this?
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public abstract class Target extends AbstractComponent {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedProviderException.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedProviderException.java
index 087fa0825ff..5075b05454b 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedProviderException.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedProviderException.java
@@ -7,7 +7,7 @@ import com.yahoo.component.ComponentSpecification;
import static com.yahoo.container.util.Util.quote;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
@SuppressWarnings("serial")
class UnresolvedProviderException extends UnresolvedSearchChainException {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java
index 2763bf52b22..dceae0318b4 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java
@@ -3,7 +3,7 @@ package com.yahoo.search.federation.sourceref;
/**
* Thrown if a search chain can not be resolved from one or more ids.
- * @author tonytv
+ * @author Tony Vaagenes
*/
@SuppressWarnings("serial")
public class UnresolvedSearchChainException extends Exception {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java
index 44569a55e22..233e92c1699 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java
@@ -6,7 +6,7 @@ import com.yahoo.component.ComponentSpecification;
import static com.yahoo.container.util.Util.quote;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
@SuppressWarnings("serial")
class UnresolvedSourceRefException extends UnresolvedSearchChainException {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/vespa/VespaSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/vespa/VespaSearcher.java
index dfa4f9ad9bb..b59578ab6a3 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/vespa/VespaSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/vespa/VespaSearcher.java
@@ -9,6 +9,7 @@ import java.net.URL;
import java.util.Map;
import java.util.Set;
+import com.yahoo.search.federation.http.ConfiguredHTTPProviderSearcher;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
@@ -28,7 +29,6 @@ import com.yahoo.search.Result;
import com.yahoo.search.cache.QrBinaryCacheConfig;
import com.yahoo.search.cache.QrBinaryCacheRegionConfig;
import com.yahoo.search.federation.ProviderConfig;
-import com.yahoo.search.federation.http.ConfiguredHTTPProviderSearcher;
import com.yahoo.search.federation.http.Connection;
import com.yahoo.search.query.QueryTree;
import com.yahoo.search.query.textserialize.TextSerialize;
@@ -46,6 +46,7 @@ import edu.umd.cs.findbugs.annotations.Nullable;
* @author Arne Bergene Fossaa
* @author Steinar Knutsen
*/
+@Deprecated
@Provides("Vespa")
@After("*")
public class VespaSearcher extends ConfiguredHTTPProviderSearcher {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/Continuation.java b/container-search/src/main/java/com/yahoo/search/grouping/Continuation.java
index e7f40b8b447..eda2b449fda 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/Continuation.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/Continuation.java
@@ -10,7 +10,7 @@ import com.yahoo.search.grouping.vespa.ContinuationDecoder;
*
* <p>To render a Cookie within a result set, you simply need to call {@link #toString()}.</p>
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public abstract class Continuation {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java b/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java
index f3af9cf1fc7..94d2340ebee 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java
@@ -19,7 +19,7 @@ import java.util.*;
* also parse any "timezone" parameter as the timezone for time expressions such as {@link
* com.yahoo.search.grouping.request.DayOfMonthFunction} and {@link com.yahoo.search.grouping.request.HourOfDayFunction}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
@After(PhaseNames.RAW_QUERY)
@Before(PhaseNames.TRANSFORMED_QUERY)
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java b/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java
index 52d08cc204f..8ce0d90dfc5 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java
@@ -18,7 +18,7 @@ import java.util.*;
* {@link GroupingOperation} using {@link #setRootOperation(GroupingOperation)}. Once the search returns, access the
* result {@link Group} using the {@link #getResultGroup(Result)} method.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class GroupingRequest {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/GroupingValidator.java b/container-search/src/main/java/com/yahoo/search/grouping/GroupingValidator.java
index b321915359f..6379c43bc87 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/GroupingValidator.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/GroupingValidator.java
@@ -28,7 +28,7 @@ import static com.yahoo.search.grouping.GroupingQueryParser.SELECT_PARAMETER_PAR
* cluster for which this searcher has been deployed. This searcher uses exceptions to signal invalid grouping
* requests.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
@Before(PhaseNames.BACKEND)
@After(SELECT_PARAMETER_PARSING)
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/UnavailableAttributeException.java b/container-search/src/main/java/com/yahoo/search/grouping/UnavailableAttributeException.java
index 0669bcb3d60..5750f1c78e3 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/UnavailableAttributeException.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/UnavailableAttributeException.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping;
* This exception is thrown by the {@link GroupingValidator} if it a {@link GroupingRequest} contains a reference to an
* unavailable attribute.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
@SuppressWarnings("serial")
public class UnavailableAttributeException extends RuntimeException {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/AddFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/AddFunction.java
index 76e49bc975b..8cb27569e67 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/AddFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/AddFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents an add-function in a {@link GroupingExpression}. It evaluates to a number that equals the
* result of adding the results of all arguments together in the order they were given to the constructor.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class AddFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/AggregatorNode.java b/container-search/src/main/java/com/yahoo/search/grouping/request/AggregatorNode.java
index ef41b18d21d..323f1ac769a 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/AggregatorNode.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/AggregatorNode.java
@@ -6,7 +6,7 @@ package com.yahoo.search.grouping.request;
* can not be used as a document-level expression (i.e. level 0, see {@link GroupingExpression#resolveLevel(int)}). The
* contained expression is evaluated at the level of the aggregator minus 1.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class AggregatorNode extends GroupingExpression {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/AllOperation.java b/container-search/src/main/java/com/yahoo/search/grouping/request/AllOperation.java
index 9d26c4e281d..b809706331f 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/AllOperation.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/AllOperation.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This is a grouping operation that processes the input list as a whole, as opposed to {@link EachOperation} which
* processes each element of that list separately.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class AllOperation extends GroupingOperation {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/AndFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/AndFunction.java
index ec4a71c3d24..5f2617acf16 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/AndFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/AndFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents an and-function in a {@link GroupingExpression}. It evaluates to a long that equals the result
* of and'ing the results of all arguments together in the order they were given to the constructor.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class AndFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/AttributeFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/AttributeFunction.java
index d917d633e4e..faf565647c7 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/AttributeFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/AttributeFunction.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents a document attribute function in a {@link GroupingExpression}. It evaluates to the value of the
* named attribute in the input {@link com.yahoo.search.result.Hit}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class AttributeFunction extends DocumentValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/AttributeValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/AttributeValue.java
index ba50cb42b13..d83888b3107 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/AttributeValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/AttributeValue.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents a document attribute value in a {@link GroupingExpression}. It evaluates to the value of the
* named attribute in the input {@link com.yahoo.search.result.Hit}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class AttributeValue extends DocumentValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/AvgAggregator.java b/container-search/src/main/java/com/yahoo/search/grouping/request/AvgAggregator.java
index 4ac64ef35fc..d7e3232ea5f 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/AvgAggregator.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/AvgAggregator.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents an average-aggregator in a {@link GroupingExpression}. It evaluates to the average value that
* the contained expression evaluated to over all the inputs.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class AvgAggregator extends AggregatorNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/AvgFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/AvgFunction.java
index aed409361b3..55c4d355589 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/AvgFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/AvgFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a min-function in a {@link GroupingExpression}. It evaluates to a number that equals the
* average of the results of all arguments.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class AvgFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/BucketResolver.java b/container-search/src/main/java/com/yahoo/search/grouping/request/BucketResolver.java
index bb54b0e5a02..c36c8af5c34 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/BucketResolver.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/BucketResolver.java
@@ -11,7 +11,7 @@ import java.util.List;
* {@link #resolve(GroupingExpression)} to retrieve the list of corresponding
* grouping expression object.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class BucketResolver {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/BucketValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/BucketValue.java
index b053f7ede43..c73b7199394 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/BucketValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/BucketValue.java
@@ -6,7 +6,7 @@ package com.yahoo.search.grouping.request;
* 'from' and 'to'. The range is inclusive-from and exclusive-to. All supported data types are represented as subclasses
* of this.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class BucketValue extends GroupingExpression implements Comparable<BucketValue> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/CatFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/CatFunction.java
index ae6161ec9d9..5e51c8e35a0 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/CatFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/CatFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a cat-function in a {@link GroupingExpression}. It evaluates to a byte array that equals the
* concatenation of the binary result of all arguments in the order they were given to the constructor.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class CatFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ConstantValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ConstantValue.java
index b986cf2efb9..ad8c1ef1cc9 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/ConstantValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ConstantValue.java
@@ -6,7 +6,7 @@ package com.yahoo.search.grouping.request;
* this expression type can be used at any input level (see {@link GroupingExpression#resolveLevel(int)}). All supported
* data types are represented as subclasses of this.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
@SuppressWarnings("rawtypes")
public abstract class ConstantValue<T extends Comparable> extends GroupingExpression {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/CountAggregator.java b/container-search/src/main/java/com/yahoo/search/grouping/request/CountAggregator.java
index 39f9c31766b..19a6c939087 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/CountAggregator.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/CountAggregator.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents an count-aggregator in a {@link GroupingExpression}. It evaluates to the number of elements
* there are in the input.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class CountAggregator extends AggregatorNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java
index bcf81f1fbe6..b3a4c451b6b 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a timestamp-formatter function in a {@link GroupingExpression}. It evaluates to a string on the
* form "YYYY-MM-DD" of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DateFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java
index 55b99c26ad7..5d82a80352b 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a day-of-month timestamp-function in a {@link GroupingExpression}. It evaluates to a long that
* equals the day of month (1-31) of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DayOfMonthFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java
index 2b30968456e..f2135427bf5 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a day-of-week timestamp-function in a {@link GroupingExpression}. It evaluates to a long that
* equals the day of week (0 - 6) of the result of the argument, Monday being 0.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DayOfWeekFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java
index 0589b960b98..15f158ef2f1 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a day-of-year timestamp-function in a {@link GroupingExpression}. It evaluates to a long that
* equals the day of year (0-365) of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DayOfYearFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DivFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DivFunction.java
index ad5e339bae6..f50dcde2d56 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DivFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DivFunction.java
@@ -8,7 +8,7 @@ import java.util.List;
* of dividing the results of all arguments in the order they were given to the constructor (divide first argument by
* second, result by third, ...).
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DivFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DocIdNsSpecificValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DocIdNsSpecificValue.java
index b350d38fde3..188e642e7d7 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DocIdNsSpecificValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DocIdNsSpecificValue.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents a document id specific value in a {@link GroupingExpression}. It evaluates to the namespace-
* specific value of the document id of the input {@link com.yahoo.search.result.Hit}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class DocIdNsSpecificValue extends DocumentValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java
index 57eb88a67d3..f8756b81163 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents a document value in a {@link GroupingExpression}. As such, the subclasses of this can only be
* used as document-level expressions (i.e. level 0, see {@link GroupingExpression#resolveLevel(int)}).
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public abstract class DocumentValue extends GroupingExpression {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DoubleBucket.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DoubleBucket.java
index 5cbfd2b4ee4..d71ec8093fd 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DoubleBucket.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DoubleBucket.java
@@ -5,7 +5,7 @@ import java.text.ChoiceFormat;
/**
* This class represents a {@link Double} bucket in a {@link PredefinedFunction}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DoubleBucket extends BucketValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DoublePredefined.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DoublePredefined.java
index 227a95b1d3f..d43e8412623 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DoublePredefined.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DoublePredefined.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a predefined bucket-function in a {@link GroupingExpression} for expressions that evaluate to a
* double.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DoublePredefined extends PredefinedFunction {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DoubleValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DoubleValue.java
index 867683c94ef..5dad65aaabf 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/DoubleValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DoubleValue.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.request;
/**
* This class represents a constant {@link Double} value in a {@link GroupingExpression}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DoubleValue extends ConstantValue<Double> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/EachOperation.java b/container-search/src/main/java/com/yahoo/search/grouping/request/EachOperation.java
index db501f2325a..1a7074a2c6e 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/EachOperation.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/EachOperation.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This is a grouping operation that processes each element of the input list separately, as opposed to {@link
* AllOperation} which processes that list as a whole.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class EachOperation extends GroupingOperation {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ExpressionVisitor.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ExpressionVisitor.java
index 84626061a3f..a341bee2568 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/ExpressionVisitor.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ExpressionVisitor.java
@@ -6,7 +6,7 @@ package com.yahoo.search.grouping.request;
* GroupingOperation}. It is used by the {@link com.yahoo.search.grouping.GroupingValidator} to ensure that all
* referenced attributes are valid for the cluster being queried.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public interface ExpressionVisitor {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java
index 0898439da87..f44394c6193 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a fixed-width bucket-function in a {@link GroupingExpression}. It maps the input into the given
* number of buckets by the result of the argument expression.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class FixedWidthFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java b/container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java
index ce4442fa781..1a059d79b1a 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java
@@ -8,7 +8,7 @@ import java.util.*;
* to {@link AggregatorNode} and {@link DocumentValue} that operate on inputs), this expression type can be used at any
* input level (see {@link GroupingExpression#resolveLevel(int)}).
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class FunctionNode extends GroupingExpression implements Iterable<GroupingExpression> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java
index d15608fcbeb..2f7691156e5 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java
@@ -9,7 +9,7 @@ import java.util.List;
* This class represents an expression in a {@link GroupingOperation}. You may manually construct this expression, or
* you may use the {@link com.yahoo.search.grouping.request.parser.GroupingParser} to generate one from a query-string.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class GroupingExpression extends GroupingNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingNode.java b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingNode.java
index 918bff3c218..148b4243a4b 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingNode.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingNode.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This is the abstract super class of both {@link GroupingOperation} and {@link GroupingExpression}. All nodes can be
* assigned a {@link String} label which in turn can be used to identify the corresponding result objects.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class GroupingNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java
index ccce5fa8241..4c29ca7d98d 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java
@@ -16,7 +16,7 @@ import java.util.*;
* com.yahoo.search.grouping.GroupingRequest} using the {@link com.yahoo.search.grouping.GroupingRequest#setRootOperation(GroupingOperation)}
* method.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public abstract class GroupingOperation extends GroupingNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java
index 42982df637d..faf1c1e0289 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents an hour-of-day timestamp-function in a {@link GroupingExpression}. It evaluates to a long that
* equals the hour of day (0-23) of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class HourOfDayFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/LongBucket.java b/container-search/src/main/java/com/yahoo/search/grouping/request/LongBucket.java
index cd8e807b1a6..fd363320033 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/LongBucket.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/LongBucket.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.request;
/**
* This class represents a {@link Long} bucket in a {@link PredefinedFunction}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class LongBucket extends BucketValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/LongPredefined.java b/container-search/src/main/java/com/yahoo/search/grouping/request/LongPredefined.java
index ee9d57b5b30..98acc800ed7 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/LongPredefined.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/LongPredefined.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a predefined bucket-function in a {@link GroupingExpression} for expressions that evaluate to a
* long.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class LongPredefined extends PredefinedFunction {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/LongValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/LongValue.java
index 2f5d833a5be..4c4eb1c409d 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/LongValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/LongValue.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.request;
/**
* This class represents a constant {@link Long} value in a {@link GroupingExpression}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class LongValue extends ConstantValue<Long> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathResolver.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathResolver.java
index 75b897a60c1..8aa841930e3 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathResolver.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathResolver.java
@@ -10,7 +10,7 @@ import java.util.Stack;
* operation simply push operator-expression pairs onto it, before calling {@link #resolve()} to retrieve the single
* corresponding grouping expression object.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MathResolver {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MaxAggregator.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MaxAggregator.java
index 7de8dd62f27..54dc7c6b3bd 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/MaxAggregator.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MaxAggregator.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents an maximum-aggregator in a {@link GroupingExpression}. It evaluates to the maximum value that
* the contained expression evaluated to over all the inputs.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MaxAggregator extends AggregatorNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MaxFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MaxFunction.java
index 570379afe66..731c1c4eba4 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/MaxFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MaxFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a max-function in a {@link GroupingExpression}. It evaluates to a number that equals the
* largest of the results of all arguments.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MaxFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java b/container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java
index 701a2d1cc38..6ae33b804e9 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents an md5-function in a {@link GroupingExpression}. It evaluates to a long that equals the md5 of
* the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class Md5Function extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MinAggregator.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MinAggregator.java
index c15fa4cb954..1a24527dcfc 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/MinAggregator.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MinAggregator.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents an minimum-aggregator in a {@link GroupingExpression}. It evaluates to the minimum value that
* the contained expression evaluated to over all the inputs.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MinAggregator extends AggregatorNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java
index 05f6f9d9abf..478684dd73e 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a min-function in a {@link GroupingExpression}. It evaluates to a number that equals the
* smallest of the results of all arguments.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MinFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java
index 81815490bf1..d2442b8455e 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a minute-of-hour timestamp-function in a {@link GroupingExpression}. It evaluates to a long
* that equals the minute of hour (0-59) of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MinuteOfHourFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ModFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ModFunction.java
index ac6bee5a04e..a3fd1041e6e 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/ModFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ModFunction.java
@@ -8,7 +8,7 @@ import java.util.List;
* of mod'ing the results of all arguments in the order they were given to the constructor (modulo first argument by
* second, result by third, ...).
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class ModFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java
index 4540efff23e..96e08562e42 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a month-of-year timestamp-function in a {@link GroupingExpression}. It evaluates to a long that
* equals the month of year (1-12) of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MonthOfYearFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MulFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MulFunction.java
index 60b4729ce33..84584270f58 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/MulFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MulFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a mul-function in a {@link GroupingExpression}. It evaluates to a number that equals the result
* of multiplying the results of all arguments together in the order they were given to the constructor.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MulFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java
index 1429f3a8605..7e05b02b59e 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a negate-function in a {@link GroupingExpression}. It evaluates to a number that equals the
* negative of the results of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class NegFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java
index ae1cd4f247d..24dd888e98d 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java
@@ -7,7 +7,7 @@ import java.util.Collections;
* This class represents a now-function in a {@link GroupingExpression}. It evaluates to a long that equals the number
* of seconds since midnight, January 1, 1970 UTC.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class NowFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/OrFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/OrFunction.java
index 592709c4c91..ad1809f312f 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/OrFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/OrFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents an or-function in a {@link GroupingExpression}. It evaluates to a long that equals the result
* of or'ing the results of all arguments together in the order they were given to the constructor.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class OrFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/PredefinedFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/PredefinedFunction.java
index 7f880ffc2fc..ebae4b238b4 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/PredefinedFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/PredefinedFunction.java
@@ -9,7 +9,7 @@ import java.util.List;
* This class represents a predefined bucket-function in a {@link GroupingExpression}. It maps the input into one of the
* given buckets by the result of the argument expression.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class PredefinedFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/RelevanceValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/RelevanceValue.java
index 84a1ca34c24..01735c0bdab 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/RelevanceValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/RelevanceValue.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents a document relevance score in a {@link GroupingExpression}. It evaluates to the relevance of
* the input {@link com.yahoo.search.result.Hit}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class RelevanceValue extends DocumentValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java
index 8402f607a33..b83065af629 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a second-of-minute timestamp-function in a {@link GroupingExpression}. It evaluates to a long
* that equals the second of minute (0-59) of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class SecondOfMinuteFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java
index 4366446f84e..4b7055ffb89 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a size-function in a {@link GroupingExpression}. It evaluates to a number that equals the
* number of elements in the result of the argument (e.g. the number of elements in an array).
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class SizeFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/StrCatFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/StrCatFunction.java
index d0fd495cc42..97dcc909254 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/StrCatFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/StrCatFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a strcat-function in a {@link GroupingExpression}. It evaluates to a string that equals the
* contatenation of the string results of all arguments in the order they were given to the constructor.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class StrCatFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java
index 2aaefa8e99a..e9ca48b3db3 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a strcat-function in a {@link GroupingExpression}. It evaluates to a long that equals the
* number of bytes in the string result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class StrLenFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/StringBucket.java b/container-search/src/main/java/com/yahoo/search/grouping/request/StringBucket.java
index fbbe08dbcf4..80e85ed9e78 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/StringBucket.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/StringBucket.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.request;
/**
* This class represents a {@link String} bucket in a {@link PredefinedFunction}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class StringBucket extends BucketValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/StringPredefined.java b/container-search/src/main/java/com/yahoo/search/grouping/request/StringPredefined.java
index 618f5e3bb25..465ff96157d 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/StringPredefined.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/StringPredefined.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents a predefined bucket-function in a {@link GroupingExpression} for expressions that evaluate to a
* string.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class StringPredefined extends PredefinedFunction {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/StringValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/StringValue.java
index 78bc8960fc7..4fc630c7b1b 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/StringValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/StringValue.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.request;
/**
* This class represents a constant {@link String} value in a {@link GroupingExpression}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class StringValue extends ConstantValue<String> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/SubFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/SubFunction.java
index e28f6f3b412..1d0456ffcf2 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/SubFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/SubFunction.java
@@ -8,7 +8,7 @@ import java.util.List;
* of subtracting the results of all arguments in the order they were given to the constructor (subtract second argument
* from first, third from result, ...).
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class SubFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/SumAggregator.java b/container-search/src/main/java/com/yahoo/search/grouping/request/SumAggregator.java
index 369f5637e8f..b50dd84e27e 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/SumAggregator.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/SumAggregator.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents an sum-aggregator in a {@link GroupingExpression}. It evaluates to the sum of the values that
* the contained expression evaluated to over all the inputs.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class SumAggregator extends AggregatorNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/SummaryValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/SummaryValue.java
index e4358f4d57d..6cdaa3b2e4a 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/SummaryValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/SummaryValue.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents a document summary in a {@link GroupingExpression}. It evaluates to the summary of the input
* {@link com.yahoo.search.result.Hit} that corresponds to the named summary class.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class SummaryValue extends DocumentValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/TimeFunctions.java b/container-search/src/main/java/com/yahoo/search/grouping/request/TimeFunctions.java
index 3b1040a0b2e..c12d32044da 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/TimeFunctions.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/TimeFunctions.java
@@ -6,7 +6,7 @@ package com.yahoo.search.grouping.request;
* per-function factory methods, this class also contains a {@link #newInstance(com.yahoo.search.grouping.request.TimeFunctions.Type,
* GroupingExpression)} method which is useful for runtime construction of grouping requests.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class TimeFunctions {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/XorAggregator.java b/container-search/src/main/java/com/yahoo/search/grouping/request/XorAggregator.java
index 31cbe46e0cb..18ce7abd96c 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/XorAggregator.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/XorAggregator.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents an xor-aggregator in a {@link GroupingExpression}. It evaluates to the xor of the values that
* the contained expression evaluated to over all the inputs.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class XorAggregator extends AggregatorNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java
index 21928a2f060..2f6061a3aa2 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents an xor-function in a {@link GroupingExpression}. It evaluates to a long that equals the xor of
* 'width' bits over the binary representation of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class XorBitFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/XorFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/XorFunction.java
index d0fbac7e055..c3a5f5d88ad 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/XorFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/XorFunction.java
@@ -7,7 +7,7 @@ import java.util.List;
* This class represents an xor-function in a {@link GroupingExpression}. It evaluates to a long that equals the result
* of and'ing the results of all arguments together in the order they were given to the constructor.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class XorFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java
index 9d880939892..5bda8231929 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java
@@ -7,7 +7,7 @@ import java.util.Arrays;
* This class represents a year timestamp-function in a {@link GroupingExpression}. It evaluates to a long that equals
* the full year (e.g. 2010) of the result of the argument.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class YearFunction extends FunctionNode {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/YmumValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/YmumValue.java
index 7bec89f6218..c5749c4673d 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/YmumValue.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/YmumValue.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.request;
* This class represents a document checksum in a {@link GroupingExpression}. It evaluates to the YMUM checksum of the
* input {@link com.yahoo.search.result.Hit}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class YmumValue extends DocumentValue {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/parser/GroupingParserInput.java b/container-search/src/main/java/com/yahoo/search/grouping/request/parser/GroupingParserInput.java
index 0c71348d368..189281485da 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/parser/GroupingParserInput.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/parser/GroupingParserInput.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.request.parser;
import com.yahoo.javacc.FastCharStream;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupingParserInput extends FastCharStream implements CharStream {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/AbstractList.java b/container-search/src/main/java/com/yahoo/search/grouping/result/AbstractList.java
index e4c351149f6..baa6c4c4253 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/AbstractList.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/AbstractList.java
@@ -9,7 +9,7 @@ import java.util.HashMap;
import java.util.Map;
/**
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public abstract class AbstractList extends HitGroup {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/BucketGroupId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/BucketGroupId.java
index 7ee55e85479..07729b4524a 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/BucketGroupId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/BucketGroupId.java
@@ -7,7 +7,7 @@ import static com.yahoo.text.Lowercase.toLowerCase;
* This abstract class is used in {@link Group} instances where the identifying expression evaluated to a {@link
* com.yahoo.search.grouping.request.BucketValue}. The range is inclusive-from and exclusive-to.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public abstract class BucketGroupId<T> extends GroupId {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/DoubleBucketId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/DoubleBucketId.java
index 5b9ae94b3a2..3a85f32c790 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/DoubleBucketId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/DoubleBucketId.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.result;
* This class is used in {@link Group} instances where the identifying expression evaluated to a {@link
* com.yahoo.search.grouping.request.DoubleBucket}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DoubleBucketId extends BucketGroupId<Double> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/DoubleId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/DoubleId.java
index d74140d3778..114d0c62cb9 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/DoubleId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/DoubleId.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.result;
/**
* This class is used in {@link Group} instances where the identifying expression evaluated to a {@link Double}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class DoubleId extends ValueGroupId<Double> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/Group.java b/container-search/src/main/java/com/yahoo/search/grouping/result/Group.java
index c0c6c67e463..2a1e3199d7d 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/Group.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/Group.java
@@ -10,7 +10,7 @@ import com.yahoo.search.result.Relevance;
* as fields, use {@link #getField(String)} to access), {@link GroupList} and {@link HitList}. Use the {@link
* com.yahoo.search.grouping.GroupingRequest#getResultGroup(com.yahoo.search.Result)} to retrieve an instance of this.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class Group extends HitGroup {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/GroupId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/GroupId.java
index 81ce8b7573b..27be1209bbc 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/GroupId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/GroupId.java
@@ -10,7 +10,7 @@ package com.yahoo.search.grouping.result;
* The {@link #toString()} method of this class generates a URI-compatible string on the form
* "group:&lt;typeName&gt;:&lt;subclassSpecific&gt;".
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class GroupId {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/GroupList.java b/container-search/src/main/java/com/yahoo/search/grouping/result/GroupList.java
index ca51be8702f..2788ece2c36 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/GroupList.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/GroupList.java
@@ -9,7 +9,7 @@ import com.yahoo.search.grouping.GroupingRequest;
* contains one or more {@link Group groups} itself, allowing for a hierarchy of grouping results. Use the {@link
* GroupingRequest#getResultGroup(Result)} to retrieve grouping results.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupList extends AbstractList {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/HitList.java b/container-search/src/main/java/com/yahoo/search/grouping/result/HitList.java
index 8f4d72012a6..03e0f7e6d59 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/HitList.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/HitList.java
@@ -10,7 +10,7 @@ import com.yahoo.search.result.Hit;
* contains one or more {@link Hit hits} itself, making this the parent of leaf nodes in the hierarchy of grouping
* results. Use the {@link GroupingRequest#getResultGroup(Result)} to retrieve grouping results.</p>
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class HitList extends AbstractList {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/HitRenderer.java b/container-search/src/main/java/com/yahoo/search/grouping/result/HitRenderer.java
index 37906c8012f..3907f87a276 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/HitRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/HitRenderer.java
@@ -13,7 +13,7 @@ import java.util.Map;
/**
* This is a helper class for rendering grouping results.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public abstract class HitRenderer {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/LongBucketId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/LongBucketId.java
index 219356d6799..4a9d403c33d 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/LongBucketId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/LongBucketId.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.result;
* This class is used in {@link Group} instances where the identifying expression evaluated to a {@link
* com.yahoo.search.grouping.request.LongBucket}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class LongBucketId extends BucketGroupId<Long> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/LongId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/LongId.java
index 4c6fe465eb6..7254e488deb 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/LongId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/LongId.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.result;
/**
* This class is used in {@link Group} instances where the identifying expression evaluated to a {@link Long}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class LongId extends ValueGroupId<Long> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/NullId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/NullId.java
index 98e74fbf1b1..6edf1cabca9 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/NullId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/NullId.java
@@ -6,7 +6,7 @@ package com.yahoo.search.grouping.result;
* fall outside the buckets of a {@link com.yahoo.search.grouping.request.PredefinedFunction} are added to an
* auto-generated group with this id.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class NullId extends GroupId {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/RawId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/RawId.java
index 9b347bb950d..11720756754 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/RawId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/RawId.java
@@ -6,7 +6,7 @@ import java.util.Arrays;
/**
* This class is used in {@link Group} instances where the identifying expression evaluated to a {@link Byte} array.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class RawId extends ValueGroupId<byte[]> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/RootGroup.java b/container-search/src/main/java/com/yahoo/search/grouping/result/RootGroup.java
index 360daa7a0b1..571ad2d3365 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/RootGroup.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/RootGroup.java
@@ -8,7 +8,7 @@ import com.yahoo.search.result.Relevance;
* This class represents the root {@link Group} in the grouping result model. This class adds a {@link Continuation}
* object that can be used to paginate the result.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class RootGroup extends Group {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/RootId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/RootId.java
index e4650de610b..d5667dd0383 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/RootId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/RootId.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.result;
/**
* This class is used in {@link RootGroup} instances.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class RootId extends GroupId {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/StringBucketId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/StringBucketId.java
index 9eebb110aab..e34b50e6df8 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/StringBucketId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/StringBucketId.java
@@ -5,7 +5,7 @@ package com.yahoo.search.grouping.result;
* This class is used in {@link Group} instances where the identifying expression evaluated to a {@link
* com.yahoo.search.grouping.request.StringBucket}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class StringBucketId extends BucketGroupId<String> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/StringId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/StringId.java
index 3eea3220c83..4448d587a03 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/StringId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/StringId.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.result;
/**
* This class is used in {@link Group} instances where the identifying expression evaluated to a {@link String}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class StringId extends ValueGroupId<String> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/result/ValueGroupId.java b/container-search/src/main/java/com/yahoo/search/grouping/result/ValueGroupId.java
index 17945b8b5bd..bebd3fd85b0 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/result/ValueGroupId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/result/ValueGroupId.java
@@ -6,7 +6,7 @@ import static com.yahoo.text.Lowercase.toLowerCase;
/**
* This abstract class is used in {@link Group} instances where the identifying expression evaluated to a singe value.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class ValueGroupId<T> extends GroupId {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/CompositeContinuation.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/CompositeContinuation.java
index 5d83ff813c7..a02b80db16f 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/CompositeContinuation.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/CompositeContinuation.java
@@ -8,7 +8,7 @@ import java.util.Iterator;
import java.util.List;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
class CompositeContinuation extends EncodableContinuation implements Iterable<EncodableContinuation> {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/ContinuationDecoder.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/ContinuationDecoder.java
index b3dab1cf527..151524e0350 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/ContinuationDecoder.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/ContinuationDecoder.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.vespa;
import com.yahoo.search.grouping.Continuation;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class ContinuationDecoder {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/EncodableContinuation.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/EncodableContinuation.java
index 47c9f34ffbe..2ec371475c2 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/EncodableContinuation.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/EncodableContinuation.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.vespa;
import com.yahoo.search.grouping.Continuation;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
abstract class EncodableContinuation extends Continuation {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/ExpressionConverter.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/ExpressionConverter.java
index 4ce50335b2f..d2dfb3c0ee7 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/ExpressionConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/ExpressionConverter.java
@@ -156,7 +156,7 @@ import com.yahoo.searchlib.expression.ZCurveFunctionNode;
* This is a helper class for {@link RequestBuilder} that offloads the code to convert {@link GroupingExpression} type
* objects to back-end specific expressions. This is a straightforward one-to-one conversion.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
class ExpressionConverter {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java
index ae128e70f20..bf7eb8dc12e 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java
@@ -37,7 +37,7 @@ import com.yahoo.vespa.objects.ObjectPredicate;
* transformation from the abstract request to Vespa grouping expressions (using {@link RequestBuilder}), and the
* corresponding transformation of results (using {@link ResultBuilder}).
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
@After({ GroupingValidator.GROUPING_VALIDATED,
"com.yahoo.search.querytransform.WandSearcher",
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingTransform.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingTransform.java
index a0a3f1b4e55..e58448ea2ef 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingTransform.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingTransform.java
@@ -13,7 +13,7 @@ import java.util.Set;
* transformed into a list {@link com.yahoo.searchlib.aggregation.Grouping} objects, so that the results of those
* queries can be transformed into something that corresponds to the original request.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
class GroupingTransform {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java
index 617c037d2a7..1d7d380f4db 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java
@@ -13,7 +13,7 @@ import com.yahoo.searchlib.aggregation.VdsHit;
/**
* Implementation of the {@link ResultBuilder.HitConverter} interface for {@link GroupingExecutor}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
class HitConverter implements ResultBuilder.HitConverter {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerDecoder.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerDecoder.java
index a92238fa0a0..e1a222d6bc0 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerDecoder.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerDecoder.java
@@ -2,7 +2,7 @@
package com.yahoo.search.grouping.vespa;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
class IntegerDecoder {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerEncoder.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerEncoder.java
index 5cd1ee1fc13..b17991b22f1 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerEncoder.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/IntegerEncoder.java
@@ -2,7 +2,7 @@
package com.yahoo.search.grouping.vespa;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
class IntegerEncoder {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java
index 7aff32a5847..6adec94132e 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java
@@ -2,7 +2,7 @@
package com.yahoo.search.grouping.vespa;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
class OffsetContinuation extends EncodableContinuation {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/RequestBuilder.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/RequestBuilder.java
index 6a35e599eba..46b1fecd7de 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/RequestBuilder.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/RequestBuilder.java
@@ -17,7 +17,7 @@ import java.util.*;
* This class implements the necessary logic to build a list of {@link Grouping} objects from an instance of {@link
* GroupingOperation}. It is used by the {@link GroupingExecutor}.
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
class RequestBuilder {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultBuilder.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultBuilder.java
index 2bb752122ba..7e2404c34e8 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultBuilder.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultBuilder.java
@@ -52,7 +52,7 @@ import java.util.Map;
* This class implements the necessary logic to build a {@link RootGroup} from a list of {@link Grouping} objects. It is
* used by the {@link GroupingExecutor}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
class ResultBuilder {
@@ -383,7 +383,7 @@ class ResultBuilder {
* Defines a helper interface to convert Vespa style grouping hits into corresponding instances of {@link Hit}. It
* is an interface to simplify testing.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public interface HitConverter {
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultId.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultId.java
index 21fa8b2f553..0d09e7ab69d 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultId.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/ResultId.java
@@ -4,7 +4,7 @@ package com.yahoo.search.grouping.vespa;
import java.util.Arrays;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
class ResultId {
diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
index e9e4e34727c..3bfaee658f9 100644
--- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
+++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
@@ -20,8 +20,8 @@ import com.yahoo.container.jdisc.LoggingRequestHandler;
import com.yahoo.container.jdisc.VespaHeaders;
import com.yahoo.container.logging.AccessLog;
import com.yahoo.container.protect.FreezeDetector;
+import com.yahoo.io.IOUtils;
import com.yahoo.jdisc.Metric;
-import com.yahoo.jdisc.Response;
import com.yahoo.language.Linguistics;
import com.yahoo.log.LogLevel;
import com.yahoo.net.HostName;
@@ -33,6 +33,9 @@ import com.yahoo.prelude.query.parser.ParseException;
import com.yahoo.prelude.query.parser.SpecialTokenRegistry;
import com.yahoo.processing.rendering.Renderer;
import com.yahoo.processing.request.CompoundName;
+import com.yahoo.slime.Inspector;
+import com.yahoo.slime.ObjectTraverser;
+import com.yahoo.vespa.config.SlimeUtils;
import com.yahoo.yolean.Exceptions;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
@@ -55,9 +58,10 @@ import com.yahoo.statistics.Statistics;
import com.yahoo.statistics.Value;
import com.yahoo.vespa.configdefinition.SpecialtokensConfig;
import edu.umd.cs.findbugs.annotations.NonNull;
-
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Optional;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
@@ -82,6 +86,8 @@ public class SearchHandler extends LoggingRequestHandler {
/** Event name for number of connections to the search subsystem */
private static final String SEARCH_CONNECTIONS = "search_connections";
+ private static final String JSON_CONTENT_TYPE = "application/json";
+
private static Logger log = Logger.getLogger(SearchHandler.class.getName());
private Value searchConnections;
@@ -275,14 +281,14 @@ public class SearchHandler extends LoggingRequestHandler {
return errorResponse(request, ErrorMessage.createInternalServerError(Exceptions.toMessageString(e)));
}
- private HttpSearchResponse handleBody(HttpRequest request) {
+
+ private HttpSearchResponse handleBody(HttpRequest request){
// Find query profile
String queryProfileName = request.getProperty("queryProfile");
CompiledQueryProfile queryProfile = queryProfileRegistry.findQueryProfile(queryProfileName);
boolean benchmarkOutput = VespaHeaders.benchmarkOutput(request);
- // Create query
- Query query = new Query(request, queryProfile);
+ Query query = queryFromRequest(request, queryProfile);
boolean benchmarkCoverage = VespaHeaders.benchmarkCoverage(benchmarkOutput, request.getJDiscRequest().headers());
@@ -552,4 +558,60 @@ public class SearchHandler extends LoggingRequestHandler {
return searchChainRegistry;
}
+ private Query queryFromRequest(HttpRequest request, CompiledQueryProfile queryProfile){
+ if (request.getMethod() == com.yahoo.jdisc.http.HttpRequest.Method.POST
+ && JSON_CONTENT_TYPE.equals(request.getHeader(com.yahoo.jdisc.http.HttpHeaders.Names.CONTENT_TYPE))) {
+ Inspector inspector;
+ try {
+ byte[] byteArray = IOUtils.readBytes(request.getData(), 1 << 20);
+ inspector = SlimeUtils.jsonToSlime(byteArray).get();
+ if (inspector.field("error_message").valid()){
+ throw new QueryException("Illegal query: "+inspector.field("error_message").asString() + ", at: "+ new String(inspector.field("offending_input").asData(), StandardCharsets.UTF_8));
+ }
+
+ } catch (IOException e) {
+ throw new RuntimeException("Problem with reading from input-stream", e);
+ }
+
+ // Create request-mapping
+ Map<String, String> requestMap = new HashMap<>();
+ createRequestMapping(inspector, requestMap, "");
+ return new Query(request, requestMap, queryProfile);
+
+
+ } else {
+ return new Query(request, queryProfile);
+
+ }
+ }
+
+ public void createRequestMapping(Inspector inspector, Map<String, String> map, String parent) {
+ inspector.traverse((ObjectTraverser) (key, value) -> {
+ String qualifiedKey = parent + key;
+ switch (value.type()) {
+ case BOOL:
+ map.put(qualifiedKey, Boolean.toString(value.asBool()));
+ break;
+ case DOUBLE:
+ map.put(qualifiedKey, Double.toString(value.asDouble()));
+ break;
+ case LONG:
+ map.put(qualifiedKey, Long.toString(value.asLong()));
+ break;
+ case STRING:
+ map.put(qualifiedKey , value.asString());
+ break;
+ case ARRAY:
+ map.put(qualifiedKey, value.asString());
+ break;
+ case OBJECT:
+ createRequestMapping(value, map, qualifiedKey+".");
+ break;
+ }
+
+ });
+ }
+
}
+
+
diff --git a/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java b/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java
index 55e5c7ae07d..e5941a90b83 100644
--- a/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java
+++ b/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java
@@ -25,7 +25,7 @@ import java.util.Set;
* <p>In case you are parsing the content of a {@link Model}, you can use the {@link #fromQueryModel(Model)} factory for
* convenience.</p>
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public final class Parsable {
diff --git a/container-search/src/main/java/com/yahoo/search/query/parser/Parser.java b/container-search/src/main/java/com/yahoo/search/query/parser/Parser.java
index 2d050426b00..32c386f0e32 100644
--- a/container-search/src/main/java/com/yahoo/search/query/parser/Parser.java
+++ b/container-search/src/main/java/com/yahoo/search/query/parser/Parser.java
@@ -6,7 +6,7 @@ import com.yahoo.search.query.QueryTree;
/**
* Defines the interface of a query parser. To construct an instance of this class, use the {@link ParserFactory}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public interface Parser {
diff --git a/container-search/src/main/java/com/yahoo/search/query/parser/ParserEnvironment.java b/container-search/src/main/java/com/yahoo/search/query/parser/ParserEnvironment.java
index ba782cd17c6..ca437fb9def 100644
--- a/container-search/src/main/java/com/yahoo/search/query/parser/ParserEnvironment.java
+++ b/container-search/src/main/java/com/yahoo/search/query/parser/ParserEnvironment.java
@@ -13,7 +13,7 @@ import com.yahoo.search.searchchain.Execution;
* This class encapsulates the environment of a {@link Parser}. In case you are creating a parser from within a
* {@link Searcher}, you can use the {@link #fromExecutionContext(Execution.Context)} factory for convenience.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public final class ParserEnvironment {
diff --git a/container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java b/container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java
index d102bc39a88..8d008abaac2 100644
--- a/container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java
+++ b/container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java
@@ -8,7 +8,7 @@ import com.yahoo.search.yql.YqlParser;
/**
* Implements a factory for {@link Parser}.
*
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public final class ParserFactory {
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/TextSerialize.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/TextSerialize.java
index ccf343889a0..f44dab92fc7 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/TextSerialize.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/TextSerialize.java
@@ -12,7 +12,7 @@ import com.yahoo.search.query.textserialize.serializer.QueryTreeSerializer;
import java.io.StringReader;
/**
- * @author tonytv
+ * @author Tony Vaagenes
* Facade
* Allows serializing/deserializing a query to the programmatic format.
*/
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/AndNotRestConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/AndNotRestConverter.java
index d60979d7820..243596f2b2d 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/AndNotRestConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/AndNotRestConverter.java
@@ -10,7 +10,7 @@ import static com.yahoo.search.query.textserialize.item.ListUtil.butFirst;
import static com.yahoo.search.query.textserialize.item.ListUtil.first;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class AndNotRestConverter extends CompositeConverter<NotItem> {
static final String andNotRest = "AND-NOT-REST";
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/CompositeConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/CompositeConverter.java
index 77b9bf45494..332f03c896c 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/CompositeConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/CompositeConverter.java
@@ -9,7 +9,7 @@ import com.yahoo.search.query.textserialize.serializer.ItemIdMapper;
import java.util.ListIterator;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class CompositeConverter<T extends CompositeItem> implements ItemFormConverter {
private final Class<T> itemClass;
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/IntConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/IntConverter.java
index d01e80393b7..520d6eb7ec5 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/IntConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/IntConverter.java
@@ -5,7 +5,7 @@ import com.yahoo.prelude.query.IntItem;
import com.yahoo.prelude.query.TermItem;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class IntConverter extends TermConverter {
@Override
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java
index d4bf0a1a412..4d998f3553c 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java
@@ -8,7 +8,7 @@ import java.util.Map;
import static com.yahoo.search.query.textserialize.item.ListUtil.firstInstanceOf;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class ItemArguments {
public final Map<?, ?> properties;
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemContext.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemContext.java
index c34b1434366..e739608387d 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemContext.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemContext.java
@@ -9,7 +9,7 @@ import java.util.IdentityHashMap;
import java.util.Map;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class ItemContext {
private class Connectivity {
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemExecutorRegistry.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemExecutorRegistry.java
index 8f1d557aadb..4f18232df24 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemExecutorRegistry.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemExecutorRegistry.java
@@ -15,7 +15,7 @@ import java.util.HashMap;
import java.util.Map;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class ItemExecutorRegistry {
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormConverter.java
index 929f31a0e92..1c101943326 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormConverter.java
@@ -6,7 +6,7 @@ import com.yahoo.search.query.textserialize.serializer.DispatchForm;
import com.yahoo.search.query.textserialize.serializer.ItemIdMapper;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public interface ItemFormConverter {
Object formToItem(String name, ItemArguments arguments, ItemContext context);
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormHandler.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormHandler.java
index faf03c1f9df..34841564c68 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormHandler.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemFormHandler.java
@@ -6,7 +6,7 @@ import com.yahoo.search.query.textserialize.parser.DispatchFormHandler;
import java.util.List;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class ItemFormHandler implements DispatchFormHandler{
@Override
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java
index 43bec08b3f5..a1a240b9bfb 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java
@@ -12,7 +12,7 @@ import java.util.List;
import java.util.Map;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class ItemInitializer {
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ListUtil.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ListUtil.java
index 7119669b0ca..71ac07fe2ea 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ListUtil.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ListUtil.java
@@ -4,7 +4,7 @@ package com.yahoo.search.query.textserialize.item;
import java.util.*;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class ListUtil {
public static <T> List<T> rest(List<T> list) {
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/NearConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/NearConverter.java
index 26829a70491..d622068b384 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/NearConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/NearConverter.java
@@ -7,7 +7,7 @@ import com.yahoo.search.query.textserialize.serializer.DispatchForm;
import com.yahoo.search.query.textserialize.serializer.ItemIdMapper;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
@SuppressWarnings("rawtypes")
public class NearConverter extends CompositeConverter {
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/PrefixConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/PrefixConverter.java
index 0bfb69463ec..bbf87ef8532 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/PrefixConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/PrefixConverter.java
@@ -4,7 +4,7 @@ package com.yahoo.search.query.textserialize.item;
import com.yahoo.prelude.query.PrefixItem;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class PrefixConverter extends WordConverter {
@Override
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/SubStringConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/SubStringConverter.java
index d99ef575597..d7e6aa3900c 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/SubStringConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/SubStringConverter.java
@@ -4,7 +4,7 @@ package com.yahoo.search.query.textserialize.item;
import com.yahoo.prelude.query.SubstringItem;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SubStringConverter extends WordConverter {
@Override
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/SuffixConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/SuffixConverter.java
index 3002ec39e48..c2de4772806 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/SuffixConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/SuffixConverter.java
@@ -4,7 +4,7 @@ package com.yahoo.search.query.textserialize.item;
import com.yahoo.prelude.query.SuffixItem;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SuffixConverter extends WordConverter {
@Override
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/TermConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/TermConverter.java
index 3a6bbf77d5e..04c01d7acc1 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/TermConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/TermConverter.java
@@ -7,7 +7,7 @@ import com.yahoo.search.query.textserialize.serializer.DispatchForm;
import com.yahoo.search.query.textserialize.serializer.ItemIdMapper;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public abstract class TermConverter implements ItemFormConverter {
@Override
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/TypeCheck.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/TypeCheck.java
index ebfcc8aa54c..b7843a300dc 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/TypeCheck.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/TypeCheck.java
@@ -4,7 +4,7 @@ package com.yahoo.search.query.textserialize.item;
import com.yahoo.protect.Validator;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class TypeCheck {
public static void ensureInstanceOf(Object object, Class<?> c) {
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/WordConverter.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/WordConverter.java
index b4d40f26a1d..f37059cfe1d 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/WordConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/WordConverter.java
@@ -5,7 +5,7 @@ import com.yahoo.prelude.query.TermItem;
import com.yahoo.prelude.query.WordItem;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class WordConverter extends TermConverter {
@Override
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/parser/DispatchFormHandler.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/parser/DispatchFormHandler.java
index e196952c903..d3d3b030d7a 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/parser/DispatchFormHandler.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/parser/DispatchFormHandler.java
@@ -4,7 +4,7 @@ package com.yahoo.search.query.textserialize.parser;
import java.util.List;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public interface DispatchFormHandler {
Object dispatch(String name, List<Object> arguments, Object dispatchContext);
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/DispatchForm.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/DispatchForm.java
index 27032065e6b..11ec6e4b020 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/DispatchForm.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/DispatchForm.java
@@ -7,7 +7,7 @@ import java.util.List;
import java.util.Map;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class DispatchForm {
private final String name;
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/ItemIdMapper.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/ItemIdMapper.java
index e5473d77574..df589fcd76a 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/ItemIdMapper.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/ItemIdMapper.java
@@ -7,7 +7,7 @@ import java.util.IdentityHashMap;
import java.util.Map;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class ItemIdMapper {
private final Map<Item, String> idByItem = new IdentityHashMap<>();
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/QueryTreeSerializer.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/QueryTreeSerializer.java
index 337c1d4a59e..7cdeb9f9597 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/QueryTreeSerializer.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/QueryTreeSerializer.java
@@ -6,7 +6,7 @@ import com.yahoo.search.query.textserialize.item.ItemExecutorRegistry;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class QueryTreeSerializer {
public String serialize(Item root) {
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/Serializer.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/Serializer.java
index 828fb6ce415..d4e499bab79 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/Serializer.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/serializer/Serializer.java
@@ -11,7 +11,7 @@ import static com.yahoo.search.query.textserialize.item.ListUtil.butFirst;
import static com.yahoo.search.query.textserialize.item.ListUtil.first;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
class Serializer {
static String serialize(Object child, ItemIdMapper itemIdMapper) {
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java
index 2d69a262f15..aa825149bb7 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java
@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
/**
* XML rendering of search results. This is NOT the default (but it once was).
*
- * @author tonytv
+ * @author Tony Vaagenes
* @deprecated use JsonRenderer instead
*/
@SuppressWarnings({ "rawtypes", "deprecation" })
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/Renderer.java b/container-search/src/main/java/com/yahoo/search/rendering/Renderer.java
index a5ade01b1be..a61c657b709 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/Renderer.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/Renderer.java
@@ -26,7 +26,7 @@ import java.nio.charset.CharsetEncoder;
* <li>State mutated during rendering shall be initialized in the init method.</li>
* </ol>
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
abstract public class Renderer extends com.yahoo.processing.rendering.Renderer<Result> {
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java
index c35a4efc50c..bd647bd74f0 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java
@@ -29,7 +29,7 @@ import java.util.List;
* <li>State mutated during rendering shall be initialized in the init method.
* </ol>
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
abstract public class SectionedRenderer<WRITER> extends Renderer {
/**
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java
index 08599540cb1..6919f6bd3f8 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java
@@ -35,7 +35,7 @@ import java.util.logging.Logger;
import java.util.stream.Collectors;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
@SuppressWarnings({ "rawtypes", "deprecation" })
public final class SyncDefaultRenderer extends Renderer {
diff --git a/container-search/src/main/java/com/yahoo/search/result/MetaHitsFirstComparator.java b/container-search/src/main/java/com/yahoo/search/result/MetaHitsFirstComparator.java
index 389222f6cec..a15cd30d664 100644
--- a/container-search/src/main/java/com/yahoo/search/result/MetaHitsFirstComparator.java
+++ b/container-search/src/main/java/com/yahoo/search/result/MetaHitsFirstComparator.java
@@ -7,7 +7,7 @@ import java.util.Comparator;
* Ensures that meta hits are sorted before normal hits. All meta hits are
* considered equal.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class MetaHitsFirstComparator extends ChainableComparator {
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java
index cfef91ee0ec..1657b45b1b4 100644
--- a/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java
+++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java
@@ -17,7 +17,7 @@ import java.util.*;
/**
* Defines the searcher models used in the vespa and native search chains, except for federation.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
@SuppressWarnings({"rawtypes", "deprecation", "unchecked"})
public class VespaSearchers {
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationOptions.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationOptions.java
index a24b13a6d17..0843ec074b6 100644
--- a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationOptions.java
+++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationOptions.java
@@ -9,7 +9,7 @@ import java.util.Objects;
* Options for controlling federation to a single source.
* This is a value object.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
@Immutable
public class FederationOptions implements Cloneable {
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationSearcherModel.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationSearcherModel.java
index 9088575b881..e1c95e9478e 100644
--- a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationSearcherModel.java
+++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/FederationSearcherModel.java
@@ -15,7 +15,7 @@ import com.yahoo.search.federation.FederationSearcher;
/**
* Specifies how a federation searcher is to be set up.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
@Immutable
public class FederationSearcherModel extends ChainedComponentModel {
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/HttpProviderSpec.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/HttpProviderSpec.java
index 4495ec25908..4103514c103 100644
--- a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/HttpProviderSpec.java
+++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/HttpProviderSpec.java
@@ -13,7 +13,7 @@ import java.util.List;
/**
* Specifies how a http provider is to be set up.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
@Immutable
public class HttpProviderSpec {
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
index ef2bf65895f..a18b93b8a6f 100644
--- a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
+++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
@@ -16,7 +16,7 @@ import net.jcip.annotations.Immutable;
/**
* Specifies how a local provider is to be set up.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
@Immutable
public class LocalProviderSpec {
diff --git a/container-search/src/main/java/com/yahoo/search/yql/VespaGroupingStep.java b/container-search/src/main/java/com/yahoo/search/yql/VespaGroupingStep.java
index 6ba33ee012b..4626109f6cd 100644
--- a/container-search/src/main/java/com/yahoo/search/yql/VespaGroupingStep.java
+++ b/container-search/src/main/java/com/yahoo/search/yql/VespaGroupingStep.java
@@ -8,7 +8,7 @@ import java.util.ArrayList;
import java.util.List;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen Hult</a>
+ * @author Simon Thoresen Hult
*/
public class VespaGroupingStep {
diff --git a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java
index 0b9f79537d0..6bad032600c 100644
--- a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java
+++ b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java
@@ -90,7 +90,7 @@ import edu.umd.cs.findbugs.annotations.NonNull;
*
* @author Steinar Knutsen
* @author Stian Kristoffersen
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
@Beta
public class YqlParser implements Parser {
diff --git a/container-search/src/main/javacc/com/yahoo/search/query/textserialize/parser/Parser.jj b/container-search/src/main/javacc/com/yahoo/search/query/textserialize/parser/Parser.jj
index d9766fa40f6..5cf14429aff 100644
--- a/container-search/src/main/javacc/com/yahoo/search/query/textserialize/parser/Parser.jj
+++ b/container-search/src/main/javacc/com/yahoo/search/query/textserialize/parser/Parser.jj
@@ -1,6 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
/**
- * @author <a href="mailto:tonyv@yahoo-inc.com">tonyv</a>
+ * @author Tony Vaagenes
*/
options {
LOOKAHEAD = 1;
diff --git a/container-search/src/test/java/com/yahoo/fs4/test/HexByteIteratorTestCase.java b/container-search/src/test/java/com/yahoo/fs4/test/HexByteIteratorTestCase.java
index b07363d7df2..022feb09b2e 100644
--- a/container-search/src/test/java/com/yahoo/fs4/test/HexByteIteratorTestCase.java
+++ b/container-search/src/test/java/com/yahoo/fs4/test/HexByteIteratorTestCase.java
@@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue;
/**
* Test of HexByteIterator
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class HexByteIteratorTestCase {
diff --git a/container-search/src/test/java/com/yahoo/prelude/IndexFactsFactory.java b/container-search/src/test/java/com/yahoo/prelude/IndexFactsFactory.java
index fe2a264e03a..2272bbbb947 100644
--- a/container-search/src/test/java/com/yahoo/prelude/IndexFactsFactory.java
+++ b/container-search/src/test/java/com/yahoo/prelude/IndexFactsFactory.java
@@ -7,7 +7,7 @@ import com.yahoo.search.config.IndexInfoConfig;
import com.yahoo.container.QrSearchersConfig;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public abstract class IndexFactsFactory {
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java
index 2a91319a905..ec586e67763 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java
@@ -115,8 +115,8 @@ public class FastSearcherTestCase {
.name("simpler").hasRankFeatures(false).hasSummaryFeatures(false))));
List<SearchCluster.Node> nodes = new ArrayList<>();
- nodes.add(new SearchCluster.Node("host1", 5000, 0));
- nodes.add(new SearchCluster.Node("host2", 5000, 0));
+ nodes.add(new SearchCluster.Node(0, "host1", 5000, 0));
+ nodes.add(new SearchCluster.Node(2, "host2", 5000, 0));
MockFS4ResourcePool mockFs4ResourcePool = new MockFS4ResourcePool();
FastSearcher fastSearcher = new FastSearcher(new MockBackend(),
@@ -442,7 +442,7 @@ public class FastSearcherTestCase {
public void testSinglePassGroupingIsForcedWithSingleNodeGroups() {
FastSearcher fastSearcher = new FastSearcher(new MockBackend(),
new FS4ResourcePool(1),
- new MockDispatcher(new SearchCluster.Node("host0", 123, 0)),
+ new MockDispatcher(new SearchCluster.Node(0, "host0", 123, 0)),
new SummaryParameters(null),
new ClusterParams("testhittype"),
new CacheParams(100, 1e64),
@@ -465,8 +465,8 @@ public class FastSearcherTestCase {
@Test
public void testSinglePassGroupingIsNotForcedWithSingleNodeGroups() {
MockDispatcher dispatcher =
- new MockDispatcher(ImmutableList.of(new SearchCluster.Node("host0", 123, 0),
- new SearchCluster.Node("host1", 123, 0)));
+ new MockDispatcher(ImmutableList.of(new SearchCluster.Node(0, "host0", 123, 0),
+ new SearchCluster.Node(2, "host1", 123, 0)));
FastSearcher fastSearcher = new FastSearcher(new MockBackend(),
new FS4ResourcePool(1),
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTester.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTester.java
index 7c1f05e3e60..035710c612c 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTester.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTester.java
@@ -58,9 +58,10 @@ class FastSearcherTester {
private static List<SearchCluster.Node> toNodes(String... hostAndPortAndGroupStrings) {
List<SearchCluster.Node> nodes = new ArrayList<>();
+ int key = 0;
for (String s : hostAndPortAndGroupStrings) {
String[] parts = s.split(":");
- nodes.add(new SearchCluster.Node(parts[0], Integer.parseInt(parts[1]), Integer.parseInt(parts[2])));
+ nodes.add(new SearchCluster.Node(key++, parts[0], Integer.parseInt(parts[1]), Integer.parseInt(parts[2])));
}
return nodes;
}
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/fs4mock/MockFS4ResourcePool.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/fs4mock/MockFS4ResourcePool.java
index 997fbb198ea..704dcd31c0d 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/fs4mock/MockFS4ResourcePool.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/fs4mock/MockFS4ResourcePool.java
@@ -7,6 +7,7 @@ import com.yahoo.prelude.fastsearch.FS4ResourcePool;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
/**
@@ -25,7 +26,7 @@ public class MockFS4ResourcePool extends FS4ResourcePool {
}
@Override
- public Backend getBackend(String hostname, int port) {
+ public Backend getBackend(String hostname, int port, Optional<Integer> distributionKey) {
countRequest(hostname + ":" + port);
if (nonRespondingBackends.contains(hostname))
return new MockBackend(hostname, NonWorkingMockFSChannel::new);
diff --git a/container-search/src/test/java/com/yahoo/prelude/query/parser/TestLinguistics.java b/container-search/src/test/java/com/yahoo/prelude/query/parser/TestLinguistics.java
index f281b3fcf53..fbe40494231 100644
--- a/container-search/src/test/java/com/yahoo/prelude/query/parser/TestLinguistics.java
+++ b/container-search/src/test/java/com/yahoo/prelude/query/parser/TestLinguistics.java
@@ -9,7 +9,7 @@ import com.yahoo.language.process.*;
import com.yahoo.language.simple.SimpleLinguistics;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class TestLinguistics implements Linguistics {
diff --git a/container-search/src/test/java/com/yahoo/prelude/query/textualrepresentation/test/TextualQueryRepresentationTestCase.java b/container-search/src/test/java/com/yahoo/prelude/query/textualrepresentation/test/TextualQueryRepresentationTestCase.java
index 1e0c1400518..4b24c88a1db 100644
--- a/container-search/src/test/java/com/yahoo/prelude/query/textualrepresentation/test/TextualQueryRepresentationTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/query/textualrepresentation/test/TextualQueryRepresentationTestCase.java
@@ -20,7 +20,7 @@ import static org.junit.Assert.assertEquals;
/**
* Test of TextualQueryRepresentation.
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public class TextualQueryRepresentationTestCase {
diff --git a/container-search/src/test/java/com/yahoo/prelude/querytransform/test/RecallSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/querytransform/test/RecallSearcherTestCase.java
index ad1c12629c3..f7d5e5b1a48 100755
--- a/container-search/src/test/java/com/yahoo/prelude/querytransform/test/RecallSearcherTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/querytransform/test/RecallSearcherTestCase.java
@@ -24,7 +24,7 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class RecallSearcherTestCase {
diff --git a/container-search/src/test/java/com/yahoo/prelude/searcher/test/MultipleResultsTestCase.java b/container-search/src/test/java/com/yahoo/prelude/searcher/test/MultipleResultsTestCase.java
index 5c74e288d18..aca2386facc 100644
--- a/container-search/src/test/java/com/yahoo/prelude/searcher/test/MultipleResultsTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/searcher/test/MultipleResultsTestCase.java
@@ -19,7 +19,7 @@ import static org.junit.Assert.assertEquals;
/**
* Test of MultipleResultsSearcher
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
@SuppressWarnings("deprecation")
public class MultipleResultsTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SearchChainResolverTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SearchChainResolverTestCase.java
index 4485a016ee6..5b6d3b6abce 100644
--- a/container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SearchChainResolverTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SearchChainResolverTestCase.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SearchChainResolverTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SourceRefResolverTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SourceRefResolverTestCase.java
index 714d1803605..ab07baf438a 100644
--- a/container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SourceRefResolverTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/federation/sourceref/test/SourceRefResolverTestCase.java
@@ -28,7 +28,7 @@ import static org.junit.matchers.JUnitMatchers.hasItems;
/**
* Test for SourceRefResolver.
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SourceRefResolverTestCase {
private static final String cluster1 = "cluster1";
diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/AddHitsWithRelevanceSearcher.java b/container-search/src/test/java/com/yahoo/search/federation/test/AddHitsWithRelevanceSearcher.java
index d50057438d8..b3cf5968651 100644
--- a/container-search/src/test/java/com/yahoo/search/federation/test/AddHitsWithRelevanceSearcher.java
+++ b/container-search/src/test/java/com/yahoo/search/federation/test/AddHitsWithRelevanceSearcher.java
@@ -8,7 +8,7 @@ import com.yahoo.search.result.Hit;
import com.yahoo.search.searchchain.Execution;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class AddHitsWithRelevanceSearcher extends Searcher {
public static final int numHitsAdded = 5;
diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/BlockingSearcher.java b/container-search/src/test/java/com/yahoo/search/federation/test/BlockingSearcher.java
index 7c24ba74a46..7d96638adc9 100644
--- a/container-search/src/test/java/com/yahoo/search/federation/test/BlockingSearcher.java
+++ b/container-search/src/test/java/com/yahoo/search/federation/test/BlockingSearcher.java
@@ -7,7 +7,7 @@ import com.yahoo.search.Searcher;
import com.yahoo.search.searchchain.Execution;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class BlockingSearcher extends Searcher {
@Override
diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java b/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java
index 939dd7ab42c..088a432324d 100644
--- a/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java
+++ b/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java
@@ -37,7 +37,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.*;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class FederationSearcherTest {
diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java b/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java
index c3d78757b41..a863bd4f687 100644
--- a/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java
+++ b/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java
@@ -15,7 +15,7 @@ import com.yahoo.search.searchchain.model.federation.FederationOptions;
import java.util.Collections;
/**
-* @author tonytv
+* @author Tony Vaagenes
*/
class FederationTester {
diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/HitCountTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/test/HitCountTestCase.java
index 9278d8999d7..a5eb5b35087 100644
--- a/container-search/src/test/java/com/yahoo/search/federation/test/HitCountTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/federation/test/HitCountTestCase.java
@@ -16,7 +16,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class HitCountTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/SetHitCountsSearcher.java b/container-search/src/test/java/com/yahoo/search/federation/test/SetHitCountsSearcher.java
index 24d6801f2bd..ab49f3c313e 100644
--- a/container-search/src/test/java/com/yahoo/search/federation/test/SetHitCountsSearcher.java
+++ b/container-search/src/test/java/com/yahoo/search/federation/test/SetHitCountsSearcher.java
@@ -8,7 +8,7 @@ import com.yahoo.search.result.Hit;
import com.yahoo.search.searchchain.Execution;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
class SetHitCountsSearcher extends Searcher {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/ContinuationTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/ContinuationTestCase.java
index 3f84c324429..8546769ad07 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/ContinuationTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/ContinuationTestCase.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class ContinuationTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java
index 08d36f8748d..8de704a8a0e 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java
@@ -16,7 +16,7 @@ import java.util.TimeZone;
import static org.junit.Assert.*;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupingQueryParserTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java
index b69061d20c0..494602be7b3 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java
@@ -16,7 +16,7 @@ import java.util.Collections;
import static org.junit.Assert.*;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupingRequestTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/GroupingValidatorTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/GroupingValidatorTestCase.java
index fd0162acc5c..82c05c1d995 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/GroupingValidatorTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/GroupingValidatorTestCase.java
@@ -16,7 +16,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupingValidatorTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/request/BucketResolverTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/request/BucketResolverTestCase.java
index d76d704f37b..ed2d158397f 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/request/BucketResolverTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/request/BucketResolverTestCase.java
@@ -10,7 +10,7 @@ import java.util.List;
import static org.junit.Assert.*;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
@SuppressWarnings({ "rawtypes" })
public class BucketResolverTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/request/ExpressionVisitorTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/request/ExpressionVisitorTestCase.java
index b245404ca30..13a5160ba86 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/request/ExpressionVisitorTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/request/ExpressionVisitorTestCase.java
@@ -10,7 +10,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class ExpressionVisitorTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/request/GroupingOperationTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/request/GroupingOperationTestCase.java
index ee1f07970d1..cc834002fd8 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/request/GroupingOperationTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/request/GroupingOperationTestCase.java
@@ -10,7 +10,7 @@ import java.util.List;
import static org.junit.Assert.*;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupingOperationTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/request/MathResolverTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/request/MathResolverTestCase.java
index 5dee372e7d7..68d2177f2f7 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/request/MathResolverTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/request/MathResolverTestCase.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class MathResolverTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/request/RequestTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/request/RequestTestCase.java
index ce73fde9504..b049721a525 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/request/RequestTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/request/RequestTestCase.java
@@ -8,7 +8,7 @@ import java.util.Arrays;
import static org.junit.Assert.*;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class RequestTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserBenchmarkTest.java b/container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserBenchmarkTest.java
index 37932e6f05e..60ada5124a0 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserBenchmarkTest.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserBenchmarkTest.java
@@ -11,7 +11,7 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupingParserBenchmarkTest {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserTestCase.java
index 227530ae52d..db1f2f59e8d 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/request/parser/GroupingParserTestCase.java
@@ -20,7 +20,7 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupingParserTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/GroupIdTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/GroupIdTestCase.java
index 3dc6c185d8d..9ca2efb8e07 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/result/GroupIdTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/result/GroupIdTestCase.java
@@ -6,7 +6,7 @@ import org.junit.Test;
import static org.junit.Assert.*;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupIdTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java
index f24c1371daf..651321a3b69 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java
@@ -8,7 +8,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupListTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/GroupTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/GroupTestCase.java
index 1d0e6528521..fd4e8d60711 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/result/GroupTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/result/GroupTestCase.java
@@ -9,7 +9,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class GroupTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java
index 106b227599f..05a78b71cac 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java
@@ -8,7 +8,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class HitListTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java
index bee9aa90f56..85b8ff7a6d5 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java
@@ -15,7 +15,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class HitRendererTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java
index ea81f607eaf..6a6741ae1b4 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java
@@ -9,7 +9,7 @@ import java.util.Iterator;
import static org.junit.Assert.*;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class CompositeContinuationTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
index f8a9b06888d..11415b46b82 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
@@ -53,7 +53,7 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class GroupingExecutorTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java
index 185bcae424a..038df42bd28 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java
@@ -7,7 +7,7 @@ import org.junit.Test;
import static org.junit.Assert.*;
/**
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class GroupingTransformTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java
index d21562a2569..4cd091098fe 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java
@@ -24,7 +24,7 @@ import java.util.Collections;
import static org.junit.Assert.*;
/**
- * @author Simon Thoresen
+ * @author Simon Thoresen Hult
*/
public class HitConverterTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerDecoderTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerDecoderTestCase.java
index 735befffb20..251dcff0ba4 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerDecoderTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerDecoderTestCase.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.*;
import static org.junit.Assert.fail;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class IntegerDecoderTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerEncoderTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerEncoderTestCase.java
index a3957fc1be6..3b48ae35fcf 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerEncoderTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/IntegerEncoderTestCase.java
@@ -6,7 +6,7 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class IntegerEncoderTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java
index 84830e97874..f99b170dcbb 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java
@@ -7,7 +7,7 @@ import org.junit.Test;
import static org.junit.Assert.*;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class OffsetContinuationTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java
index 33e8dbbbef1..b8571aacca4 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java
@@ -14,7 +14,7 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class RequestBuilderTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultBuilderTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultBuilderTestCase.java
index 2417e2516e3..e27003984d3 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultBuilderTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultBuilderTestCase.java
@@ -21,7 +21,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class ResultBuilderTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultIdTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultIdTestCase.java
index 8a031775381..35d39bcc2a9 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultIdTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/ResultIdTestCase.java
@@ -8,7 +8,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen Hult
*/
public class ResultIdTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java
new file mode 100644
index 00000000000..eea58d5444e
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java
@@ -0,0 +1,466 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.handler.test;
+
+import com.yahoo.container.Container;
+import com.yahoo.container.core.config.testutil.HandlersConfigurerTestWrapper;
+import com.yahoo.container.jdisc.HttpRequest;
+
+import com.yahoo.container.jdisc.RequestHandlerTestDriver;
+import com.yahoo.container.protect.Error;
+import com.yahoo.io.IOUtils;
+import com.yahoo.net.HostName;
+import com.yahoo.search.handler.SearchHandler;
+import com.yahoo.search.searchchain.config.test.SearchChainConfigurerTestCase;
+import com.yahoo.slime.Inspector;
+import com.yahoo.vespa.config.SlimeUtils;
+import org.json.JSONObject;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import java.io.File;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
+
+import static com.yahoo.jdisc.http.HttpRequest.Method.GET;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.*;
+
+
+public class JSONSearchHandlerTestCase {
+
+ private static final String testDir = "src/test/java/com/yahoo/search/handler/test/config";
+ private static final String myHostnameHeader = "my-hostname-header";
+ private static final String selfHostname = HostName.getLocalhost();
+
+ private static String tempDir = "";
+ private static String configId = null;
+ private static final String uri = "http://localhost?";
+ private static final String JSON_CONTENT_TYPE = "application/json";
+
+ @Rule
+ public TemporaryFolder tempfolder = new TemporaryFolder();
+
+ private RequestHandlerTestDriver driver = null;
+ private HandlersConfigurerTestWrapper configurer = null;
+ private SearchHandler searchHandler;
+
+ @Before
+ public void startUp() throws IOException {
+ File cfgDir = tempfolder.newFolder("SearchHandlerTestCase");
+ tempDir = cfgDir.getAbsolutePath();
+ configId = "dir:" + tempDir;
+
+ IOUtils.copyDirectory(new File(testDir), cfgDir, 1); // make configs active
+ generateComponentsConfigForActive();
+
+ configurer = new HandlersConfigurerTestWrapper(new Container(), configId);
+ searchHandler = (SearchHandler)configurer.getRequestHandlerRegistry().getComponent(SearchHandler.class.getName());
+ driver = new RequestHandlerTestDriver(searchHandler);
+ }
+
+ @After
+ public void shutDown() {
+ if (configurer != null) configurer.shutdown();
+ if (driver != null) driver.close();
+ }
+
+ private void generateComponentsConfigForActive() throws IOException {
+ File activeConfig = new File(tempDir);
+ SearchChainConfigurerTestCase.
+ createComponentsConfig(new File(activeConfig, "chains.cfg").getPath(),
+ new File(activeConfig, "handlers.cfg").getPath(),
+ new File(activeConfig, "components.cfg").getPath());
+ }
+
+ private SearchHandler fetchSearchHandler(HandlersConfigurerTestWrapper configurer) {
+ return (SearchHandler) configurer.getRequestHandlerRegistry().getComponent(SearchHandler.class.getName());
+ }
+
+ @Test
+ public void testBadJSON() throws Exception{
+ String json = "Not a valid JSON-string";
+ RequestHandlerTestDriver.MockResponseHandler responseHandler = driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json, JSON_CONTENT_TYPE);
+ String response = responseHandler.readAll();
+ assertThat(responseHandler.getStatus(), is(400));
+ assertThat(response, containsString("errors"));
+ assertThat(response, containsString("\"code\":" + Error.ILLEGAL_QUERY.code));
+ }
+
+ @Test
+ public void testFailing() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "test");
+ json.put("searchChain", "classLoadingError");
+ assertTrue(driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE).readAll().contains("NoClassDefFoundError"));
+ }
+
+
+ @Test
+ public synchronized void testPluginError() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "test");
+ json.put("searchChain", "exceptionInPlugin");
+ assertTrue(driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE).readAll().contains("NullPointerException"));
+ }
+
+ @Test
+ public synchronized void testWorkingReconfiguration() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ assertJsonResult(json, driver);
+
+ // reconfiguration
+ IOUtils.copyDirectory(new File(testDir, "handlers2"), new File(tempDir), 1);
+ generateComponentsConfigForActive();
+ configurer.reloadConfig();
+
+ // ...and check the resulting config
+ SearchHandler newSearchHandler = fetchSearchHandler(configurer);
+ assertNotSame("Have a new instance of the search handler", searchHandler, newSearchHandler);
+ assertNotNull("Have the new search chain", fetchSearchHandler(configurer).getSearchChainRegistry().getChain("hello"));
+ assertNull("Don't have the new search chain", fetchSearchHandler(configurer).getSearchChainRegistry().getChain("classLoadingError"));
+ try (RequestHandlerTestDriver newDriver = new RequestHandlerTestDriver(searchHandler)) {
+ assertJsonResult(json, newDriver);
+ }
+ }
+
+ @Test
+ public void testInvalidYqlQuery() throws Exception {
+ IOUtils.copyDirectory(new File(testDir, "config_yql"), new File(tempDir), 1);
+ generateComponentsConfigForActive();
+ configurer.reloadConfig();
+
+ SearchHandler newSearchHandler = fetchSearchHandler(configurer);
+ assertTrue("Do I have a new instance of the search handler?", searchHandler != newSearchHandler);
+ try (RequestHandlerTestDriver newDriver = new RequestHandlerTestDriver(newSearchHandler)) {
+ JSONObject json = new JSONObject();
+ json.put("yql", "select * from foo where bar > 1453501295");
+ RequestHandlerTestDriver.MockResponseHandler responseHandler = newDriver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE);
+ responseHandler.readAll();
+ assertThat(responseHandler.getStatus(), is(400));
+ }
+ }
+
+ // Query handling takes a different code path when a query profile is active, so we test both paths.
+ @Test
+ public void testInvalidQueryParamWithQueryProfile() throws Exception {
+ try (RequestHandlerTestDriver newDriver = driverWithConfig("config_invalid_param")) {
+ testInvalidQueryParam(newDriver);
+ }
+ }
+
+ private void testInvalidQueryParam(final RequestHandlerTestDriver testDriver) throws Exception{
+ JSONObject json = new JSONObject();
+ json.put("query", "status_code:0");
+ json.put("hits", 20);
+ json.put("offset", -20);
+ RequestHandlerTestDriver.MockResponseHandler responseHandler =
+ testDriver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE);
+ String response = responseHandler.readAll();
+ assertThat(responseHandler.getStatus(), is(400));
+ assertThat(response, containsString("offset"));
+ assertThat(response, containsString("\"code\":" + com.yahoo.container.protect.Error.INVALID_QUERY_PARAMETER.code));
+ }
+
+
+
+
+ @Test
+ public void testNormalResultJsonAliasRendering() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("format", "json");
+ json.put("query", "abc");
+ assertJsonResult(json, driver);
+ }
+
+
+
+ @Test
+ public void testNullQuery() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("format", "xml");
+
+ assertEquals("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" +
+ "<result total-hit-count=\"0\">\n" +
+ " <hit relevancy=\"1.0\">\n" +
+ " <field name=\"relevancy\">1.0</field>\n" +
+ " <field name=\"uri\">testHit</field>\n" +
+ " </hit>\n" +
+ "</result>\n", driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE).readAll());
+ }
+
+
+
+ @Test
+ public void testWebServiceStatus() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "web_service_status_code");
+ RequestHandlerTestDriver.MockResponseHandler responseHandler =
+ driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE);
+ String response = responseHandler.readAll();
+ assertThat(responseHandler.getStatus(), is(406));
+ assertThat(response, containsString("\"code\":" + 406));
+ }
+
+ @Test
+ public void testNormalResultImplicitDefaultRendering() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ assertJsonResult(json, driver);
+ }
+
+ @Test
+ public void testNormalResultExplicitDefaultRendering() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ json.put("format", "default");
+ assertJsonResult(json, driver);
+ }
+
+ @Test
+ public void testNormalResultXmlAliasRendering() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ json.put("format", "xml");
+ assertXmlResult(json, driver);
+ }
+
+
+ @Test
+ public void testNormalResultExplicitDefaultRenderingFullRendererName1() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ json.put("format", "DefaultRenderer");
+ assertXmlResult(json, driver);
+ }
+
+ @Test
+ public void testNormalResultExplicitDefaultRenderingFullRendererName2() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ json.put("format", "JsonRenderer");
+ assertJsonResult(json, driver);
+ }
+
+ @Test
+ public void testResultLegacyTiledFormat() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ json.put("format", "tiled");
+ assertTiledResult(json, driver);
+ }
+
+ @Test
+ public void testResultLegacyPageFormat() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ json.put("format", "page");
+ assertPageResult(json, driver);
+ }
+
+
+ private static final String xmlResult =
+ "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" +
+ "<result total-hit-count=\"0\">\n" +
+ " <hit relevancy=\"1.0\">\n" +
+ " <field name=\"relevancy\">1.0</field>\n" +
+ " <field name=\"uri\">testHit</field>\n" +
+ " </hit>\n" +
+ "</result>\n";
+
+ private void assertXmlResult(JSONObject json, RequestHandlerTestDriver driver) throws Exception {
+ assertOkResult(driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE), xmlResult);
+ }
+
+
+ private static final String jsonResult = "{\"root\":{"
+ + "\"id\":\"toplevel\",\"relevance\":1.0,\"fields\":{\"totalCount\":0},"
+ + "\"children\":["
+ + "{\"id\":\"testHit\",\"relevance\":1.0,\"fields\":{\"uri\":\"testHit\"}}"
+ + "]}}";
+
+ private void assertJsonResult(JSONObject json, RequestHandlerTestDriver driver) throws Exception {
+ assertOkResult(driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE), jsonResult);
+
+ }
+
+ private static final String tiledResult =
+ "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" +
+ "<result version=\"1.0\">\n" +
+ "\n" +
+ " <hit relevance=\"1.0\">\n" +
+ " <id>testHit</id>\n" +
+ " <uri>testHit</uri>\n" +
+ " </hit>\n" +
+ "\n" +
+ "</result>\n";
+
+ private void assertTiledResult(JSONObject json, RequestHandlerTestDriver driver) throws Exception {
+ assertOkResult(driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE), tiledResult);
+ }
+
+ private static final String pageResult =
+ "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" +
+ "<page version=\"1.0\">\n" +
+ "\n" +
+ " <content>\n" +
+ " <hit relevance=\"1.0\">\n" +
+ " <id>testHit</id>\n" +
+ " <uri>testHit</uri>\n" +
+ " </hit>\n" +
+ " </content>\n" +
+ "\n" +
+ "</page>\n";
+
+ private void assertPageResult(JSONObject json, RequestHandlerTestDriver driver) throws Exception {
+ assertOkResult(driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), JSON_CONTENT_TYPE), pageResult);
+ }
+
+ private void assertOkResult(RequestHandlerTestDriver.MockResponseHandler response, String expected) {
+ assertEquals(expected, response.readAll());
+ assertEquals(200, response.getStatus());
+ assertEquals(selfHostname, response.getResponse().headers().get(myHostnameHeader).get(0));
+ }
+
+
+ private RequestHandlerTestDriver driverWithConfig(String configDirectory) throws Exception {
+ IOUtils.copyDirectory(new File(testDir, configDirectory), new File(tempDir), 1);
+ generateComponentsConfigForActive();
+ configurer.reloadConfig();
+
+ SearchHandler newSearchHandler = fetchSearchHandler(configurer);
+ assertTrue("Do I have a new instance of the search handler?", searchHandler != newSearchHandler);
+ return new RequestHandlerTestDriver(newSearchHandler);
+ }
+
+
+
+ @Test
+ public void testRequestMapping() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("yql", "select * from sources * where sddocname contains \"blog_post\" limit 0 | all(group(date) max(3) order(-count())each(output(count())));");
+ json.put("hits", 10.0);
+ json.put("offset", 5);
+ json.put("queryProfile", "foo");
+ json.put("nocache", false);
+ json.put("groupingSessionCache", false);
+ json.put("searchChain", "exceptionInPlugin");
+ json.put("timeout", 0);
+ json.put("select", "_all");
+
+
+ JSONObject model = new JSONObject();
+ model.put("defaultIndex", 1);
+ model.put("encoding", "json");
+ model.put("filter", "default");
+ model.put("language", "en");
+ model.put("queryString", "abc");
+ model.put("restrict", "_doc,json,xml");
+ model.put("searchPath", "node1");
+ model.put("sources", "source1,source2");
+ model.put("type", "yql");
+ json.put("model", model);
+
+ JSONObject ranking = new JSONObject();
+ ranking.put("location", "123789.89123N;128123W");
+ ranking.put("features", "none");
+ ranking.put("listFeatures", false);
+ ranking.put("profile", "1");
+ ranking.put("properties", "default");
+ ranking.put("sorting", "desc");
+ ranking.put("freshness", "0.05");
+ ranking.put("queryCache", false);
+
+ JSONObject matchPhase = new JSONObject();
+ matchPhase.put("maxHits", "100");
+ matchPhase.put("attribute", "title");
+ matchPhase.put("ascending", true);
+
+ JSONObject diversity = new JSONObject();
+ diversity.put("attribute", "title");
+ diversity.put("minGroups", 1);
+ matchPhase.put("diversity", diversity);
+ ranking.put("matchPhase", matchPhase);
+ json.put("ranking", ranking);
+
+ JSONObject presentation = new JSONObject();
+ presentation.put("bolding", true);
+ presentation.put("format", "json");
+ presentation.put("summary", "none");
+ presentation.put("template", "json");
+ presentation.put("timing", false);
+ json.put("presentation", presentation);
+
+ JSONObject collapse = new JSONObject();
+ collapse.put("field", "none");
+ collapse.put("size", 2);
+ collapse.put("summary", "default");
+ json.put("collapse", collapse);
+
+ JSONObject trace = new JSONObject();
+ trace.put("level", 1);
+ trace.put("timestamps", false);
+ trace.put("rules", "none");
+ json.put("trace", trace);
+
+ JSONObject pos = new JSONObject();
+ pos.put("ll", "1263123N;1231.9W");
+ pos.put("radius", "71234m");
+ pos.put("bb", "1237123W;123218N");
+ pos.put("attribute", "default");
+ json.put("pos", pos);
+
+ JSONObject streaming = new JSONObject();
+ streaming.put("userid", 123);
+ streaming.put("groupname", "abc");
+ streaming.put("selection", "none");
+ streaming.put("priority", 10);
+ streaming.put("maxbucketspervisitor", 5);
+ json.put("streaming", streaming);
+
+ JSONObject rules = new JSONObject();
+ rules.put("off", false);
+ rules.put("rulebase", "default");
+ json.put("rules", rules);
+
+ JSONObject metrics = new JSONObject();
+ metrics.put("ignore", "_all");
+ json.put("metrics", metrics);
+
+ json.put("recall", "none");
+ json.put("user", 123);
+ json.put("nocachewrite", false);
+ json.put("hitcountestimate", true);
+
+
+
+ // Create mapping
+ Inspector inspector = SlimeUtils.jsonToSlime(json.toString().getBytes("utf-8")).get();
+ Map<String, String> map = new HashMap<>();
+ searchHandler.createRequestMapping(inspector, map, "");
+
+ // Create GET-request with same query
+ String url = uri + "&model.sources=source1%2Csource2&select=_all&model.language=en&presentation.timing=false&pos.attribute=default&pos.radius=71234m&model.searchPath=node1&nocachewrite=false&ranking.matchPhase.maxHits=100&presentation.summary=none" +
+ "&nocache=false&model.type=yql&collapse.summary=default&ranking.matchPhase.diversity.minGroups=1&ranking.location=123789.89123N%3B128123W&ranking.queryCache=false&offset=5&streaming.groupname=abc&groupingSessionCache=false" +
+ "&presentation.template=json&trace.rules=none&rules.off=false&ranking.properties=default&searchChain=exceptionInPlugin&pos.ll=1263123N%3B1231.9W&ranking.sorting=desc&ranking.matchPhase.ascending=true&ranking.features=none&hitcountestimate=true" +
+ "&model.filter=default&metrics.ignore=_all&collapse.field=none&ranking.profile=1&rules.rulebase=default&model.defaultIndex=1&trace.level=1&ranking.listFeatures=false&timeout=0&presentation.format=json" +
+ "&yql=select+%2A+from+sources+%2A+where+sddocname+contains+%22blog_post%22+limit+0+%7C+all%28group%28date%29+max%283%29+order%28-count%28%29%29each%28output%28count%28%29%29%29%29%3B&recall=none&streaming.maxbucketspervisitor=5" +
+ "&queryProfile=foo&presentation.bolding=true&model.encoding=json&model.queryString=abc&streaming.selection=none&trace.timestamps=false&collapse.size=2&streaming.priority=10&ranking.matchPhase.diversity.attribute=title" +
+ "&ranking.matchPhase.attribute=title&hits=10&streaming.userid=123&pos.bb=1237123W%3B123218N&model.restrict=_doc%2Cjson%2Cxml&ranking.freshness=0.05&user=123";
+
+
+
+ final HttpRequest request = HttpRequest.createTestRequest(url, GET);
+
+ // Get mapping
+ Map<String, String> propertyMap = request.propertyMap();
+ assertEquals("Should have same mapping for properties", map, propertyMap);
+ }
+
+
+
+}
diff --git a/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java
index ce40bd1f06b..6dcb34ec3e9 100644
--- a/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java
@@ -3,16 +3,13 @@ package com.yahoo.search.handler.test;
import com.yahoo.container.Container;
import com.yahoo.container.core.config.testutil.HandlersConfigurerTestWrapper;
-import com.yahoo.container.jdisc.AsyncHttpResponse;
import com.yahoo.container.jdisc.HttpRequest;
-
import com.yahoo.container.jdisc.HttpResponse;
import com.yahoo.container.jdisc.RequestHandlerTestDriver;
import com.yahoo.container.jdisc.ThreadedHttpRequestHandler;
import com.yahoo.io.IOUtils;
import com.yahoo.jdisc.handler.RequestHandler;
import com.yahoo.net.HostName;
-import com.yahoo.processing.handler.ResponseStatus;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
import com.yahoo.search.Searcher;
@@ -30,12 +27,9 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.URI;
-import java.util.List;
-import java.util.Map;
import java.util.concurrent.Executors;
import static org.hamcrest.CoreMatchers.containsString;
@@ -187,6 +181,8 @@ public class SearchHandlerTestCase {
}
}
+
+
// Query handling takes a different code path when a query profile is active, so we test both paths.
@Test
public void testInvalidQueryParamWithQueryProfile() throws Exception {
diff --git a/container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileVariantsCloneTestCase.java b/container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileVariantsCloneTestCase.java
index 9e41f7a84e7..84326d9370d 100644
--- a/container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileVariantsCloneTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileVariantsCloneTestCase.java
@@ -14,7 +14,7 @@ import java.util.Map;
import static org.junit.Assert.assertEquals;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class QueryProfileVariantsCloneTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/query/textserialize/item/test/ParseItemTestCase.java b/container-search/src/test/java/com/yahoo/search/query/textserialize/item/test/ParseItemTestCase.java
index 7208626253c..382d9cf8cee 100644
--- a/container-search/src/test/java/com/yahoo/search/query/textserialize/item/test/ParseItemTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/query/textserialize/item/test/ParseItemTestCase.java
@@ -16,7 +16,7 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class ParseItemTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/query/textserialize/serializer/test/SerializeItemTestCase.java b/container-search/src/test/java/com/yahoo/search/query/textserialize/serializer/test/SerializeItemTestCase.java
index 61fc59bccbe..5aefc90121d 100644
--- a/container-search/src/test/java/com/yahoo/search/query/textserialize/serializer/test/SerializeItemTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/query/textserialize/serializer/test/SerializeItemTestCase.java
@@ -20,7 +20,7 @@ import static org.hamcrest.core.IsInstanceOf.instanceOf;
import static org.junit.Assert.assertThat;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SerializeItemTestCase {
@Test
diff --git a/container-search/src/test/java/com/yahoo/search/searchchain/config/test/DependencyConfigTestCase.java b/container-search/src/test/java/com/yahoo/search/searchchain/config/test/DependencyConfigTestCase.java
index 847d7c2daf9..71863c09883 100644
--- a/container-search/src/test/java/com/yahoo/search/searchchain/config/test/DependencyConfigTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/searchchain/config/test/DependencyConfigTestCase.java
@@ -24,7 +24,7 @@ import org.junit.Test;
import static org.junit.Assert.assertTrue;
/**
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class DependencyConfigTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/searchchain/test/SimpleSearchChain.java b/container-search/src/test/java/com/yahoo/search/searchchain/test/SimpleSearchChain.java
index 2913cc36f41..3e29fd6e1f4 100644
--- a/container-search/src/test/java/com/yahoo/search/searchchain/test/SimpleSearchChain.java
+++ b/container-search/src/test/java/com/yahoo/search/searchchain/test/SimpleSearchChain.java
@@ -20,7 +20,7 @@ import com.yahoo.search.searchchain.SearchChainRegistry;
/**
* A search chain consisting of two searchers.
* @author bratseth
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class SimpleSearchChain {