Skip to content

Commit

Permalink
Adding service operations for external languages (#918)
Browse files Browse the repository at this point in the history
* Added service operations for external languages
  • Loading branch information
llali committed Feb 21, 2020
1 parent 927b0d7 commit 73fc70f
Show file tree
Hide file tree
Showing 17 changed files with 1,440 additions and 219 deletions.
6 changes: 3 additions & 3 deletions src/Microsoft.SqlTools.ServiceLayer/HostLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
using Microsoft.SqlTools.ServiceLayer.Hosting;
using Microsoft.SqlTools.ServiceLayer.LanguageServices;
using Microsoft.SqlTools.ServiceLayer.ServerConfigurations;
using Microsoft.SqlTools.ServiceLayer.LanguageExtensions;
using Microsoft.SqlTools.ServiceLayer.LanguageExtensibility;
using Microsoft.SqlTools.ServiceLayer.Metadata;
using Microsoft.SqlTools.ServiceLayer.Profiler;
using Microsoft.SqlTools.ServiceLayer.QueryExecution;
Expand Down Expand Up @@ -127,8 +127,8 @@ private static void InitializeRequestHandlersAndServices(ServiceHost serviceHost
ServerConfigService.Instance.InitializeService(serviceHost);
serviceProvider.RegisterSingleService(ServerConfigService.Instance);

LanguageExtensionsService.Instance.InitializeService(serviceHost);
serviceProvider.RegisterSingleService(LanguageExtensionsService.Instance);
ExternalLanguageService.Instance.InitializeService(serviceHost);
serviceProvider.RegisterSingleService(ExternalLanguageService.Instance);

InitializeHostedServices(serviceProvider, serviceHost);
serviceHost.ServiceProvider = serviceProvider;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//

using Microsoft.SqlTools.Hosting.Protocol.Contracts;

namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public class ExternalLanguageDeleteRequestParams
{
/// <summary>
/// Connection uri
/// </summary>
public string OwnerUri { get; set; }

/// <summary>
/// Language name
/// </summary>
public string LanguageName { get; set; }
}

/// <summary>
/// Response class for external language status
/// </summary>
public class ExternalLanguageDeleteResponseParams
{
}

/// <summary>
/// Request class for external language status
/// </summary>
public class ExternalLanguageDeleteRequest
{
public static readonly
RequestType<ExternalLanguageDeleteRequestParams, ExternalLanguageDeleteResponseParams> Type =
RequestType<ExternalLanguageDeleteRequestParams, ExternalLanguageDeleteResponseParams>.Create("languageExtension/delete");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//

using Microsoft.SqlTools.Hosting.Protocol.Contracts;
using System.Collections.Generic;

namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public class ExternalLanguageListRequestParams
{
/// <summary>
/// Connection uri
/// </summary>
public string OwnerUri { get; set; }
}

/// <summary>
/// Response class for external language list
/// </summary>
public class ExternalLanguageListResponseParams
{
/// <summary>
/// Language status
/// </summary>
public List<ExternalLanguage> Languages { get; set; }
}

/// <summary>
/// Request class for external language list
/// </summary>
public class ExternalLanguageListRequest
{
public static readonly
RequestType<ExternalLanguageListRequestParams, ExternalLanguageListResponseParams> Type =
RequestType<ExternalLanguageListRequestParams, ExternalLanguageListResponseParams>.Create("languageExtension/list");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//

using System;
using System.Collections.Generic;
using System.IO;

namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{

public enum ExternalLanguagePlatform
{
None,
Windows,
Linux
}

/// <summary>
/// Language metadata
/// </summary>
public class ExternalLanguage
{

/// <summary>
/// Language Name
/// </summary>
public string Name { get; set; }

/// <summary>
/// Language Owner
/// </summary>
public string Owner { get; set; }

public List<ExternalLanguageContent> Contents { get; set; }

/// <summary>
/// Created Date
/// </summary>
public string CreatedDate { get; set; }

}

public class ExternalLanguageContent
{
public bool IsLocalFile { get; set; }

/// <summary>
/// Path to extension file
/// </summary>
public string PathToExtension { get; set; }

/// <summary>
/// Extension file name
/// </summary>
public string ExtensionFileName { get; set; }

/// <summary>
/// Platform name
/// </summary>
public ExternalLanguagePlatform PlatformId
{
get
{
return string.IsNullOrWhiteSpace(Platform) ? ExternalLanguagePlatform.None : (ExternalLanguagePlatform)Enum.Parse(typeof(ExternalLanguagePlatform), Platform, true);
}
}

public string Platform { get; set; }

/// <summary>
/// Extension parameters
/// </summary>
public string Parameters { get; set; }

/// <summary>
/// Environment variables
/// </summary>
public string EnvironmentVariables { get; set; }

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

using Microsoft.SqlTools.Hosting.Protocol.Contracts;

namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensions.Contracts
namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public class ExternalLanguageStatusRequestParams
{
Expand Down Expand Up @@ -38,6 +38,6 @@ public class ExternalLanguageStatusRequest
{
public static readonly
RequestType<ExternalLanguageStatusRequestParams, ExternalLanguageStatusResponseParams> Type =
RequestType<ExternalLanguageStatusRequestParams, ExternalLanguageStatusResponseParams>.Create("languageextension/status");
RequestType<ExternalLanguageStatusRequestParams, ExternalLanguageStatusResponseParams>.Create("languageExtension/status");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//

using Microsoft.SqlTools.Hosting.Protocol.Contracts;

namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public class ExternalLanguageUpdateRequestParams
{
/// <summary>
/// Connection uri
/// </summary>
public string OwnerUri { get; set; }

/// <summary>
/// Language name
/// </summary>
public ExternalLanguage Language { get; set; }
}

/// <summary>
/// Response class for external language update
/// </summary>
public class ExternalLanguageUpdateResponseParams
{
}

/// <summary>
/// Request class for external language status
/// </summary>
public class ExternalLanguageUpdateRequest
{
public static readonly
RequestType<ExternalLanguageUpdateRequestParams, ExternalLanguageUpdateResponseParams> Type =
RequestType<ExternalLanguageUpdateRequestParams, ExternalLanguageUpdateResponseParams>.Create("languageExtension/update");
}
}
Loading

0 comments on commit 73fc70f

Please sign in to comment.