You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/03/29 08:52:36 UTC

[isis] branch ISIS-2484 created (now 3aaceae)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch ISIS-2484
in repository https://gitbox.apache.org/repos/asf/isis.git.


      at 3aaceae  ISIS-2484: moves overview into core (design docs)

This branch includes the following new commits:

     new 3aaceae  ISIS-2484: moves overview into core (design docs)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[isis] 01/01: ISIS-2484: moves overview into core (design docs)

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2484
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 3aaceae18d8ffc0cee6715415e3c8370992b4c7a
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 09:52:08 2021 +0100

    ISIS-2484: moves overview into core (design docs)
---
 .../pages/building-docs-and-website.adoc           |  22 ++-
 .../components/docs/modules/ROOT/pages/about.adoc  |   2 +-
 .../ROOT/pages/landing-page/components.adoc        |   8 +-
 .../ROOT/partials/module-nav/components.adoc       |   2 +-
 .../modules/ROOT/pages/2021/2.0.0-M5/relnotes.adoc |   2 +-
 .../adoc}/modules/_overview/nav.adoc               |   0
 .../adoc}/modules/_overview/pages/about.adoc       |   0
 isis-tooling.yml                                   | 152 ++++++++++-----------
 persistence/jdo/adoc/modules/ROOT/pages/about.adoc |   9 +-
 .../jdo/adoc/modules/ROOT/pages/db-schemas.adoc    |   2 +-
 ...nfiguring.adoc => setup-and-configuration.adoc} |   9 +-
 .../jdo/adoc/modules/ROOT/partials/module-nav.adoc |   3 +-
 scripts/ci/_adoc-gen-projdoc.sh                    |   5 +-
 .../main/java/org/apache/isis/tooling/cli/Cli.java |  21 ++-
 .../isis/tooling/cli/CliCommandAbstract.java       |  14 +-
 .../org/apache/isis/tooling/cli/CliConfig.java     |  46 ++++---
 .../cli/adocfix/OrphanedIncludeStatementFixer.java |   2 +-
 .../isis/tooling/cli/projdoc/ProjectDocWriter.java |  39 +++---
 18 files changed, 189 insertions(+), 149 deletions(-)

diff --git a/antora/components/conguide/modules/documentation/pages/building-docs-and-website.adoc b/antora/components/conguide/modules/documentation/pages/building-docs-and-website.adoc
index f1353a8..98252ef 100644
--- a/antora/components/conguide/modules/documentation/pages/building-docs-and-website.adoc
+++ b/antora/components/conguide/modules/documentation/pages/building-docs-and-website.adoc
@@ -44,15 +44,25 @@ Even if you don't use IntelliJ as your primary IDE, it's worth using it for writ
 
 == Build
 
-To build the website:
+The `preview.sh` script can be used to build the website, also calling the documentation tooling that automates documentation from code (the xref:core:_overview:about.adoc[System Overview], large parts of the xref:refguide::about.adoc[Reference Guide] and the xref:refguide:config:about.adoc[Configuration Guide]).
 
-* use `build-site.sh`; or even better ...
-* use `preview.sh`, to build and then preview in a web browser
+Use `preview.sh -h` to view options.
+The lower case flags skip steps, while the upper case flags exclude all steps except those indicated:
 
-Both scripts can be found at the root of this git repo.
+* `preview.sh`
++
+builds everything and serves up the site
+
+* `preview.sh -AS`
++
+runs only Antora generation and serves up the site
+
+* `preview.sh -ekcdl`
++
+does the same thing, by skipping the other 5 steps.
+
+The script can be found at the root of this git repo.
 
 
-== Updating the Generated System Overview
 
-The xref:refguide:_overview:about.adoc[System Overview] contains a set of `.adoc` files that are generated from Java classes.
 
diff --git a/antora/components/docs/modules/ROOT/pages/about.adoc b/antora/components/docs/modules/ROOT/pages/about.adoc
index 2bb8845..e8772e3 100644
--- a/antora/components/docs/modules/ROOT/pages/about.adoc
+++ b/antora/components/docs/modules/ROOT/pages/about.adoc
@@ -140,8 +140,8 @@ _Process_
 
 _Design_
 
-* xref:refguide:_overview:about.adoc[System Overview]
 * xref:core:ROOT:about.adoc[Core Framework]
+** xref:core:_overview:about.adoc[System Overview]
 
 _Analysis_
 
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
index 79dd335..2f00dae 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
@@ -7,17 +7,17 @@ This page provides user/config guides for each of the main components of the fra
 
 == Overview
 
-xref:refguide:_overview:about.adoc[System Overview]
+xref:core:_overview:about.adoc[System Overview]
 
 == Viewers
 
 The framework provides two viewers that will automatically render the domain objects in your application into the presentation layer:
 
-* xref:vw:ROOT:about.adoc[Wicket]
+* xref:vw:ROOT:about.adoc[Web UI (Wicket)]
 +
-Provides a human-usable UI, styled using Bootstrap.
+Provides a human-usable UI, implemented using https://wicket.apache.org[Apache Wicket], and styled using Bootstrap.
 
-* xref:vro:ROOT:about.adoc[Restful Objects (REST API)]
+* xref:vro:ROOT:about.adoc[REST API (Restful Objects)]
 +
 Presents your domain objects in JSON representations, compliant either with link:http://restfulobjects.org[Restful Objects] specification or one of a number of other representations.
 
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
index 3ac57a5..d8a015b 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
@@ -5,7 +5,7 @@
 
 ** Overview
 
-*** xref:refguide:_overview:about.adoc[System Overview]
+*** xref:core:_overview:about.adoc[System Overview]
 
 ** Viewers
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M5/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M5/relnotes.adoc
index 6cba163..6280394 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M5/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M5/relnotes.adoc
@@ -16,7 +16,7 @@ The notion of xref:refguide:applib:index/id/LogicalType.adoc[LogicalType] was al
 
 One notable breaking change: the XSDs for schemas were changed, with `transactionId` being renamed to `interactionId`.
 
-Documentation tooling was also developed to automate large parts of the xref:refguide::about.adoc[Reference Guide], as well as to provide a xref:refguide:_overview:about.adoc[System Overview].
+Documentation tooling was also developed to automate large parts of the xref:refguide::about.adoc[Reference Guide], as well as to provide a xref:core:_overview:about.adoc[System Overview].
 
 
 
diff --git a/antora/components/refguide-index/modules/_overview/nav.adoc b/core/adoc/modules/_overview/nav.adoc
similarity index 100%
rename from antora/components/refguide-index/modules/_overview/nav.adoc
rename to core/adoc/modules/_overview/nav.adoc
diff --git a/antora/components/refguide-index/modules/_overview/pages/about.adoc b/core/adoc/modules/_overview/pages/about.adoc
similarity index 100%
rename from antora/components/refguide-index/modules/_overview/pages/about.adoc
rename to core/adoc/modules/_overview/pages/about.adoc
diff --git a/isis-tooling.yml b/isis-tooling.yml
index b3aa3fc..971369b 100644
--- a/isis-tooling.yml
+++ b/isis-tooling.yml
@@ -17,88 +17,88 @@
 #  under the License.
 #
 
-global:
-  namespacePartsSkipCount: 3
-
-  sections:
-    App: org.apache.isis.app.*
-    Mavendeps: org.apache.isis.mavendeps.*
-    Testing: org.apache.isis.testing.*
-    Examples: org.apache.isis.examples.*
-
-    Root: org.apache.isis
-    Commons: org.apache.isis.commons.*
-
-    Core: org.apache.isis.core.*
-
-    Persistence: org.apache.isis.persistence
-    JDO: "org.apache.isis.persistence:isis-persistence-jdo.*"
-    JPA: "org.apache.isis.persistence:isis-persistence-jpa.*"
-
-    Security: org.apache.isis.security
-    Bypass: "org.apache.isis.security:isis-security-bypass.*"
-    Keycloak: "org.apache.isis.security:isis-security-keycloak.*"
-    Shiro: "org.apache.isis.security:isis-security-shiro.*"
-
-    Viewer: org.apache.isis.viewer
-    "Restful Objects": "org.apache.isis.viewer:isis-viewer-restfulobjects.*"
-    Wicket: "org.apache.isis.viewer:isis-viewer-wicket.*"
-
-    Valuetypes: org.apache.isis.valuetypes.*
-    "Asciidoc": "org.apache.isis.valuetypes:isis-valuetypes-asciidoc.*"
-    "Markdown": "org.apache.isis.valuetypes:isis-valuetypes-markdown.*"
-    "SSE": "org.apache.isis.valuetypes:isis-valuetypes-ssec.*"
-
-    Mappings: org.apache.isis.mappings
-    #"Outbox Publisher": org.apache.isis.mappings:isis-mappings-jaxrsclient.*
-    "JAX-RS Client Library": "org.apache.isis.mappings:isis-mappings-jaxrsclient.*"
-    #Minio: "org.apache.isis.mappings:isis-mappings-minio.*"
-    "REST Client": "org.apache.isis.mappings:isis-mappings-restclient.*"
-    #"Slack Library": "org.apache.isis.mappings:isis-mappings-slack.*"
-
-    Extensions: org.apache.isis.extensions
-    "Core: Command Log": "org.apache.isis.extensions:isis-extensions-command-log.*"
-    "Core: Command Replay": "org.apache.isis.extensions:isis-extensions-command-replay.*"
-    #"Core: Flyway": "org.apache.isis.extensions:isis-extensions-flyway.*"
-    "Core: Model Annotation": "org.apache.isis.extensions:isis-extensions-modelannotation.*"
-    "Core: Quartz": "org.apache.isis.extensions:isis-extensions-quartz.*"
-    #"Security: Audit Trail": "org.apache.isis.security:isis-extensions-audit-trail.*"
-    "Security: Secman": "org.apache.isis.security:isis-extensions-secman.*"
-    #"Security: Session Log": "org.apache.isis.security:isis-extensions-session-log.*"
-    "Security: Shiro LDAP Realm": "org.apache.isis.security:isis-extensions-shiro-realm-ldap.*"
-    "RO Viewer: CORS": "org.apache.isis.security:isis-extensions-cors.*"
-    "Wicket Viewer: Excel Download": "org.apache.isis.security:isis-extensions-exceldownload.*"
-    "Wicket Viewer: Full Calendar": "org.apache.isis.security:isis-extensions-fullcalendar.*"
-    #"Wicket Viewer: Gmap3": "org.apache.isis.security:isis-extensions-gmap3.*"
-    "Wicket Viewer: Pdf.js": "org.apache.isis.security:isis-extensions-fullcalendar.*"
-
-    Subdomains: org.apache.isis.subdomains
-    "Base": "org.apache.isis.subdomains:isis-subdomains-base.*"
-    #"docx": "org.apache.isis.subdomains:isis-subdomains-docx.*"
-    "Excel": "org.apache.isis.subdomains:isis-subdomains-excel.*"
-    #"Freemarker": "org.apache.isis.subdomains:isis-subdomains-freemarker.*"
-    #"OGNL": "org.apache.isis.subdomains:isis-subdomains-ognl.*"
-    #"PDF Box": "org.apache.isis.subdomains:isis-subdomains-pdfbox.*"
-    "Spring": "org.apache.isis.subdomains:isis-subdomains-spring.*"
-    "XDocReport": "org.apache.isis.subdomains:isis-subdomains-xdocreport.*"
-    #"Zip": "org.apache.isis.subdomains:isis-subdomains-zip.*"
-
-    "Tooling": org.apache.isis.tooling.*
-    "Regression Tests": org.apache.isis.regressiontests.*
-
-    Incubator: org.apache.isis.incubator
-    "Kroviz Client": "org.apache.isis.incubator.clients:isis-client-kroviz.*"
-    "JavaFX Viewer": "org.apache.isis.incubator.viewer:isis-viewer-javafx.*"
-    "Vaadin Viewer": "org.apache.isis.incubator.viewer:isis-viewer-vaadin.*"
-
-    Legacy: org.apache.isis.legacy.*
-
 
 commands:
   overview:
     description: "These tables summarize all Maven artifacts available with _Apache Isis_."
 
   index:
+
+    namespacePartsSkipCount: 3
+
+    sections:
+      App: org.apache.isis.app.*
+      Mavendeps: org.apache.isis.mavendeps.*
+      Testing: org.apache.isis.testing.*
+      Examples: org.apache.isis.examples.*
+
+      Root: org.apache.isis
+      Commons: org.apache.isis.commons.*
+
+      Core: org.apache.isis.core.*
+
+      Persistence: org.apache.isis.persistence
+      JDO: "org.apache.isis.persistence:isis-persistence-jdo.*"
+      JPA: "org.apache.isis.persistence:isis-persistence-jpa.*"
+
+      Security: org.apache.isis.security
+      Bypass: "org.apache.isis.security:isis-security-bypass.*"
+      Keycloak: "org.apache.isis.security:isis-security-keycloak.*"
+      Shiro: "org.apache.isis.security:isis-security-shiro.*"
+
+      Viewer: org.apache.isis.viewer
+      "Restful Objects": "org.apache.isis.viewer:isis-viewer-restfulobjects.*"
+      Wicket: "org.apache.isis.viewer:isis-viewer-wicket.*"
+
+      Valuetypes: org.apache.isis.valuetypes.*
+      "Asciidoc": "org.apache.isis.valuetypes:isis-valuetypes-asciidoc.*"
+      "Markdown": "org.apache.isis.valuetypes:isis-valuetypes-markdown.*"
+      "SSE": "org.apache.isis.valuetypes:isis-valuetypes-ssec.*"
+
+      Mappings: org.apache.isis.mappings
+      #"Outbox Publisher": org.apache.isis.mappings:isis-mappings-jaxrsclient.*
+      "JAX-RS Client Library": "org.apache.isis.mappings:isis-mappings-jaxrsclient.*"
+      #Minio: "org.apache.isis.mappings:isis-mappings-minio.*"
+      "REST Client": "org.apache.isis.mappings:isis-mappings-restclient.*"
+      #"Slack Library": "org.apache.isis.mappings:isis-mappings-slack.*"
+
+      Extensions: org.apache.isis.extensions
+      "Core: Command Log": "org.apache.isis.extensions:isis-extensions-command-log.*"
+      "Core: Command Replay": "org.apache.isis.extensions:isis-extensions-command-replay.*"
+      #"Core: Flyway": "org.apache.isis.extensions:isis-extensions-flyway.*"
+      "Core: Model Annotation": "org.apache.isis.extensions:isis-extensions-modelannotation.*"
+      "Core: Quartz": "org.apache.isis.extensions:isis-extensions-quartz.*"
+      #"Security: Audit Trail": "org.apache.isis.security:isis-extensions-audit-trail.*"
+      "Security: Secman": "org.apache.isis.security:isis-extensions-secman.*"
+      #"Security: Session Log": "org.apache.isis.security:isis-extensions-session-log.*"
+      "Security: Shiro LDAP Realm": "org.apache.isis.security:isis-extensions-shiro-realm-ldap.*"
+      "RO Viewer: CORS": "org.apache.isis.security:isis-extensions-cors.*"
+      "Wicket Viewer: Excel Download": "org.apache.isis.security:isis-extensions-exceldownload.*"
+      "Wicket Viewer: Full Calendar": "org.apache.isis.security:isis-extensions-fullcalendar.*"
+      #"Wicket Viewer: Gmap3": "org.apache.isis.security:isis-extensions-gmap3.*"
+      "Wicket Viewer: Pdf.js": "org.apache.isis.security:isis-extensions-fullcalendar.*"
+
+      Subdomains: org.apache.isis.subdomains
+      "Base": "org.apache.isis.subdomains:isis-subdomains-base.*"
+      #"docx": "org.apache.isis.subdomains:isis-subdomains-docx.*"
+      "Excel": "org.apache.isis.subdomains:isis-subdomains-excel.*"
+      #"Freemarker": "org.apache.isis.subdomains:isis-subdomains-freemarker.*"
+      #"OGNL": "org.apache.isis.subdomains:isis-subdomains-ognl.*"
+      #"PDF Box": "org.apache.isis.subdomains:isis-subdomains-pdfbox.*"
+      "Spring": "org.apache.isis.subdomains:isis-subdomains-spring.*"
+      "XDocReport": "org.apache.isis.subdomains:isis-subdomains-xdocreport.*"
+      #"Zip": "org.apache.isis.subdomains:isis-subdomains-zip.*"
+
+      "Tooling": org.apache.isis.tooling.*
+      "Regression Tests": org.apache.isis.regressiontests.*
+
+      Incubator: org.apache.isis.incubator
+      "Kroviz Client": "org.apache.isis.incubator.clients:isis-client-kroviz.*"
+      "JavaFX Viewer": "org.apache.isis.incubator.viewer:isis-viewer-javafx.*"
+      "Vaadin Viewer": "org.apache.isis.incubator.viewer:isis-viewer-vaadin.*"
+
+      Legacy: org.apache.isis.legacy.*
+
     fixOrphanedAdocIncludeStatements: false
     skipTitleHeader: false
     formatter: JAVA_SOURCES_WITH_SECTIONS
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/about.adoc b/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
index 3aed534..a322fec 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
@@ -2,15 +2,12 @@
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-:page-toc: ~
-
-WARNING: TODO: this content has not yet been reviewed/updated for v2.0
-
 
 The JDO/DataNucleus object store enables domain objects to be persisted to relational as well as NoSQL databases.
-The object store is implemented using link:http://datanucleus.org[DataNucleus].
+The object store is implemented using link:http://datanucleus.org[DataNucleus] ORM.
+
+This user guide discuss how to setup  the framework to use the JDO/DataNucleus object store, how to configure the ORM, and also provides some examples on common use cases.
 
-This user guide discuss end-user features, configuration and customization of the JDO/DataNucleus object store.
 
 
 
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc b/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
index 93fe3d3..77661f9 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
@@ -51,7 +51,7 @@ CREATE TABLE isisaudit."AuditEntry" (
 [TIP]
 ====
 If for some reason you don't want to use schemas (though we strongly recommend that you do), then note that you can override the `@PersistenceCapable` annotation by providing XML metadata (the `mappings.jdo` file).
-See the section on xref:pjdo:ROOT:configuring.adoc[configuring DataNucleus Overriding Annotations] for more details.
+See the section on xref:pjdo:ROOT:setup-and-configuration.adoc[configuring DataNucleus Overriding Annotations] for more details.
 ====
 
 
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/configuring.adoc b/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
similarity index 95%
rename from persistence/jdo/adoc/modules/ROOT/pages/configuring.adoc
rename to persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
index af3a467..4aed448 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/configuring.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
@@ -1,9 +1,12 @@
-[[configuring]]
-= Configuring DataNucleus
+= Setup and Configuration
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-WARNING: TODO: this content has not yet been reviewed/updated for v2.0
+
+== Classpath and Modules
+
+The
+
 
 The xref:refguide:config:about.adoc[Configuration Guide] includes a xref:refguide:config:sections/jdo-datanucleus.adoc[section] for JDO/Persistence object store, and another xref:refguide:config:sections/jdo-datanucleus-conf.adoc[section] for configuration that is passed through to DataNucleus unchanged.
 
diff --git a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
index 6afe7d3..5d752ed 100644
--- a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,7 +1,6 @@
 
 
-
-* xref:pjdo:ROOT:configuring.adoc[Configuring]
+* xref:pjdo:ROOT:setup-and-configuration.adoc[Setup and Configuration]
 * xref:pjdo:ROOT:jdo-mappings.adoc[JDO Mappings]
 * xref:pjdo:ROOT:db-schemas.adoc[DB Schemas]
 * xref:pjdo:ROOT:hints-and-tips.adoc[Hints-n-Tips]
diff --git a/scripts/ci/_adoc-gen-projdoc.sh b/scripts/ci/_adoc-gen-projdoc.sh
index 15138b1..0e9b3e5 100644
--- a/scripts/ci/_adoc-gen-projdoc.sh
+++ b/scripts/ci/_adoc-gen-projdoc.sh
@@ -35,7 +35,8 @@ fi
 
 
 MODE=projdoc
-GENERATED_PATH="${PROJECT_ROOT_PATH}/antora/components/refguide-index"
+INDEX_PATH="${PROJECT_ROOT_PATH}/antora/components/refguide-index"
+OVERVIEW_PATH="${PROJECT_ROOT_PATH}/core/adoc"
 
 ##
 ## run java
@@ -50,7 +51,7 @@ echo ""
 if [ -z "${JAVA_CMD}" ]; then
   echo "projdoc gen: no java, skipping"
 else
-  java -jar "${PROJECT_ROOT_PATH}/tooling/cli/target/isis-tooling-cli.jar" -p "${PROJECT_ROOT_PATH}" -o "${GENERATED_PATH}" $MODE
+  java -jar "${PROJECT_ROOT_PATH}/tooling/cli/target/isis-tooling-cli.jar" -p "${PROJECT_ROOT_PATH}" -r "${OVERVIEW_PATH}" -o "${INDEX_PATH}" $MODE
 fi
 
 
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
index 5bf16f0..1a3b519 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
@@ -49,9 +49,14 @@ class Cli implements Callable<Integer> {
     private String projectRootPath;
 
     @Option(
+            names = {"-r", "--overview"},
+            description = "path to the overview file (default: NONE = write to std.out)")
+    private String overviewPath;
+
+    @Option(
             names = {"-o", "--output"},
-            description = "path to the output file (default: NONE = write to std.out)")
-    private String outputPath;
+            description = "path to the index files (default: NONE = write to std.out)")
+    private String indexPath;
 
     private _Lazy<CliConfig> configRef = _Lazy.threadSafe(()->CliConfig
             .read(projectRootPath!=null
@@ -68,9 +73,15 @@ class Cli implements Callable<Integer> {
                 : new File(".");
     }
 
-    public  File getOutputPath() {
-        return outputPath !=null
-                ? new File(outputPath)
+    public  File getOverviewPath() {
+        return overviewPath !=null
+                ? new File(overviewPath)
+                : new File(".");
+    }
+
+    public  File getIndexPath() {
+        return indexPath !=null
+                ? new File(indexPath)
                 : new File(".");
     }
 
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliCommandAbstract.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliCommandAbstract.java
index 432a1cc..e041c5e 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliCommandAbstract.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliCommandAbstract.java
@@ -37,8 +37,11 @@ abstract class CliCommandAbstract implements Callable<Integer> {
         return _Context.getElseFail(Cli.class).getProjectRoot();
     }
 
-    public File getOutputPath() {
-        return _Context.getElseFail(Cli.class).getOutputPath();
+    public File getOverviewPath() {
+        return _Context.getElseFail(Cli.class).getOverviewPath();
+    }
+    public File getIndexPath() {
+        return _Context.getElseFail(Cli.class).getIndexPath();
     }
 
     /**
@@ -46,8 +49,11 @@ abstract class CliCommandAbstract implements Callable<Integer> {
      * @param mode
      */
     protected void generateAsciidoc(ProjectDocModel.Mode mode) {
-        if (getOutputPath() != null) {
-            getConfig().getGlobal().setOutputRootFolder(getOutputPath());
+        if (getOverviewPath() != null) {
+            getConfig().getCommands().getOverview().setRootFolder(getOverviewPath());
+        }
+        if (getIndexPath() != null) {
+            getConfig().getCommands().getIndex().setRootFolder(getIndexPath());
         }
 
         val projTree = ProjectNodeFactory.maven(getProjectRoot());
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
index 4c9d4f4..a524167 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
@@ -42,8 +42,6 @@ public class CliConfig {
     @Data
     public static class Global {
 
-        private File outputRootFolder = null; // where to write to (overridden by -o flag)
-
         private String licenseHeader =
                 "Licensed to the Apache Software Foundation (ASF) under one or more contributor license "
                         + "agreements. See the NOTICE file distributed with this work for additional information regarding "
@@ -55,22 +53,6 @@ public class CliConfig {
                         + "or implied. See the License for the specific language governing permissions and limitations under "
                         + "the License.";
 
-        private String documentPagesPath = "modules/_overview/pages";
-
-        // when 3 eg. skips first three parts of the package names 'org.apache.isis'
-        private int namespacePartsSkipCount = 0;
-
-        private LinkedHashMap<String, String> sections = new LinkedHashMap<>();
-
-        public boolean isDryRun() {
-            return getOutputRootFolder() == null;
-        }
-
-        public File getDocumentPagesFolder() {
-            return Optional.ofNullable(getOutputRootFolder())
-                    .map(root->new File(root, getDocumentPagesPath()))
-                    .orElse(null);
-        }
     }
 
     private Commands commands = new Commands();
@@ -82,18 +64,46 @@ public class CliConfig {
 
         @Data
         public static class Overview {
+
+            private File rootFolder = null; // where to write to (overridden by -r flag)
+
+            private String pagesPath = "modules/_overview/pages";
+
             private String systemOverviewFilename = "about.adoc";
 
             private String description = "These tables summarize all Maven artifacts available with this project.";
+
+            public boolean isDryRun() {
+                return getRootFolder() == null;
+            }
+
+            private LinkedHashMap<String, String> sections = new LinkedHashMap<>();
+
+            public File getPagesFolder() {
+                return Optional.ofNullable(getRootFolder())
+                        .map(root->new File(root, getPagesPath()))
+                        .orElse(null);
+            }
+
         }
 
+
         private Index index = new Index();
 
         @Data
         public static class Index {
 
+            private File rootFolder = null; // where to write to (overridden by -o flag)
+
             private String documentGlobalIndexXrefPageIdFormat = "refguide:%s:index/%s.adoc";
 
+            // when 3 eg. skips first three parts of the package names 'org.apache.isis'
+            private int namespacePartsSkipCount = 0;
+
+            public boolean isDryRun() {
+                return getRootFolder() == null;
+            }
+
             private boolean fixOrphanedAdocIncludeStatements = false;
             private boolean skipTitleHeader = false;
 
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
index bcb4f73..84ca180 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
@@ -42,7 +42,7 @@ public final class OrphanedIncludeStatementFixer {
             final @NonNull CliConfig cliConfig,
             final @NonNull J2AdocContext j2aContext) {
 
-        if(cliConfig.getGlobal().isDryRun()) {
+        if(cliConfig.getCommands().getIndex().isDryRun()) {
             log.debug("IncludeStatementFixer: skip (dry-run)");
             return;
         }
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
index 3b1fa10..d292694 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
@@ -45,17 +45,21 @@ final class ProjectDocWriter {
             final @NonNull J2AdocContext j2aContext,
             final @NonNull ProjectDocModel.Mode mode) {
 
-        final BiConsumer<Document, File> docWriter = cliConfig.getGlobal().isDryRun()
+        val global = cliConfig.getGlobal();
+        val overview = cliConfig.getCommands().getOverview();
+        val index = cliConfig.getCommands().getIndex();
+
+        final BiConsumer<Document, File> overviewDocWriter = overview.isDryRun()
+                ? (doc, file)->AsciiDocWriter.print(doc) // print to system out only (dry run)
+                : AsciiDocWriter::writeToFile;
+
+        final BiConsumer<Document, File> indexDocWriter = index.isDryRun()
                 ? (doc, file)->AsciiDocWriter.print(doc) // print to system out only (dry run)
                 : AsciiDocWriter::writeToFile;
 
         val currentUnit = _Refs.<J2AdocUnit>objectRef(null);
-        val global = cliConfig.getGlobal();
-        val overview = cliConfig.getCommands().getOverview();
-        val index = cliConfig.getCommands().getIndex();
 
-        //val rootFolder = global.getOutputRootFolder();
-        val pagesFolder = global.getDocumentPagesFolder();
+        val overviewPagesFolder = overview.getPagesFolder();
 
         val deleteCount = _Refs.intRef(0);
         int writeCount = 0;
@@ -65,16 +69,16 @@ final class ProjectDocWriter {
             if (mode.includeOverview()) {
 
                 // write system overview
-                val overviewFile = new File(pagesFolder, overview.getSystemOverviewFilename());
+                val overviewFile = new File(overviewPagesFolder, overview.getSystemOverviewFilename());
                 log.info("writing system overview: {}", overviewFile.getName());
-                docWriter.accept(overviewAdoc, overviewFile);
+                overviewDocWriter.accept(overviewAdoc, overviewFile);
                 ++writeCount;
             }
 
             if(mode.includeIndex()) {
 
                 // delete all generated documents in the index
-                _Files.searchFiles(pagesFolder, dir->true, file-> {
+                _Files.searchFiles(overviewPagesFolder, dir->true, file-> {
                     val fileName = file.getName();
                     val fileAbsolutePath = file.getAbsolutePath();
                     final File parentFile = file.getParentFile();
@@ -94,12 +98,12 @@ final class ProjectDocWriter {
 
                     currentUnit.setValue(unit);
 
-                    val adocIndexFile = adocDestinationFileForUnit(unit, global, overview, index);
+                    val adocIndexFile = adocDestinationFileForUnit(unit, index);
 
                     log.info("writing file: {}", adocIndexFile.getName());
 
                     final Document asciiDoc = unit.toAsciiDoc(j2aContext, adocIndexFile);
-                    docWriter.accept(
+                    indexDocWriter.accept(
                             asciiDoc,
                             adocIndexFile);
 
@@ -124,21 +128,20 @@ final class ProjectDocWriter {
     // generate output file based on unit's namespace and unit's name
     private static File adocDestinationFileForUnit(
             final @NonNull J2AdocUnit unit,
-            final @NonNull CliConfig.Global global,
-            final @NonNull CliConfig.Commands.Overview overview,
             final @NonNull CliConfig.Commands.Index index
-            ) {
+    ) {
+
 
         // eg: antora/components/refguide-index
-        final File outputRootFolder = global.getOutputRootFolder();
-        val indexFolder = outputRootFolder;
+        final File indexRootFolder = index.getRootFolder();
+        val indexFolder = indexRootFolder;
 
         val destFolderBuilder = _Refs.<File>objectRef(indexFolder);
 
         // eg org/apache/isis/applib/annotation
         unit.getNamespace().stream()
         // eg applib/annotation
-        .skip(global.getNamespacePartsSkipCount())
+        .skip(index.getNamespacePartsSkipCount())
         .findFirst()
         .ifPresent(moduleName-> {
             // applib
@@ -154,7 +157,7 @@ final class ProjectDocWriter {
         // eg org/apache/isis/applib/annotation
         unit.getNamespace().stream()
                 // eg applib/annotation
-        .skip(global.getNamespacePartsSkipCount() + 1)
+        .skip(index.getNamespacePartsSkipCount() + 1)
         .forEach(subDir-> {
             // annotation
             // ... so updates to antora/components/refguide-index/modules/applib/pages/index/annotation