Skip to content

Commit 73d1124

Browse files
authored
Annotate Azure.Messaging.ServiceBus for trim/AOT compat (Azure#47004)
1 parent 3225889 commit 73d1124

File tree

4 files changed

+19
-0
lines changed

4 files changed

+19
-0
lines changed

sdk/servicebus/Azure.Messaging.ServiceBus/src/Azure.Messaging.ServiceBus.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
$(NoWarn);CA2213
1313
</NoWarn>
1414
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
15+
<IsTrimmable Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">true</IsTrimmable>
16+
<IsAotCompatible Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net7.0'))">true</IsAotCompatible>
1517
</PropertyGroup>
1618

1719
<ItemGroup>

sdk/servicebus/Azure.Messaging.ServiceBus/src/Compatibility/ServiceBusClientBuilderExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License.
33

44
using System.ComponentModel;
5+
using System.Diagnostics.CodeAnalysis;
56
using Azure.Core.Extensions;
67
using Azure.Messaging.ServiceBus;
78
using Azure.Messaging.ServiceBus.Administration;
@@ -37,6 +38,8 @@ public static IAzureClientBuilder<ServiceBusClient, ServiceBusClientOptions> Add
3738
/// Registers a <see cref="ServiceBusClient"/> instance with connection options loaded from the provided <paramref name="configuration"/> instance.
3839
/// </summary>
3940
///
41+
[RequiresUnreferencedCode("Binding strongly typed objects to configuration values is not supported with trimming. Use the Configuration Binder Source Generator (EnableConfigurationBindingGenerator=true) instead.")]
42+
[RequiresDynamicCode("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types. Use the Configuration Binder Source Generator (EnableConfigurationBindingGenerator=true) instead.")]
4043
public static IAzureClientBuilder<ServiceBusClient, ServiceBusClientOptions> AddServiceBusClient<TBuilder, TConfiguration>(this TBuilder builder, TConfiguration configuration)
4144
where TBuilder : IAzureClientFactoryBuilderWithConfiguration<TConfiguration>
4245
{
@@ -78,6 +81,8 @@ public static IAzureClientBuilder<ServiceBusAdministrationClient, ServiceBusAdmi
7881
/// Registers a <see cref="ServiceBusAdministrationClient"/> instance with connection options loaded from the provided <paramref name="configuration"/> instance.
7982
/// </summary>
8083
///
84+
[RequiresUnreferencedCode("Binding strongly typed objects to configuration values is not supported with trimming. Use the Configuration Binder Source Generator (EnableConfigurationBindingGenerator=true) instead.")]
85+
[RequiresDynamicCode("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types. Use the Configuration Binder Source Generator (EnableConfigurationBindingGenerator=true) instead.")]
8186
public static IAzureClientBuilder<ServiceBusAdministrationClient, ServiceBusAdministrationClientOptions> AddServiceBusAdministrationClient<TBuilder, TConfiguration>(this TBuilder builder, TConfiguration configuration)
8287
where TBuilder : IAzureClientFactoryBuilderWithConfiguration<TConfiguration>
8388
{

sdk/servicebus/Azure.Messaging.ServiceBus/src/Diagnostics/ServiceBusEventSource.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Diagnostics.CodeAnalysis;
67
using System.Diagnostics.Tracing;
78
using System.Linq;
89
using System.Reflection;
@@ -385,6 +386,7 @@ public virtual void PeekMessageStart(string identifier, long? sequenceNumber, in
385386

386387
[NonEvent]
387388
[MethodImpl(MethodImplOptions.AggressiveInlining)]
389+
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026", Justification = EventSourceSuppressMessage)]
388390
private unsafe void PeekMessageStartCore(int eventId, string identifier, long? sequenceNumber, int messageCount)
389391
{
390392
fixed (char* identifierPtr = identifier)
@@ -1094,6 +1096,7 @@ private void ProcessorMessageHandlerExceptionCore(string identifier, long sequen
10941096

10951097
[NonEvent]
10961098
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1099+
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026", Justification = EventSourceSuppressMessage)]
10971100
private unsafe void ProcessorMessageHandlerExceptionCore(int eventId, string identifier, long sequenceNumber, string exception, string lockToken)
10981101
{
10991102
fixed (char* identifierPtr = identifier)
@@ -1254,6 +1257,7 @@ public virtual void LinkStateLost(string identifier, string receiveLinkName, str
12541257

12551258
[NonEvent]
12561259
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1260+
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026", Justification = EventSourceSuppressMessage)]
12571261
private unsafe void LinkStateLostCore(int eventId, string identifier, string receiveLinkName, string receiveLinkState, bool isSessionReceiver, string exception)
12581262
{
12591263
fixed (char* identifierPtr = identifier)
@@ -1807,6 +1811,7 @@ public void TransactionDischarged(string transactionId, string amqpTransactionId
18071811

18081812
[NonEvent]
18091813
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1814+
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026", Justification = EventSourceSuppressMessage)]
18101815
private unsafe void TransactionDischargedCore(int eventId, string transactionId, string amqpTransactionId, bool rollback)
18111816
{
18121817
fixed (char* transactionIdPtr = transactionId)
@@ -1909,6 +1914,7 @@ public virtual void PartitionKeyOverwritten(string partitionKey, string sessionI
19091914
/// <param name="arg3">The third argument.</param>
19101915
[NonEvent]
19111916
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1917+
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026", Justification = EventSourceSuppressMessage)]
19121918
private unsafe void WriteEvent(int eventId, string arg1, int arg2, string arg3)
19131919
{
19141920
fixed (char* arg1Ptr = arg1)
@@ -1940,6 +1946,7 @@ private unsafe void WriteEvent(int eventId, string arg1, int arg2, string arg3)
19401946
/// <param name="arg3">The third argument.</param>
19411947
[NonEvent]
19421948
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1949+
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026", Justification = EventSourceSuppressMessage)]
19431950
private unsafe void WriteEvent(int eventId, string arg1, long arg2, string arg3)
19441951
{
19451952
fixed (char* arg1Ptr = arg1)
@@ -1971,6 +1978,7 @@ private unsafe void WriteEvent(int eventId, string arg1, long arg2, string arg3)
19711978
/// <param name="arg4">The fourth argument.</param>
19721979
[NonEvent]
19731980
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1981+
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026", Justification = EventSourceSuppressMessage)]
19741982
private unsafe void WriteEvent(int eventId, string arg1, string arg2, string arg3, string arg4)
19751983
{
19761984
fixed (char* arg1Ptr = arg1)

sdk/servicebus/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,7 @@ extends:
3535
Artifacts:
3636
- name: Azure.Messaging.ServiceBus
3737
safeName: AzureMessagingServiceBus
38+
CheckAotCompat: true
39+
AOTTestInputs:
40+
- ArtifactName: Azure.Messaging.ServiceBus
41+
ExpectedWarningsFilepath: None

0 commit comments

Comments
 (0)