diff --git a/Directory.Build.props b/Directory.Build.props
index 623e32f..a2cb75a 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -38,6 +38,10 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
all
diff --git a/Directory.Packages.props b/Directory.Packages.props
index c106d10..e637765 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -15,6 +15,7 @@
+
diff --git a/src/Orleans/AmqpProtocol/Builder/RabbitMqClientOptionsBuilder.cs b/src/Orleans/AmqpProtocol/Builder/RabbitMqClientOptionsBuilder.cs
index 11f113e..3214bcb 100644
--- a/src/Orleans/AmqpProtocol/Builder/RabbitMqClientOptionsBuilder.cs
+++ b/src/Orleans/AmqpProtocol/Builder/RabbitMqClientOptionsBuilder.cs
@@ -3,7 +3,9 @@
namespace Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Builder;
+#if NET8_0_OR_GREATER
using Microsoft.Extensions.Configuration;
+#endif
using Microsoft.Extensions.DependencyInjection;
using RabbitMQ.Builder;
diff --git a/src/Orleans/AmqpProtocol/Builder/RabbitMqSiloOptionsBuilder.cs b/src/Orleans/AmqpProtocol/Builder/RabbitMqSiloOptionsBuilder.cs
index ac5425e..122ab94 100644
--- a/src/Orleans/AmqpProtocol/Builder/RabbitMqSiloOptionsBuilder.cs
+++ b/src/Orleans/AmqpProtocol/Builder/RabbitMqSiloOptionsBuilder.cs
@@ -3,7 +3,9 @@
namespace Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Builder;
+#if NET8_0_OR_GREATER
using Microsoft.Extensions.Configuration;
+#endif
using Microsoft.Extensions.DependencyInjection;
using RabbitMQ.Builder;
diff --git a/src/Orleans/AmqpProtocol/Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.csproj b/src/Orleans/AmqpProtocol/Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.csproj
index e40f800..9b39524 100644
--- a/src/Orleans/AmqpProtocol/Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.csproj
+++ b/src/Orleans/AmqpProtocol/Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.csproj
@@ -12,4 +12,8 @@
+
+
+
+
diff --git a/src/Orleans/AmqpProtocol/Provider/AmqpProtocolAdapter.cs b/src/Orleans/AmqpProtocol/Provider/AmqpProtocolAdapter.cs
index e542fc5..4dd2eab 100644
--- a/src/Orleans/AmqpProtocol/Provider/AmqpProtocolAdapter.cs
+++ b/src/Orleans/AmqpProtocol/Provider/AmqpProtocolAdapter.cs
@@ -13,7 +13,7 @@ namespace Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Provider;
using Microsoft.Extensions.Logging;
///
-/// Escendit.Orleans.Streaming.RabbitMQ.Tests AMQP Protocol Adapter.
+/// RabbitMQ AMQP Protocol Adapter.
///
internal sealed partial class AmqpProtocolAdapter : IQueueAdapter
{
diff --git a/src/Orleans/AmqpProtocol/PublicAPI/net7.0/PublicAPI.Shipped.txt b/src/Orleans/AmqpProtocol/PublicAPI/net7.0/PublicAPI.Shipped.txt
new file mode 100644
index 0000000..ab058de
--- /dev/null
+++ b/src/Orleans/AmqpProtocol/PublicAPI/net7.0/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/Orleans/AmqpProtocol/PublicAPI/net7.0/PublicAPI.Unshipped.txt b/src/Orleans/AmqpProtocol/PublicAPI/net7.0/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000..9794790
--- /dev/null
+++ b/src/Orleans/AmqpProtocol/PublicAPI/net7.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,16 @@
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.IsDurable.get -> bool
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.IsDurable.set -> void
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.IsExclusive.get -> bool
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.IsExclusive.set -> void
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.Name.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.Name.set -> void
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.QueueOptions() -> void
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.Type.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.Type.set -> void
+Orleans.Hosting.ClientBuilderExtensions
+Orleans.Hosting.SiloBuilderExtensions
+static Orleans.Hosting.ClientBuilderExtensions.ConfigureStreamPubSub(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder! clientBuilder, Orleans.Streams.StreamPubSubType streamPubSubType = Orleans.Streams.StreamPubSubType.ExplicitGrainBasedAndImplicit) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder!
+static Orleans.Hosting.ClientBuilderExtensions.UseAmqpProtocol(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientProtocolBuilder! clientBuilder, System.Action! configureOptions) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder!
+static Orleans.Hosting.SiloBuilderExtensions.ConfigureStreamPubSub(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder! siloBuilder, Orleans.Streams.StreamPubSubType streamPubSubType = Orleans.Streams.StreamPubSubType.ExplicitGrainBasedAndImplicit) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder!
+static Orleans.Hosting.SiloBuilderExtensions.UseAmqpProtocol(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloProtocolBuilder! siloBuilder, System.Action! configureOptions) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder!
\ No newline at end of file
diff --git a/src/Orleans/AmqpProtocol/PublicAPI/net8.0/PublicAPI.Shipped.txt b/src/Orleans/AmqpProtocol/PublicAPI/net8.0/PublicAPI.Shipped.txt
new file mode 100644
index 0000000..7dc5c58
--- /dev/null
+++ b/src/Orleans/AmqpProtocol/PublicAPI/net8.0/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/Orleans/AmqpProtocol/PublicAPI/net8.0/PublicAPI.Unshipped.txt b/src/Orleans/AmqpProtocol/PublicAPI/net8.0/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000..e25b891
--- /dev/null
+++ b/src/Orleans/AmqpProtocol/PublicAPI/net8.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,16 @@
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.IsDurable.get -> bool
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.IsDurable.set -> void
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.IsExclusive.get -> bool
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.IsExclusive.set -> void
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.Name.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.Name.set -> void
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.QueueOptions() -> void
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.Type.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.AmqpProtocol.Configuration.QueueOptions.Type.set -> void
+Orleans.Hosting.ClientBuilderExtensions
+Orleans.Hosting.SiloBuilderExtensions
+static Orleans.Hosting.ClientBuilderExtensions.ConfigureStreamPubSub(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder! clientBuilder, Orleans.Streams.StreamPubSubType streamPubSubType = Orleans.Streams.StreamPubSubType.ExplicitGrainBasedAndImplicit) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder!
+static Orleans.Hosting.ClientBuilderExtensions.UseAmqpProtocol(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientProtocolBuilder! clientBuilder, System.Action! configureOptions) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder!
+static Orleans.Hosting.SiloBuilderExtensions.ConfigureStreamPubSub(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder! siloBuilder, Orleans.Streams.StreamPubSubType streamPubSubType = Orleans.Streams.StreamPubSubType.ExplicitGrainBasedAndImplicit) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder!
+static Orleans.Hosting.SiloBuilderExtensions.UseAmqpProtocol(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloProtocolBuilder! siloBuilder, System.Action! configureOptions) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder!
diff --git a/src/Orleans/RabbitMQ/Builder/RabbitMqSiloProtocolBuilder.cs b/src/Orleans/RabbitMQ/Builder/RabbitMqSiloProtocolBuilder.cs
index 0eaff69..b37316b 100644
--- a/src/Orleans/RabbitMQ/Builder/RabbitMqSiloProtocolBuilder.cs
+++ b/src/Orleans/RabbitMQ/Builder/RabbitMqSiloProtocolBuilder.cs
@@ -3,7 +3,9 @@
namespace Escendit.Orleans.Streaming.RabbitMQ.Builder;
+#if NET8_0_OR_GREATER
using Microsoft.Extensions.Configuration;
+#endif
using Microsoft.Extensions.DependencyInjection;
///
diff --git a/src/Orleans/RabbitMQ/Escendit.Orleans.Streaming.RabbitMQ.csproj b/src/Orleans/RabbitMQ/Escendit.Orleans.Streaming.RabbitMQ.csproj
index 7400348..202e3c7 100644
--- a/src/Orleans/RabbitMQ/Escendit.Orleans.Streaming.RabbitMQ.csproj
+++ b/src/Orleans/RabbitMQ/Escendit.Orleans.Streaming.RabbitMQ.csproj
@@ -1,4 +1,4 @@
-
+
RabbitMQ Orleans Streaming Provider
rabbitmq;orleans;streaming;provider
@@ -11,4 +11,8 @@
+
+
+
+
diff --git a/src/Orleans/RabbitMQ/Hosting/SiloBuilderExtensions.cs b/src/Orleans/RabbitMQ/Hosting/SiloBuilderExtensions.cs
index 82606c9..4ba45ed 100644
--- a/src/Orleans/RabbitMQ/Hosting/SiloBuilderExtensions.cs
+++ b/src/Orleans/RabbitMQ/Hosting/SiloBuilderExtensions.cs
@@ -5,7 +5,6 @@ namespace Escendit.Orleans.Streaming.RabbitMQ.Hosting;
using Builder;
using global::Orleans.Configuration;
-using global::Orleans.Streams;
using Microsoft.Extensions.DependencyInjection;
///
diff --git a/src/Orleans/RabbitMQ/PublicAPI/net7.0/PublicAPI.Shipped.txt b/src/Orleans/RabbitMQ/PublicAPI/net7.0/PublicAPI.Shipped.txt
new file mode 100644
index 0000000..ab058de
--- /dev/null
+++ b/src/Orleans/RabbitMQ/PublicAPI/net7.0/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/Orleans/RabbitMQ/PublicAPI/net7.0/PublicAPI.Unshipped.txt b/src/Orleans/RabbitMQ/PublicAPI/net7.0/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000..332be85
--- /dev/null
+++ b/src/Orleans/RabbitMQ/PublicAPI/net7.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,58 @@
+#nullable enable
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.CreateAdapter() -> System.Threading.Tasks.Task!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.GetDeliveryFailureHandler(Orleans.Streams.QueueId queueId) -> System.Threading.Tasks.Task!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.GetQueueAdapterCache() -> Orleans.Streams.IQueueAdapterCache!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.GetStreamQueueMapper() -> Orleans.Streams.IStreamQueueMapper!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.GetQueueMessagesAsync(int maxCount) -> System.Threading.Tasks.Task!>!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.Initialize(System.TimeSpan timeout) -> System.Threading.Tasks.Task!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.MessagesDeliveredAsync(System.Collections.Generic.IList! messages) -> System.Threading.Tasks.Task!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.Shutdown(System.TimeSpan timeout) -> System.Threading.Tasks.Task!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientProtocolBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloProtocolBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.Build() -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.Name.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.RabbitMqClientProtocolBuilder(string! name, Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.Build() -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.Name.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.RabbitMqSiloProtocolBuilder(string! name, Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Configuration.OptionsBase
+Escendit.Orleans.Streaming.RabbitMQ.Configuration.OptionsBase.OptionsBase() -> void
+Escendit.Orleans.Streaming.RabbitMQ.Configuration.OptionsBase.StreamFailureHandler.get -> System.Func!>!
+Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken
+Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.RabbitMqStreamSequenceToken(long sequenceNumber, int eventIndex) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.RabbitMqStreamSequenceToken(Orleans.Streams.StreamSequenceToken! sequenceToken) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.RabbitMqStreamSequenceToken(ulong sequenceNumber) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Hosting.ClientBuilderExtensions
+Escendit.Orleans.Streaming.RabbitMQ.Hosting.SiloBuilderExtensions
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.AdapterFactoryBase(Microsoft.Extensions.Logging.ILogger! logger) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.LogCreateAdapter(string! name) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.LogGetDeliveryFailureHandler(string! name, Orleans.Streams.QueueId queueId) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.LogGetQueueAdapterCache(string! name) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.LogGetStreamQueueMapper(string! name) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.AdapterReceiverBase(Microsoft.Extensions.Logging.ILogger! logger) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogGetQueueMessages(string! name, Orleans.Streams.QueueId queueId, int maxCount) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogInitialize(string! name, Orleans.Streams.QueueId queueId) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogMessageHandlerIncomingMessage(string! name, Orleans.Streams.QueueId queueId, int size) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogMessagesDelivered(string! name, Orleans.Streams.QueueId queueId, int count) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogShutdown(string! name, Orleans.Streams.QueueId queueId) -> void
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.CompareTo(Orleans.Streams.StreamSequenceToken? other) -> int
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.Equals(object? obj) -> bool
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.Equals(Orleans.Streams.StreamSequenceToken? other) -> bool
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.EventIndex.get -> int
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.EventIndex.set -> void
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.GetHashCode() -> int
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.SequenceNumber.get -> long
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.SequenceNumber.set -> void
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.ToString() -> string!
+static Escendit.Orleans.Streaming.RabbitMQ.Hosting.ClientBuilderExtensions.AddRabbitMq(this Orleans.Hosting.IClientBuilder! clientBuilder, string! name) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientProtocolBuilder!
+static Escendit.Orleans.Streaming.RabbitMQ.Hosting.SiloBuilderExtensions.AddRabbitMq(this Orleans.Hosting.ISiloBuilder! siloBuilder, string! name) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloProtocolBuilder!
+static System.ServiceProviderExtensions.GetRequiredOrleansServiceByName(this System.IServiceProvider! serviceProvider, string! name) -> TService!
+System.ServiceProviderExtensions
diff --git a/src/Orleans/RabbitMQ/PublicAPI/net8.0/PublicAPI.Shipped.txt b/src/Orleans/RabbitMQ/PublicAPI/net8.0/PublicAPI.Shipped.txt
new file mode 100644
index 0000000..7dc5c58
--- /dev/null
+++ b/src/Orleans/RabbitMQ/PublicAPI/net8.0/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/Orleans/RabbitMQ/PublicAPI/net8.0/PublicAPI.Unshipped.txt b/src/Orleans/RabbitMQ/PublicAPI/net8.0/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000..b9fe2f7
--- /dev/null
+++ b/src/Orleans/RabbitMQ/PublicAPI/net8.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,63 @@
+#nullable enable
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.CreateAdapter() -> System.Threading.Tasks.Task!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.GetDeliveryFailureHandler(Orleans.Streams.QueueId queueId) -> System.Threading.Tasks.Task!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.GetQueueAdapterCache() -> Orleans.Streams.IQueueAdapterCache!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.GetStreamQueueMapper() -> Orleans.Streams.IStreamQueueMapper!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.GetQueueMessagesAsync(int maxCount) -> System.Threading.Tasks.Task!>!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.Initialize(System.TimeSpan timeout) -> System.Threading.Tasks.Task!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.MessagesDeliveredAsync(System.Collections.Generic.IList! messages) -> System.Threading.Tasks.Task!
+abstract Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.Shutdown(System.TimeSpan timeout) -> System.Threading.Tasks.Task!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqBuilder.Build() -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqBuilder.Name.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientProtocolBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloProtocolBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.Build() -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.Configuration.get -> Microsoft.Extensions.Configuration.IConfiguration!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.Name.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.RabbitMqClientProtocolBuilder(string! name, Microsoft.Extensions.DependencyInjection.IServiceCollection! services, Microsoft.Extensions.Configuration.IConfiguration! configuration) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqClientProtocolBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.Build() -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.Configuration.get -> Microsoft.Extensions.Configuration.IConfiguration!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.Name.get -> string!
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.RabbitMqSiloProtocolBuilder(string! name, Microsoft.Extensions.DependencyInjection.IServiceCollection! services, Microsoft.Extensions.Configuration.IConfiguration! configuration) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Builder.RabbitMqSiloProtocolBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
+Escendit.Orleans.Streaming.RabbitMQ.Configuration.OptionsBase
+Escendit.Orleans.Streaming.RabbitMQ.Configuration.OptionsBase.OptionsBase() -> void
+Escendit.Orleans.Streaming.RabbitMQ.Configuration.OptionsBase.StreamFailureHandler.get -> System.Func!>!
+Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken
+Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.RabbitMqStreamSequenceToken(long sequenceNumber, int eventIndex) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.RabbitMqStreamSequenceToken(Orleans.Streams.StreamSequenceToken! sequenceToken) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.RabbitMqStreamSequenceToken(ulong sequenceNumber) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Hosting.ClientBuilderExtensions
+Escendit.Orleans.Streaming.RabbitMQ.Hosting.SiloBuilderExtensions
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.AdapterFactoryBase(Microsoft.Extensions.Logging.ILogger! logger) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.LogCreateAdapter(string! name) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.LogGetDeliveryFailureHandler(string! name, Orleans.Streams.QueueId queueId) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.LogGetQueueAdapterCache(string! name) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterFactoryBase.LogGetStreamQueueMapper(string! name) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.AdapterReceiverBase(Microsoft.Extensions.Logging.ILogger! logger) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogGetQueueMessages(string! name, Orleans.Streams.QueueId queueId, int maxCount) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogInitialize(string! name, Orleans.Streams.QueueId queueId) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogMessageHandlerIncomingMessage(string! name, Orleans.Streams.QueueId queueId, int size) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogMessagesDelivered(string! name, Orleans.Streams.QueueId queueId, int count) -> void
+Escendit.Orleans.Streaming.RabbitMQ.Provider.AdapterReceiverBase.LogShutdown(string! name, Orleans.Streams.QueueId queueId) -> void
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.CompareTo(Orleans.Streams.StreamSequenceToken? other) -> int
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.Equals(object? obj) -> bool
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.Equals(Orleans.Streams.StreamSequenceToken? other) -> bool
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.EventIndex.get -> int
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.EventIndex.set -> void
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.GetHashCode() -> int
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.SequenceNumber.get -> long
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.SequenceNumber.set -> void
+override Escendit.Orleans.Streaming.RabbitMQ.Core.RabbitMqStreamSequenceToken.ToString() -> string!
+static Escendit.Orleans.Streaming.RabbitMQ.Hosting.ClientBuilderExtensions.AddRabbitMq(this Orleans.Hosting.IClientBuilder! clientBuilder, string! name) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientProtocolBuilder!
+static Escendit.Orleans.Streaming.RabbitMQ.Hosting.SiloBuilderExtensions.AddRabbitMq(this Orleans.Hosting.ISiloBuilder! siloBuilder, string! name) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloProtocolBuilder!
+static System.ServiceProviderExtensions.GetRequiredOrleansServiceByName(this System.IServiceProvider! serviceProvider, string! name) -> TService
+System.ServiceProviderExtensions
diff --git a/src/Orleans/StreamProtocol/Builder/RabbitMqClientOptionsBuilder.cs b/src/Orleans/StreamProtocol/Builder/RabbitMqClientOptionsBuilder.cs
index 0c466d5..5a02dc4 100644
--- a/src/Orleans/StreamProtocol/Builder/RabbitMqClientOptionsBuilder.cs
+++ b/src/Orleans/StreamProtocol/Builder/RabbitMqClientOptionsBuilder.cs
@@ -4,7 +4,9 @@
namespace Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.Builder;
using Escendit.Orleans.Streaming.RabbitMQ.Builder;
+#if NET8_0_OR_GREATER
using Microsoft.Extensions.Configuration;
+#endif
using Microsoft.Extensions.DependencyInjection;
///
diff --git a/src/Orleans/StreamProtocol/Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.csproj b/src/Orleans/StreamProtocol/Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.csproj
index 030ad5d..aa671a5 100644
--- a/src/Orleans/StreamProtocol/Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.csproj
+++ b/src/Orleans/StreamProtocol/Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.csproj
@@ -12,4 +12,8 @@
+
+
+
+
diff --git a/src/Orleans/StreamProtocol/Provider/StreamProtocolAdapterFactory.cs b/src/Orleans/StreamProtocol/Provider/StreamProtocolAdapterFactory.cs
index 68cc3b5..6434a07 100644
--- a/src/Orleans/StreamProtocol/Provider/StreamProtocolAdapterFactory.cs
+++ b/src/Orleans/StreamProtocol/Provider/StreamProtocolAdapterFactory.cs
@@ -1,6 +1,8 @@
// Copyright (c) Escendit Ltd. All Rights Reserved.
// Licensed under the MIT. See LICENSE.txt file in the solution root for full license information.
+#pragma warning disable CA1812
+
namespace Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.Provider;
using Configuration;
@@ -17,7 +19,7 @@ namespace Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.Provider;
///
/// Stream Protocol Adapter Factory.
///
-public sealed class StreamProtocolAdapterFactory : AdapterFactoryBase
+internal sealed class StreamProtocolAdapterFactory : AdapterFactoryBase
{
private readonly ILoggerFactory _loggerFactory;
private readonly string _name;
diff --git a/src/Orleans/StreamProtocol/PublicAPI/net7.0/PublicAPI.Shipped.txt b/src/Orleans/StreamProtocol/PublicAPI/net7.0/PublicAPI.Shipped.txt
new file mode 100644
index 0000000..ab058de
--- /dev/null
+++ b/src/Orleans/StreamProtocol/PublicAPI/net7.0/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/Orleans/StreamProtocol/PublicAPI/net7.0/PublicAPI.Unshipped.txt b/src/Orleans/StreamProtocol/PublicAPI/net7.0/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000..b5ec14e
--- /dev/null
+++ b/src/Orleans/StreamProtocol/PublicAPI/net7.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,8 @@
+Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.Configuration.StreamOptions
+Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.Configuration.StreamOptions.StreamOptions() -> void
+Orleans.Hosting.ClientBuilderExtensions
+Orleans.Hosting.SiloBuilderExtensions
+static Orleans.Hosting.ClientBuilderExtensions.ConfigureStreamPubSub(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder! clientBuilder, Orleans.Streams.StreamPubSubType streamPubSubType = Orleans.Streams.StreamPubSubType.ExplicitGrainBasedAndImplicit) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder!
+static Orleans.Hosting.ClientBuilderExtensions.UseStreamProtocol(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientProtocolBuilder! clientBuilder, System.Action! configureOptions) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder!
+static Orleans.Hosting.SiloBuilderExtensions.ConfigureStreamPubSub(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder! siloBuilder, Orleans.Streams.StreamPubSubType streamPubSubType = Orleans.Streams.StreamPubSubType.ExplicitGrainBasedAndImplicit) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder!
+static Orleans.Hosting.SiloBuilderExtensions.UseStreamProtocol(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloProtocolBuilder! siloBuilder, System.Action! configureOptions) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder!
diff --git a/src/Orleans/StreamProtocol/PublicAPI/net8.0/PublicAPI.Shipped.txt b/src/Orleans/StreamProtocol/PublicAPI/net8.0/PublicAPI.Shipped.txt
new file mode 100644
index 0000000..7dc5c58
--- /dev/null
+++ b/src/Orleans/StreamProtocol/PublicAPI/net8.0/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/Orleans/StreamProtocol/PublicAPI/net8.0/PublicAPI.Unshipped.txt b/src/Orleans/StreamProtocol/PublicAPI/net8.0/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000..2ede9c6
--- /dev/null
+++ b/src/Orleans/StreamProtocol/PublicAPI/net8.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,8 @@
+Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.Configuration.StreamOptions
+Escendit.Orleans.Streaming.RabbitMQ.StreamProtocol.Configuration.StreamOptions.StreamOptions() -> void
+Orleans.Hosting.ClientBuilderExtensions
+Orleans.Hosting.SiloBuilderExtensions
+static Orleans.Hosting.ClientBuilderExtensions.ConfigureStreamPubSub(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder! clientBuilder, Orleans.Streams.StreamPubSubType streamPubSubType = Orleans.Streams.StreamPubSubType.ExplicitGrainBasedAndImplicit) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder!
+static Orleans.Hosting.ClientBuilderExtensions.UseStreamProtocol(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientProtocolBuilder! clientBuilder, System.Action! configureOptions) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqClientOptionsBuilder!
+static Orleans.Hosting.SiloBuilderExtensions.ConfigureStreamPubSub(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder! siloBuilder, Orleans.Streams.StreamPubSubType streamPubSubType = Orleans.Streams.StreamPubSubType.ExplicitGrainBasedAndImplicit) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder!
+static Orleans.Hosting.SiloBuilderExtensions.UseStreamProtocol(this Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloProtocolBuilder! siloBuilder, System.Action! configureOptions) -> Escendit.Orleans.Streaming.RabbitMQ.Builder.IRabbitMqSiloOptionsBuilder!
\ No newline at end of file