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/31 12:54:25 UTC

[isis] branch master updated (6b28395 -> 4f87d6d)

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

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


    from 6b28395  Merge pull request #458 from apache/ISIS-2592
     add 8faf15b  ISIS-2484: updating docs on JDO and JPA
     add 7b5323a  ISIS-2484: adds back in docs
     add 46caecf  ISIS-2484: adds in missing docs
     add 5677570  ISIS-2484: updates docs for JPA and JDO
     new 83d9ba7  ISIS-2444: minor fix for release process
     new 65accb7  ISIS-2484: fixes release notes navbar
     new a08b750  ISIS-2484: removes page relating to interim releases
     new 3d1c690  ISIS-2484: removes section on bumping dependencies
     new 425168d  ISIS-2484: updates release procedure, bump BASELINE for nightly builds
     new ad9057f  ISIS-2484: moves overview into core (design docs)
     new 72415c8  ISIS-2484: fixes compile issue with tooling
     new 2b486cc  ISIS-2484: fixes compile issue with tooling
     new af8a135  ISIS-2484: debugs overview doc tooling
     new 7c1efea  ISIS-2484: fixing index doc tooling
     new b7e15a8  ISIS-2484: fixing index doc tooling
     new fa84ed2  ISIS-2484: regen index
     new 5d97871  ISIS-2484: regenerated overview
     new 9bdb924  ISIS-2484: tweaks some config props
     new acb91ed  ISIS-2484: fixes unit test
     new adcca725 ISIS-2484: updating docs on JDO and JPA
     new 99f8745  ISIS-2484: adds back in docs
     new 58286cb  ISIS-2484: adds in missing docs
     new 8cd63e0  ISIS-2484: updates docs for JPA and JDO
     new 4f87d6d  Merge branch '2.0.0-M5' into ISIS-2484

The 20 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.


Summary of changes:
 .../attachments}/Pawson-Naked-Objects-thesis.pdf   | Bin
 .../components/docs/modules/ROOT/pages/about.adoc  |   6 +-
 .../JdoSupportService_010-examples-and-usage.adoc  |  19 +-
 .../refguide/modules/ROOT/pages/about.adoc         |   2 +-
 .../setupguide/modules/eclipse/pages/about.adoc    |   4 +-
 antora/playbooks/site-persistence.yml              |   6 +
 antora/playbooks/site-security.yml                 |   3 +
 antora/playbooks/site.yml                          |   3 +
 .../config/partials/configuring-schemas.adoc       |  24 +++
 persistence/jdo/adoc/modules/ROOT/pages/about.adoc |   5 +-
 .../modules/ROOT/pages/configuring/bulk-load.adoc  |  35 ---
 .../disabling-persistence-by-reachability.adoc     |   1 +
 .../ROOT/pages/configuring/persistence-xml.adoc    |  36 ----
 .../modules/ROOT/pages/configuring/properties.adoc |  15 --
 .../pages/configuring/using-jndi-data-source.adoc  |  75 -------
 .../jdo/adoc/modules/ROOT/pages/db-schemas.adoc    | 131 +-----------
 .../modules/ROOT/pages/dependency-injection.adoc   |  13 +-
 .../adoc/modules/ROOT/pages/hints-and-tips.adoc    |   4 -
 .../jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc  |  11 -
 .../jdo/adoc/modules/ROOT/pages/mapping-guide.adoc |  17 +-
 .../mandatory-properties-in-subtypes.adoc          |   0
 .../mapping-to-a-view.adoc                         |   0
 .../one-to-m-bidirectional-relationships.adoc      |   0
 .../ROOT/pages/setup-and-configuration.adoc        | 238 ++++++++++++++++++---
 .../jdo/adoc/modules/ROOT/partials/module-nav.adoc |  13 +-
 persistence/jpa/adoc/modules/ROOT/nav.adoc         |   2 +-
 persistence/jpa/adoc/modules/ROOT/pages/about.adoc |   8 +-
 .../jpa/adoc/modules/ROOT/pages/db-schemas.adoc    |  37 ++++
 .../modules/ROOT/pages/dependency-injection.adoc   |  23 +-
 .../adoc/modules/ROOT/pages/domain-services.adoc   |  13 +-
 .../jpa/adoc/modules/ROOT/pages/mapping-guide.adoc |  17 +-
 .../ROOT/pages/setup-and-configuration.adoc        | 123 +++++++++++
 .../jpa/adoc/modules/ROOT/partials/module-nav.adoc |   6 +
 preview.sh                                         |   2 +-
 .../adoc/modules/ROOT/partials/component-nav.adoc  |   7 +-
 .../{shiro => spring}/src/main/adoc/antora.yml     |   0
 .../src/main/adoc/modules/spring}/nav.adoc         |   0
 .../src/main/adoc/modules/spring/pages/about.adoc  |   7 +-
 .../adoc/modules/spring/partials/module-nav.adoc   |   2 +
 .../adoc/modules/ROOT/pages/about.adoc             |   2 +-
 .../adoc/modules/ROOT/pages/architecture.adoc      |   2 +-
 .../adoc/modules/ROOT/pages/other-resources.adoc   |   5 +-
 .../adoc/modules/ROOT/partials/module-nav.adoc     |   2 +
 viewers/wicket/adoc/modules/ROOT/pages/about.adoc  |   2 +-
 .../adoc/modules/ROOT/pages/other-resources.adoc   |   5 +-
 .../adoc/modules/ROOT/partials/module-nav.adoc     |   2 +
 46 files changed, 525 insertions(+), 403 deletions(-)
 rename antora/components/{userguide/modules/fun/attachments/core-concepts => docs/modules/ROOT/attachments}/Pawson-Naked-Objects-thesis.pdf (100%)
 rename persistence/jdo/adoc/modules/ROOT/pages/services/IsisJdoSupport.adoc => antora/components/refguide-index/modules/persistence/pages/index/jdo/applib/services/hooks/JdoSupportService_010-examples-and-usage.adoc (98%)
 create mode 100644 core/config/src/main/adoc/modules/config/partials/configuring-schemas.adoc
 delete mode 100644 persistence/jdo/adoc/modules/ROOT/pages/configuring/bulk-load.adoc
 delete mode 100644 persistence/jdo/adoc/modules/ROOT/pages/configuring/persistence-xml.adoc
 delete mode 100644 persistence/jdo/adoc/modules/ROOT/pages/configuring/properties.adoc
 delete mode 100644 persistence/jdo/adoc/modules/ROOT/pages/configuring/using-jndi-data-source.adoc
 copy antora/components/docs/modules/ROOT/partials/module-nav/guides.adoc => persistence/jdo/adoc/modules/ROOT/pages/dependency-injection.adoc (74%)
 delete mode 100644 persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc
 copy antora/components/conguide/modules/eclipse/pages/about.adoc => persistence/jdo/adoc/modules/ROOT/pages/mapping-guide.adoc (56%)
 rename persistence/jdo/adoc/modules/ROOT/pages/{jdo-mappings => mapping-guide}/mandatory-properties-in-subtypes.adoc (100%)
 rename persistence/jdo/adoc/modules/ROOT/pages/{jdo-mappings => mapping-guide}/mapping-to-a-view.adoc (100%)
 rename persistence/jdo/adoc/modules/ROOT/pages/{jdo-mappings => mapping-guide}/one-to-m-bidirectional-relationships.adoc (100%)
 create mode 100644 persistence/jpa/adoc/modules/ROOT/pages/db-schemas.adoc
 copy antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc => persistence/jpa/adoc/modules/ROOT/pages/dependency-injection.adoc (63%)
 copy antora/components/docs/modules/ROOT/partials/module-nav/guides.adoc => persistence/jpa/adoc/modules/ROOT/pages/domain-services.adoc (73%)
 copy viewers/wicket/adoc/modules/ROOT/pages/about.adoc => persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc (53%)
 create mode 100644 persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
 copy security/{shiro => spring}/src/main/adoc/antora.yml (100%)
 copy security/{shiro/src/main/adoc/modules/shiro => spring/src/main/adoc/modules/spring}/nav.adoc (100%)
 copy viewers/restfulobjects/adoc/modules/ROOT/pages/security.adoc => security/spring/src/main/adoc/modules/spring/pages/about.adoc (84%)
 create mode 100644 security/spring/src/main/adoc/modules/spring/partials/module-nav.adoc
 copy antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc => viewers/restfulobjects/adoc/modules/ROOT/pages/other-resources.adoc (87%)
 copy antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc => viewers/wicket/adoc/modules/ROOT/pages/other-resources.adoc (87%)

[isis] 12/20: ISIS-2484: regen index

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

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

commit fa84ed2fc3195a99691b1952a65672eb297af880
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 12:10:04 2021 +0100

    ISIS-2484: regen index
    
    (cherry picked from commit f8ad28340e9e64db3324efea55bf2fb4fb8899a3)
---
 .../applib/pages/index/id/TypeIdentifier.adoc      | 76 ----------------------
 .../adapters/AbstractValueSemanticsProvider.adoc   | 14 ----
 .../pages/index/adapters/DefaultsProvider.adoc     | 32 ---------
 .../pages/index/adapters/EncoderDecoder.adoc       | 47 -------------
 .../pages/index/adapters/EncodingException.adoc    | 17 -----
 .../services/appfeat/ApplicationMemberType.adoc    | 16 -----
 .../pages/index/services/iactn/Sequence.adoc       | 50 --------------
 .../index/services/inject/ServiceInjector.adoc     | 15 +----
 .../commons/pages/index/collections/Can.adoc       | 51 ++++++++++++++-
 .../changetracking/EntityChangeTrackerDefault.adoc |  4 +-
 .../index/secman/model/app/user/MeService.adoc     | 14 ----
 .../keycloak/authorization/AuthorizorKeycloak.adoc | 14 ----
 .../RepresentationServiceContentNegotiator.adoc    | 33 ----------
 core/adoc/modules/_overview/pages/about.adoc       | 12 ++--
 14 files changed, 58 insertions(+), 337 deletions(-)

diff --git a/antora/components/refguide-index/modules/applib/pages/index/id/TypeIdentifier.adoc b/antora/components/refguide-index/modules/applib/pages/index/id/TypeIdentifier.adoc
deleted file mode 100644
index e222f54..0000000
--- a/antora/components/refguide-index/modules/applib/pages/index/id/TypeIdentifier.adoc
+++ /dev/null
@@ -1,76 +0,0 @@
-= TypeIdentifier
-: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 [...]
-
-A generalization of Java's class type to also hold a logical name, which can be supplied lazily.
-
-== API
-
-[source,java]
-.TypeIdentifier.java
-----
-class TypeIdentifier {
-  TypeIdentifier lazy(final Class<?> correspondingClass, final Supplier<String> logicalNameProvider)     // <.>
-  TypeIdentifier eager(final Class<?> correspondingClass, final String logicalName)     // <.>
-  TypeIdentifier fqcn(final Class<?> correspondingClass)     // <.>
-  String getClassName()     // <.>
-  String getLogicalTypeName()
-  String getLogicalTypeNameFormatted(final String root, final String delimiter)     // <.>
-  boolean equals(final Object obj)
-  boolean isEqualTo(final TypeIdentifier other)
-  int hashCode()
-  int compareTo(final TypeIdentifier other)
-}
-----
-
-<.> xref:#lazy__Class_Supplier[lazy(Class, Supplier)]
-+
---
-Returns a new TypeIdentifier based on the corresponding class and a _logicalNameProvider_ for lazy logical name lookup.
---
-<.> xref:#eager__Class_String[eager(Class, String)]
-+
---
-Returns a new TypeIdentifier based on the corresponding class and (ahead of time) known _logicalName_ .
---
-<.> xref:#fqcn__Class[fqcn(Class)]
-+
---
-Use the corresponding class's fully qualified name for the _logicalName_ . Most likely used in testing scenarios.
---
-<.> xref:#getClassName__[getClassName()]
-+
---
-Canonical name of the corresponding class.
---
-<.> xref:#getLogicalTypeNameFormatted__String_String[getLogicalTypeNameFormatted(String, String)]
-+
---
-The logical type name consists of 2 parts, the _namespace_ and the _logical simple name_ . Returns a concatenation of _namespace_ , _delimiter_ and the _logical simple name_ , whereas in the absence of a _namespace_ returns a concatenation of _root_ and the _logical simple name_ .
---
-
-== Members
-
-[#lazy__Class_Supplier]
-=== lazy(Class, Supplier)
-
-Returns a new TypeIdentifier based on the corresponding class and a _logicalNameProvider_ for lazy logical name lookup.
-
-[#eager__Class_String]
-=== eager(Class, String)
-
-Returns a new TypeIdentifier based on the corresponding class and (ahead of time) known _logicalName_ .
-
-[#fqcn__Class]
-=== fqcn(Class)
-
-Use the corresponding class's fully qualified name for the _logicalName_ . Most likely used in testing scenarios.
-
-[#getClassName__]
-=== getClassName()
-
-Canonical name of the corresponding class.
-
-[#getLogicalTypeNameFormatted__String_String]
-=== getLogicalTypeNameFormatted(String, String)
-
-The logical type name consists of 2 parts, the _namespace_ and the _logical simple name_ . Returns a concatenation of _namespace_ , _delimiter_ and the _logical simple name_ , whereas in the absence of a _namespace_ returns a concatenation of _root_ and the _logical simple name_ .
diff --git a/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/AbstractValueSemanticsProvider.adoc b/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/AbstractValueSemanticsProvider.adoc
deleted file mode 100644
index b12edc5..0000000
--- a/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/AbstractValueSemanticsProvider.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-: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 [...]
-
-== API
-
-[source,java]
-.AbstractValueSemanticsProvider.java
-----
-class AbstractValueSemanticsProvider<T> {
-  EncoderDecoder<T> getEncoderDecoder()
-  Parser<T> getParser()
-  DefaultsProvider<T> getDefaultsProvider()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/DefaultsProvider.adoc b/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/DefaultsProvider.adoc
deleted file mode 100644
index 34bafac..0000000
--- a/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/DefaultsProvider.adoc
+++ /dev/null
@@ -1,32 +0,0 @@
-: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 [...]
-
-Provides a mechanism for providing a default value for an object.
-
-This interface is used in two complementary ways:
-
-* As one option, it allows objects to take control of their own default values, by implementing directly. However, the instance is used as a factory for itself. The framework will instantiate an instance, invoke the appropriate method method, and use the returned object. The instantiated instance itself will be discarded.
-
-Whatever the class that implements this interface, it must also expose either a `public` no-arg constructor, or (for implementations that also are `Facet` s) a `public` constructor that accepts a single `FacetHolder` . This constructor allows the framework to instantiate the object reflectively.
-
-== API
-
-[source,java]
-.DefaultsProvider.java
-----
-interface DefaultsProvider<T> {
-  T getDefaultValue()     // <.>
-}
-----
-
-<.> xref:#getDefaultValue__[getDefaultValue()]
-+
---
-The default, if any (as a pojo).
---
-
-== Members
-
-[#getDefaultValue__]
-=== getDefaultValue()
-
-The default, if any (as a pojo).
diff --git a/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/EncoderDecoder.adoc b/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/EncoderDecoder.adoc
deleted file mode 100644
index 7688223..0000000
--- a/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/EncoderDecoder.adoc
+++ /dev/null
@@ -1,47 +0,0 @@
-: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 [...]
-
-Provides a mechanism for encoding/decoding objects.
-
-This interface is used in two complementary ways:
-
-* As one option, it allows objects to take control of their own encoding/decoding, by implementing directly. However, the instance is used as a factory for itself. The framework will instantiate an instance, invoke the appropriate method method, and use the returned object. The instantiated instance itself will be discarded.
-
-Whatever the class that implements this interface, it must also expose either a `public` no-arg constructor, or (for implementations that also are `Facet` s) a `public` constructor that accepts a single `FacetHolder` . This constructor allows the framework to instantiate the object reflectively.
-
-== API
-
-[source,java]
-.EncoderDecoder.java
-----
-interface EncoderDecoder<T> {
-  String toEncodedString(T toEncode)     // <.>
-  T fromEncodedString(String encodedString)     // <.>
-}
-----
-
-<.> xref:#toEncodedString__T[toEncodedString(T)]
-+
---
-Returns the provided object as an encoded string.
---
-<.> xref:#fromEncodedString__String[fromEncodedString(String)]
-+
---
-Converts an encoded string to an instance of the object.
---
-
-== Members
-
-[#toEncodedString__T]
-=== toEncodedString(T)
-
-Returns the provided object as an encoded string.
-
-Even if the class is self-encodeable, note that this method is always called on a new instance of the object created via the no-arg constructor. That is, the object shouldn't encode itself, it should encode the object provided to it.
-
-[#fromEncodedString__String]
-=== fromEncodedString(String)
-
-Converts an encoded string to an instance of the object.
-
-Note that here the implementing class is acting as a factory for itself.
diff --git a/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/EncodingException.adoc b/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/EncodingException.adoc
deleted file mode 100644
index f9e6c39..0000000
--- a/antora/components/refguide-index/modules/applib/pages/index/modules/adapters/pages/index/adapters/EncodingException.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-: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 [...]
-
-Indicates that encoding or decoding has failed.
-
-== API
-
-[source,java]
-.EncodingException.java
-----
-class EncodingException {
-  EncodingException()
-  EncodingException(final String msg)
-  EncodingException(final String msg, final Throwable cause)
-  EncodingException(final Throwable cause)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/appfeat/ApplicationMemberType.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/appfeat/ApplicationMemberType.adoc
deleted file mode 100644
index 18cca90..0000000
--- a/antora/components/refguide-index/modules/applib/pages/index/services/appfeat/ApplicationMemberType.adoc
+++ /dev/null
@@ -1,16 +0,0 @@
-= ApplicationMemberType _(enum)_
-: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 [...]
-
-== API
-
-[source,java]
-.ApplicationMemberType.java
-----
-enum ApplicationMemberType {
-  PROPERTY
-  COLLECTION
-  ACTION
-  String toString()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/iactn/Sequence.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/iactn/Sequence.adoc
deleted file mode 100644
index 8521bff..0000000
--- a/antora/components/refguide-index/modules/applib/pages/index/services/iactn/Sequence.adoc
+++ /dev/null
@@ -1,50 +0,0 @@
-= Sequence _(enum)_
-: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 [...]
-
-Enumerates the different reasons why multiple occurrences of a certain type might occur within a single (top-level) interaction.
-
-== API
-
-[source,java]
-.Sequence.java
-----
-enum Sequence {
-  INTERACTION     // <.>
-  PUBLISHED_EVENT     // <.>
-  TRANSACTION     // <.>
-  String id()
-}
-----
-
-<.> xref:#INTERACTION[INTERACTION]
-+
---
-Each interaction is either an action invocation or a property edit. There could be multiple of these, typically as the result of a nested calls using the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] . Another reason is support for bulk action invocations within a single transaction.
---
-<.> xref:#PUBLISHED_EVENT[PUBLISHED_EVENT]
-+
---
-For objects: multiple such could be dirtied and thus published as separate events. For actions invocations/property edits : multiple sub-invocations could occur if sub-invocations are made through the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] .
---
-<.> xref:#TRANSACTION[TRANSACTION]
-+
---
-There may be multiple transactions within a given interaction.
---
-
-== Members
-
-[#INTERACTION]
-=== INTERACTION
-
-Each interaction is either an action invocation or a property edit. There could be multiple of these, typically as the result of a nested calls using the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] . Another reason is support for bulk action invocations within a single transaction.
-
-[#PUBLISHED_EVENT]
-=== PUBLISHED_EVENT
-
-For objects: multiple such could be dirtied and thus published as separate events. For actions invocations/property edits : multiple sub-invocations could occur if sub-invocations are made through the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] .
-
-[#TRANSACTION]
-=== TRANSACTION
-
-There may be multiple transactions within a given interaction.
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/inject/ServiceInjector.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/inject/ServiceInjector.adoc
index ba8f8ea..d2db56b 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/inject/ServiceInjector.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/inject/ServiceInjector.adoc
@@ -9,33 +9,22 @@ Resolves injection points using the _org.apache.isis.applib.services.registry.Se
 .ServiceInjector.java
 ----
 interface ServiceInjector {
-  T injectServicesInto(final T domainObject, Consumer<InjectionPoint> onNotResolvable)     // <.>
   T injectServicesInto(final T domainObject)     // <.>
 }
 ----
 
-<.> xref:#injectServicesInto__T_Consumer[injectServicesInto(T, Consumer)]
-+
---
-Injects domain services into the object, and calls the provided _Consumer_ for any non-resolvable injection points.
---
 <.> xref:#injectServicesInto__T[injectServicesInto(T)]
 +
 --
-Injecs domain services into the object, and throws a _NoSuchElementException_ for any injection points that cannot be resolved.
+Injects domain services into the object.
 --
 
 == Members
 
-[#injectServicesInto__T_Consumer]
-=== injectServicesInto(T, Consumer)
-
-Injects domain services into the object, and calls the provided _Consumer_ for any non-resolvable injection points.
-
 [#injectServicesInto__T]
 === injectServicesInto(T)
 
-Injecs domain services into the object, and throws a _NoSuchElementException_ for any injection points that cannot be resolved.
+Injects domain services into the object.
 
 include::hooks/ServiceInjector_010-implementation.adoc[]
 
diff --git a/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc b/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
index 3b0a393..1dec8f8 100644
--- a/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
+++ b/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
@@ -32,10 +32,11 @@ interface Can<T> {
   Can<T> empty()     // <.>
   Can<T> ofNullable(T element)     // <.>
   Can<T> ofSingleton(T element)     // <.>
-  Can<T> of(T... array)
-  Can<T> ofArray(T[] array)
+  Can<T> of(T... array)     // <.>
+  Can<T> ofArray(T[] array)     // <.>
   Can<T> ofCollection(Collection<T> collection)     // <.>
-  Can<T> ofIterable(Iterable<T> iterable)
+  Can<T> ofIterable(Iterable<T> iterable)     // <.>
+  Can<T> ofEnumeration(Enumeration<T> enumeration)     // <.>
   Can<T> ofStream(Stream<T> stream)     // <.>
   Can<T> ofInstance(Instance<T> instance)     // <.>
   Can<T> reverse()     // <.>
@@ -121,11 +122,31 @@ Returns either a _Can_ with the given _element_ or an empty _Can_ if the _elemen
 --
 Returns either a _Can_ with the given _element_ or throws if the _element_ is _null_ .
 --
+<.> xref:#of__T[of(T)]
++
+--
+Var-arg version of _Can#ofArray(Object[])_ .
+--
+<.> xref:#ofArray__T[][ofArray(T[])]
++
+--
+Returns either a _Can_ with all the elements from given _array_ or an empty _Can_ if the _array_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
+--
 <.> xref:#ofCollection__Collection[ofCollection(Collection)]
 +
 --
 Returns either a _Can_ with all the elements from given _collection_ or an empty _Can_ if the _collection_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 --
+<.> xref:#ofIterable__Iterable[ofIterable(Iterable)]
++
+--
+Returns either a _Can_ with all the elements from given _iterable_ or an empty _Can_ if the _iterable_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
+--
+<.> xref:#ofEnumeration__Enumeration[ofEnumeration(Enumeration)]
++
+--
+Returns either a _Can_ with all the elements from given _enumeration_ or an empty _Can_ if the _enumeration_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
+--
 <.> xref:#ofStream__Stream[ofStream(Stream)]
 +
 --
@@ -270,16 +291,40 @@ Returns either a _Can_ with the given _element_ or an empty _Can_ if the _elemen
 
 Returns either a _Can_ with the given _element_ or throws if the _element_ is _null_ .
 
+[#of__T]
+=== of(T)
+
+Var-arg version of _Can#ofArray(Object[])_ .
+
+[#ofArray__T[]]
+=== ofArray(T[])
+
+Returns either a _Can_ with all the elements from given _array_ or an empty _Can_ if the _array_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
+
 [#ofCollection__Collection]
 === ofCollection(Collection)
 
 Returns either a _Can_ with all the elements from given _collection_ or an empty _Can_ if the _collection_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 
+[#ofIterable__Iterable]
+=== ofIterable(Iterable)
+
+Returns either a _Can_ with all the elements from given _iterable_ or an empty _Can_ if the _iterable_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
+
+[#ofEnumeration__Enumeration]
+=== ofEnumeration(Enumeration)
+
+Returns either a _Can_ with all the elements from given _enumeration_ or an empty _Can_ if the _enumeration_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
+
+As side-effect, consumes given _enumeration_ .
+
 [#ofStream__Stream]
 === ofStream(Stream)
 
 Returns either a _Can_ with all the elements from given _stream_ or an empty _Can_ if the _stream_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 
+As side-effect, consumes given _stream_ .
+
 [#ofInstance__Instance]
 === ofInstance(Instance)
 
diff --git a/antora/components/refguide-index/modules/core/pages/index/transaction/changetracking/EntityChangeTrackerDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/transaction/changetracking/EntityChangeTrackerDefault.adoc
index 1a91092..03c55e0 100644
--- a/antora/components/refguide-index/modules/core/pages/index/transaction/changetracking/EntityChangeTrackerDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/transaction/changetracking/EntityChangeTrackerDefault.adoc
@@ -8,7 +8,7 @@
 ----
 class EntityChangeTrackerDefault {
   void onPreCommit(TransactionBeforeCompletionEvent event)     // <.>
-  EntityChanges getEntityChanges(final java.sql.Timestamp timestamp, final String userName)
+  Optional<EntityChanges> getEntityChanges(final java.sql.Timestamp timestamp, final String userName)
   Interaction currentInteraction()
   String asString(Object object)
   int numberEntitiesLoaded()
@@ -20,7 +20,7 @@ class EntityChangeTrackerDefault {
   void recognizeLoaded(ManagedObject entity)
   void recognizePersisting(ManagedObject entity)
   void recognizeUpdating(ManagedObject entity)
-  Stream<EntityPropertyChange> streamPropertyChanges(final java.sql.Timestamp timestamp, final String userName, final TransactionId txId)
+  Can<EntityPropertyChange> getPropertyChanges(final java.sql.Timestamp timestamp, final String userName, final TransactionId txId)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/secman/model/app/user/MeService.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/model/app/user/MeService.adoc
deleted file mode 100644
index a4a88ba..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/secman/model/app/user/MeService.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= MeService
-: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 [...]
-
-== API
-
-[source,java]
-.MeService.java
-----
-class MeService {
-  String iconName()
-  ApplicationUser me()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/security/pages/index/keycloak/authorization/AuthorizorKeycloak.adoc b/antora/components/refguide-index/modules/security/pages/index/keycloak/authorization/AuthorizorKeycloak.adoc
deleted file mode 100644
index 716ee7f..0000000
--- a/antora/components/refguide-index/modules/security/pages/index/keycloak/authorization/AuthorizorKeycloak.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= AuthorizorKeycloak
-: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 [...]
-
-== API
-
-[source,java]
-.AuthorizorKeycloak.java
-----
-class AuthorizorKeycloak {
-  boolean isVisible(final Authentication authentication, Identifier identifier)
-  boolean isUsable(final Authentication authentication, Identifier identifier)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.adoc
deleted file mode 100644
index bad1397..0000000
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.adoc
+++ /dev/null
@@ -1,33 +0,0 @@
-= RepresentationServiceContentNegotiator
-: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 [...]
-
-== API
-
-[source,java]
-.RepresentationServiceContentNegotiator.java
-----
-class RepresentationServiceContentNegotiator {
-  Response objectRepresentation(final IResourceContext renderContext, final ManagedObject objectAdapter)
-  Response propertyDetails(final IResourceContext renderContext, final ManagedProperty objectAndProperty)
-  Response collectionDetails(final IResourceContext renderContext, final ManagedCollection objectAndCollection)
-  Response actionPrompt(final IResourceContext renderContext, final ManagedAction objectAndAction)
-  Response actionResult(final IResourceContext renderContext, final ObjectAndActionInvocation objectAndActionInvocation)
-  void assertContentNegotiationServiceHandled(final ResponseBuilder responseBuilder)
-  ResponseBuilder buildResponse(Function<ContentNegotiationService, ResponseBuilder> connegServiceBuildResponse)     // <.>
-}
-----
-
-<.> xref:#buildResponse__Function[buildResponse(Function)]
-+
---
-Iterates over all _#contentNegotiationServices injected_ xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc[ContentNegotiationService] s to find one that returns a _ResponseBuilder_ using the provided function.
---
-
-== Members
-
-[#buildResponse__Function]
-=== buildResponse(Function)
-
-Iterates over all _#contentNegotiationServices injected_ xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc[ContentNegotiationService] s to find one that returns a _ResponseBuilder_ using the provided function.
-
-There will always be at least one such service, namely the xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc[ContentNegotiationServiceForRestfulObjectsV1_0] .
diff --git a/core/adoc/modules/_overview/pages/about.adoc b/core/adoc/modules/_overview/pages/about.adoc
index c5a90f5..442d565 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -3754,32 +3754,32 @@ skinparam {
 }
 hide stereotype
 left to right direction
-skinparam rectangle<<11>> {
+skinparam rectangle<<22>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<22>> {
+skinparam rectangle<<11>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<23>> {
+skinparam rectangle<<12>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<12>> {
+skinparam rectangle<<23>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<24>> {
+skinparam rectangle<<13>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<13>> {
+skinparam rectangle<<24>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295

[isis] 14/20: ISIS-2484: tweaks some config props

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

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

commit 9bdb92414e97c95dc27d566be1ce517645ab925b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 12:57:46 2021 +0100

    ISIS-2484: tweaks some config props
    
    (cherry picked from commit 6740275abea13bc915231affcc37e11b6ec763de)
---
 scripts/ci/_adoc-gen-projdoc.sh                    |   2 +-
 .../cli/adoc/modules/tooling-cli/pages/about.adoc  | 163 ++++++++++-----------
 .../main/java/org/apache/isis/tooling/cli/Cli.java |   4 +-
 3 files changed, 77 insertions(+), 92 deletions(-)

diff --git a/scripts/ci/_adoc-gen-projdoc.sh b/scripts/ci/_adoc-gen-projdoc.sh
index 0e9b3e5..37641ce 100644
--- a/scripts/ci/_adoc-gen-projdoc.sh
+++ b/scripts/ci/_adoc-gen-projdoc.sh
@@ -51,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}" -r "${OVERVIEW_PATH}" -o "${INDEX_PATH}" $MODE
+  java -jar "${PROJECT_ROOT_PATH}/tooling/cli/target/isis-tooling-cli.jar" -p "${PROJECT_ROOT_PATH}" -w "${OVERVIEW_PATH}" -x "${INDEX_PATH}" $MODE
 fi
 
 
diff --git a/tooling/cli/adoc/modules/tooling-cli/pages/about.adoc b/tooling/cli/adoc/modules/tooling-cli/pages/about.adoc
index 3418cfe..943acbf 100644
--- a/tooling/cli/adoc/modules/tooling-cli/pages/about.adoc
+++ b/tooling/cli/adoc/modules/tooling-cli/pages/about.adoc
@@ -36,8 +36,10 @@ which (currently) generates the following:
 Usage: cli [-hV] [-o=<outputPath>] [-p=<projectRootPath>] [COMMAND]
 CLI for the Apache Isis Tooling Ecosystem
   -h, --help      Show this help message and exit.
-  -o, --output=<outputPath>
-                  path to the output file (default: NONE = write to std.out)
+  -w, --overview=<overviewPath>
+                  path to write the overview file (default: NONE = write to std.out)
+  -x, --index=<indexPath>
+                  path to write the refguide index files (default: NONE = write to std.out)
   -p, --project=<projectRootPath>
                   path to the (multi-module) project root (default: current dir)
   -V, --version   Print version information and exit.
@@ -64,8 +66,12 @@ global: # <.>
   option ...
 command:
   overview: # <.>
+    option ...
+    option ...
     ...
   index:    # <.>
+    option ...
+    option ...
     ...
 ----
 
@@ -79,69 +85,23 @@ Inspect its https://github.com/apache/isis/blob/master/tooling/cli/src/main/java
 
 == Commands
 
-All commands accept two parameters:
+All commands accept the following common parameters:
 
 * `-p` indicates the location of the multi-project root `pom.xml`
 +
 in other words, the root of the git repo.
 
-* `-o` the output target root for generated _adoc_
-
-These are specified first in the command line.
-The command is then specified, along with any command-specific options.
-
 A number of global configuration options can be specified under the `global` entry in the `isis-tooling.yml` file.
 
 [source,yml]
 .isis-tooling.yml
 ----
 global:
-  outputRootFolder:                                                       # <.>
   licenseHeader: "Licensed to the Apache Software Foundation (ASF) ..."   # <.>
-  documentPagesPath: "pages"                                              # <.>
-  namespacePartsSkipCount: 3                                              # <.>
-  sections:                                                               # <.>
-    App: org.apache.isis.app.*
-    Mavendeps: org.apache.isis.mavendeps.*
-    ...
-    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.*"
-    ...
 ----
-
-<.> the output target root for generated _adoc_; corresponds to command line option `-o` (if empty the current dir is used)
 <.> license header to include with each generated adoc file
-<.> sub-folder name for _adoc_ pages
-<.> how many namespace parts in a _fqn_ one wants to skip, eg. in `org.apache.isis.applib.Xxx` if we skip 3 namespace parts we'll end up with `applib.Xxx`
-<.> Logical grouping of modules for the system overview, but also used to determine which modules to scan for index files.
-+
-If not specified the natural Maven project hierarchy is reflected as is.
-
-The `sections` configuration key is used to group module artifacts into named sections.
-It consists of key:value pairs:
-
-* the key is the section name (eg "App", or "JDO")
-* the value is a pattern that identifies Maven artifacts.
-
-This pattern in turn can be either:
-
-* an exact Maven `groupId`, such as `org.apache.isis.persistence`
-+
-This matches all Maven modules with exactly that `groupId`.
 
-* a Maven `groupId` with wildcard, such as `org.apache.isis.core.*`
-+
-This matches all Maven modules whose `groupId` pattern matches the groupId.
 
-* a Maven group and artifact optionally with wildcard, such as `org.apache.isis.persistence:isis-persistence-jdo.*`
-+
-This matches all Maven modules whose `groupId` pattern equals the specified groupId and whose `artifactId` pattern matches the specified `artifactId`.
-
-If a Maven module matches more than one section, then the more specific section (with both group and artifact) is used.
-
-These different types of sections are exploited by the `overview` command, described <<system-overview-overview,below>>.
 
 === Project documentation (`projdoc`)
 
@@ -157,17 +117,18 @@ The `projdoc` command is usually invoked as follows:
 ----
 java -jar tooling/cli/target/isis-tooling-cli.jar \
     -p . \
-    -o antora/components/system/modules/generated \
+    -w core/adoc \
+    -x antora/components/refguide-index \
     projdoc
 ----
 
 where :
 
-* `-p` and `-o` are the global options for all commands
+* `-p` is a global options for all commands
+* `-w` is the option for the `overview` sub-command, specifying the output root path
+* `-x` is the option for the `index` sub-command
+* `projdoc` selects this sub-command (which simply runs both `overview` and `index` sub-commands)
 
-* `projdoc` selects this sub-command
-
-There are no command-specific options.
 
 
 [[projdoc-configuration]]
@@ -181,30 +142,7 @@ However, as it is effectively just the combination of the `overview` and `index`
 
 This command generates the _System Overview_ (`.adoc) page.
 
-This page summarises the contents of each section (defined by the `global.sections` configuration key), also with a link:https://c4model.com/[C4] diagram showing how the modules relate.
-
-As described <<configuration-file,above>>, sections are defined that either match on a group or on a group and artifact.
-The overview command places these under a level 2 or a level 3 heading respectively.
-By sequencing the sections correctly, this therefore allows a hierarchy to be created.
-
-For example,
-
-[source,yml]
-.isis-tooling.yml
-----
-global:
-  ...
-  sections:
-    ...
-    Persistence: org.apache.isis.persistence
-    JDO: "org.apache.isis.persistence:isis-persistence-jdo.*"
-    JPA: "org.apache.isis.persistence:isis-persistence-jpa.*"
-    ...
-----
-
-The `overview` command will render "Persistence" section at level 2 (because its pattern is only for a `groupId`), and then the "JDO" and "JPA" sections underneath at level 3 (because there patterns also include an `artifactId`).
-
-This way, sections can be defined that create a hierarchy.
+This page summarises the contents of each section (defined by the `commands.overview.sections` configuration key), also with a link:https://c4model.com/[C4] diagram showing how the modules relate.
 
 
 ==== Usage
@@ -215,14 +153,14 @@ The `overview` command is usually invoked as follows:
 ----
 java -jar tooling/cli/target/isis-tooling-cli.jar \
     -p . \
-    -o antora/components/system/modules/generated \
+    -v core/adoc \
     overview
 ----
 
 where :
 
-* `-p` and `-o` are the global options for all commands
-
+* `-p` is a global options for all commands
+* `-w` is the option for the `overview` sub-command, specifying the output root path
 * `overview` selects this sub-command
 
 There are no command-specific options.
@@ -239,11 +177,54 @@ The `overview` command supports a number of command-specific configuration optio
 ----
 commands:
   overview:
-    description: "These tables summarize all Maven artifacts ..."           # <.>
-    systemOverviewFilename: "system-overview.adoc"                          # <.>
+    rootFolder:                                                     # <.>
+    pagesPath: "modules/_overview/pages"                            # <.>
+    systemOverviewFilename: "about.adoc"                            # <.>
+    description: "These tables summarize all Maven artifacts ..."   # <.>
+    sections:                                                       # <.>
+      ...
+      Persistence: org.apache.isis.persistence
+      JDO: "org.apache.isis.persistence:isis-persistence-jdo.*"
+      JPA: "org.apache.isis.persistence:isis-persistence-jpa.*"
+      ...
 ----
-<.> _System Overview_ head line
+<.> the output target root for generated overview _adoc_; corresponds to command line option `-v` (if empty the current dir is used)
+<.> sub-folder name for _adoc_ pages
 <.> name of the _System Overview_ (adoc) file
+<.> _System Overview_ summary description text
+<.> Logical grouping of modules for the system overview, but also used to determine which modules to scan for index files.
++
+If not specified the natural Maven project hierarchy is reflected as is.
+This is discussed in more detail below.
+
+The `sections` configuration key is used to group module artifacts into named sections.
+It consists of key:value pairs:
+
+* the key is the section name (eg "App", or "JDO")
+* the value is a pattern that identifies Maven artifacts.
+
+This pattern in turn can be either:
+
+* an exact Maven `groupId`, such as `org.apache.isis.persistence`
++
+This matches all Maven modules with exactly that `groupId`.
+
+* a Maven `groupId` with wildcard, such as `org.apache.isis.core.*`
++
+This matches all Maven modules whose `groupId` pattern matches the groupId.
+
+* a Maven group and artifact optionally with wildcard, such as `org.apache.isis.persistence:isis-persistence-jdo.*`
++
+This matches all Maven modules whose `groupId` pattern equals the specified groupId and whose `artifactId` pattern matches the specified `artifactId`.
+
+If a Maven module matches more than one section, then the more specific section (with both group and artifact) is used.
+
+These different types of sections are exploited by the `overview` command, described <<system-overview-overview,below>>.
+
+Sections that match on a groupID are placed under a level 2 heading, while sections matching on group and artifact are placed under a level 3 heading.
+By sequencing the sections correctly, this therefore allows a hierarchy to be created.
+
+For example, in the config example above the sections defined will render "Persistence" section at level 2 (because its pattern is only for a `groupId`), and then the "JDO" and "JPA" sections underneath at level 3 (because there patterns also include an `artifactId`).
 
 
 
@@ -264,17 +245,16 @@ The `index` command is usually invoked as follows:
 ----
 java -jar tooling/cli/target/isis-tooling-cli.jar \
     -p . \
-    -o antora/components/system/modules/generated \
+    -x antora/components/refguide-index \
     index
 ----
 
 where :
 
-* `-p` and `-o` are the global options for all commands
-
+* `-p` is a global options for all commands
+* `-x` is the option for the `index` sub-command, specifying the output root path
 * `index` selects this sub-command
 
-There are no command-specific options.
 
 
 [[index-configuration]]
@@ -287,13 +267,18 @@ The `index` command supports a number of command-specific configuration options:
 ----
 commands:
   index:
+    rootFolder:                                                             # <.>
     documentGlobalIndexPath: "pages/index"                                  # <.>
     documentGlobalIndexXrefPageIdFormat: "system:generated:index/%s.adoc"   # <.>
+    namespacePartsSkipCount: 3                                              # <.>
     fixOrphanedAdocIncludeStatements: true                                  # <.>
+
 ----
+<.> the output target root for generated index _adoc_ files; corresponds to command line option `-x` (if empty the current dir is used)
 <.> sub-folder name for the _Document Global Index_
 <.> format for include statements via which other _adoc_ files may refer to the Document Global Index
-<.> whether to activate the `OrphanedIncludeStatementFixer`, discussed below.
+<.> how many namespace parts in a _fqn_ one wants to skip, eg. in `org.apache.isis.applib.Xxx` if we skip 3 namespace parts we'll end up with `applib.Xxx`
+<.> whether to activate the `OrphanedIncludeStatementFixer`.
 
 The CLI also has an experimental `OrphanedIncludeStatementFixer` that checks orphaned index references in all _adoc_ files and tries to fix them.
 
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 1a3b519..d1be26d 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,12 +49,12 @@ class Cli implements Callable<Integer> {
     private String projectRootPath;
 
     @Option(
-            names = {"-r", "--overview"},
+            names = {"-w", "--overview"},
             description = "path to the overview file (default: NONE = write to std.out)")
     private String overviewPath;
 
     @Option(
-            names = {"-o", "--output"},
+            names = {"-x", "--index"},
             description = "path to the index files (default: NONE = write to std.out)")
     private String indexPath;
 

[isis] 09/20: ISIS-2484: debugs overview doc tooling

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

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

commit af8a1352b9e3a4f366838990d423c2ecb2236c06
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 11:36:34 2021 +0100

    ISIS-2484: debugs overview doc tooling
    
    (cherry picked from commit 809768b8e9a904d77a0b7cefcd5f5eff568cbe7c)
---
 .run/isis-tooling-cli (index).run.xml    | 22 ++++++++++++++++++++++
 .run/isis-tooling-cli (overview).run.xml | 24 ++++++++++++++++++++++--
 .run/isis-tooling-cli (projdoc).run.xml  | 22 ++++++++++++++++++++++
 isis-tooling.yml                         |  8 ++++----
 4 files changed, 70 insertions(+), 6 deletions(-)

diff --git a/.run/isis-tooling-cli (index).run.xml b/.run/isis-tooling-cli (index).run.xml
new file mode 100644
index 0000000..29a5aeb
--- /dev/null
+++ b/.run/isis-tooling-cli (index).run.xml	
@@ -0,0 +1,22 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="isis-tooling-cli (index)" type="Application" factoryName="Application">
+    <option name="ALTERNATIVE_JRE_PATH" value="C:\Program Files\OpenJDK\openjdk-11.0.7_10" />
+    <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
+    <option name="MAIN_CLASS_NAME" value="org.apache.isis.tooling.cli.Cli" />
+    <module name="isis-tooling-cli" />
+    <option name="PROGRAM_PARAMETERS" value="-p . -o antora/components/refguide-index index " />
+    <extension name="net.ashald.envfile">
+      <option name="IS_ENABLED" value="false" />
+      <option name="IS_SUBST" value="false" />
+      <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
+      <option name="IS_IGNORE_MISSING_FILES" value="false" />
+      <option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
+      <ENTRIES>
+        <ENTRY IS_ENABLED="true" PARSER="runconfig" />
+      </ENTRIES>
+    </extension>
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
+</component>
\ No newline at end of file
diff --git a/.run/isis-tooling-cli (overview).run.xml b/.run/isis-tooling-cli (overview).run.xml
index 0565895..5f75cff 100644
--- a/.run/isis-tooling-cli (overview).run.xml	
+++ b/.run/isis-tooling-cli (overview).run.xml	
@@ -24,7 +24,27 @@
     <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
     <option name="MAIN_CLASS_NAME" value="org.apache.isis.tooling.cli.Cli" />
     <module name="isis-tooling-cli" />
-    <option name="PROGRAM_PARAMETERS" value="-p . -o antora/components/refguide-index overview" />
+    <option name="PROGRAM_PARAMETERS" value="-p . -r core/adoc  overview " />
+    <extension name="net.ashald.envfile">
+      <option name="IS_ENABLED" value="false" />
+      <option name="IS_SUBST" value="false" />
+      <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
+      <option name="IS_IGNORE_MISSING_FILES" value="false" />
+      <option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
+      <ENTRIES>
+        <ENTRY IS_ENABLED="true" PARSER="runconfig" />
+      </ENTRIES>
+    </extension>
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
+  <configuration default="false" name="isis-tooling-cli (overview)" type="Application" factoryName="Application">
+    <option name="ALTERNATIVE_JRE_PATH" value="C:\Program Files\OpenJDK\openjdk-11.0.7_10" />
+    <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
+    <option name="MAIN_CLASS_NAME" value="org.apache.isis.tooling.cli.Cli" />
+    <module name="isis-tooling-cli" />
+    <option name="PROGRAM_PARAMETERS" value="-p . -r core/adoc overview" />
     <extension name="net.ashald.envfile">
       <option name="IS_ENABLED" value="false" />
       <option name="IS_SUBST" value="false" />
@@ -39,4 +59,4 @@
       <option name="Make" enabled="true" />
     </method>
   </configuration>
-</component>
+</component>
\ No newline at end of file
diff --git a/.run/isis-tooling-cli (projdoc).run.xml b/.run/isis-tooling-cli (projdoc).run.xml
new file mode 100644
index 0000000..dae02a7
--- /dev/null
+++ b/.run/isis-tooling-cli (projdoc).run.xml	
@@ -0,0 +1,22 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="isis-tooling-cli (projdoc)" type="Application" factoryName="Application">
+    <option name="ALTERNATIVE_JRE_PATH" value="C:\Program Files\OpenJDK\openjdk-11.0.7_10" />
+    <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
+    <option name="MAIN_CLASS_NAME" value="org.apache.isis.tooling.cli.Cli" />
+    <module name="isis-tooling-cli" />
+    <option name="PROGRAM_PARAMETERS" value="-p . -r core/adoc -o antora/components/refguide-index projdoc" />
+    <extension name="net.ashald.envfile">
+      <option name="IS_ENABLED" value="false" />
+      <option name="IS_SUBST" value="false" />
+      <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
+      <option name="IS_IGNORE_MISSING_FILES" value="false" />
+      <option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
+      <ENTRIES>
+        <ENTRY IS_ENABLED="true" PARSER="runconfig" />
+      </ENTRIES>
+    </extension>
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
+</component>
\ No newline at end of file
diff --git a/isis-tooling.yml b/isis-tooling.yml
index 971369b..67e5e2e 100644
--- a/isis-tooling.yml
+++ b/isis-tooling.yml
@@ -22,10 +22,6 @@ 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.*
@@ -99,6 +95,10 @@ commands:
 
       Legacy: org.apache.isis.legacy.*
 
+  index:
+
+    namespacePartsSkipCount: 3
+
     fixOrphanedAdocIncludeStatements: false
     skipTitleHeader: false
     formatter: JAVA_SOURCES_WITH_SECTIONS

[isis] 11/20: ISIS-2484: fixing index doc tooling

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

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

commit b7e15a88b3e52c5d01907845226a65c81f7e0160
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 12:03:08 2021 +0100

    ISIS-2484: fixing index doc tooling
    
    (cherry picked from commit 4165ef4f68690bf24fd13ed7e91c2199713a5eeb)
---
 .../java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java     | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

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 e83766e..d642573 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
@@ -87,11 +87,10 @@ final class ProjectDocWriter {
                            !fileName.equals(overview.getSystemOverviewFilename());
                 })
                 .stream()
-                .peek(adocFile->log.debug("deleting file: {}", adocFile.getName()))
+                .peek(adocFile->log.debug("deleting file: {}", adocFile.getAbsolutePath()))
                 .peek(__->deleteCount.inc())
                 .forEach(_Files::deleteFile);
 
-
                 // write document index
                 for(val unit : j2aContext.getUnitIndex().values()) {
 

[isis] 02/20: ISIS-2484: fixes release notes navbar

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

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

commit 65accb7ae1374e31a886fb2f0ae0f1f24daf3172
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 28 12:57:16 2021 +0100

    ISIS-2484: fixes release notes navbar
    
    (cherry picked from commit 3ef061a33c9f4681cf85bf82c5cda6e26159e40c)
---
 antora/components/relnotes/modules/ROOT/nav.adoc | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/antora/components/relnotes/modules/ROOT/nav.adoc b/antora/components/relnotes/modules/ROOT/nav.adoc
index 866fa09..dead356 100644
--- a/antora/components/relnotes/modules/ROOT/nav.adoc
+++ b/antora/components/relnotes/modules/ROOT/nav.adoc
@@ -2,18 +2,14 @@
 :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 [...]
 
 
+* 2021
+** xref:relnotes:ROOT:2021/2.0.0-M5/relnotes.adoc[2.0.0-M5]
 * 2020
-
-//** xref:relnotes:ROOT:2020/2.0.0-M5/relnotes.adoc[2.0.0-M5]
 ** xref:relnotes:ROOT:2020/2.0.0-M4/relnotes.adoc[2.0.0-M4]
 ** xref:relnotes:ROOT:2020/2.0.0-M3/relnotes.adoc[2.0.0-M3]
-
 * 2019
-
 ** xref:relnotes:ROOT:2019/2.0.0-M2/relnotes.adoc[2.0.0-M2]
-
 * 2018
-
 ** xref:relnotes:ROOT:2018/2.0.0-M1/relnotes.adoc[2.0.0-M1]
 
 

[isis] 10/20: ISIS-2484: fixing index doc tooling

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

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

commit 7c1efea776dd817d15e591d2bc3792c54cad302f
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 11:57:24 2021 +0100

    ISIS-2484: fixing index doc tooling
    
    (cherry picked from commit d5e0268a8ba26d34a0539148a4e7f97fa709317e)
---
 .../java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java   | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

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 d292694..e83766e 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
@@ -60,6 +60,7 @@ final class ProjectDocWriter {
         val currentUnit = _Refs.<J2AdocUnit>objectRef(null);
 
         val overviewPagesFolder = overview.getPagesFolder();
+        val indexRootFolder = index.getRootFolder();
 
         val deleteCount = _Refs.intRef(0);
         int writeCount = 0;
@@ -78,11 +79,9 @@ final class ProjectDocWriter {
             if(mode.includeIndex()) {
 
                 // delete all generated documents in the index
-                _Files.searchFiles(overviewPagesFolder, dir->true, file-> {
+                _Files.searchFiles(indexRootFolder, dir->true, file-> {
                     val fileName = file.getName();
                     val fileAbsolutePath = file.getAbsolutePath();
-                    final File parentFile = file.getParentFile();
-                    final String parentFileName = parentFile.getName();
                     return fileName.endsWith(".adoc") &&
                            !fileAbsolutePath.contains(File.separatorChar + "hooks" + File.separatorChar) &&
                            !fileName.equals(overview.getSystemOverviewFilename());

[isis] 07/20: ISIS-2484: fixes compile issue with tooling

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

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

commit 72415c87827c1bc5c0b3a6bccc74351da5a4747b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 10:29:33 2021 +0100

    ISIS-2484: fixes compile issue with tooling
    
    (cherry picked from commit 0c26231e9f54df042a2d0d73a0bf379c805532f9)
---
 .../java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
index 4e710db..50dc1dd 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
@@ -119,13 +119,13 @@ public class ProjectDocModel {
                     }
                 })
                 .licenseHeader(cliConfig.getGlobal().getLicenseHeader())
-                .namespacePartsSkipCount(cliConfig.getGlobal().getNamespacePartsSkipCount())
+                .namespacePartsSkipCount(cliConfig.getCommands().getIndex().getNamespacePartsSkipCount())
                 .skipTitleHeader(cliConfig.getCommands().getIndex().isSkipTitleHeader())
                 .build();
 
         // partition modules into sections
         val sections = new ArrayList<Section>();
-        cliConfig.getGlobal().getSections().forEach((section, groupIdArtifactIdPattern)->{
+        cliConfig.getCommands().getOverview().getSections().forEach((section, groupIdArtifactIdPattern)->{
             createSections(modules, section, groupIdArtifactIdPattern, sections::add);
         });
 

[isis] 17/20: ISIS-2484: adds back in docs

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

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

commit 99f87450eaf32e34c7fb38b8e7aee2c5f946043d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 31 12:29:10 2021 +0100

    ISIS-2484: adds back in docs
    
    (cherry picked from commit 46e10eeb5818853fdefe1e3fd6cc86a0adaad936)
---
 .../jpa/adoc/modules/ROOT/pages/applib.adoc        |   1 +
 .../jpa/adoc/modules/ROOT/pages/mapping-guide.adoc |   2 +-
 .../ROOT/pages/setup-and-configuration.adoc        | 143 ++++++++++++++++++++-
 3 files changed, 140 insertions(+), 6 deletions(-)

diff --git a/persistence/jpa/adoc/modules/ROOT/pages/applib.adoc b/persistence/jpa/adoc/modules/ROOT/pages/applib.adoc
index e69de29..43d4bb56 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/applib.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/applib.adoc
@@ -0,0 +1 @@
+= JPA Applib
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc b/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
index 22c7ab3..71d14ff 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
@@ -1,4 +1,4 @@
-= Other Resources
+= Mapping Guide
 
 :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-aliases: guides:ugvw:ugvw.adoc
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc b/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
index 4048e64..54f5924 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
@@ -1,12 +1,145 @@
-= JPA
+= 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 [...]
 
 
 
-The JPA/EclipseLink object store enables domain objects to be persisted to relational databases.
-The object store is implemented using the link:https://www.eclipse.org/eclipselink/[EclipseLink] ORM, using the link:https://www.jcp.org/en/jsr/detail?id=317[JPA] API.
-EclipseLink is the reference implementation for JPA.
+This section describes how to include the JPA module and setup its configuration properties.
+
+
+== Add dependency to pom.xml
+
+=== Dependency Management
+
+If your application inherits from the Apache Isis starter app (`org.apache.isis.app:isis-app-starter-parent` then that will define the version automatically:
+
+[source,xml,subs="attributes+"]
+.pom.xml
+----
+<parent>
+    <groupId>org.apache.isis.app</groupId>
+    <artifactId>isis-app-starter-parent</artifactId>
+    <version>{page-isisrel}</version>
+    <relativePath/>
+</parent>
+----
+
+Alternatively, import the core BOM.
+This is usually done in the top-level parent pom of your application:
+
+[source,xml,subs="attributes+"]
+.pom.xml
+----
+<dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core</artifactId>
+            <version>{page-isisrel}</version>
+            <version>2.0.0-SNAPSHOT</version>
+            <scope>import</scope>
+            <type>pom</type>
+        </dependency>
+    </dependencies>
+</dependencyManagement>
+----
+
+
+=== Dependency
+
+For every Maven module that includes JPA entities, add the following dependency:
+
+[source,xml]
+.pom.xml
+----
+<dependencies>
+    <dependency>
+        <groupId>org.apache.isis.mavendeps</groupId>
+        <artifactId>isis-mavendeps-jpa</artifactId>
+        <type>pom</type>
+    </dependency>
+</dependencies>
+----
+
+
+== Update AppManifest
+
+In your application's `AppManifest` (top-level Spring `@Configuration` used to bootstrap the app), import the
+
+[source,java]
+.AppManifest.java
+----
+@Configuration
+@Import({
+        ...
+        IsisModuleJpaEclipselink.class,
+        ...
+})
+public class AppManifest {
+}
+----
+
+== DataSource
+
+The JPA object store uses Spring to provide a `javax.sql.DataSource`.
+Normally this is done by setting the `spring.datasource` configuration properties.
+
+For example, the xref:docs:starters:simpleapp.adoc[SimpleApp] starter app defines these:
+
+* for H2 (in-memory):
++
+[source,properties]
+.app.properties
+----
+spring.datasource.platform=h2
+spring.datasource.url=jdbc:h2:mem:simple
+spring.datasource.driver-class-name=org.h2.Driver
+----
+
+* for SQL Server:
++
+[source,properties]
+.app.properties
+----
+spring.datasource.platform=sqlserver
+spring.datasource.url=jdbc:sqlserver://localhost;databaseName=simpleapp
+spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
+spring.datasource.username=simpleapp
+spring.datasource.password=simpleapp
+----
+
+It is also possible to programmatically define a `DataSource`; see the link:https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-data-access[Spring docs] for details.
+
+
+== Schemas
+
+In the same way that Java packages act as a namespace for domain objects, it's good practice to map domain entities to their own (database) schemas.
+(For more on database schemas, see for example link:https://crate.io/docs/sql-99/en/latest/chapters/17.html#create-schema-statement[here]).
+
+We recommend all the entities within a module use the same schema, and moreover that the xref:refguide:applib:index/annotation/DomainObject.adoc#objectType[object type] also follows the same pattern.
+
+For example, xref:security:secman:about.adoc[SecMan]' JPA implementation resides in the `IsisModuleExtSecmanPersistenceJpa` module.
+Its `ApplicationUser` entity is defined as:
+
+[source,java]
+.ApplicationUser.java
+----
+@Entity
+@Table(
+        schema = "isisExtensionsSecman",
+        name = "ApplicationUser",
+        ...
+)
+public class ApplicationUser ... { /* ... */ }
+----
+
+which results in a `CREATE TABLE` statement of:
+
+[source,sql]
+----
+CREATE TABLE isisExtensionsSecman."ApplicationUser" (
+    ...
+)
+----
 
-This component guide discuss how to setup the framework to use the JPA/EclipseLink object store, how to configure the ORM, and also provides some examples on common use cases.
 

[isis] 13/20: ISIS-2484: regenerated overview

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

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

commit 5d97871a392470c8484640ce84228bffc520084e
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 12:33:09 2021 +0100

    ISIS-2484: regenerated overview
    
    (cherry picked from commit b195887fe96e50f86a50dd22ed83d3cc13a55bb9)
---
 core/adoc/modules/_overview/pages/about.adoc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/core/adoc/modules/_overview/pages/about.adoc b/core/adoc/modules/_overview/pages/about.adoc
index 442d565..0f0eaf1 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -3764,12 +3764,12 @@ skinparam rectangle<<11>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<12>> {
+skinparam rectangle<<23>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<23>> {
+skinparam rectangle<<12>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295

[isis] 15/20: ISIS-2484: fixes unit test

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

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

commit acb91ed3a690a3211a1a307109e4a4043c37d1fa
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 15:05:29 2021 +0100

    ISIS-2484: fixes unit test
    
    (cherry picked from commit bda4edfefeb91871ab4996a796ae9843e1882337)
---
 .../apache/isis/tooling/cli/test/isis-tooling.yml  | 151 +++++++++++----------
 1 file changed, 78 insertions(+), 73 deletions(-)

diff --git a/tooling/cli/src/test/resources/org/apache/isis/tooling/cli/test/isis-tooling.yml b/tooling/cli/src/test/resources/org/apache/isis/tooling/cli/test/isis-tooling.yml
index 77fba0f..9af9c57 100644
--- a/tooling/cli/src/test/resources/org/apache/isis/tooling/cli/test/isis-tooling.yml
+++ b/tooling/cli/src/test/resources/org/apache/isis/tooling/cli/test/isis-tooling.yml
@@ -17,84 +17,89 @@
 #  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.*
-
-    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_."
 
+    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.*
+
   index:
+
+    namespacePartsSkipCount: 3
+
     fixOrphanedAdocIncludeStatements: true
+    skipTitleHeader: false
+    formatter: JAVA_SOURCES_WITH_SECTIONS
 

[isis] 05/20: ISIS-2484: updates release procedure, bump BASELINE for nightly builds

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

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

commit 425168d051fb1c278b882ee2295b347bee4e1d55
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 28 13:15:42 2021 +0100

    ISIS-2484: updates release procedure, bump BASELINE for nightly builds
    
    (cherry picked from commit ff033b3ffd35540cbd5fc008854576a05134074b)
---
 .../comguide/modules/ROOT/pages/post-release-successful.adoc        | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index 9a50b37..086e784 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -552,3 +552,9 @@ Enjoy!
 link:https://blogs.apache.org/roller-ui/login.rol[Log onto] the http://blogs.apache.org/isis/[Apache blog] and create a new post.
 Copy-n-paste the above mailing list announcement should suffice.
 
+
+== Update BASELINE for nightly builds
+
+Nightly builds (non-ASF) are generated using CI definitions in the link:https://github.com/apache-isis-committers/isis-nightly[github.com/apache-isis-committers/isis-nightly] repo, published to the link:https://nexus.incode.work/repository/nightly-builds/[nightly-builds] repo of link:https://nexus.incode.work/[nexus.incode.work]:
+
+* bump the `BASELINE` variable in link:https://github.com/apache-isis-committers/isis-nightly/blob/0fdea0c4e7419b40acc9a03746e4c3cac3f262b2/.github/workflows/apache-isis-ci-nightly.yml#L15[apache-isis-ci-nightly.yml] (workflow file).

[isis] 19/20: ISIS-2484: updates docs for JPA and JDO

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

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

commit 8cd63e0a90e5987d5dc16fd6b6e825d025a43719
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 31 13:42:24 2021 +0100

    ISIS-2484: updates docs for JPA and JDO
    
    (cherry picked from commit c24f2fb93cbf22ccef75f9af8fb35b4ae1dadf0d)
---
 .../JdoSupportService_010-examples-and-usage.adoc  |  19 +--
 .../setupguide/modules/eclipse/pages/about.adoc    |   3 +-
 antora/playbooks/site-persistence.yml              |   6 +
 .../config/partials/configuring-schemas.adoc       |  24 ++++
 .../jdo/adoc/modules/ROOT/pages/db-schemas.adoc    | 130 ++-------------------
 ...er-resources.adoc => dependency-injection.adoc} |   8 +-
 .../adoc/modules/ROOT/pages/hints-and-tips.adoc    |   4 -
 .../{jdo-mappings.adoc => mapping-guide.adoc}      |  16 ++-
 .../mandatory-properties-in-subtypes.adoc          |   0
 .../mapping-to-a-view.adoc                         |   0
 .../one-to-m-bidirectional-relationships.adoc      |   0
 .../ROOT/pages/setup-and-configuration.adoc        |  70 ++++++-----
 .../jdo/adoc/modules/ROOT/partials/module-nav.adoc |  13 ++-
 persistence/jpa/adoc/modules/ROOT/nav.adoc         |   2 +-
 .../jpa/adoc/modules/ROOT/pages/applib.adoc        |   1 -
 .../jpa/adoc/modules/ROOT/pages/db-schemas.adoc    |  37 ++++++
 .../modules/ROOT/pages/dependency-injection.adoc}  |  18 ++-
 .../adoc/modules/ROOT/pages/domain-services.adoc}  |  12 +-
 .../jpa/adoc/modules/ROOT/pages/mapping-guide.adoc |   2 -
 .../ROOT/pages/setup-and-configuration.adoc        |  34 +-----
 .../jpa/adoc/modules/ROOT/partials/module-nav.adoc |   7 +-
 .../adoc/modules/ROOT/pages/architecture.adoc      |   2 +-
 22 files changed, 187 insertions(+), 221 deletions(-)

diff --git a/persistence/jdo/adoc/modules/ROOT/pages/services/IsisJdoSupport.adoc b/antora/components/refguide-index/modules/persistence/pages/index/jdo/applib/services/hooks/JdoSupportService_010-examples-and-usage.adoc
similarity index 98%
rename from persistence/jdo/adoc/modules/ROOT/pages/services/IsisJdoSupport.adoc
rename to antora/components/refguide-index/modules/persistence/pages/index/jdo/applib/services/hooks/JdoSupportService_010-examples-and-usage.adoc
index e6d23d8..2d65551 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/services/IsisJdoSupport.adoc
+++ b/antora/components/refguide-index/modules/persistence/pages/index/jdo/applib/services/hooks/JdoSupportService_010-examples-and-usage.adoc
@@ -1,17 +1,16 @@
-[[IsisJdoSupport]]
-= `IsisJdoSupport`
-
 :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-partial:
 
 
+== Examples and Usage
+
 The `IsisJdoSupport` service provides a number of general purpose methods for working with the JDO/DataNucleus objectstore.
 In general these act at a lower-level of abstraction than the APIs normally used (specifically, those of xref:refguide:applib:index/services/repository/RepositoryService.adoc[RepositoryService]), but nevertheless deal with some of the most common use cases.
 For service also provides access to the underlying JDO `PersistenceManager` for full control.
 
 The following sections discuss the functionality provided by the service, broken out into categories.
 
-== Executing SQL
+=== Executing SQL
 
 You can use the `IsisJdoSupportService` to perform arbitrary SQL SELECTs or UPDATEs:
 
@@ -50,7 +49,7 @@ As an alternative, consider using DataNucleus' link:http://www.datanucleus.org/p
 ====
 
 [#type-safe-jdoql-queries]
-== Type-safe JDOQL Queries
+=== Type-safe JDOQL Queries
 
 DataNucleus provides an link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/jdoql_typesafe.html[extension to JDO], so that JDOQL queries can be built up and executed using a set of type-safe classes.
 
@@ -131,7 +130,8 @@ private static <T> List<T> executeListAndClose(final TypesafeQuery<T> query) {
 }
 ----
 
-== Fixture support
+
+=== Fixture support
 
 When writing xref:testing:integtestsupport:about.adoc[integration tests] you'll usually need to tear down some/all mutable transactional data before each test.
 One way to do that is to use the `executeUpdate(...)` method described xref:pjdo:ROOT:services/IsisJdoSupport.adoc#executing-sql[above].
@@ -169,7 +169,8 @@ JDO/DataNucleus seems to bump up the version of the object prior to its deletion
 Therefore to prevent this from happening (ie to _force_ the deletion of all instances), concurrency checking is temporarily disabled while this method is performed.
 ====
 
-== Reloading entities
+
+=== Reloading entities
 
 An link:http://www.datanucleus.org:15080/products/accessplatform_5_0/jdo/mapping.html#one_many_relations[(intentional) limitation] of JDO/DataNucleus is that persisting a child entity (in a 1:n bidirectional relationship) does not cause the parent's collection to be updated.
 
@@ -189,7 +190,8 @@ The `ensureLoaded(...)` method allows a collection of domain objects to be loade
 This can be valuable as a performance optimization to avoid multiple roundtrips to the database.
 Under the covers it uses the `PersistenceManager#retrieveAll(...)` API.
 
-== JDO `PersistenceManager`
+
+=== JDO `PersistenceManager`
 
 The functionality provided by `IsisJdoSupport` focus only on the most common use cases.
 If you require more flexibility than this, eg for dynamically constructed queries, then you can use the service to access the underlying JDO `PersistenceManager` API:
@@ -222,4 +224,3 @@ public class Orders {
 }
 ----
 
-TODO: v2: IsisJdoSupport_v3_2
diff --git a/antora/components/setupguide/modules/eclipse/pages/about.adoc b/antora/components/setupguide/modules/eclipse/pages/about.adoc
index 022fec3..57a1fe8 100644
--- a/antora/components/setupguide/modules/eclipse/pages/about.adoc
+++ b/antora/components/setupguide/modules/eclipse/pages/about.adoc
@@ -75,6 +75,7 @@ Use File > Import, then Maven > Existing Maven Projects.
 
 However, you will have some compile errors until you enable annotation processing, discussed below.
 
+[#enable-annotation-processing]
 === Enable Annotation Processing
 
 Both DataNucleus and Project Lombok use annotation processors that must be enabled in Eclipse.
@@ -90,7 +91,7 @@ Then under _Java Compiler > Annotation Processing > Factory Path_ add the follow
 * `datanucleus-jdo-query-5.0.9.jar` (under `.m2/repository/org/datanucleus/datanucleus-jdo-query/5.0.9`)
 * `javax.jdo-3.2.0-m13.jar` (under `.m2/repository/org/datanucleus/javax.jdo/3.2.0-m13`)
 
-The specific versions depend on the DataNucleus version used in your project. You can easily check this in the Dependency Hierarchy tab of the POM.xml viewer in eclipse.
+The specific versions depend on the DataNucleus version used in your project.You can easily check this in the Dependency Hierarchy tab of the POM.xml viewer in eclipse.
 
 Eclipse should automatically add these directories as a source path; at this point all remaining compiler errors should disappear.
 
diff --git a/antora/playbooks/site-persistence.yml b/antora/playbooks/site-persistence.yml
index 87f1ffa..3709277 100644
--- a/antora/playbooks/site-persistence.yml
+++ b/antora/playbooks/site-persistence.yml
@@ -27,6 +27,12 @@ content:
     - url: .
       start_path: antora/components/docs # docs
       branches: HEAD
+
+# core
+    - url: .
+      start_path: core/config/src/main/adoc # refguide
+      branches: HEAD
+
 # examples
     - url: .
       start_path: examples/demo/domain/src/main/adoc # docs
diff --git a/core/config/src/main/adoc/modules/config/partials/configuring-schemas.adoc b/core/config/src/main/adoc/modules/config/partials/configuring-schemas.adoc
new file mode 100644
index 0000000..80c7542
--- /dev/null
+++ b/core/config/src/main/adoc/modules/config/partials/configuring-schemas.adoc
@@ -0,0 +1,24 @@
+= Configuring Schemas
+
+: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 [...]
+
+
+While it is good practice to place tables in schemas, the ORMs do not by default actually create those schema (as per link:https://crate.io/docs/sql-99/en/latest/chapters/17.html#create-schema-statement[CREATE SCHEMA] statement).
+
+The framework therefore allows this to be configured:
+
+* xref:refguide:config:sections/isis.persistence.schema.adoc#isis.persistence.schema.auto-create-schemas[isis.persistence.schema.auto-create-schemas]
++
+whether to automatically create the schemas
+
+* xref:refguide:config:sections/isis.persistence.schema.adoc#isis.persistence.schema.create-schema-sql-template[isis.persistence.schema.create-schema-sql-template]
++
+the SQL text used to create the schema.
+This should be an idempotent command, with the default being SQL-99 compliant:
++
+[source,sql]
+----
+CREATE SCHEMA IF NOT EXISTS %S
+----
++
+The string is interpolated using `String.format()`, passing in the schema name (for all discovered schema names).
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc b/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
index 05b9dc4..0c1c186 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
@@ -4,20 +4,25 @@
 :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 [...]
 
 
-
 In the same way that Java packages act as a namespace for domain objects, it's good practice to map domain entities to their own (database) schemas.
+(For more on database schemas, see for example link:https://crate.io/docs/sql-99/en/latest/chapters/17.html#create-schema-statement[here]).
+
+We recommend all the entities within a module use the same schema, and moreover that the xref:refguide:applib:index/annotation/DomainObject.adoc#objectType[object type] also follows the same pattern.
 
-For example:
+For example, xref:security:secman:about.adoc[SecMan]' JDO implementation resides in the `IsisModuleExtSecmanPersistenceJpa` module.
+Its `ApplicationUser` entity is defined as:
 
 [source,java]
 ----
-@javax.jdo.annotations.PersistenceCapable( ...
+@javax.jdo.annotations.PersistenceCapable(
         schema = "isisExtensionsSecman",
-        table = "ApplicationUser")
+        table = "ApplicationUser",
+        ...
+)
 public class ApplicationUser ... { /* ... */ }
 ----
 
-results in a `CREATE TABLE` statement of:
+which results in a `CREATE TABLE` statement of:
 
 [source,sql]
 ----
@@ -27,25 +32,6 @@ CREATE TABLE isisExtensionsSecman."ApplicationUser" (
 ----
 
 
-while:
-
-[source,java]
-----
-@javax.jdo.annotations.PersistenceCapable( ...
-        schema = "isisaudit",
-        table="AuditEntry")
-public class AuditEntry ... { /* ... */ }
-----
-
-similarly results in:
-
-[source,sql]
-----
-CREATE TABLE isisaudit."AuditEntry" (
-    ...
-)
-----
-
 
 [TIP]
 ====
@@ -54,99 +40,5 @@ See the section on xref:pjdo:ROOT:setup-and-configuration.adoc[configuring DataN
 ====
 
 
+include::refguide:config:partial$configuring-schemas.adoc[leveloffset=+1]
 
-== Flyway
-
-WARNING: TODO - v2 - reference flyway here also.
-
-
-
-//
-// no longer seems to be needed in v2
-//
-//
-//== Listener to create schema
-//
-//Apache Isis automatically creates owning schema objects for the tables that correspond to each entity class in the JDO metamodel.
-//
-//This is done by installing a listener, `CreateSchemaObjectFromClassMetadata`, on a callback provided by JDO/DataNucleus.
-//The listener is invoked on the initialization of each class.
-//It checks for the schema's existence, and creates the schema if required.
-//
-//The guts of its implementation is:
-//
-//[source,java]
-//----
-//public class CreateSchemaObjectFromClassMetadata
-//        implements MetaDataListener,
-//                   DataNucleusPropertiesAware {
-//    @Override
-//    public void loaded(final AbstractClassMetaData cmd) { /* ... */ }
-//
-//    protected String buildSqlToCheck(final AbstractClassMetaData cmd) {
-//        final String schemaName = schemaNameFor(cmd);
-//        return String.format(
-//            "SELECT count(*) FROM INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME = '%s'", schemaName);
-//    }
-//    protected String buildSqlToExec(final AbstractClassMetaData cmd) {
-//        final String schemaName = schemaNameFor(cmd);
-//        return String.format("CREATE SCHEMA \"%s\"", schemaName);
-//    }
-//}
-//----
-//
-//where `MetaDataListener` is the DataNucleus listener API:
-//
-//[source,java]
-//----
-//public interface MetaDataListener {
-//    void loaded(AbstractClassMetaData cmd);
-//}
-//----
-//
-//Although not formal API, the default `CreateSchemaObjectFromClassMetadata` has been designed to be easily overrideable if you need to tweak it to support other RDBMS'.
-//Any implementation must implement `org.datanucleus.metadata.MetaDataListener`:
-//
-//The implementation provided has has been tested for HSQLDB, PostgreSQL and MS SQL Server, and is used automatically unless an alternative implementation is specified (as described in the section below).
-//
-//
-//
-//
-//
-//== Alternative implementation
-//
-//An alternative implementation can be registered and used through the
-//
-//xref:refguide:config:sections/jdo-datanucleus-conf.adoc#class
-//
-//configuration property:
-//
-//[source,ini]
-//----
-//isis.persistor.datanucleus.classMetadataLoadedListener=\
-//        org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata
-//----
-//
-//
-//Because this pertains to JDO/DataNucleus we suggest you put this configuration property in `WEB-INF/persistor_datanucleus.properties`; but putting it in `isis.properties` will also work.
-//
-//Any implementation must implement `org.datanucleus.metadata.MetaDataListener`.
-//In many cases simply subclassing from `CreateSchemaObjectFromClassMetadata` and overriding `buildSqlToCheck(...)` and `buildSqlToExec(...)` should suffice.
-//
-//If you _do_ need more control, your implementation can also optionally implement `org.apache.isis.objectstore.jdo.datanucleus.DataNucleusPropertiesAware`:
-//
-//[source,java]
-//----
-//public interface DataNucleusPropertiesAware {
-//    public void setDataNucleusProperties(final Map<String, String> properties);
-//}
-//----
-//
-//This provides access to the properties passed through to JDO/DataNucleus.
-//
-//
-//[IMPORTANT]
-//====
-//If you do extend Apache Isis' `CreateSchemaObjectFromClassMetadata` class for some other database, please https://issues.apache.org/jira/browse/ISIS[contribute back] your improvements.
-//====
-//
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/other-resources.adoc b/persistence/jdo/adoc/modules/ROOT/pages/dependency-injection.adoc
similarity index 74%
rename from persistence/jdo/adoc/modules/ROOT/pages/other-resources.adoc
rename to persistence/jdo/adoc/modules/ROOT/pages/dependency-injection.adoc
index 8aab42b..af6be70 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/other-resources.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/dependency-injection.adoc
@@ -1,7 +1,9 @@
-= Other Resources
+= Dependency Injection
 
 :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-aliases: guides:ugvw:ugvw.adoc
 
-WARNING: TODO: document 3rd party tutorials and resources.
+
+With Apache Isis it's common to inject domain services into domain entities; this allows behaviour to be pushed down into those entities.
+
+For JDO, this injection performs automatically; there is no configuration or boilerplate required.
 
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/hints-and-tips.adoc b/persistence/jdo/adoc/modules/ROOT/pages/hints-and-tips.adoc
index a025034..121de60 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/hints-and-tips.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/hints-and-tips.adoc
@@ -4,12 +4,8 @@
 :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
-
 This chapter provides some solutions for problems we've encountered ourselves or have been raised on the Apache Isis mailing lists.
 
-
-
 include::hints-and-tips/overriding-jdo-annotations.adoc[leveloffset=+1]
 include::hints-and-tips/subtype-entity-not-fully-populated.adoc[leveloffset=+1]
 include::hints-and-tips/java8.adoc[leveloffset=+1]
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc b/persistence/jdo/adoc/modules/ROOT/pages/mapping-guide.adoc
similarity index 56%
copy from persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc
copy to persistence/jdo/adoc/modules/ROOT/pages/mapping-guide.adoc
index d64ee7f..711def8 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/mapping-guide.adoc
@@ -1,11 +1,15 @@
-[[jdo-mappings]]
-= JDO Mappings
+= Mapping Guide
 
 :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
+The best resource for learning how to map JDO entities is the DataNucleus website.
+Take a look at:
 
+* link:https://www.datanucleus.org/products/accessplatform/jdo/mapping.html[JDO Mapping Guide]
+* link:https://www.datanucleus.org/products/accessplatform/jdo/annotations.html[JDO Annotations]
 
-include::jdo-mappings/one-to-m-bidirectional-relationships.adoc[leveloffset=+1]
-include::jdo-mappings/mandatory-properties-in-subtypes.adoc[leveloffset=+1]
-include::jdo-mappings/mapping-to-a-view.adoc[leveloffset=+1]
+In addition, we have a couple of articles on specific mapping use cases:
+
+* xref:pjdo:ROOT:mapping-guide/one-to-m-bidirectional-relationships.adoc[]
+* xref:pjdo:ROOT:mapping-guide/mandatory-properties-in-subtypes.adoc[]
+* xref:pjdo:ROOT:mapping-guide/mapping-to-a-view.adoc[]
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings/mandatory-properties-in-subtypes.adoc b/persistence/jdo/adoc/modules/ROOT/pages/mapping-guide/mandatory-properties-in-subtypes.adoc
similarity index 100%
rename from persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings/mandatory-properties-in-subtypes.adoc
rename to persistence/jdo/adoc/modules/ROOT/pages/mapping-guide/mandatory-properties-in-subtypes.adoc
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings/mapping-to-a-view.adoc b/persistence/jdo/adoc/modules/ROOT/pages/mapping-guide/mapping-to-a-view.adoc
similarity index 100%
rename from persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings/mapping-to-a-view.adoc
rename to persistence/jdo/adoc/modules/ROOT/pages/mapping-guide/mapping-to-a-view.adoc
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings/one-to-m-bidirectional-relationships.adoc b/persistence/jdo/adoc/modules/ROOT/pages/mapping-guide/one-to-m-bidirectional-relationships.adoc
similarity index 100%
rename from persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings/one-to-m-bidirectional-relationships.adoc
rename to persistence/jdo/adoc/modules/ROOT/pages/mapping-guide/one-to-m-bidirectional-relationships.adoc
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc b/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
index 40f1b1f..69fd297 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
@@ -4,7 +4,7 @@
 
 
 
-== Add dependency to pom.xml
+== Maven pom.xml
 
 === Dependency Management
 
@@ -142,42 +142,27 @@ The default value is to use SQL-99 syntax ("CREATE SCHEMA IF NOT EXISTS %S"), pa
 
 
 
-[[persistence-xml]]
-== `persistence.xml`
 
-DataNucleus will for itself also read the `META-INF/persistence.xml`.
-In theory this can hold mappings and even connection strings.
-However, with Apache Isis we tend to use annotations instead and externalize connection strings. so its definition is extremely simply, specifying just the name of the "persistence unit".
+== Auto-create (or validate) tables
 
-Here's the one provided by the xref:docs:starters:simpleapp.adoc[SimpleApp] starter app:
+When running against the h2 in-memory database (eg for prototype mode or integration tests), you'll probably want DataNucleus to automatically create the tables.
 
-[source,xml]
-----
-<?xml version="1.0" encoding="UTF-8" ?>
-<persistence xmlns="http://java.sun.com/xml/ns/persistence"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+This can be configured using the:
 
-    <persistence-unit name="simple">
-    </persistence-unit>
-</persistence>
-----
+* xref:refguide:config:sections/datanucleus.adoc#datanucleus.schema.auto-create-all[datanucleus.schema.autoCreateAll] configuration property.
 
-Normally all one needs to do is to change the `persistence-unit` name.
+Conversely, if running in production then you will probably use xref:userguide:flyway:about.adoc[Flyway] to manage database migrations.
+In this case you'll just want to validate that the database table structure of the target database is in line with what DataNucleus expectss.
 
-[TIP]
-====
-If you use Eclipse IDE on Windows then
-xref:setupguide:eclipse:about.adoc#workaround-for-path-limits-the-dn-plugin-to-use-the-persistence-xml[note the importance] of the `persistence.xml` file to make DataNucleus enhancer work correctly.
-====
+You can do this using the:
 
+* xref:refguide:config:sections/datanucleus.adoc#datanucleus.schema.validate-all[datanucleus.schema.validateAll] configuration property.
 
-See link:http://www.datanucleus.org/products/datanucleus/jdo/persistence.html#persistenceunit[DataNucleus' documentation] on `persistence.xml` to learn more.
+This will fail-fast if there is a mismatch.
 
 
 == Other Configuration Properties
 
-
 Additional configuration properties for DataNucleus itself can be specified directly under the `datanucleus.` configuration key.
 
 We recommend that some of these should be configured:
@@ -196,8 +181,39 @@ A full list can be found http://www.datanucleus.org/products/datanucleus/jdo/met
 ====
 DataNucleus properties must be specified using `camelCase`, not `kebab-case`.
 
-For example, use
+For example, use `datanucleus.schema.autoCreateAll` not `datanucleus.schema.auto-create-all`
+====
+
+
+[[persistence-xml]]
+== `persistence.xml`
+
+DataNucleus will for itself also read the `META-INF/persistence.xml`.
+In theory this can hold mappings and even connection strings.
+However, with Apache Isis we tend to use annotations instead and externalize connection strings. so its definition is extremely simply, specifying just the name of the "persistence unit".
+
+Here's the one provided by the xref:docs:starters:simpleapp.adoc[SimpleApp] starter app:
+
+[source,xml]
+----
+<?xml version="1.0" encoding="UTF-8" ?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+    <persistence-unit name="simple">
+    </persistence-unit>
+</persistence>
+----
+
+Normally all one needs to do is to change the `persistence-unit` name.
+
+[TIP]
 ====
+If you use Eclipse IDE on Windows then
+xref:setupguide:eclipse:about.adoc#workaround-for-path-limits-the-dn-plugin-to-use-the-persistence-xml[note the importance] of the `persistence.xml` file to make DataNucleus enhancer work correctly.
+====
+
 
+See link:http://www.datanucleus.org/products/datanucleus/jdo/persistence.html#persistenceunit[DataNucleus' documentation] on `persistence.xml` to learn more.
 
-//
diff --git a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
index a0273ae..fc55ffd 100644
--- a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,10 +1,13 @@
 
-
 * xref:pjdo:ROOT:setup-and-configuration.adoc[Setup and Configuration]
 ** xref:pjdo:ROOT:configuring/disabling-persistence-by-reachability.adoc[Disabling Persistence by Reachability]
-* xref:pjdo:ROOT:jdo-mappings.adoc[JDO Mappings]
+
 * xref:pjdo:ROOT:db-schemas.adoc[DB Schemas]
+
+* xref:pjdo:ROOT:mapping-guide.adoc[Mapping Guide]
+** xref:pjdo:ROOT:mapping-guide/one-to-m-bidirectional-relationships.adoc[leveloffset=+1]
+** xref:pjdo:ROOT:mapping-guide/mandatory-properties-in-subtypes.adoc[leveloffset=+1]
+** xref:pjdo:ROOT:mapping-guide/mapping-to-a-view.adoc[leveloffset=+1]
+
+* xref:pjdo:ROOT:dependency-injection.adoc[Dependency Injection]
 * xref:pjdo:ROOT:hints-and-tips.adoc[Hints-n-Tips]
-* Domain Services
-** xref:pjdo:ROOT:services/IsisJdoSupport.adoc[IsisJdoSupport]
-* xref:pjdo:ROOT:other-resources.adoc[Other Resources]
diff --git a/persistence/jpa/adoc/modules/ROOT/nav.adoc b/persistence/jpa/adoc/modules/ROOT/nav.adoc
index 4c4e42b..689950a 100644
--- a/persistence/jpa/adoc/modules/ROOT/nav.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/nav.adoc
@@ -1,4 +1,4 @@
 
 :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 [...]
 
-include::pjdo:ROOT:partial$component-nav.adoc[]
+include::pjpa:ROOT:partial$component-nav.adoc[]
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/applib.adoc b/persistence/jpa/adoc/modules/ROOT/pages/applib.adoc
deleted file mode 100644
index 43d4bb56..0000000
--- a/persistence/jpa/adoc/modules/ROOT/pages/applib.adoc
+++ /dev/null
@@ -1 +0,0 @@
-= JPA Applib
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/db-schemas.adoc b/persistence/jpa/adoc/modules/ROOT/pages/db-schemas.adoc
new file mode 100644
index 0000000..200ab3b
--- /dev/null
+++ b/persistence/jpa/adoc/modules/ROOT/pages/db-schemas.adoc
@@ -0,0 +1,37 @@
+[[db-schemas]]
+= Database Schemas
+
+: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 [...]
+
+
+In the same way that Java packages act as a namespace for domain objects, it's good practice to map domain entities to their own (database) schemas.
+(For more on database schemas, see for example link:https://crate.io/docs/sql-99/en/latest/chapters/17.html#create-schema-statement[here]).
+
+We recommend all the entities within a module use the same schema, and moreover that the xref:refguide:applib:index/annotation/DomainObject.adoc#objectType[object type] also follows the same pattern.
+
+For example, xref:security:secman:about.adoc[SecMan]' JPA implementation resides in the `IsisModuleExtSecmanPersistenceJpa` module.
+Its `ApplicationUser` entity is defined as:
+
+[source,java]
+.ApplicationUser.java
+----
+@Entity
+@Table(
+        schema = "isisExtensionsSecman",
+        name = "ApplicationUser",
+        ...
+)
+public class ApplicationUser ... { /* ... */ }
+----
+
+which results in a `CREATE TABLE` statement of:
+
+[source,sql]
+----
+CREATE TABLE isisExtensionsSecman."ApplicationUser" (
+    ...
+)
+----
+
+include::refguide:config:partial$configuring-schemas.adoc[leveloffset=+1]
+
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc b/persistence/jpa/adoc/modules/ROOT/pages/dependency-injection.adoc
similarity index 61%
copy from persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc
copy to persistence/jpa/adoc/modules/ROOT/pages/dependency-injection.adoc
index d64ee7f..e65ad9c 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/dependency-injection.adoc
@@ -1,11 +1,17 @@
-[[jdo-mappings]]
-= JDO Mappings
+= Dependency Injection
 
 :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
 
+With Apache Isis it's common to inject domain services into domain entities; this allows behaviour to be pushed down into those entities.
 
-include::jdo-mappings/one-to-m-bidirectional-relationships.adoc[leveloffset=+1]
-include::jdo-mappings/mandatory-properties-in-subtypes.adoc[leveloffset=+1]
-include::jdo-mappings/mapping-to-a-view.adoc[leveloffset=+1]
+For JPA, this requires that the following boilerplate:
+
+[source,java]
+----
+import javax.persistence.EntityListeners;
+import org.apache.isis.persistence.jpa.applib.integration.JpaEntityInjectionPointResolver;
+
+@EntityListeners(JpaEntityInjectionPointResolver.class)
+public class SomeEntity ... { /* ... */ }
+----
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc b/persistence/jpa/adoc/modules/ROOT/pages/domain-services.adoc
similarity index 70%
rename from persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc
rename to persistence/jpa/adoc/modules/ROOT/pages/domain-services.adoc
index d64ee7f..efb43fb 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/domain-services.adoc
@@ -1,11 +1,11 @@
-[[jdo-mappings]]
-= JDO Mappings
+= Domain Services
 
 :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
+The JPA applib (application library) provides an API fordomain objects to use for more advanced use cases.
+
+It currently provides the following domain service:
+
+* xref:refguide:persistence:index/jpa/applib/services/JpaSupportService.adoc[JpaSupportService]
 
 
-include::jdo-mappings/one-to-m-bidirectional-relationships.adoc[leveloffset=+1]
-include::jdo-mappings/mandatory-properties-in-subtypes.adoc[leveloffset=+1]
-include::jdo-mappings/mapping-to-a-view.adoc[leveloffset=+1]
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc b/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
index 71d14ff..b254255 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
@@ -18,5 +18,3 @@ Take a look at:
 Although written for Hibernate, the JPA material should work fine.
 
 * link:https://www.baeldung.com/tag/jpa/[JPA Baeldung tags]
-** link:https://www.baeldung.com/jpa-entities[entities]
-
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc b/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
index 54f5924..51ceaec 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
@@ -7,7 +7,7 @@
 This section describes how to include the JPA module and setup its configuration properties.
 
 
-== Add dependency to pom.xml
+== Maven pom.xml
 
 === Dependency Management
 
@@ -111,35 +111,13 @@ spring.datasource.password=simpleapp
 It is also possible to programmatically define a `DataSource`; see the link:https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-data-access[Spring docs] for details.
 
 
-== Schemas
 
-In the same way that Java packages act as a namespace for domain objects, it's good practice to map domain entities to their own (database) schemas.
-(For more on database schemas, see for example link:https://crate.io/docs/sql-99/en/latest/chapters/17.html#create-schema-statement[here]).
+== Other Configuration Properties
 
-We recommend all the entities within a module use the same schema, and moreover that the xref:refguide:applib:index/annotation/DomainObject.adoc#objectType[object type] also follows the same pattern.
+The JPA object store also supports the following configuraiton properties:
 
-For example, xref:security:secman:about.adoc[SecMan]' JPA implementation resides in the `IsisModuleExtSecmanPersistenceJpa` module.
-Its `ApplicationUser` entity is defined as:
-
-[source,java]
-.ApplicationUser.java
-----
-@Entity
-@Table(
-        schema = "isisExtensionsSecman",
-        name = "ApplicationUser",
-        ...
-)
-public class ApplicationUser ... { /* ... */ }
-----
-
-which results in a `CREATE TABLE` statement of:
-
-[source,sql]
-----
-CREATE TABLE isisExtensionsSecman."ApplicationUser" (
-    ...
-)
-----
+* xref:refguide:config:sections/isis.persistence.schema.adoc#isis.persistence.schema.additional-orm-files[isis.persistence.schema.additional-orm-files]
++
+Lookup additional "mapping-files" in `META-INF/orm-_name_.xml` (equivalent to "mapping-file" entries in `persistence.xml`) and adds these to those that are already configured the _Spring Data_ way (if any).
 
 
diff --git a/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
index 0cf07e4..3a78cd6 100644
--- a/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,3 +1,6 @@
 * xref:pjpa:ROOT:setup-and-configuration.adoc[Setup and Configuration]
-* xref:pjpa:ROOT:applib.adoc[JPA Applib]
-* xref:pjpa:ROOT:mapping-guide.adoc[Mapping Guide]
+* xref:pjpa:ROOT:db-schemas.adoc[DB Schemas]
+* xref:pjpa:ROOT:mapping-guide.adoc[Mapping
+Guide]
+* xref:pjpa:ROOT:dependency-injection.adoc[Dependency Injection]
+* xref:pjpa:ROOT:domain-services.adoc[Domain Services]
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/architecture.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/architecture.adoc
index e62eca8..52ca4f5 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/architecture.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/architecture.adoc
@@ -23,7 +23,7 @@ This is then surfaced over the RO viewer.
 +
 If the underlying entities change, then care must be taken to ensure that structure of the view model nevertheless is unchanged.
 
-* a second option is to solve the problem at the persistence layer, but defining a (SQL) view in the database and then xref:pjdo:ROOT:jdo-mappings.adoc#mapping-to-a-view[mapping this] to a (read-only) entity.
+* a second option is to solve the problem at the persistence layer, but defining a (SQL) view in the database and then xref:pjdo:ROOT:mapping-guide.adoc#mapping-to-a-view[mapping this] to a (read-only) entity.
 Again this is surfaced by the RO viewer.
 +
 If the underlying tables change (as the result of a change in their corresponding domain entities) then once more the view must be refactored so that it still presents the same structure.

[isis] 08/20: ISIS-2484: fixes compile issue with tooling

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

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

commit 2b486cc45c9c1d6b5e0a5493439b0365686b1dda
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 29 10:35:24 2021 +0100

    ISIS-2484: fixes compile issue with tooling
    
    (cherry picked from commit 7cd6256644b46e77607f5d8a7d5a44e8b42a61cc)
---
 .../test/java/org/apache/isis/tooling/cli/test/CliConfigTest.java   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/CliConfigTest.java b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/CliConfigTest.java
index 652dfcf..fe52d11 100644
--- a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/CliConfigTest.java
+++ b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/test/CliConfigTest.java
@@ -57,11 +57,11 @@ class CliConfigTest {
         assertNotNull(config.getCommands().getOverview());
         assertNotNull(config.getCommands().getIndex());
         assertEquals("These tables summarize all Maven artifacts available with _Apache Isis_.", config.getCommands().getOverview().getDescription());
-        assertNotNull(config.getGlobal().getSections());
-        assertTrue(config.getGlobal().getSections().size()>5);
+        assertNotNull(config.getCommands().getOverview().getSections());
+        assertTrue(config.getCommands().getOverview().getSections().size()>5);
 
         assertTrue(config.getCommands().getIndex().isFixOrphanedAdocIncludeStatements());
-        assertEquals(3, config.getGlobal().getNamespacePartsSkipCount());
+        assertEquals(3, config.getCommands().getIndex().getNamespacePartsSkipCount());
     }
 
 }

[isis] 04/20: ISIS-2484: removes section on bumping dependencies

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

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

commit 3d1c690b607f6822826efed89dd473bcc1569932
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 28 13:10:22 2021 +0100

    ISIS-2484: removes section on bumping dependencies
    
    as we now rely on github's dependabot
    
    (cherry picked from commit f8668921b63f0aa05202dbf7a1046068cbc5cff9)
---
 .../ROOT/pages/post-release-successful.adoc        | 63 ----------------------
 1 file changed, 63 deletions(-)

diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index 682a421..9a50b37 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -552,66 +552,3 @@ Enjoy!
 link:https://blogs.apache.org/roller-ui/login.rol[Log onto] the http://blogs.apache.org/isis/[Apache blog] and create a new post.
 Copy-n-paste the above mailing list announcement should suffice.
 
-== Update dependencies
-
-With the release complete, now is a good time to bump versions of dependencies (so that there is a full release cycle to identify any possible issues).
-
-You will probably want to create a new JIRA ticket for these updates (or if minor then use the "catch-all" JIRA ticket raised earlier for the next release).
-
-NOTE: We now use github's dependabot feature to keep on top of dependency updates, so this section is no longer quite so critical.
-
-=== Merge in any changes from `org.apache:apache`
-
-Check (via link:http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache%22%20a%3A%22apache%22[search.maven.org]) whether there is a newer version of the Apache parent `org.apache:apache`.
-
-If there are, merge in these changes to the `isis-parent` POM.
-
-=== Update plugin versions
-
-The `maven-versions-plugin` should be used to determine if there are newer versions of any of the plugins used to build Apache Isis.
-Since this goes off to the internet, it may take a minute or two to run:
-
-[source,bash]
-----
-mvn versions:display-plugin-updates > /tmp/foo
-grep "\->" /tmp/foo | /bin/sort -u
-----
-
-Review the generated output and make updates as you see fit.
-(However, if updating, please check by searching for known issues with newer versions).
-
-=== Update dependency versions
-
-The `maven-versions-plugin` should be used to determine if there are newer versions of any of Isis' dependencies.
-Since this goes off to the internet, it may take a minute or two to run:
-
-[source,bash]
-----
-mvn versions:display-dependency-updates > /tmp/foo
-grep "\->" /tmp/foo | /bin/sort -u
-----
-
-Update any of the dependencies that are out-of-date.
-That said, do note that some dependencies may show up with a new dependency, when in fact the dependency is for an old, badly named version.
-Also, there may be new dependencies that you do not wish to move to, eg release candidates or milestones.
-
-For example, here is a report showing both of these cases:
-
-[source,bash]
-----
-[INFO]   asm:asm ..................................... 3.3.1 -> 20041228.180559
-[INFO]   commons-httpclient:commons-httpclient .......... 3.1 -> 3.1-jbossorg-1
-[INFO]   commons-logging:commons-logging ......... 1.1.1 -> 99.0-does-not-exist
-[INFO]   dom4j:dom4j ................................. 1.6.1 -> 20040902.021138
-[INFO]   org.datanucleus:datanucleus-api-jdo ................ 3.1.2 -> 3.2.0-m1
-[INFO]   org.datanucleus:datanucleus-core ................... 3.1.2 -> 3.2.0-m1
-[INFO]   org.datanucleus:datanucleus-jodatime ............... 3.1.1 -> 3.2.0-m1
-[INFO]   org.datanucleus:datanucleus-rdbms .................. 3.1.2 -> 3.2.0-m1
-[INFO]   org.easymock:easymock ................................... 2.5.2 -> 3.1
-[INFO]   org.jboss.resteasy:resteasy-jaxrs ............. 2.3.1.GA -> 3.0-beta-1
-----
-
-For these artifacts you will need to search http://search.maven.org[Maven central repo] directly yourself to confirm there are no newer dependencies not shown in this list.
-
-
-

[isis] 01/20: ISIS-2444: minor fix for release process

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

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

commit 83d9ba785380cb90bf6c520cc596837f384262a4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 28 12:04:22 2021 +0100

    ISIS-2444: minor fix for release process
    
    (cherry picked from commit 218c16f3e7e3eac4641d8c8f8ce6635ed869d36b)
---
 .../comguide/modules/ROOT/pages/post-release-successful.adoc   | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index b606eb8..682a421 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -303,6 +303,7 @@ If there are patches to the documentation, we move the branches.
 We therefore temporarily modify all of the `antora.yml` files (and update `index.html`) file and create a branch for this change; then we update `site.yml` with a reference to that new branch.
 All of this is changed afterwards.
 
+[#create-doc-branch]
 === Create doc branch
 
 First, we update all versions in `antora.yml`:
@@ -345,14 +346,7 @@ git revert HEAD
 
 Lastly, we update `index.html` and then `site.yml`
 
-* Update the home page of the website, `antora/supplemental-ui/index.html`
-+
-
-** update any mention of `master` -> `{page-isisrel}`
-+
-This should be the two sets of starter app instructions for helloworld and simpleapp.
-
-** update any mention of `latest` -> `{page-isisrel}`
+* With the home page of the website, `antora/supplemental-ui/index.html`, update any mention of `latest` -> `{page-isisrel}`
 +
 This should be in hyperlinks, `<a href="docs/...">`
 +

[isis] 16/20: ISIS-2484: updating docs on JDO and JPA

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

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

commit adcca72580e45e8854db5235b67b32f482089155
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 31 11:26:00 2021 +0100

    ISIS-2484: updating docs on JDO and JPA
    
    (cherry picked from commit e92c2ff3afb1eff320793dabeb8f43d84fbe85b1)
---
 .../attachments}/Pawson-Naked-Objects-thesis.pdf   | Bin
 antora/playbooks/site-security.yml                 |   3 +
 antora/playbooks/site.yml                          |   3 +
 persistence/jdo/adoc/modules/ROOT/pages/about.adoc |   5 +-
 .../modules/ROOT/pages/configuring/bulk-load.adoc  |  35 ----------
 .../disabling-persistence-by-reachability.adoc     |   1 +
 .../ROOT/pages/configuring/persistence-xml.adoc    |  36 ----------
 .../modules/ROOT/pages/configuring/properties.adoc |  15 -----
 .../pages/configuring/using-jndi-data-source.adoc  |  75 ---------------------
 .../adoc/modules/ROOT/pages/other-resources.adoc}  |   7 +-
 .../jdo/adoc/modules/ROOT/partials/module-nav.adoc |   1 +
 persistence/jpa/adoc/modules/ROOT/pages/about.adoc |   8 ++-
 .../module-nav.adoc => pages/applib.adoc}          |   0
 .../jpa/adoc/modules/ROOT/pages/mapping-guide.adoc |  19 ++++--
 .../{about.adoc => setup-and-configuration.adoc}   |   8 ++-
 .../jpa/adoc/modules/ROOT/partials/module-nav.adoc |   1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |   7 +-
 security/spring/src/main/adoc/antora.yml           |  19 ++++++
 .../spring/src/main/adoc/modules/spring/nav.adoc   |   6 +-
 .../src/main/adoc/modules/spring}/pages/about.adoc |   8 ++-
 .../adoc/modules/spring/partials/module-nav.adoc   |   2 +
 .../adoc/modules/ROOT/pages/about.adoc             |   2 +-
 .../adoc/modules/ROOT/pages/other-resources.adoc   |   7 +-
 .../adoc/modules/ROOT/partials/module-nav.adoc     |   2 +
 viewers/wicket/adoc/modules/ROOT/pages/about.adoc  |   2 +-
 .../adoc/modules/ROOT/pages/other-resources.adoc   |   7 +-
 .../adoc/modules/ROOT/partials/module-nav.adoc     |   2 +
 27 files changed, 83 insertions(+), 198 deletions(-)

diff --git a/antora/components/userguide/modules/fun/attachments/core-concepts/Pawson-Naked-Objects-thesis.pdf b/antora/components/docs/modules/ROOT/attachments/Pawson-Naked-Objects-thesis.pdf
similarity index 100%
rename from antora/components/userguide/modules/fun/attachments/core-concepts/Pawson-Naked-Objects-thesis.pdf
rename to antora/components/docs/modules/ROOT/attachments/Pawson-Naked-Objects-thesis.pdf
diff --git a/antora/playbooks/site-security.yml b/antora/playbooks/site-security.yml
index 6ce89a6..1c7316b 100644
--- a/antora/playbooks/site-security.yml
+++ b/antora/playbooks/site-security.yml
@@ -70,6 +70,9 @@ content:
     - url: .
       start_path: security/keycloak/src/main/adoc # security
       branches: HEAD
+    - url: .
+      start_path: security/spring/src/main/adoc # security
+      branches: HEAD
 
 
 # starters
diff --git a/antora/playbooks/site.yml b/antora/playbooks/site.yml
index 1e02ff3..a269c28 100644
--- a/antora/playbooks/site.yml
+++ b/antora/playbooks/site.yml
@@ -236,6 +236,9 @@ content:
     - url: .
       start_path: security/keycloak/src/main/adoc # security
       branches: HEAD
+    - url: .
+      start_path: security/spring/src/main/adoc # security
+      branches: HEAD
 
 # starters
     - url: .
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/about.adoc b/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
index a322fec..4cb5be3 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
@@ -4,9 +4,10 @@
 
 
 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] ORM.
+The object store is implemented using link:http://datanucleus.org[DataNucleus] ORM using the link:https://www.jcp.org/en/jsr/detail?id=243[JDO] API.
+DataNucleus is the reference implementation for JDO.
 
-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 component 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.
 
 
 
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/configuring/bulk-load.adoc b/persistence/jdo/adoc/modules/ROOT/pages/configuring/bulk-load.adoc
deleted file mode 100644
index 8032583..0000000
--- a/persistence/jdo/adoc/modules/ROOT/pages/configuring/bulk-load.adoc
+++ /dev/null
@@ -1,35 +0,0 @@
-[[bulk-load]]
-= Bulk Load of Standalone Collections
-
-: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 [...]
-
-
-The implementation of user interactions (meaning either an action invocations or a property edits) in the xref:vw:ROOT:about.adoc[Wicket viewer] is splits into two.
-The first phase performs the actual interaction, with the results (dirtied objects) flushed to the database.
-The second phase then renders the results of the interaction.
-
-When the user interaction in question is an action invocation that returns a list of objects, the resultant list is not rendered in the first phase.
-Instead, only the IDs of the objects in the list are captured.
-When the list is then rendered, the framework re-loads each object.
-
-The default implementation does this row-by-row, resulting in multiple queries against the database.
-Setting the property:
-
-[source,ini]
-----
-isis.persistor.datanucleus.standaloneCollection.bulkLoad=true
-----
-
-changes to a more efficient implementation that bulk loads all the objects using a single query.
-
-
-[NOTE]
-====
-In the future the bulkLoad implementation may be made the default.
-====
-
-[NOTE]
-====
-The implementation of parented collections does not suffer from this issue; the rendering phase runs the query to obtain the matches.
-====
-
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/configuring/disabling-persistence-by-reachability.adoc b/persistence/jdo/adoc/modules/ROOT/pages/configuring/disabling-persistence-by-reachability.adoc
index aaee4d1..276df40 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/configuring/disabling-persistence-by-reachability.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/configuring/disabling-persistence-by-reachability.adoc
@@ -31,6 +31,7 @@ This change has been made to both the xref:docs:starters:helloworld.adoc[HelloWo
 
 If you do disable this feature, then you will (of course) need to ensure that you explicitly persist all entities using the `RepositoryService#persist(.)` or `RepositoryService#persistAndFlush(.)` methods.
 
+
 == The issue in more detail
 
 Consider these entities (http://yuml.me/edit/b8681268[yuml.me/b8681268]):
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/configuring/persistence-xml.adoc b/persistence/jdo/adoc/modules/ROOT/pages/configuring/persistence-xml.adoc
deleted file mode 100644
index 1b8efac..0000000
--- a/persistence/jdo/adoc/modules/ROOT/pages/configuring/persistence-xml.adoc
+++ /dev/null
@@ -1,36 +0,0 @@
-[[persistence-xml]]
-= `persistence.xml`
-
-: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 [...]
-
-
-
-DataNucleus will for itself also and read the `META-INF/persistence.xml`.
-In theory it can hold mappings and even connection strings.
-However, with Apache Isis we tend to use annotations instead and externalize connection strings. so its definition is extremely simply, specifying just the name of the "persistence unit".
-
-Here's the one provided by the xref:docs:starters:simpleapp.adoc[SimpleApp] starter app:
-
-[source,xml]
-----
-<?xml version="1.0" encoding="UTF-8" ?>
-<persistence xmlns="http://java.sun.com/xml/ns/persistence"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
-
-    <persistence-unit name="simple">
-    </persistence-unit>
-</persistence>
-----
-
-Normally all one needs to do is to change the `persistence-unit` name.
-
-[TIP]
-====
-If you use Eclipse IDE on Windows then
-xref:setupguide:eclipse:about.adoc#workaround-for-path-limits-the-dn-plugin-to-use-the-persistence-xml[note the importance] of the `persistence.xml` file to make DataNucleus enhancer work correctly.
-====
-
-
-
-See link:http://www.datanucleus.org/products/datanucleus/jdo/persistence.html#persistenceunit[DataNucleus' documentation] on `persistence.xml` to learn more.
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/configuring/properties.adoc b/persistence/jdo/adoc/modules/ROOT/pages/configuring/properties.adoc
deleted file mode 100644
index 73c7a87..0000000
--- a/persistence/jdo/adoc/modules/ROOT/pages/configuring/properties.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-[[properties]]
-= Configuration Properties
-
-: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 [...]
-
-The connection to the database is specified using Spring's link:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-connect-to-production-database-configuration[datasource properties]: `spring.datasource.url` and its kin.
-
-
-DataNucleus configuration properties can be specified and are passed through directly.
-Some of the most common can be found through "intellisense" on `application.properties` or `application.yml`, if your IDE supports it.
-These are listed in the xref:refguide:config:sections/datanucleus.adoc[datanucleus section] of the xref:refguide:config:about.adoc[Configuration Guide].
-
-There are also some configuration properties that Apache Isis defines that applies to both JDO and JPA.
-These can be found in the xref:refguide:config:sections/isis.persistence.schema.adoc[isis.persistence.schema] section of the Configuratoin Guide.
-
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/configuring/using-jndi-data-source.adoc b/persistence/jdo/adoc/modules/ROOT/pages/configuring/using-jndi-data-source.adoc
deleted file mode 100644
index f39a984..0000000
--- a/persistence/jdo/adoc/modules/ROOT/pages/configuring/using-jndi-data-source.adoc
+++ /dev/null
@@ -1,75 +0,0 @@
-[[using-jndi-data-source]]
-= Using JNDI DataSource
-
-: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 - v2 - not yet reviewed/updated.
-
-Apache Isis' JDO objectstore can be configured either to connect to the database using its own connection pool, or by using a container-managed datasource.
-
-== Application managed
-
-Using a connection pool managed directly by the application (that is, by Apache Isis' JDO objectstore and ultimately by DataNucleus) requires a single set of configuration properties to be specified.
-
-Specify the connection driver, url, username and password.
-For example:
-
-[source,ini]
-----
-javax.jdo.option.ConnectionDriverName=net.sf.log4jdbc.DriverSpy
-javax.jdo.option.ConnectionURL=jdbc:log4jdbc:hsqldb:mem:test
-javax.jdo.option.ConnectionUserName=sa
-javax.jdo.option.ConnectionPassword=
-----
-
-
-It is also possible to specify the `datanucleus.ConnectionPasswordDecrypter` property; 
-see the link:http://www.datanucleus.org/products/accessplatform_4_1/persistence_properties.html#ConnectionPasswordDecrypter[DataNucleus documentation] for further details.
-
-
-
-
-== Container managed (JNDI)
-
-Using a datasource managed by the servlet container requires three separate bits of configuration.
-
-Firstly, specify the name of the datasource in the `WEB-INF\persistor_datanucleus.properties` file. For example:
-
-If connection pool settings are also present in this file, they will simply be ignored. Any other configuration properties are passed through directly to DataNucleus.
-
-Secondly, in the `WEB-INF/web.xml`, declare the resource reference:
-
-[source,xml]
-----
-<resource-ref>
-    <description>db</description>
-    <res-ref-name>jdbc/simpleapp</res-ref-name>
-    <res-type>javax.sql.DataSource</res-type>
-    <res-auth>Container</res-auth>
-</resource-ref>
-----
-
-Finally, declare the datasource as required by the servlet container. For example, if using Tomcat 7, the datasource can be specified by adding the following to `$TOMCAT_HOME/conf/context.xml`:
-
-[source,xml]
-----
-<Resource name="jdbc/simpleapp"
-  auth="Container"
-  type="javax.sql.DataSource"
-  maxActive="100"
-  maxIdle="30"
-  maxWait="10000"
-  username="sa"
-  password="p4ssword"
-  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
-  url="jdbc:sqlserver://127.0.0.1:1433;instance=.;databaseName=simpleapp"/>
-----
-
-You will also need to make sure that the JDBC driver is on the servlet container's classpath. For Tomcat, this means copying the driver to `$TOMCAT_HOME/lib`.
-
-[NOTE]
-====
-According to Tomcat's documentation, it is supposedly possible to copy the `conf/context.xml` to the name of the webapp, eg `conf/mywebapp.xml`, and scope the connection to that webapp only.  I was unable to get this working, however.
-====
-
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc b/persistence/jdo/adoc/modules/ROOT/pages/other-resources.adoc
similarity index 87%
copy from persistence/jpa/adoc/modules/ROOT/pages/about.adoc
copy to persistence/jdo/adoc/modules/ROOT/pages/other-resources.adoc
index b977118..8aab42b 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/other-resources.adoc
@@ -1,8 +1,7 @@
-= JPA
+= Other Resources
 
 :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-aliases: guides:ugvw:ugvw.adoc
 
-:page-toc: ~
-
-WARNING: TODO: v2 - to document.
+WARNING: TODO: document 3rd party tutorials and resources.
 
diff --git a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
index 5d752ed..cda6568 100644
--- a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
@@ -6,3 +6,4 @@
 * xref:pjdo:ROOT:hints-and-tips.adoc[Hints-n-Tips]
 * Domain Services
 ** xref:pjdo:ROOT:services/IsisJdoSupport.adoc[IsisJdoSupport]
+* xref:pjdo:ROOT:other-resources.adoc[Other Resources]
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc b/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
index b977118..4048e64 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
@@ -2,7 +2,11 @@
 
 :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: v2 - to document.
+
+The JPA/EclipseLink object store enables domain objects to be persisted to relational databases.
+The object store is implemented using the link:https://www.eclipse.org/eclipselink/[EclipseLink] ORM, using the link:https://www.jcp.org/en/jsr/detail?id=317[JPA] API.
+EclipseLink is the reference implementation for JPA.
+
+This component guide discuss how to setup the framework to use the JPA/EclipseLink object store, how to configure the ORM, and also provides some examples on common use cases.
 
diff --git a/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jpa/adoc/modules/ROOT/pages/applib.adoc
similarity index 100%
copy from persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
copy to persistence/jpa/adoc/modules/ROOT/pages/applib.adoc
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/about.adoc b/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
similarity index 51%
copy from viewers/wicket/adoc/modules/ROOT/pages/about.adoc
copy to persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
index 8d05228..22c7ab3 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/about.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/mapping-guide.adoc
@@ -1,15 +1,22 @@
-= Wicket Viewer
+= Other Resources
 
 :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-aliases: guides:ugvw:ugvw.adoc
 
-WARNING: TODO: this content has not yet been reviewed/updated for v2.0
 
-The Wicket Viewer automatically exposes an Apache Isis domain object model for use by end-users.
-The viewer is implemented using link:http://wicket.apache.org[Apache Wicket].
+There are plenty of resources for learning JPA annotations.
+Take a look at:
 
-This user guide discuss end-user features, configuration and customization of the Wicket viewer.
+* link:https://spring.io/guides/gs/accessing-data-jpa/[Spring Boot: Accessing Data with JPA]
 
-It also discusses how to extend the viewer, and lists a number of extensions available.
+* link:https://github.com/spring-projects/spring-data-book/tree/master/jpa/src/main/java/com/oreilly/springdata/jpa[Spring Daata Book - sample code showing several entities]
 
+* link:https://www.vogella.com/tutorials/JavaPersistenceAPI/article.html[Vogella JPA tutorial]
+
+* link:https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html[JBoss reference guide]
++
+Although written for Hibernate, the JPA material should work fine.
+
+* link:https://www.baeldung.com/tag/jpa/[JPA Baeldung tags]
+** link:https://www.baeldung.com/jpa-entities[entities]
 
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc b/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
similarity index 60%
copy from persistence/jpa/adoc/modules/ROOT/pages/about.adoc
copy to persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
index b977118..4048e64 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/pages/setup-and-configuration.adoc
@@ -2,7 +2,11 @@
 
 :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: v2 - to document.
+
+The JPA/EclipseLink object store enables domain objects to be persisted to relational databases.
+The object store is implemented using the link:https://www.eclipse.org/eclipselink/[EclipseLink] ORM, using the link:https://www.jcp.org/en/jsr/detail?id=317[JPA] API.
+EclipseLink is the reference implementation for JPA.
+
+This component guide discuss how to setup the framework to use the JPA/EclipseLink object store, how to configure the ORM, and also provides some examples on common use cases.
 
diff --git a/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
index e69de29..4a1e269 100644
--- a/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:pjpa:ROOT:other-resources.adoc[Other Resources]
diff --git a/security/adoc/modules/ROOT/partials/component-nav.adoc b/security/adoc/modules/ROOT/partials/component-nav.adoc
index 80307c6..ffbabc4 100644
--- a/security/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/security/adoc/modules/ROOT/partials/component-nav.adoc
@@ -4,14 +4,15 @@ include::security:core:partial$module-nav.adoc[]
 include::security:bypass:partial$module-nav.adoc[]
 include::security:shiro:partial$module-nav.adoc[]
 include::security:keycloak:partial$module-nav.adoc[]
+include::security:spring:partial$module-nav.adoc[]
 
 include::security:ROOT:partial$module-nav-end.adoc[]
 
 * Extensions
 
-// commented out the libraries that have not yet been brought over from incode-platform
-
-//include::security:audit-trail:partial$module-nav.adoc[]
 include::security:shiro-realm-ldap:partial$module-nav.adoc[]
 include::security:secman:partial$module-nav.adoc[]
+
+// commented out the libraries that have not yet been brought over from incode-platform
+//include::security:audit-trail:partial$module-nav.adoc[]
 //include::security:session-log:partial$module-nav.adoc[]
diff --git a/security/spring/src/main/adoc/antora.yml b/security/spring/src/main/adoc/antora.yml
new file mode 100644
index 0000000..2be1151
--- /dev/null
+++ b/security/spring/src/main/adoc/antora.yml
@@ -0,0 +1,19 @@
+#  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 agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+name: security
+version: latest
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc b/security/spring/src/main/adoc/modules/spring/nav.adoc
similarity index 93%
copy from persistence/jpa/adoc/modules/ROOT/pages/about.adoc
copy to security/spring/src/main/adoc/modules/spring/nav.adoc
index b977118..ae4837e 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
+++ b/security/spring/src/main/adoc/modules/spring/nav.adoc
@@ -1,8 +1,4 @@
-= JPA
 
 :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: v2 - to document.
-
+include::security:ROOT:partial$component-nav.adoc[]
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc b/security/spring/src/main/adoc/modules/spring/pages/about.adoc
similarity index 77%
copy from persistence/jpa/adoc/modules/ROOT/pages/about.adoc
copy to security/spring/src/main/adoc/modules/spring/pages/about.adoc
index b977118..b168dc9 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
+++ b/security/spring/src/main/adoc/modules/spring/pages/about.adoc
@@ -1,8 +1,10 @@
-= JPA
+= Sring Security
 
 :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-partial:
 
-:page-toc: ~
+WARNING: TODO: this content has not yet been reviewed/updated for v2.0
+
+This guide describes the configuration of the Spring implementation of Apache Isis' `Authenticator and `Authorizor` APIs.
 
-WARNING: TODO: v2 - to document.
 
diff --git a/security/spring/src/main/adoc/modules/spring/partials/module-nav.adoc b/security/spring/src/main/adoc/modules/spring/partials/module-nav.adoc
new file mode 100644
index 0000000..4a42816
--- /dev/null
+++ b/security/spring/src/main/adoc/modules/spring/partials/module-nav.adoc
@@ -0,0 +1,2 @@
+
+* xref:security:spring:about.adoc[Spring Implementation]
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/about.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/about.adoc
index 599e1e8..fbce180 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/about.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/about.adoc
@@ -12,7 +12,7 @@ Apache Isis' Restful Objects viewer is an implementation of the link:http://rest
 The Restful Objects viewer also provides a number of extensions specific to Apache Isis.
 Most significant of these is enhanced content negotiation support, making it easier to use the returned representations within bespoke clients using standard third-party configurations.
 
-This user guide discuss features, configuration and also how to extend the Restful Objects viewer.
+This component guide discuss features, configuration and also how to extend the Restful Objects viewer.
 
 
 
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/other-resources.adoc
similarity index 87%
copy from persistence/jpa/adoc/modules/ROOT/pages/about.adoc
copy to viewers/restfulobjects/adoc/modules/ROOT/pages/other-resources.adoc
index b977118..8aab42b 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/other-resources.adoc
@@ -1,8 +1,7 @@
-= JPA
+= Other Resources
 
 :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-aliases: guides:ugvw:ugvw.adoc
 
-:page-toc: ~
-
-WARNING: TODO: v2 - to document.
+WARNING: TODO: document 3rd party tutorials and resources.
 
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/partials/module-nav.adoc b/viewers/restfulobjects/adoc/modules/ROOT/partials/module-nav.adoc
index d2524de..4060253 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/partials/module-nav.adoc
@@ -10,4 +10,6 @@
 * xref:vro:ROOT:configuration-properties.adoc[Configuration Properties]
 * xref:vro:ROOT:security.adoc[Security]
 * xref:vro:ROOT:hints-and-tips.adoc[Hints-n-Tips]
+* xref:vro:ROOT:other-resources.adoc[Other Resources]
+
 
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/about.adoc b/viewers/wicket/adoc/modules/ROOT/pages/about.adoc
index 8d05228..6153684 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/about.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/about.adoc
@@ -8,7 +8,7 @@ WARNING: TODO: this content has not yet been reviewed/updated for v2.0
 The Wicket Viewer automatically exposes an Apache Isis domain object model for use by end-users.
 The viewer is implemented using link:http://wicket.apache.org[Apache Wicket].
 
-This user guide discuss end-user features, configuration and customization of the Wicket viewer.
+This component guide discuss end-user features, configuration and customization of the Wicket viewer.
 
 It also discusses how to extend the viewer, and lists a number of extensions available.
 
diff --git a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc b/viewers/wicket/adoc/modules/ROOT/pages/other-resources.adoc
similarity index 87%
copy from persistence/jpa/adoc/modules/ROOT/pages/about.adoc
copy to viewers/wicket/adoc/modules/ROOT/pages/other-resources.adoc
index b977118..8aab42b 100644
--- a/persistence/jpa/adoc/modules/ROOT/pages/about.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/other-resources.adoc
@@ -1,8 +1,7 @@
-= JPA
+= Other Resources
 
 :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-aliases: guides:ugvw:ugvw.adoc
 
-:page-toc: ~
-
-WARNING: TODO: v2 - to document.
+WARNING: TODO: document 3rd party tutorials and resources.
 
diff --git a/viewers/wicket/adoc/modules/ROOT/partials/module-nav.adoc b/viewers/wicket/adoc/modules/ROOT/partials/module-nav.adoc
index 5add83e..811d26e 100644
--- a/viewers/wicket/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/partials/module-nav.adoc
@@ -7,6 +7,8 @@
 * xref:vw:ROOT:customisation.adoc[Customisation]
 * xref:vw:ROOT:extending.adoc[Extending]
 * xref:vw:ROOT:hints-and-tips.adoc[Hints-n-Tips]
+* xref:vw:ROOT:other-resources.adoc[Other Resources]
+
 
 
 

[isis] 18/20: ISIS-2484: adds in missing docs

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

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

commit 58286cb60c02a96bf871f9a96ccb417610d20327
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 31 12:31:24 2021 +0100

    ISIS-2484: adds in missing docs
    
    (cherry picked from commit b5d6ab4cbcb51506812aa9c92f06f35c1f7fe769)
---
 .../components/docs/modules/ROOT/pages/about.adoc  |   6 +-
 .../refguide/modules/ROOT/pages/about.adoc         |   2 +-
 .../setupguide/modules/eclipse/pages/about.adoc    |   1 +
 .../jdo/adoc/modules/ROOT/pages/db-schemas.adoc    |   1 -
 .../ROOT/pages/setup-and-configuration.adoc        | 210 +++++++++++++++++++--
 .../jdo/adoc/modules/ROOT/partials/module-nav.adoc |   1 +
 .../jpa/adoc/modules/ROOT/partials/module-nav.adoc |   4 +-
 preview.sh                                         |   2 +-
 8 files changed, 202 insertions(+), 25 deletions(-)

diff --git a/antora/components/docs/modules/ROOT/pages/about.adoc b/antora/components/docs/modules/ROOT/pages/about.adoc
index e8772e3..5247028 100644
--- a/antora/components/docs/modules/ROOT/pages/about.adoc
+++ b/antora/components/docs/modules/ROOT/pages/about.adoc
@@ -165,9 +165,9 @@ _Reading_
 
 _Academia_
 
-* link:../ug/fun/_attachments/core-concepts/Pawson-Naked-Objects-thesis.pdf[Naked Objects PhD] (Pawson)
-* https://esc.fnwi.uva.nl/thesis/centraal/files/f270412620.pdf[CLIsis: An interface for Visually Impaired Users] (Bachelors dissertation, Ginn)
-* https://esc.fnwi.uva.nl/thesis/centraal/files/f1051832702.pdf[Using blockchain to validate audit trail data in private business applications] (Masters dissertation, Kalis)
+* link:{attachmentsdir}/Pawson-Naked-Objects-thesis.pdf[Naked Objects] (PhD thesis, Pawson)
+* link:https://esc.fnwi.uva.nl/thesis/centraal/files/f270412620.pdf[CLIsis: An interface for Visually Impaired Users] (Bachelors dissertation, Ginn)
+* link:https://esc.fnwi.uva.nl/thesis/centraal/files/f1051832702.pdf[Using blockchain to validate audit trail data in private business applications] (Masters dissertation, Kalis)
 
 
 
diff --git a/antora/components/refguide/modules/ROOT/pages/about.adoc b/antora/components/refguide/modules/ROOT/pages/about.adoc
index 9028728..faa4a03 100644
--- a/antora/components/refguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/refguide/modules/ROOT/pages/about.adoc
@@ -6,10 +6,10 @@
 
 The reference guides cover:
 
+* xref:refguide:applib-svc:about.adoc[Domain Services]
 * xref:refguide:applib-ant:about.adoc[Annotations]
 * xref:refguide:applib-methods:about.adoc[Methods]
 * xref:refguide:applib-classes:about.adoc[Classes]
-* xref:refguide:applib-svc:about.adoc[Domain Services]
 * xref:refguide:config:about.adoc[Configuration]
 * xref:refguide:schema:about.adoc[Schemas]
 
diff --git a/antora/components/setupguide/modules/eclipse/pages/about.adoc b/antora/components/setupguide/modules/eclipse/pages/about.adoc
index 91e00ee..022fec3 100644
--- a/antora/components/setupguide/modules/eclipse/pages/about.adoc
+++ b/antora/components/setupguide/modules/eclipse/pages/about.adoc
@@ -148,6 +148,7 @@ When the enhancer runs, it will print out to the console:
 
 image::eclipse-120-console.png[width="500px"]
 
+[#workaround-for-path-limits-the-dn-plugin-to-use-the-persistence-xml]
 === Workaround for path limits (the DN plugin to use the persistence.xml)
 
 If running on Windows then the DataNucleus plugin is very likely to hit the Windows path limit.
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc b/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
index 77661f9..05b9dc4 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/db-schemas.adoc
@@ -4,7 +4,6 @@
 :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
 
 In the same way that Java packages act as a namespace for domain objects, it's good practice to map domain entities to their own (database) schemas.
 
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc b/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
index 4aed448..40f1b1f 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/setup-and-configuration.adoc
@@ -3,27 +3,201 @@
 :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 [...]
 
 
-== Classpath and Modules
 
-The
+== Add dependency to pom.xml
 
+=== Dependency Management
 
-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.
+If your application inherits from the Apache Isis starter app (`org.apache.isis.app:isis-app-starter-parent` then that will define the version automatically:
+
+[source,xml,subs="attributes+"]
+.pom.xml
+----
+<parent>
+    <groupId>org.apache.isis.app</groupId>
+    <artifactId>isis-app-starter-parent</artifactId>
+    <version>{page-isisrel}</version>
+    <relativePath/>
+</parent>
+----
+
+Alternatively, import the core BOM.
+This is usually done in the top-level parent pom of your application:
+
+[source,xml,subs="attributes+"]
+.pom.xml
+----
+<dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core</artifactId>
+            <version>{page-isisrel}</version>
+            <version>2.0.0-SNAPSHOT</version>
+            <scope>import</scope>
+            <type>pom</type>
+        </dependency>
+    </dependencies>
+</dependencyManagement>
+----
+
+
+=== Dependency
+
+For every Maven module that includes JPA entities, add the following dependency:
+
+[source,xml]
+.pom.xml
+----
+<dependencies>
+    <dependency>
+        <groupId>org.apache.isis.mavendeps</groupId>
+        <artifactId>isis-mavendeps-jpa</artifactId>
+        <type>pom</type>
+    </dependency>
+</dependencies>
+----
+
+
+== Update AppManifest
+
+In your application's `AppManifest` (top-level Spring `@Configuration` used to bootstrap the app), import the
+
+[source,java]
+.AppManifest.java
+----
+@Configuration
+@Import({
+        ...
+        IsisModuleJpaEclipselink.class,
+        ...
+})
+public class AppManifest {
+}
+----
+
+== DataSource
+
+The JPA object store uses Spring to provide a `javax.sql.DataSource`.
+Normally this is done by setting the `spring.datasource` configuration properties, as described in the
+link:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-connect-to-production-database-configuration[Spring Boot] documentation.
+
+For example, the xref:docs:starters:simpleapp.adoc[SimpleApp] starter app defines these:
+
+* for H2 (in-memory):
++
+[source,properties]
+.app.properties
+----
+spring.datasource.platform=h2
+spring.datasource.url=jdbc:h2:mem:simple
+spring.datasource.driver-class-name=org.h2.Driver
+----
+
+* for SQL Server:
++
+[source,properties]
+.app.properties
+----
+spring.datasource.platform=sqlserver
+spring.datasource.url=jdbc:sqlserver://localhost;databaseName=simpleapp
+spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
+spring.datasource.username=simpleapp
+spring.datasource.password=simpleapp
+----
+
+It is also possible to programmatically define a `DataSource`; see the link:https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-data-access[Spring docs] for details.
+
+
+== Create Schema
+
+It's good practice to use link:https://crate.io/docs/sql-99/en/latest/chapters/17.html#create-schema-statement[SQL schemas] as a way to organise database tables into groups.
+We recommend all the entities within a module use the same schema, and moreover that the xref:refguide:applib:index/annotation/DomainObject.adoc#objectType[object type] also follows the same pattern.
+
+For example:
+
+[source,java]
+----
+@javax.persistence.Entity
+@javax.persistence.Table(
+    schema="SIMPLE",                                // <.>
+    ...
+)
+@DomainObject(objectType = "simple.SimpleObject")   // <.>
+...
+public class SimpleObject ... {
+
+}
+----
+<.> specifies the database schema.
+The table name will be based on the entity
+<.> corresponding two-part object type.
+
+When prototyping we rely on the ORM to automatically create the entire database tables, which includes the owning schemas.
+As EclipseLink does not do this automatically, the framework will do this if requested.
+The xref:refguide:config:sections/isis.persistence.schema.adoc#isis.persistence.schema.auto-create-schemas[isis.persistence.schema.auto-create-schemas] controls if this is done or not.
+
+Different database vendors have different syntaxes to do this, and so this can be configured using the xref:refguide:config:sections/isis.persistence.schema.adoc#isis.persistence.schema.create-schema-sql-template[isis.persistence.schema.create-schema-sql-template].
+The default value is to use SQL-99 syntax ("CREATE SCHEMA IF NOT EXISTS %S"), passed through to `String.format()`.
+
+
+
+[[persistence-xml]]
+== `persistence.xml`
+
+DataNucleus will for itself also read the `META-INF/persistence.xml`.
+In theory this can hold mappings and even connection strings.
+However, with Apache Isis we tend to use annotations instead and externalize connection strings. so its definition is extremely simply, specifying just the name of the "persistence unit".
+
+Here's the one provided by the xref:docs:starters:simpleapp.adoc[SimpleApp] starter app:
+
+[source,xml]
+----
+<?xml version="1.0" encoding="UTF-8" ?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+    <persistence-unit name="simple">
+    </persistence-unit>
+</persistence>
+----
+
+Normally all one needs to do is to change the `persistence-unit` name.
+
+[TIP]
+====
+If you use Eclipse IDE on Windows then
+xref:setupguide:eclipse:about.adoc#workaround-for-path-limits-the-dn-plugin-to-use-the-persistence-xml[note the importance] of the `persistence.xml` file to make DataNucleus enhancer work correctly.
+====
+
+
+See link:http://www.datanucleus.org/products/datanucleus/jdo/persistence.html#persistenceunit[DataNucleus' documentation] on `persistence.xml` to learn more.
+
+
+== Other Configuration Properties
+
+
+Additional configuration properties for DataNucleus itself can be specified directly under the `datanucleus.` configuration key.
+
+We recommend that some of these should be configured:
+
+* disable xref:configuring/disabling-persistence-by-reachability.adoc[persistence by reachability]
+
+
+
+See the xref:refguide:config:sections/datanucleus.adoc[datanucleus] section of the xref:refguide:config:about.adoc[Configuration Guide] for further details.
+
+
+Furthermore, DataNucleus will search for various other XML mapping files, eg `mappings.jdo`.
+A full list can be found http://www.datanucleus.org/products/datanucleus/jdo/metadata.html[here].
+
+[IMPORTANT]
+====
+DataNucleus properties must be specified using `camelCase`, not `kebab-case`.
+
+For example, use
+====
 
-//WARNING: TODO - v2 - detail on original config properties (not yet reviewed) currently commented out.
 
-//Apache Isis programmatically configures DataNucleus; any Apache Isis properties with the prefix `isis.persistence.jdo-datanucleus.impl` are passed through directly to the JDO/DataNucleus objectstore (with the prefix stripped off, of course).
-//
-//DataNucleus will for itself also and read the `META-INF/persistence.xml`; at a minimum this defines the name of the "persistence unit".
-//In theory it could also hold mappings, though in Apache Isis we tend to use annotations instead.
-//
-//Furthermore, DataNucleus will search for various other XML mapping files, eg `mappings.jdo`.
-//A full list can be found http://www.datanucleus.org/products/datanucleus/jdo/metadata.html[here].
-//The metadata in these XML can be used to override the annotations of annotated entities; see xref:userguide:btb:about.adoc#overriding-jdo-annotations[Overriding JDO Annotatons] for further discussion.
-//
 //
-//include::configuring/properties.adoc[leveloffset=+1]
-//include::configuring/bulk-load.adoc[leveloffset=+1]
-//include::configuring/disabling-persistence-by-reachability.adoc[leveloffset=+1]
-//include::configuring/persistence-xml.adoc[leveloffset=+1]
-//include::configuring/using-jndi-data-source.adoc[leveloffset=+1]
diff --git a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
index cda6568..a0273ae 100644
--- a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,6 +1,7 @@
 
 
 * xref:pjdo:ROOT:setup-and-configuration.adoc[Setup and Configuration]
+** xref:pjdo:ROOT:configuring/disabling-persistence-by-reachability.adoc[Disabling Persistence by Reachability]
 * 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/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
index 4a1e269..0cf07e4 100644
--- a/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/persistence/jpa/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1 +1,3 @@
-* xref:pjpa:ROOT:other-resources.adoc[Other Resources]
+* xref:pjpa:ROOT:setup-and-configuration.adoc[Setup and Configuration]
+* xref:pjpa:ROOT:applib.adoc[JPA Applib]
+* xref:pjpa:ROOT:mapping-guide.adoc[Mapping Guide]
diff --git a/preview.sh b/preview.sh
index 5c99588..715501e 100644
--- a/preview.sh
+++ b/preview.sh
@@ -12,7 +12,7 @@ export ANTORA_TARGET_SITE=antora/target/site
 #
 PLAYBOOK_FILE=antora/playbooks/site.yml
 
-while getopts 'ECDAKSLecdaksxyhfl:' opt
+while getopts 'ECDAKSLecdaksxylhf:' opt
 do
   case $opt in
     E) export SKIP_EXAMPLES=false

[isis] 06/20: 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 master
in repository https://gitbox.apache.org/repos/asf/isis.git

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

    ISIS-2484: moves overview into core (design docs)
    
    (cherry picked from commit 28d8c82560f64b5098358d9ec13d432d9f46b9cc)
---
 .../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

[isis] 03/20: ISIS-2484: removes page relating to interim releases

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

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

commit a08b750d9cf4637ed75b949eacfc1f74447ffb15
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 28 13:07:27 2021 +0100

    ISIS-2484: removes page relating to interim releases
    
    as we now publish nightly builds as a matter of course
    
    (cherry picked from commit 400758656513149a7e8f35c5256687a410e0fd13)
---
 antora/components/comguide/modules/ROOT/nav.adoc   |  1 -
 .../comguide/modules/ROOT/pages/about.adoc         |  2 -
 .../release-process-for-interim-releases.adoc      | 74 ----------------------
 interim-release.sh                                 | 56 ----------------
 4 files changed, 133 deletions(-)

diff --git a/antora/components/comguide/modules/ROOT/nav.adoc b/antora/components/comguide/modules/ROOT/nav.adoc
index 44d2387..b6723f8 100644
--- a/antora/components/comguide/modules/ROOT/nav.adoc
+++ b/antora/components/comguide/modules/ROOT/nav.adoc
@@ -7,7 +7,6 @@
 * xref:verifying-releases.adoc[Verifying Releases]
 * xref:post-release-successful.adoc[Post Release (Successful)]
 * xref:post-release-unsuccessful.adoc[Post Release (Unsuccessful)]
-* xref:release-process-for-interim-releases.adoc[Interim Releases]
 * xref:key-generation.adoc[Key Generation]
 * xref:algolia-search.adoc[Appendix: Algolia Search]
 * xref:release-process-prereqs.adoc[Appendix: Release Process Prereqs]
diff --git a/antora/components/comguide/modules/ROOT/pages/about.adoc b/antora/components/comguide/modules/ROOT/pages/about.adoc
index 750f13e..290bed3 100644
--- a/antora/components/comguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/about.adoc
@@ -18,8 +18,6 @@ This committers' guide is for committers of Apache Isis itself who want guidance
 //
 //include::post-release-unsuccessful.adoc[leveloffset=+1]
 //
-//include::release-process-for-interim-releases.adoc[leveloffset=+1]
-//
 //include::antora-publish-procedure.adoc[leveloffset=+1]
 //
 //include::key-generation.adoc[leveloffset=+1]
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
deleted file mode 100644
index 08c8cd4..0000000
--- a/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
+++ /dev/null
@@ -1,74 +0,0 @@
-[[release-process-for-interim-releases]]
-= Interim Releases
-
-: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-partial:
-
-
-
-
-
-
-The intent of an "interim" release is to allow a developer team to release their application based on a `-SNAPSHOT` version of the framework.
-Since `-SNAPSHOT` changes on a day-to-day basis, the idea is to tag a particular revision and to release this, thereby providing stability/traceability for the application being developed.
-
-Whereas xref:comguide:ROOT:cutting-a-release.adoc.adoc[formal release]s are public (released through the Maven repository maintained by Apache Software Foundation), interim releases are non-public and rely on infrastructure provided by a developer team.
-The tagged release resides __not__ in the
-xref:docs:ROOT:downloads/how-to.adoc#source-code[official Apache Isis git repository], but instead in a fork/clone maintained by the developer team.
-
-== Prerequisites
-
-Create a remote fork/clone of the Apache Isis repository (eg using link:http://github.com[github] or link:http://bitbucket.org[bitbucket] or similar), and ensure that your local fork specifies this remote.
-
-Also, set up a CI server against your fork/clone, to build against any branches called `origin/interim/*`.
-To build it should use the command:
-
-[source,bash]
-----
-mvn clean install -Dskip.app
-----
-
-The CI server should then also publish the resultant artifacts to a local Maven repository.
-For example, Jenkins provides post-build plugins to perform such a task.
-
-== Sanity Check
-
-Ensure that the framework builds ok using the same command that your CI server is set up to execute (see section above).
-
-== Release
-
-Deploy the framework using:
-
-[source,bsah]
-----
-sh interim-release.sh xxx yyyyy
-----
-
-where `xxx` is the most recent release of Isis (to act as the base), and `yyyyy` is the name of the remote.
-
-For example,
-
-[source,bash]
-----
-sh interim-release.sh 1.13.0 incodehq
-----
-
-This will result in a new branch and tagged being pushed to the remote, with an appropriate version (details below).
-
-As noted in the prereqs (above), the CI server configured should then detect the new branch (or tag, if you prefer), build the framework (skipping application and architecture, as in the prerequisites) and then publish the resultant artifacts to a private Maven repo.
-
-=== Implementation details
-
-The script itself:
-
-* removes any local branches called `interim/*`
-* creates a new branch called `interim/YYYYmmDD-HHMM`
-** eg `interim/1.13.0.20160909-0758`
-* updates the version of the pom.xml to the baseline plus the date
-** eg `<version>1.13.0.20160909-0758</version>`
-* commits the changes and tags the new commit
-** eg `isis-1.13.0.20160909-0758`
-* removes any remote branches called `interim/*`
-* pushes both the branch and the tag to the remote.
-
-
diff --git a/interim-release.sh b/interim-release.sh
deleted file mode 100644
index 5fc943e..0000000
--- a/interim-release.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-VERSION_BASE=$1
-REMOTE=$2
-
-if [ -z "$VERSION_BASE" -o -z "$REMOTE" ]; then
-    echo "usage: $(basename $0) [base version] [remote]"
-    echo "   eg: $(basename $0) 1.13.0 incodehq"
-    exit 1
-fi
-
-DATE=`date +'%Y%m%d-%H%M'`
-
-VERSION="$VERSION_BASE.$DATE"
-BRANCH="interim/$VERSION"
-TAG="interim/isis-$VERSION"
-
-CURR_BRANCH=`git rev-parse --abbrev-ref HEAD`
-
-echo "checking out new branch $BRANCH"
-git checkout -b "$BRANCH"
-
-echo "updating version in all pom.xml files..."
-pushd isis-parent >/dev/null
-mvn versions:set -DnewVersion=$VERSION > /dev/null
-popd >/dev/null
-pushd starter >/dev/null
-mvn versions:set -DnewVersion=$VERSION > /dev/null
-popd >/dev/null
-
-echo "Committing changes"
-git commit -am "bumping to $VERSION"
-
-echo "Building"
-mvn clean install -o
-
-echo "tagging"
-git tag $TAG
-
-echo "pushing tag"
-git push $REMOTE $TAG
-
-echo "removing any earlier remote branches"
-for a in `git ls-remote --heads $REMOTE  | sed 's?.*refs/heads/??' | grep interim`
-do
-    git push $REMOTE --delete $a
-done
-
-# need to push branch, so will be picked up for building by CI
-echo "pushing branch"
-git push $REMOTE $BRANCH
-
-echo "switching back to original branch"
-git checkout $CURR_BRANCH
-
-echo "and deleting interim branch"
-git branch -D $BRANCH

[isis] 20/20: Merge branch '2.0.0-M5' into ISIS-2484

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

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

commit 4f87d6da7c32afe6b4c856d236cc84a4c1cf463a
Merge: 5677570 8cd63e0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 31 13:49:10 2021 +0100

    Merge branch '2.0.0-M5' into ISIS-2484