diff --git a/pom.xml b/pom.xml
index ef15a503..b2c1603e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,6 +67,7 @@
process-asciidoc
+ index.adoc
html5
book
@@ -83,6 +84,22 @@
true
+
+ asciidoc-guides-to-html
+ generate-resources
+
+ process-asciidoc
+
+
+ ${basedir}/src/main/asciidoc/_guides
+ ${project.build.directory}/generated-docs/guides
+ html5
+
+ ../images
+ true
+
+
+
diff --git a/src/main/asciidoc/_guides/batch-processing.adoc b/src/main/asciidoc/_guides/batch-processing.adoc
new file mode 100644
index 00000000..2939d728
--- /dev/null
+++ b/src/main/asciidoc/_guides/batch-processing.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= Batch Processing
+
+:leveloffset: +1
+
+include::../batch-processing/batch-processing.adoc[]
diff --git a/src/main/asciidoc/_guides/bean-validation.adoc b/src/main/asciidoc/_guides/bean-validation.adoc
new file mode 100644
index 00000000..516b70fb
--- /dev/null
+++ b/src/main/asciidoc/_guides/bean-validation.adoc
@@ -0,0 +1,9 @@
+:toc: left
+
+= Bean Validation
+
+:leveloffset: +1
+
+include::../bean-validation/bean-validation.adoc[]
+
+include::../bean-validation-advanced/bean-validation-advanced.adoc[]
diff --git a/src/main/asciidoc/_guides/concurrency.adoc b/src/main/asciidoc/_guides/concurrency.adoc
new file mode 100644
index 00000000..9639e780
--- /dev/null
+++ b/src/main/asciidoc/_guides/concurrency.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= Concurrency
+
+:leveloffset: +1
+
+include::../concurrency-utilities/concurrency-utilities.adoc[]
diff --git a/src/main/asciidoc/_guides/connectors.adoc b/src/main/asciidoc/_guides/connectors.adoc
new file mode 100644
index 00000000..1230e74e
--- /dev/null
+++ b/src/main/asciidoc/_guides/connectors.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= Connectors
+
+:leveloffset: +1
+
+include::../connectorexample/connectorexample.adoc[]
diff --git a/src/main/asciidoc/_guides/dependency-injection.adoc b/src/main/asciidoc/_guides/dependency-injection.adoc
new file mode 100644
index 00000000..0bb3918a
--- /dev/null
+++ b/src/main/asciidoc/_guides/dependency-injection.adoc
@@ -0,0 +1,17 @@
+:toc: left
+
+= Dependency Injection
+
+:leveloffset: +1
+
+include::../injection/injection.adoc[]
+
+include::../cdi-basic/cdi-basic.adoc[]
+
+include::../cdi-basicexamples/cdi-basicexamples.adoc[]
+
+include::../cdi-adv/cdi-adv.adoc[]
+
+include::../cdi-bootstrap-se8/cdi-bootstrap-se8.adoc[]
+
+include::../cdi-adv-examples/cdi-adv-examples.adoc[]
diff --git a/src/main/asciidoc/_guides/dukes.adoc b/src/main/asciidoc/_guides/dukes.adoc
new file mode 100644
index 00000000..cb05b1f4
--- /dev/null
+++ b/src/main/asciidoc/_guides/dukes.adoc
@@ -0,0 +1,11 @@
+:toc: left
+
+= Dukes
+
+:leveloffset: +1
+
+include::../dukes-bookstore/dukes-bookstore.adoc[]
+
+include::../dukes-tutoring/dukes-tutoring.adoc[]
+
+include::../dukes-forest/dukes-forest.adoc[]
diff --git a/src/main/asciidoc/_guides/ejb.adoc b/src/main/asciidoc/_guides/ejb.adoc
new file mode 100644
index 00000000..25b47a8e
--- /dev/null
+++ b/src/main/asciidoc/_guides/ejb.adoc
@@ -0,0 +1,11 @@
+:toc: left
+
+= Jakarta Enterprise Beans
+
+:leveloffset: +1
+
+include::../ejb-intro/ejb-intro.adoc[]
+include::../ejb-gettingstarted/ejb-gettingstarted.adoc[]
+include::../ejb-basicexamples/ejb-basicexamples.adoc[]
+include::../ejb-embedded/ejb-embedded.adoc[]
+include::../ejb-async/ejb-async.adoc[]
diff --git a/src/main/asciidoc/_guides/index.adoc b/src/main/asciidoc/_guides/index.adoc
new file mode 100644
index 00000000..c29b6599
--- /dev/null
+++ b/src/main/asciidoc/_guides/index.adoc
@@ -0,0 +1,33 @@
+= Jakarta EE Tutorial
+
+== Introduction
+
+* link:overview.html[Overview]
+
+== Core Jakarta EE
+
+* link:webapp.html[Web Application concepts]
+* link:websocket.html[WebSocket]
+* link:json.html[JSON Support]
+* link:bean-validation.html[Bean Validation]
+* link:dependency-injection.html[Dependency Injection]
+* link:webservices.html[Web Services]
+* link:persistence.html[Persistence]
+* link:jms.html[Messaging]
+* link:security.html[Security]
+* link:transactions.html[Transactions]
+* link:interceptors.html[Interceptors]
+
+== Advanced concepts
+
+* link:servlets.html[Servlets]
+* link:batch-processig.html[Batch Processing]
+* link:resource-adapters.html[Resource Adapters]
+* link:concurrency.html[Concurrency]
+* link:dukes.html[Case studies]
+
+== Traditional Jakarta EE Architecture
+
+* link:jsf.html[Jakarta Server Faces]
+* link:ejb.html[Enterprise Beans]
+* link:jaxws.html[SOAP Web Services]
diff --git a/src/main/asciidoc/_guides/interceptors.adoc b/src/main/asciidoc/_guides/interceptors.adoc
new file mode 100644
index 00000000..956ca0a8
--- /dev/null
+++ b/src/main/asciidoc/_guides/interceptors.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= Interceptors
+
+:leveloffset: +1
+
+include::../interceptors/interceptors.adoc[]
diff --git a/src/main/asciidoc/_guides/jaxws.adoc b/src/main/asciidoc/_guides/jaxws.adoc
new file mode 100644
index 00000000..15f1336d
--- /dev/null
+++ b/src/main/asciidoc/_guides/jaxws.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= SOAP Web Services
+
+:leveloffset: +1
+
+include::../jaxws/jaxws.adoc[]
diff --git a/src/main/asciidoc/_guides/jms.adoc b/src/main/asciidoc/_guides/jms.adoc
new file mode 100644
index 00000000..e60e24b8
--- /dev/null
+++ b/src/main/asciidoc/_guides/jms.adoc
@@ -0,0 +1,9 @@
+:toc: left
+
+= Messaging
+
+:leveloffset: +1
+
+include::../jms-concepts/jms-concepts.adoc[]
+
+include::../jms-examples/jms-examples.adoc[]
diff --git a/src/main/asciidoc/_guides/jsf.adoc b/src/main/asciidoc/_guides/jsf.adoc
new file mode 100644
index 00000000..4f3fea23
--- /dev/null
+++ b/src/main/asciidoc/_guides/jsf.adoc
@@ -0,0 +1,29 @@
+:toc: left
+
+= Jakarta Server Faces
+
+:leveloffset: +1
+
+include::../jsf-intro/jsf-intro.adoc[]
+
+include::../jsf-facelets/jsf-facelets.adoc[]
+
+include::../jsf-el/jsf-el.adoc[]
+
+include::../jsf-page/jsf-page.adoc[]
+
+include::../jsf-page-core/jsf-page-core.adoc[]
+
+include::../jsf-develop/jsf-develop.adoc[]
+
+include::../jsf-ajax/jsf-ajax.adoc[]
+
+include::../jsf-advanced-cc/jsf-advanced-cc.adoc[]
+
+include::../jsf-custom/jsf-custom.adoc[]
+
+include::../jsf-configure/jsf-configure.adoc[]
+
+include::../jsf-ws/jsf-ws.adoc[]
+
+include::../webi18n/webi18n.adoc[]
diff --git a/src/main/asciidoc/_guides/json.adoc b/src/main/asciidoc/_guides/json.adoc
new file mode 100644
index 00000000..0581740f
--- /dev/null
+++ b/src/main/asciidoc/_guides/json.adoc
@@ -0,0 +1,9 @@
+:toc: left
+
+= JSON Support
+
+:leveloffset: +1
+
+include::../jsonp/jsonp.adoc[]
+
+include::../jsonb/jsonb.adoc[]
diff --git a/src/main/asciidoc/_guides/overview.adoc b/src/main/asciidoc/_guides/overview.adoc
new file mode 100644
index 00000000..b946cc16
--- /dev/null
+++ b/src/main/asciidoc/_guides/overview.adoc
@@ -0,0 +1,13 @@
+:toc: left
+
+= Overview
+
+:leveloffset: +1
+
+include::../overview/overview.adoc[]
+
+include::../usingexamples/usingexamples.adoc[]
+
+include::../resource-creation/resource-creation.adoc[]
+
+include::../packaging/packaging.adoc[]
diff --git a/src/main/asciidoc/_guides/persistence.adoc b/src/main/asciidoc/_guides/persistence.adoc
new file mode 100644
index 00000000..fca9b91c
--- /dev/null
+++ b/src/main/asciidoc/_guides/persistence.adoc
@@ -0,0 +1,21 @@
+:toc: left
+
+= Persistence
+
+:leveloffset: +1
+
+include::../persistence-intro/persistence-intro.adoc[]
+
+include::../persistence-basicexamples/persistence-basicexamples.adoc[]
+
+include::../persistence-querylanguage/persistence-querylanguage.adoc[]
+
+include::../persistence-criteria/persistence-criteria.adoc[]
+
+include::../persistence-string-queries/persistence-string-queries.adoc[]
+
+include::../persistence-locking/persistence-locking.adoc[]
+
+include::../persistence-entitygraphs/persistence-entitygraphs.adoc[]
+
+include::../persistence-cache/persistence-cache.adoc[]
diff --git a/src/main/asciidoc/_guides/resource-adapters.adoc b/src/main/asciidoc/_guides/resource-adapters.adoc
new file mode 100644
index 00000000..cb4a67d2
--- /dev/null
+++ b/src/main/asciidoc/_guides/resource-adapters.adoc
@@ -0,0 +1,9 @@
+:toc: left
+
+= Resource Adapters
+
+:leveloffset: +1
+
+include::../resources/resources.adoc[]
+
+include::../connectorexample/connectorexample.adoc[]
diff --git a/src/main/asciidoc/_guides/resource-creation.adoc b/src/main/asciidoc/_guides/resource-creation.adoc
new file mode 100644
index 00000000..c3f2820b
--- /dev/null
+++ b/src/main/asciidoc/_guides/resource-creation.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= Resource creation
+
+:leveloffset: +1
+
+include::../resource-creation/resource-creation.adoc[]
diff --git a/src/main/asciidoc/_guides/security.adoc b/src/main/asciidoc/_guides/security.adoc
new file mode 100644
index 00000000..dface5df
--- /dev/null
+++ b/src/main/asciidoc/_guides/security.adoc
@@ -0,0 +1,15 @@
+:toc: left
+
+= Security
+
+:leveloffset: +1
+
+include::../security-intro/security-intro.adoc[]
+
+include::../security-webtier/security-webtier.adoc[]
+
+include::../security-jakartaee/security-jakartaee.adoc[]
+
+include::../security-api/security-api.adoc[]
+
+include::../security-advanced/security-advanced.adoc[]
diff --git a/src/main/asciidoc/_guides/servlets.adoc b/src/main/asciidoc/_guides/servlets.adoc
new file mode 100644
index 00000000..1e967ee5
--- /dev/null
+++ b/src/main/asciidoc/_guides/servlets.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= Servlets
+
+:leveloffset: +1
+
+include::../servlets/servlets.adoc[]
diff --git a/src/main/asciidoc/_guides/transactions.adoc b/src/main/asciidoc/_guides/transactions.adoc
new file mode 100644
index 00000000..cb97388e
--- /dev/null
+++ b/src/main/asciidoc/_guides/transactions.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= Transactions
+
+:leveloffset: +1
+
+include::../transactions/transactions.adoc[]
diff --git a/src/main/asciidoc/_guides/webapp.adoc b/src/main/asciidoc/_guides/webapp.adoc
new file mode 100644
index 00000000..df13f834
--- /dev/null
+++ b/src/main/asciidoc/_guides/webapp.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= Web Application
+
+:leveloffset: +1
+
+include::../webapp/webapp.adoc[]
diff --git a/src/main/asciidoc/_guides/webservices.adoc b/src/main/asciidoc/_guides/webservices.adoc
new file mode 100644
index 00000000..865a8609
--- /dev/null
+++ b/src/main/asciidoc/_guides/webservices.adoc
@@ -0,0 +1,13 @@
+:toc: left
+
+= REST Web Services
+
+:leveloffset: +1
+
+include::../webservices-intro/webservices-intro.adoc[]
+
+include::../jaxrs/jaxrs.adoc[]
+
+include::../jaxrs-client/jaxrs-client.adoc[]
+
+include::../jaxrs-advanced/jaxrs-advanced.adoc[]
diff --git a/src/main/asciidoc/_guides/websocket.adoc b/src/main/asciidoc/_guides/websocket.adoc
new file mode 100644
index 00000000..b05955ab
--- /dev/null
+++ b/src/main/asciidoc/_guides/websocket.adoc
@@ -0,0 +1,7 @@
+:toc: left
+
+= WebSocket
+
+:leveloffset: +1
+
+include::../websocket/websocket.adoc[]