/** * Gets the operation timeout from the connections string. * @return operation timeout specified in the connection string */ public Duration getOperationTimeout() { return this.clientSettings.getOperationTimeout(); }
/** * Gets the retry policy from the connection string. * @return retry policy specified in the connection string */ public RetryPolicy getRetryPolicy() { return this.clientSettings.getRetryPolicy(); }
AzureSBManagedConnection(AzureSBManagedConnectionFactory aThis, Subject subject, ConnectionRequestInfo cxRequestInfo) { cf = aThis; listeners = new HashSet<>(); SharedAccessSignatureTokenProvider tokenProvider = new SharedAccessSignatureTokenProvider(cf.getSasKeyName(), cf.getSasKey(), 60); try { sbConnector = new QueueClient(cf.getNameSpace(),cf.getQueueName(),new ClientSettings(tokenProvider, RetryPolicy.getDefault(), Duration.ofSeconds(cf.getTimeOut())),ReceiveMode.RECEIVEANDDELETE); } catch (InterruptedException | ServiceBusException ex) { Logger.getLogger(AzureSBManagedConnection.class.getName()).log(Level.SEVERE, null, ex); } }
CompletableFuture<Void> sendSecurityToken(String sasTokenAudienceUri) { TRACE_LOGGER.debug("Sending token for {}", sasTokenAudienceUri); CompletableFuture<SecurityToken> tokenFuture = this.clientSettings.getTokenProvider().getSecurityTokenAsync(sasTokenAudienceUri); return tokenFuture.thenComposeAsync((t) -> { SecurityToken generatedSecurityToken = t; CompletableFuture<Void> sendTokenFuture = this.cbsLinkCreationFuture.thenComposeAsync((v) -> { return CommonRequestResponseOperations.sendCBSTokenAsync(this.cbsLink, Util.adjustServerTimeout(this.clientSettings.getOperationTimeout()), generatedSecurityToken); }, MessagingFactory.INTERNAL_THREAD_POOL); return sendTokenFuture.thenAccept((v) -> { TRACE_LOGGER.debug("Sent token for {}", sasTokenAudienceUri);}); }, MessagingFactory.INTERNAL_THREAD_POOL); }
String securityToken = getSecurityToken(this.clientSettings.getTokenProvider(), forwardTo); additionalHeaders.put(ManagementClientConstants.ServiceBusSupplementartyAuthorizationHeaderName, securityToken); } catch (InterruptedException | ExecutionException e) { String securityToken = getSecurityToken(this.clientSettings.getTokenProvider(), fwdDeadLetterTo); additionalHeaders.put(ManagementClientConstants.ServiceBusDlqSupplementaryAuthorizationHeaderName, securityToken); } catch (InterruptedException | ExecutionException e) {
this.connetionCloseFuture = new CompletableFuture<Void>(); this.reactorLock = new Object(); this.connectionHandler = ConnectionHandler.create(clientSettings.getTransportType(), this); this.factoryOpenFuture = new CompletableFuture<MessagingFactory>(); this.cbsLinkCreationFuture = new CompletableFuture<Void>();
AzureSBManagedConnection(AzureSBManagedConnectionFactory aThis, Subject subject, ConnectionRequestInfo cxRequestInfo) { cf = aThis; listeners = new HashSet<>(); SharedAccessSignatureTokenProvider tokenProvider = new SharedAccessSignatureTokenProvider(cf.getSasKeyName(), cf.getSasKey(), 60); try { sbConnector = new QueueClient(cf.getNameSpace(),cf.getQueueName(),new ClientSettings(tokenProvider, RetryPolicy.getDefault(), Duration.ofSeconds(cf.getTimeOut())),ReceiveMode.RECEIVEANDDELETE); } catch (InterruptedException | ServiceBusException ex) { Logger.getLogger(AzureSBManagedConnection.class.getName()).log(Level.SEVERE, null, ex); } }
private CompletableFuture<Instant> generateAndSendSecurityToken(String sasTokenAudienceURI) { CompletableFuture<SecurityToken> tokenFuture = this.clientSettings.getTokenProvider().getSecurityTokenAsync(sasTokenAudienceURI); return tokenFuture.thenComposeAsync((t) -> { SecurityToken generatedSecurityToken = t; return this.cbsLinkCreationFuture.thenComposeAsync((v) -> { return CommonRequestResponseOperations.sendCBSTokenAsync(this.cbsLink, ClientConstants.SAS_TOKEN_SEND_TIMEOUT, generatedSecurityToken).thenApply((u) -> generatedSecurityToken.getValidUntil()); }, MessagingFactory.INTERNAL_THREAD_POOL); }, MessagingFactory.INTERNAL_THREAD_POOL); }
@SuppressWarnings("deprecation") public static ClientSettings getClientSettingsFromConnectionStringBuilder(ConnectionStringBuilder builder) { TokenProvider tokenProvider; if(builder.getSharedAccessSignatureToken() == null) { tokenProvider = new SharedAccessSignatureTokenProvider(builder.getSasKeyName(), builder.getSasKey(), SecurityConstants.DEFAULT_SAS_TOKEN_VALIDITY_IN_SECONDS); } else { tokenProvider = new SharedAccessSignatureTokenProvider(builder.getSharedAccessSignatureToken(), Instant.now().plus(Duration.ofSeconds(SecurityConstants.DEFAULT_SAS_TOKEN_VALIDITY_IN_SECONDS))); } return new ClientSettings(tokenProvider, builder.getRetryPolicy(), builder.getOperationTimeout(), builder.getTransportType()); }
@Override public CompletableFuture<Void> cancelScheduledMessageAsync(long sequenceNumber) { return this.internalSender.cancelScheduledMessageAsync( new Long[]{sequenceNumber}, this.messagingFactory.getClientSettings().getOperationTimeout()); }
private CompletableFuture<String> sendManagementHttpRequestAsync(String httpMethod, URL url, String atomEntryString, HashMap<String, String> additionalHeaders) { String securityToken = null; try { securityToken = getSecurityToken(this.clientSettings.getTokenProvider(), url.toString()); } catch (InterruptedException | ExecutionException e) { final CompletableFuture<String> exceptionFuture = new CompletableFuture<>();
public AzureSBListener(AzureSBActivationSpec asbSpec, BootstrapContext context, MessageEndpointFactory endpointFactory) throws ResourceException { activationSpec = asbSpec; this.context = context; this.endpointFactory = endpointFactory; SharedAccessSignatureTokenProvider tokenProvider = new SharedAccessSignatureTokenProvider(asbSpec.getSasKeyName(), asbSpec.getSasKey(),60); ClientSettings settings = new ClientSettings(tokenProvider, RetryPolicy.getDefault(), Duration.ofSeconds(asbSpec.getPollTimeout())); try { client = new QueueClient(asbSpec.getNameSpace(), asbSpec.getQueueName(), settings, ReceiveMode.RECEIVEANDDELETE); client.setPrefetchCount(activationSpec.getPreFetchCount()); } catch (InterruptedException | ServiceBusException ex) { Logger.getLogger(AzureSBListener.class.getName()).log(Level.SEVERE, "Error creating listener for queue " + activationSpec.getQueueName(), ex); throw new ResourceException(ex); } }
/** * Creates a new {@link ManagementClientAsync}. * User should call {@link ManagementClientAsync#close()} at the end of life of the client. * @param namespaceEndpointURI - URI of the namespace connecting to. * @param clientSettings - client settings. */ public ManagementClientAsync(URI namespaceEndpointURI, ClientSettings clientSettings) { this.namespaceEndpointURI = namespaceEndpointURI; this.clientSettings = clientSettings; DefaultAsyncHttpClientConfig.Builder clientBuilder = Dsl.config() .setConnectTimeout((int)CONNECTION_TIMEOUT.toMillis()) .setRequestTimeout((int)this.clientSettings.getOperationTimeout().toMillis()); this.asyncHttpClient = asyncHttpClient(clientBuilder); }
public AzureSBListener(AzureSBActivationSpec asbSpec, BootstrapContext context, MessageEndpointFactory endpointFactory) throws ResourceException { activationSpec = asbSpec; this.context = context; this.endpointFactory = endpointFactory; SharedAccessSignatureTokenProvider tokenProvider = new SharedAccessSignatureTokenProvider(asbSpec.getSasKeyName(), asbSpec.getSasKey(),60); ClientSettings settings = new ClientSettings(tokenProvider, RetryPolicy.getDefault(), Duration.ofSeconds(asbSpec.getPollTimeout())); try { client = new QueueClient(asbSpec.getNameSpace(), asbSpec.getQueueName(), settings, ReceiveMode.RECEIVEANDDELETE); client.setPrefetchCount(activationSpec.getPreFetchCount()); } catch (InterruptedException | ServiceBusException ex) { Logger.getLogger(AzureSBListener.class.getName()).log(Level.SEVERE, "Error creating listener for queue " + activationSpec.getQueueName(), ex); throw new ResourceException(ex); } }
@Override public CompletableFuture<Long> scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction) { message.setScheduledEnqueueTimeUtc(scheduledEnqueueTimeUtc); org.apache.qpid.proton.message.Message amqpMessage = MessageConverter.convertBrokeredMessageToAmqpMessage((Message) message); return this.internalSender.scheduleMessageAsync( new org.apache.qpid.proton.message.Message[]{amqpMessage}, transaction, this.messagingFactory.getClientSettings().getOperationTimeout()).thenApply(sequenceNumbers -> sequenceNumbers[0]); }
this.clientSettings.getOperationTimeout(), TimerType.OneTimeRun);