Document configuration property
I have seen the code
if( "true".equals( System.getProperty( "PipelineExtensionDetector.expandFailures" )
but I couldn't see any documentation related to it. Can this be documented please?
The warning message that appears if that property is not set offers some documentation:
Failed to get some classes of type [{}] in package [{}]. For detailed error messages, set the system property PipelineExtensionDetector.expandFailures=true. Failures: [{}]https://github.com/ExpediaGroup/jenkins-spock/blob/master/src/main/java/com/homeaway/devtools/jenkins/testing/WholeClasspathPipelineExtensionDetector.java#L79-L83
In practice, the message might look like this:
[2020-03-16 12:25:28,052](main)([]) WARN WholeClasspathPipelineExtensionDetector - Failed to get some classes annotated with [interface hudson.Extension] of type [class org.jenkinsci.plugins.workflow.steps.StepDescriptor] in package [Optional.empty]. For detailed error messages, set the system property PipelineExtensionDetector.expandFailures=true. Failures: [[hudson.cli.UpdateNodeCommand, org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$PipelineTimings, hudson.cli.ReloadConfigurationCommand, hudson.cli.DeleteJobCommand, hudson.cli.ListJobsCommand, hudson.cli.DisconnectNodeCommand, hudson.cli.BuildCommand, hudson.cli.GetJobCommand, hudson.cli.DeleteViewCommand, org.jenkinsci.plugins.workflow.cps.replay.ReplayCommand, hudson.cli.ConnectNodeCommand, hudson.cli.VersionCommand, hudson.cli.DeleteNodeCommand, hudson.cli.OnlineNodeCommand, hudson.cli.ReloadJobCommand, hudson.cli.InstallPluginCommand, hudson.cli.SetBuildParameterCommand, org.jenkinsci.plugins.workflow.cps.CpsThreadDumpAction$PipelineThreadDump, hudson.cli.GetNodeCommand, hudson.cli.CancelQuietDownCommand, hudson.cli.CreateJobCommand, hudson.cli.GetViewCommand, hudson.cli.HelpCommand, hudson.cli.SetBuildDisplayNameCommand, hudson.cli.ClearQueueCommand, hudson.cli.SetBuildDescriptionCommand, hudson.cli.GroovyshCommand, hudson.cli.QuietDownCommand, hudson.cli.ConsoleCommand, hudson.cli.CliProtocol2, hudson.cli.WaitNodeOnlineCommand, hudson.cli.GroovyCommand, hudson.cli.LoginCommand, hudson.cli.WhoAmICommand, hudson.cli.WaitNodeOfflineCommand, hudson.cli.CopyJobCommand, hudson.cli.RemoveJobFromViewCommand, hudson.cli.ListPluginsCommand, hudson.cli.SetBuildResultCommand, hudson.cli.MailCommand, hudson.cli.ListChangesCommand, jenkins.slaves.JnlpSlaveAgentProtocol, hudson.cli.LogoutCommand, hudson.cli.CliProtocol, hudson.cli.SessionIdCommand, hudson.cli.CreateNodeCommand, hudson.cli.DeleteBuildsCommand, hudson.cli.AddJobToViewCommand, hudson.cli.OfflineNodeCommand, hudson.cli.UpdateJobCommand, hudson.cli.CreateViewCommand, hudson.cli.InstallToolCommand, jenkins.slaves.JnlpSlaveAgentProtocol3, hudson.cli.UpdateViewCommand]]
If there are no failures, then this property will have no effect. If there are failures, the message that they generate instructs people in the property's usage.
We could add a mention of it in documentation proper.