69
69
import jakarta .servlet .http .HttpServletRequest ;
70
70
import org .apache .commons .lang3 .SystemUtils ;
71
71
import org .apache .lucene .queryparser .classic .QueryParserBase ;
72
+ import org .jetbrains .annotations .Nullable ;
73
+ import org .jetbrains .annotations .VisibleForTesting ;
72
74
import org .opengrok .indexer .configuration .RuntimeEnvironment ;
73
75
import org .opengrok .indexer .history .Annotation ;
74
76
import org .opengrok .indexer .history .HistoryGuru ;
@@ -715,10 +717,11 @@ public static void readableLine(int num, Writer out, Annotation annotation, Stri
715
717
}
716
718
}
717
719
718
- private static void writeAnnotation (int num , Writer out , Annotation annotation , String userPageLink ,
719
- String userPageSuffix , String project ) throws IOException {
720
- String revision = annotation .getRevision (num );
721
- boolean enabled = annotation .isEnabled (num );
720
+ @ VisibleForTesting
721
+ static void writeAnnotation (int lineNum , Writer out , Annotation annotation , @ Nullable String userPageLink ,
722
+ @ Nullable String userPageSuffix , String project ) throws IOException {
723
+ String revision = annotation .getRevision (lineNum );
724
+ boolean enabled = annotation .isEnabled (lineNum );
722
725
out .write ("<span class=\" blame\" >" );
723
726
if (enabled ) {
724
727
out .write (ANCHOR_CLASS_START );
@@ -750,38 +753,18 @@ private static void writeAnnotation(int num, Writer out, Annotation annotation,
750
753
buf .append ("<span class=\" most_recent_revision\" >" );
751
754
buf .append ('*' );
752
755
}
753
- htmlize (annotation .getRevisionForDisplay (num ), buf );
756
+ htmlize (annotation .getRevisionForDisplay (lineNum ), buf );
754
757
if (isMostRecentRevision ) {
755
758
buf .append (SPAN_END ); // recent revision span
756
759
}
757
760
out .write (buf .toString ());
758
761
buf .setLength (0 );
759
762
if (enabled ) {
760
- RuntimeEnvironment env = RuntimeEnvironment .getInstance ();
761
-
762
763
out .write (ANCHOR_END );
763
764
764
- // Write link to search the revision in current project.
765
- out .write (ANCHOR_CLASS_START );
766
- out .write ("search\" href=\" " + env .getUrlPrefix ());
767
- out .write (QueryParameters .DEFS_SEARCH_PARAM_EQ );
768
- out .write (AMP );
769
- out .write (QueryParameters .REFS_SEARCH_PARAM_EQ );
770
- out .write (AMP );
771
- out .write (QueryParameters .PATH_SEARCH_PARAM_EQ );
772
- out .write (project );
773
- out .write (AMP );
774
- out .write (QueryParameters .HIST_SEARCH_PARAM_EQ );
775
- out .write (QUOTE );
776
- out .write (uriEncode (revision ));
777
- out .write (""&" );
778
- out .write (QueryParameters .TYPE_SEARCH_PARAM_EQ );
779
- out .write ("\" title=\" Search history for this revision" );
780
- out .write (CLOSE_QUOTED_TAG );
781
- out .write ("S" );
782
- out .write (ANCHOR_END );
765
+ writeAnnotationSearchLink (out , project , revision );
783
766
}
784
- String a = annotation .getAuthor (num );
767
+ String a = annotation .getAuthor (lineNum );
785
768
if (userPageLink == null ) {
786
769
out .write (HtmlConsts .SPAN_A );
787
770
htmlize (a , buf );
@@ -805,6 +788,30 @@ private static void writeAnnotation(int num, Writer out, Annotation annotation,
805
788
out .write (SPAN_END );
806
789
}
807
790
791
+ private static void writeAnnotationSearchLink (Writer out , String projectName , String revision ) throws IOException {
792
+ RuntimeEnvironment env = RuntimeEnvironment .getInstance ();
793
+
794
+ // Write link to search the revision in current project.
795
+ out .write (ANCHOR_CLASS_START );
796
+ out .write ("search\" href=\" " + env .getUrlPrefix ());
797
+ out .write (QueryParameters .DEFS_SEARCH_PARAM_EQ );
798
+ out .write (AMP );
799
+ out .write (QueryParameters .REFS_SEARCH_PARAM_EQ );
800
+ out .write (AMP );
801
+ out .write (QueryParameters .PATH_SEARCH_PARAM_EQ );
802
+ out .write (projectName );
803
+ out .write (AMP );
804
+ out .write (QueryParameters .HIST_SEARCH_PARAM_EQ );
805
+ out .write (QUOTE );
806
+ out .write (uriEncode (revision ));
807
+ out .write (""&" );
808
+ out .write (QueryParameters .TYPE_SEARCH_PARAM_EQ );
809
+ out .write ("\" title=\" Search history for this revision" );
810
+ out .write (CLOSE_QUOTED_TAG );
811
+ out .write ("S" );
812
+ out .write (ANCHOR_END );
813
+ }
814
+
808
815
/**
809
816
* Generate a string from the given path and date in a way that allows
810
817
* stable lexicographic sorting (i.e. gives always the same results) as a
0 commit comments