diff --git a/DurableTask.Sdk.sln b/Microsoft.DurableTask.sln similarity index 84% rename from DurableTask.Sdk.sln rename to Microsoft.DurableTask.sln index 9af9be661..cd2f66c7f 100644 --- a/DurableTask.Sdk.sln +++ b/Microsoft.DurableTask.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31622.56 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DurableTask", "src\DurableTask\DurableTask.csproj", "{666FDFBE-771E-40BD-8CC7-411D040224B1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DurableTask", "src\DurableTask\Microsoft.DurableTask.csproj", "{666FDFBE-771E-40BD-8CC7-411D040224B1}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "misc", "misc", "{6E392DF7-D89C-409F-AAC0-D90D026451CF}" ProjectSection(SolutionItems) = preProject @@ -19,17 +19,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "misc", "misc", "{6E392DF7-D EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApp", "samples\ConsoleApp\ConsoleApp.csproj", "{F9812EB9-A3CD-4E80-8CEA-243AE2AF925F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DurableTask.Sdk.Tests", "test\DurableTask.Sdk.Tests\DurableTask.Sdk.Tests.csproj", "{B56EC428-222E-476E-BE3D-1ADE03B2BDF3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DurableTask.Tests", "test\DurableTask.Sdk.Tests\Microsoft.DurableTask.Tests.csproj", "{B56EC428-222E-476E-BE3D-1ADE03B2BDF3}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{7EA86372-16CC-4CBD-B8EF-E0B6BCA3A3E6}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebAPI", "samples\WebAPI\WebAPI.csproj", "{BF343A6F-47D8-4514-AEC7-B9C3DA693A83}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DurableTask.Generators", "src\DurableTask.Generators\DurableTask.Generators.csproj", "{A330B024-7530-4556-B334-B0744C0EBB6D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DurableTask.Generators", "src\DurableTask.Generators\Microsoft.DurableTask.Generators.csproj", "{A330B024-7530-4556-B334-B0744C0EBB6D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{44960EF6-0203-4799-954A-CBAF1E3962C9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DurableTask.Generators.Tests", "test\DurableTask.Generators.Tests\DurableTask.Generators.Tests.csproj", "{F4FA624E-4938-44AA-87A5-5C1E1F387F90}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DurableTask.Generators.Tests", "test\DurableTask.Generators.Tests\Microsoft.DurableTask.Generators.Tests.csproj", "{F4FA624E-4938-44AA-87A5-5C1E1F387F90}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{49BB7008-CA04-4631-91DB-63F7F94DD424}" EndProject diff --git a/samples/ConsoleApp/ConsoleApp.csproj b/samples/ConsoleApp/ConsoleApp.csproj index c2dd91c94..8284c9bb0 100644 --- a/samples/ConsoleApp/ConsoleApp.csproj +++ b/samples/ConsoleApp/ConsoleApp.csproj @@ -7,13 +7,13 @@ - + - + diff --git a/samples/ConsoleApp/Program.cs b/samples/ConsoleApp/Program.cs index 5400d3243..f4f7fc64b 100644 --- a/samples/ConsoleApp/Program.cs +++ b/samples/ConsoleApp/Program.cs @@ -4,8 +4,8 @@ using System; using System.Collections.Generic; using System.Threading; -using DurableTask; -using DurableTask.Grpc; +using Microsoft.DurableTask; +using Microsoft.DurableTask.Grpc; using Microsoft.Extensions.Logging; // See https://aka.ms/new-console-template for more information diff --git a/samples/WebAPI/Controllers/OrderProcessingController.cs b/samples/WebAPI/Controllers/OrderProcessingController.cs index 1edeba2bd..d8b4fa090 100644 --- a/samples/WebAPI/Controllers/OrderProcessingController.cs +++ b/samples/WebAPI/Controllers/OrderProcessingController.cs @@ -1,8 +1,8 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using DurableTask; using Microsoft.AspNetCore.Mvc; +using Microsoft.DurableTask; using WebAPI.Models; namespace WebAPI.Controllers; diff --git a/samples/WebAPI/Orchestrations/ChargeCustomerActivity.cs b/samples/WebAPI/Orchestrations/ChargeCustomerActivity.cs index c8c468737..1234ce57f 100644 --- a/samples/WebAPI/Orchestrations/ChargeCustomerActivity.cs +++ b/samples/WebAPI/Orchestrations/ChargeCustomerActivity.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using DurableTask; +using Microsoft.DurableTask; using WebAPI.Models; namespace WebAPI.Orchestrations; diff --git a/samples/WebAPI/Orchestrations/CheckInventoryActivity.cs b/samples/WebAPI/Orchestrations/CheckInventoryActivity.cs index 9ac950921..134998b22 100644 --- a/samples/WebAPI/Orchestrations/CheckInventoryActivity.cs +++ b/samples/WebAPI/Orchestrations/CheckInventoryActivity.cs @@ -1,11 +1,11 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +using Microsoft.DurableTask; +using WebAPI.Models; + namespace WebAPI.Orchestrations { - using DurableTask; - using WebAPI.Models; - [DurableTask("CheckInventory")] public class CheckInventoryActivity : TaskActivityBase { diff --git a/samples/WebAPI/Orchestrations/CreateShipmentActivity.cs b/samples/WebAPI/Orchestrations/CreateShipmentActivity.cs index 32a9e2c89..ad2f64c97 100644 --- a/samples/WebAPI/Orchestrations/CreateShipmentActivity.cs +++ b/samples/WebAPI/Orchestrations/CreateShipmentActivity.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using DurableTask; +using Microsoft.DurableTask; using WebAPI.Models; namespace WebAPI.Orchestrations; diff --git a/samples/WebAPI/Orchestrations/ProcessOrderOrchestrator.cs b/samples/WebAPI/Orchestrations/ProcessOrderOrchestrator.cs index 6f882defb..fcfc95221 100644 --- a/samples/WebAPI/Orchestrations/ProcessOrderOrchestrator.cs +++ b/samples/WebAPI/Orchestrations/ProcessOrderOrchestrator.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using DurableTask; +using Microsoft.DurableTask; using WebAPI.Models; namespace WebAPI.Orchestrations; diff --git a/samples/WebAPI/Program.cs b/samples/WebAPI/Program.cs index 67b68e4a7..c48dc7858 100644 --- a/samples/WebAPI/Program.cs +++ b/samples/WebAPI/Program.cs @@ -2,7 +2,7 @@ // Licensed under the MIT License. using System.Text.Json.Serialization; -using DurableTask; +using Microsoft.DurableTask; var builder = WebApplication.CreateBuilder(args); diff --git a/samples/WebAPI/WebAPI.csproj b/samples/WebAPI/WebAPI.csproj index 2e7bd49af..3b0c5c357 100644 --- a/samples/WebAPI/WebAPI.csproj +++ b/samples/WebAPI/WebAPI.csproj @@ -10,14 +10,14 @@ - + - + diff --git a/src/DurableTask.Generators/AzureFunctions/DurableFunction.cs b/src/DurableTask.Generators/AzureFunctions/DurableFunction.cs index b5ed3355b..48ba46dfb 100644 --- a/src/DurableTask.Generators/AzureFunctions/DurableFunction.cs +++ b/src/DurableTask.Generators/AzureFunctions/DurableFunction.cs @@ -5,7 +5,7 @@ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; -namespace DurableTask.Generators.AzureFunctions +namespace Microsoft.DurableTask.Generators.AzureFunctions { public enum DurableFunctionKind { @@ -57,7 +57,7 @@ public static bool TryParse(SemanticModel model, MethodDeclarationSyntax method, return false; } - if (!SyntaxNodeUtility.TryGetQualifiedTypeName(model, method, out string fullTypeName)) + if (!SyntaxNodeUtility.TryGetQualifiedTypeName(model, method, out string? fullTypeName)) { return false; } @@ -66,14 +66,14 @@ public static bool TryParse(SemanticModel model, MethodDeclarationSyntax method, usedTypes.Add(returnType); usedTypes.Add(parameter.Type); - if (!SyntaxNodeUtility.TryGetRequiredNamespaces(model, usedTypes, out HashSet requiredNamespaces)) + if (!SyntaxNodeUtility.TryGetRequiredNamespaces(model, usedTypes, out HashSet? requiredNamespaces)) { return false; } - requiredNamespaces.UnionWith(GetRequiredGlobalNamespaces()); + requiredNamespaces!.UnionWith(GetRequiredGlobalNamespaces()); - function = new DurableFunction(fullTypeName, name, kind, parameter, returnType, requiredNamespaces); + function = new DurableFunction(fullTypeName!, name, kind, parameter, returnType, requiredNamespaces); return true; } diff --git a/src/DurableTask.Generators/AzureFunctions/SyntaxNodeUtility.cs b/src/DurableTask.Generators/AzureFunctions/SyntaxNodeUtility.cs index cd80035d6..518a8e3bf 100644 --- a/src/DurableTask.Generators/AzureFunctions/SyntaxNodeUtility.cs +++ b/src/DurableTask.Generators/AzureFunctions/SyntaxNodeUtility.cs @@ -7,7 +7,7 @@ using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; -namespace DurableTask.Generators.AzureFunctions +namespace Microsoft.DurableTask.Generators.AzureFunctions { public static class SyntaxNodeUtility { @@ -61,7 +61,7 @@ public static bool TryGetFunctionKind(MethodDeclarationSyntax method, out Durabl return false; } - public static bool TryGetRequiredNamespaces(SemanticModel model, List types, out HashSet requiredNamespaces) + public static bool TryGetRequiredNamespaces(SemanticModel model, List types, out HashSet? requiredNamespaces) { requiredNamespaces = new HashSet(); @@ -74,15 +74,19 @@ public static bool TryGetRequiredNamespaces(SemanticModel model, List parameters) + public static bool TryGetQualifiedTypeName(SemanticModel model, MethodDeclarationSyntax method, out string? fullTypeName) { - parameters = null; - var invocation = FindGetInputInvocation(method); - - List parameterNames; - List parameterTypes; - - if (IsAssignmentExpression(invocation)) - { - // var (a, b) = context.GetInput<(X, Y)>(); - var assignment = GetAssignment(invocation); - - if (!TryGetParameterNames(assignment, out parameterNames)) - return false; - - if (!TryGetParameterTypes(assignment, out parameterTypes)) - return false; - } - else if (IsLocalDeclarationExpression(invocation)) - { - // var a = context.GetInput(); - var localDeclaration = GetLocalDeclaration(invocation); - - if (!TryGetParameterNames(localDeclaration, out parameterNames)) - return false; - - if (!TryGetParameterTypes(localDeclaration, out parameterTypes)) - return false; - } - else - { - // It is possible for the function to require no input parameters - parameterNames = new List(); - parameterTypes = new List(); - } - - if (parameterNames?.Count != parameterTypes?.Count) + var symbol = model.GetEnclosingSymbol(method.SpanStart); + if (symbol == null) { - parameters = null; + fullTypeName = null; return false; } - parameters = parameterTypes.Select((t, i) => new TypedParameter(t, parameterNames[i])).ToList(); - return true; - } - - public static bool TryGetQualifiedTypeName(SemanticModel model, MethodDeclarationSyntax method, out string fullTypeName) - { - var symbol = model.GetEnclosingSymbol(method.SpanStart); fullTypeName = $@"{symbol.ToDisplayString()}.{method.Identifier}"; return true; } @@ -186,140 +149,5 @@ static bool TryGetAttributeByName(MethodDeclarationSyntax method, string attribu attribute = method.AttributeLists.SelectMany(a => a.Attributes).FirstOrDefault(a => a.Name.NormalizeWhitespace().ToFullString().Equals(attributeName)); return attribute != null; } - - private static InvocationExpressionSyntax FindGetInputInvocation(MethodDeclarationSyntax method) - { - var invocations = method.DescendantNodes().OfType(); - - return invocations.FirstOrDefault(inv => (inv.Expression is MemberAccessExpressionSyntax memberAccess) && - (memberAccess.Name is GenericNameSyntax name) && - (name.Identifier.Text == "GetInput")); - } - - private static bool TryGetParameterNames(AssignmentExpressionSyntax assignment, out List parameterNames) - { - if (assignment.Left is DeclarationExpressionSyntax declaration) - { - if (declaration.Designation is ParenthesizedVariableDesignationSyntax designation) - { - parameterNames = designation.Variables.Select(v => v.ToString()).ToList(); - return true; - } - } - - parameterNames = null; - return false; - } - - private static bool TryGetParameterNames(LocalDeclarationStatementSyntax local, out List parameterNames) - { - if (local.Declaration.Variables.Count == 1) - { - parameterNames = new List() { local.Declaration.Variables.First().Identifier.ToFullString().Trim() }; - return true; - } - - parameterNames = null; - return false; - } - - private static bool TryGetParameterTypes(AssignmentExpressionSyntax assignment, out List parameterTypes) - { - if (assignment.Right is InvocationExpressionSyntax invocation) - { - return TryGetParameterTypes(invocation, out parameterTypes); - } - - parameterTypes = null; - return false; - } - - private static bool TryGetParameterTypes(LocalDeclarationStatementSyntax local, out List parameterTypes) - { - var variables = local.Declaration.Variables; - - if (variables.Count == 1) - { - if (variables.First().Initializer.Value is InvocationExpressionSyntax invocation) - { - TryGetParameterTypes(invocation, out parameterTypes); - return true; - } - } - - parameterTypes = null; - return false; - } - - private static bool IsAssignmentExpression(InvocationExpressionSyntax invocation) - { - return invocation?.Parent is AssignmentExpressionSyntax; - } - - private static AssignmentExpressionSyntax GetAssignment(InvocationExpressionSyntax invocation) - { - return invocation.Parent as AssignmentExpressionSyntax; - } - - private static bool IsLocalDeclarationExpression(InvocationExpressionSyntax invocation) - { - if (!(invocation?.Parent is EqualsValueClauseSyntax equals)) - return false; - - if (!(equals.Parent is VariableDeclaratorSyntax variableDeclarator)) - return false; - - if (!(variableDeclarator.Parent is VariableDeclarationSyntax variableDeclaration)) - return false; - - return variableDeclaration.Parent is LocalDeclarationStatementSyntax; - } - - private static LocalDeclarationStatementSyntax GetLocalDeclaration(InvocationExpressionSyntax invocation) - { - if (!(invocation.Parent is EqualsValueClauseSyntax equals)) - return null; - - if (!(equals.Parent is VariableDeclaratorSyntax variableDeclarator)) - return null; - - if (!(variableDeclarator.Parent is VariableDeclarationSyntax variableDeclaration)) - return null; - - return variableDeclaration.Parent as LocalDeclarationStatementSyntax; - } - - private static bool TryGetParameterTypes(InvocationExpressionSyntax invocation, out List parameterTypes) - { - parameterTypes = new List(); - - if (!(invocation.Expression is MemberAccessExpressionSyntax expression)) - return false; - - if (!(expression.Name is GenericNameSyntax name)) - return false; - - var argumentList = name.TypeArgumentList; - - var arguments = argumentList.Arguments; - - if (arguments.Count != 1) - return false; - - var argument = arguments.First(); - - if (argument is IdentifierNameSyntax identifier) // context.GetInput() - parameterTypes.Add(identifier); - else if (argument is PredefinedTypeSyntax predefined) // context.GetInput() - parameterTypes.Add(predefined); - else if (argument is GenericNameSyntax generic) // context.GetInput>() - parameterTypes.Add(generic); - else if (argument is TupleTypeSyntax tupleArgument) // context.GetInput<(X,Y,Z)>() - parameterTypes.AddRange(tupleArgument.Elements.Select(e => e.Type)); - else - return false; - - return true; - } } } diff --git a/src/DurableTask.Generators/AzureFunctions/TypedParameter.cs b/src/DurableTask.Generators/AzureFunctions/TypedParameter.cs index 45d69f3b5..131ce39b4 100644 --- a/src/DurableTask.Generators/AzureFunctions/TypedParameter.cs +++ b/src/DurableTask.Generators/AzureFunctions/TypedParameter.cs @@ -3,7 +3,7 @@ using Microsoft.CodeAnalysis.CSharp.Syntax; -namespace DurableTask.Generators.AzureFunctions +namespace Microsoft.DurableTask.Generators.AzureFunctions { public class TypedParameter { diff --git a/src/DurableTask.Generators/DurableTaskSourceGenerator.cs b/src/DurableTask.Generators/DurableTaskSourceGenerator.cs index b4157e9fa..bcb1d85be 100644 --- a/src/DurableTask.Generators/DurableTaskSourceGenerator.cs +++ b/src/DurableTask.Generators/DurableTaskSourceGenerator.cs @@ -6,13 +6,13 @@ using System.Diagnostics; using System.Linq; using System.Text; -using DurableTask.Generators.AzureFunctions; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Text; +using Microsoft.DurableTask.Generators.AzureFunctions; -namespace DurableTask.Generators +namespace Microsoft.DurableTask.Generators { [Generator] public class DurableTaskSourceGenerator : ISourceGenerator @@ -82,7 +82,7 @@ public void Execute(GeneratorExecutionContext context) sourceBuilder.Append(@" -namespace DurableTask +namespace Microsoft.DurableTask { public static class GeneratedDurableTaskExtensions {"); @@ -308,7 +308,7 @@ public void OnVisitSyntaxNode(GeneratorSyntaxContext context) } ITypeSymbol? attributeType = context.SemanticModel.GetTypeInfo(attribute.Name).Type; - if (attributeType?.ToString() != "DurableTask.DurableTaskAttribute") + if (attributeType?.ToString() != "Microsoft.DurableTask.DurableTaskAttribute") { return; } @@ -340,7 +340,7 @@ public void OnVisitSyntaxNode(GeneratorSyntaxContext context) INamedTypeSymbol? baseType = classType.BaseType; while (baseType != null) { - if (baseType.ContainingAssembly.Name == "DurableTask") + if (baseType.ContainingAssembly.Name == "Microsoft.DurableTask") { if (baseType.Name == "TaskActivityBase") { diff --git a/src/DurableTask.Generators/Helpers.cs b/src/DurableTask.Generators/Helpers.cs deleted file mode 100644 index d914f73b6..000000000 --- a/src/DurableTask.Generators/Helpers.cs +++ /dev/null @@ -1,296 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Linq; -using DurableTask.Generators.AzureFunctions; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace DurableTask.Generators -{ - static class Helpers - { - // Specific to Azure Functions - public static bool TryGetFunctionName(SemanticModel model, MethodDeclarationSyntax method, out string? functionName) - { - if (TryGetAttributeByName(method, "FunctionName", out AttributeSyntax functionNameAttribute)) - { - if (functionNameAttribute?.ArgumentList?.Arguments.Count == 1) - { - ExpressionSyntax expression = functionNameAttribute.ArgumentList.Arguments.First().Expression; - functionName = model.GetConstantValue(expression).Value?.ToString(); - return functionName != null; - } - } - - functionName = null; - return false; - } - - public static bool TryGetReturnType(MethodDeclarationSyntax method, out TypeSyntax returnTypeSyntax) - { - returnTypeSyntax = method.ReturnType; - return true; - } - - public static bool TryGetFunctionKind(MethodDeclarationSyntax method, out DurableFunctionKind kind) - { - var parameters = method.ParameterList.Parameters; - - foreach (var parameterSyntax in parameters) - { - var parameterAttributes = parameterSyntax.AttributeLists.SelectMany(a => a.Attributes); - - foreach (var attribute in parameterAttributes) - { - if (attribute.ToString().Equals("OrchestrationTrigger")) - { - kind = DurableFunctionKind.Orchestration; - return true; - } - - if (attribute.ToString().Equals("ActivityTrigger")) - { - kind = DurableFunctionKind.Activity; - return true; - } - } - } - - kind = DurableFunctionKind.Unknonwn; - return false; - } - - public static bool TryGetRequiredNamespaces(SemanticModel model, List types, out HashSet requiredNamespaces) - { - requiredNamespaces = new HashSet(); - - var remaining = new Queue(types); - - while (remaining.Any()) - { - var toProcess = remaining.Dequeue(); - - if (toProcess is PredefinedTypeSyntax) - continue; - - var typeInfo = model.GetTypeInfo(toProcess); - - if (!(toProcess is PredefinedTypeSyntax) && typeInfo.Type.ContainingNamespace.IsGlobalNamespace) - { - requiredNamespaces = null; - return false; - } - - requiredNamespaces.Add(typeInfo.Type.ContainingNamespace.ToDisplayString()); - - if (toProcess is GenericNameSyntax genericType) - { - foreach (var typeArgument in genericType.TypeArgumentList.Arguments) - { - remaining.Enqueue(typeArgument); - } - } - } - - return true; - } - - public static bool TryGetParameters(SemanticModel model, MethodDeclarationSyntax method, out List parameters) - { - parameters = null; - var invocation = FindGetInputInvocation(method); - - List parameterNames; - List parameterTypes; - - if (IsAssignmentExpression(invocation)) - { - // var (a, b) = context.GetInput<(X, Y)>(); - var assignment = GetAssignment(invocation); - - if (!TryGetParameterNames(assignment, out parameterNames)) - return false; - - if (!TryGetParameterTypes(assignment, out parameterTypes)) - return false; - } - else if (IsLocalDeclarationExpression(invocation)) - { - // var a = context.GetInput(); - var localDeclaration = GetLocalDeclaration(invocation); - - if (!TryGetParameterNames(localDeclaration, out parameterNames)) - return false; - - if (!TryGetParameterTypes(localDeclaration, out parameterTypes)) - return false; - } - else - { - // It is possible for the function to require no input parameters - parameterNames = new List(); - parameterTypes = new List(); - } - - if (parameterNames?.Count != parameterTypes?.Count) - { - parameters = null; - return false; - } - - parameters = parameterTypes.Select((t, i) => new TypedParameter(t, parameterNames[i])).ToList(); - return true; - } - - public static bool TryGetQualifiedTypeName(SemanticModel model, MethodDeclarationSyntax method, out string fullTypeName) - { - var symbol = model.GetEnclosingSymbol(method.SpanStart); - fullTypeName = $@"{symbol.ToDisplayString()}.{method.Identifier}"; - return true; - } - - private static bool TryGetAttributeByName(MethodDeclarationSyntax method, string attributeName, out AttributeSyntax attribute) - { - attribute = method.AttributeLists.SelectMany(a => a.Attributes).FirstOrDefault(a => a.Name.NormalizeWhitespace().ToFullString().Equals(attributeName)); - return (attribute != null); - } - - private static InvocationExpressionSyntax FindGetInputInvocation(MethodDeclarationSyntax method) - { - var invocations = method.DescendantNodes().OfType(); - - return invocations.FirstOrDefault(inv => (inv.Expression is MemberAccessExpressionSyntax memberAccess) && - (memberAccess.Name is GenericNameSyntax name) && - (name.Identifier.Text == "GetInput")); - } - - private static bool TryGetParameterNames(AssignmentExpressionSyntax assignment, out List parameterNames) - { - if (assignment.Left is DeclarationExpressionSyntax declaration) - { - if (declaration.Designation is ParenthesizedVariableDesignationSyntax designation) - { - parameterNames = designation.Variables.Select(v => v.ToString()).ToList(); - return true; - } - } - - parameterNames = null; - return false; - } - - private static bool TryGetParameterNames(LocalDeclarationStatementSyntax local, out List parameterNames) - { - if (local.Declaration.Variables.Count == 1) - { - parameterNames = new List() { local.Declaration.Variables.First().Identifier.ToFullString().Trim() }; - return true; - } - - parameterNames = null; - return false; - } - - private static bool TryGetParameterTypes(AssignmentExpressionSyntax assignment, out List parameterTypes) - { - if (assignment.Right is InvocationExpressionSyntax invocation) - { - return TryGetParameterTypes(invocation, out parameterTypes); - } - - parameterTypes = null; - return false; - } - - private static bool TryGetParameterTypes(LocalDeclarationStatementSyntax local, out List parameterTypes) - { - var variables = local.Declaration.Variables; - - if (variables.Count == 1) - { - if (variables.First().Initializer.Value is InvocationExpressionSyntax invocation) - { - TryGetParameterTypes(invocation, out parameterTypes); - return true; - } - } - - parameterTypes = null; - return false; - } - - private static bool IsAssignmentExpression(InvocationExpressionSyntax invocation) - { - return invocation?.Parent is AssignmentExpressionSyntax; - } - - private static AssignmentExpressionSyntax GetAssignment(InvocationExpressionSyntax invocation) - { - return invocation.Parent as AssignmentExpressionSyntax; - } - - private static bool IsLocalDeclarationExpression(InvocationExpressionSyntax invocation) - { - if (!(invocation?.Parent is EqualsValueClauseSyntax equals)) - return false; - - if (!(equals.Parent is VariableDeclaratorSyntax variableDeclarator)) - return false; - - if (!(variableDeclarator.Parent is VariableDeclarationSyntax variableDeclaration)) - return false; - - return variableDeclaration.Parent is LocalDeclarationStatementSyntax; - } - - private static LocalDeclarationStatementSyntax GetLocalDeclaration(InvocationExpressionSyntax invocation) - { - if (!(invocation.Parent is EqualsValueClauseSyntax equals)) - return null; - - if (!(equals.Parent is VariableDeclaratorSyntax variableDeclarator)) - return null; - - if (!(variableDeclarator.Parent is VariableDeclarationSyntax variableDeclaration)) - return null; - - return variableDeclaration.Parent as LocalDeclarationStatementSyntax; - } - - private static bool TryGetParameterTypes(InvocationExpressionSyntax invocation, out List parameterTypes) - { - parameterTypes = new List(); - - if (!(invocation.Expression is MemberAccessExpressionSyntax expression)) - return false; - - if (!(expression.Name is GenericNameSyntax name)) - return false; - - var argumentList = name.TypeArgumentList; - - var arguments = argumentList.Arguments; - - if (arguments.Count != 1) - return false; - - var argument = arguments.First(); - - if (argument is IdentifierNameSyntax identifier) // context.GetInput() - parameterTypes.Add(identifier); - else if (argument is PredefinedTypeSyntax predefined) // context.GetInput() - parameterTypes.Add(predefined); - else if (argument is GenericNameSyntax generic) // context.GetInput>() - parameterTypes.Add(generic); - else if (argument is TupleTypeSyntax tupleArgument) // context.GetInput<(X,Y,Z)>() - parameterTypes.AddRange(tupleArgument.Elements.Select(e => e.Type)); - else - return false; - - return true; - } - - } -} diff --git a/src/DurableTask.Generators/DurableTask.Generators.csproj b/src/DurableTask.Generators/Microsoft.DurableTask.Generators.csproj similarity index 97% rename from src/DurableTask.Generators/DurableTask.Generators.csproj rename to src/DurableTask.Generators/Microsoft.DurableTask.Generators.csproj index 8836b34e7..4be963208 100644 --- a/src/DurableTask.Generators/DurableTask.Generators.csproj +++ b/src/DurableTask.Generators/Microsoft.DurableTask.Generators.csproj @@ -24,7 +24,7 @@ - 0.2.0 + 0.3.0 alpha diff --git a/src/DurableTask/Converters/JsonDataConverter.cs b/src/DurableTask/Converters/JsonDataConverter.cs index 0dd3fec9c..b422ced6c 100644 --- a/src/DurableTask/Converters/JsonDataConverter.cs +++ b/src/DurableTask/Converters/JsonDataConverter.cs @@ -4,7 +4,7 @@ using System; using System.Text.Json; -namespace DurableTask.Converters; +namespace Microsoft.DurableTask.Converters; /// /// An implementation of that uses System.Text.Json APIs for data serialization. diff --git a/src/DurableTask/DurableTaskAttribute.cs b/src/DurableTask/DurableTaskAttribute.cs index 6fbdce852..d6069ed7e 100644 --- a/src/DurableTask/DurableTaskAttribute.cs +++ b/src/DurableTask/DurableTaskAttribute.cs @@ -3,7 +3,7 @@ using System; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Indicates that the attributed class represents a durable task. diff --git a/src/DurableTask/DurableTaskClient.cs b/src/DurableTask/DurableTaskClient.cs index 0dcb91436..a6d9006b3 100644 --- a/src/DurableTask/DurableTaskClient.cs +++ b/src/DurableTask/DurableTaskClient.cs @@ -5,7 +5,7 @@ using System.Threading; using System.Threading.Tasks; -namespace DurableTask; +namespace Microsoft.DurableTask; // TODO: Class documentation public abstract class DurableTaskClient : IAsyncDisposable diff --git a/src/DurableTask/DurableTaskExtensions.cs b/src/DurableTask/DurableTaskExtensions.cs index 79813cbe2..de61168b1 100644 --- a/src/DurableTask/DurableTaskExtensions.cs +++ b/src/DurableTask/DurableTaskExtensions.cs @@ -2,10 +2,10 @@ // Licensed under the MIT License. using System; -using DurableTask.Grpc; +using Microsoft.DurableTask.Grpc; using Microsoft.Extensions.DependencyInjection; -namespace DurableTask; +namespace Microsoft.DurableTask; public static class DurableTaskExtensions { diff --git a/src/DurableTask/FuncTaskOrchestrator.cs b/src/DurableTask/FuncTaskOrchestrator.cs index 0b2375004..03b5adc67 100644 --- a/src/DurableTask/FuncTaskOrchestrator.cs +++ b/src/DurableTask/FuncTaskOrchestrator.cs @@ -4,7 +4,7 @@ using System; using System.Threading.Tasks; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Implementation of that uses diff --git a/src/DurableTask/Grpc/AsyncLock.cs b/src/DurableTask/Grpc/AsyncLock.cs index d16de0a1c..8a37702b8 100644 --- a/src/DurableTask/Grpc/AsyncLock.cs +++ b/src/DurableTask/Grpc/AsyncLock.cs @@ -5,7 +5,7 @@ using System.Threading; using System.Threading.Tasks; -namespace DurableTask.Grpc; +namespace Microsoft.DurableTask.Grpc; sealed class AsyncLock : IDisposable { diff --git a/src/DurableTask/Grpc/DurableTaskGrpcClient.cs b/src/DurableTask/Grpc/DurableTaskGrpcClient.cs index 5cde567fa..b90cec2a1 100644 --- a/src/DurableTask/Grpc/DurableTaskGrpcClient.cs +++ b/src/DurableTask/Grpc/DurableTaskGrpcClient.cs @@ -15,7 +15,7 @@ using static DurableTask.Protobuf.TaskHubSidecarService; using P = DurableTask.Protobuf; -namespace DurableTask.Grpc; +namespace Microsoft.DurableTask.Grpc; public class DurableTaskGrpcClient : DurableTaskClient { diff --git a/src/DurableTask/Grpc/DurableTaskGrpcWorker.cs b/src/DurableTask/Grpc/DurableTaskGrpcWorker.cs index c2029d252..9ff14277a 100644 --- a/src/DurableTask/Grpc/DurableTaskGrpcWorker.cs +++ b/src/DurableTask/Grpc/DurableTaskGrpcWorker.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using System; -using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; @@ -10,7 +9,6 @@ using System.Threading; using System.Threading.Tasks; using DurableTask.Core; -using DurableTask.Core.Command; using DurableTask.Core.History; using Grpc.Core; using Grpc.Net.Client; @@ -22,7 +20,7 @@ using static DurableTask.Protobuf.TaskHubSidecarService; using P = DurableTask.Protobuf; -namespace DurableTask.Grpc; +namespace Microsoft.DurableTask.Grpc; // TODO: Rather than making this a top-level class, users should use TaskHubWorker.CreateBuilder().UseGrpc(address) or something similar to opt-into gRPC. /// diff --git a/src/DurableTask/Grpc/ProtoUtils.cs b/src/DurableTask/Grpc/ProtoUtils.cs index b17075e8d..94b97686e 100644 --- a/src/DurableTask/Grpc/ProtoUtils.cs +++ b/src/DurableTask/Grpc/ProtoUtils.cs @@ -14,7 +14,7 @@ using Google.Protobuf.WellKnownTypes; using P = DurableTask.Protobuf; -namespace DurableTask.Grpc; +namespace Microsoft.DurableTask.Grpc; static class ProtoUtils { diff --git a/src/DurableTask/IDataConverter.cs b/src/DurableTask/IDataConverter.cs index 402d612fc..9dd20f34a 100644 --- a/src/DurableTask/IDataConverter.cs +++ b/src/DurableTask/IDataConverter.cs @@ -4,7 +4,7 @@ using System; using System.Diagnostics.CodeAnalysis; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Interface for serializing and deserializing data that gets passed to and from orchestrators and activities. diff --git a/src/DurableTask/IDurableTaskRegistry.cs b/src/DurableTask/IDurableTaskRegistry.cs index c64383948..72b867b35 100644 --- a/src/DurableTask/IDurableTaskRegistry.cs +++ b/src/DurableTask/IDurableTaskRegistry.cs @@ -4,7 +4,7 @@ using System; using System.Threading.Tasks; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Defines methods for registering orchestrators and activities with a host. diff --git a/src/DurableTask/Logs.cs b/src/DurableTask/Logs.cs index 997771279..c696f3f9f 100644 --- a/src/DurableTask/Logs.cs +++ b/src/DurableTask/Logs.cs @@ -4,7 +4,7 @@ using System; using Microsoft.Extensions.Logging; -namespace DurableTask +namespace Microsoft.DurableTask { // NOTE: Trying to make logs consistent with https://github.com/Azure/durabletask/blob/main/src/DurableTask.Core/Logging/LogEvents.cs. static partial class Logs diff --git a/src/DurableTask/DurableTask.csproj b/src/DurableTask/Microsoft.DurableTask.csproj similarity index 91% rename from src/DurableTask/DurableTask.csproj rename to src/DurableTask/Microsoft.DurableTask.csproj index 7dd237a4a..22e0f396b 100644 --- a/src/DurableTask/DurableTask.csproj +++ b/src/DurableTask/Microsoft.DurableTask.csproj @@ -23,7 +23,7 @@ - 0.2.0 + 0.3.0 alpha @@ -36,13 +36,13 @@ - + - + diff --git a/src/DurableTask/OrchestrationMetadata.cs b/src/DurableTask/OrchestrationMetadata.cs index 1cbd4fca9..7bf8305ef 100644 --- a/src/DurableTask/OrchestrationMetadata.cs +++ b/src/DurableTask/OrchestrationMetadata.cs @@ -3,10 +3,10 @@ using System; using System.Text; -using DurableTask.Grpc; +using Microsoft.DurableTask.Grpc; using P = DurableTask.Protobuf; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Represents a snapshot of an orchestration instance's current state. diff --git a/src/DurableTask/OrchestrationRunner.cs b/src/DurableTask/OrchestrationRunner.cs index b5b5220a1..596148930 100644 --- a/src/DurableTask/OrchestrationRunner.cs +++ b/src/DurableTask/OrchestrationRunner.cs @@ -7,15 +7,14 @@ using System.Threading.Tasks; using DurableTask.Core; using DurableTask.Core.History; -using DurableTask.Grpc; +using Microsoft.DurableTask.Grpc; using Google.Protobuf; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using P = DurableTask.Protobuf; -namespace DurableTask; - +namespace Microsoft.DurableTask; public static class OrchestrationRunner { diff --git a/src/DurableTask/OrchestrationRuntimeStatus.cs b/src/DurableTask/OrchestrationRuntimeStatus.cs index 6678ff071..7061c2fea 100644 --- a/src/DurableTask/OrchestrationRuntimeStatus.cs +++ b/src/DurableTask/OrchestrationRuntimeStatus.cs @@ -3,7 +3,7 @@ using System; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Enum describing the status of the orchestration diff --git a/src/DurableTask/PurgeResult.cs b/src/DurableTask/PurgeResult.cs index 412e6aebc..54be5d661 100644 --- a/src/DurableTask/PurgeResult.cs +++ b/src/DurableTask/PurgeResult.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Results of a purge operation. diff --git a/src/DurableTask/RetryHandler.cs b/src/DurableTask/RetryHandler.cs index 3d0cd3820..2b8ad5752 100644 --- a/src/DurableTask/RetryHandler.cs +++ b/src/DurableTask/RetryHandler.cs @@ -5,7 +5,7 @@ using System.Threading; using System.Threading.Tasks; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Delegate for manually handling task retries. diff --git a/src/DurableTask/RetryPolicy.cs b/src/DurableTask/RetryPolicy.cs index 42903e9b3..f5e9f1f89 100644 --- a/src/DurableTask/RetryPolicy.cs +++ b/src/DurableTask/RetryPolicy.cs @@ -5,7 +5,7 @@ using System.Threading; using System.Threading.Tasks; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// A declarative retry policy that can be configured for activity or sub-orchestration calls. @@ -126,14 +126,14 @@ public RetryPolicy( /// public Func>? HandleAsync { get; set; } - internal DurableTask.Core.RetryOptions ToDurableTaskCoreRetryOptions() + internal global::DurableTask.Core.RetryOptions ToDurableTaskCoreRetryOptions() { // The legacy framework doesn't support Timeout.InfiniteTimeSpan so we have to convert that // to TimeSpan.MaxValue when encountered. static TimeSpan ConvertInfiniteTimeSpans(TimeSpan timeout) => timeout == Timeout.InfiniteTimeSpan ? TimeSpan.MaxValue : timeout; - return new DurableTask.Core.RetryOptions(this.FirstRetryInterval, this.MaxNumberOfAttempts) + return new global::DurableTask.Core.RetryOptions(this.FirstRetryInterval, this.MaxNumberOfAttempts) { BackoffCoefficient = this.BackoffCoefficient, MaxRetryInterval = ConvertInfiniteTimeSpans(this.MaxRetryInterval), diff --git a/src/DurableTask/SdkUtils.cs b/src/DurableTask/SdkUtils.cs index 993c8b0cb..3fd70a0c8 100644 --- a/src/DurableTask/SdkUtils.cs +++ b/src/DurableTask/SdkUtils.cs @@ -2,13 +2,13 @@ // Licensed under the MIT License. using System; -using DurableTask.Converters; -using DurableTask.Grpc; +using Microsoft.DurableTask.Converters; +using Microsoft.DurableTask.Grpc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -namespace DurableTask; +namespace Microsoft.DurableTask; static class SdkUtils { diff --git a/src/DurableTask/TaskActivityBase.cs b/src/DurableTask/TaskActivityBase.cs index 89c843dc3..ad069100f 100644 --- a/src/DurableTask/TaskActivityBase.cs +++ b/src/DurableTask/TaskActivityBase.cs @@ -4,7 +4,7 @@ using System; using System.Threading.Tasks; -namespace DurableTask; +namespace Microsoft.DurableTask; // TODO: Move to separate file public interface ITaskActivity diff --git a/src/DurableTask/TaskActivityContext.cs b/src/DurableTask/TaskActivityContext.cs index 9397898a1..4e5fa7498 100644 --- a/src/DurableTask/TaskActivityContext.cs +++ b/src/DurableTask/TaskActivityContext.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Defines properties and methods for task activity context objects. diff --git a/src/DurableTask/TaskActivityShim.cs b/src/DurableTask/TaskActivityShim.cs index ef84f097c..55b0ea383 100644 --- a/src/DurableTask/TaskActivityShim.cs +++ b/src/DurableTask/TaskActivityShim.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using DurableTask.Core; -namespace DurableTask; +namespace Microsoft.DurableTask; class TaskActivityShim : TaskActivityShim { diff --git a/src/DurableTask/TaskFailedException.cs b/src/DurableTask/TaskFailedException.cs index 2cd48d7d3..21f5afdc1 100644 --- a/src/DurableTask/TaskFailedException.cs +++ b/src/DurableTask/TaskFailedException.cs @@ -4,7 +4,7 @@ using System; using DurableTask.Core.Exceptions; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Exception that gets thrown when when a durable task, such as an activity or a sub-orchestration, fails with an unhandled exception. diff --git a/src/DurableTask/TaskFailureDetails.cs b/src/DurableTask/TaskFailureDetails.cs index 2a9a638ad..b08eeefd9 100644 --- a/src/DurableTask/TaskFailureDetails.cs +++ b/src/DurableTask/TaskFailureDetails.cs @@ -3,7 +3,7 @@ using System; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Record that represents the details of a task failure. @@ -40,7 +40,7 @@ public bool IsCausedBy() where T : Exception return this.exceptionType != null && typeof(T).IsAssignableFrom(this.exceptionType); } - internal static TaskFailureDetails FromCoreException(DurableTask.Core.Exceptions.OrchestrationException e) + internal static TaskFailureDetails FromCoreException(global::DurableTask.Core.Exceptions.OrchestrationException e) { return new TaskFailureDetails( e.FailureDetails?.ErrorType ?? "(unknown)", diff --git a/src/DurableTask/TaskName.cs b/src/DurableTask/TaskName.cs index 6ebb4a460..4d23864da 100644 --- a/src/DurableTask/TaskName.cs +++ b/src/DurableTask/TaskName.cs @@ -3,7 +3,7 @@ using System; -namespace DurableTask; +namespace Microsoft.DurableTask; // TODO: Add detailed remarks that describe the role of TaskName /// diff --git a/src/DurableTask/TaskOptions.cs b/src/DurableTask/TaskOptions.cs index 70fb9e466..afe9e314b 100644 --- a/src/DurableTask/TaskOptions.cs +++ b/src/DurableTask/TaskOptions.cs @@ -5,7 +5,7 @@ using System.Threading; using System.Threading.Tasks; -namespace DurableTask; +namespace Microsoft.DurableTask; /// /// Options that can be used to control the behavior of orchestrator task execution. diff --git a/src/DurableTask/TaskOrchestrationContext.cs b/src/DurableTask/TaskOrchestrationContext.cs index e4c123e59..3f92636ac 100644 --- a/src/DurableTask/TaskOrchestrationContext.cs +++ b/src/DurableTask/TaskOrchestrationContext.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; -namespace DurableTask; +namespace Microsoft.DurableTask; // TODO: Summary and detailed description in the remarks public abstract class TaskOrchestrationContext diff --git a/src/DurableTask/TaskOrchestrationShim.cs b/src/DurableTask/TaskOrchestrationShim.cs index ff2273bba..fb7e540c6 100644 --- a/src/DurableTask/TaskOrchestrationShim.cs +++ b/src/DurableTask/TaskOrchestrationShim.cs @@ -9,7 +9,7 @@ using DurableTask.Core; using Microsoft.Extensions.Logging; -namespace DurableTask; +namespace Microsoft.DurableTask; class TaskOrchestrationShim : TaskOrchestrationShim { @@ -135,7 +135,7 @@ public override async Task CallActivityAsync( } } - catch (DurableTask.Core.Exceptions.TaskFailedException e) + catch (global::DurableTask.Core.Exceptions.TaskFailedException e) { // Hide the core DTFx types and instead use our own throw new TaskFailedException(name, e.ScheduleId, e); @@ -221,7 +221,7 @@ public override async Task CallSubOrchestratorAsync( input); } } - catch (DurableTask.Core.Exceptions.SubOrchestrationFailedException e) + catch (global::DurableTask.Core.Exceptions.SubOrchestrationFailedException e) { // Hide the core DTFx types and instead use our own throw new TaskFailedException(orchestratorName, e.ScheduleId, e); @@ -328,7 +328,7 @@ async Task InvokeWithCustomRetryHandler( { return await action(); } - catch (DurableTask.Core.Exceptions.OrchestrationException e) + catch (global::DurableTask.Core.Exceptions.OrchestrationException e) { // Some failures are not retriable, like failures for missing activities or sub-orchestrations if (e.FailureDetails?.IsNonRetriable == true) diff --git a/src/DurableTask/TaskOrchestratorBase.cs b/src/DurableTask/TaskOrchestratorBase.cs index aab9ad2b5..446d9ba9b 100644 --- a/src/DurableTask/TaskOrchestratorBase.cs +++ b/src/DurableTask/TaskOrchestratorBase.cs @@ -4,7 +4,7 @@ using System; using System.Threading.Tasks; -namespace DurableTask; +namespace Microsoft.DurableTask; // TODO: Move to separate file public interface ITaskOrchestrator diff --git a/src/DurableTask/WorkerContext.cs b/src/DurableTask/WorkerContext.cs index 67c91c9a7..1eff32133 100644 --- a/src/DurableTask/WorkerContext.cs +++ b/src/DurableTask/WorkerContext.cs @@ -4,7 +4,7 @@ using System; using Microsoft.Extensions.Logging; -namespace DurableTask; +namespace Microsoft.DurableTask; record WorkerContext( IDataConverter DataConverter, diff --git a/test/DurableTask.Generators.Tests/AzureFunctionsTests.cs b/test/DurableTask.Generators.Tests/AzureFunctionsTests.cs index 01e345112..021851c14 100644 --- a/test/DurableTask.Generators.Tests/AzureFunctionsTests.cs +++ b/test/DurableTask.Generators.Tests/AzureFunctionsTests.cs @@ -2,11 +2,11 @@ // Licensed under the MIT License. using System.Threading.Tasks; -using DurableTask.Generators.Tests.Utils; using Microsoft.Azure.Functions.Worker; +using Microsoft.DurableTask.Generators.Tests.Utils; using Xunit; -namespace DurableTask.Generators.Tests; +namespace Microsoft.DurableTask.Generators.Tests; public class AzureFunctionsTests { @@ -18,7 +18,7 @@ public async Task Activities_SimpleFunctionTrigger() { string code = @" using Microsoft.Azure.Functions.Worker; -using DurableTask; +using Microsoft.DurableTask; public class Calculator { @@ -60,7 +60,7 @@ public async Task Activities_ClassBasedSyntax(string inputType, string outputTyp string code = $@" using System; using System.Threading.Tasks; -using DurableTask; +using Microsoft.DurableTask; [DurableTask(nameof(MyActivity))] public class MyActivity : TaskActivityBase<{inputType}, {outputType}> @@ -115,7 +115,7 @@ public async Task Orchestrators_ClassBasedSyntax(string inputType, string output #nullable enable using System; using System.Threading.Tasks; -using DurableTask; +using Microsoft.DurableTask; namespace MyNS {{ @@ -194,7 +194,7 @@ public async Task Orchestrators_ClassBasedSyntax_Inheritance(string inputType, s #nullable enable using System; using System.Threading.Tasks; -using DurableTask; +using Microsoft.DurableTask; namespace MyNS {{ diff --git a/test/DurableTask.Generators.Tests/ClassBasedSyntaxTests.cs b/test/DurableTask.Generators.Tests/ClassBasedSyntaxTests.cs index ea9e72022..d55e789cb 100644 --- a/test/DurableTask.Generators.Tests/ClassBasedSyntaxTests.cs +++ b/test/DurableTask.Generators.Tests/ClassBasedSyntaxTests.cs @@ -2,10 +2,10 @@ // Licensed under the MIT License. using System.Threading.Tasks; -using DurableTask.Generators.Tests.Utils; +using Microsoft.DurableTask.Generators.Tests.Utils; using Xunit; -namespace DurableTask.Generators.Tests; +namespace Microsoft.DurableTask.Generators.Tests; public class ClassBasedSyntaxTests { @@ -17,7 +17,7 @@ public Task Orchestrators_PrimitiveTypes() { string code = @" using System.Threading.Tasks; -using DurableTask; +using Microsoft.DurableTask; [DurableTask(nameof(MyOrchestrator))] class MyOrchestrator : TaskOrchestratorBase @@ -74,7 +74,7 @@ public Task Orchestrators_Inheritance() { string code = @" using System.Threading.Tasks; -using DurableTask; +using Microsoft.DurableTask; [DurableTask(nameof(MyOrchestrator))] sealed class MyOrchestrator : MyOrchestratorBase @@ -137,7 +137,7 @@ public static IDurableTaskRegistry AddAllGeneratedTasks(this IDurableTaskRegistr public Task Activities_PrimitiveTypes() { string code = @" -using DurableTask; +using Microsoft.DurableTask; [DurableTask(nameof(MyActivity))] class MyActivity : TaskActivityBase @@ -171,7 +171,7 @@ public Task Activities_CustomTypes() { string code = @" using MyNS; -using DurableTask; +using Microsoft.DurableTask; [DurableTask(nameof(MyActivity))] class MyActivity : TaskActivityBase @@ -212,7 +212,7 @@ public Task Activities_ExplicitNaming() // The [DurableTask] attribute is expected to override the activity class name string code = @" using MyNS; -using DurableTask; +using Microsoft.DurableTask; namespace MyNS { @@ -250,7 +250,7 @@ public static IDurableTaskRegistry AddAllGeneratedTasks(this IDurableTaskRegistr public Task Activities_Inheritance() { string code = @" -using DurableTask; +using Microsoft.DurableTask; [DurableTask(nameof(MyActivity))] class MyActivity : MyActivityBase diff --git a/test/DurableTask.Generators.Tests/DurableTask.Generators.Tests.csproj b/test/DurableTask.Generators.Tests/Microsoft.DurableTask.Generators.Tests.csproj similarity index 92% rename from test/DurableTask.Generators.Tests/DurableTask.Generators.Tests.csproj rename to test/DurableTask.Generators.Tests/Microsoft.DurableTask.Generators.Tests.csproj index da09af941..445f975b4 100644 --- a/test/DurableTask.Generators.Tests/DurableTask.Generators.Tests.csproj +++ b/test/DurableTask.Generators.Tests/Microsoft.DurableTask.Generators.Tests.csproj @@ -30,8 +30,8 @@ - - + + diff --git a/test/DurableTask.Generators.Tests/Utils/CSharpSourceGeneratorVerifier.cs b/test/DurableTask.Generators.Tests/Utils/CSharpSourceGeneratorVerifier.cs index cb0992e41..7d05340c7 100644 --- a/test/DurableTask.Generators.Tests/Utils/CSharpSourceGeneratorVerifier.cs +++ b/test/DurableTask.Generators.Tests/Utils/CSharpSourceGeneratorVerifier.cs @@ -10,7 +10,7 @@ using Microsoft.CodeAnalysis.Testing; using Microsoft.CodeAnalysis.Testing.Verifiers; -namespace DurableTask.Generators.Tests.Utils; +namespace Microsoft.DurableTask.Generators.Tests.Utils; // Mostly copy/pasted from the Microsoft Source Generators testing documentation public static class CSharpSourceGeneratorVerifier where TSourceGenerator : ISourceGenerator, new() diff --git a/test/DurableTask.Generators.Tests/Utils/TestHelpers.cs b/test/DurableTask.Generators.Tests/Utils/TestHelpers.cs index aa5be7e71..379343602 100644 --- a/test/DurableTask.Generators.Tests/Utils/TestHelpers.cs +++ b/test/DurableTask.Generators.Tests/Utils/TestHelpers.cs @@ -11,7 +11,7 @@ using Microsoft.CodeAnalysis.Text; using Microsoft.Extensions.DependencyInjection; -namespace DurableTask.Generators.Tests.Utils; +namespace Microsoft.DurableTask.Generators.Tests.Utils; static class TestHelpers { @@ -77,7 +77,7 @@ public static string WrapAndFormat(string generatedClassName, string methodList, #nullable enable {usings} -namespace DurableTask +namespace Microsoft.DurableTask {{ public static class {generatedClassName} {{ diff --git a/test/DurableTask.Sdk.Tests/GrpcSidecarFixture.cs b/test/DurableTask.Sdk.Tests/GrpcSidecarFixture.cs index 2081f4b00..643dac177 100644 --- a/test/DurableTask.Sdk.Tests/GrpcSidecarFixture.cs +++ b/test/DurableTask.Sdk.Tests/GrpcSidecarFixture.cs @@ -3,17 +3,17 @@ using System; using DurableTask.Core; -using DurableTask.Grpc; -using DurableTask.Sidecar; -using DurableTask.Sidecar.Grpc; using Grpc.Net.Client; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Server.Kestrel.Core; +using Microsoft.DurableTask.Grpc; +using Microsoft.DurableTask.Sidecar; +using Microsoft.DurableTask.Sidecar.Grpc; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -namespace DurableTask.Sdk.Tests; +namespace Microsoft.DurableTask.Tests; public sealed class GrpcSidecarFixture : IDisposable { diff --git a/test/DurableTask.Sdk.Tests/IntegrationTestBase.cs b/test/DurableTask.Sdk.Tests/IntegrationTestBase.cs index 0b77156e2..c31edfb67 100644 --- a/test/DurableTask.Sdk.Tests/IntegrationTestBase.cs +++ b/test/DurableTask.Sdk.Tests/IntegrationTestBase.cs @@ -4,13 +4,13 @@ using System; using System.Diagnostics; using System.Threading; -using DurableTask.Grpc; -using DurableTask.Sdk.Tests.Logging; +using Microsoft.DurableTask.Grpc; +using Microsoft.DurableTask.Tests.Logging; using Microsoft.Extensions.Logging; using Xunit; using Xunit.Abstractions; -namespace DurableTask.Sdk.Tests; +namespace Microsoft.DurableTask.Tests; /// /// Base class for integration tests that use a in-process sidecar for executing orchestrations. diff --git a/test/DurableTask.Sdk.Tests/Logging/LogEntry.cs b/test/DurableTask.Sdk.Tests/Logging/LogEntry.cs index f2f48752c..dc338f01e 100644 --- a/test/DurableTask.Sdk.Tests/Logging/LogEntry.cs +++ b/test/DurableTask.Sdk.Tests/Logging/LogEntry.cs @@ -4,7 +4,7 @@ using System; using Microsoft.Extensions.Logging; -namespace DurableTask.Sdk.Tests.Logging; +namespace Microsoft.DurableTask.Tests.Logging; public class LogEntry { diff --git a/test/DurableTask.Sdk.Tests/Logging/TestLogProvider.cs b/test/DurableTask.Sdk.Tests/Logging/TestLogProvider.cs index 5131470f4..ef318142f 100644 --- a/test/DurableTask.Sdk.Tests/Logging/TestLogProvider.cs +++ b/test/DurableTask.Sdk.Tests/Logging/TestLogProvider.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.Logging; using Xunit.Abstractions; -namespace DurableTask.Sdk.Tests.Logging; +namespace Microsoft.DurableTask.Tests.Logging; public sealed class TestLogProvider : ILoggerProvider { diff --git a/test/DurableTask.Sdk.Tests/DurableTask.Sdk.Tests.csproj b/test/DurableTask.Sdk.Tests/Microsoft.DurableTask.Tests.csproj similarity index 90% rename from test/DurableTask.Sdk.Tests/DurableTask.Sdk.Tests.csproj rename to test/DurableTask.Sdk.Tests/Microsoft.DurableTask.Tests.csproj index 19f4ae4f5..e041f962d 100644 --- a/test/DurableTask.Sdk.Tests/DurableTask.Sdk.Tests.csproj +++ b/test/DurableTask.Sdk.Tests/Microsoft.DurableTask.Tests.csproj @@ -21,11 +21,11 @@ - + - + diff --git a/test/DurableTask.Sdk.Tests/OrchestrationErrorHandling.cs b/test/DurableTask.Sdk.Tests/OrchestrationErrorHandling.cs index bfab16624..6772ca550 100644 --- a/test/DurableTask.Sdk.Tests/OrchestrationErrorHandling.cs +++ b/test/DurableTask.Sdk.Tests/OrchestrationErrorHandling.cs @@ -3,11 +3,11 @@ using System; using System.Threading.Tasks; -using DurableTask.Grpc; +using Microsoft.DurableTask.Grpc; using Xunit; using Xunit.Abstractions; -namespace DurableTask.Sdk.Tests; +namespace Microsoft.DurableTask.Tests; /// /// Integration tests that are designed to exercise the error handling and retry functionality diff --git a/test/DurableTask.Sdk.Tests/OrchestrationPatterns.cs b/test/DurableTask.Sdk.Tests/OrchestrationPatterns.cs index d213c1fcf..d3abaa174 100644 --- a/test/DurableTask.Sdk.Tests/OrchestrationPatterns.cs +++ b/test/DurableTask.Sdk.Tests/OrchestrationPatterns.cs @@ -7,12 +7,11 @@ using System.Text.Json; using System.Threading; using System.Threading.Tasks; -using DurableTask.Grpc; -using DurableTask.Sdk.Tests; +using Microsoft.DurableTask.Grpc; using Xunit; using Xunit.Abstractions; -namespace DurableTask.Tests; +namespace Microsoft.DurableTask.Tests; public class OrchestrationPatterns : IntegrationTestBase {