Skip to content

Commit

Permalink
Defer loading of the filing client until it's used. (#2038)
Browse files Browse the repository at this point in the history
  • Loading branch information
rtaket committed Aug 25, 2020
1 parent f0fd0c9 commit 2d808ec
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions src/Sarif.WorkItems/SarifWorkItemFiler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ namespace Microsoft.CodeAnalysis.Sarif.WorkItems
{
public class SarifWorkItemFiler : IDisposable
{
private readonly object m_syncRoot = new object();
private FilingClient m_filingClient = null;

/// <summary>
/// Initializes a new instance of the <see cref="SarifWorkItemFiler"> class.</see>
/// </summary>
Expand All @@ -45,15 +48,34 @@ public SarifWorkItemFiler(Uri filingUri = null, SarifWorkItemContext filingConte
throw new InvalidOperationException(WorkItemsResources.InconsistentHostUrisProvided);
}

this.FilingClient = FilingClientFactory.Create(this.FilingContext.HostUri);

this.Logger = ServiceProviderFactory.ServiceProvider.GetService<ILogger>();
Assembly.GetExecutingAssembly().LogIdentity();

this.FiledWorkItems = new List<WorkItemModel>();
}

public FilingClient FilingClient { get; set; }
public FilingClient FilingClient
{
get
{
if (m_filingClient == null)
{
lock (m_syncRoot)
{
if (m_filingClient == null)
{
this.FilingClient = FilingClientFactory.Create(this.FilingContext.HostUri);
}
}
}

return m_filingClient;
}
set
{
m_filingClient = value;
}
}

public SarifWorkItemContext FilingContext { get; }

Expand Down Expand Up @@ -108,6 +130,9 @@ public virtual SarifLog FileWorkItems(SarifLog sarifLog)
}
#endif

Logger.LogInformation("Connecting to filing client: {accountOrOrganization}", this.FilingClient.AccountOrOrganization);
this.FilingClient.Connect(this.FilingContext.PersonalAccessToken).Wait();

for (int splitFileIndex = 0; splitFileIndex < logsToProcessCount; splitFileIndex++)
{
SarifLog splitLog = logsToProcess[splitFileIndex];
Expand Down Expand Up @@ -153,9 +178,6 @@ public virtual IReadOnlyList<SarifLog> SplitLogFile(SarifLog sarifLog)

sarifLog = sarifLog ?? throw new ArgumentNullException(nameof(sarifLog));

Logger.LogInformation("Connecting to filing client: {accountOrOrganization}", this.FilingClient.AccountOrOrganization);
this.FilingClient.Connect(this.FilingContext.PersonalAccessToken).Wait();

OptionallyEmittedData optionallyEmittedData = this.FilingContext.DataToRemove;
if (optionallyEmittedData != OptionallyEmittedData.None)
{
Expand Down

0 comments on commit 2d808ec

Please sign in to comment.