|
58 | 58 | import javax.annotation.Nonnull;
|
59 | 59 | import javax.annotation.Nullable;
|
60 | 60 | import jenkins.model.Jenkins;
|
| 61 | +import jenkins.util.SystemProperties; |
61 | 62 | import org.kohsuke.stapler.export.Exported;
|
62 | 63 | import org.kohsuke.stapler.export.ExportedBean;
|
63 | 64 |
|
|
84 | 85 | */
|
85 | 86 | @ExportedBean
|
86 | 87 | public abstract class SCM implements Describable<SCM>, ExtensionPoint {
|
| 88 | + |
| 89 | + /** JENKINS-35098: discouraged */ |
| 90 | + @SuppressWarnings("FieldMayBeFinal") |
| 91 | + private static boolean useAutoBrowserHolder = SystemProperties.getBoolean(SCM.class.getName() + ".useAutoBrowserHolder"); |
87 | 92 | /**
|
88 | 93 | * Stores {@link AutoBrowserHolder}. Lazily created.
|
| 94 | + * @deprecated Unused by default. |
89 | 95 | */
|
90 | 96 | private transient AutoBrowserHolder autoBrowserHolder;
|
91 | 97 |
|
@@ -124,17 +130,21 @@ public String getType() {
|
124 | 130 | * Returns the applicable {@link RepositoryBrowser} for files
|
125 | 131 | * controlled by this {@link SCM}.
|
126 | 132 | * @see #guessBrowser
|
127 |
| - * @see SCMDescriptor#isBrowserReusable |
128 | 133 | */
|
| 134 | + @SuppressWarnings("deprecation") |
129 | 135 | @Exported(name="browser")
|
130 | 136 | public final @CheckForNull RepositoryBrowser<?> getEffectiveBrowser() {
|
131 | 137 | RepositoryBrowser<?> b = getBrowser();
|
132 | 138 | if(b!=null)
|
133 | 139 | return b;
|
134 |
| - if(autoBrowserHolder==null) |
135 |
| - autoBrowserHolder = new AutoBrowserHolder(this); |
136 |
| - return autoBrowserHolder.get(); |
137 |
| - |
| 140 | + if (useAutoBrowserHolder) { |
| 141 | + if (autoBrowserHolder == null) { |
| 142 | + autoBrowserHolder = new AutoBrowserHolder(this); |
| 143 | + } |
| 144 | + return autoBrowserHolder.get(); |
| 145 | + } else { |
| 146 | + return guessBrowser(); |
| 147 | + } |
138 | 148 | }
|
139 | 149 |
|
140 | 150 | /**
|
|
0 commit comments