From bf398f396b04388303094822d7a89fb27cb6c2cc Mon Sep 17 00:00:00 2001 From: Vladimir Kotal Date: Fri, 23 Feb 2024 13:32:19 +0100 Subject: [PATCH] make the hasAnnotation check more precise (#4547) fixes #4524 fixes #4546 --- .../indexer/analysis/AnalyzerFactory.java | 12 +++++- .../indexer/analysis/AnalyzerGuru.java | 4 +- .../indexer/analysis/FileAnalyzerFactory.java | 12 +++--- .../analysis/ada/AdaAnalyzerFactory.java | 4 +- .../archive/BZip2AnalyzerFactory.java | 4 +- .../analysis/archive/GZIPAnalyzerFactory.java | 5 +-- .../analysis/archive/TarAnalyzerFactory.java | 4 +- .../analysis/archive/ZipAnalyzerFactory.java | 4 +- .../analysis/asm/AsmAnalyzerFactory.java | 2 +- .../indexer/analysis/c/CAnalyzerFactory.java | 4 +- .../analysis/c/CxxAnalyzerFactory.java | 4 +- .../clojure/ClojureAnalyzerFactory.java | 4 +- .../csharp/CSharpAnalyzerFactory.java | 4 +- .../data/IgnorantAnalyzerFactory.java | 4 +- .../analysis/data/ImageAnalyzerFactory.java | 4 +- .../document/MandocAnalyzerFactory.java | 4 +- .../document/TroffAnalyzerFactory.java | 4 +- .../eiffel/EiffelAnalyzerFactory.java | 2 +- .../erlang/ErlangAnalyzerFactory.java | 4 +- .../executables/ELFAnalyzerFactory.java | 5 ++- .../executables/JarAnalyzerFactory.java | 5 ++- .../executables/JavaClassAnalyzerFactory.java | 5 ++- .../fortran/FortranAnalyzerFactory.java | 4 +- .../golang/GolangAnalyzerFactory.java | 4 +- .../haskell/HaskellAnalyzerFactory.java | 4 +- .../analysis/hcl/HCLAnalyzerFactory.java | 4 +- .../analysis/java/JavaAnalyzerFactory.java | 4 +- .../javascript/JavaScriptAnalyzerFactory.java | 4 +- .../analysis/json/JsonAnalyzerFactory.java | 4 +- .../kotlin/KotlinAnalyzerFactory.java | 4 +- .../analysis/lisp/LispAnalyzerFactory.java | 4 +- .../analysis/lua/LuaAnalyzerFactory.java | 4 +- .../pascal/PascalAnalyzerFactory.java | 4 +- .../analysis/perl/PerlAnalyzerFactory.java | 4 +- .../analysis/php/PhpAnalyzerFactory.java | 4 +- .../analysis/plain/PlainAnalyzerFactory.java | 4 +- .../analysis/plain/XMLAnalyzerFactory.java | 4 +- .../powershell/PowershellAnalyzerFactory.java | 4 +- .../python/PythonAnalyzerFactory.java | 4 +- .../indexer/analysis/r/RAnalyzerFactory.java | 4 +- .../analysis/ruby/RubyAnalyzerFactory.java | 4 +- .../analysis/rust/RustAnalyzerFactory.java | 4 +- .../analysis/scala/ScalaAnalyzerFactory.java | 4 +- .../analysis/sh/ShAnalyzerFactory.java | 4 +- .../analysis/sql/PLSQLAnalyzerFactory.java | 4 +- .../analysis/sql/SQLAnalyzerFactory.java | 4 +- .../analysis/swift/SwiftAnalyzerFactory.java | 4 +- .../analysis/tcl/TclAnalyzerFactory.java | 4 +- .../terraform/TerraformAnalyzerFactory.java | 4 +- .../typescript/TypeScriptAnalyzerFactory.java | 4 +- .../analysis/uue/UuencodeAnalyzerFactory.java | 4 +- .../analysis/vb/VBAnalyzerFactory.java | 4 +- .../verilog/VerilogAnalyzerFactory.java | 2 +- .../analysis/yaml/YamlAnalyzerFactory.java | 4 +- .../opengrok/indexer/history/HistoryGuru.java | 14 +++++++ .../opengrok/indexer/index/IndexDatabase.java | 2 +- .../indexer/history/HistoryGuruTest.java | 42 ++++++++++++++----- 57 files changed, 167 insertions(+), 121 deletions(-) diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/AnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/AnalyzerFactory.java index e5e1a49c2c8..8ed485d5968 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/AnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/AnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2018, Chris Fraire . */ package org.opengrok.indexer.analysis; @@ -64,6 +64,10 @@ public abstract class AnalyzerFactory { * The genre for files recognized by this kind of analyzer. */ protected AbstractAnalyzer.Genre genre; + /** + * Whether the files can be annotated. + */ + protected boolean hasAnnotations; protected AnalyzerFactory(FileAnalyzerFactory.Matcher matcher, String contentType) { cachedAnalyzer = new ThreadLocal<>(); @@ -146,12 +150,16 @@ public final AbstractAnalyzer.Genre getGenre() { } /** - * The user friendly name of this analyzer. + * The user-friendly name of this analyzer. * * @return a genre */ public abstract String getName(); + public boolean hasAnnotations() { + return hasAnnotations; + } + public abstract AbstractAnalyzer getAnalyzer(); public abstract void returnAnalyzer(); diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/AnalyzerGuru.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/AnalyzerGuru.java index a589fc79589..c64675bd5a6 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/AnalyzerGuru.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/AnalyzerGuru.java @@ -237,8 +237,7 @@ public class AnalyzerGuru { * Maps from {@link FileAnalyzer#getFileTypeName()} to * {@link FileAnalyzerFactory}. */ - private static final Map FILETYPE_FACTORIES = - new HashMap<>(); + private static final Map FILETYPE_FACTORIES = new HashMap<>(); /** * Maps from {@link FileAnalyzer#getFileTypeName()} to @@ -771,6 +770,7 @@ public static AbstractAnalyzer.Genre getGenre(AnalyzerFactory factory) { * @param fileTypeName a defined instance * @return a defined instance or {@code null} */ + @Nullable public static AnalyzerFactory findByFileTypeName(String fileTypeName) { return FILETYPE_FACTORIES.get(fileTypeName); } diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/FileAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/FileAnalyzerFactory.java index a7fd8d45be1..2bef715a34c 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/FileAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/FileAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2021, Chris Fraire . */ package org.opengrok.indexer.analysis; @@ -34,14 +34,14 @@ */ public class FileAnalyzerFactory extends AnalyzerFactory { - /** The user friendly name of this analyzer. */ + /** The user-friendly name of this analyzer. */ private final String name; /** * Create an instance of {@code FileAnalyzerFactory}. */ FileAnalyzerFactory() { - this(null, null, null, null, null, null, null, null); + this(null, null, null, null, null, null, null, null, false); } /** @@ -56,12 +56,13 @@ public class FileAnalyzerFactory extends AnalyzerFactory { * @param contentType content type for this analyzer (possibly {@code null}) * @param genre the genre for this analyzer (if {@code null}, {@code * Genre.DATA} is used) - * @param name user friendly name of this analyzer (or null if it shouldn't be listed) + * @param name user-friendly name of this analyzer (or null if it shouldn't be listed) + * @param hasAnnotations whether the files processed by the analyzers produced by this factory can be annotated */ protected FileAnalyzerFactory( String[] names, String[] prefixes, String[] suffixes, String[] magics, Matcher matcher, String contentType, - AbstractAnalyzer.Genre genre, String name) { + AbstractAnalyzer.Genre genre, String name, boolean hasAnnotations) { super(matcher, contentType); this.names = asList(names); this.prefixes = asList(prefixes); @@ -69,6 +70,7 @@ protected FileAnalyzerFactory( this.magics = asList(magics); this.genre = (genre == null) ? AbstractAnalyzer.Genre.DATA : genre; this.name = name; + this.hasAnnotations = hasAnnotations; } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ada/AdaAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ada/AdaAnalyzerFactory.java index 943f16870fa..5c1bec4563c 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ada/AdaAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ada/AdaAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.ada; @@ -41,7 +41,7 @@ public class AdaAnalyzerFactory extends FileAnalyzerFactory { }; public AdaAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/BZip2AnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/BZip2AnalyzerFactory.java index 61bf936528a..8db838bc084 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/BZip2AnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/BZip2AnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.archive; @@ -38,7 +38,7 @@ public class BZip2AnalyzerFactory extends FileAnalyzerFactory { }; public BZip2AnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, null, null, NAME); + super(null, null, SUFFIXES, MAGICS, null, null, null, NAME, false); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/GZIPAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/GZIPAnalyzerFactory.java index 23296aa93c8..2cf4a5e8712 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/GZIPAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/GZIPAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.archive; @@ -38,9 +38,8 @@ public class GZIPAnalyzerFactory extends FileAnalyzerFactory { }; public GZIPAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, null, null, NAME); + super(null, null, SUFFIXES, MAGICS, null, null, null, NAME, false); } - @Override protected AbstractAnalyzer newAnalyzer() { return new GZIPAnalyzer(this); diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/TarAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/TarAnalyzerFactory.java index 5cfb8fb5cc1..fbafd2a39a4 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/TarAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/TarAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.archive; @@ -34,7 +34,7 @@ public class TarAnalyzerFactory extends FileAnalyzerFactory { }; public TarAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, null, AbstractAnalyzer.Genre.XREFABLE, NAME); + super(null, null, SUFFIXES, null, null, null, AbstractAnalyzer.Genre.XREFABLE, NAME, false); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/ZipAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/ZipAnalyzerFactory.java index 58a34a95ccf..d4b9426ec64 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/ZipAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/archive/ZipAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2018, Chris Fraire . */ package org.opengrok.indexer.analysis.archive; @@ -57,7 +57,7 @@ protected boolean doesCheckExtraFieldID() { new ZipAnalyzerFactory(); private ZipAnalyzerFactory() { - super(null, null, SUFFIXES, null, MATCHER, null, AbstractAnalyzer.Genre.XREFABLE, NAME); + super(null, null, SUFFIXES, null, MATCHER, null, AbstractAnalyzer.Genre.XREFABLE, NAME, false); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/asm/AsmAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/asm/AsmAnalyzerFactory.java index 9b636fcbd68..260012ee897 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/asm/AsmAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/asm/AsmAnalyzerFactory.java @@ -39,7 +39,7 @@ public class AsmAnalyzerFactory extends FileAnalyzerFactory { * ".s" with {@link AsmAnalyzer}. */ public AsmAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/c/CAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/c/CAnalyzerFactory.java index d746ad426ac..ae7dcdd5052 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/c/CAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/c/CAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2019, Chris Fraire . */ package org.opengrok.indexer.analysis.c; @@ -44,7 +44,7 @@ public class CAnalyzerFactory extends FileAnalyzerFactory { }; public CAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/c/CxxAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/c/CxxAnalyzerFactory.java index b752d69daab..2d63e989df8 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/c/CxxAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/c/CxxAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.c; @@ -44,7 +44,7 @@ public class CxxAnalyzerFactory extends FileAnalyzerFactory { }; public CxxAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/clojure/ClojureAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/clojure/ClojureAnalyzerFactory.java index 84872e9853f..6638245b5c5 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/clojure/ClojureAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/clojure/ClojureAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.clojure; @@ -36,7 +36,7 @@ public class ClojureAnalyzerFactory extends FileAnalyzerFactory { }; public ClojureAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/csharp/CSharpAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/csharp/CSharpAnalyzerFactory.java index 8716e41218b..173538bc0a3 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/csharp/CSharpAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/csharp/CSharpAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.csharp; @@ -35,7 +35,7 @@ public class CSharpAnalyzerFactory extends FileAnalyzerFactory { }; public CSharpAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/data/IgnorantAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/data/IgnorantAnalyzerFactory.java index bcfcc8e0685..27057ca32d2 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/data/IgnorantAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/data/IgnorantAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.data; @@ -45,7 +45,7 @@ public class IgnorantAnalyzerFactory extends FileAnalyzerFactory { }; public IgnorantAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, null, null, null); + super(null, null, SUFFIXES, MAGICS, null, null, null, null, false); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/data/ImageAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/data/ImageAnalyzerFactory.java index 78deebc5b86..948e13db828 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/data/ImageAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/data/ImageAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.data; @@ -38,7 +38,7 @@ public class ImageAnalyzerFactory extends FileAnalyzerFactory { }; public ImageAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, null, AbstractAnalyzer.Genre.IMAGE, NAME); + super(null, null, SUFFIXES, null, null, null, AbstractAnalyzer.Genre.IMAGE, NAME, false); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/document/MandocAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/document/MandocAnalyzerFactory.java index 1588ab781ce..8b2b591f6c5 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/document/MandocAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/document/MandocAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.document; @@ -53,7 +53,7 @@ public AnalyzerFactory forFactory() { new MandocAnalyzerFactory(); protected MandocAnalyzerFactory() { - super(null, null, null, null, MATCHER, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, null, null, MATCHER, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/document/TroffAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/document/TroffAnalyzerFactory.java index 8b1d9ab01da..5652cafb1a7 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/document/TroffAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/document/TroffAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.document; @@ -50,7 +50,7 @@ public AnalyzerFactory forFactory() { new TroffAnalyzerFactory(); protected TroffAnalyzerFactory() { - super(null, null, null, null, MATCHER, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, null, null, MATCHER, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/eiffel/EiffelAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/eiffel/EiffelAnalyzerFactory.java index c18054f52a3..4905dd5ed78 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/eiffel/EiffelAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/eiffel/EiffelAnalyzerFactory.java @@ -40,7 +40,7 @@ public class EiffelAnalyzerFactory extends FileAnalyzerFactory { */ public EiffelAnalyzerFactory() { super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, - NAME); + NAME, true); } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/erlang/ErlangAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/erlang/ErlangAnalyzerFactory.java index 89caf94806e..c774fc4fd35 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/erlang/ErlangAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/erlang/ErlangAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.erlang; @@ -39,7 +39,7 @@ public class ErlangAnalyzerFactory extends FileAnalyzerFactory { }; public ErlangAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/ELFAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/ELFAnalyzerFactory.java index f7961379be2..e073087c674 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/ELFAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/ELFAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.executables; @@ -34,7 +34,8 @@ public class ELFAnalyzerFactory extends FileAnalyzerFactory { }; public ELFAnalyzerFactory() { - super(null, null, null, MAGICS, null, null, AbstractAnalyzer.Genre.XREFABLE, NAME); + super(null, null, null, MAGICS, null, null, + AbstractAnalyzer.Genre.XREFABLE, NAME, false); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/JarAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/JarAnalyzerFactory.java index e982e35b287..38052962627 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/JarAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/JarAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2018, Chris Fraire . */ package org.opengrok.indexer.analysis.executables; @@ -63,7 +63,8 @@ protected Integer strictExtraFieldID() { new JarAnalyzerFactory(); private JarAnalyzerFactory() { - super(null, null, SUFFIXES, null, MATCHER, null, AbstractAnalyzer.Genre.XREFABLE, NAME); + super(null, null, SUFFIXES, null, MATCHER, null, + AbstractAnalyzer.Genre.XREFABLE, NAME, false); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/JavaClassAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/JavaClassAnalyzerFactory.java index d499c6251da..470f7471a77 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/JavaClassAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/executables/JavaClassAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2018, 2021, Chris Fraire . */ package org.opengrok.indexer.analysis.executables; @@ -95,7 +95,8 @@ public AnalyzerFactory forFactory() { new JavaClassAnalyzerFactory(); private JavaClassAnalyzerFactory() { - super(null, null, SUFFIXES, null, MATCHER, null, AbstractAnalyzer.Genre.XREFABLE, NAME); + super(null, null, SUFFIXES, null, MATCHER, null, + AbstractAnalyzer.Genre.XREFABLE, NAME, false); } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/fortran/FortranAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/fortran/FortranAnalyzerFactory.java index 285649a2808..3bc256d38d9 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/fortran/FortranAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/fortran/FortranAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.fortran; @@ -52,7 +52,7 @@ public class FortranAnalyzerFactory extends FileAnalyzerFactory { "F15"}; public FortranAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/golang/GolangAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/golang/GolangAnalyzerFactory.java index 5164ee37824..67288e5b22d 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/golang/GolangAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/golang/GolangAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.golang; @@ -38,7 +38,7 @@ public class GolangAnalyzerFactory extends FileAnalyzerFactory { }; public GolangAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/haskell/HaskellAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/haskell/HaskellAnalyzerFactory.java index 46f9a274d18..b1e6c772402 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/haskell/HaskellAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/haskell/HaskellAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.haskell; @@ -40,7 +40,7 @@ public class HaskellAnalyzerFactory extends FileAnalyzerFactory { }; public HaskellAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/hcl/HCLAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/hcl/HCLAnalyzerFactory.java index 12b28785ea7..ece4e5f0e55 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/hcl/HCLAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/hcl/HCLAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2020, Chris Fraire . */ package org.opengrok.indexer.analysis.hcl; @@ -40,7 +40,7 @@ public class HCLAnalyzerFactory extends FileAnalyzerFactory { * Creates a new instance of {@link HCLAnalyzerFactory}. */ public HCLAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/java/JavaAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/java/JavaAnalyzerFactory.java index 2be53379be5..34f52c9eb33 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/java/JavaAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/java/JavaAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.java; @@ -36,7 +36,7 @@ public class JavaAnalyzerFactory extends FileAnalyzerFactory { }; public JavaAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/javascript/JavaScriptAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/javascript/JavaScriptAnalyzerFactory.java index f616c1af005..4af0a095db7 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/javascript/JavaScriptAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/javascript/JavaScriptAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2019, Chris Fraire . */ package org.opengrok.indexer.analysis.javascript; @@ -33,7 +33,7 @@ public class JavaScriptAnalyzerFactory extends FileAnalyzerFactory { private static final String[] SUFFIXES = {"JS"}; public JavaScriptAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/json/JsonAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/json/JsonAnalyzerFactory.java index 4f8df2977a4..7751fd022eb 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/json/JsonAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/json/JsonAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.json; @@ -35,7 +35,7 @@ public class JsonAnalyzerFactory extends FileAnalyzerFactory { }; public JsonAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/kotlin/KotlinAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/kotlin/KotlinAnalyzerFactory.java index 922e54297ed..4ff0e74c6e9 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/kotlin/KotlinAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/kotlin/KotlinAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.kotlin; @@ -35,7 +35,7 @@ public class KotlinAnalyzerFactory extends FileAnalyzerFactory { }; public KotlinAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/lisp/LispAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/lisp/LispAnalyzerFactory.java index c27cce566c0..ff9d0d78141 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/lisp/LispAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/lisp/LispAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.lisp; @@ -37,7 +37,7 @@ public class LispAnalyzerFactory extends FileAnalyzerFactory { }; public LispAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/lua/LuaAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/lua/LuaAnalyzerFactory.java index 66d9e67b7ad..9f9228f929d 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/lua/LuaAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/lua/LuaAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.lua; @@ -38,7 +38,7 @@ public class LuaAnalyzerFactory extends FileAnalyzerFactory { }; public LuaAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/pascal/PascalAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/pascal/PascalAnalyzerFactory.java index c40ce4e76fd..746570fff0b 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/pascal/PascalAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/pascal/PascalAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.pascal; @@ -39,7 +39,7 @@ public class PascalAnalyzerFactory extends FileAnalyzerFactory { }; public PascalAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/perl/PerlAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/perl/PerlAnalyzerFactory.java index f2fe8b99174..b2f622d34c4 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/perl/PerlAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/perl/PerlAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.perl; @@ -50,7 +50,7 @@ public class PerlAnalyzerFactory extends FileAnalyzerFactory { }; public PerlAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/php/PhpAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/php/PhpAnalyzerFactory.java index 080974f60e9..f515cb6f283 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/php/PhpAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/php/PhpAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.php; @@ -45,7 +45,7 @@ public class PhpAnalyzerFactory extends FileAnalyzerFactory { }; public PhpAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/plain/PlainAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/plain/PlainAnalyzerFactory.java index b91fe4a057d..a70e2da30c7 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/plain/PlainAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/plain/PlainAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2021, Chris Fraire . */ package org.opengrok.indexer.analysis.plain; @@ -88,7 +88,7 @@ public AnalyzerFactory forFactory() { public static final PlainAnalyzerFactory DEFAULT_INSTANCE = new PlainAnalyzerFactory(); private PlainAnalyzerFactory() { - super(null, null, null, null, MATCHER, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, null, null, MATCHER, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/plain/XMLAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/plain/XMLAnalyzerFactory.java index d3193e018e9..2a9da9f25b4 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/plain/XMLAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/plain/XMLAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.plain; @@ -40,7 +40,7 @@ public class XMLAnalyzerFactory extends FileAnalyzerFactory { }; public XMLAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, "text/html", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, MAGICS, null, "text/html", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/powershell/PowershellAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/powershell/PowershellAnalyzerFactory.java index 4d37128ada5..d978ed962ab 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/powershell/PowershellAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/powershell/PowershellAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.powershell; @@ -35,7 +35,7 @@ public class PowershellAnalyzerFactory extends FileAnalyzerFactory { }; public PowershellAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/python/PythonAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/python/PythonAnalyzerFactory.java index e7cdf8e7c5e..92c0114fa1b 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/python/PythonAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/python/PythonAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.python; @@ -48,7 +48,7 @@ public class PythonAnalyzerFactory extends FileAnalyzerFactory { }; public PythonAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/r/RAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/r/RAnalyzerFactory.java index ff5bb53d71b..39eb16d5bdd 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/r/RAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/r/RAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2020, Chris Fraire . */ package org.opengrok.indexer.analysis.r; @@ -41,7 +41,7 @@ public class RAnalyzerFactory extends FileAnalyzerFactory { * ".r", ".rdata", ".rda", and ".rds" with {@link RAnalyzer}. */ public RAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ruby/RubyAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ruby/RubyAnalyzerFactory.java index 4cfe3c67f0c..7889d1e7b76 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ruby/RubyAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ruby/RubyAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.ruby; @@ -50,7 +50,7 @@ public class RubyAnalyzerFactory extends FileAnalyzerFactory { * Creates a new instance of {@link RubyAnalyzerFactory}. */ public RubyAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/rust/RustAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/rust/RustAnalyzerFactory.java index 81eea734fd4..d4b300636a1 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/rust/RustAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/rust/RustAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2016, Nikolay Denev. */ package org.opengrok.indexer.analysis.rust; @@ -41,7 +41,7 @@ public class RustAnalyzerFactory extends FileAnalyzerFactory { }; public RustAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/scala/ScalaAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/scala/ScalaAnalyzerFactory.java index 6545d47b8f8..686ddbb8d5a 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/scala/ScalaAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/scala/ScalaAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.scala; @@ -39,7 +39,7 @@ public class ScalaAnalyzerFactory extends FileAnalyzerFactory { }; public ScalaAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sh/ShAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sh/ShAnalyzerFactory.java index fbd50459668..51704ffd96e 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sh/ShAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sh/ShAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, Chris Fraire . */ package org.opengrok.indexer.analysis.sh; @@ -60,7 +60,7 @@ public class ShAnalyzerFactory extends FileAnalyzerFactory { }; public ShAnalyzerFactory() { - super(NAMES, PREFIXES, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(NAMES, PREFIXES, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sql/PLSQLAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sql/PLSQLAnalyzerFactory.java index 856c6afa51c..bde0977d4d7 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sql/PLSQLAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sql/PLSQLAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.sql; @@ -39,7 +39,7 @@ public class PLSQLAnalyzerFactory extends FileAnalyzerFactory { }; public PLSQLAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sql/SQLAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sql/SQLAnalyzerFactory.java index 67e16d7b2b0..d02242a59b9 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sql/SQLAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/sql/SQLAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.sql; @@ -34,7 +34,7 @@ public class SQLAnalyzerFactory extends FileAnalyzerFactory { }; public SQLAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/swift/SwiftAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/swift/SwiftAnalyzerFactory.java index 99e25084316..32b02fe1c39 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/swift/SwiftAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/swift/SwiftAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.swift; @@ -34,7 +34,7 @@ public class SwiftAnalyzerFactory extends FileAnalyzerFactory { }; public SwiftAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/tcl/TclAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/tcl/TclAnalyzerFactory.java index 9dc571b053a..8ed26351979 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/tcl/TclAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/tcl/TclAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.tcl; @@ -41,7 +41,7 @@ public class TclAnalyzerFactory extends FileAnalyzerFactory { }; public TclAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/terraform/TerraformAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/terraform/TerraformAnalyzerFactory.java index 83ce64f8af3..ca86df563b6 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/terraform/TerraformAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/terraform/TerraformAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2020, Chris Fraire . */ package org.opengrok.indexer.analysis.terraform; @@ -40,7 +40,7 @@ public class TerraformAnalyzerFactory extends FileAnalyzerFactory { * Creates a new instance of {@link TerraformAnalyzerFactory}. */ public TerraformAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/typescript/TypeScriptAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/typescript/TypeScriptAnalyzerFactory.java index 94eac89201a..909bd65c5dd 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/typescript/TypeScriptAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/typescript/TypeScriptAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Portions Copyright (c) 2017, 2019, Chris Fraire . */ package org.opengrok.indexer.analysis.typescript; @@ -33,7 +33,7 @@ public class TypeScriptAnalyzerFactory extends FileAnalyzerFactory { private static final String[] SUFFIXES = {"TS"}; public TypeScriptAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/uue/UuencodeAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/uue/UuencodeAnalyzerFactory.java index e452392ef91..6c15866c367 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/uue/UuencodeAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/uue/UuencodeAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012, 2013, Constantine A. Murenin <C++@Cns.SU> */ package org.opengrok.indexer.analysis.uue; @@ -51,7 +51,7 @@ public class UuencodeAnalyzerFactory extends FileAnalyzerFactory { }; public UuencodeAnalyzerFactory() { - super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, MAGICS, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, false); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/vb/VBAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/vb/VBAnalyzerFactory.java index 637a68b4960..bc57853d3d9 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/vb/VBAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/vb/VBAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. */ package org.opengrok.indexer.analysis.vb; @@ -39,7 +39,7 @@ public class VBAnalyzerFactory extends FileAnalyzerFactory { }; public VBAnalyzerFactory() { - super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME); + super(null, null, SUFFIXES, null, null, "text/plain", AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/verilog/VerilogAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/verilog/VerilogAnalyzerFactory.java index c2e0067c283..6d47e530ab4 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/verilog/VerilogAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/verilog/VerilogAnalyzerFactory.java @@ -41,7 +41,7 @@ public class VerilogAnalyzerFactory extends FileAnalyzerFactory { */ public VerilogAnalyzerFactory() { super(null, null, SUFFIXES, null, null, "text/plain", Genre.PLAIN, - NAME); + NAME, true); } /** diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/yaml/YamlAnalyzerFactory.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/yaml/YamlAnalyzerFactory.java index e18591d4ff5..40a4d280787 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/yaml/YamlAnalyzerFactory.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/yaml/YamlAnalyzerFactory.java @@ -18,7 +18,7 @@ */ /* - * Copyright (c) 2023, Oracle and/or its affiliates. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. * Portions Copyright (c) 2023, Gino Augustine . */ package org.opengrok.indexer.analysis.yaml; @@ -38,7 +38,7 @@ public class YamlAnalyzerFactory extends FileAnalyzerFactory { public YamlAnalyzerFactory() { super(null, null, SUFFIXES, null, null, "text/plain", - AbstractAnalyzer.Genre.PLAIN, NAME); + AbstractAnalyzer.Genre.PLAIN, NAME, true); } @Override diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/history/HistoryGuru.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/history/HistoryGuru.java index 1b789e1c35f..dcb63647cfe 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/history/HistoryGuru.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/history/HistoryGuru.java @@ -51,6 +51,8 @@ import org.apache.lucene.queryparser.classic.ParseException; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.VisibleForTesting; +import org.opengrok.indexer.analysis.AnalyzerFactory; +import org.opengrok.indexer.analysis.AnalyzerGuru; import org.opengrok.indexer.configuration.CommandTimeoutType; import org.opengrok.indexer.configuration.Configuration; import org.opengrok.indexer.configuration.Configuration.RemoteSCM; @@ -722,6 +724,18 @@ public boolean hasAnnotation(File file, @Nullable Document document) { launderLog(file.toString()))); return false; } + + // xref-able file does not mean it can be annotated. Use the TYPE stored in each document + // to lookup AnalyzerFactory which utters the negative verdict. + String type = document.get(QueryBuilder.TYPE); + if (type != null) { + AnalyzerFactory analyzerFactory = AnalyzerGuru.findByFileTypeName(type); + if (analyzerFactory != null && !analyzerFactory.hasAnnotations()) { + LOGGER.finest(() -> String.format("file '%s' has type %s that cannot be annotated", + launderLog(file.toString()), type)); + return false; + } + } } return hasAnnotationInRepo(file); diff --git a/opengrok-indexer/src/main/java/org/opengrok/indexer/index/IndexDatabase.java b/opengrok-indexer/src/main/java/org/opengrok/indexer/index/IndexDatabase.java index f52f2656a98..a5f1d23d648 100644 --- a/opengrok-indexer/src/main/java/org/opengrok/indexer/index/IndexDatabase.java +++ b/opengrok-indexer/src/main/java/org/opengrok/indexer/index/IndexDatabase.java @@ -2336,7 +2336,7 @@ boolean checkSettings(File file, String path) throws IOException { fileTypeName = doc.get(QueryBuilder.TYPE); if (fileTypeName == null) { // (Should not get here, but break just in case.) - LOGGER.log(Level.FINEST, "Missing TYPE field: ''{0}''", path); + LOGGER.log(Level.WARNING, "Missing TYPE field: ''{0}''", path); break; } diff --git a/opengrok-indexer/src/test/java/org/opengrok/indexer/history/HistoryGuruTest.java b/opengrok-indexer/src/test/java/org/opengrok/indexer/history/HistoryGuruTest.java index 925baf09ffb..6d0adb16b71 100644 --- a/opengrok-indexer/src/test/java/org/opengrok/indexer/history/HistoryGuruTest.java +++ b/opengrok-indexer/src/test/java/org/opengrok/indexer/history/HistoryGuruTest.java @@ -46,17 +46,21 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.FieldType; import org.apache.lucene.document.StringField; import org.apache.lucene.index.IndexNotFoundException; +import org.jetbrains.annotations.Nullable; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; import org.opengrok.indexer.analysis.AbstractAnalyzer; import org.opengrok.indexer.analysis.AnalyzerGuru; @@ -151,20 +155,33 @@ void testBug16465() throws HistoryException, IOException { } } + /** + * The parameters need to be consistent with respective AnalyzerFactory classes' values. + */ + private static Stream provideParamsForHasAnnotationTestWithDocument() { + return Stream.of( + Arguments.of(AbstractAnalyzer.Genre.PLAIN.typeName(), true, "c", true), + Arguments.of(AbstractAnalyzer.Genre.XREFABLE.typeName(), true, "elf", false), + Arguments.of(AbstractAnalyzer.Genre.DATA.typeName(), false, "gzip", false), + Arguments.of(null, false, "file", false) // Genre.IMAGE + ); + } + @ParameterizedTest - @ValueSource(booleans = {true, false}) - void testHasAnnotationWithDocument(boolean isXrefable) { + @MethodSource("provideParamsForHasAnnotationTestWithDocument") + void testHasAnnotationWithDocument(@Nullable String genreName, boolean isXrefable, + String typeName, boolean hasAnnotation) { File file = Paths.get(repository.getSourceRoot(), "git", "main.c").toFile(); assertTrue(file.isFile()); Document document = new Document(); - String typeName; - if (isXrefable) { - typeName = AbstractAnalyzer.Genre.PLAIN.typeName(); - } else { - typeName = AbstractAnalyzer.Genre.DATA.typeName(); + if (genreName != null) { + document.add(new Field(QueryBuilder.T, genreName, new FieldType(StringField.TYPE_STORED))); + assertEquals(isXrefable, AnalyzerGuru.isXrefable(genreName)); } - assertEquals(isXrefable, AnalyzerGuru.isXrefable(typeName)); - document.add(new Field(QueryBuilder.T, typeName, new FieldType(StringField.TYPE_STORED))); + + // Technically the TYPE field should be present in all documents. + assertNotNull(AnalyzerGuru.findByFileTypeName(typeName)); + document.add(new Field(QueryBuilder.TYPE, typeName, new FieldType(StringField.TYPE_STORED))); /* * This test class does not perform the 2nd phase of indexing, therefore getDocument() for any file @@ -172,12 +189,15 @@ void testHasAnnotationWithDocument(boolean isXrefable) { */ assertThrows(IndexNotFoundException.class, () -> IndexDatabase.getDocument(file)); assertTrue(instance.hasAnnotation(file)); - assertEquals(isXrefable, instance.hasAnnotation(file, document)); + if (!isXrefable) { + assertFalse(hasAnnotation); + } + assertEquals(hasAnnotation, instance.hasAnnotation(file, document)); } /** * Check that {@link HistoryGuru#hasAnnotation(File, Document)} falls back to repository check - * if the document is {@code null}. Complements the {@link #testHasAnnotationWithDocument(boolean)} test. + * if the document is {@code null}. Complements the {@link #testHasAnnotationWithDocument} test. */ @Test void testHasAnnotationWithoutDocument() {