@asyncapi/java-spring-template
Version:
Java Spring template for AsyncAPI generator.
73 lines (70 loc) • 3.83 kB
YAML
{%- set hasSubscribe = false -%}
{%- set hasPublish = false -%}
{%- for channelName, channel in asyncapi.channels() -%}
{%- if channel.hasPublish() -%}
{%- set hasPublish = true -%}
{%- endif -%}
{%- if channel.hasSubscribe() -%}
{%- set hasSubscribe = true -%}
{%- endif -%}
{%- endfor -%}
{%- for serverName, server in asyncapi.servers() %}{% if server.protocol() == 'amqp' %}
amqp:
broker: {% for line in server.description() | splitByLines %}
host: {% if server.variable('port') %}{{server.url() | replace('{port}', server.variable('port').defaultValue())}}{% else %}{{server.url()}}{% endif %}
port: {% if server.variable('port') %}{{server.variable('port').defaultValue()}}{% endif %}
username: {% if server.variable('username') %}{{server.variable('username').defaultValue()}}{% endif %}
password:
{% for channelName, channel in asyncapi.channels() %}
{{channelName | toAmqpNeutral(channel.hasParameters(), channel.parameters())}}:
{% if channel.binding('amqp') and channel.binding('amqp').exchange %}exchange: {{channel.binding('amqp').exchange.name}}{% endif %}
routingKey: {{channelName | toAmqpKey(channel.hasParameters(), channel.parameters())}}
{% if channel.binding('amqp') and channel.binding('amqp').queue %}queue: {{channel.binding('amqp').queue.name}}{% endif %}
{% endfor %}
{% endif %}
{% if server.protocol() == 'mqtt' %}
mqtt:
broker: {% for line in server.description() | splitByLines %}
address: {% if server.variable('port') %}{{server.url() | replace('{port}', server.variable('port').defaultValue())}}{% else %}{{server.url()}}{% endif %}
username:
password:
{% if params.mqttClientId %}
clientId : {{ params.mqttClientId }}
{% elif server.binding('mqtt') and server.binding('mqtt').clientId %}
clientId: {{ server.binding('mqtt').clientId }}
{% else %}
clientId: default
{% endif %}
{% if server.binding('mqtt') and server.binding('mqtt').cleanSession | isDefined %}cleanSession: {{server.binding('mqtt').cleanSession}}{% endif %}
{% if server.binding('mqtt') and server.binding('mqtt').lastWill %}lastWill:
topic: {{server.binding('mqtt').lastWill.topic}}
message: {{server.binding('mqtt').lastWill.message}}
qos: {{server.binding('mqtt').lastWill.qos}}
retain: {{server.binding('mqtt').lastWill.retain}}
{% endif %}
timeout:
completion: {{params.completionTimeout}}
disconnection: {{params.disconnectionTimeout}}
connection: {{params.connectionTimeout}}
{% if server.binding('mqtt') and server.binding('mqtt').keepAlive | isDefined %}keepAlive: {{server.binding('mqtt').keepAlive}}{% endif %}
topic:
{%- for channelName, channel in asyncapi.channels() %}{% if channel.hasPublish() %}
{{channel.publish().id() | camelCase}}: {{channelName | toMqttTopicString(channel.hasParameters(), channel.parameters()) }}
{%- elif channel.hasSubscribe() %}
{{channel.subscribe().id() | camelCase}}: {{channelName}}
{%- endif %}{% endfor %}
{% endif %}{% endfor %}
{%- if asyncapi | isProtocol('kafka') %}
spring:
kafka: {% for serverName, server in asyncapi.servers() %}
bootstrap-servers: {% for serverName, server in asyncapi.servers() %}{% if server.variable('port') %}{{server.url() | replace('{port}', server.variable('port').defaultValue())}}{% else %}{{server.url()}}{% endif %}{% if not loop.last %},{% endif %}{% endfor %}
{%- if hasPublish %}
listener:
poll-timeout: {{params.listenerPollTimeout}}
concurrency: {{params.listenerConcurrency}}
{% endif %}
{% endif %}