-
-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: first draft of JMS Binding Objects
- Loading branch information
1 parent
d979555
commit 11e3bf9
Showing
4 changed files
with
256 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$id": "http://asyncapi.com/bindings/jms/channel.json", | ||
"title": "Channel Schema", | ||
"description": "This object contains configuration for describing a JMS queue, or FIFO queue as an AsyncAPI channel. This objects only contains configuration that can not be provided in the AsyncAPI standard channel object.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"patternProperties": { | ||
"^x-[\\w\\d\\.\\-\\_]+$": { | ||
"$ref": "https://raw.githubusercontent.com/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"properties": { | ||
"destination": { | ||
"type": "string", | ||
"description": "The destination (queue) name for this channel. SHOULD only be specified if the channel name differs from the actual destination name, such as when the channel name is not a valid destination name according to the JMS Provider. Defaults to the channel name." | ||
}, | ||
"destinationType": { | ||
"type": "string", | ||
"enum": ["queue", "fifo-queue"], | ||
"default": "queue", | ||
"description": "The type of destination. SHOULD be specified to document the messaging model (point-to-point, or strict message ordering) supported by this channel." | ||
}, | ||
"bindingVersion": { | ||
"type": "string", | ||
"enum": [ | ||
"0.0.1" | ||
], | ||
"description": "The version of this binding. If omitted, 'latest' MUST be assumed." | ||
} | ||
|
||
}, | ||
"examples": [ | ||
{ | ||
"destination": "user-signed-up", | ||
"destinationType": "fifo-queue", | ||
"bindingVersion": "0.0.1" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$id": "http://asyncapi.com/bindings/jms/message.json", | ||
"title": "Message Schema", | ||
"description": "This object contains configuration for describing a JMS message as an AsyncAPI message. This objects only contains configuration that can not be provided in the AsyncAPI standard message object.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"patternProperties": { | ||
"^x-[\\w\\d\\.\\-\\_]+$": { | ||
"$ref": "https://raw.githubusercontent.com/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"properties": { | ||
"headers": { | ||
"$ref": "https://raw.githubusercontent.com/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/schema", | ||
"description": "A Schema object containing the definitions for JMS headers (protocol headers). This schema MUST be of type 'object' and have a 'properties' key. Examples of JMS protocol headers are 'JMSMessageID', 'JMSTimestamp', and 'JMSCorrelationID'." | ||
}, | ||
"bindingVersion": { | ||
"type": "string", | ||
"enum": [ | ||
"0.0.1" | ||
], | ||
"description": "The version of this binding. If omitted, 'latest' MUST be assumed." | ||
} | ||
|
||
}, | ||
"examples": [ | ||
{ | ||
"headers": { | ||
"type": "object", | ||
"required": ["JMSMessageID"], | ||
"properties": { | ||
"JMSMessageID": { | ||
"type": ["string", "null"], | ||
"description": "A unique message identifier. This may be set by your JMS Provider on your behalf." | ||
}, | ||
"JMSTimestamp": { | ||
"type": "integer", | ||
"description": "The time the message was sent. This may be set by your JMS Provider on your behalf. The time the message was sent. The value of the timestamp is the amount of time, measured in milliseconds, that has elapsed since midnight, January 1, 1970, UTC." | ||
}, | ||
"JMSDeliveryMode": { | ||
"type": "string", | ||
"enum": ["PERSISTENT", "NON_PERSISTENT"], | ||
"default": "PERSISTENT", | ||
"description": "Denotes the delivery mode for the message. This may be set by your JMS Provider on your behalf." | ||
}, | ||
"JMSPriority": { | ||
"type": "integer", | ||
"default": 4, | ||
"description": "The priority of the message. This may be set by your JMS Provider on your behalf." | ||
}, | ||
"JMSExpires": { | ||
"type": "integer", | ||
"description": "The time at which the message expires. This may be set by your JMS Provider on your behalf. A value of zero means that the message does not expire. Any non-zero value is the amount of time, measured in milliseconds, that has elapsed since midnight, January 1, 1970, UTC, at which the message will expire." | ||
}, | ||
"JMSType": { | ||
"type": ["string", "null"], | ||
"description": "The type of message. Some JMS providers use a message repository that contains the definitions of messages sent by applications. The 'JMSType' header field may reference a message's definition in the provider's repository. The JMS API does not define a standard message definition repository, nor does it define a naming policy for the definitions it contains. Some messaging systems require that a message type definition for each application message be created and that each message specify its type. In order to work with such JMS providers, JMS clients should assign a value to 'JMSType', whether the application makes use of it or not. This ensures that the field is properly set for those providers that require it." | ||
}, | ||
"JMSCorrelationID": { | ||
"type": ["string", "null"], | ||
"description": "The correlation identifier of the message. A client can use the 'JMSCorrelationID' header field to link one message with another. A typical use is to link a response message with its request message. Since each message sent by a JMS provider is assigned a message ID value, it is convenient to link messages via message ID, such message ID values must start with the 'ID:' prefix. Conversely, application-specified values must not start with the 'ID:' prefix; this is reserved for provider-generated message ID values." | ||
}, | ||
"JMSReplyTo": { | ||
"type": "string", | ||
"description": "The queue or topic that the message sender expects replies to." | ||
} | ||
} | ||
}, | ||
"bindingVersion": "0.0.1" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$id": "http://asyncapi.com/bindings/jms/server.json", | ||
"title": "Server Schema", | ||
"description": "This object contains configuration for describing a JMS broker as an AsyncAPI server. This objects only contains configuration that can not be provided in the AsyncAPI standard server object.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"patternProperties": { | ||
"^x-[\\w\\d\\.\\-\\_]+$": { | ||
"$ref": "https://raw.githubusercontent.com/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"required": ["jmsConnectionFactory"], | ||
"properties": { | ||
"jmsConnectionFactory": { | ||
"type": "string", | ||
"description": "The classname of the ConnectionFactory implementation for the JMS Provider." | ||
}, | ||
"properties": { | ||
"type": "array", | ||
"items": { | ||
"$ref": "#/schemas/property" | ||
}, | ||
"description": "Additional properties to set on the JMS ConnectionFactory implementation for the JMS Provider." | ||
}, | ||
"clientID": { | ||
"type": "string", | ||
"description": "A client identifier for applications that use this JMS connection factory. If the Client ID Policy is set to 'Restricted' (the default), then configuring a Client ID on the ConnectionFactory prevents more than one JMS client from using a connection from this factory." | ||
}, | ||
"bindingVersion": { | ||
"type": "string", | ||
"enum": [ | ||
"0.0.1" | ||
], | ||
"description": "The version of this binding. If omitted, 'latest' MUST be assumed." | ||
} | ||
|
||
}, | ||
"schemas": { | ||
"property": { | ||
"type": "object", | ||
"required": ["name", "value"], | ||
"properties": { | ||
"name": { | ||
"type": "string", | ||
"description": "The name of a property" | ||
}, | ||
"value": { | ||
"type": ["string", "boolean", "number", "null"], | ||
"description": "The name of a property" | ||
} | ||
} | ||
} | ||
}, | ||
"examples": [ | ||
{ | ||
"jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", | ||
"properties": [ | ||
{ | ||
"name": "disableTimeStampsByDefault", | ||
"value": false | ||
} | ||
], | ||
"clientID": "my-application-1", | ||
"bindingVersion": "0.0.1" | ||
} | ||
] | ||
} | ||
|