Search in sources :

Example 1 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project camel by apache.

the class QueueServiceProducer method addMessage.

private void addMessage(Exchange exchange) throws Exception {
    LOG.trace("Putting the message into the queue [{}] from exchange [{}]...", getConfiguration().getQueueName(), exchange);
    CloudQueue client = QueueServiceUtil.createQueueClient(getConfiguration());
    QueueServiceRequestOptions opts = QueueServiceUtil.getRequestOptions(exchange);
    Boolean queueCreated = exchange.getIn().getHeader(QueueServiceConstants.QUEUE_CREATED, Boolean.class);
    if (Boolean.TRUE != queueCreated) {
        doCreateQueue(client, opts, exchange);
    }
    CloudQueueMessage message = getCloudQueueMessage(exchange);
    client.addMessage(message, getConfiguration().getMessageTimeToLive(), getConfiguration().getMessageVisibilityDelay(), opts.getRequestOpts(), opts.getOpContext());
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) CloudQueue(com.microsoft.azure.storage.queue.CloudQueue)

Example 2 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project camel by apache.

the class QueueServiceProducer method peekMessage.

private void peekMessage(Exchange exchange) throws Exception {
    CloudQueue client = QueueServiceUtil.createQueueClient(getConfiguration());
    QueueServiceRequestOptions opts = QueueServiceUtil.getRequestOptions(exchange);
    CloudQueueMessage message = client.peekMessage(opts.getRequestOpts(), opts.getOpContext());
    ExchangeUtil.getMessageForResponse(exchange).setBody(message);
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) CloudQueue(com.microsoft.azure.storage.queue.CloudQueue)

Example 3 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project components by Talend.

the class AzureStorageQueueInputReaderTest method testGetReturnValues.

@Test
public void testGetReturnValues() {
    try {
        properties.peekMessages.setValue(true);
        AzureStorageQueueSource source = new AzureStorageQueueSource();
        ValidationResult vr = source.initialize(getDummyRuntimeContiner(), properties);
        assertNotNull(vr);
        assertEquals(ValidationResult.OK.getStatus(), vr.getStatus());
        reader = (AzureStorageQueueInputReader) source.createReader(getDummyRuntimeContiner());
        // inject mocked service
        reader.queueService = queueService;
        final List<CloudQueueMessage> messages = new ArrayList<>();
        messages.add(new CloudQueueMessage("message-1"));
        messages.add(new CloudQueueMessage("message-2"));
        messages.add(new CloudQueueMessage("message-3"));
        when(queueService.peekMessages(anyString(), anyInt())).thenReturn(new Iterable<CloudQueueMessage>() {

            @Override
            public Iterator<CloudQueueMessage> iterator() {
                return new DummyCloudQueueMessageIterator(messages);
            }
        });
        boolean startable = reader.start();
        assertTrue(startable);
        while (reader.advance()) {
        // read all messages to init the returned values at the end
        }
        Map<String, Object> returnedValues = reader.getReturnValues();
        assertNotNull(returnedValues);
        assertEquals("some-queue-name", returnedValues.get(AzureStorageQueueDefinition.RETURN_QUEUE_NAME));
        assertEquals(3, returnedValues.get(ComponentDefinition.RETURN_TOTAL_RECORD_COUNT));
    } catch (IOException | InvalidKeyException | URISyntaxException | StorageException e) {
        fail("sould not throw " + e.getMessage());
    }
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) ArrayList(java.util.ArrayList) Matchers.anyString(org.mockito.Matchers.anyString) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) ValidationResult(org.talend.daikon.properties.ValidationResult) InvalidKeyException(java.security.InvalidKeyException) Iterator(java.util.Iterator) StorageException(com.microsoft.azure.storage.StorageException) AzureBaseTest(org.talend.components.azurestorage.AzureBaseTest) Test(org.junit.Test)

Example 4 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project components by Talend.

the class AzureStorageQueueInputReaderTest method testAdvanceAsAdvancable.

@Test
public void testAdvanceAsAdvancable() {
    try {
        properties.peekMessages.setValue(true);
        AzureStorageQueueSource source = new AzureStorageQueueSource();
        ValidationResult vr = source.initialize(getDummyRuntimeContiner(), properties);
        assertNotNull(vr);
        assertEquals(ValidationResult.OK.getStatus(), vr.getStatus());
        reader = (AzureStorageQueueInputReader) source.createReader(getDummyRuntimeContiner());
        // inject mocked service
        reader.queueService = queueService;
        final List<CloudQueueMessage> messages = new ArrayList<>();
        messages.add(new CloudQueueMessage("message-1"));
        messages.add(new CloudQueueMessage("message-2"));
        messages.add(new CloudQueueMessage("message-3"));
        when(queueService.peekMessages(anyString(), anyInt())).thenReturn(new Iterable<CloudQueueMessage>() {

            @Override
            public Iterator<CloudQueueMessage> iterator() {
                return new DummyCloudQueueMessageIterator(messages);
            }
        });
        boolean startable = reader.start();
        assertTrue(startable);
        boolean advancable = reader.advance();
        assertTrue(advancable);
    } catch (IOException | InvalidKeyException | URISyntaxException | StorageException e) {
        fail("sould not throw " + e.getMessage());
    }
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) ValidationResult(org.talend.daikon.properties.ValidationResult) InvalidKeyException(java.security.InvalidKeyException) Iterator(java.util.Iterator) StorageException(com.microsoft.azure.storage.StorageException) AzureBaseTest(org.talend.components.azurestorage.AzureBaseTest) Test(org.junit.Test)

Example 5 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project components by Talend.

the class AzureStorageQueueInputReaderTest method testStartHandleError.

@Test
public void testStartHandleError() {
    try {
        properties.peekMessages.setValue(true);
        properties.dieOnError.setValue(false);
        AzureStorageQueueSource source = new AzureStorageQueueSource();
        ValidationResult vr = source.initialize(getDummyRuntimeContiner(), properties);
        assertNotNull(vr);
        assertEquals(ValidationResult.OK.getStatus(), vr.getStatus());
        reader = (AzureStorageQueueInputReader) source.createReader(getDummyRuntimeContiner());
        // inject mocked service
        reader.queueService = queueService;
        final List<CloudQueueMessage> messages = new ArrayList<>();
        messages.add(new CloudQueueMessage("message-1"));
        when(queueService.peekMessages(anyString(), anyInt())).thenThrow(new StorageException("code", "some storage exception", new RuntimeException()));
        boolean startable = reader.start();
        assertFalse(startable);
    } catch (IOException | InvalidKeyException | URISyntaxException | StorageException e) {
        fail("sould not throw " + e.getMessage());
    }
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) ValidationResult(org.talend.daikon.properties.ValidationResult) InvalidKeyException(java.security.InvalidKeyException) StorageException(com.microsoft.azure.storage.StorageException) AzureBaseTest(org.talend.components.azurestorage.AzureBaseTest) Test(org.junit.Test)

Aggregations

CloudQueueMessage (com.microsoft.azure.storage.queue.CloudQueueMessage)34 Test (org.junit.Test)24 StorageException (com.microsoft.azure.storage.StorageException)21 IOException (java.io.IOException)21 URISyntaxException (java.net.URISyntaxException)21 InvalidKeyException (java.security.InvalidKeyException)21 ArrayList (java.util.ArrayList)20 AzureBaseTest (org.talend.components.azurestorage.AzureBaseTest)20 ValidationResult (org.talend.daikon.properties.ValidationResult)20 Iterator (java.util.Iterator)18 CloudQueue (com.microsoft.azure.storage.queue.CloudQueue)9 InvocationOnMock (org.mockito.invocation.InvocationOnMock)8 IndexedRecord (org.apache.avro.generic.IndexedRecord)6 CloudQueueClient (com.microsoft.azure.storage.queue.CloudQueueClient)3 AzureCmdException (com.microsoft.azuretools.azurecommons.helpers.AzureCmdException)3 Field (org.apache.avro.Schema.Field)3 TAzureStorageQueueOutputProperties (org.talend.components.azurestorage.queue.tazurestoragequeueoutput.TAzureStorageQueueOutputProperties)3 NotNull (com.microsoft.azuretools.azurecommons.helpers.NotNull)2 QueueMessage (com.microsoft.tooling.msservices.model.storage.QueueMessage)2 Matchers.anyString (org.mockito.Matchers.anyString)2