diff --git a/Directory.Build.props b/Directory.Build.props
index 59776860..9c07ffa3 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -8,7 +8,6 @@
© Microsoft Corporation. All rights reserved.
true
true
- net7.0
$(MSBuildThisFileDirectory)
diff --git a/azure-pipelines/build.yml b/azure-pipelines/build.yml
index 443c42f4..9e869ff0 100644
--- a/azure-pipelines/build.yml
+++ b/azure-pipelines/build.yml
@@ -58,6 +58,18 @@ steps:
inputs:
useGlobalJson: true
+- task: PowerShell@2
+ displayName: 'Add version number to SqlCore project for packaging'
+ inputs:
+ targetType: 'inline'
+ script: |
+ $projectFile = '$(Build.SourcesDirectory)\src\Microsoft.SqlTools.SqlCore\Microsoft.SqlTools.SqlCore.csproj'
+ $props = New-Object XML
+ $props.Load($projectFile)
+ $version = ($(Major)).ToString() + '.' + ($(Minor)).ToString() + '.' + $(Patch) + $(Build.BuildNumber);
+ $props.Project.PropertyGroup.Version = $version;
+ $props.Save($projectFile)
+
- task: BatchScript@1
displayName: 'Run script build.cmd'
inputs:
@@ -104,7 +116,7 @@ steps:
summaryFileLocation: '$(Agent.TempDirectory)/coverlet/reports/Cobertura.xml'
- task: PowerShell@2
- displayName: 'Generate Nuspec Version'
+ displayName: 'Generate ManagedBatchParser Nuspec Version'
inputs:
targetType: 'inline'
script: |
@@ -163,7 +175,60 @@ steps:
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/artifacts/publish'
- Pattern: 'Microsoft.SqlTools.ManagedBatchParser.dll,MicrosoftSqlToolsCredentials.exe,MicrosoftSqlToolsServiceLayer.exe,SqlSerializationService.exe,SqlToolsResourceProviderService.exe,Microsoft.SqlTools.Hosting.dll,Microsoft.SqlTools.ResourceProvider.Core.dll,Microsoft.SqlTools.ResourceProvider.DefaultImpl.dll,MicrosoftSqlToolsCredentials.dll,MicrosoftSqlToolsServiceLayer.dll,Newtonsoft.Json.dll,SqlSerializationService.dll,SqlToolsResourceProviderService.dll,System.Data.SqlClient.dll,System.Net.Sockets.dll,MicrosoftSqlToolsMigration.exe,MicrosoftSqlToolsMigration.dll'
+ Pattern: 'Microsoft.SqlTools.ManagedBatchParser.dll,MicrosoftSqlToolsCredentials.exe,MicrosoftSqlToolsServiceLayer.exe,SqlSerializationService.exe,SqlToolsResourceProviderService.exe,Microsoft.SqlTools.Hosting.dll,Microsoft.SqlTools.ResourceProvider.Core.dll,Microsoft.SqlTools.ResourceProvider.DefaultImpl.dll,MicrosoftSqlToolsCredentials.dll,MicrosoftSqlToolsServiceLayer.dll,Newtonsoft.Json.dll,SqlSerializationService.dll,SqlToolsResourceProviderService.dll,System.Data.SqlClient.dll,System.Net.Sockets.dll,MicrosoftSqlToolsMigration.exe,MicrosoftSqlToolsMigration.dll,Microsoft.SqlTools.SqlCore.dll'
+ signConfigType: inlineSignParams
+ inlineOperation: |
+ [
+ {
+ "keyCode": "CP-230012",
+ "operationSetCode": "SigntoolSign",
+ "parameters": [
+ {
+ "parameterName": "OpusName",
+ "parameterValue": "SQL Tools Service"
+ },
+ {
+ "parameterName": "OpusInfo",
+ "parameterValue": "https://github.com/microsoft/sqltoolsservice"
+ },
+ {
+ "parameterName": "PageHash",
+ "parameterValue": "/NPH"
+ },
+ {
+ "parameterName": "FileDigest",
+ "parameterValue": "/fd sha256"
+ },
+ {
+ "parameterName": "TimeStamp",
+ "parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
+ }
+ ],
+ "toolName": "signtool.exe",
+ "toolVersion": "6.2.9304.0"
+ },
+ {
+ "keyCode": "CP-230012",
+ "operationSetCode": "SigntoolVerify",
+ "parameters": [
+ {
+ "parameterName": "VerifyAll",
+ "parameterValue": "/all"
+ }
+ ],
+ "toolName": "signtool.exe",
+ "toolVersion": "6.2.9304.0"
+ }
+ ]
+ SessionTimeout: 600
+ MaxConcurrency: 5
+
+- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
+ displayName: 'ESRP SqlCore CodeSigning - sha256 only'
+ inputs:
+ ConnectedServiceName: 'Code Signing'
+ FolderPath: '$(Build.SourcesDirectory)/src/Microsoft.SqlTools.SqlCore/bin/$(buildConfiguration)/netstandard2.0'
+ Pattern: '*.dll'
signConfigType: inlineSignParams
inlineOperation: |
[
@@ -225,6 +290,13 @@ steps:
filename: build.cmd
arguments: "-target=dotnetpackservicetools -mono"
+- task: DotNetCoreCLI@2
+ displayName: 'dotnet pack sqlcore'
+ inputs:
+ command: custom
+ custom: pack
+ arguments: '--output $(Build.SourcesDirectory)\artifacts\nugetPackages --no-build --no-restore src\Microsoft.SqlTools.SqlCore\Microsoft.SqlTools.SqlCore.csproj'
+
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'ESRP Code Signing - Nuget Package'
inputs:
@@ -290,6 +362,15 @@ steps:
publishVstsFeed: '2191dd5f-4aec-491b-ac50-568bbc331c8a'
allowPackageConflicts: true
+- task: DotNetCoreCLI@2
+ displayName: 'NuGet push SqlCore'
+ condition: eq(variables['RELEASE_SQLCORE'], 'true')
+ inputs:
+ command: push
+ packagesToPush: '$(Build.SourcesDirectory)/artifacts/nugetPackages/**/Microsoft.SqlTools.SqlCore.*.nupkg'
+ feedPublish: 'mssqltools'
+ allowPackageConflicts: true
+
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
inputs:
diff --git a/build.cake b/build.cake
index 4fab22e2..b30fc615 100644
--- a/build.cake
+++ b/build.cake
@@ -37,8 +37,7 @@ var shellExtension = IsRunningOnWindows() ? "ps1" : "sh";
///
public class BuildPlan
{
- public string[] FxBuildProjects { get; set; }
- public string[] FxFrameworks { get; set; }
+ public Project[] FxBuildProjects { get; set; }
public IDictionary TestProjects { get; set; }
public string BuildToolsFolder { get; set; }
public string ArtifactsFolder { get; set; }
@@ -63,6 +62,8 @@ public class Project
public string Name { get; set; }
public string[] PackageProjects { get; set; }
public string[] TestProjects { get; set; }
+ public string[] Frameworks { get; set; }
+ public bool SkipPack { get; set; }
}
var buildPlan = JsonConvert.DeserializeObject(
@@ -263,10 +264,10 @@ Task("BuildFx")
{
foreach (var project in buildPlan.FxBuildProjects)
{
- foreach (var framework in buildPlan.FxFrameworks)
+ foreach (var framework in project.Frameworks)
{
- var projectFolder = System.IO.Path.Combine(sourceFolder, project);
- var logPath = System.IO.Path.Combine(logFolder, $"{project}-{framework}-build.log");
+ var projectFolder = System.IO.Path.Combine(sourceFolder, project.Name);
+ var logPath = System.IO.Path.Combine(logFolder, $"{project.Name}-{framework}-build.log");
using (var logWriter = new StreamWriter(logPath)) {
Run(dotnetcli, $"build --framework {framework} --configuration {configuration} \"{projectFolder}\"",
new RunOptions
@@ -274,7 +275,7 @@ Task("BuildFx")
StandardOutputWriter = logWriter,
StandardErrorWriter = logWriter
})
- .ExceptionOnError($"Building test {project} failed for {framework}. See {logPath} for more details.");
+ .ExceptionOnError($"Building test {project.Name} failed for {framework}. See {logPath} for more details.");
}
}
}
@@ -308,10 +309,14 @@ Task("DotnetPackNuspec")
{
foreach (var project in buildPlan.FxBuildProjects)
{
+ if (project.SkipPack != null && project.SkipPack)
+ {
+ continue;
+ }
// For now, putting all nugets in the 1 directory
var outputFolder = System.IO.Path.Combine(nugetPackageFolder);
- var projectFolder = System.IO.Path.Combine(packagesFolder, project);
- DotnetPackNuspec(outputFolder, projectFolder, project);
+ var projectFolder = System.IO.Path.Combine(packagesFolder, project.Name);
+ DotnetPackNuspec(outputFolder, projectFolder, project.Name);
}
});
@@ -469,9 +474,10 @@ void PublishProject(string packageName, string[] projects)
}
}
- if (buildPlan.FxBuildProjects.Contains(project))
+ if (buildPlan.FxBuildProjects.Any(p => p.Name == project))
{
- foreach(var framework in buildPlan.FxFrameworks)
+ var projDefinition = buildPlan.FxBuildProjects.First(p => p.Name == project);
+ foreach(var framework in projDefinition.Frameworks)
{
var outputFolder = System.IO.Path.Combine(publishFolder, packageName, "default", framework);
var publishArguments = "publish";
diff --git a/build.json b/build.json
index 740f2b52..c657ca34 100644
--- a/build.json
+++ b/build.json
@@ -24,10 +24,6 @@
"Frameworks": [
"net7.0"
],
- "FxFrameworks":[
- "net472",
- "net7.0"
- ],
"MainProjects": [
"Microsoft.SqlTools.Credentials",
"Microsoft.SqlTools.ResourceProvider",
@@ -37,7 +33,20 @@
"Microsoft.SqlTools.Migration"
],
"FxBuildProjects": [
- "Microsoft.SqlTools.ManagedBatchParser"
+ {
+ "Name": "Microsoft.SqlTools.ManagedBatchParser",
+ "Frameworks": [
+ "net472",
+ "net7.0"
+ ]
+ },
+ {
+ "Name": "Microsoft.SqlTools.SqlCore",
+ "Frameworks": [
+ "netstandard2.0"
+ ],
+ "SkipPack": "true"
+ }
],
"PackageProjects": [
"Microsoft.SqlTools.Hosting"
diff --git a/docs/samples/jsonrpc/netcore/executequery/jsonrpc.csproj b/docs/samples/jsonrpc/netcore/executequery/jsonrpc.csproj
index 46e2982e..2fbec776 100644
--- a/docs/samples/jsonrpc/netcore/executequery/jsonrpc.csproj
+++ b/docs/samples/jsonrpc/netcore/executequery/jsonrpc.csproj
@@ -1,6 +1,6 @@
- net6.0
+ net7.0
Exe
diff --git a/src/Microsoft.Kusto.ServiceLayer/Microsoft.Kusto.ServiceLayer.csproj b/src/Microsoft.Kusto.ServiceLayer/Microsoft.Kusto.ServiceLayer.csproj
index 95078846..6fd92eb3 100644
--- a/src/Microsoft.Kusto.ServiceLayer/Microsoft.Kusto.ServiceLayer.csproj
+++ b/src/Microsoft.Kusto.ServiceLayer/Microsoft.Kusto.ServiceLayer.csproj
@@ -12,6 +12,7 @@
true
true
portable
+ net7.0
$(ToolsServiceTargetRuntimes)
$(NoWarn);CS8795
diff --git a/src/Microsoft.SqlTools.Authentication/Microsoft.SqlTools.Authentication.csproj b/src/Microsoft.SqlTools.Authentication/Microsoft.SqlTools.Authentication.csproj
index b86e3871..d564ad80 100644
--- a/src/Microsoft.SqlTools.Authentication/Microsoft.SqlTools.Authentication.csproj
+++ b/src/Microsoft.SqlTools.Authentication/Microsoft.SqlTools.Authentication.csproj
@@ -3,6 +3,7 @@
enable
enable
+ net7.0
diff --git a/src/Microsoft.SqlTools.Credentials/Microsoft.SqlTools.Credentials.csproj b/src/Microsoft.SqlTools.Credentials/Microsoft.SqlTools.Credentials.csproj
index 2959b390..bc93a762 100644
--- a/src/Microsoft.SqlTools.Credentials/Microsoft.SqlTools.Credentials.csproj
+++ b/src/Microsoft.SqlTools.Credentials/Microsoft.SqlTools.Credentials.csproj
@@ -18,6 +18,7 @@
This is a Diagnostic Alert .NET 7 onwards.Changing to LibraryImportAttribute would require additional code changes,
therefore this warning is suppressed.-->
$(NoWarn);SYSLIB1054
+ net7.0
diff --git a/src/Microsoft.SqlTools.Hosting/Extensibility/ExtensionServiceProvider.cs b/src/Microsoft.SqlTools.Hosting/Extensibility/ExtensionServiceProvider.cs
index a68ae552..573b4a87 100644
--- a/src/Microsoft.SqlTools.Hosting/Extensibility/ExtensionServiceProvider.cs
+++ b/src/Microsoft.SqlTools.Hosting/Extensibility/ExtensionServiceProvider.cs
@@ -24,7 +24,8 @@ namespace Microsoft.SqlTools.Extensibility
"microsofsqltoolscredentials.dll",
"microsoft.sqltools.hosting.dll",
"microsoftsqltoolsservicelayer.dll",
- "microsoftkustoservicelayer.dll"
+ "microsoftkustoservicelayer.dll",
+ "microsoft.sqltools.sqlcore.dll"
};
private Func config;
diff --git a/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/ProtocolEndpoint.cs b/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/ProtocolEndpoint.cs
index efbfa67e..15af2fc8 100644
--- a/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/ProtocolEndpoint.cs
+++ b/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/ProtocolEndpoint.cs
@@ -121,7 +121,11 @@ namespace Microsoft.SqlTools.Hosting.Protocol
public async Task WaitForExitAsync()
{
this.endpointExitedTask = new TaskCompletionSource();
+#if NETSTANDARD2_0
+ await this.endpointExitedTask.Task;
+#else
await this.endpointExitedTask.Task.WaitAsync(CancellationToken.None);
+#endif
}
public async Task Stop()
diff --git a/src/Microsoft.SqlTools.Hosting/Microsoft.SqlTools.Hosting.csproj b/src/Microsoft.SqlTools.Hosting/Microsoft.SqlTools.Hosting.csproj
index d45ca34f..f5166cd1 100644
--- a/src/Microsoft.SqlTools.Hosting/Microsoft.SqlTools.Hosting.csproj
+++ b/src/Microsoft.SqlTools.Hosting/Microsoft.SqlTools.Hosting.csproj
@@ -11,6 +11,8 @@
true
SqlTools Hosting Library
Provides hosting services for SqlTools applications.
+ netstandard2.0;net7.0
+ 8.0
diff --git a/src/Microsoft.SqlTools.Hosting/Utility/Logger.cs b/src/Microsoft.SqlTools.Hosting/Utility/Logger.cs
index ede1d207..bbd1f47b 100644
--- a/src/Microsoft.SqlTools.Hosting/Utility/Logger.cs
+++ b/src/Microsoft.SqlTools.Hosting/Utility/Logger.cs
@@ -202,7 +202,11 @@ namespace Microsoft.SqlTools.Utility
int uniqueId;
try
{
+#if NETSTANDARD2_0
+ uniqueId = Process.GetCurrentProcess().Id;
+#else
uniqueId = Environment.ProcessId;
+#endif
}
catch (Exception ex)
{
@@ -256,8 +260,10 @@ namespace Microsoft.SqlTools.Utility
/// Writes a PII message to the log file with the Verbose event level when PII flag is enabled.
///
/// The message text to be written.
- public static void Pii(string logMessage) {
- if (IsPiiEnabled) {
+ public static void Pii(string logMessage)
+ {
+ if (IsPiiEnabled)
+ {
Write(TraceEventType.Verbose, logMessage);
}
}
diff --git a/src/Microsoft.SqlTools.Hosting/Utility/SqlClientEventListener.cs b/src/Microsoft.SqlTools.Hosting/Utility/SqlClientEventListener.cs
index e38910d6..c9ac4dcd 100644
--- a/src/Microsoft.SqlTools.Hosting/Utility/SqlClientEventListener.cs
+++ b/src/Microsoft.SqlTools.Hosting/Utility/SqlClientEventListener.cs
@@ -3,6 +3,9 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
+#if NETSTANDARD2_0
+using System;
+#endif
using System.Diagnostics.Tracing;
using Microsoft.SqlTools.Utility;
@@ -41,7 +44,11 @@ namespace Microsoft.SqlTools.ServiceLayer.Utility
{
if (payload != null)
{
+#if NETSTANDARD2_0_OR_GREATER
+ Logger.Verbose($"eventTID:{Environment.CurrentManagedThreadId} {payload.ToString()}");
+#else
Logger.Verbose($"eventTID:{eventData.OSThreadId} {payload.ToString()}");
+#endif
}
}
diff --git a/src/Microsoft.SqlTools.ManagedBatchParser/Microsoft.SqlTools.ManagedBatchParser.csproj b/src/Microsoft.SqlTools.ManagedBatchParser/Microsoft.SqlTools.ManagedBatchParser.csproj
index bc267fa4..c76a9704 100644
--- a/src/Microsoft.SqlTools.ManagedBatchParser/Microsoft.SqlTools.ManagedBatchParser.csproj
+++ b/src/Microsoft.SqlTools.ManagedBatchParser/Microsoft.SqlTools.ManagedBatchParser.csproj
@@ -37,6 +37,7 @@
version=$(PackageVersion)
$(NoWarn);CA1852
+ net7.0
diff --git a/src/Microsoft.SqlTools.Migration/Microsoft.SqlTools.Migration.csproj b/src/Microsoft.SqlTools.Migration/Microsoft.SqlTools.Migration.csproj
index 98d04dd9..283ffc73 100644
--- a/src/Microsoft.SqlTools.Migration/Microsoft.SqlTools.Migration.csproj
+++ b/src/Microsoft.SqlTools.Migration/Microsoft.SqlTools.Migration.csproj
@@ -16,6 +16,7 @@
false
SqlTools Migration Host Protocol Library
Provides message types and client/server APIs for the SqlTools Migration Services JSON protocol.
+ net7.0
true
diff --git a/src/Microsoft.SqlTools.ResourceProvider.Core/Microsoft.SqlTools.ResourceProvider.Core.csproj b/src/Microsoft.SqlTools.ResourceProvider.Core/Microsoft.SqlTools.ResourceProvider.Core.csproj
index 2c18f076..8d2f71d6 100644
--- a/src/Microsoft.SqlTools.ResourceProvider.Core/Microsoft.SqlTools.ResourceProvider.Core.csproj
+++ b/src/Microsoft.SqlTools.ResourceProvider.Core/Microsoft.SqlTools.ResourceProvider.Core.csproj
@@ -9,6 +9,7 @@
Library
Provides Resource Provider and control plane services for SqlTools applications.
+ net7.0
diff --git a/src/Microsoft.SqlTools.ResourceProvider.DefaultImpl/Microsoft.SqlTools.ResourceProvider.DefaultImpl.csproj b/src/Microsoft.SqlTools.ResourceProvider.DefaultImpl/Microsoft.SqlTools.ResourceProvider.DefaultImpl.csproj
index 70d80f68..de1d32e7 100644
--- a/src/Microsoft.SqlTools.ResourceProvider.DefaultImpl/Microsoft.SqlTools.ResourceProvider.DefaultImpl.csproj
+++ b/src/Microsoft.SqlTools.ResourceProvider.DefaultImpl/Microsoft.SqlTools.ResourceProvider.DefaultImpl.csproj
@@ -12,6 +12,7 @@
� Microsoft Corporation. All rights reserved.
$(NoWarn);CA1852
+ net7.0
diff --git a/src/Microsoft.SqlTools.ResourceProvider/Microsoft.SqlTools.ResourceProvider.csproj b/src/Microsoft.SqlTools.ResourceProvider/Microsoft.SqlTools.ResourceProvider.csproj
index 3dc30e54..73139317 100644
--- a/src/Microsoft.SqlTools.ResourceProvider/Microsoft.SqlTools.ResourceProvider.csproj
+++ b/src/Microsoft.SqlTools.ResourceProvider/Microsoft.SqlTools.ResourceProvider.csproj
@@ -12,6 +12,7 @@
false
false
$(ToolsServiceTargetRuntimes)
+ net7.0
$(NoWarn);CA1852
diff --git a/src/Microsoft.SqlTools.ServiceLayer/HostLoader.cs b/src/Microsoft.SqlTools.ServiceLayer/HostLoader.cs
index ab3fa505..1fca38af 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/HostLoader.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/HostLoader.cs
@@ -83,7 +83,7 @@ namespace Microsoft.SqlTools.ServiceLayer
"microsofsqltoolscredentials.dll",
"microsoft.sqltools.hosting.dll",
"microsoftsqltoolsservicelayer.dll",
- "microsoftsqltoolssqlcore.dll"
+ "microsoft.sqltools.sqlcore.dll"
});
serviceProvider.RegisterSingleService(sqlToolsContext);
serviceProvider.RegisterSingleService(serviceHost);
diff --git a/src/Microsoft.SqlTools.ServiceLayer/Microsoft.SqlTools.ServiceLayer.csproj b/src/Microsoft.SqlTools.ServiceLayer/Microsoft.SqlTools.ServiceLayer.csproj
index 81a0f158..fcf8bc2d 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/Microsoft.SqlTools.ServiceLayer.csproj
+++ b/src/Microsoft.SqlTools.ServiceLayer/Microsoft.SqlTools.ServiceLayer.csproj
@@ -16,6 +16,7 @@
Provides message types and client/server APIs for the SqlTools Editor Services JSON protocol.
$(NoWarn);CS8795
+ net7.0
diff --git a/src/Microsoft.SqlTools.Shared/Microsoft.SqlTools.Shared.csproj b/src/Microsoft.SqlTools.Shared/Microsoft.SqlTools.Shared.csproj
index 084c4ff0..d2a8e228 100644
--- a/src/Microsoft.SqlTools.Shared/Microsoft.SqlTools.Shared.csproj
+++ b/src/Microsoft.SqlTools.Shared/Microsoft.SqlTools.Shared.csproj
@@ -3,6 +3,7 @@
enable
enable
+ net7.0
diff --git a/src/Microsoft.SqlTools.SqlCore/Microsoft.SqlTools.SqlCore.csproj b/src/Microsoft.SqlTools.SqlCore/Microsoft.SqlTools.SqlCore.csproj
index 101b6242..18d63342 100644
--- a/src/Microsoft.SqlTools.SqlCore/Microsoft.SqlTools.SqlCore.csproj
+++ b/src/Microsoft.SqlTools.SqlCore/Microsoft.SqlTools.SqlCore.csproj
@@ -12,6 +12,10 @@
true
SqlTools SqlCore Library
Provides core sql functionality for SQL server editors like Object explorer, Query Execution and Scripting
+ netstandard2.0
+ 8.0
+ Microsoft.SqlTools.SqlCore
+ 1.0.0
@@ -21,7 +25,7 @@
-
+
diff --git a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/INodeFilter.cs b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/INodeFilter.cs
index 8530eae6..c33463bb 100644
--- a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/INodeFilter.cs
+++ b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/INodeFilter.cs
@@ -13,7 +13,7 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
///
/// Has information for filtering a SMO object by properties
///
- public interface INodeFilter
+ public abstract class INodeFilter
{
///
/// Returns true if the filter can be apply to the given type and Server type
@@ -21,15 +21,15 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
/// Type of the querier
/// Server Type
///
- bool CanApplyFilter(Type type, ValidForFlag validForFlag);
+ public abstract bool CanApplyFilter(Type type, ValidForFlag validForFlag);
///
/// Creates a string from the filter property and values to be used in the Urn to query the SQL objects
/// Example of the output:[@ IsSystemObject = 0]
///
///
- string ToPropertyFilterString(Type type, ValidForFlag validForFlag);
-
+ public abstract string ToPropertyFilterString(Type type, ValidForFlag validForFlag);
+
///
/// Creates a fully paramaterized property filter string for the URN query for SQL objects.
/// Example of the output:[@ IsSystemObject = 0]
diff --git a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/NodeOrFilter.cs b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/NodeOrFilter.cs
index 5d2df215..2deb0702 100644
--- a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/NodeOrFilter.cs
+++ b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/NodeOrFilter.cs
@@ -24,7 +24,7 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
///
/// Type of the querier
/// Server Type
- public bool CanApplyFilter(Type type, ValidForFlag validForFlag) {
+ public override bool CanApplyFilter(Type type, ValidForFlag validForFlag) {
return this.FilterList.Exists(f => f.CanApplyFilter(type, validForFlag));
}
@@ -33,7 +33,7 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
/// Example of the output: ((@TableTemporalType = 1) or (@LedgerTableType = 1))
///
///
- public string ToPropertyFilterString(Type type, ValidForFlag validForFlag)
+ public override string ToPropertyFilterString(Type type, ValidForFlag validForFlag)
{
StringBuilder filter = new StringBuilder();
foreach (var nodeFilter in FilterList)
diff --git a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/NodePropertyFilter.cs b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/NodePropertyFilter.cs
index 222036f2..516ed11e 100644
--- a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/NodePropertyFilter.cs
+++ b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/NodePropertyFilter.cs
@@ -64,7 +64,7 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
/// Type of the querier
/// Server Type
///
- public bool CanApplyFilter(Type type, ValidForFlag validForFlag)
+ public override bool CanApplyFilter(Type type, ValidForFlag validForFlag)
{
bool canApplyFilter = false;
canApplyFilter = TypeToReverse == null || TypeToReverse == type;
@@ -78,7 +78,7 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
/// Example of the output: (@ IsSystemObject = 0)
///
///
- public string ToPropertyFilterString(Type type, ValidForFlag validForFlag)
+ public override string ToPropertyFilterString(Type type, ValidForFlag validForFlag)
{
// check first if the filter can be applied; if not just return empty string
if (!CanApplyFilter(type, validForFlag))
@@ -186,7 +186,10 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
var escapedString = StringUtils.EscapeStringSQuote(propertyValue.ToString());
if (this.FilterType == FilterType.STARTSWITH || this.FilterType == FilterType.ENDSWITH)
{
- escapedString = EscapeLikeURNRegex().Replace(escapedString, "[$0]");
+ // For filters that use the LIKE operator, we need to escape the following characters: %, _, [, ^
+ // we do this by wrapping them in square brackets eg: [%], [_], [[], [^]
+ Regex escapteSqlObjectChars = new Regex(@"%|_|\[|\^");
+ escapedString = escapteSqlObjectChars.Replace(escapedString, "[$0]");
if (this.FilterType == FilterType.STARTSWITH)
{
@@ -283,11 +286,6 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
return false;
}
}
-
- // For filters that use the LIKE operator, we need to escape the following characters: %, _, [, ^
- // we do this by wrapping them in square brackets eg: [%], [_], [[], [^]
- [GeneratedRegexAttribute(@"%|_|\[|\^")]
- public static partial Regex EscapeLikeURNRegex();
}
public enum FilterType
diff --git a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/TreeNode.cs b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/TreeNode.cs
index 2dbe8b90..779bf302 100644
--- a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/TreeNode.cs
+++ b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/Nodes/TreeNode.cs
@@ -323,7 +323,7 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.Nodes
}
}
}
- ApplicableNodeChildFactories = new Lazy>>(factories);
+ ApplicableNodeChildFactories = new Lazy>>(() => factories);
}
public IEnumerable GetApplicableChildFactories()
diff --git a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/SmoModel/NodePathGenerator.cs b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/SmoModel/NodePathGenerator.cs
index 9758b4b4..a0010896 100644
--- a/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/SmoModel/NodePathGenerator.cs
+++ b/src/Microsoft.SqlTools.SqlCore/ObjectExplorer/SmoModel/NodePathGenerator.cs
@@ -42,7 +42,9 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.SmoModel
{
NodeTypeDictionary.Add(containedType, new HashSet());
}
- NodeTypeDictionary.GetValueOrDefault(containedType).Add(node);
+ HashSet nodeSet;
+ NodeTypeDictionary.TryGetValue(containedType, out nodeSet);
+ nodeSet.Add(node);
}
}
var serverNode = TreeRoot.Nodes.FirstOrDefault(node => node.Name == "Server");
@@ -59,7 +61,8 @@ namespace Microsoft.SqlTools.SqlCore.ObjectExplorer.SmoModel
}
var returnSet = new HashSet();
- var matchingNodes = NodeTypeDictionary.GetValueOrDefault(typeName);
+ HashSet matchingNodes;
+ NodeTypeDictionary.TryGetValue(typeName, out matchingNodes);
if (matchingNodes == null)
{
return returnSet;
diff --git a/test/Microsoft.Kusto.ServiceLayer.UnitTests/Microsoft.Kusto.ServiceLayer.UnitTests.csproj b/test/Microsoft.Kusto.ServiceLayer.UnitTests/Microsoft.Kusto.ServiceLayer.UnitTests.csproj
index dcfa5551..cf3093e1 100644
--- a/test/Microsoft.Kusto.ServiceLayer.UnitTests/Microsoft.Kusto.ServiceLayer.UnitTests.csproj
+++ b/test/Microsoft.Kusto.ServiceLayer.UnitTests/Microsoft.Kusto.ServiceLayer.UnitTests.csproj
@@ -2,6 +2,7 @@
false
+ net7.0
diff --git a/test/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests.csproj b/test/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests.csproj
index 783deb63..4b89120f 100644
--- a/test/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests.csproj
+++ b/test/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests.csproj
@@ -6,6 +6,7 @@
Microsoft.SqlTools.ManagedBatchParser.IntegrationTests
true
$(DefineConstants);TRACE
+ net7.0
diff --git a/test/Microsoft.SqlTools.Migration.IntegrationTests/Microsoft.SqlTools.Migration.IntegrationTests.csproj b/test/Microsoft.SqlTools.Migration.IntegrationTests/Microsoft.SqlTools.Migration.IntegrationTests.csproj
index 5a7522b1..9a221f69 100644
--- a/test/Microsoft.SqlTools.Migration.IntegrationTests/Microsoft.SqlTools.Migration.IntegrationTests.csproj
+++ b/test/Microsoft.SqlTools.Migration.IntegrationTests/Microsoft.SqlTools.Migration.IntegrationTests.csproj
@@ -6,6 +6,7 @@
Microsoft.SqlTools.Migration.IntegrationTests
true
$(DefineConstants);TRACE
+ net7.0
diff --git a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/Microsoft.SqlTools.ServiceLayer.IntegrationTests.csproj b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/Microsoft.SqlTools.ServiceLayer.IntegrationTests.csproj
index 48484074..b58ea56d 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/Microsoft.SqlTools.ServiceLayer.IntegrationTests.csproj
+++ b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/Microsoft.SqlTools.ServiceLayer.IntegrationTests.csproj
@@ -6,6 +6,7 @@
Microsoft.SqlTools.ServiceLayer.IntegrationTests
true
$(DefineConstants);TRACE
+ net7.0
diff --git a/test/Microsoft.SqlTools.ServiceLayer.PerfTests/Microsoft.SqlTools.ServiceLayer.PerfTests.csproj b/test/Microsoft.SqlTools.ServiceLayer.PerfTests/Microsoft.SqlTools.ServiceLayer.PerfTests.csproj
index 601e1d26..5a2a50ac 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.PerfTests/Microsoft.SqlTools.ServiceLayer.PerfTests.csproj
+++ b/test/Microsoft.SqlTools.ServiceLayer.PerfTests/Microsoft.SqlTools.ServiceLayer.PerfTests.csproj
@@ -11,6 +11,7 @@
Microsoft.SqlTools.ServiceLayer.PerfTests.Program
true
true
+ net7.0
diff --git a/test/Microsoft.SqlTools.ServiceLayer.Test.Common/Microsoft.SqlTools.ServiceLayer.Test.Common.csproj b/test/Microsoft.SqlTools.ServiceLayer.Test.Common/Microsoft.SqlTools.ServiceLayer.Test.Common.csproj
index c5f955ce..ee29b221 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.Test.Common/Microsoft.SqlTools.ServiceLayer.Test.Common.csproj
+++ b/test/Microsoft.SqlTools.ServiceLayer.Test.Common/Microsoft.SqlTools.ServiceLayer.Test.Common.csproj
@@ -5,6 +5,7 @@
false
$(DefineConstants);NETCOREAPP1_0;TRACE
false
+ net7.0
diff --git a/test/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests.csproj b/test/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests.csproj
index c1217636..cb09ea67 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests.csproj
+++ b/test/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests.csproj
@@ -10,6 +10,7 @@
false
false
true
+ net7.0
diff --git a/test/Microsoft.SqlTools.ServiceLayer.TestDriver/Microsoft.SqlTools.ServiceLayer.TestDriver.csproj b/test/Microsoft.SqlTools.ServiceLayer.TestDriver/Microsoft.SqlTools.ServiceLayer.TestDriver.csproj
index 0eb22f7f..0e24e51d 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.TestDriver/Microsoft.SqlTools.ServiceLayer.TestDriver.csproj
+++ b/test/Microsoft.SqlTools.ServiceLayer.TestDriver/Microsoft.SqlTools.ServiceLayer.TestDriver.csproj
@@ -6,6 +6,7 @@
false
$(DefineConstants);NETCOREAPP1_0
false
+ net7.0
diff --git a/test/Microsoft.SqlTools.ServiceLayer.TestEnvConfig/Microsoft.SqlTools.ServiceLayer.TestEnvConfig.csproj b/test/Microsoft.SqlTools.ServiceLayer.TestEnvConfig/Microsoft.SqlTools.ServiceLayer.TestEnvConfig.csproj
index 0db2d487..de06a3b5 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.TestEnvConfig/Microsoft.SqlTools.ServiceLayer.TestEnvConfig.csproj
+++ b/test/Microsoft.SqlTools.ServiceLayer.TestEnvConfig/Microsoft.SqlTools.ServiceLayer.TestEnvConfig.csproj
@@ -7,6 +7,7 @@
false
false
false
+ net7.0
true
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Microsoft.SqlTools.ServiceLayer.UnitTests.csproj b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Microsoft.SqlTools.ServiceLayer.UnitTests.csproj
index 0179e522..2db56a47 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Microsoft.SqlTools.ServiceLayer.UnitTests.csproj
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Microsoft.SqlTools.ServiceLayer.UnitTests.csproj
@@ -8,6 +8,7 @@
$(NoWarn);CS8795
+ net7.0
diff --git a/test/Microsoft.SqlTools.Test.CompletionExtension/Microsoft.SqlTools.Test.CompletionExtension.csproj b/test/Microsoft.SqlTools.Test.CompletionExtension/Microsoft.SqlTools.Test.CompletionExtension.csproj
index a90212a6..01188c71 100644
--- a/test/Microsoft.SqlTools.Test.CompletionExtension/Microsoft.SqlTools.Test.CompletionExtension.csproj
+++ b/test/Microsoft.SqlTools.Test.CompletionExtension/Microsoft.SqlTools.Test.CompletionExtension.csproj
@@ -6,6 +6,7 @@
Microsoft.SqlTools.Test.CompletionExtension
true
$(DefineConstants);TRACE
+ net7.0
diff --git a/test/ScriptGenerator/ScriptGenerator.csproj b/test/ScriptGenerator/ScriptGenerator.csproj
index c9d292be..7b074e55 100644
--- a/test/ScriptGenerator/ScriptGenerator.csproj
+++ b/test/ScriptGenerator/ScriptGenerator.csproj
@@ -2,6 +2,7 @@
Exe
+ net7.0