77import java .util .concurrent .CompletableFuture ;
88
99import com .microsoft .azure .servicebus .primitives .ConnectionStringBuilder ;
10+ import com .microsoft .azure .servicebus .primitives .MessagingEntityType ;
1011import com .microsoft .azure .servicebus .primitives .MessagingFactory ;
1112import com .microsoft .azure .servicebus .primitives .ServiceBusException ;
1213import com .microsoft .azure .servicebus .primitives .Util ;
@@ -48,6 +49,10 @@ public static IMessageSender createMessageSenderFromConnectionStringBuilder(Conn
4849 return Utils .completeFuture (createMessageSenderFromConnectionStringBuilderAsync (amqpConnectionStringBuilder ));
4950 }
5051
52+ static IMessageSender createMessageSenderFromConnectionStringBuilder (ConnectionStringBuilder amqpConnectionStringBuilder , MessagingEntityType entityType ) throws InterruptedException , ServiceBusException {
53+ return Utils .completeFuture (createMessageSenderFromConnectionStringBuilderAsync (amqpConnectionStringBuilder , entityType ));
54+ }
55+
5156 /**
5257 * Creates a message sender to the entity using the client settings.
5358 * @param namespaceName namespace of entity
@@ -73,10 +78,26 @@ public static IMessageSender createMessageSenderFromEntityPath(String namespaceN
7378 public static IMessageSender createMessageSenderFromEntityPath (URI namespaceEndpointURI , String entityPath , ClientSettings clientSettings ) throws InterruptedException , ServiceBusException {
7479 return Utils .completeFuture (createMessageSenderFromEntityPathAsync (namespaceEndpointURI , entityPath , clientSettings ));
7580 }
81+
82+ static IMessageSender createMessageSenderFromEntityPath (URI namespaceEndpointURI , String entityPath , MessagingEntityType entityType , ClientSettings clientSettings ) throws InterruptedException , ServiceBusException {
83+ return Utils .completeFuture (createMessageSenderFromEntityPathAsync (namespaceEndpointURI , entityPath , entityType , clientSettings ));
84+ }
7685
77- static IMessageSender createMessageSenderFromEntityPath (MessagingFactory messagingFactory , String entityPath ) throws InterruptedException , ServiceBusException {
86+ /**
87+ * Creates a message sender to the entity.
88+ * @param messagingFactory messaging factory (which represents a connection) on which sender needs to be created
89+ * @param entityPath path of entity
90+ * @return IMessageSender instance
91+ * @throws InterruptedException if the current thread was interrupted while waiting
92+ * @throws ServiceBusException if the sender cannot be created
93+ */
94+ public static IMessageSender createMessageSenderFromEntityPath (MessagingFactory messagingFactory , String entityPath ) throws InterruptedException , ServiceBusException {
7895 return Utils .completeFuture (createMessageSenderFromEntityPathAsync (messagingFactory , entityPath ));
7996 }
97+
98+ static IMessageSender createMessageSenderFromEntityPath (MessagingFactory messagingFactory , String entityPath , MessagingEntityType entityType ) throws InterruptedException , ServiceBusException {
99+ return Utils .completeFuture (createMessageSenderFromEntityPathAsync (messagingFactory , entityPath , entityType ));
100+ }
80101
81102 /**
82103 * Create message sender asynchronously from connection string with <a href="https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-sas">Shared Access Signatures</a>
@@ -100,6 +121,11 @@ public static CompletableFuture<IMessageSender> createMessageSenderFromConnectio
100121 return createMessageSenderFromEntityPathAsync (amqpConnectionStringBuilder .getEndpoint (), amqpConnectionStringBuilder .getEntityPath (), Util .getClientSettingsFromConnectionStringBuilder (amqpConnectionStringBuilder ));
101122 }
102123
124+ static CompletableFuture <IMessageSender > createMessageSenderFromConnectionStringBuilderAsync (ConnectionStringBuilder amqpConnectionStringBuilder , MessagingEntityType entityType ) {
125+ Utils .assertNonNull ("amqpConnectionStringBuilder" , amqpConnectionStringBuilder );
126+ return createMessageSenderFromEntityPathAsync (amqpConnectionStringBuilder .getEndpoint (), amqpConnectionStringBuilder .getEntityPath (), entityType , Util .getClientSettingsFromConnectionStringBuilder (amqpConnectionStringBuilder ));
127+ }
128+
103129 /**
104130 * Creates a message sender asynchronously to the entity using the client settings.
105131 * @param namespaceName namespace name of entity
@@ -122,15 +148,30 @@ public static CompletableFuture<IMessageSender> createMessageSenderFromEntityPat
122148 * @return a CompletableFuture representing the pending creating of IMessageSender instance
123149 */
124150 public static CompletableFuture <IMessageSender > createMessageSenderFromEntityPathAsync (URI namespaceEndpointURI , String entityPath , ClientSettings clientSettings )
151+ {
152+ return createMessageSenderFromEntityPathAsync (namespaceEndpointURI , entityPath , null , clientSettings );
153+ }
154+
155+ static CompletableFuture <IMessageSender > createMessageSenderFromEntityPathAsync (URI namespaceEndpointURI , String entityPath , MessagingEntityType entityType , ClientSettings clientSettings )
125156 {
126157 Utils .assertNonNull ("namespaceEndpointURI" , namespaceEndpointURI );
127- MessageSender sender = new MessageSender (namespaceEndpointURI , entityPath , clientSettings );
158+ MessageSender sender = new MessageSender (namespaceEndpointURI , entityPath , entityType , clientSettings );
128159 return sender .initializeAsync ().thenApply ((v ) -> sender );
129160 }
130161
131- static CompletableFuture <IMessageSender > createMessageSenderFromEntityPathAsync (MessagingFactory messagingFactory , String entityPath ) {
162+ /**
163+ * Creates a message sender asynchronously to the entity using the {@link MessagingFactory}
164+ * @param messagingFactory messaging factory (which represents a connection) on which sender needs to be created
165+ * @param entityPath path of entity
166+ * @return a CompletableFuture representing the pending creating of IMessageSender instance
167+ */
168+ public static CompletableFuture <IMessageSender > createMessageSenderFromEntityPathAsync (MessagingFactory messagingFactory , String entityPath ) {
169+ return createMessageSenderFromEntityPathAsync (messagingFactory , entityPath , null );
170+ }
171+
172+ static CompletableFuture <IMessageSender > createMessageSenderFromEntityPathAsync (MessagingFactory messagingFactory , String entityPath , MessagingEntityType entityType ) {
132173 Utils .assertNonNull ("messagingFactory" , messagingFactory );
133- MessageSender sender = new MessageSender (messagingFactory , entityPath );
174+ MessageSender sender = new MessageSender (messagingFactory , entityPath , entityType );
134175 return sender .initializeAsync ().thenApply ((v ) -> sender );
135176 }
136177
@@ -252,6 +293,10 @@ static IMessageReceiver createMessageReceiverFromEntityPath(MessagingFactory mes
252293 static IMessageReceiver createMessageReceiverFromEntityPath (MessagingFactory messagingFactory , String entityPath , ReceiveMode receiveMode ) throws InterruptedException , ServiceBusException {
253294 return Utils .completeFuture (createMessageReceiverFromEntityPathAsync (messagingFactory , entityPath , receiveMode ));
254295 }
296+
297+ static IMessageReceiver createMessageReceiverFromEntityPath (MessagingFactory messagingFactory , String entityPath , MessagingEntityType entityType , ReceiveMode receiveMode ) throws InterruptedException , ServiceBusException {
298+ return Utils .completeFuture (createMessageReceiverFromEntityPathAsync (messagingFactory , entityPath , entityType , receiveMode ));
299+ }
255300
256301 /**
257302 * Create {@link IMessageReceiver} in default {@link ReceiveMode#PEEKLOCK} mode asynchronously from connection string with <a href="https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-sas">Shared Access Signatures</a>
@@ -343,7 +388,7 @@ public static CompletableFuture<IMessageReceiver> createMessageReceiverFromEntit
343388 public static CompletableFuture <IMessageReceiver > createMessageReceiverFromEntityPathAsync (URI namespaceEndpointURI , String entityPath , ClientSettings clientSettings , ReceiveMode receiveMode ) {
344389 Utils .assertNonNull ("namespaceEndpointURI" , namespaceEndpointURI );
345390 Utils .assertNonNull ("entityPath" , entityPath );
346- MessageReceiver receiver = new MessageReceiver (namespaceEndpointURI , entityPath , clientSettings , receiveMode );
391+ MessageReceiver receiver = new MessageReceiver (namespaceEndpointURI , entityPath , null , clientSettings , receiveMode );
347392 return receiver .initializeAsync ().thenApply ((v ) -> receiver );
348393 }
349394
@@ -352,8 +397,12 @@ static CompletableFuture<IMessageReceiver> createMessageReceiverFromEntityPathAs
352397 }
353398
354399 static CompletableFuture <IMessageReceiver > createMessageReceiverFromEntityPathAsync (MessagingFactory messagingFactory , String entityPath , ReceiveMode receiveMode ) {
400+ return createMessageReceiverFromEntityPathAsync (messagingFactory , entityPath , null , receiveMode );
401+ }
402+
403+ static CompletableFuture <IMessageReceiver > createMessageReceiverFromEntityPathAsync (MessagingFactory messagingFactory , String entityPath , MessagingEntityType entityType , ReceiveMode receiveMode ) {
355404 Utils .assertNonNull ("messagingFactory" , messagingFactory );
356- MessageReceiver receiver = new MessageReceiver (messagingFactory , entityPath , receiveMode );
405+ MessageReceiver receiver = new MessageReceiver (messagingFactory , entityPath , entityType , receiveMode );
357406 return receiver .initializeAsync ().thenApply ((v ) -> receiver );
358407 }
359408
@@ -575,7 +624,7 @@ public static CompletableFuture<IMessageSession> acceptSessionFromEntityPathAsyn
575624 public static CompletableFuture <IMessageSession > acceptSessionFromEntityPathAsync (URI namespaceEndpointURI , String entityPath , String sessionId , ClientSettings clientSettings , ReceiveMode receiveMode ) {
576625 Utils .assertNonNull ("namespaceEndpointURI" , namespaceEndpointURI );
577626 Utils .assertNonNull ("entityPath" , entityPath );
578- MessageSession session = new MessageSession (namespaceEndpointURI , entityPath , sessionId , clientSettings , receiveMode );
627+ MessageSession session = new MessageSession (namespaceEndpointURI , entityPath , null , sessionId , clientSettings , receiveMode );
579628 return session .initializeAsync ().thenApply ((v ) -> session );
580629 }
581630
@@ -584,8 +633,12 @@ static CompletableFuture<IMessageSession> acceptSessionFromEntityPathAsync(Messa
584633 }
585634
586635 static CompletableFuture <IMessageSession > acceptSessionFromEntityPathAsync (MessagingFactory messagingFactory , String entityPath , String sessionId , ReceiveMode receiveMode ) {
636+ return acceptSessionFromEntityPathAsync (messagingFactory , entityPath , null , sessionId , receiveMode );
637+ }
638+
639+ static CompletableFuture <IMessageSession > acceptSessionFromEntityPathAsync (MessagingFactory messagingFactory , String entityPath , MessagingEntityType entityType , String sessionId , ReceiveMode receiveMode ) {
587640 Utils .assertNonNull ("messagingFactory" , messagingFactory );
588- MessageSession session = new MessageSession (messagingFactory , entityPath , sessionId , receiveMode );
641+ MessageSession session = new MessageSession (messagingFactory , entityPath , entityType , sessionId , receiveMode );
589642 return session .initializeAsync ().thenApply ((v ) -> session );
590643 }
591644}
0 commit comments