-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deprecating V1 service remoting stack #395
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 64 out of 79 changed files in this pull request and generated no comments.
Files not reviewed (15)
- src/Microsoft.ServiceFabric.Actors/Client/ActorProxyFactory.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/V1/Builder/ActorProxyGeneratorBuilder.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/V1/ActorEventSubscription.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/V1/Builder/ActorEventProxyGeneratorWith.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/V1/Builder/ActorEventProxyGeneratorBuilder.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/FabricTransport/FabricTransportActorRemotingProviderAttribute.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/V1/ActorMessageBodySerializer.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/V1/Builder/ActorProxyGeneratorWith.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors.Wcf/WcfActorRemotingProviderAttribute.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors.Wcf/Remoting/V1/Wcf/Client/WcfActorRemotingClientFactory.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Client/IActorProxy.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/V1/Builder/ActorMethodDispatcherBase.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/ActorRemotingProviderAttribute.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors/Remoting/V1/Client/ActorEventSubscriberManager.cs: Evaluated as low risk
- src/Microsoft.ServiceFabric.Actors.Wcf/Remoting/V1/Wcf/Runtime/WcfActorServiceRemotingListener.cs: Evaluated as low risk
src/Microsoft.ServiceFabric.Actors/Remoting/ActorRemotingProviderAttribute.cs
Show resolved
Hide resolved
src/Microsoft.ServiceFabric.Actors/Runtime/ActorEventSubscriberProxy.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.ServiceFabric.Actors/Runtime/ActorEventSubscriberProxy.cs
Outdated
Show resolved
Hide resolved
@plave0 A couple of thoughts that didn't fit the comments:
|
In the previous commits, some fields of types that are part of the V1 stack where surrounded by warrning suppresions instead of being marked as obsolete.
c90b404
to
18a8bb5
Compare
@plave0 I completed another pass. I think the unresolved comments represent the outstanding issues. Could you go over them one more time? Don't forget the previous conversation comment I added above. One thing I think we should do is replace the literal strings in the Obsolete attributes with a string constant. I suspect that we will need to figure out what to put in the deprecation message, but for now, let's at least make them all consistent. I would create a new internal static class Deprecated with a string RemotingV1 field, so that the deprecations look like [Obsolete(Deprecated.RemotingV1)]. If we can make this field static readonly, that would be my first choice, otherwise const string should be fine. |
An exception is raised if a remoting provider is not specified explicitely.
src/Microsoft.ServiceFabric.Actors/Remoting/ActorRemotingProviderAttribute.cs
Outdated
Show resolved
Hide resolved
ServiceRemotingProvider and ActorRemoting provider tests to check for return values instead of exceptions.
This removes boilerplait code for manual mock implementation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added a lot of comments, most are cosmetic but there are several substantial ones. It should be possible to address most of them in a few hours. Could you try to get this done and complete a self-review before our scrum tomorrow?
src/Microsoft.ServiceFabric.Actors.Wcf/Remoting/V1/Wcf/Client/WcfActorRemotingClientFactory.cs
Outdated
Show resolved
Hide resolved
...icrosoft.ServiceFabric.Actors.Wcf/Remoting/V1/Wcf/Runtime/WcfActorServiceRemotingListener.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.ServiceFabric.Actors.Wcf/WcfActorRemotingProviderAttribute.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.ServiceFabric.Actors.Wcf/WcfActorRemotingProviderAttribute.cs
Outdated
Show resolved
Hide resolved
test/unittests/Microsoft.ServiceFabric.Services.Remoting.Tests/AsemlbyAttributes.cs
Outdated
Show resolved
Hide resolved
test/unittests/Microsoft.ServiceFabric.Actors.Tests/AsemlbyAttributes.cs
Outdated
Show resolved
Hide resolved
...ests/Microsoft.ServiceFabric.Services.Remoting.Tests/ServiceRemotingProviderAttributeTest.cs
Show resolved
Hide resolved
test/unittests/Microsoft.ServiceFabric.Actors.Tests/ActorRemotingProviderAttributeTest.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.ServiceFabric.Services.Remoting/DeprecationMessage.cs
Outdated
Show resolved
Hide resolved
Remaining refactoring form 7ef4c4
We don't need to check whether GetProvider return null, since no path return null. The expected behavior is for GetProvider to throw an exception if ActorRemotingProviderAttribute is not set explicitly, so we don't need to set a RemotingListenerVersion by default.
To be able to use this function in other functions that cannot be deprecated (those which implement both V1 and V2 functionality), appropriate warning disables have been places.
This changes cover the case when changing the exception message is also considered an error.
Applying some good practices
More information about the deprecation of Service Remoting V1 can be found on the link.
Make naming more descriptive
This gives more information about the changes made to the new SDK version and how to handle them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No description provided.