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
{