All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.azure.servicebus.MessageSession Maven / Gradle / Ivy

Go to download

Java library for Azure Service Bus. Please note, a newer package com.azure:azure-messaging-servicebus for Azure Service Bus is available as of December 2020. While this package will continue to receive critical bug fixes, we strongly encourage you to upgrade. Read the migration guide at https://aka.ms/azsdk/java/migrate/sb for more details.

There is a newer version: 3.6.7
Show newest version
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

package com.microsoft.azure.servicebus;

import java.io.InputStream;
import java.time.Instant;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;

import com.microsoft.azure.servicebus.primitives.ConnectionStringBuilder;
import com.microsoft.azure.servicebus.primitives.CoreMessageReceiver;
import com.microsoft.azure.servicebus.primitives.MessagingFactory;
import com.microsoft.azure.servicebus.primitives.ServiceBusException;
import com.microsoft.azure.servicebus.primitives.StringUtil;

public class MessageSession extends MessageReceiver implements IMessageSession {
    private String requestedSessionId;

    MessageSession(ConnectionStringBuilder amqpConnectionStringBuilder, String requestedSessionId, ReceiveMode receiveMode) {
        super(amqpConnectionStringBuilder, receiveMode);
        this.requestedSessionId = requestedSessionId;
    }

    MessageSession(MessagingFactory messagingFactory, String entityPath, String requestedSessionId, ReceiveMode receiveMode) {
        super(messagingFactory, entityPath, receiveMode);
        this.requestedSessionId = requestedSessionId;
    }

    @Override
    protected final boolean isSessionReceiver() {
        return true;
    }

    @Override
    protected boolean isBrowsableSession() {
        return false;
    }

    @Override
    protected String getRequestedSessionId() {
        return this.requestedSessionId;
    }

    @Override
    public Instant getLockedUntilUtc() {
        return this.getInternalReceiver().getSessionLockedUntilUtc();
    }

    @Override
    public void renewSessionLock() throws InterruptedException, ServiceBusException {
        Utils.completeFuture(this.renewSessionLockAsync());
    }

    @Override
    public CompletableFuture renewSessionLockAsync() {
        return this.getInternalReceiver().renewSessionLocksAsync();
    }

    @Override
    public void setState(byte[] sessionState) throws InterruptedException, ServiceBusException {
        Utils.completeFuture(this.setStateAsync(sessionState));
    }

    @Override
    public CompletableFuture setStateAsync(byte[] sessionState) {
        return this.getInternalReceiver().setSessionStateAsync(sessionState);
    }

    @Override
    public byte[] getState() throws InterruptedException, ServiceBusException {
        return Utils.completeFuture(this.getStateAsync());
    }

    @Override
    public CompletableFuture getStateAsync() {
        return this.getInternalReceiver().getSessionStateAsync();
    }

    @Override
    public String getSessionId() {
        return this.getInternalReceiver().getSessionId();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy