Skip to main content

Implements SQS JMS protocol mirroring amazon-sqs-java-messaging-lib

Project description

sqs-java-messaging

Implements the functionality of amazon-sqs-java-messaging-lib in Python

Installation

pip install sqs-java-messaging

Overview

This library supports byte and text messages in the AWS SQS Java Messaging Library format. It does not support object messages.

API

  • sqs_java_messaging.client.JMSClient

    import boto3
    from sqs_java_messaging.client import JMSClient
    
    client = JMSClient(boto3.client('sqs'))
    

    This class wraps SQS.Client objects. It provides all of the methods of those objects directly except receive_message, send_message and send_message_batch. These are replaced with receive_jms_message, send_bytes_message, send_text_message and send_jms_message_batch.

    Once created it may be used exactly as the wrapped SQS.Client object.

    • receive_jms_message(**kwargs)

      Request

      Exactly as receive_message.

      Response

      {
        'Messages': [
          {
            'MessageId': 'string',
            'ReceiptHandle': 'string',
            'MD5OfBody': 'string',
            'Body': 'string' | b'bytes',
            'Attributes': {
              'string': 'string'
            },
            'MD5OfMessageAttributes': 'string',
            'MessageAttributes': {
              'string': {
                'StringValue': 'string',
                'BinaryValue': b'bytes',
                'StringListValues': [
                  'string',
                ],
                'BinaryListValues': [
                  b'bytes',
                ],
                'DataType': 'string'
              }
            },
            'JMSMessageType': 'byte' | 'text',
            'JMSCorrelationId': 'string',
            'JMSReplyTo': {
              'QueueName': 'string',
              'QueueUrl': 'string'
            }
          },
        ]
      }
      
    • send_bytes_message(JMSReplyTo=None, JMSCorrelationId=None, **kwargs)

      Request

      The same as send_message with the following changes:

      response = client.send_bytes_message(
        JMSReplyTo={
          'QueueName': 'string',
          'QueueUrl': 'string'
        },
        JMSCorrelationId='string',
        MessageBody=b'bytes' | bytearry,
        ...
      )
      

      Response

      The same as send_message

    • send_jms_message_batch(**kwargs)

      Request

      The same as send_message_batch with the additon of JMSMessageType, JMSCorrelationId and JMSReplyTo and a modification of MessageBody.

      response = client.send_jms_message_batch(
        QueueUrl='string',
        Entries=[
          {
            'Id': 'string',
            'MessageBody': 'string' | b'bytes' | bytearry,
            'DelaySeconds': 123,
            'MessageAttributes': {
              'string': {
                'StringValue': 'string',
                'BinaryValue': b'bytes',
                'StringListValues': [
                  'string',
                ],
                'BinaryListValues': [
                  b'bytes',
                ],
                'DataType': 'string'
              }
            },
            'MessageSystemAttributes': {
              'string': {
                'StringValue': 'string',
                'BinaryValue': b'bytes',
                'StringListValues': [
                  'string',
                ],
                'BinaryListValues': [
                  b'bytes',
                ],
                'DataType': 'string'
              }
            },
            'MessageDeduplicationId': 'string',
            'MessageGroupId': 'string',
            'JMSMessageType': 'byte' | 'text',
            'JMSCorrelationId': 'string',
            'JMSReplyTo': {
              'QueueName': 'string',
              'QueueUrl': 'string'
            }
          },
        ]
      )
      

      Response

      The same as send_message_batch

    • send_text_message(JMSReplyTo=None, JMSCorrelationId=None, **kwargs)

      Request

      The same as send_message with the following additions:

      response = client.send_text_message(
        JMSReplyTo={
          'QueueName': 'string',
          'QueueUrl': 'string'
        },
        JMSCorrelationId='string',
        ...
      )
      

      Response

      The same as send_message

  • sqs_java_messaging.resource.JMSQueue

    import boto3
    from sqs_java_messaging.resource import JMSQueue
    
    queue = JMSQueue(boto3.resource('sqs').Queue('url'))
    

    This class wraps SQS.Queue objects. It provides all of the methods, attributes, identifiers, sub-resources and collections of those objects directly except receive_messages, send_message and send_messages. These are replaced with receive_jms_messages, send_bytes_message, send_text_message and send_jms_messages.

    Once created it may be used exactly as the wrapped SQS.Queue object.

    • receive_jms_messages(**kwargs)

      Request

      Exactly as receive_messages.

      Response

      list(sqs_java_messaging.message.JMSBytesMessage | sqs_java_messaging.message.JMSTextMessage)
      
    • send_bytes_message(JMSReplyTo=None, JMSCorrelationId=None, **kwargs)

      Request

      The same as send_message with the following changes:

      response = client.send_bytes_message(
        JMSReplyTo={
          'QueueName': 'string',
          'QueueUrl': 'string'
        },
        JMSCorrelationId='string',
        MessageBody=b'bytes' | bytearry,
        ...
      )
      

      Response

      The same as send_message

    • send_jms_messages(**kwargs)

      Request

      The same as send_messages with the additon of JMSMessageType, JMSCorrelationId and JMSReplyTo and a modification of MessageBody.

      response = client.send_jms_messages(
        Entries=[
          {
            'Id': 'string',
            'MessageBody': 'string' | b'bytes' | bytearry,
            'DelaySeconds': 123,
            'MessageAttributes': {
              'string': {
                'StringValue': 'string',
                'BinaryValue': b'bytes',
                'StringListValues': [
                  'string',
                ],
                'BinaryListValues': [
                  b'bytes',
                ],
                'DataType': 'string'
              }
            },
            'MessageSystemAttributes': {
              'string': {
                'StringValue': 'string',
                'BinaryValue': b'bytes',
                'StringListValues': [
                  'string',
                ],
                'BinaryListValues': [
                  b'bytes',
                ],
                'DataType': 'string'
              }
            },
            'MessageDeduplicationId': 'string',
            'MessageGroupId': 'string',
            'JMSMessageType': 'byte' | 'text',
            'JMSCorrelationId': 'string',
            'JMSReplyTo': {
              'QueueName': 'string',
              'QueueUrl': 'string'
            }
          },
        ]
      )
      

      Response

      The same as send_messages

    • send_text_message(JMSReplyTo=None, JMSCorrelationId=None, **kwargs)

      Request

      The same as send_message with the following additions:

      response = client.send_text_message(
        JMSReplyTo={
          'QueueName': 'string',
          'QueueUrl': 'string'
        },
        JMSCorrelationId='string',
        ...
      )
      

      Response

      The same as send_message

  • sqs_java_messaging.message.JMSBytesMessage and sqs_java_messaging.message.JMSTextMessage

    These classes wrap SQS.Message objects. They provide all of the methods,attributes, and identifiers of those objects directly. The sub-resource Queue() returns a JMSQueue.

    Once created it may be used exactly as the wrapped SQS.Message object.

    These are the resource's additional available attributes:

    • jms_correlation_id
    • jms_message_type
    • jms_reply_to - a dict containing the keys QueueName and QueueUrl

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqs-java-messaging-0.0.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

sqs_java_messaging-0.0.1-py2.py3-none-any.whl (11.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file sqs-java-messaging-0.0.1.tar.gz.

File metadata

  • Download URL: sqs-java-messaging-0.0.1.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.1 requests-toolbelt/0.8.0 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for sqs-java-messaging-0.0.1.tar.gz
Algorithm Hash digest
SHA256 fff0e0dd0536002ed4b81eddbb0cecf03ee58d167fd59e1d39322a5da75bfbb4
MD5 e5192bbcc7504b05cfd1daa38e9fdaf2
BLAKE2b-256 89c29a3f32f57c9d7dbed92cfaffc728315964ded4b89213399b01fa437afb69

See more details on using hashes here.

File details

Details for the file sqs_java_messaging-0.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: sqs_java_messaging-0.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.1 requests-toolbelt/0.8.0 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for sqs_java_messaging-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 635388ba17da0b8143e7afb05ce79c443f8e2a18825e26f1902a8b41096de9a7
MD5 86ed7ef4983f1c15df1826f87760a9e0
BLAKE2b-256 c996dc6cf1def1c52de7a281f0c5c986c88e050e31b12c47ee6d9c69ff1ed085

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page