Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moved Extension Guide from old docs to library #440

Merged
merged 5 commits into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Trigger documentation build

on:
push:
branches:
- 'main'
paths:
- 'docs/**'
pull_request:
branches:
- 'main'
paths:
- 'docs/**'

env:
VALE_VERSION: ${{ vars.LIBRARY_VALE_VERSION || '3.3.0' }}

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install vale
run: |
wget "https://github.com/errata-ai/vale/releases/download/v${VALE_VERSION}/vale_${VALE_VERSION}_Linux_64-bit.tar.gz"
sudo tar -xvzf vale_${VALE_VERSION}_Linux_64-bit.tar.gz -C /usr/local/bin vale

- name: Generate Site
run: |
cd docs/_playbook/
npm install
export GIT_CREDENTIALS='https://axoniq-devops:${{ secrets.LIBRARY_DEVBOT_TOKEN }}@github.com'
echo 'Using' `vale -v`
npx antora playbook.yaml

- name: Notify AxonIQ Library (if a push to a tracked branch)
if: ${{ github.event_name == 'push'}}
uses: actions/github-script@v7
with:
github-token: ${{ secrets.LIBRARY_DEVBOT_TOKEN }}
script: |
await github.rest.actions.createWorkflowDispatch({
owner: 'AxonIQ',
repo: 'axoniq-library-site',
workflow_id: 'publish.yml',
ref: 'main'
})
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,19 @@ For more information on anything Axon, please visit our website, [http://axoniq.

## Getting started

The [reference guide](https://docs.axoniq.io) contains a separate chapter for all the extensions.
The AMQP extension description can be found [here](https://docs.axoniq.io/reference-guide/extensions/spring-amqp).
The [AxonIQ Library](https://library.axoniq.io) contains a section for the guides of all the Axon Framework extensions.
The AMQP extension guide can be found [here](https://library.axoniq.io/home/guides/axon-framework.html).

## Receiving help

Are you having trouble using the extension?
We'd like to help you out the best we can!
There are a couple of things to consider when you're traversing anything Axon:

* Checking the [reference guide](https://docs.axoniq.io/reference-guide/extensions/spring-amqp) should be your first stop,
* Checking the [reference guide](https://library.axoniq.io/axon_framework_old_ref/) should be your first stop,
gklijs marked this conversation as resolved.
Show resolved Hide resolved
as the majority of possible scenarios you might encounter when using Axon should be covered there.
* If the Reference Guide does not cover a specific topic you would've expected,
we'd appreciate if you could file an [issue](https://github.com/AxonIQ/reference-guide/issues) about it for us.
we'd appreciate if you could post a [new thread/topic on our library fourms describing the problem](https://discuss.axoniq.io/c/26).
* There is a [forum](https://discuss.axoniq.io/) to support you in the case the reference guide did not sufficiently answer your question.
Axon Framework and Server developers will help out on a best effort basis.
Know that any support from contributors on posted question is very much appreciated on the forum.
Expand Down
5 changes: 5 additions & 0 deletions docs/_playbook/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
build
node_modules
.vscode
vale
package-lock.json
24 changes: 24 additions & 0 deletions docs/_playbook/.vale.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
StylesPath = vale

MinAlertLevel = suggestion

Packages = http://github.com/AxonIQ/axoniq-vale-package/releases/latest/download/axoniq-vale-package.zip

Vocab = general, AxonIQ, Java, Names_Terms, misc

[*.{adoc,html}]
BasedOnStyles = AxonIQ, proselint, Google

Google.Headings = NO # Diasable in favor od AxonIQ one
Google.Parens = NO # Disable warning about using parens
Google.Quotes = NO # Diasable "commas and periods go inside quotation marks"
Google.WordList = NO # Disable Google's word list
Google.Passive = NO # Allow the use of Passive voice
Google.Colons = NO # Allow the use of Colons
Google.Will = NO # Allow use will
Google.Contractions = NO
Google.We = NO


AxonIQ.AcronymCase = NO
AxonIQ.HeadingTitle = NO
11 changes: 11 additions & 0 deletions docs/_playbook/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"devDependencies": {
"@antora/atlas-extension": "^1.0.0-alpha.2",
"@antora/cli": "^3.2.0-alpha.2",
"@antora/lunr-extension": "^1.0.0-alpha.8",
"@antora/site-generator": "^3.2.0-alpha.2",
"@asciidoctor/tabs": "^1.0.0-beta.6",
"@axoniq/antora-vale-extension": "^0.1.1",
"asciidoctor-kroki": "^0.17.0"
}
}
42 changes: 42 additions & 0 deletions docs/_playbook/playbook.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
site:
title: Axon AMQP Extension docs PREVIEW
start_page: amqp_extension_old_ref::index.adoc

content:
sources:
- url: ../..
start_paths: ['docs/*', '!docs/_*']

asciidoc:
attributes:
experimental: true
page-pagination: true
kroki-fetch-diagram: true
# primary-site-manifest-url: https://library.axoniq.io/site-manifest.json
extensions:
- asciidoctor-kroki
- '@asciidoctor/tabs'

antora:
extensions:
- id: prose-linting
require: '@axoniq/antora-vale-extension'
enabled: true
vale_config: .vale.ini
update_styles: true
- id: lunr
require: '@antora/lunr-extension'
enabled: true
index_latest_only: true
- id: atlas
require: '@antora/atlas-extension'

runtime:
fetch: true # fetch remote repos
log:
level: info
failure_level: error

ui:
bundle:
url: https://github.com/AxonIQ/axoniq-library-ui/releases/download/v.0.1.9/ui-bundle.zip
14 changes: 14 additions & 0 deletions docs/old-reference-guide/antora.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: amqp_extension_old_ref
title: Spring AMQP Extension Guide
version: true
prerelease: true
start_page: ROOT:index.adoc

asciidoc:
attributes:
component_description: The Spring AMQP Extension guide from the former reference guide
type: guide
group: axon-framework

nav:
- modules/nav.adoc
17 changes: 17 additions & 0 deletions docs/old-reference-guide/modules/ROOT/pages/forwarding.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
:navtitle: Forwarding events to an AMQP exchange
= Forwarding Events to an AMQP Exchange

The `SpringAMQPPublisher` forwards events to an AMQP exchange. It is initialized with a `SubscribableMessageSource`, which is generally the `EventBus` or `EventStore`. Theoretically, this could be any source of events that the publisher can subscribe to.

To forward events generated in the application to an AMQP Channel, a single line of `application.properties` configuration is sufficient:

[source,properties]
axon.amqp.exchange=ExchangeName


This will automatically send all published events to the AMQP Exchange with the given name.

By default, no AMQP transactions are used when sending. This can be overridden using the `axon.amqp.transaction-mode` property, and setting it to `transactional` or `publisher-ack`.

NOTE: Note that exchanges are not automatically created. You must still declare the Queues, Exchanges and Bindings you wish to use. Check the Spring documentation for more information.

13 changes: 13 additions & 0 deletions docs/old-reference-guide/modules/ROOT/pages/index.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
:navtitle: Spring AMQP Extension
= Spring AMPQ

Spring AMQP is an alternative approach to distributing events, besides Axon Server which is the default.

Axon provides out-of-the-box support to transfer events to and from an AMQP message broker, such as link:https://www.rabbitmq.com/[RabbitMQ,window=_blank,role=external].

To use the Spring AMQP components from Axon, make sure the `axon-amqp` module is available on the classpath.

Once added to the classpath of your application, you can use the Spring AMQP extension to:

- xref:forwarding.adoc[Forward events to an AMQP exchange]
- xref:reading.adoc[Read events from an AMQP queue]
31 changes: 31 additions & 0 deletions docs/old-reference-guide/modules/ROOT/pages/reading.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
:navtitle: Reading events from an AMQP Queue
= Reading Events from an AMQP Queue

Spring has extensive support for reading messages from an AMQP Queue. However, this needs to be 'bridged' to Axon, so that these messages can be handled from Axon as if they are regular event messages.

The `SpringAMQPMessageSource` allows event processors to read messages from a queue instead of the event store or event bus. It acts as an adapter between Spring AMQP and the `SubscribableMessageSource` needed by these processors.

To receive events from a queue and process them inside an Axon application, you need to configure a `SpringAMQPMessageSource`:

[source,java]
----
@Bean
public SpringAMQPMessageSource myQueueMessageSource(AMQPMessageConverter messageConverter) {
return new SpringAMQPMessageSource(messageConverter) {

@RabbitListener(queues = "myQueue")
@Override
public void onMessage(Message message, Channel channel) throws Exception {
super.onMessage(message, channel);
}
};
}
----
and then configure a processor to use this bean as the source for its messages:

[source,properties]
----
axon.eventhandling.processors.name.source=myQueueMessageSource
----

Note that tracking processors are not compatible with the `SpringAMQPMessageSource`.
4 changes: 4 additions & 0 deletions docs/old-reference-guide/modules/nav.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* xref:ROOT:index.adoc[]
** xref:ROOT:forwarding.adoc[]
** xref:ROOT:reading.adoc[]

Loading