Skip to content

Commit 3a4b421

Browse files
jbertramclebertsuconic
authored andcommitted
ARTEMIS-4383 migrate user docs to AsciiDoc
Markdown, which is currently used for user-facing documentation, is good for a lot of things. However, it's not great for the kind of complex documentation we have and our need to produce both multi-page HTML and single-page PDF output via Maven. Markdown lacks features which would make the documentation easier to read, easier to navigate, and just look better overall. The current tool-chain uses honkit and a tool called Calibre. Honkit is written in TypeScript and is installed via NPM. Calibre is a native tool so it must be installed via an OS-specific package manager. All this complexity makes building, releasing, uploading, etc. a pain. AsciiDoc is relatively simple like Markdown, but it has more features for presentation and navigation not to mention Java-based Maven tooling to generate both HTML and PDF. Migrating will improve both the appearance of the documentation as well as the processes to generate and upload it. This commit contains the following changes: - Convert all the Markdown for the User Manual, Migration Guide, and Hacking guide to AsciiDoc via kramdown [1]. - Update the `artemis-website` build to use AsciiDoctor Maven tooling. - Update `RELEASING.md` with simplified instructions. - Update Hacking Guide with simplified instructions. - Use AsciiDoc link syntax in Artemis Maven doc plugin. - Drop EPUB & MOBI docs for User Manual as well as PDF for the Hacking Guide. All docs will be HTML only except for the User Manual which will have PDF. - Move all docs up out of their respective "en" directory. This was a hold-over from when we had docs in different languages. - Migration & Hacking Guides are now single-page HTML since they are relatively short. - Refactor README.md to simplify and remove redundant content. Benefits of the change: - Much simplified tooling. No more NPM packages or native tools. - Auto-generated table of contents for every chapter. - Auto-generated anchor links for every sub-section. - Overall more appealing presentation. - All docs will use the ActiveMQ favicon. - No more manual line-wrapping! AsciiDoc recommends one sentence per line and paragraphs are separated by a blank line. - AsciiDoctor plugins for IDEA are quite good. - Resulting HTML is less than *half* of the previous size. All previous links/bookmarks should continue to work. [1] https://github.com/asciidoctor/kramdown-asciidoc
1 parent bce775c commit 3a4b421

File tree

279 files changed

+25171
-23469
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

279 files changed

+25171
-23469
lines changed

.gitignore

-7
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,5 @@ artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.h
3131
# generated by shade
3232
**/dependency-reduced-pom.xml
3333

34-
# gitbook output
35-
docs/user-manual/en/_book
36-
docs/hacking-guide/en/_book
37-
3834
# overlay outpit
3935
**/overlays/**/*
40-
41-
# result of gitbook pdf under docs
42-
docs/user-manual/en/book.pdf

README.md

+11-51
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,21 @@
1-
# ActiveMQ Artemis
1+
# Welcome to Apache ActiveMQ Artemis
22

3-
This file describes some minimum 'stuff one needs to know' to get started coding in this project.
3+
ActiveMQ Artemis is the next generation message broker from Apache ActiveMQ.
44

5-
## Source
5+
## Getting Started
66

7-
For details about the modifying the code, building the project, running tests, IDE integration, etc. see
8-
our [Hacking Guide](./docs/hacking-guide/en/SUMMARY.md).
7+
See the [User Manual](https://activemq.apache.org/components/artemis/documentation/latest/) for an in-depth explanation of all aspects of broker configuration and behavior.
98

10-
## Build Status
9+
The broker ships with many [examples](https://activemq.apache.org/components/artemis/documentation/latest/examples.html) which you can run, inspect, & modify.
1110

12-
Build Status: [![Build Status](https://travis-ci.org/apache/activemq-artemis.svg?branch=main)](https://travis-ci.org/apache/activemq-artemis)
11+
## How to Build, etc.
1312

14-
## Building the ASYNC IO library
13+
See the [Hacking Guide](https://activemq.apache.org/components/artemis/documentation/hacking-guide/) for details about modifying the code, building the project, running tests, IDE integration, etc.
1514

16-
ActiveMQ Artemis provides two journal persistence types, NIO (which uses the Java NIO libraries), and ASYNCIO which interacts with the linux kernel libaio library. The ASYNCIO journal type should be used where possible as it is far superior in terms of performance.
15+
## Migrate from ActiveMQ "Classic"
1716

18-
ActiveMQ Artemis does not ship with the Artemis Native ASYNCIO library in the source distribution. These need to be built prior to running "mvn install", to ensure that the ASYNCIO journal type is available in the resulting build. Don't worry if you don't want to use ASYNCIO or your system does not support libaio, ActiveMQ Artemis will check at runtime to see if the required libraries and system dependencies are available, if not it will default to using NIO.
17+
See the [Migration Guide](https://activemq.apache.org/components/artemis/migration-documentation/) for information about the architectural and configuration differences between ActiveMQ "Classic" (i.e. 5.x) and ActiveMQ Artemis.
1918

20-
To build the ActiveMQ Artemis ASYNCIO native libraries, please follow the instructions in the artemis-native/README.
19+
## Report an Issue
2120

22-
## Documentation
23-
24-
Our documentation is always in sync with our releases at the [Apache ActiveMQ Artemis](https://activemq.apache.org/artemis/docs.html) website.
25-
26-
Or you can also look at the current main version on [github](https://github.com/apache/activemq-artemis/blob/main/docs/user-manual/en/SUMMARY.md).
27-
28-
## Examples
29-
30-
To run an example firstly make sure you have run
31-
32-
$ mvn -Prelease install
33-
34-
If the project version has already been released then this is unnecessary.
35-
36-
Each individual example can be run using this command from its corresponding directory:
37-
38-
$ mvn verify
39-
40-
If you wish to run groups of examples then use this command from a parent directory (e.g. examples/features/standard):
41-
42-
$ mvn -Pexamples verify
43-
44-
### Recreating the examples
45-
46-
If you are trying to copy the examples somewhere else and modifying them. Consider asking Maven to explicitly list all the dependencies:
47-
48-
# if trying to modify the 'topic' example:
49-
cd examples/jms/topic && mvn dependency:list
50-
51-
### Open Web Application Security Project (OWASP) Report
52-
53-
If you wish to generate the report for CCV dependencies, you may run it with the -Powasp profile
54-
55-
$ mvn -Powasp verify
56-
57-
The output will be under ./target/dependency-check-report.html **for each** sub-module.
58-
59-
## Bugs
60-
61-
Issues are tracked at https://issues.apache.org/jira/projects/ARTEMIS/
21+
See [our website](https://activemq.apache.org/issues) for details on how to report an bug, request a feature, etc.

RELEASING.md

+4-15
Original file line numberDiff line numberDiff line change
@@ -315,26 +315,15 @@ Once the mirrors are up-to-date then update the following:
315315
with the HTML from the bottom of the release notes url you sent out with your VOTE email (appending `&styleName=Text`).
316316
2. Copy `src/_artemis_releases/artemis-<old-version>-release.md` to `src/_artemis_releases/artemis-<new-version>-release.md`. Update the versions and dates.
317317
3. Update the _artemis_ list within the `src/_data/current_releases.yml` file if needed.
318-
4. Copy `src/components/artemis/documentation/latest` to `src/components/artemis/documentation/<old-version>`.
318+
4. Rename `src/components/artemis/documentation/latest` to `src/components/artemis/documentation/<old-version>`.
319319
5. Build the `artemis-website` module from the new-version release sources with `mvn clean package -Prelease`.
320-
6. Create `src/components/artemis/documentation/latest` and copy these files into it:
321-
1. the contents of user-manual from `apache-artemis-<new-version>/web/user-manual`
322-
2. book.pdf version of user-manual (generated from the new-version sources at `artemis-website/target/scratch/user-manual/` with the command `gitbook pdf`)
323-
3. book.epub version of user-manual (generated from the new-version sources at `artemis-website/target/scratch/user-manual/` with the command `gitbook epub`)
324-
4. book.mobi version of user-manual (generated from the new-version sources at `artemis-website/target/scratch/user-manual/` with the command `gitbook mobi`)
325-
7. Create `src/components/artemis/documentation/hacking-guide` and copy these files into it:
326-
1. the contents of hacking-guide from `apache-artemis-<new-version>/web/hacking-guide`
327-
2. book.pdf version of hacking-guide (generated with `gitbook pdf`)
328-
8. Copy `src/components/artemis/documentation/javadocs/javadoc-latest` to `src/components/artemis/documentation/javadocs/javadoc-<old-version>`.
329-
9. Create `src/components/artemis/documentation/javadocs/javadoc-latest` and copy the contents of `apache-artemis-<new-version>/web/api` into it.
320+
6. Create `src/components/artemis/documentation/latest` and copy into it the contents of `target/classes/user-manual` from the `artemis-website` module which you just built.
321+
7. Delete `src/components/artemis/documentation/javadocs/javadoc-latest` to clear the old/existing content (in case any files are being moved/removed by the new version).
322+
8. Create `src/components/artemis/documentation/javadocs/javadoc-latest` again and copy into it the contents of `target/apidocs` from the `artemis-website` module which you just built.
330323

331324
Run `git add` for all the added directories & files and then `git commit -m "updates for <version> release"`.
332325
Once pushed, the changes should be published automatically by the `jekyll_websites` builder of the [apache buildbot](https://ci2.apache.org/#/builders).
333326

334-
Note: Generating PDFs, etc. with gitbook requires the installation of [Calibre](https://calibre-ebook.com).
335-
You can install this manually, but it is recommended you use your platform's package management to install
336-
(e.g. `sudo apt-get install calibre`).
337-
338327

339328
## Send announcement to user list
340329

artemis-distribution/src/main/assembly/source-assembly.xml

-6
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,6 @@
5252
<!-- Exclude all docs except user manual -->
5353
<exclude>docs/diagrams/</exclude>
5454

55-
<!-- Exclude stuff generated by the npm build -->
56-
<exclude>artemis-website/node/</exclude>
57-
<exclude>artemis-website/node_modules/</exclude>
58-
5955
<!-- Exclude Release and Dev files -->
6056
<exclude>RELEASING.md</exclude>
6157
<exclude>ratReport.txt</exclude>
@@ -145,8 +141,6 @@
145141
</includes>
146142
<excludes>
147143
<exclude>**/target/**</exclude>
148-
<exclude>artemis-website/node/</exclude>
149-
<exclude>artemis-website/node_modules/</exclude>
150144
</excludes>
151145
</fileSet>
152146
</fileSets>

artemis-maven-plugin/src/main/java/org/apache/activemq/artemis/maven/ArtemisDependencyDocPlugin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public int compare(Artifact o1, Artifact o2) {
210210
if (uri.equals("")) {
211211
filter.put("X{fileMD}", result.getArtifact().getFile().getName());
212212
} else {
213-
filter.put("X{fileMD}", "[" + result.getArtifact().getFile().getName() + "](" + uri + ")");
213+
filter.put("X{fileMD}", "link:" + uri + "[" + result.getArtifact().getFile().getName() + "]");
214214
}
215215

216216
String output = applyFilters(line, filter);

artemis-website/.gitignore

-2
This file was deleted.

0 commit comments

Comments
 (0)