Search in sources :

Example 1 with ProducerAcks

use of org.apache.pulsar.websocket.data.ProducerAcks in project pulsar by apache.

the class TopicsTest method testProduceNoSchema.

// Default schema is String schema
@Test
public void testProduceNoSchema() throws Exception {
    String topicName = "persistent://" + testTenant + "/" + testNamespace + "/" + testTopicName;
    admin.topics().createNonPartitionedTopic(topicName);
    AsyncResponse asyncResponse = mock(AsyncResponse.class);
    Consumer consumer = pulsarClient.newConsumer(StringSchema.utf8()).topic(topicName).subscriptionName("my-sub").subscriptionType(SubscriptionType.Exclusive).subscriptionInitialPosition(SubscriptionInitialPosition.Earliest).subscribe();
    ProducerMessages producerMessages = new ProducerMessages();
    String message = "[" + "{\"key\":\"my-key\",\"payload\":\"RestProducer:1\",\"eventTime\":1603045262772,\"sequenceId\":1}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:2\",\"eventTime\":1603045262772,\"sequenceId\":2}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:3\",\"eventTime\":1603045262772,\"sequenceId\":3}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:4\",\"eventTime\":1603045262772,\"sequenceId\":4}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:5\",\"eventTime\":1603045262772,\"sequenceId\":5}]";
    producerMessages.setMessages(ObjectMapperFactory.getThreadLocal().readValue(message, new TypeReference<List<ProducerMessage>>() {
    }));
    topics.produceOnPersistentTopic(asyncResponse, testTenant, testNamespace, testTopicName, false, producerMessages);
    ArgumentCaptor<Response> responseCaptor = ArgumentCaptor.forClass(Response.class);
    verify(asyncResponse, timeout(5000).times(1)).resume(responseCaptor.capture());
    Assert.assertEquals(responseCaptor.getValue().getStatus(), Response.Status.OK.getStatusCode());
    Object responseEntity = responseCaptor.getValue().getEntity();
    Assert.assertTrue(responseEntity instanceof ProducerAcks);
    ProducerAcks response = (ProducerAcks) responseEntity;
    Assert.assertEquals(response.getMessagePublishResults().size(), 5);
    Assert.assertEquals(response.getSchemaVersion(), 0);
    for (int index = 0; index < response.getMessagePublishResults().size(); index++) {
        Assert.assertEquals(Integer.parseInt(response.getMessagePublishResults().get(index).getMessageId().split(":")[2]), -1);
        Assert.assertEquals(response.getMessagePublishResults().get(index).getErrorCode(), 0);
        Assert.assertTrue(response.getMessagePublishResults().get(index).getMessageId().length() > 0);
    }
    List<String> expectedMsg = Arrays.asList("RestProducer:1", "RestProducer:2", "RestProducer:3", "RestProducer:4", "RestProducer:5");
    Message<String> msg = null;
    // Assert all messages published by REST producer can be received by consumer in expected order.
    for (int i = 0; i < 5; i++) {
        msg = consumer.receive(2, TimeUnit.SECONDS);
        Assert.assertEquals(expectedMsg.get(i), StringSchema.utf8().decode(msg.getData()));
        Assert.assertEquals("my-key", msg.getKey());
    }
}
Also used : ProducerMessage(org.apache.pulsar.websocket.data.ProducerMessage) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) AsyncResponse(javax.ws.rs.container.AsyncResponse) Response(javax.ws.rs.core.Response) Consumer(org.apache.pulsar.client.api.Consumer) ProducerMessages(org.apache.pulsar.websocket.data.ProducerMessages) TypeReference(com.fasterxml.jackson.core.type.TypeReference) AsyncResponse(javax.ws.rs.container.AsyncResponse) ProducerAcks(org.apache.pulsar.websocket.data.ProducerAcks) Test(org.testng.annotations.Test) MockedPulsarServiceBaseTest(org.apache.pulsar.broker.auth.MockedPulsarServiceBaseTest)

Example 2 with ProducerAcks

use of org.apache.pulsar.websocket.data.ProducerAcks in project pulsar by apache.

the class TopicsTest method testProduceWithRestThenConsumeWithClient.

@Test
public void testProduceWithRestThenConsumeWithClient() throws Exception {
    String topicName = "persistent://" + testTenant + "/" + testNamespace + "/" + testTopicName;
    admin.topics().createNonPartitionedTopic(topicName);
    AsyncResponse asyncResponse = mock(AsyncResponse.class);
    Schema keyValueSchema = KeyValueSchemaImpl.of(StringSchema.utf8(), StringSchema.utf8(), KeyValueEncodingType.SEPARATED);
    Consumer consumer = pulsarClient.newConsumer(keyValueSchema).topic(topicName).subscriptionName("my-sub").subscriptionType(SubscriptionType.Exclusive).subscriptionInitialPosition(SubscriptionInitialPosition.Earliest).subscribe();
    ProducerMessages producerMessages = new ProducerMessages();
    producerMessages.setKeySchema(ObjectMapperFactory.getThreadLocal().writeValueAsString(StringSchema.utf8().getSchemaInfo()));
    producerMessages.setValueSchema(ObjectMapperFactory.getThreadLocal().writeValueAsString(StringSchema.utf8().getSchemaInfo()));
    String message = "[" + "{\"key\":\"my-key\",\"payload\":\"RestProducer:1\",\"eventTime\":1603045262772,\"sequenceId\":1}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:2\",\"eventTime\":1603045262772,\"sequenceId\":2}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:3\",\"eventTime\":1603045262772,\"sequenceId\":3}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:4\",\"eventTime\":1603045262772,\"sequenceId\":4}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:5\",\"eventTime\":1603045262772,\"sequenceId\":5}]";
    producerMessages.setMessages(ObjectMapperFactory.getThreadLocal().readValue(message, new TypeReference<List<ProducerMessage>>() {
    }));
    topics.produceOnPersistentTopic(asyncResponse, testTenant, testNamespace, testTopicName, false, producerMessages);
    ArgumentCaptor<Response> responseCaptor = ArgumentCaptor.forClass(Response.class);
    verify(asyncResponse, timeout(5000).times(1)).resume(responseCaptor.capture());
    Assert.assertEquals(responseCaptor.getValue().getStatus(), Response.Status.OK.getStatusCode());
    Object responseEntity = responseCaptor.getValue().getEntity();
    Assert.assertTrue(responseEntity instanceof ProducerAcks);
    ProducerAcks response = (ProducerAcks) responseEntity;
    Assert.assertEquals(response.getMessagePublishResults().size(), 5);
    Assert.assertEquals(response.getSchemaVersion(), 0);
    for (int index = 0; index < response.getMessagePublishResults().size(); index++) {
        Assert.assertEquals(Integer.parseInt(response.getMessagePublishResults().get(index).getMessageId().split(":")[2]), -1);
        Assert.assertEquals(response.getMessagePublishResults().get(index).getErrorCode(), 0);
        Assert.assertTrue(response.getMessagePublishResults().get(index).getMessageId().length() > 0);
    }
    // Specify schema version to use existing schema.
    producerMessages = new ProducerMessages();
    producerMessages.setSchemaVersion(response.getSchemaVersion());
    message = "[" + "{\"key\":\"my-key\",\"payload\":\"RestProducer:6\",\"eventTime\":1603045262772,\"sequenceId\":1}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:7\",\"eventTime\":1603045262772,\"sequenceId\":2}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:8\",\"eventTime\":1603045262772,\"sequenceId\":3}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:9\",\"eventTime\":1603045262772,\"sequenceId\":4}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:10\",\"eventTime\":1603045262772,\"sequenceId\":5}]";
    producerMessages.setMessages(ObjectMapperFactory.getThreadLocal().readValue(message, new TypeReference<List<ProducerMessage>>() {
    }));
    topics.produceOnPersistentTopic(asyncResponse, testTenant, testNamespace, testTopicName, false, producerMessages);
    verify(asyncResponse, timeout(5000).times(1)).resume(responseCaptor.capture());
    Assert.assertEquals(responseCaptor.getValue().getStatus(), Response.Status.OK.getStatusCode());
    responseEntity = responseCaptor.getValue().getEntity();
    Assert.assertTrue(responseEntity instanceof ProducerAcks);
    response = (ProducerAcks) responseEntity;
    Assert.assertEquals(response.getMessagePublishResults().size(), 5);
    Assert.assertEquals(response.getSchemaVersion(), 0);
    for (int index = 0; index < response.getMessagePublishResults().size(); index++) {
        Assert.assertEquals(Integer.parseInt(response.getMessagePublishResults().get(index).getMessageId().split(":")[2]), -1);
        Assert.assertEquals(response.getMessagePublishResults().get(index).getErrorCode(), 0);
        Assert.assertTrue(response.getMessagePublishResults().get(index).getMessageId().length() > 0);
    }
    List<String> expectedMsg = Arrays.asList("RestProducer:1", "RestProducer:2", "RestProducer:3", "RestProducer:4", "RestProducer:5", "RestProducer:6", "RestProducer:7", "RestProducer:8", "RestProducer:9", "RestProducer:10");
    Message<String> msg = null;
    // Assert all messages published by REST producer can be received by consumer in expected order.
    for (int i = 0; i < 10; i++) {
        msg = consumer.receive(2, TimeUnit.SECONDS);
        Assert.assertEquals(expectedMsg.get(i), StringSchema.utf8().decode(msg.getData()));
        Assert.assertEquals("bXkta2V5", msg.getKey());
    }
}
Also used : JSONSchema(org.apache.pulsar.client.impl.schema.JSONSchema) AvroSchema(org.apache.pulsar.client.impl.schema.AvroSchema) StringSchema(org.apache.pulsar.client.impl.schema.StringSchema) GenericSchema(org.apache.pulsar.client.api.schema.GenericSchema) Schema(org.apache.pulsar.client.api.Schema) GenericJsonSchema(org.apache.pulsar.client.impl.schema.generic.GenericJsonSchema) GenericAvroSchema(org.apache.pulsar.client.impl.schema.generic.GenericAvroSchema) ProducerMessage(org.apache.pulsar.websocket.data.ProducerMessage) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) AsyncResponse(javax.ws.rs.container.AsyncResponse) Response(javax.ws.rs.core.Response) Consumer(org.apache.pulsar.client.api.Consumer) ProducerMessages(org.apache.pulsar.websocket.data.ProducerMessages) TypeReference(com.fasterxml.jackson.core.type.TypeReference) AsyncResponse(javax.ws.rs.container.AsyncResponse) ProducerAcks(org.apache.pulsar.websocket.data.ProducerAcks) Test(org.testng.annotations.Test) MockedPulsarServiceBaseTest(org.apache.pulsar.broker.auth.MockedPulsarServiceBaseTest)

Example 3 with ProducerAcks

use of org.apache.pulsar.websocket.data.ProducerAcks in project pulsar by apache.

the class TopicsTest method testProduceToPartitionedTopicSpecificPartition.

@Test
public void testProduceToPartitionedTopicSpecificPartition() throws Exception {
    admin.topics().createPartitionedTopic("persistent://" + testTenant + "/" + testNamespace + "/" + testTopicName, 5);
    AsyncResponse asyncResponse = mock(AsyncResponse.class);
    Schema<String> schema = StringSchema.utf8();
    ProducerMessages producerMessages = new ProducerMessages();
    producerMessages.setKeySchema(ObjectMapperFactory.getThreadLocal().writeValueAsString(schema.getSchemaInfo()));
    producerMessages.setValueSchema(ObjectMapperFactory.getThreadLocal().writeValueAsString(schema.getSchemaInfo()));
    String message = "[" + "{\"key\":\"my-key\",\"payload\":\"RestProducer:1\",\"eventTime\":1603045262772,\"sequenceId\":1}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:2\",\"eventTime\":1603045262772,\"sequenceId\":2}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:3\",\"eventTime\":1603045262772,\"sequenceId\":3}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:4\",\"eventTime\":1603045262772,\"sequenceId\":4}]";
    producerMessages.setMessages(ObjectMapperFactory.getThreadLocal().readValue(message, new TypeReference<List<ProducerMessage>>() {
    }));
    topics.produceOnPersistentTopicPartition(asyncResponse, testTenant, testNamespace, testTopicName, 2, false, producerMessages);
    ArgumentCaptor<Response> responseCaptor = ArgumentCaptor.forClass(Response.class);
    verify(asyncResponse, timeout(5000).times(1)).resume(responseCaptor.capture());
    Assert.assertEquals(responseCaptor.getValue().getStatus(), Response.Status.OK.getStatusCode());
    Object responseEntity = responseCaptor.getValue().getEntity();
    Assert.assertTrue(responseEntity instanceof ProducerAcks);
    ProducerAcks response = (ProducerAcks) responseEntity;
    Assert.assertEquals(response.getMessagePublishResults().size(), 4);
    Assert.assertEquals(response.getSchemaVersion(), 0);
    for (int index = 0; index < response.getMessagePublishResults().size(); index++) {
        Assert.assertEquals(Integer.parseInt(response.getMessagePublishResults().get(index).getMessageId().split(":")[2]), 2);
        Assert.assertEquals(response.getMessagePublishResults().get(index).getErrorCode(), 0);
        Assert.assertTrue(response.getMessagePublishResults().get(index).getMessageId().length() > 0);
    }
}
Also used : AsyncResponse(javax.ws.rs.container.AsyncResponse) Response(javax.ws.rs.core.Response) ProducerMessages(org.apache.pulsar.websocket.data.ProducerMessages) ProducerMessage(org.apache.pulsar.websocket.data.ProducerMessage) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) TypeReference(com.fasterxml.jackson.core.type.TypeReference) AsyncResponse(javax.ws.rs.container.AsyncResponse) ProducerAcks(org.apache.pulsar.websocket.data.ProducerAcks) Test(org.testng.annotations.Test) MockedPulsarServiceBaseTest(org.apache.pulsar.broker.auth.MockedPulsarServiceBaseTest)

Example 4 with ProducerAcks

use of org.apache.pulsar.websocket.data.ProducerAcks in project pulsar by apache.

the class TopicsTest method testProduceToPartitionedTopic.

@Test
public void testProduceToPartitionedTopic() throws Exception {
    admin.topics().createPartitionedTopic("persistent://" + testTenant + "/" + testNamespace + "/" + testTopicName + "-p", 5);
    AsyncResponse asyncResponse = mock(AsyncResponse.class);
    Schema<String> schema = StringSchema.utf8();
    ProducerMessages producerMessages = new ProducerMessages();
    producerMessages.setKeySchema(ObjectMapperFactory.getThreadLocal().writeValueAsString(schema.getSchemaInfo()));
    producerMessages.setValueSchema(ObjectMapperFactory.getThreadLocal().writeValueAsString(schema.getSchemaInfo()));
    String message = "[" + "{\"key\":\"my-key\",\"payload\":\"RestProducer:1\",\"eventTime\":1603045262772,\"sequenceId\":1}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:2\",\"eventTime\":1603045262772,\"sequenceId\":2}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:3\",\"eventTime\":1603045262772,\"sequenceId\":3}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:4\",\"eventTime\":1603045262772,\"sequenceId\":4}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:5\",\"eventTime\":1603045262772,\"sequenceId\":5}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:6\",\"eventTime\":1603045262772,\"sequenceId\":6}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:7\",\"eventTime\":1603045262772,\"sequenceId\":7}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:8\",\"eventTime\":1603045262772,\"sequenceId\":8}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:9\",\"eventTime\":1603045262772,\"sequenceId\":9}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:10\",\"eventTime\":1603045262772,\"sequenceId\":10}]";
    producerMessages.setMessages(ObjectMapperFactory.getThreadLocal().readValue(message, new TypeReference<List<ProducerMessage>>() {
    }));
    topics.produceOnPersistentTopic(asyncResponse, testTenant, testNamespace, testTopicName + "-p", false, producerMessages);
    ArgumentCaptor<Response> responseCaptor = ArgumentCaptor.forClass(Response.class);
    verify(asyncResponse, timeout(5000).times(1)).resume(responseCaptor.capture());
    Assert.assertEquals(responseCaptor.getValue().getStatus(), Response.Status.OK.getStatusCode());
    Object responseEntity = responseCaptor.getValue().getEntity();
    Assert.assertTrue(responseEntity instanceof ProducerAcks);
    ProducerAcks response = (ProducerAcks) responseEntity;
    Assert.assertEquals(response.getMessagePublishResults().size(), 10);
    Assert.assertEquals(response.getSchemaVersion(), 0);
    int[] messagePerPartition = new int[5];
    for (int index = 0; index < response.getMessagePublishResults().size(); index++) {
        messagePerPartition[Integer.parseInt(response.getMessagePublishResults().get(index).getMessageId().split(":")[2])]++;
        Assert.assertEquals(response.getMessagePublishResults().get(index).getErrorCode(), 0);
        Assert.assertTrue(response.getMessagePublishResults().get(index).getMessageId().length() > 0);
    }
    for (int index = 0; index < messagePerPartition.length; index++) {
        // We publish to each partition in round robin mode so each partition should get at most 2 message.
        Assert.assertTrue(messagePerPartition[index] <= 2);
    }
}
Also used : AsyncResponse(javax.ws.rs.container.AsyncResponse) Response(javax.ws.rs.core.Response) ProducerMessages(org.apache.pulsar.websocket.data.ProducerMessages) ProducerMessage(org.apache.pulsar.websocket.data.ProducerMessage) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) TypeReference(com.fasterxml.jackson.core.type.TypeReference) AsyncResponse(javax.ws.rs.container.AsyncResponse) ProducerAcks(org.apache.pulsar.websocket.data.ProducerAcks) Test(org.testng.annotations.Test) MockedPulsarServiceBaseTest(org.apache.pulsar.broker.auth.MockedPulsarServiceBaseTest)

Example 5 with ProducerAcks

use of org.apache.pulsar.websocket.data.ProducerAcks in project pulsar by apache.

the class TopicsTest method testProduceFailed.

@Test
public void testProduceFailed() throws Exception {
    admin.topics().createNonPartitionedTopic("persistent://" + testTenant + "/" + testNamespace + "/" + testTopicName);
    pulsar.getBrokerService().getTopic("persistent://" + testTenant + "/" + testNamespace + "/" + testTopicName, false).thenAccept(topic -> {
        try {
            PersistentTopic mockPersistentTopic = spy((PersistentTopic) topic.get());
            AtomicInteger count = new AtomicInteger();
            doAnswer(new Answer() {

                @Override
                public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                    Topic.PublishContext publishContext = invocationOnMock.getArgument(1);
                    if (count.getAndIncrement() < 2) {
                        publishContext.completed(null, -1, -1);
                    } else {
                        publishContext.completed(new BrokerServiceException.TopicFencedException("Fake exception"), -1, -1);
                    }
                    return null;
                }
            }).when(mockPersistentTopic).publishMessage(any(), any());
            BrokerService mockBrokerService = spy(pulsar.getBrokerService());
            doReturn(CompletableFuture.completedFuture(Optional.of(mockPersistentTopic))).when(mockBrokerService).getTopic(anyString(), anyBoolean());
            doReturn(mockBrokerService).when(pulsar).getBrokerService();
            AsyncResponse asyncResponse = mock(AsyncResponse.class);
            Schema<String> schema = StringSchema.utf8();
            ProducerMessages producerMessages = new ProducerMessages();
            producerMessages.setKeySchema(ObjectMapperFactory.getThreadLocal().writeValueAsString(schema.getSchemaInfo()));
            producerMessages.setValueSchema(ObjectMapperFactory.getThreadLocal().writeValueAsString(schema.getSchemaInfo()));
            String message = "[" + "{\"key\":\"my-key\",\"payload\":\"RestProducer:1\",\"eventTime\":1603045262772,\"sequenceId\":1}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:2\",\"eventTime\":1603045262772,\"sequenceId\":2}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:3\",\"eventTime\":1603045262772,\"sequenceId\":3}," + "{\"key\":\"my-key\",\"payload\":\"RestProducer:4\",\"eventTime\":1603045262772,\"sequenceId\":4}]";
            producerMessages.setMessages(ObjectMapperFactory.getThreadLocal().readValue(message, new TypeReference<List<ProducerMessage>>() {
            }));
            // Previous request should trigger namespace bundle loading, retry produce.
            topics.produceOnPersistentTopic(asyncResponse, testTenant, testNamespace, testTopicName, false, producerMessages);
            ArgumentCaptor<Response> responseCaptor = ArgumentCaptor.forClass(Response.class);
            verify(asyncResponse, timeout(5000).times(1)).resume(responseCaptor.capture());
            Assert.assertEquals(responseCaptor.getValue().getStatus(), Response.Status.OK.getStatusCode());
            Object responseEntity = responseCaptor.getValue().getEntity();
            Assert.assertTrue(responseEntity instanceof ProducerAcks);
            ProducerAcks response = (ProducerAcks) responseEntity;
            Assert.assertEquals(response.getMessagePublishResults().size(), 4);
            int errorResponse = 0;
            for (int index = 0; index < response.getMessagePublishResults().size(); index++) {
                int errorCode = response.getMessagePublishResults().get(index).getErrorCode();
                if (0 == errorCode) {
                    Assert.assertEquals(Integer.parseInt(response.getMessagePublishResults().get(index).getMessageId().split(":")[2]), -1);
                    Assert.assertTrue(response.getMessagePublishResults().get(index).getMessageId().length() > 0);
                } else {
                    errorResponse++;
                    Assert.assertEquals(errorCode, 2);
                    Assert.assertEquals(response.getMessagePublishResults().get(index).getErrorMsg(), "org.apache.pulsar.broker.service.BrokerServiceException$" + "TopicFencedException: Fake exception");
                }
            }
            // Add entry start to fail after 2nd operation, we published 4 msg so expecting 2 error response.
            Assert.assertTrue(errorResponse == 2);
        } catch (Throwable e) {
            Assert.fail(e.getMessage());
        }
    }).get();
}
Also used : ClusterDataImpl(org.apache.pulsar.common.policies.data.ClusterDataImpl) KeyValueSchemaImpl(org.apache.pulsar.client.impl.schema.KeyValueSchemaImpl) Arrays(java.util.Arrays) Topic(org.apache.pulsar.broker.service.Topic) ObjectMapperFactory(org.apache.pulsar.common.util.ObjectMapperFactory) Producer(org.apache.pulsar.client.api.Producer) Test(org.testng.annotations.Test) AfterMethod(org.testng.annotations.AfterMethod) GenericSchemaImpl(org.apache.pulsar.client.impl.schema.generic.GenericSchemaImpl) AuthenticationDataHttps(org.apache.pulsar.broker.authentication.AuthenticationDataHttps) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Mockito.doAnswer(org.mockito.Mockito.doAnswer) RestException(org.apache.pulsar.broker.web.RestException) TypeReference(com.fasterxml.jackson.core.type.TypeReference) Mockito.doReturn(org.mockito.Mockito.doReturn) EncoderFactory(org.apache.avro.io.EncoderFactory) Utf8(org.apache.avro.util.Utf8) AsyncResponse(javax.ws.rs.container.AsyncResponse) BeforeMethod(org.testng.annotations.BeforeMethod) BrokerService(org.apache.pulsar.broker.service.BrokerService) Sets(com.google.common.collect.Sets) MockedPulsarServiceBaseTest(org.apache.pulsar.broker.auth.MockedPulsarServiceBaseTest) Consumer(org.apache.pulsar.client.api.Consumer) ProducerAcks(org.apache.pulsar.websocket.data.ProducerAcks) PersistentTopic(org.apache.pulsar.broker.service.persistent.PersistentTopic) List(java.util.List) Response(javax.ws.rs.core.Response) Optional(java.util.Optional) JSONSchema(org.apache.pulsar.client.impl.schema.JSONSchema) UriInfo(javax.ws.rs.core.UriInfo) TenantInfoImpl(org.apache.pulsar.common.policies.data.TenantInfoImpl) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Whitebox(org.powermock.reflect.Whitebox) ProducerMessage(org.apache.pulsar.websocket.data.ProducerMessage) ByteArrayOutputStream(java.io.ByteArrayOutputStream) CompletableFuture(java.util.concurrent.CompletableFuture) NamespaceService(org.apache.pulsar.broker.namespace.NamespaceService) Message(org.apache.pulsar.client.api.Message) SubscriptionInitialPosition(org.apache.pulsar.client.api.SubscriptionInitialPosition) ArgumentMatchers.anyBoolean(org.mockito.ArgumentMatchers.anyBoolean) Mockito.spy(org.mockito.Mockito.spy) ProducerMessages(org.apache.pulsar.websocket.data.ProducerMessages) GenericData(org.apache.avro.generic.GenericData) KeyValue(org.apache.pulsar.common.schema.KeyValue) Answer(org.mockito.stubbing.Answer) Mockito.timeout(org.mockito.Mockito.timeout) InvocationOnMock(org.mockito.invocation.InvocationOnMock) ArgumentCaptor(org.mockito.ArgumentCaptor) Assert(org.testng.Assert) KeyValueEncodingType(org.apache.pulsar.common.schema.KeyValueEncodingType) SchemaDefinition(org.apache.pulsar.client.api.schema.SchemaDefinition) TopicDomain(org.apache.pulsar.common.naming.TopicDomain) AvroSchema(org.apache.pulsar.client.impl.schema.AvroSchema) StringSchema(org.apache.pulsar.client.impl.schema.StringSchema) GenericRecord(org.apache.avro.generic.GenericRecord) GenericSchema(org.apache.pulsar.client.api.schema.GenericSchema) GenericAvroRecord(org.apache.pulsar.client.impl.schema.generic.GenericAvroRecord) GenericJsonRecord(org.apache.pulsar.client.impl.schema.generic.GenericJsonRecord) ReflectDatumWriter(org.apache.avro.reflect.ReflectDatumWriter) BrokerServiceException(org.apache.pulsar.broker.service.BrokerServiceException) PulsarService(org.apache.pulsar.broker.PulsarService) SubscriptionType(org.apache.pulsar.client.api.SubscriptionType) Schema(org.apache.pulsar.client.api.Schema) Mockito.verify(org.mockito.Mockito.verify) GenericJsonSchema(org.apache.pulsar.client.impl.schema.generic.GenericJsonSchema) TimeUnit(java.util.concurrent.TimeUnit) JsonEncoder(org.apache.avro.io.JsonEncoder) Topics(org.apache.pulsar.broker.rest.Topics) Data(lombok.Data) GenericAvroSchema(org.apache.pulsar.client.impl.schema.generic.GenericAvroSchema) AllArgsConstructor(lombok.AllArgsConstructor) NoArgsConstructor(lombok.NoArgsConstructor) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) ArgumentCaptor(org.mockito.ArgumentCaptor) JSONSchema(org.apache.pulsar.client.impl.schema.JSONSchema) AvroSchema(org.apache.pulsar.client.impl.schema.AvroSchema) StringSchema(org.apache.pulsar.client.impl.schema.StringSchema) GenericSchema(org.apache.pulsar.client.api.schema.GenericSchema) Schema(org.apache.pulsar.client.api.Schema) GenericJsonSchema(org.apache.pulsar.client.impl.schema.generic.GenericJsonSchema) GenericAvroSchema(org.apache.pulsar.client.impl.schema.generic.GenericAvroSchema) BrokerServiceException(org.apache.pulsar.broker.service.BrokerServiceException) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) AsyncResponse(javax.ws.rs.container.AsyncResponse) Response(javax.ws.rs.core.Response) Mockito.doAnswer(org.mockito.Mockito.doAnswer) Answer(org.mockito.stubbing.Answer) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) InvocationOnMock(org.mockito.invocation.InvocationOnMock) PersistentTopic(org.apache.pulsar.broker.service.persistent.PersistentTopic) ProducerMessages(org.apache.pulsar.websocket.data.ProducerMessages) List(java.util.List) Topic(org.apache.pulsar.broker.service.Topic) PersistentTopic(org.apache.pulsar.broker.service.persistent.PersistentTopic) AsyncResponse(javax.ws.rs.container.AsyncResponse) ProducerAcks(org.apache.pulsar.websocket.data.ProducerAcks) BrokerService(org.apache.pulsar.broker.service.BrokerService) Test(org.testng.annotations.Test) MockedPulsarServiceBaseTest(org.apache.pulsar.broker.auth.MockedPulsarServiceBaseTest)

Aggregations

ProducerAcks (org.apache.pulsar.websocket.data.ProducerAcks)36 ProducerMessage (org.apache.pulsar.websocket.data.ProducerMessage)36 TypeReference (com.fasterxml.jackson.core.type.TypeReference)30 AsyncResponse (javax.ws.rs.container.AsyncResponse)30 Response (javax.ws.rs.core.Response)30 MockedPulsarServiceBaseTest (org.apache.pulsar.broker.auth.MockedPulsarServiceBaseTest)30 ProducerMessages (org.apache.pulsar.websocket.data.ProducerMessages)30 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)30 Test (org.testng.annotations.Test)30 Consumer (org.apache.pulsar.client.api.Consumer)21 GenericSchema (org.apache.pulsar.client.api.schema.GenericSchema)12 CompletableFuture (java.util.concurrent.CompletableFuture)9 BrokerServiceException (org.apache.pulsar.broker.service.BrokerServiceException)9 RestException (org.apache.pulsar.broker.web.RestException)9 Message (org.apache.pulsar.client.api.Message)9 Schema (org.apache.pulsar.client.api.Schema)9 AvroSchema (org.apache.pulsar.client.impl.schema.AvroSchema)9 JSONSchema (org.apache.pulsar.client.impl.schema.JSONSchema)9 StringSchema (org.apache.pulsar.client.impl.schema.StringSchema)9 GenericAvroSchema (org.apache.pulsar.client.impl.schema.generic.GenericAvroSchema)9