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 2019/10/09 22:28:57 UTC

[isis] branch ISIS-2062 updated (d8a560f -> e2ef9c4)

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

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


 discard d8a560f  ISIS-2062: refactors ext-secman to distributed component pattern
 discard 036b889  ISIS-2062: reorg security guide to use distributed component pattern
     add 1f25fb4  ISIS-2158: consolidate all jdo programming model refiners
     add dfb0429  ISIS-2158: move jdo query specific api to 'jdo-common'
     add f5df377  ISIS-2158: move ObjectFactory -> 'legacy'
     add f25cb88  ISIS-2158: moving unreferenced classes to 'legacy'
     add 554c93f  ISIS-2158: polish meta-model life cycle
     add 175dd48  ISIS-2158: introduces a DeficiencyFacet
     add 09bd3d7  ISIS-2158: revert FacetAbstract temp. changes to previous version
     add b431397  ISIS-2158: fixing tests
     add 99b1f59  ISIS-2158: polishing SpecificationLoader interface
     add 04f0485  ISIS-2158: extend spec-loading, also allow for concurrent validation
     new a707a03  ISIS-2062: reorg security guide to use distributed component pattern
     new df73c1c  ISIS-2062: refactors ext-secman to distributed component pattern
     new d920556  ISIS-2062: refactors sec guide to use distributed component
     new e2ef9c4  ISIS-2062: adds script to generate .adoc from spring config metadata

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (d8a560f)
            \
             N -- N -- N   refs/heads/ISIS-2062 (e2ef9c4)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 4 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:
 .../modules/ROOT/partials/component-nav.adoc       |   8 +-
 .../deployment/externalized-configuration.adoc     |   2 +-
 .../userguide/modules/btb/pages/web-xml.adoc       |   2 +-
 .../applib/AbstractContainedObject-hierarchy.ucd   |  71 ------
 .../org/apache/isis/applib/events/Events.ucd       | 281 ---------------------
 .../org/apache/isis/applib/fixtures/Fixtures.ucd   |  93 -------
 .../isis/commons/internal/assertions/_Ensure.java  |   8 +-
 .../collections/snapshot/_VersionedList.java       | 217 ++++++++++++++++
 .../collections/snapshot/VersionedListTest.java    |  69 +++++
 .../facets/object/mixin/MixinIntendedAs.java       |   2 +-
 .../isis/metamodel/adapter/ObjectAdapter.java      |   4 +-
 ...nChoicesForCollectionParameterFacetFactory.java |  18 +-
 .../annotation/HomePageFacetAnnotationFactory.java |  41 +--
 .../facets/all/deficiencies/DeficiencyFacet.java   | 118 +++++++++
 .../annotation/SortedByFacetAnnotationFactory.java |   7 +-
 .../metamodel/facets/jaxb/JaxbFacetFactory.java    |  53 ++--
 .../ViewModelSemanticCheckingFacetFactory.java     |  38 ++-
 .../BookmarkPolicyFacetFallbackFactory.java        |   4 +-
 .../DomainObjectAnnotationFacetFactory.java        |  35 ++-
 .../DomainServiceFacetAnnotationFactory.java       |  13 +-
 .../mixin/MetaModelValidatorForMixinTypes.java     |  10 +-
 .../mixin/MixinFacetForMixinAnnotationFactory.java |   4 +-
 .../NavigableParentAnnotationFacetFactory.java     |   8 +-
 ...jectSpecIdFacetDerivedFromClassNameFactory.java |  13 +-
 .../recreatable/RecreatableObjectFacetFactory.java |   5 +-
 .../annotation/TitleAnnotationFacetFactory.java    |   5 +-
 ...engthFacetForMaxLengthAnnotationOnProperty.java |  35 ---
 .../progmodel/ProgrammingModelService.java         |   7 +-
 .../apache/isis/metamodel/spec/ManagedObject.java  |   5 -
 .../apache/isis/metamodel/spec/ObjectSpecId.java   |  21 --
 .../specloader/ProgrammingModelServiceDefault.java |  17 --
 .../metamodel/specloader/ServiceInitializer.java   | 181 -------------
 .../specloader/SpecificationCacheDefault.java      |  21 +-
 .../metamodel/specloader/SpecificationLoader.java  |  91 +++----
 .../specloader/SpecificationLoaderDefault.java     | 138 +++++-----
 .../specloader/postprocessor/PostProcessor.java    |  12 +-
 .../specloader/validator/MetaModelValidator.java   |  25 +-
 .../validator/MetaModelValidatorAbstract.java      |  34 ++-
 .../validator/MetaModelValidatorComposite.java     |  65 -----
 ...etaModelValidatorForConflictingOptionality.java |  23 +-
 .../MetaModelValidatorForDeprecatedAbstract.java   |  17 +-
 ...etaModelValidatorForDeprecatedMethodPrefix.java |   4 +-
 .../MetaModelValidatorForValidationFailures.java   |  39 ++-
 .../validator/MetaModelValidatorVisiting.java      |  82 ++++--
 .../ViewModelSemanticCheckingFacetFactoryTest.java |   6 +-
 .../specloader/ServiceInitializerTest.java         | 249 ------------------
 .../SpecificationLoaderTestAbstract.java           |   7 +-
 .../service/JdoPersistenceLifecycleService.java    |  12 +-
 .../jdo/metamodel/JdoProgrammingModelPlugin.java   | 267 +++++++++++++++++++-
 .../object/query/VisitorForClauseAbstract.java     |  32 ++-
 .../facets/object/query/VisitorForFromClause.java  |  10 +-
 .../object/query/VisitorForVariablesClause.java    |  20 +-
 .../version/JdoVersionAnnotationFacetFactory.java  |  11 +-
 ...DerivedFromJdoColumnAnnotationFacetFactory.java |  18 +-
 ...ndatoryFromJdoColumnAnnotationFacetFactory.java |  27 +-
 ...DerivedFromJdoColumnAnnotationFacetFactory.java |  29 ++-
 .../validator/JdoMetaModelValidator.java           | 120 ---------
 .../jdo/persistence/IsisPersistenceSessionJdo.java |  58 +++++
 ...ase.java => IsisPersistenceSessionJdoBase.java} |  16 +-
 .../IsisPlatformTransactionManagerForJdo.java      |   2 +-
 .../PersistenceSessionFactoryMetamodelRefiner.java | 184 --------------
 ...AnnotationFacetFactoryTest_refineMetaModel.java |  56 ++--
 ...sistenceQueryFindUsingApplibQueryProcessor.java |   3 +-
 .../isis/jdo/jdosupport/IsisJdoSupportDN5.java     |   4 +-
 .../DataNucleusApplicationComponents5.java         |  19 +-
 .../jdo/persistence/IsisLifecycleListener.java     |  21 +-
 .../isis/jdo/persistence/PersistenceSession5.java  |   8 +-
 .../system/persistence/PersistenceSession.java     |  41 +--
 .../adaptermanager/ObjectAdapterContext.java       |   2 +-
 .../system/session/IsisSessionFactoryDefault.java  |  46 +---
 core/security/{shiro => api}/_adoc/antora.yml      |   0
 .../_adoc/modules/api}/_attributes.adoc            |   0
 .../_adoc/modules/api/attachments}/.gitkeep        |   0
 .../_adoc/modules/api/examples}/.gitkeep           |   0
 .../configure-isis-to-use-bypass.PNG               | Bin
 .../_adoc/modules/api}/nav.adoc                    |   0
 .../_adoc/modules/api/pages}/_attributes.adoc      |   0
 .../api/_adoc/modules/api/pages/about.adoc         |   4 +-
 .../_adoc/modules/api/partials}/_attributes.adoc   |   0
 .../api/_adoc/modules/api/partials/module-nav.adoc |   2 +
 .../_adoc/modules/bypass}/_attributes.adoc         |   0
 .../_adoc/modules/bypass/attachments}/.gitkeep     |   0
 .../_adoc/modules/bypass/examples}/.gitkeep        |   0
 .../configure-isis-to-use-bypass.PNG               | Bin
 .../_adoc/modules/bypass}/nav.adoc                 |   0
 .../_adoc/modules/bypass/pages}/_attributes.adoc   |   0
 .../{security-bypass => bypass}/pages/about.adoc   |   0
 .../pages/configuring-isis-to-use-bypass.adoc      |   0
 .../modules/bypass/partials}/_attributes.adoc      |   0
 .../_adoc/modules/bypass/partials/module-nav.adoc  |   3 +
 .../security-bypass/partials/module-nav.adoc       |   3 -
 .../security-shiro/partials/module-nav.adoc        |  10 -
 .../_attributes.adoc                               |   0
 .../attachments}/.gitkeep                          |   0
 .../examples}/.gitkeep                             |   0
 .../configure-shiro-to-use-custom-jdbc-realm.png   | Bin
 .../nav.adoc                                       |   0
 .../pages}/_attributes.adoc                        |   0
 .../pages/about.adoc                               |   0
 .../partials}/_attributes.adoc                     |   0
 .../partials/module-nav.adoc                       |   0
 .../modules/shiro-realm-ldap}/_attributes.adoc     |   0
 .../modules/shiro-realm-ldap/attachments}/.gitkeep |   0
 .../modules/shiro-realm-ldap/examples}/.gitkeep    |   0
 .../images}/activeds-ldap-groups.png               | Bin
 .../images}/activeds-ldap-mojo-partition.png       | Bin
 .../images}/activeds-ldap-mojo-root-dse.png        | Bin
 .../images}/activeds-ldap-sasl-authentication.png  | Bin
 .../images}/activeds-ldap-users.png                | Bin
 .../configure-shiro-to-use-isis-ldap-realm.PNG     | Bin
 .../_adoc/modules/shiro-realm-ldap}/nav.adoc       |   0
 .../shiro-realm-ldap/pages}/_attributes.adoc       |   0
 .../pages/about.adoc                               |   0
 .../shiro-realm-ldap/partials}/_attributes.adoc    |   0
 .../partials/module-nav.adoc                       |   0
 .../shiro/_adoc/modules/shiro}/_attributes.adoc    |   0
 .../_adoc/modules/shiro/attachments}/.gitkeep      |   0
 .../shiro/_adoc/modules/shiro/examples}/.gitkeep   |   0
 .../ldap}/activeds-ldap-groups.png                 | Bin
 .../ldap}/activeds-ldap-mojo-partition.png         | Bin
 .../ldap}/activeds-ldap-mojo-root-dse.png          | Bin
 .../ldap}/activeds-ldap-sasl-authentication.png    | Bin
 .../ldap}/activeds-ldap-users.png                  | Bin
 .../configure-isis-to-use-shiro.png                | Bin
 .../configure-shiro-to-use-custom-jdbc-realm.png   | Bin
 .../configure-shiro-to-use-ini-realm.PNG           | Bin
 .../configure-shiro-to-use-isis-ldap-realm.PNG     | Bin
 .../modules/{security-shiro => shiro}/nav.adoc     |   0
 .../_adoc/modules/shiro/pages}/_attributes.adoc    |   0
 .../{security-shiro => shiro}/pages/about.adoc     |   0
 .../pages/configuring-isis-to-use-shiro.adoc       |   0
 .../pages/enhanced-wildcard-permission.adoc        |   2 +-
 .../{security-shiro => shiro}/pages/ini-realm.adoc |   0
 .../{security-shiro => shiro}/pages/run-as.adoc    |   0
 .../pages/shiro-caching.adoc                       |   0
 .../_adoc/modules/shiro}/partials/_attributes.adoc |   0
 .../_adoc/modules/shiro/partials/module-nav.adoc   |  10 +
 .../validate/ValidateDomainModel.java              |   6 +-
 .../widgets/select2/Select2ChoiceExt.java          |   2 +
 .../widgets/select2/Select2MultiChoiceExt.java     |   2 +
 .../DomainModelTest_usingGoodDomain.java           |  14 +
 .../domainmodel/SpecloaderPerformanceTest.java     |  10 +-
 .../SupportingMethodValidatorRefinerFactory.java   |   3 +-
 .../system/persistence/LoggingLocation.java        |   0
 .../runtime/system/persistence/ObjectFactory.java  |  15 +-
 .../system/persistence/SuspendableListener.java    |   0
 scripts/generateConfigDocs.groovy                  | 216 ++++++++++++++++
 147 files changed, 1606 insertions(+), 1910 deletions(-)
 delete mode 100644 core/applib/src/main/resources/org/apache/isis/applib/AbstractContainedObject-hierarchy.ucd
 delete mode 100644 core/applib/src/main/resources/org/apache/isis/applib/events/Events.ucd
 delete mode 100644 core/applib/src/main/resources/org/apache/isis/applib/fixtures/Fixtures.ucd
 create mode 100644 core/commons/src/main/java/org/apache/isis/commons/internal/collections/snapshot/_VersionedList.java
 create mode 100644 core/commons/src/test/java/org/apache/isis/commons/internal/collections/snapshot/VersionedListTest.java
 create mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/all/deficiencies/DeficiencyFacet.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/maxlength/MaxLengthFacetForMaxLengthAnnotationOnProperty.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ServiceInitializer.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/validator/MetaModelValidatorComposite.java
 delete mode 100644 core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/ServiceInitializerTest.java
 delete mode 100644 core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/specloader/validator/JdoMetaModelValidator.java
 create mode 100644 core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/persistence/IsisPersistenceSessionJdo.java
 rename core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/persistence/{PersistenceSessionBase.java => IsisPersistenceSessionJdoBase.java} (93%)
 delete mode 100644 core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/persistence/PersistenceSessionFactoryMetamodelRefiner.java
 copy core/security/{shiro => api}/_adoc/antora.yml (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro => api/_adoc/modules/api}/_attributes.adoc (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro/examples => api/_adoc/modules/api/attachments}/.gitkeep (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro/attachments => api/_adoc/modules/api/examples}/.gitkeep (100%)
 copy core/security/{bypass/_adoc/modules/security-bypass => api/_adoc/modules/api}/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG (100%)
 copy core/security/{shiro/_adoc/modules/security-shiro => api/_adoc/modules/api}/nav.adoc (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro/partials => api/_adoc/modules/api/pages}/_attributes.adoc (100%)
 copy antora/components/userguide/modules/fun/pages/core-concepts/principles/testable.adoc => core/security/api/_adoc/modules/api/pages/about.adoc (98%)
 rename core/security/{shiro/_adoc/modules/security-shiro/pages => api/_adoc/modules/api/partials}/_attributes.adoc (100%)
 create mode 100644 core/security/api/_adoc/modules/api/partials/module-nav.adoc
 rename core/security/{shiro/_adoc/modules/security-shiro-realm-ldap => bypass/_adoc/modules/bypass}/_attributes.adoc (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro-realm-ldap/examples => bypass/_adoc/modules/bypass/attachments}/.gitkeep (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro-realm-ldap/attachments => bypass/_adoc/modules/bypass/examples}/.gitkeep (100%)
 rename core/security/bypass/_adoc/modules/{security-bypass => bypass}/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro-realm-ldap => bypass/_adoc/modules/bypass}/nav.adoc (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro-realm-ldap/partials => bypass/_adoc/modules/bypass/pages}/_attributes.adoc (100%)
 rename core/security/bypass/_adoc/modules/{security-bypass => bypass}/pages/about.adoc (100%)
 rename core/security/bypass/_adoc/modules/{security-bypass => bypass}/pages/configuring-isis-to-use-bypass.adoc (100%)
 rename core/security/{shiro/_adoc/modules/security-shiro-realm-ldap/pages => bypass/_adoc/modules/bypass/partials}/_attributes.adoc (100%)
 create mode 100644 core/security/bypass/_adoc/modules/bypass/partials/module-nav.adoc
 delete mode 100644 core/security/bypass/_adoc/modules/security-bypass/partials/module-nav.adoc
 delete mode 100644 core/security/shiro/_adoc/modules/security-shiro/partials/module-nav.adoc
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc => shiro-realm-jdbc}/_attributes.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc/examples => shiro-realm-jdbc/attachments}/.gitkeep (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc/attachments => shiro-realm-jdbc/examples}/.gitkeep (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro/images/security/security-apis-impl => shiro-realm-jdbc/images}/configure-shiro-to-use-custom-jdbc-realm.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc => shiro-realm-jdbc}/nav.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc/partials => shiro-realm-jdbc/pages}/_attributes.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc => shiro-realm-jdbc}/pages/about.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc/pages => shiro-realm-jdbc/partials}/_attributes.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-ldap => shiro-realm-jdbc}/partials/module-nav.adoc (100%)
 rename core/security/{bypass/_adoc/modules/security-bypass => shiro/_adoc/modules/shiro-realm-ldap}/_attributes.adoc (100%)
 rename core/security/{bypass/_adoc/modules/security-bypass/examples => shiro/_adoc/modules/shiro-realm-ldap/attachments}/.gitkeep (100%)
 rename core/security/{bypass/_adoc/modules/security-bypass/attachments => shiro/_adoc/modules/shiro-realm-ldap/examples}/.gitkeep (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro/images/configuration/configuring-shiro/ldap => shiro-realm-ldap/images}/activeds-ldap-groups.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro/images/configuration/configuring-shiro/ldap => shiro-realm-ldap/images}/activeds-ldap-mojo-partition.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro/images/configuration/configuring-shiro/ldap => shiro-realm-ldap/images}/activeds-ldap-mojo-root-dse.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro/images/configuration/configuring-shiro/ldap => shiro-realm-ldap/images}/activeds-ldap-sasl-authentication.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro/images/configuration/configuring-shiro/ldap => shiro-realm-ldap/images}/activeds-ldap-users.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro/images/security/security-apis-impl => shiro-realm-ldap/images}/configure-shiro-to-use-isis-ldap-realm.PNG (100%)
 rename core/security/{bypass/_adoc/modules/security-bypass => shiro/_adoc/modules/shiro-realm-ldap}/nav.adoc (100%)
 rename core/security/{bypass/_adoc/modules/security-bypass/partials => shiro/_adoc/modules/shiro-realm-ldap/pages}/_attributes.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-ldap => shiro-realm-ldap}/pages/about.adoc (100%)
 rename core/security/{bypass/_adoc/modules/security-bypass/pages => shiro/_adoc/modules/shiro-realm-ldap/partials}/_attributes.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc => shiro-realm-ldap}/partials/module-nav.adoc (100%)
 copy {mavendeps/_adoc/modules/ROOT => core/security/shiro/_adoc/modules/shiro}/_attributes.adoc (100%)
 copy {mavendeps/_adoc/modules/ROOT/images => core/security/shiro/_adoc/modules/shiro/attachments}/.gitkeep (100%)
 copy {mavendeps/_adoc/modules/ROOT/images => core/security/shiro/_adoc/modules/shiro/examples}/.gitkeep (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-ldap/images => shiro/images/configuration/configuring-shiro/ldap}/activeds-ldap-groups.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-ldap/images => shiro/images/configuration/configuring-shiro/ldap}/activeds-ldap-mojo-partition.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-ldap/images => shiro/images/configuration/configuring-shiro/ldap}/activeds-ldap-mojo-root-dse.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-ldap/images => shiro/images/configuration/configuring-shiro/ldap}/activeds-ldap-sasl-authentication.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-ldap/images => shiro/images/configuration/configuring-shiro/ldap}/activeds-ldap-users.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/images/security/security-apis-impl/configure-isis-to-use-shiro.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-jdbc/images => shiro/images/security/security-apis-impl}/configure-shiro-to-use-custom-jdbc-realm.png (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro-realm-ldap/images => shiro/images/security/security-apis-impl}/configure-shiro-to-use-isis-ldap-realm.PNG (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/nav.adoc (100%)
 copy {mavendeps/_adoc/modules/ROOT/partials => core/security/shiro/_adoc/modules/shiro/pages}/_attributes.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/pages/about.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/pages/configuring-isis-to-use-shiro.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/pages/enhanced-wildcard-permission.adoc (91%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/pages/ini-realm.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/pages/run-as.adoc (100%)
 rename core/security/shiro/_adoc/modules/{security-shiro => shiro}/pages/shiro-caching.adoc (100%)
 copy {mavendeps/_adoc/modules/ROOT => core/security/shiro/_adoc/modules/shiro}/partials/_attributes.adoc (100%)
 create mode 100644 core/security/shiro/_adoc/modules/shiro/partials/module-nav.adoc
 rename {core/runtime => extensions/legacy}/src/main/java/org/apache/isis/runtime/system/persistence/LoggingLocation.java (100%)
 rename {core/runtime => extensions/legacy}/src/main/java/org/apache/isis/runtime/system/persistence/ObjectFactory.java (84%)
 rename {core/runtime => extensions/legacy}/src/main/java/org/apache/isis/runtime/system/persistence/SuspendableListener.java (100%)
 create mode 100644 scripts/generateConfigDocs.groovy


[isis] 02/04: ISIS-2062: refactors ext-secman to distributed component pattern

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

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

commit df73c1cc33c0bde990b6e73625fc6be62f5c44a1
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 8 23:39:32 2019 +0100

    ISIS-2062: refactors ext-secman to distributed component pattern
---
 antora/components/archdesign/examples.csv          |   1 -
 antora/components/archdesign/sync_examples.sh      |  39 ---------------------
 antora/components/mignotes/examples.csv            |   1 -
 antora/components/mignotes/sync_examples.sh        |  39 ---------------------
 antora/components/refguide/examples.csv            |   1 -
 antora/components/refguide/sync_examples.sh        |  39 ---------------------
 antora/components/relnotes/examples.csv            |   1 -
 antora/components/relnotes/sync_examples.sh        |  39 ---------------------
 antora/components/security/examples.csv            |   1 -
 antora/components/security/sync_examples.sh        |  39 ---------------------
 antora/components/testing/examples.csv             |   1 -
 antora/components/testing/sync_examples.sh         |  39 ---------------------
 antora/components/toc/examples.csv                 |   1 -
 antora/components/toc/sync_examples.sh             |  39 ---------------------
 antora/components/userguide/examples.csv           |   1 -
 antora/components/userguide/sync_examples.sh       |  39 ---------------------
 core/applib/_adoc/examples.csv                     |   1 -
 core/applib/_adoc/sync_examples.sh                 |  39 ---------------------
 core/config/_adoc/examples.csv                     |   1 -
 core/config/_adoc/sync_examples.sh                 |  39 ---------------------
 core/plugins/jdo/_adoc/examples.csv                |   1 -
 core/plugins/jdo/_adoc/sync_examples.sh            |  39 ---------------------
 core/runtime-services/_adoc/examples.csv           |   1 -
 core/runtime-services/_adoc/sync_examples.sh       |  39 ---------------------
 core/schema/_adoc/examples.csv                     |   1 -
 core/schema/_adoc/sync_examples.sh                 |  39 ---------------------
 core/security/bypass/_adoc/examples.csv            |   1 -
 core/security/bypass/_adoc/sync_examples.sh        |  39 ---------------------
 core/security/shiro/_adoc/examples.csv             |   1 -
 core/security/shiro/_adoc/sync_examples.sh         |  39 ---------------------
 .../integtestsupport/_adoc/examples.csv            |   1 -
 .../integtestsupport/_adoc/sync_examples.sh        |  39 ---------------------
 core/testsupport/mavenplugin/_adoc/examples.csv    |   1 -
 .../testsupport/mavenplugin/_adoc/sync_examples.sh |  39 ---------------------
 .../testsupport/unittestsupport/_adoc/examples.csv |   1 -
 .../unittestsupport/_adoc/sync_examples.sh         |  39 ---------------------
 core/viewer-restfulobjects/_adoc/examples.csv      |   1 -
 core/viewer-restfulobjects/_adoc/sync_examples.sh  |  39 ---------------------
 core/viewer-wicket/_adoc/examples.csv              |   1 -
 core/viewer-wicket/_adoc/sync_examples.sh          |  39 ---------------------
 examples/apps/demo/_adoc/examples.csv              |   1 -
 examples/apps/demo/_adoc/sync_examples.sh          |  39 ---------------------
 examples/apps/helloworld/_adoc/examples.csv        |   1 -
 examples/apps/helloworld/_adoc/sync_examples.sh    |  39 ---------------------
 examples/apps/simpleapp/_adoc/examples.csv         |   1 -
 examples/apps/simpleapp/_adoc/sync_examples.sh     |  39 ---------------------
 examples/smoketests/_adoc/examples.csv             |   1 -
 examples/smoketests/_adoc/sync_examples.sh         |  39 ---------------------
 extensions/asciidoc/_adoc/examples.csv             |   1 -
 extensions/asciidoc/_adoc/sync_examples.sh         |  39 ---------------------
 extensions/fixtures/_adoc/examples.csv             |   1 -
 extensions/fixtures/_adoc/sync_examples.sh         |  39 ---------------------
 extensions/incubator/_adoc/examples.csv            |   1 -
 extensions/incubator/_adoc/sync_examples.sh        |  39 ---------------------
 extensions/markdown/_adoc/examples.csv             |   1 -
 extensions/markdown/_adoc/sync_examples.sh         |  39 ---------------------
 extensions/secman/_adoc/examples.csv               |   1 -
 extensions/secman/_adoc/modules/ROOT/nav.adoc      |   7 +---
 .../_adoc/modules/ROOT/partials/component-nav.adoc |   7 ++++
 .../_adoc/modules/ROOT/partials/module-nav.adoc    |   1 +
 extensions/secman/_adoc/modules/api/nav.adoc       |   1 -
 .../_adoc/modules/encryption-jbcrypt/nav.adoc      |   5 ---
 extensions/secman/_adoc/modules/model/nav.adoc     |   5 ---
 .../secman/_adoc/modules/persistence-jdo/nav.adoc  |   5 ---
 .../secman/_adoc/modules/realm-shiro/nav.adoc      |   5 ---
 extensions/secman/_adoc/sync_examples.sh           |  39 ---------------------
 extensions/secman/api/_adoc/antora.yml             |   2 ++
 .../_adoc/modules/api}/_attributes.adoc            |   0
 .../_adoc/modules/api/attachments}/.gitkeep        |   0
 .../_adoc/modules/api}/examples/.gitkeep           |   0
 .../_adoc/modules/api/images}/.gitkeep             |   0
 extensions/secman/api/_adoc/modules/api/nav.adoc   |   1 +
 .../_adoc/modules/api/pages}/_attributes.adoc      |   0
 .../{ => api}/_adoc/modules/api/pages/about.adoc   |   0
 .../_adoc/modules/api/partials}/_attributes.adoc   |   0
 .../api/_adoc/modules/api/partials/module-nav.adoc |   1 +
 .../secman/encryption-jbcrypt/_adoc/antora.yml     |   2 ++
 .../modules/encryption-jbcrypt}/_attributes.adoc   |   0
 .../encryption-jbcrypt/attachments}/.gitkeep       |   0
 .../modules/encryption-jbcrypt}/examples/.gitkeep  |   0
 .../modules/encryption-jbcrypt/images}/.gitkeep    |   0
 .../_adoc/modules/encryption-jbcrypt/nav.adoc      |   1 +
 .../encryption-jbcrypt/pages}/_attributes.adoc     |   0
 .../modules/encryption-jbcrypt/pages/about.adoc    |   0
 .../encryption-jbcrypt/partials}/_attributes.adoc  |   0
 .../encryption-jbcrypt/partials/module-nav.adoc    |   1 +
 extensions/secman/model/_adoc/antora.yml           |   2 ++
 .../_adoc/modules/model/_attributes.adoc           |   0
 .../_adoc/modules/model/attachments}/.gitkeep      |   0
 .../_adoc/modules/model/examples/.gitkeep          |   0
 .../_adoc/modules/model/images}/.gitkeep           |   0
 .../secman/model/_adoc/modules/model/nav.adoc      |   1 +
 .../_adoc/modules/model/pages}/_attributes.adoc    |   0
 .../_adoc/modules/model/pages/about.adoc           |   0
 .../_adoc/modules/model/partials}/_attributes.adoc |   0
 .../_adoc/modules/model/partials/module-nav.adoc   |   1 +
 extensions/secman/persistence-jdo/_adoc/antora.yml |   2 ++
 .../modules/persistence-jdo}/_attributes.adoc      |   0
 .../modules/persistence-jdo/attachments}/.gitkeep  |   0
 .../modules/persistence-jdo}/examples/.gitkeep     |   0
 .../_adoc/modules/persistence-jdo/images}/.gitkeep |   0
 .../_adoc/modules/persistence-jdo/nav.adoc         |   1 +
 .../persistence-jdo/pages}/_attributes.adoc        |   0
 .../_adoc/modules/persistence-jdo/pages/about.adoc |   0
 .../persistence-jdo/partials}/_attributes.adoc     |   0
 .../persistence-jdo/partials/module-nav.adoc       |   1 +
 extensions/secman/realm-shiro/_adoc/antora.yml     |   2 ++
 .../_adoc/modules/realm-shiro}/_attributes.adoc    |   0
 .../modules/realm-shiro/attachments}/.gitkeep      |   0
 .../_adoc/modules/realm-shiro}/examples/.gitkeep   |   0
 .../_adoc/modules/realm-shiro/images}/.gitkeep     |   0
 ...s-security-module-realm-with-delegate-realm.PNG | Bin
 ...iro-to-use-isisaddons-security-module-realm.PNG | Bin
 .../realm-shiro/_adoc/modules/realm-shiro/nav.adoc |   1 +
 .../modules/realm-shiro/pages}/_attributes.adoc    |   0
 .../_adoc/modules/realm-shiro/pages/about.adoc     |   0
 .../modules/realm-shiro/partials}/_attributes.adoc |   0
 .../modules/realm-shiro/partials/module-nav.adoc   |   1 +
 extensions/specsupport/_adoc/examples.csv          |   1 -
 extensions/specsupport/_adoc/sync_examples.sh      |  39 ---------------------
 extensions/sse/_adoc/examples.csv                  |   1 -
 extensions/sse/_adoc/sync_examples.sh              |  39 ---------------------
 extensions/viewer-wicket-excel/_adoc/examples.csv  |   1 -
 .../viewer-wicket-excel/_adoc/sync_examples.sh     |  39 ---------------------
 mavendeps/_adoc/examples.csv                       |   1 -
 mavendeps/_adoc/sync_examples.sh                   |  39 ---------------------
 site.yml                                           |  16 +++++++++
 sync_examples.sh                                   |   2 --
 128 files changed, 45 insertions(+), 1349 deletions(-)

diff --git a/antora/components/archdesign/examples.csv b/antora/components/archdesign/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/antora/components/archdesign/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/antora/components/archdesign/sync_examples.sh b/antora/components/archdesign/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/antora/components/archdesign/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/antora/components/mignotes/examples.csv b/antora/components/mignotes/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/antora/components/mignotes/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/antora/components/mignotes/sync_examples.sh b/antora/components/mignotes/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/antora/components/mignotes/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/antora/components/refguide/examples.csv b/antora/components/refguide/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/antora/components/refguide/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/antora/components/refguide/sync_examples.sh b/antora/components/refguide/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/antora/components/refguide/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/antora/components/relnotes/examples.csv b/antora/components/relnotes/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/antora/components/relnotes/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/antora/components/relnotes/sync_examples.sh b/antora/components/relnotes/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/antora/components/relnotes/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/antora/components/security/examples.csv b/antora/components/security/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/antora/components/security/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/antora/components/security/sync_examples.sh b/antora/components/security/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/antora/components/security/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/antora/components/testing/examples.csv b/antora/components/testing/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/antora/components/testing/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/antora/components/testing/sync_examples.sh b/antora/components/testing/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/antora/components/testing/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/antora/components/toc/examples.csv b/antora/components/toc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/antora/components/toc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/antora/components/toc/sync_examples.sh b/antora/components/toc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/antora/components/toc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/antora/components/userguide/examples.csv b/antora/components/userguide/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/antora/components/userguide/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/antora/components/userguide/sync_examples.sh b/antora/components/userguide/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/antora/components/userguide/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/applib/_adoc/examples.csv b/core/applib/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/applib/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/applib/_adoc/sync_examples.sh b/core/applib/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/applib/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/config/_adoc/examples.csv b/core/config/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/config/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/config/_adoc/sync_examples.sh b/core/config/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/config/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/plugins/jdo/_adoc/examples.csv b/core/plugins/jdo/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/plugins/jdo/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/plugins/jdo/_adoc/sync_examples.sh b/core/plugins/jdo/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/plugins/jdo/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/runtime-services/_adoc/examples.csv b/core/runtime-services/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/runtime-services/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/runtime-services/_adoc/sync_examples.sh b/core/runtime-services/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/runtime-services/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/schema/_adoc/examples.csv b/core/schema/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/schema/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/schema/_adoc/sync_examples.sh b/core/schema/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/schema/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/security/bypass/_adoc/examples.csv b/core/security/bypass/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/security/bypass/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/security/bypass/_adoc/sync_examples.sh b/core/security/bypass/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/security/bypass/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/security/shiro/_adoc/examples.csv b/core/security/shiro/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/security/shiro/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/security/shiro/_adoc/sync_examples.sh b/core/security/shiro/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/security/shiro/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/testsupport/integtestsupport/_adoc/examples.csv b/core/testsupport/integtestsupport/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/testsupport/integtestsupport/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/testsupport/integtestsupport/_adoc/sync_examples.sh b/core/testsupport/integtestsupport/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/testsupport/integtestsupport/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/testsupport/mavenplugin/_adoc/examples.csv b/core/testsupport/mavenplugin/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/testsupport/mavenplugin/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/testsupport/mavenplugin/_adoc/sync_examples.sh b/core/testsupport/mavenplugin/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/testsupport/mavenplugin/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/testsupport/unittestsupport/_adoc/examples.csv b/core/testsupport/unittestsupport/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/testsupport/unittestsupport/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/testsupport/unittestsupport/_adoc/sync_examples.sh b/core/testsupport/unittestsupport/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/testsupport/unittestsupport/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/viewer-restfulobjects/_adoc/examples.csv b/core/viewer-restfulobjects/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/viewer-restfulobjects/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/viewer-restfulobjects/_adoc/sync_examples.sh b/core/viewer-restfulobjects/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/viewer-restfulobjects/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/core/viewer-wicket/_adoc/examples.csv b/core/viewer-wicket/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/core/viewer-wicket/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/core/viewer-wicket/_adoc/sync_examples.sh b/core/viewer-wicket/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/core/viewer-wicket/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/examples/apps/demo/_adoc/examples.csv b/examples/apps/demo/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/examples/apps/demo/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/examples/apps/demo/_adoc/sync_examples.sh b/examples/apps/demo/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/examples/apps/demo/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/examples/apps/helloworld/_adoc/examples.csv b/examples/apps/helloworld/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/examples/apps/helloworld/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/examples/apps/helloworld/_adoc/sync_examples.sh b/examples/apps/helloworld/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/examples/apps/helloworld/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/examples/apps/simpleapp/_adoc/examples.csv b/examples/apps/simpleapp/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/examples/apps/simpleapp/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/examples/apps/simpleapp/_adoc/sync_examples.sh b/examples/apps/simpleapp/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/examples/apps/simpleapp/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/examples/smoketests/_adoc/examples.csv b/examples/smoketests/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/examples/smoketests/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/examples/smoketests/_adoc/sync_examples.sh b/examples/smoketests/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/examples/smoketests/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/extensions/asciidoc/_adoc/examples.csv b/extensions/asciidoc/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/extensions/asciidoc/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/extensions/asciidoc/_adoc/sync_examples.sh b/extensions/asciidoc/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/extensions/asciidoc/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/extensions/fixtures/_adoc/examples.csv b/extensions/fixtures/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/extensions/fixtures/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/extensions/fixtures/_adoc/sync_examples.sh b/extensions/fixtures/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/extensions/fixtures/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/extensions/incubator/_adoc/examples.csv b/extensions/incubator/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/extensions/incubator/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/extensions/incubator/_adoc/sync_examples.sh b/extensions/incubator/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/extensions/incubator/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/extensions/markdown/_adoc/examples.csv b/extensions/markdown/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/extensions/markdown/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/extensions/markdown/_adoc/sync_examples.sh b/extensions/markdown/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/extensions/markdown/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/extensions/secman/_adoc/examples.csv b/extensions/secman/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/extensions/secman/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/extensions/secman/_adoc/modules/ROOT/nav.adoc b/extensions/secman/_adoc/modules/ROOT/nav.adoc
index a4a9a63..024cb04 100644
--- a/extensions/secman/_adoc/modules/ROOT/nav.adoc
+++ b/extensions/secman/_adoc/modules/ROOT/nav.adoc
@@ -1,6 +1 @@
-* xref:ext-secman:ROOT:about.adoc[SecMan (extension)]
-** xref:ext-secman:api:about.adoc[API]
-** xref:ext-secman:model:about.adoc[Model]
-** xref:ext-secman:realm-shiro:about.adoc[Realm (for Shiro)]
-** xref:ext-secman:persistence-jdo:about.adoc[JDO Persistence]
-** xref:ext-secman:encryption-jbcrypt:about.adoc[JBCrypt Encryption]
+include::ext-secman:ROOT:partial$component-nav.adoc[]
\ No newline at end of file
diff --git a/extensions/secman/_adoc/modules/ROOT/partials/component-nav.adoc b/extensions/secman/_adoc/modules/ROOT/partials/component-nav.adoc
new file mode 100644
index 0000000..0059e00
--- /dev/null
+++ b/extensions/secman/_adoc/modules/ROOT/partials/component-nav.adoc
@@ -0,0 +1,7 @@
+include::ext-secman:ROOT:partial$module-nav.adoc[]
+include::ext-secman:api:partial$module-nav.adoc[]
+include::ext-secman:model:partial$module-nav.adoc[]
+include::ext-secman:realm-shiro:partial$module-nav.adoc[]
+include::ext-secman:persistence-jdo:partial$module-nav.adoc[]
+include::ext-secman:encryption-jbcrypt:partial$module-nav.adoc[]
+
diff --git a/extensions/secman/_adoc/modules/ROOT/partials/module-nav.adoc b/extensions/secman/_adoc/modules/ROOT/partials/module-nav.adoc
new file mode 100644
index 0000000..0e3414c
--- /dev/null
+++ b/extensions/secman/_adoc/modules/ROOT/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:ext-secman:ROOT:about.adoc[SecMan (extension)]
diff --git a/extensions/secman/_adoc/modules/api/nav.adoc b/extensions/secman/_adoc/modules/api/nav.adoc
deleted file mode 100644
index 47365c7..0000000
--- a/extensions/secman/_adoc/modules/api/nav.adoc
+++ /dev/null
@@ -1 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
\ No newline at end of file
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/nav.adoc b/extensions/secman/_adoc/modules/encryption-jbcrypt/nav.adoc
deleted file mode 100644
index 2eb3605..0000000
--- a/extensions/secman/_adoc/modules/encryption-jbcrypt/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security:security-bypass:partial$nav.adoc[]
-include::security:security-shiro:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/extensions/secman/_adoc/modules/model/nav.adoc b/extensions/secman/_adoc/modules/model/nav.adoc
deleted file mode 100644
index 2eb3605..0000000
--- a/extensions/secman/_adoc/modules/model/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security:security-bypass:partial$nav.adoc[]
-include::security:security-shiro:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/nav.adoc b/extensions/secman/_adoc/modules/persistence-jdo/nav.adoc
deleted file mode 100644
index 2eb3605..0000000
--- a/extensions/secman/_adoc/modules/persistence-jdo/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security:security-bypass:partial$nav.adoc[]
-include::security:security-shiro:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/extensions/secman/_adoc/modules/realm-shiro/nav.adoc b/extensions/secman/_adoc/modules/realm-shiro/nav.adoc
deleted file mode 100644
index 2eb3605..0000000
--- a/extensions/secman/_adoc/modules/realm-shiro/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security:security-bypass:partial$nav.adoc[]
-include::security:security-shiro:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/extensions/secman/_adoc/sync_examples.sh b/extensions/secman/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/extensions/secman/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/extensions/secman/api/_adoc/antora.yml b/extensions/secman/api/_adoc/antora.yml
new file mode 100644
index 0000000..f7ad611
--- /dev/null
+++ b/extensions/secman/api/_adoc/antora.yml
@@ -0,0 +1,2 @@
+name: ext-secman
+version: master
diff --git a/extensions/secman/_adoc/modules/realm-shiro/_attributes.adoc b/extensions/secman/api/_adoc/modules/api/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/_attributes.adoc
rename to extensions/secman/api/_adoc/modules/api/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/realm-shiro/images/.gitkeep b/extensions/secman/api/_adoc/modules/api/attachments/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/images/.gitkeep
rename to extensions/secman/api/_adoc/modules/api/attachments/.gitkeep
diff --git a/extensions/secman/_adoc/modules/realm-shiro/examples/.gitkeep b/extensions/secman/api/_adoc/modules/api/examples/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/examples/.gitkeep
rename to extensions/secman/api/_adoc/modules/api/examples/.gitkeep
diff --git a/extensions/secman/_adoc/modules/realm-shiro/attachments/.gitkeep b/extensions/secman/api/_adoc/modules/api/images/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/attachments/.gitkeep
rename to extensions/secman/api/_adoc/modules/api/images/.gitkeep
diff --git a/extensions/secman/api/_adoc/modules/api/nav.adoc b/extensions/secman/api/_adoc/modules/api/nav.adoc
new file mode 100644
index 0000000..024cb04
--- /dev/null
+++ b/extensions/secman/api/_adoc/modules/api/nav.adoc
@@ -0,0 +1 @@
+include::ext-secman:ROOT:partial$component-nav.adoc[]
\ No newline at end of file
diff --git a/extensions/secman/_adoc/modules/realm-shiro/partials/_attributes.adoc b/extensions/secman/api/_adoc/modules/api/pages/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/partials/_attributes.adoc
rename to extensions/secman/api/_adoc/modules/api/pages/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/api/pages/about.adoc b/extensions/secman/api/_adoc/modules/api/pages/about.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/api/pages/about.adoc
rename to extensions/secman/api/_adoc/modules/api/pages/about.adoc
diff --git a/extensions/secman/_adoc/modules/realm-shiro/pages/_attributes.adoc b/extensions/secman/api/_adoc/modules/api/partials/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/pages/_attributes.adoc
rename to extensions/secman/api/_adoc/modules/api/partials/_attributes.adoc
diff --git a/extensions/secman/api/_adoc/modules/api/partials/module-nav.adoc b/extensions/secman/api/_adoc/modules/api/partials/module-nav.adoc
new file mode 100644
index 0000000..9fb75bc
--- /dev/null
+++ b/extensions/secman/api/_adoc/modules/api/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:ext-secman:api:about.adoc[API]
diff --git a/extensions/secman/encryption-jbcrypt/_adoc/antora.yml b/extensions/secman/encryption-jbcrypt/_adoc/antora.yml
new file mode 100644
index 0000000..f7ad611
--- /dev/null
+++ b/extensions/secman/encryption-jbcrypt/_adoc/antora.yml
@@ -0,0 +1,2 @@
+name: ext-secman
+version: master
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/_attributes.adoc b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/persistence-jdo/_attributes.adoc
rename to extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/images/.gitkeep b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/attachments/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/persistence-jdo/images/.gitkeep
rename to extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/attachments/.gitkeep
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/examples/.gitkeep b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/examples/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/persistence-jdo/examples/.gitkeep
rename to extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/examples/.gitkeep
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/attachments/.gitkeep b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/images/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/persistence-jdo/attachments/.gitkeep
rename to extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/images/.gitkeep
diff --git a/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/nav.adoc b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/nav.adoc
new file mode 100644
index 0000000..024cb04
--- /dev/null
+++ b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/nav.adoc
@@ -0,0 +1 @@
+include::ext-secman:ROOT:partial$component-nav.adoc[]
\ No newline at end of file
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/partials/_attributes.adoc b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/pages/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/persistence-jdo/partials/_attributes.adoc
rename to extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/pages/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/pages/about.adoc b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/pages/about.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/encryption-jbcrypt/pages/about.adoc
rename to extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/pages/about.adoc
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/pages/_attributes.adoc b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/partials/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/persistence-jdo/pages/_attributes.adoc
rename to extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/partials/_attributes.adoc
diff --git a/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/partials/module-nav.adoc b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/partials/module-nav.adoc
new file mode 100644
index 0000000..ba258e8
--- /dev/null
+++ b/extensions/secman/encryption-jbcrypt/_adoc/modules/encryption-jbcrypt/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:ext-secman:encryption-jbcrypt:about.adoc[JBCrypt Encryption]
diff --git a/extensions/secman/model/_adoc/antora.yml b/extensions/secman/model/_adoc/antora.yml
new file mode 100644
index 0000000..f7ad611
--- /dev/null
+++ b/extensions/secman/model/_adoc/antora.yml
@@ -0,0 +1,2 @@
+name: ext-secman
+version: master
diff --git a/extensions/secman/_adoc/modules/model/_attributes.adoc b/extensions/secman/model/_adoc/modules/model/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/model/_attributes.adoc
rename to extensions/secman/model/_adoc/modules/model/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/model/images/.gitkeep b/extensions/secman/model/_adoc/modules/model/attachments/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/model/images/.gitkeep
rename to extensions/secman/model/_adoc/modules/model/attachments/.gitkeep
diff --git a/extensions/secman/_adoc/modules/model/examples/.gitkeep b/extensions/secman/model/_adoc/modules/model/examples/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/model/examples/.gitkeep
rename to extensions/secman/model/_adoc/modules/model/examples/.gitkeep
diff --git a/extensions/secman/_adoc/modules/model/attachments/.gitkeep b/extensions/secman/model/_adoc/modules/model/images/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/model/attachments/.gitkeep
rename to extensions/secman/model/_adoc/modules/model/images/.gitkeep
diff --git a/extensions/secman/model/_adoc/modules/model/nav.adoc b/extensions/secman/model/_adoc/modules/model/nav.adoc
new file mode 100644
index 0000000..024cb04
--- /dev/null
+++ b/extensions/secman/model/_adoc/modules/model/nav.adoc
@@ -0,0 +1 @@
+include::ext-secman:ROOT:partial$component-nav.adoc[]
\ No newline at end of file
diff --git a/extensions/secman/_adoc/modules/model/partials/_attributes.adoc b/extensions/secman/model/_adoc/modules/model/pages/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/model/partials/_attributes.adoc
rename to extensions/secman/model/_adoc/modules/model/pages/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/model/pages/about.adoc b/extensions/secman/model/_adoc/modules/model/pages/about.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/model/pages/about.adoc
rename to extensions/secman/model/_adoc/modules/model/pages/about.adoc
diff --git a/extensions/secman/_adoc/modules/model/pages/_attributes.adoc b/extensions/secman/model/_adoc/modules/model/partials/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/model/pages/_attributes.adoc
rename to extensions/secman/model/_adoc/modules/model/partials/_attributes.adoc
diff --git a/extensions/secman/model/_adoc/modules/model/partials/module-nav.adoc b/extensions/secman/model/_adoc/modules/model/partials/module-nav.adoc
new file mode 100644
index 0000000..b35651d
--- /dev/null
+++ b/extensions/secman/model/_adoc/modules/model/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:ext-secman:model:about.adoc[Model]
diff --git a/extensions/secman/persistence-jdo/_adoc/antora.yml b/extensions/secman/persistence-jdo/_adoc/antora.yml
new file mode 100644
index 0000000..f7ad611
--- /dev/null
+++ b/extensions/secman/persistence-jdo/_adoc/antora.yml
@@ -0,0 +1,2 @@
+name: ext-secman
+version: master
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/_attributes.adoc b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/encryption-jbcrypt/_attributes.adoc
rename to extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/images/.gitkeep b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/attachments/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/encryption-jbcrypt/images/.gitkeep
rename to extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/attachments/.gitkeep
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/examples/.gitkeep b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/examples/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/encryption-jbcrypt/examples/.gitkeep
rename to extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/examples/.gitkeep
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/attachments/.gitkeep b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/images/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/encryption-jbcrypt/attachments/.gitkeep
rename to extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/images/.gitkeep
diff --git a/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/nav.adoc b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/nav.adoc
new file mode 100644
index 0000000..024cb04
--- /dev/null
+++ b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/nav.adoc
@@ -0,0 +1 @@
+include::ext-secman:ROOT:partial$component-nav.adoc[]
\ No newline at end of file
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/partials/_attributes.adoc b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/pages/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/encryption-jbcrypt/partials/_attributes.adoc
rename to extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/pages/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/pages/about.adoc b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/pages/about.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/persistence-jdo/pages/about.adoc
rename to extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/pages/about.adoc
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/pages/_attributes.adoc b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/partials/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/encryption-jbcrypt/pages/_attributes.adoc
rename to extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/partials/_attributes.adoc
diff --git a/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/partials/module-nav.adoc b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/partials/module-nav.adoc
new file mode 100644
index 0000000..8e520ac
--- /dev/null
+++ b/extensions/secman/persistence-jdo/_adoc/modules/persistence-jdo/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:ext-secman:persistence-jdo:about.adoc[JDO Persistence]
diff --git a/extensions/secman/realm-shiro/_adoc/antora.yml b/extensions/secman/realm-shiro/_adoc/antora.yml
new file mode 100644
index 0000000..f7ad611
--- /dev/null
+++ b/extensions/secman/realm-shiro/_adoc/antora.yml
@@ -0,0 +1,2 @@
+name: ext-secman
+version: master
diff --git a/extensions/secman/_adoc/modules/api/_attributes.adoc b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/api/_attributes.adoc
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/api/images/.gitkeep b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/attachments/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/api/images/.gitkeep
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/attachments/.gitkeep
diff --git a/extensions/secman/_adoc/modules/api/examples/.gitkeep b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/examples/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/api/examples/.gitkeep
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/examples/.gitkeep
diff --git a/extensions/secman/_adoc/modules/api/attachments/.gitkeep b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/images/.gitkeep
similarity index 100%
rename from extensions/secman/_adoc/modules/api/attachments/.gitkeep
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/images/.gitkeep
diff --git a/extensions/secman/_adoc/modules/realm-shiro/images/configure-shiro-to-use-isisaddons-security-module-realm-with-delegate-realm.PNG b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/images/configure-shiro-to-use-isisaddons-security-module-realm-with-delegate-realm.PNG
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/images/configure-shiro-to-use-isisaddons-security-module-realm-with-delegate-realm.PNG
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/images/configure-shiro-to-use-isisaddons-security-module-realm-with-delegate-realm.PNG
diff --git a/extensions/secman/_adoc/modules/realm-shiro/images/configure-shiro-to-use-isisaddons-security-module-realm.PNG b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/images/configure-shiro-to-use-isisaddons-security-module-realm.PNG
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/images/configure-shiro-to-use-isisaddons-security-module-realm.PNG
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/images/configure-shiro-to-use-isisaddons-security-module-realm.PNG
diff --git a/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/nav.adoc b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/nav.adoc
new file mode 100644
index 0000000..024cb04
--- /dev/null
+++ b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/nav.adoc
@@ -0,0 +1 @@
+include::ext-secman:ROOT:partial$component-nav.adoc[]
\ No newline at end of file
diff --git a/extensions/secman/_adoc/modules/api/partials/_attributes.adoc b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/pages/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/api/partials/_attributes.adoc
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/pages/_attributes.adoc
diff --git a/extensions/secman/_adoc/modules/realm-shiro/pages/about.adoc b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/pages/about.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/realm-shiro/pages/about.adoc
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/pages/about.adoc
diff --git a/extensions/secman/_adoc/modules/api/pages/_attributes.adoc b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/partials/_attributes.adoc
similarity index 100%
rename from extensions/secman/_adoc/modules/api/pages/_attributes.adoc
rename to extensions/secman/realm-shiro/_adoc/modules/realm-shiro/partials/_attributes.adoc
diff --git a/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/partials/module-nav.adoc b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/partials/module-nav.adoc
new file mode 100644
index 0000000..4e94a7e
--- /dev/null
+++ b/extensions/secman/realm-shiro/_adoc/modules/realm-shiro/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:ext-secman:realm-shiro:about.adoc[Realm (for Shiro)]
diff --git a/extensions/specsupport/_adoc/examples.csv b/extensions/specsupport/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/extensions/specsupport/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/extensions/specsupport/_adoc/sync_examples.sh b/extensions/specsupport/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/extensions/specsupport/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/extensions/sse/_adoc/examples.csv b/extensions/sse/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/extensions/sse/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/extensions/sse/_adoc/sync_examples.sh b/extensions/sse/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/extensions/sse/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/extensions/viewer-wicket-excel/_adoc/examples.csv b/extensions/viewer-wicket-excel/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/extensions/viewer-wicket-excel/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/extensions/viewer-wicket-excel/_adoc/sync_examples.sh b/extensions/viewer-wicket-excel/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/extensions/viewer-wicket-excel/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/mavendeps/_adoc/examples.csv b/mavendeps/_adoc/examples.csv
deleted file mode 100644
index 5d5804b..0000000
--- a/mavendeps/_adoc/examples.csv
+++ /dev/null
@@ -1 +0,0 @@
-#file,source,target
diff --git a/mavendeps/_adoc/sync_examples.sh b/mavendeps/_adoc/sync_examples.sh
deleted file mode 100644
index 5260cd7..0000000
--- a/mavendeps/_adoc/sync_examples.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-SCRIPT=$(readlink -f "$0")
-SCRIPTPATH=$(dirname "$SCRIPT")
-if [ $# -ne 1 ]; then
-    FILELIST=$SCRIPTPATH/examples.csv
-else
-    FILELIST=$1
-fi
-FILELISTFQN=$(readlink -f $FILELIST)
-DIRNAME=$(dirname $FILELISTFQN)
-BASENAME=$(basename $FILELISTFQN)
-
-cd $DIRNAME >/dev/null 2>&1
-cat $BASENAME | tail +2 | grep -v ^# | while read LINE
-do
-    FILE=$(echo $LINE | awk -F, '{print $1}' | awk '{$1=$1;print}')
-    F2=$(echo $LINE | awk -F, '{print $2}' | awk '{$1=$1;print}')
-    F3=$(echo $LINE | awk -F, '{print $3}' | awk '{$1=$1;print}')
-    SOURCEFQN=$DIRNAME/$F2/$FILE
-    TARGETDIR=$DIRNAME/$F3
-    TARGETFQN=$DIRNAME/$F3/$FILE
-
-    echo "SOURCEFQN: $SOURCEFQN"
-
-    if [ -f "$SOURCEFQN" ]
-    then
-
-        if [ -f "$TARGETFQN" ]
-        then
-            rm $TARGETFQN
-        fi
-        mkdir -p $TARGETDIR
-        cp $SOURCEFQN $TARGETFQN
-    else
-        echo "- does not exist ($SOURCEFQN) " >&2
-        exit 1
-    fi
-done
-cd - >/dev/null 2>&1
\ No newline at end of file
diff --git a/site.yml b/site.yml
index 97953ab..6b1f569 100644
--- a/site.yml
+++ b/site.yml
@@ -103,9 +103,25 @@ content:
     - url: .
       start_path: core/security/shiro/_adoc
       branches: HEAD
+
     - url: .
       branches: HEAD
       start_path: extensions/secman/_adoc
+    - url: .
+      branches: HEAD
+      start_path: extensions/secman/api/_adoc
+    - url: .
+      branches: HEAD
+      start_path: extensions/secman/encryption-jbcrypt/_adoc
+    - url: .
+      branches: HEAD
+      start_path: extensions/secman/model/_adoc
+    - url: .
+      branches: HEAD
+      start_path: extensions/secman/persistence-jdo/_adoc
+    - url: .
+      branches: HEAD
+      start_path: extensions/secman/realm-shiro/_adoc
 
     - url: .
       branches: HEAD
diff --git a/sync_examples.sh b/sync_examples.sh
deleted file mode 100644
index 39c6601..0000000
--- a/sync_examples.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/env bash
-sh antora/docs/sync_examples.sh


[isis] 01/04: ISIS-2062: reorg security guide to use distributed component pattern

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

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

commit a707a03f963c6aff8e53896a918c10a167bc648b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 8 08:18:35 2019 +0100

    ISIS-2062: reorg security guide to use distributed component pattern
---
 .../api/_adoc => antora/components/security}/antora.yml     |   0
 .../api/_adoc => antora/components/security}/examples.csv   |   0
 .../components/security/modules/ROOT}/_attributes.adoc      |   0
 .../modules/ROOT/attachments/security-apis-impl.pptx        | Bin
 .../components/security/modules/ROOT}/examples/.gitkeep     |   0
 .../components/security/modules/ROOT/images}/.gitkeep       |   0
 antora/components/security/modules/ROOT/nav.adoc            |   1 +
 .../security/modules/ROOT/pages}/_attributes.adoc           |   0
 .../components/security}/modules/ROOT/pages/about.adoc      |   0
 .../security}/modules/ROOT/pages/api-for-applications.adoc  |   0
 .../security}/modules/ROOT/pages/usage-by-isis-viewers.adoc |   0
 .../security/modules/ROOT/partials}/_attributes.adoc        |   0
 .../security/modules/ROOT/partials/component-nav.adoc       |   6 ++++++
 .../security/modules/ROOT/partials/module-nav.adoc          |   1 -
 .../security/modules/ROOT/partials/module-nav2.adoc         |   3 +++
 .../_adoc => antora/components/security}/sync_examples.sh   |   0
 .../btb/pages/deployment/externalized-configuration.adoc    |   2 +-
 antora/components/userguide/modules/btb/pages/web-xml.adoc  |   2 +-
 core/security/api/_adoc/modules/ROOT/nav.adoc               |   5 -----
 core/security/api/_adoc/modules/ROOT/partials/nav2.adoc     |   3 ---
 core/security/bypass/_adoc/antora.yml                       |   6 +-----
 core/security/bypass/_adoc/modules/ROOT/nav.adoc            |   5 -----
 core/security/bypass/_adoc/modules/ROOT/partials/nav.adoc   |   3 ---
 .../_adoc/modules/security-bypass}/_attributes.adoc         |   0
 .../_adoc/modules/security-bypass/attachments}/.gitkeep     |   0
 .../_adoc/modules/security-bypass/examples}/.gitkeep        |   0
 .../security-apis-impl/configure-isis-to-use-bypass.PNG     | Bin
 core/security/bypass/_adoc/modules/security-bypass/nav.adoc |   1 +
 .../_adoc/modules/security-bypass/pages}/_attributes.adoc   |   0
 .../modules/{ROOT => security-bypass}/pages/about.adoc      |   0
 .../pages/configuring-isis-to-use-bypass.adoc               |   0
 .../modules/security-bypass/partials}/_attributes.adoc      |   0
 .../_adoc/modules/security-bypass/partials/module-nav.adoc  |   3 +++
 core/security/shiro/_adoc/antora.yml                        |   6 +-----
 core/security/shiro/_adoc/modules/ROOT/nav.adoc             |   5 -----
 core/security/shiro/_adoc/modules/ROOT/partials/nav.adoc    |  10 ----------
 core/security/shiro/_adoc/modules/realm-jdbc/nav.adoc       |   5 -----
 core/security/shiro/_adoc/modules/realm-ldap/nav.adoc       |   5 -----
 .../{ROOT => security-shiro-realm-jdbc}/_attributes.adoc    |   0
 .../attachments}/.gitkeep                                   |   0
 .../examples}/.gitkeep                                      |   0
 .../images/configure-shiro-to-use-custom-jdbc-realm.png     | Bin
 .../shiro/_adoc/modules/security-shiro-realm-jdbc/nav.adoc  |   1 +
 .../pages}/_attributes.adoc                                 |   0
 .../pages/about.adoc                                        |   0
 .../partials}/_attributes.adoc                              |   0
 .../security-shiro-realm-jdbc/partials/module-nav.adoc      |   1 +
 .../modules/security-shiro-realm-ldap}/_attributes.adoc     |   0
 .../modules/security-shiro-realm-ldap/attachments}/.gitkeep |   0
 .../modules/security-shiro-realm-ldap/examples}/.gitkeep    |   0
 .../images/activeds-ldap-groups.png                         | Bin
 .../images/activeds-ldap-mojo-partition.png                 | Bin
 .../images/activeds-ldap-mojo-root-dse.png                  | Bin
 .../images/activeds-ldap-sasl-authentication.png            | Bin
 .../images/activeds-ldap-users.png                          | Bin
 .../images/configure-shiro-to-use-isis-ldap-realm.PNG       | Bin
 .../shiro/_adoc/modules/security-shiro-realm-ldap/nav.adoc  |   1 +
 .../security-shiro-realm-ldap/pages}/_attributes.adoc       |   0
 .../pages/about.adoc                                        |   0
 .../security-shiro-realm-ldap/partials}/_attributes.adoc    |   0
 .../security-shiro-realm-ldap/partials/module-nav.adoc      |   1 +
 .../_adoc/modules/security-shiro}/_attributes.adoc          |   0
 .../_adoc/modules/security-shiro/attachments}/.gitkeep      |   0
 .../_adoc/modules/security-shiro}/examples/.gitkeep         |   0
 .../configuring-shiro/ldap/activeds-ldap-groups.png         | Bin
 .../configuring-shiro/ldap/activeds-ldap-mojo-partition.png | Bin
 .../configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png  | Bin
 .../ldap/activeds-ldap-sasl-authentication.png              | Bin
 .../configuring-shiro/ldap/activeds-ldap-users.png          | Bin
 .../security-apis-impl/configure-isis-to-use-shiro.png      | Bin
 .../configure-shiro-to-use-custom-jdbc-realm.png            | Bin
 .../security-apis-impl/configure-shiro-to-use-ini-realm.PNG | Bin
 .../configure-shiro-to-use-isis-ldap-realm.PNG              | Bin
 core/security/shiro/_adoc/modules/security-shiro/nav.adoc   |   1 +
 .../_adoc/modules/security-shiro/pages}/_attributes.adoc    |   0
 .../_adoc/modules/{ROOT => security-shiro}/pages/about.adoc |   0
 .../pages/configuring-isis-to-use-shiro.adoc                |   0
 .../pages/enhanced-wildcard-permission.adoc                 |   2 +-
 .../modules/{ROOT => security-shiro}/pages/ini-realm.adoc   |   0
 .../modules/{ROOT => security-shiro}/pages/run-as.adoc      |   0
 .../{ROOT => security-shiro}/pages/shiro-caching.adoc       |   0
 .../_adoc/modules/security-shiro/partials}/_attributes.adoc |   0
 .../_adoc/modules/security-shiro/partials/module-nav.adoc   |  10 ++++++++++
 extensions/secman/_adoc/modules/ROOT/nav.adoc               |  11 ++++++-----
 extensions/secman/_adoc/modules/ROOT/partials/nav.adoc      |   8 --------
 extensions/secman/_adoc/modules/encryption-jbcrypt/nav.adoc |   4 ++--
 extensions/secman/_adoc/modules/model/nav.adoc              |   4 ++--
 extensions/secman/_adoc/modules/persistence-jdo/nav.adoc    |   4 ++--
 extensions/secman/_adoc/modules/realm-shiro/nav.adoc        |   4 ++--
 site.yml                                                    |   2 +-
 90 files changed, 49 insertions(+), 77 deletions(-)

diff --git a/core/security/api/_adoc/antora.yml b/antora/components/security/antora.yml
similarity index 100%
rename from core/security/api/_adoc/antora.yml
rename to antora/components/security/antora.yml
diff --git a/core/security/api/_adoc/examples.csv b/antora/components/security/examples.csv
similarity index 100%
rename from core/security/api/_adoc/examples.csv
rename to antora/components/security/examples.csv
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/_attributes.adoc b/antora/components/security/modules/ROOT/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/_attributes.adoc
rename to antora/components/security/modules/ROOT/_attributes.adoc
diff --git a/core/security/api/_adoc/modules/ROOT/attachments/security-apis-impl.pptx b/antora/components/security/modules/ROOT/attachments/security-apis-impl.pptx
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/attachments/security-apis-impl.pptx
rename to antora/components/security/modules/ROOT/attachments/security-apis-impl.pptx
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/examples/.gitkeep b/antora/components/security/modules/ROOT/examples/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/examples/.gitkeep
rename to antora/components/security/modules/ROOT/examples/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/attachments/.gitkeep b/antora/components/security/modules/ROOT/images/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/attachments/.gitkeep
rename to antora/components/security/modules/ROOT/images/.gitkeep
diff --git a/antora/components/security/modules/ROOT/nav.adoc b/antora/components/security/modules/ROOT/nav.adoc
new file mode 100644
index 0000000..4ec4e15
--- /dev/null
+++ b/antora/components/security/modules/ROOT/nav.adoc
@@ -0,0 +1 @@
+include::security:ROOT:partial$component-nav.adoc[]
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/partials/_attributes.adoc b/antora/components/security/modules/ROOT/pages/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/partials/_attributes.adoc
rename to antora/components/security/modules/ROOT/pages/_attributes.adoc
diff --git a/core/security/api/_adoc/modules/ROOT/pages/about.adoc b/antora/components/security/modules/ROOT/pages/about.adoc
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/pages/about.adoc
rename to antora/components/security/modules/ROOT/pages/about.adoc
diff --git a/core/security/api/_adoc/modules/ROOT/pages/api-for-applications.adoc b/antora/components/security/modules/ROOT/pages/api-for-applications.adoc
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/pages/api-for-applications.adoc
rename to antora/components/security/modules/ROOT/pages/api-for-applications.adoc
diff --git a/core/security/api/_adoc/modules/ROOT/pages/usage-by-isis-viewers.adoc b/antora/components/security/modules/ROOT/pages/usage-by-isis-viewers.adoc
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/pages/usage-by-isis-viewers.adoc
rename to antora/components/security/modules/ROOT/pages/usage-by-isis-viewers.adoc
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/pages/_attributes.adoc b/antora/components/security/modules/ROOT/partials/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/pages/_attributes.adoc
rename to antora/components/security/modules/ROOT/partials/_attributes.adoc
diff --git a/antora/components/security/modules/ROOT/partials/component-nav.adoc b/antora/components/security/modules/ROOT/partials/component-nav.adoc
new file mode 100644
index 0000000..f968387
--- /dev/null
+++ b/antora/components/security/modules/ROOT/partials/component-nav.adoc
@@ -0,0 +1,6 @@
+include::security:ROOT:partial$module-nav.adoc[]
+include::security:security-bypass:partial$module-nav.adoc[]
+include::security:security-shiro:partial$module-nav.adoc[]
+include::security:ROOT:partial$module-nav2.adoc[]
+
+* xref:ext-secman:ROOT:about.adoc[SecMan (extension)]
diff --git a/core/security/api/_adoc/modules/ROOT/partials/nav.adoc b/antora/components/security/modules/ROOT/partials/module-nav.adoc
similarity index 99%
rename from core/security/api/_adoc/modules/ROOT/partials/nav.adoc
rename to antora/components/security/modules/ROOT/partials/module-nav.adoc
index 8c6b70b..486690a 100644
--- a/core/security/api/_adoc/modules/ROOT/partials/nav.adoc
+++ b/antora/components/security/modules/ROOT/partials/module-nav.adoc
@@ -1,5 +1,4 @@
 * xref:security:ROOT:about.adoc[Security]
-
 ** xref:security:ROOT:api-for-applications.adoc[API for Applications]
 
 
diff --git a/antora/components/security/modules/ROOT/partials/module-nav2.adoc b/antora/components/security/modules/ROOT/partials/module-nav2.adoc
new file mode 100644
index 0000000..f3af975
--- /dev/null
+++ b/antora/components/security/modules/ROOT/partials/module-nav2.adoc
@@ -0,0 +1,3 @@
+
+* xref:security:ROOT:usage-by-isis-viewers.adoc[Usage by Isis Viewers]
+
diff --git a/core/security/api/_adoc/sync_examples.sh b/antora/components/security/sync_examples.sh
similarity index 100%
rename from core/security/api/_adoc/sync_examples.sh
rename to antora/components/security/sync_examples.sh
diff --git a/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc b/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
index 96835e5..59655cf 100644
--- a/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
+++ b/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
@@ -75,7 +75,7 @@ Note that running the app using Apache Isis' `org.apache.isis.WebServer` bootstr
 
 == Shiro Config
 
-If using Apache Isis' xref:security-shiro:ROOT:configuring-isis-to-use-shiro.adoc[Shiro integration] for authentication and/or authorization, note that it reads from the `shiro.ini` configuration file.
+If using Apache Isis' xref:security:security-shiro:configuring-isis-to-use-shiro.adoc[Shiro integration] for authentication and/or authorization, note that it reads from the `shiro.ini` configuration file.
 By default this also resides in `WEB-INF`.
 
 Similar to Apache Isis, Shiro lets this configuration directory be altered, by specifying the `shiroConfigLocations` context parameter.
diff --git a/antora/components/userguide/modules/btb/pages/web-xml.adoc b/antora/components/userguide/modules/btb/pages/web-xml.adoc
index e799bf6..e480792 100644
--- a/antora/components/userguide/modules/btb/pages/web-xml.adoc
+++ b/antora/components/userguide/modules/btb/pages/web-xml.adoc
@@ -13,7 +13,7 @@ You can deploy both of these concurrently, or deploy just the Wicket viewer, or
 The configuration in `web.xml` varies accordingly, both in terms of the servlet context listeners, filters and servlets.
 
 If you are using Apache Isis' integration with Apache Shiro (for security) then this also needs configuring in `web.xml`.
-See the xref:security-shiro:ROOT:configuring-isis-to-use-shiro.adoc[security guide] for full details on this topic.
+See the xref:security:security-shiro:configuring-isis-to-use-shiro.adoc[security guide] for full details on this topic.
 
 The servlets and filters are mapped to three main pipelines:
 
diff --git a/core/security/api/_adoc/modules/ROOT/nav.adoc b/core/security/api/_adoc/modules/ROOT/nav.adoc
deleted file mode 100644
index 40f1ea6..0000000
--- a/core/security/api/_adoc/modules/ROOT/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/core/security/api/_adoc/modules/ROOT/partials/nav2.adoc b/core/security/api/_adoc/modules/ROOT/partials/nav2.adoc
deleted file mode 100644
index 2a11f0d..0000000
--- a/core/security/api/_adoc/modules/ROOT/partials/nav2.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-** xref:security:ROOT:usage-by-isis-viewers.adoc[Usage by Isis Viewers]
-
diff --git a/core/security/bypass/_adoc/antora.yml b/core/security/bypass/_adoc/antora.yml
index 9a49270..09a6b1a 100644
--- a/core/security/bypass/_adoc/antora.yml
+++ b/core/security/bypass/_adoc/antora.yml
@@ -1,6 +1,2 @@
-name: security-bypass
-title: "Security - Bypass"
+name: security
 version: master
-start_page: ROOT:about.adoc
-nav:
-- modules/ROOT/nav.adoc
diff --git a/core/security/bypass/_adoc/modules/ROOT/nav.adoc b/core/security/bypass/_adoc/modules/ROOT/nav.adoc
deleted file mode 100644
index 40f1ea6..0000000
--- a/core/security/bypass/_adoc/modules/ROOT/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/core/security/bypass/_adoc/modules/ROOT/partials/nav.adoc b/core/security/bypass/_adoc/modules/ROOT/partials/nav.adoc
deleted file mode 100644
index 32245fa..0000000
--- a/core/security/bypass/_adoc/modules/ROOT/partials/nav.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-** Bypass Implementation
-*** xref:security-bypass:ROOT:configuring-isis-to-use-bypass.adoc[Configuring to use Bypass]
-
diff --git a/core/security/shiro/_adoc/modules/realm-jdbc/_attributes.adoc b/core/security/bypass/_adoc/modules/security-bypass/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-jdbc/_attributes.adoc
rename to core/security/bypass/_adoc/modules/security-bypass/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/realm-jdbc/examples/.gitkeep b/core/security/bypass/_adoc/modules/security-bypass/attachments/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-jdbc/examples/.gitkeep
rename to core/security/bypass/_adoc/modules/security-bypass/attachments/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/realm-jdbc/attachments/.gitkeep b/core/security/bypass/_adoc/modules/security-bypass/examples/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-jdbc/attachments/.gitkeep
rename to core/security/bypass/_adoc/modules/security-bypass/examples/.gitkeep
diff --git a/core/security/bypass/_adoc/modules/ROOT/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG b/core/security/bypass/_adoc/modules/security-bypass/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
similarity index 100%
rename from core/security/bypass/_adoc/modules/ROOT/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
rename to core/security/bypass/_adoc/modules/security-bypass/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
diff --git a/core/security/bypass/_adoc/modules/security-bypass/nav.adoc b/core/security/bypass/_adoc/modules/security-bypass/nav.adoc
new file mode 100644
index 0000000..4ec4e15
--- /dev/null
+++ b/core/security/bypass/_adoc/modules/security-bypass/nav.adoc
@@ -0,0 +1 @@
+include::security:ROOT:partial$component-nav.adoc[]
diff --git a/core/security/shiro/_adoc/modules/realm-jdbc/partials/_attributes.adoc b/core/security/bypass/_adoc/modules/security-bypass/pages/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-jdbc/partials/_attributes.adoc
rename to core/security/bypass/_adoc/modules/security-bypass/pages/_attributes.adoc
diff --git a/core/security/bypass/_adoc/modules/ROOT/pages/about.adoc b/core/security/bypass/_adoc/modules/security-bypass/pages/about.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/ROOT/pages/about.adoc
rename to core/security/bypass/_adoc/modules/security-bypass/pages/about.adoc
diff --git a/core/security/bypass/_adoc/modules/ROOT/pages/configuring-isis-to-use-bypass.adoc b/core/security/bypass/_adoc/modules/security-bypass/pages/configuring-isis-to-use-bypass.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/ROOT/pages/configuring-isis-to-use-bypass.adoc
rename to core/security/bypass/_adoc/modules/security-bypass/pages/configuring-isis-to-use-bypass.adoc
diff --git a/core/security/shiro/_adoc/modules/realm-jdbc/pages/_attributes.adoc b/core/security/bypass/_adoc/modules/security-bypass/partials/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-jdbc/pages/_attributes.adoc
rename to core/security/bypass/_adoc/modules/security-bypass/partials/_attributes.adoc
diff --git a/core/security/bypass/_adoc/modules/security-bypass/partials/module-nav.adoc b/core/security/bypass/_adoc/modules/security-bypass/partials/module-nav.adoc
new file mode 100644
index 0000000..b8eaaa1
--- /dev/null
+++ b/core/security/bypass/_adoc/modules/security-bypass/partials/module-nav.adoc
@@ -0,0 +1,3 @@
+* Bypass Implementation
+** xref:security:security-bypass:configuring-isis-to-use-bypass.adoc[Configuring to use Bypass]
+
diff --git a/core/security/shiro/_adoc/antora.yml b/core/security/shiro/_adoc/antora.yml
index 87adb67..09a6b1a 100644
--- a/core/security/shiro/_adoc/antora.yml
+++ b/core/security/shiro/_adoc/antora.yml
@@ -1,6 +1,2 @@
-name: security-shiro
-title: "Security - Shiro"
+name: security
 version: master
-start_page: ROOT:about.adoc
-nav:
-- modules/ROOT/nav.adoc
diff --git a/core/security/shiro/_adoc/modules/ROOT/nav.adoc b/core/security/shiro/_adoc/modules/ROOT/nav.adoc
deleted file mode 100644
index 40f1ea6..0000000
--- a/core/security/shiro/_adoc/modules/ROOT/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/core/security/shiro/_adoc/modules/ROOT/partials/nav.adoc b/core/security/shiro/_adoc/modules/ROOT/partials/nav.adoc
deleted file mode 100644
index d9fc298..0000000
--- a/core/security/shiro/_adoc/modules/ROOT/partials/nav.adoc
+++ /dev/null
@@ -1,10 +0,0 @@
-** Shiro Implementation
-
-*** xref:security-shiro:ROOT:configuring-isis-to-use-shiro.adoc[Configuring to use Shiro]
-*** Realms
-**** xref:security-shiro:ROOT:ini-realm.adoc[INI Realm]
-**** xref:security-shiro:realm-jdbc:about.adoc[JDBC Realm]
-**** xref:security-shiro:realm-ldap:about.adoc[LDAP Realm]
-*** xref:security-shiro:ROOT:enhanced-wildcard-permission.adoc[Enhanced Wildcard Permissions]
-*** xref:security-shiro:ROOT:run-as.adoc[Run As]
-*** xref:security-shiro:ROOT:shiro-caching.adoc[Shiro Caching]
diff --git a/core/security/shiro/_adoc/modules/realm-jdbc/nav.adoc b/core/security/shiro/_adoc/modules/realm-jdbc/nav.adoc
deleted file mode 100644
index 40f1ea6..0000000
--- a/core/security/shiro/_adoc/modules/realm-jdbc/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/nav.adoc b/core/security/shiro/_adoc/modules/realm-ldap/nav.adoc
deleted file mode 100644
index 40f1ea6..0000000
--- a/core/security/shiro/_adoc/modules/realm-ldap/nav.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
diff --git a/core/security/shiro/_adoc/modules/ROOT/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/ROOT/examples/.gitkeep b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/attachments/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/examples/.gitkeep
rename to core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/attachments/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/ROOT/attachments/.gitkeep b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/examples/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/attachments/.gitkeep
rename to core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/examples/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/realm-jdbc/images/configure-shiro-to-use-custom-jdbc-realm.png b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/images/configure-shiro-to-use-custom-jdbc-realm.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-jdbc/images/configure-shiro-to-use-custom-jdbc-realm.png
rename to core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/images/configure-shiro-to-use-custom-jdbc-realm.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/nav.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/nav.adoc
new file mode 100644
index 0000000..4ec4e15
--- /dev/null
+++ b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/nav.adoc
@@ -0,0 +1 @@
+include::security:ROOT:partial$component-nav.adoc[]
diff --git a/core/security/shiro/_adoc/modules/ROOT/partials/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/pages/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/partials/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/pages/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/realm-jdbc/pages/about.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/pages/about.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-jdbc/pages/about.adoc
rename to core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/pages/about.adoc
diff --git a/core/security/shiro/_adoc/modules/ROOT/pages/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/pages/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/module-nav.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/module-nav.adoc
new file mode 100644
index 0000000..c9d2bc7
--- /dev/null
+++ b/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/module-nav.adoc
@@ -0,0 +1 @@
+// this module's pages are referenced by security-shiro module
\ No newline at end of file
diff --git a/core/security/bypass/_adoc/modules/ROOT/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/_attributes.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/ROOT/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/_attributes.adoc
diff --git a/core/security/bypass/_adoc/modules/ROOT/examples/.gitkeep b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/attachments/.gitkeep
similarity index 100%
rename from core/security/bypass/_adoc/modules/ROOT/examples/.gitkeep
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/attachments/.gitkeep
diff --git a/core/security/bypass/_adoc/modules/ROOT/attachments/.gitkeep b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/examples/.gitkeep
similarity index 100%
rename from core/security/bypass/_adoc/modules/ROOT/attachments/.gitkeep
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/examples/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-groups.png b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-groups.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-groups.png
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-groups.png
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-mojo-partition.png b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-mojo-partition.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-mojo-partition.png
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-mojo-partition.png
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-mojo-root-dse.png b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-mojo-root-dse.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-mojo-root-dse.png
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-mojo-root-dse.png
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-sasl-authentication.png b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-sasl-authentication.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-sasl-authentication.png
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-sasl-authentication.png
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-users.png b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-users.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/images/activeds-ldap-users.png
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-users.png
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/images/configure-shiro-to-use-isis-ldap-realm.PNG b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/configure-shiro-to-use-isis-ldap-realm.PNG
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/images/configure-shiro-to-use-isis-ldap-realm.PNG
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/configure-shiro-to-use-isis-ldap-realm.PNG
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/nav.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/nav.adoc
new file mode 100644
index 0000000..4ec4e15
--- /dev/null
+++ b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/nav.adoc
@@ -0,0 +1 @@
+include::security:ROOT:partial$component-nav.adoc[]
diff --git a/core/security/bypass/_adoc/modules/ROOT/partials/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/pages/_attributes.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/ROOT/partials/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/pages/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/realm-ldap/pages/about.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/pages/about.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/realm-ldap/pages/about.adoc
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/pages/about.adoc
diff --git a/core/security/bypass/_adoc/modules/ROOT/pages/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/_attributes.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/ROOT/pages/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/module-nav.adoc b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/module-nav.adoc
new file mode 100644
index 0000000..c9d2bc7
--- /dev/null
+++ b/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/module-nav.adoc
@@ -0,0 +1 @@
+// this module's pages are referenced by security-shiro module
\ No newline at end of file
diff --git a/core/security/api/_adoc/modules/ROOT/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro/_attributes.adoc
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/_attributes.adoc
diff --git a/core/security/api/_adoc/modules/ROOT/images/.gitkeep b/core/security/shiro/_adoc/modules/security-shiro/attachments/.gitkeep
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/images/.gitkeep
rename to core/security/shiro/_adoc/modules/security-shiro/attachments/.gitkeep
diff --git a/core/security/api/_adoc/modules/ROOT/examples/.gitkeep b/core/security/shiro/_adoc/modules/security-shiro/examples/.gitkeep
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/examples/.gitkeep
rename to core/security/shiro/_adoc/modules/security-shiro/examples/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-groups.png b/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-groups.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-groups.png
rename to core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-groups.png
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-partition.png b/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-partition.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-partition.png
rename to core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-partition.png
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png b/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png
rename to core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-sasl-authentication.png b/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-sasl-authentication.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-sasl-authentication.png
rename to core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-sasl-authentication.png
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-users.png b/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-users.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/configuration/configuring-shiro/ldap/activeds-ldap-users.png
rename to core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-users.png
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/security/security-apis-impl/configure-isis-to-use-shiro.png b/core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-isis-to-use-shiro.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/security/security-apis-impl/configure-isis-to-use-shiro.png
rename to core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-isis-to-use-shiro.png
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/security/security-apis-impl/configure-shiro-to-use-custom-jdbc-realm.png b/core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-custom-jdbc-realm.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/security/security-apis-impl/configure-shiro-to-use-custom-jdbc-realm.png
rename to core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-custom-jdbc-realm.png
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG b/core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG
rename to core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG
diff --git a/core/security/shiro/_adoc/modules/ROOT/images/security/security-apis-impl/configure-shiro-to-use-isis-ldap-realm.PNG b/core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-isis-ldap-realm.PNG
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/images/security/security-apis-impl/configure-shiro-to-use-isis-ldap-realm.PNG
rename to core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-isis-ldap-realm.PNG
diff --git a/core/security/shiro/_adoc/modules/security-shiro/nav.adoc b/core/security/shiro/_adoc/modules/security-shiro/nav.adoc
new file mode 100644
index 0000000..4ec4e15
--- /dev/null
+++ b/core/security/shiro/_adoc/modules/security-shiro/nav.adoc
@@ -0,0 +1 @@
+include::security:ROOT:partial$component-nav.adoc[]
diff --git a/core/security/api/_adoc/modules/ROOT/partials/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro/pages/_attributes.adoc
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/partials/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/pages/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/ROOT/pages/about.adoc b/core/security/shiro/_adoc/modules/security-shiro/pages/about.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/pages/about.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/pages/about.adoc
diff --git a/core/security/shiro/_adoc/modules/ROOT/pages/configuring-isis-to-use-shiro.adoc b/core/security/shiro/_adoc/modules/security-shiro/pages/configuring-isis-to-use-shiro.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/pages/configuring-isis-to-use-shiro.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/pages/configuring-isis-to-use-shiro.adoc
diff --git a/core/security/shiro/_adoc/modules/ROOT/pages/enhanced-wildcard-permission.adoc b/core/security/shiro/_adoc/modules/security-shiro/pages/enhanced-wildcard-permission.adoc
similarity index 91%
rename from core/security/shiro/_adoc/modules/ROOT/pages/enhanced-wildcard-permission.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/pages/enhanced-wildcard-permission.adoc
index 1c39205..866c46c 100644
--- a/core/security/shiro/_adoc/modules/ROOT/pages/enhanced-wildcard-permission.adoc
+++ b/core/security/shiro/_adoc/modules/security-shiro/pages/enhanced-wildcard-permission.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-If using the text-based xref:security-shiro:ROOT:ini-realm.adoc[`IniRealm`] or xref:security-shiro:realm-ldap:about.adoc[Apache Isis' LDAP realm], then note that Shiro also allows the string representation of the permissions to be mapped (resolved) to alternative `Permission` instances.
+If using the text-based xref:security:security-shiro:ini-realm.adoc[`IniRealm`] or xref:security:security-shiro-realm-ldap:about.adoc[Apache Isis' LDAP realm], then note that Shiro also allows the string representation of the permissions to be mapped (resolved) to alternative `Permission` instances.
 Apache Isis provides its own `IsisPermission` which introduces the concept of a "veto".
 
 A vetoing permission is one that prevents access to a feature, rather than grants it.
diff --git a/core/security/shiro/_adoc/modules/ROOT/pages/ini-realm.adoc b/core/security/shiro/_adoc/modules/security-shiro/pages/ini-realm.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/pages/ini-realm.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/pages/ini-realm.adoc
diff --git a/core/security/shiro/_adoc/modules/ROOT/pages/run-as.adoc b/core/security/shiro/_adoc/modules/security-shiro/pages/run-as.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/pages/run-as.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/pages/run-as.adoc
diff --git a/core/security/shiro/_adoc/modules/ROOT/pages/shiro-caching.adoc b/core/security/shiro/_adoc/modules/security-shiro/pages/shiro-caching.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/ROOT/pages/shiro-caching.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/pages/shiro-caching.adoc
diff --git a/core/security/api/_adoc/modules/ROOT/pages/_attributes.adoc b/core/security/shiro/_adoc/modules/security-shiro/partials/_attributes.adoc
similarity index 100%
rename from core/security/api/_adoc/modules/ROOT/pages/_attributes.adoc
rename to core/security/shiro/_adoc/modules/security-shiro/partials/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/partials/module-nav.adoc b/core/security/shiro/_adoc/modules/security-shiro/partials/module-nav.adoc
new file mode 100644
index 0000000..c639c7a
--- /dev/null
+++ b/core/security/shiro/_adoc/modules/security-shiro/partials/module-nav.adoc
@@ -0,0 +1,10 @@
+* Shiro Implementation
+
+** xref:security:security-shiro:configuring-isis-to-use-shiro.adoc[Configuring to use Shiro]
+** Realms
+*** xref:security:security-shiro:ini-realm.adoc[INI Realm]
+*** xref:security:security-shiro-realm-jdbc:about.adoc[JDBC Realm]
+*** xref:security:security-shiro-realm-ldap:about.adoc[LDAP Realm]
+** xref:security:security-shiro:enhanced-wildcard-permission.adoc[Enhanced Wildcard Permissions]
+** xref:security:security-shiro:run-as.adoc[Run As]
+** xref:security:security-shiro:shiro-caching.adoc[Shiro Caching]
diff --git a/extensions/secman/_adoc/modules/ROOT/nav.adoc b/extensions/secman/_adoc/modules/ROOT/nav.adoc
index 40f1ea6..a4a9a63 100644
--- a/extensions/secman/_adoc/modules/ROOT/nav.adoc
+++ b/extensions/secman/_adoc/modules/ROOT/nav.adoc
@@ -1,5 +1,6 @@
-include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
-include::ext-secman:ROOT:partial$nav.adoc[]
-include::security:ROOT:partial$nav2.adoc[]
+* xref:ext-secman:ROOT:about.adoc[SecMan (extension)]
+** xref:ext-secman:api:about.adoc[API]
+** xref:ext-secman:model:about.adoc[Model]
+** xref:ext-secman:realm-shiro:about.adoc[Realm (for Shiro)]
+** xref:ext-secman:persistence-jdo:about.adoc[JDO Persistence]
+** xref:ext-secman:encryption-jbcrypt:about.adoc[JBCrypt Encryption]
diff --git a/extensions/secman/_adoc/modules/ROOT/partials/nav.adoc b/extensions/secman/_adoc/modules/ROOT/partials/nav.adoc
deleted file mode 100644
index a676294..0000000
--- a/extensions/secman/_adoc/modules/ROOT/partials/nav.adoc
+++ /dev/null
@@ -1,8 +0,0 @@
-
-** xref:ext-secman:ROOT:about.adoc[SecMan (extension)]
-*** xref:ext-secman:api:about.adoc[API]
-*** xref:ext-secman:model:about.adoc[Model]
-*** xref:ext-secman:realm-shiro:about.adoc[Realm (for Shiro)]
-*** xref:ext-secman:persistence-jdo:about.adoc[JDO Persistence]
-*** xref:ext-secman:encryption-jbcrypt:about.adoc[JBCrypt Encryption]
-
diff --git a/extensions/secman/_adoc/modules/encryption-jbcrypt/nav.adoc b/extensions/secman/_adoc/modules/encryption-jbcrypt/nav.adoc
index 40f1ea6..2eb3605 100644
--- a/extensions/secman/_adoc/modules/encryption-jbcrypt/nav.adoc
+++ b/extensions/secman/_adoc/modules/encryption-jbcrypt/nav.adoc
@@ -1,5 +1,5 @@
 include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
+include::security:security-bypass:partial$nav.adoc[]
+include::security:security-shiro:partial$nav.adoc[]
 include::ext-secman:ROOT:partial$nav.adoc[]
 include::security:ROOT:partial$nav2.adoc[]
diff --git a/extensions/secman/_adoc/modules/model/nav.adoc b/extensions/secman/_adoc/modules/model/nav.adoc
index 40f1ea6..2eb3605 100644
--- a/extensions/secman/_adoc/modules/model/nav.adoc
+++ b/extensions/secman/_adoc/modules/model/nav.adoc
@@ -1,5 +1,5 @@
 include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
+include::security:security-bypass:partial$nav.adoc[]
+include::security:security-shiro:partial$nav.adoc[]
 include::ext-secman:ROOT:partial$nav.adoc[]
 include::security:ROOT:partial$nav2.adoc[]
diff --git a/extensions/secman/_adoc/modules/persistence-jdo/nav.adoc b/extensions/secman/_adoc/modules/persistence-jdo/nav.adoc
index 40f1ea6..2eb3605 100644
--- a/extensions/secman/_adoc/modules/persistence-jdo/nav.adoc
+++ b/extensions/secman/_adoc/modules/persistence-jdo/nav.adoc
@@ -1,5 +1,5 @@
 include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
+include::security:security-bypass:partial$nav.adoc[]
+include::security:security-shiro:partial$nav.adoc[]
 include::ext-secman:ROOT:partial$nav.adoc[]
 include::security:ROOT:partial$nav2.adoc[]
diff --git a/extensions/secman/_adoc/modules/realm-shiro/nav.adoc b/extensions/secman/_adoc/modules/realm-shiro/nav.adoc
index 40f1ea6..2eb3605 100644
--- a/extensions/secman/_adoc/modules/realm-shiro/nav.adoc
+++ b/extensions/secman/_adoc/modules/realm-shiro/nav.adoc
@@ -1,5 +1,5 @@
 include::security:ROOT:partial$nav.adoc[]
-include::security-bypass:ROOT:partial$nav.adoc[]
-include::security-shiro:ROOT:partial$nav.adoc[]
+include::security:security-bypass:partial$nav.adoc[]
+include::security:security-shiro:partial$nav.adoc[]
 include::ext-secman:ROOT:partial$nav.adoc[]
 include::security:ROOT:partial$nav2.adoc[]
diff --git a/site.yml b/site.yml
index daa691f..97953ab 100644
--- a/site.yml
+++ b/site.yml
@@ -95,7 +95,7 @@ content:
       branches: HEAD
 
     - url: .
-      start_path: core/security/api/_adoc
+      start_path: antora/components/security
       branches: HEAD
     - url: .
       start_path: core/security/bypass/_adoc


[isis] 04/04: ISIS-2062: adds script to generate .adoc from spring config metadata

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

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

commit e2ef9c46edd51a5e01a34ccb1cc66a68c03dc5a8
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Oct 9 23:23:56 2019 +0100

    ISIS-2062: adds script to generate .adoc from spring config metadata
---
 scripts/generateConfigDocs.groovy | 216 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 216 insertions(+)

diff --git a/scripts/generateConfigDocs.groovy b/scripts/generateConfigDocs.groovy
new file mode 100644
index 0000000..14f8c0e
--- /dev/null
+++ b/scripts/generateConfigDocs.groovy
@@ -0,0 +1,216 @@
+//
+// groovy generateConfigDocs -f ".././core/config/target/classes/META-INF/spring-configuration-metadata.json" -o /tmp
+
+import groovy.json.JsonSlurper
+
+def cli = new CliBuilder( usage: 'groovy generateConfigDocs -f inputFile -o outputDir')
+cli.with {
+    f(longOpt: 'file', args: 1, required: false, argName: 'inputFile', 'Fully qualified file name, defaults to spring-configuration-metadata.json')
+    o(longOpt: 'outputDir', args: 1, required: false, argName: 'outputDir', 'Directory to write to, defaults to current directory')
+}
+
+def options = cli.parse(args)
+if (!options) {
+    return
+}
+
+def fileName=options.f
+def outputDir=options.o
+
+if( ! fileName ) {
+    fileName = 'spring-configuration-metadata.json'
+}
+if( ! outputDir ) {
+    outputDir = '.'
+}
+
+def inputFile = new File(fileName)
+if(! inputFile.exists()) {
+    System.err.println "Cannot find file '${fileName}'"
+    System.exit (1)
+}
+
+
+
+class Property {
+    String name
+    String type
+    String description
+    String sourceType
+    Object defaultValue
+    Boolean deprecated
+    Object deprecation
+}
+
+class PropertyGroup {
+    String prefix
+    String name
+    String description
+    int searchOrder
+    List<Property> properties = []
+
+    String fileName() { prefix ? prefix : name }
+}
+
+List<PropertyGroup> groups = []
+groups+= new PropertyGroup() {{
+    prefix = "isis.reflector"
+    name = "Reflector"
+    description = "The component responsible for building up the metamodel"
+    searchOrder = 2
+}}
+
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.reflector.facet"
+    name = "Individual Reflector Facets"
+    description = "Configuration of specific facet implementations"
+    searchOrder = 1
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.reflector.validator"
+    name = "Reflector Validator"
+    description = "Configuration of the validator that checks the well-formedness of the inferred metamodel (how strict to be etc.)"
+    searchOrder = 1
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.authentication.shiro"
+    name = "Shiro Security Implementation"
+    description = "Configuration of the Shiro implementation of the Authenticator and Authorizor APIs"
+    properties: []
+    searchOrder = 1
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.authentication"
+    name = "Security Configuration (general)"
+    description = "Configuration of the Shiro implementation of the Authenticator and Authorizor APIs"
+    properties: []
+    searchOrder = 2
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.persistor"
+    name = "Object Store configuration (general)"
+    description = "Configuration settings relating to all Object Store implementations"
+    properties: []
+    searchOrder = 520
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.persistor.datanucleus"
+    name = "DataNucleus Object Store"
+    description = "Configuration settings of the DataNucleus Object Store itself (the Apache Isis component that wraps DataNucleus library)"
+    properties: []
+    searchOrder = 510
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.persistor.datanucleus.impl"
+    name = "DataNucleus Configuration"
+    description = "Passed thru directly to DataNucleus, for the most part unused by Apache Isis itself"
+    properties: []
+    searchOrder = 500
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.service.email"
+    name = "Email Domain Service configuration"
+    description = "Configuration of the Email domain services"
+    properties: []
+    searchOrder = 502
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.services"
+    name = "Domain Service configurations"
+    description = "Configuration of individual domain services"
+    properties: []
+    searchOrder = 501
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.viewer.restfulobjects"
+    name = "Restful Objects Viewer"
+    description = "Configuration of the REST API surfaced by the Restful Objects viewer"
+    searchOrder = 501
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.viewer.wicket"
+    name = "Wicket Viewer"
+    description = "Configuration of the Wicket viewer"
+    searchOrder = 501
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "isis.viewers"
+    name = "Viewers Configuration (General)"
+    description = "Configuration that applies to viewers"
+    searchOrder = 501
+}}
+
+groups+= new PropertyGroup() {{
+    prefix = "" // 'isis.objects', 'isis.environment'
+    name = "Other"
+    description = "Any other general or miscellaneous configuration settings"
+    searchOrder = 999
+}}
+
+Comparator<PropertyGroup> comparator = { a, b -> a.searchOrder - b.searchOrder }
+List<PropertyGroup> sortedGroups = []
+sortedGroups.addAll groups
+sortedGroups.sort(comparator)
+
+def jsonSlurper = new JsonSlurper()
+def data = jsonSlurper.parse(inputFile)
+
+eachProperty:
+for (property in data.properties) {
+    if(['isis.raw-key-value-map',
+        'isis.environment'].contains(property.name)) {
+        // ignore these special cases
+        continue
+    }
+    eachGroup:
+    for (PropertyGroup group in sortedGroups) {
+        if(property.name.startsWith(group.prefix)) {
+            group.properties += property
+            continue eachProperty
+        }
+    }
+}
+
+new File(outputDir).mkdirs()
+
+for (PropertyGroup group in groups) {
+    def buf = StringBuilder.newInstance()
+    if(group.properties.size() > 0) {
+
+        for (Property property in group.properties) {
+            buf << "| ${property.name}\n"
+//            buf << "|"
+//            if(property.type) {
+//                buf << " ${property.type}"
+//            }
+//            buf << "\n"
+            buf << "|"
+            if(property.defaultValue) {
+                buf << " ${property.defaultValue}"
+            }
+            buf << "\n"
+            buf << "|"
+            if(property.description) {
+                buf << " ${property.description}"
+            }
+            buf << "\n"
+            buf << "\n"
+        }
+
+
+        def outputFile = new File(outputDir, "${group.fileName()}.adoc")
+        outputFile.write(buf.toString())
+    }
+}


[isis] 03/04: ISIS-2062: refactors sec guide to use distributed component

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

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

commit d920556850bc449b340526cab998605110af3b3b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Oct 9 06:11:54 2019 +0100

    ISIS-2062: refactors sec guide to use distributed component
    
    and simplifies module names
---
 .../modules/ROOT/partials/component-nav.adoc       |   8 +-
 .../deployment/externalized-configuration.adoc     |   2 +-
 .../userguide/modules/btb/pages/web-xml.adoc       |   2 +-
 .../applib/AbstractContainedObject-hierarchy.ucd   |  71 ------
 .../org/apache/isis/applib/events/Events.ucd       | 281 ---------------------
 .../org/apache/isis/applib/fixtures/Fixtures.ucd   |  93 -------
 core/security/api/_adoc/antora.yml                 |   2 +
 .../_adoc/modules/api}/_attributes.adoc            |   0
 .../_adoc/modules/api/attachments}/.gitkeep        |   0
 .../_adoc/modules/api/examples}/.gitkeep           |   0
 .../configure-isis-to-use-bypass.PNG               | Bin
 .../_adoc/modules/api}/nav.adoc                    |   0
 .../_adoc/modules/api/pages}/_attributes.adoc      |   0
 .../_adoc/modules/api}/pages/about.adoc            |   4 +-
 .../_adoc/modules/api/partials}/_attributes.adoc   |   0
 .../api/_adoc/modules/api/partials/module-nav.adoc |   2 +
 .../_adoc/modules/bypass}/_attributes.adoc         |   0
 .../_adoc/modules/bypass/attachments}/.gitkeep     |   0
 .../_adoc/modules/bypass/examples}/.gitkeep        |   0
 .../configure-isis-to-use-bypass.PNG               | Bin
 .../_adoc/modules/bypass}/nav.adoc                 |   0
 .../_adoc/modules/bypass/pages}/_attributes.adoc   |   0
 .../{security-bypass => bypass}/pages/about.adoc   |   0
 .../pages/configuring-isis-to-use-bypass.adoc      |   0
 .../modules/bypass/partials}/_attributes.adoc      |   0
 .../_adoc/modules/bypass/partials/module-nav.adoc  |   3 +
 .../security-bypass/partials/module-nav.adoc       |   3 -
 .../security-shiro/partials/module-nav.adoc        |  10 -
 .../_attributes.adoc                               |   0
 .../attachments}/.gitkeep                          |   0
 .../examples}/.gitkeep                             |   0
 .../configure-shiro-to-use-custom-jdbc-realm.png   | Bin
 .../nav.adoc                                       |   0
 .../pages}/_attributes.adoc                        |   0
 .../pages/about.adoc                               |   0
 .../partials}/_attributes.adoc                     |   0
 .../partials/module-nav.adoc                       |   0
 .../modules/shiro-realm-ldap}/_attributes.adoc     |   0
 .../modules/shiro-realm-ldap/attachments}/.gitkeep |   0
 .../modules/shiro-realm-ldap/examples}/.gitkeep    |   0
 .../images}/activeds-ldap-groups.png               | Bin
 .../images}/activeds-ldap-mojo-partition.png       | Bin
 .../images}/activeds-ldap-mojo-root-dse.png        | Bin
 .../images}/activeds-ldap-sasl-authentication.png  | Bin
 .../images}/activeds-ldap-users.png                | Bin
 .../configure-shiro-to-use-isis-ldap-realm.PNG     | Bin
 .../_adoc/modules/shiro-realm-ldap}/nav.adoc       |   0
 .../shiro-realm-ldap/pages}/_attributes.adoc       |   0
 .../pages/about.adoc                               |   0
 .../shiro-realm-ldap/partials}/_attributes.adoc    |   0
 .../partials/module-nav.adoc                       |   0
 .../{security-shiro => shiro}/_attributes.adoc     |   0
 .../examples => shiro/attachments}/.gitkeep        |   0
 .../{security-shiro => shiro}/examples/.gitkeep    |   0
 .../ldap}/activeds-ldap-groups.png                 | Bin
 .../ldap}/activeds-ldap-mojo-partition.png         | Bin
 .../ldap}/activeds-ldap-mojo-root-dse.png          | Bin
 .../ldap}/activeds-ldap-sasl-authentication.png    | Bin
 .../ldap}/activeds-ldap-users.png                  | Bin
 .../configure-isis-to-use-shiro.png                | Bin
 .../configure-shiro-to-use-custom-jdbc-realm.png   | Bin
 .../configure-shiro-to-use-ini-realm.PNG           | Bin
 .../configure-shiro-to-use-isis-ldap-realm.PNG     | Bin
 .../modules/{security-shiro => shiro}/nav.adoc     |   0
 .../partials => shiro/pages}/_attributes.adoc      |   0
 .../{security-shiro => shiro}/pages/about.adoc     |   0
 .../pages/configuring-isis-to-use-shiro.adoc       |   0
 .../pages/enhanced-wildcard-permission.adoc        |   2 +-
 .../{security-shiro => shiro}/pages/ini-realm.adoc |   0
 .../{security-shiro => shiro}/pages/run-as.adoc    |   0
 .../pages/shiro-caching.adoc                       |   0
 .../partials/_attributes.adoc                      |   0
 .../_adoc/modules/shiro/partials/module-nav.adoc   |  10 +
 73 files changed, 27 insertions(+), 466 deletions(-)

diff --git a/antora/components/security/modules/ROOT/partials/component-nav.adoc b/antora/components/security/modules/ROOT/partials/component-nav.adoc
index f968387..20381ad 100644
--- a/antora/components/security/modules/ROOT/partials/component-nav.adoc
+++ b/antora/components/security/modules/ROOT/partials/component-nav.adoc
@@ -1,6 +1,8 @@
 include::security:ROOT:partial$module-nav.adoc[]
-include::security:security-bypass:partial$module-nav.adoc[]
-include::security:security-shiro:partial$module-nav.adoc[]
+include::security:api:partial$module-nav.adoc[]
+include::security:bypass:partial$module-nav.adoc[]
+include::security:shiro:partial$module-nav.adoc[]
 include::security:ROOT:partial$module-nav2.adoc[]
 
-* xref:ext-secman:ROOT:about.adoc[SecMan (extension)]
+* Extensions
+** xref:ext-secman:ROOT:about.adoc[SecMan]
diff --git a/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc b/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
index 59655cf..0b80287 100644
--- a/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
+++ b/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
@@ -75,7 +75,7 @@ Note that running the app using Apache Isis' `org.apache.isis.WebServer` bootstr
 
 == Shiro Config
 
-If using Apache Isis' xref:security:security-shiro:configuring-isis-to-use-shiro.adoc[Shiro integration] for authentication and/or authorization, note that it reads from the `shiro.ini` configuration file.
+If using Apache Isis' xref:security:shiro:configuring-isis-to-use-shiro.adoc[Shiro integration] for authentication and/or authorization, note that it reads from the `shiro.ini` configuration file.
 By default this also resides in `WEB-INF`.
 
 Similar to Apache Isis, Shiro lets this configuration directory be altered, by specifying the `shiroConfigLocations` context parameter.
diff --git a/antora/components/userguide/modules/btb/pages/web-xml.adoc b/antora/components/userguide/modules/btb/pages/web-xml.adoc
index e480792..87051f9 100644
--- a/antora/components/userguide/modules/btb/pages/web-xml.adoc
+++ b/antora/components/userguide/modules/btb/pages/web-xml.adoc
@@ -13,7 +13,7 @@ You can deploy both of these concurrently, or deploy just the Wicket viewer, or
 The configuration in `web.xml` varies accordingly, both in terms of the servlet context listeners, filters and servlets.
 
 If you are using Apache Isis' integration with Apache Shiro (for security) then this also needs configuring in `web.xml`.
-See the xref:security:security-shiro:configuring-isis-to-use-shiro.adoc[security guide] for full details on this topic.
+See the xref:security:shiro:configuring-isis-to-use-shiro.adoc[security guide] for full details on this topic.
 
 The servlets and filters are mapped to three main pipelines:
 
diff --git a/core/applib/src/main/resources/org/apache/isis/applib/AbstractContainedObject-hierarchy.ucd b/core/applib/src/main/resources/org/apache/isis/applib/AbstractContainedObject-hierarchy.ucd
deleted file mode 100644
index 313ebd7..0000000
--- a/core/applib/src/main/resources/org/apache/isis/applib/AbstractContainedObject-hierarchy.ucd
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<editmodel:ClassDiagramEditModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:editmodel="editmodel.xmi" xmlns:options="options.xmi" name="AbstractContainedObject-hierarchy" size="843,745" id="org.apache.isis.applib" metadata="uml2-1.0" initialized="true" tag="1000" key="32303037303533312D31303030206170706C69622F64616E">
-  <children xsi:type="editmodel:InterfaceEditModel" targetConnections="//@children.5/@sourceConnections.0" name="DomainObjectContainer" location="555,43" size="194,43" id="org.apache.isis.applib/DomainObjectContainer" runTimeClassModel="commit(),firstMatch(Lorg.apache.isis.applib.query.Query;),warnUser(Ljava.lang.String;),isPersistent(Ljava.lang.Object;),newInstance(Ljava.lang.Class;Ljava.lang.Object;),removeIfNotAlready(Ljava.lang.Object;),raiseError(Ljava.lang.String;),uniqueMatch(Ljav [...]
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="AbstractDomainObject" location="50,129" size="183,29" id="org.apache.isis.applib/AbstractDomainObject">
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.2/@sourceConnections.0 //@children.4/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib/AbstractContainedObject&lt;-org.apache.isis.applib/AbstractDomainObject" source="//@children.1" target="//@children.5" targetEnd="//@children.1/@sourceConnections.0/@children.1" sourceEnd="//@children.1/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="91,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="99,29" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="AbstractFixture" location="434,129" size="138,43" id="org.apache.isis.applib.fixtures/AbstractFixture" runTimeClassModel="laterDate(III),earlierTime(II),setService(Lorg.apache.isis.applib.fixtures.switchuser.SwitchUserService;),getType(),earlierDate(III),laterTime(II),fixtures,getFixtures(),setTime(II),getFixtureClock(),AbstractFixture(Lorg.apache.isis.applib.fixtures.FixtureType;),setDate(III),install(),AbstractFixture(),resetClock()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib/AbstractContainedObject&lt;-org.apache.isis.applib.fixtures/AbstractFixture" source="//@children.2" target="//@children.1/@sourceConnections.0" targetEnd="//@children.2/@sourceConnections.0/@children.1" sourceEnd="//@children.2/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="67,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="AbstractFactoryAndRepository" location="232,195" size="232,29" id="org.apache.isis.applib/AbstractFactoryAndRepository">
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib/AbstractService&lt;-org.apache.isis.applib/AbstractFactoryAndRepository" source="//@children.3" target="//@children.4" targetEnd="//@children.3/@sourceConnections.0/@children.1" sourceEnd="//@children.3/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="101,0" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="70,29"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.3/@sourceConnections.0" name="AbstractService" location="263,129" size="141,29" id="org.apache.isis.applib/AbstractService" runTimeClassModel="">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib/AbstractContainedObject&lt;-org.apache.isis.applib/AbstractService" source="//@children.4" target="//@children.1/@sourceConnections.0" targetEnd="//@children.4/@sourceConnections.0/@children.1" sourceEnd="//@children.4/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="70,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.1/@sourceConnections.0" name="AbstractContainedObject" location="227,50" size="199,29" id="org.apache.isis.applib/AbstractContainedObject">
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <children xsi:type="editmodel:CompartmentEditModel"/>
-    <sourceConnections xsi:type="editmodel:AssociationEditModel" autoLocated="true" id="org.apache.isis.applib/DomainObjectContainer@container+org.apache.isis.applib/AbstractContainedObject@" source="//@children.5" target="//@children.0" targetEnd="//@children.5/@sourceConnections.0/@children.2" label="//@children.5/@sourceConnections.0/@children.0" sourceEnd="//@children.5/@sourceConnections.0/@children.1" connectionRouterKind="Manhattan">
-      <children xsi:type="editmodel:WireLabelEditModel" size="0,14" anchorKind="MiddlePart"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="199,14" id="org.apache.isis.applib/DomainObjectContainer@container+org.apache.isis.applib/AbstractContainedObject@|org.apache.isis.applib/AbstractContainedObject#" attachSource="true" roleLabel="//@children.5/@sourceConnections.0/@children.1/@children.0">
-        <children xsi:type="editmodel:LabelEditModel" location="433,43" size="0,14" anchorKind="FirstPart"/>
-      </children>
-      <children xsi:type="editmodel:AssociationEndEditModel" name="container" location="0,21" id="org.apache.isis.applib/DomainObjectContainer@container+org.apache.isis.applib/AbstractContainedObject@|org.apache.isis.applib/DomainObjectContainer#container" multiplicityLabel="//@children.5/@sourceConnections.0/@children.2/@children.1" roleLabel="//@children.5/@sourceConnections.0/@children.2/@children.0" navigable="true">
-        <children xsi:type="editmodel:LabelEditModel" name=" - container" location="493,43" size="55,14" anchorKind="LastPart"/>
-        <children xsi:type="editmodel:LabelEditModel" name="0..1" location="530,71" size="18,14" anchorKind="LastPart"/>
-      </children>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <diagramOptions xsi:type="options:ClassDiagramOptions" properties="wireOptions=1;Product=eUML2" autoName="false"/>
-  <boardSetting snapToGeometry="true" gridEnabled="true" gridSpacing="15,15" gridOrigin="0,0" rulerUnit="pixel" gridVisibility="false">
-    <leftRuler/>
-    <topRuler/>
-  </boardSetting>
-  <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference" showPopupBars="true" showConnectionHandles="true" attributeSorter="Natural" methodSorter="Natural" showClassStereotype="true" showPackageStereotype="true" showDependencyStereotype="true" showInterfaceStereotype="true" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicIn [...]
-</editmodel:ClassDiagramEditModel>
diff --git a/core/applib/src/main/resources/org/apache/isis/applib/events/Events.ucd b/core/applib/src/main/resources/org/apache/isis/applib/events/Events.ucd
deleted file mode 100644
index fa4045e..0000000
--- a/core/applib/src/main/resources/org/apache/isis/applib/events/Events.ucd
+++ /dev/null
@@ -1,281 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<editmodel:ClassDiagramEditModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:editmodel="editmodel.xmi" xmlns:options="options.xmi" name="Events" size="3834,1217" id="org.apache.isis.applib.events" metadata="uml2-1.0" initialized="true" zoom="0.75" scrolledY="27" tag="1000" key="32303037303533312D31303030206170706C69622F64616E">
-  <children xsi:type="editmodel:ClassEditModel" name="ObjectTitleEvent" location="989,436" size="146,67" id="org.apache.isis.applib.events/ObjectTitleEvent" runTimeClassModel="title,ObjectTitleEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.String;),getTitle()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="64,18">
-      <children xsi:type="editmodel:MethodEditModel" name="getTitle" id="org.apache.isis.applib.events/ObjectTitleEvent#getTitle()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.4/@sourceConnections.0 //@children.17/@sourceConnections.0 //@children.13/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib.events/AccessEvent&lt;-org.apache.isis.applib.events/ObjectTitleEvent" source="//@children.0" target="//@children.10" targetEnd="//@children.0/@sourceConnections.0/@children.1" sourceEnd="//@children.0/@sourceConnections.0/@children.0" connectionRoute [...]
-      <children xsi:type="editmodel:AssociationEndEditModel" location="73,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="60,29" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="CollectionAddToEvent" location="936,743" size="181,67" id="org.apache.isis.applib.events/CollectionAddToEvent" runTimeClassModel="getProposed(),CollectionAddToEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;),proposed">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="91,18">
-      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/CollectionAddToEvent#getProposed()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/CollectionAddToEvent" source="//@children.1" target="//@children.3/@sourceConnections.0" targetEnd="//@children.1/@sourceConnections.0/@children.1" sourceEnd="//@children.1/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="90,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.3/@sourceConnections.0" name="ValidityEvent" location="1123,597" size="124,67" id="org.apache.isis.applib.events/ValidityEvent" runTimeClassModel="ValidityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;),getSource()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="80,18">
-      <children xsi:type="editmodel:MethodEditModel" name="getSource" id="org.apache.isis.applib.events/ValidityEvent#getSource()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/InteractionEvent&lt;-org.apache.isis.applib.events/ValidityEvent" source="//@children.2" target="//@children.10/@sourceConnections.0" targetEnd="//@children.2/@sourceConnections.0/@children.1" sourceEnd="//@children.2/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="62,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ProposedHolderEvent&lt;-org.apache.isis.applib.events/ValidityEvent" source="//@children.2" target="//@children.5" targetEnd="//@children.2/@sourceConnections.1/@children.1" sourceEnd="//@children.2/@sourceConnections.1/@children.0" connectionRouterKind="Manual">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="114,0" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="8,99"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="ActionArgumentEvent" location="1288,733" size="179,103" id="org.apache.isis.applib.events/ActionArgumentEvent" runTimeClassModel="ActionArgumentEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;[Ljava.lang.Object;I),position,getProposed(),getArgs(),args,getPosition(),proposed">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="91,54">
-      <children xsi:type="editmodel:MethodEditModel" name="getArgs" id="org.apache.isis.applib.events/ActionArgumentEvent#getArgs()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getPosition" id="org.apache.isis.applib.events/ActionArgumentEvent#getPosition()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/ActionArgumentEvent#getProposed()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.1/@sourceConnections.0 //@children.15/@sourceConnections.0 //@children.6/@sourceConnections.0 //@children.7/@sourceConnections.0 //@children.11/@sourceConnections.0 //@children.19/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/ActionArgumentEvent" source="//@children.3" target="//@children.2" targetEnd="//@children. [...]
-      <children xsi:type="editmodel:AssociationEndEditModel" location="89,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="62,67" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="CollectionMethodEvent" location="778,438" size="188,139" id="org.apache.isis.applib.events/CollectionMethodEvent" runTimeClassModel="getArgs(),getMethodName(),getReturnValue(),CollectionMethodEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;Ljava.lang.String;[Ljava.lang.Object;Ljava.lang.Object;),args,getDomainObject(),returnValue,domainObject,methodName,getSource()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="111,90">
-      <children xsi:type="editmodel:MethodEditModel" name="getSource" id="org.apache.isis.applib.events/CollectionMethodEvent#getSource()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getDomainObject" id="org.apache.isis.applib.events/CollectionMethodEvent#getDomainObject()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getMethodName" id="org.apache.isis.applib.events/CollectionMethodEvent#getMethodName()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getArgs" id="org.apache.isis.applib.events/CollectionMethodEvent#getArgs()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getReturnValue" id="org.apache.isis.applib.events/CollectionMethodEvent#getReturnValue()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/AccessEvent&lt;-org.apache.isis.applib.events/CollectionMethodEvent" source="//@children.4" target="//@children.0/@sourceConnections.0" targetEnd="//@children.4/@sourceConnections.0/@children.1" sourceEnd="//@children.4/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="94,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:InterfaceEditModel" targetConnections="//@children.2/@sourceConnections.1" name="ProposedHolderEvent" location="1229,449" size="179,99" id="org.apache.isis.applib.events/ProposedHolderEvent" runTimeClassModel="getProposed(),getMemberNaturalName()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="144,36">
-      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/ProposedHolderEvent#getProposed()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getMemberNaturalName" id="org.apache.isis.applib.events/ProposedHolderEvent#getMemberNaturalName()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="ObjectValidityEvent" location="1394,850" size="165,85" id="org.apache.isis.applib.events/ObjectValidityEvent" runTimeClassModel="getProposed(),ObjectValidityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="122,36">
-      <children xsi:type="editmodel:MethodEditModel" name="ObjectValidityEvent" id="org.apache.isis.applib.events/ObjectValidityEvent#ObjectValidityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/ObjectValidityEvent#getProposed()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/ObjectValidityEvent" source="//@children.6" target="//@children.3/@sourceConnections.0" targetEnd="//@children.6/@sourceConnections.0/@children.1" sourceEnd="//@children.6/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="82,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="ParseValueEvent" location="754,743" size="149,85" id="org.apache.isis.applib.events/ParseValueEvent" runTimeClassModel="getProposed(),ParseValueEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.String;),proposed,getSource()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="91,36">
-      <children xsi:type="editmodel:MethodEditModel" name="getSource" id="org.apache.isis.applib.events/ParseValueEvent#getSource()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/ParseValueEvent#getProposed()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/ParseValueEvent" source="//@children.7" target="//@children.3/@sourceConnections.0" targetEnd="//@children.7/@sourceConnections.0/@children.1" sourceEnd="//@children.7/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="74,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.21/@sourceConnections.0 //@children.20/@sourceConnections.0 //@children.22/@sourceConnections.0" name="UsabilityEvent" location="433,586" size="131,29" id="org.apache.isis.applib.events/UsabilityEvent" runTimeClassModel="UsabilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/InteractionEvent&lt;-org.apache.isis.applib.events/UsabilityEvent" source="//@children.8" target="//@children.10/@sourceConnections.0" targetEnd="//@children.8/@sourceConnections.0/@children.1" sourceEnd="//@children.8/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="65,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.18/@sourceConnections.0 //@children.14/@sourceConnections.0" name="VisibilityEvent" location="194,329" size="131,67" id="org.apache.isis.applib.events/VisibilityEvent" runTimeClassModel="VisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="96,18">
-      <children xsi:type="editmodel:MethodEditModel" name="VisibilityEvent" id="org.apache.isis.applib.events/VisibilityEvent#VisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/InteractionEvent&lt;-org.apache.isis.applib.events/VisibilityEvent" source="//@children.9" target="//@children.10/@sourceConnections.0" targetEnd="//@children.9/@sourceConnections.0/@children.1" sourceEnd="//@children.9/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="65,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.0/@sourceConnections.0" name="AccessEvent" location="823,320" size="120,29" id="org.apache.isis.applib.events/AccessEvent" runTimeClassModel="AccessEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.2/@sourceConnections.0 //@children.8/@sourceConnections.0 //@children.9/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib.events/InteractionEvent&lt;-org.apache.isis.applib.events/AccessEvent" source="//@children.10" target="//@children.16" targetEnd="//@children.10/@sourceConnections.0/@children.1" sourceEnd="//@children.10/@sourceConnections.0/@children.0" connectionRout [...]
-      <children xsi:type="editmodel:AssociationEndEditModel" location="60,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="94,229" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="PropertyModifyEvent" location="831,851" size="173,67" id="org.apache.isis.applib.events/PropertyModifyEvent" runTimeClassModel="getProposed(),PropertyModifyEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;),proposed">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="91,18">
-      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/PropertyModifyEvent#getProposed()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/PropertyModifyEvent" source="//@children.11" target="//@children.3/@sourceConnections.0" targetEnd="//@children.11/@sourceConnections.0/@children.1" sourceEnd="//@children.11/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="86,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="PropertyVisibilityEvent" location="59,448" size="185,29" id="org.apache.isis.applib.events/PropertyVisibilityEvent" runTimeClassModel="PropertyVisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.events/VisibilityEvent&lt;-org.apache.isis.applib.events/PropertyVisibilityEvent" source="//@children.12" target="//@children.18/@sourceConnections.0" targetEnd="//@children.12/@sourceConnections.0/@children.1" sourceEnd="//@children.12/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="92,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="16,-127"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="PropertyAccessEvent" location="553,436" size="174,67" id="org.apache.isis.applib.events/PropertyAccessEvent" runTimeClassModel="getValue(),PropertyAccessEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;),value">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="72,18">
-      <children xsi:type="editmodel:MethodEditModel" name="getValue" id="org.apache.isis.applib.events/PropertyAccessEvent#getValue()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/AccessEvent&lt;-org.apache.isis.applib.events/PropertyAccessEvent" source="//@children.13" target="//@children.0/@sourceConnections.0" targetEnd="//@children.13/@sourceConnections.0/@children.1" sourceEnd="//@children.13/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="87,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="CollectionVisibilityEvent" location="165,501" size="195,29" id="org.apache.isis.applib.events/CollectionVisibilityEvent" runTimeClassModel="CollectionVisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/VisibilityEvent&lt;-org.apache.isis.applib.events/CollectionVisibilityEvent" source="//@children.14" target="//@children.9" targetEnd="//@children.14/@sourceConnections.0/@children.1" sourceEnd="//@children.14/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="94,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="65,67" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="CollectionRemoveFromEvent" location="1033,822" size="226,67" id="org.apache.isis.applib.events/CollectionRemoveFromEvent" runTimeClassModel="getProposed(),proposed,CollectionRemoveFromEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="91,18">
-      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/CollectionRemoveFromEvent#getProposed()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/CollectionRemoveFromEvent" source="//@children.15" target="//@children.3/@sourceConnections.0" targetEnd="//@children.15/@sourceConnections.0/@children.1" sourceEnd="//@children.15/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="113,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.10/@sourceConnections.0" name="InteractionEvent" location="629,30" size="188,229" id="org.apache.isis.applib.events/InteractionEvent" runTimeClassModel="getClassName(),advisorClass,reason,getMemberName(),getClassNaturalName(),getAdvisorClass(),getMemberNaturalName(),getSource(),InteractionEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;),isVeto(),advised(Ljava.lang.String;Ljava.lang.Class;),getIdent [...]
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="165,180">
-      <children xsi:type="editmodel:MethodEditModel" name="getSource" id="org.apache.isis.applib.events/InteractionEvent#getSource()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getClassName" id="org.apache.isis.applib.events/InteractionEvent#getClassName()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getMemberParameterNames" id="org.apache.isis.applib.events/InteractionEvent#getMemberParameterNames()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="advised" id="org.apache.isis.applib.events/InteractionEvent#advised(Ljava.lang.String;Ljava.lang.Class;)"/>
-      <children xsi:type="editmodel:MethodEditModel" name="InteractionEvent" id="org.apache.isis.applib.events/InteractionEvent#InteractionEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)"/>
-      <children xsi:type="editmodel:MethodEditModel" name="isVeto" id="org.apache.isis.applib.events/InteractionEvent#isVeto()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getIdentifier" id="org.apache.isis.applib.events/InteractionEvent#getIdentifier()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getMemberName" id="org.apache.isis.applib.events/InteractionEvent#getMemberName()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getAdvisorClass" id="org.apache.isis.applib.events/InteractionEvent#getAdvisorClass()"/>
-      <children xsi:type="editmodel:MethodEditModel" name="getReason" id="org.apache.isis.applib.events/InteractionEvent#getReason()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Visibility" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="CollectionAccessEvent" location="592,520" size="184,29" id="org.apache.isis.applib.events/CollectionAccessEvent" runTimeClassModel="CollectionAccessEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.events/AccessEvent&lt;-org.apache.isis.applib.events/CollectionAccessEvent" source="//@children.17" target="//@children.0/@sourceConnections.0" targetEnd="//@children.17/@sourceConnections.0/@children.1" sourceEnd="//@children.17/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="156,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="ActionVisibilityEvent" location="294,455" size="171,29" id="org.apache.isis.applib.events/ActionVisibilityEvent" runTimeClassModel="ActionVisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.12/@sourceConnections.0" id="org.apache.isis.applib.events/VisibilityEvent&lt;-org.apache.isis.applib.events/ActionVisibilityEvent" source="//@children.18" target="//@children.9" targetEnd="//@children.18/@sourceConnections.0/@children.1" sourceEnd="//@children.18/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="90,-1" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="65,67" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="ActionInvocationEvent" location="1183,925" size="183,67" id="org.apache.isis.applib.events/ActionInvocationEvent" runTimeClassModel="getArgs(),getProposed(),args,setArgs([Ljava.lang.Object;),ActionInvocationEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;[Ljava.lang.Object;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="69,18">
-      <children xsi:type="editmodel:MethodEditModel" name="getArgs" id="org.apache.isis.applib.events/ActionInvocationEvent#getArgs()"/>
-    </children>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/ActionInvocationEvent" source="//@children.19" target="//@children.3/@sourceConnections.0" targetEnd="//@children.19/@sourceConnections.0/@children.1" sourceEnd="//@children.19/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="91,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="99,67"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="ActionUsabilityEvent" location="534,682" size="171,29" id="org.apache.isis.applib.events/ActionUsabilityEvent" runTimeClassModel="ActionUsabilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.events/UsabilityEvent&lt;-org.apache.isis.applib.events/ActionUsabilityEvent" source="//@children.20" target="//@children.8" targetEnd="//@children.20/@sourceConnections.0/@children.1" sourceEnd="//@children.20/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="82,0" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="64,29"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="CollectionUsabilityEvent" location="414,724" size="195,29" id="org.apache.isis.applib.events/CollectionUsabilityEvent" runTimeClassModel="">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/UsabilityEvent&lt;-org.apache.isis.applib.events/CollectionUsabilityEvent" source="//@children.21" target="//@children.8" targetEnd="//@children.21/@sourceConnections.0/@children.1" sourceEnd="//@children.21/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="84,0" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="65,29"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="PropertyUsabilityEvent" location="288,682" size="185,29" id="org.apache.isis.applib.events/PropertyUsabilityEvent" runTimeClassModel="">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.events/UsabilityEvent&lt;-org.apache.isis.applib.events/PropertyUsabilityEvent" source="//@children.22" target="//@children.8" targetEnd="//@children.22/@sourceConnections.0/@children.1" sourceEnd="//@children.22/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="104,-1" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="64,29"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <diagramOptions xsi:type="options:ClassDiagramOptions" properties="wireOptions=1;Product=eUML2" autoName="false"/>
-  <boardSetting snapToGeometry="true" gridEnabled="true" gridSpacing="15,15" gridOrigin="0,0" rulerUnit="pixel" gridVisibility="false">
-    <leftRuler/>
-    <topRuler/>
-  </boardSetting>
-  <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference" showPopupBars="true" showConnectionHandles="true" attributeSorter="Natural" methodSorter="Natural" showClassStereotype="true" showPackageStereotype="true" showDependencyStereotype="true" showInterfaceStereotype="true" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicIn [...]
-</editmodel:ClassDiagramEditModel>
diff --git a/core/applib/src/main/resources/org/apache/isis/applib/fixtures/Fixtures.ucd b/core/applib/src/main/resources/org/apache/isis/applib/fixtures/Fixtures.ucd
deleted file mode 100644
index baaee5f..0000000
--- a/core/applib/src/main/resources/org/apache/isis/applib/fixtures/Fixtures.ucd
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<editmodel:ClassDiagramEditModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:editmodel="editmodel.xmi" xmlns:options="options.xmi" name="Fixtures" size="1218,592" id="org.apache.isis.applib.fixtures" metadata="uml2-1.0" initialized="true" tag="1000" key="32303037303533312D31303030206170706C69622F64616E">
-  <children xsi:type="editmodel:EnumerationEditModel" name="FixtureType" location="465,18" size="134,107" id="org.apache.isis.applib.fixtures/FixtureType" runTimeClassModel="OTHER%,DOMAIN_OBJECTS%,USER_PROFILES%">
-    <children xsi:type="editmodel:CompartmentEditModel" size="111,54">
-      <children xsi:type="editmodel:EnumerationLiteralEditModel" name="USER_PROFILES" id="org.apache.isis.applib.fixtures/FixtureType#USER_PROFILES%"/>
-      <children xsi:type="editmodel:EnumerationLiteralEditModel" name="OTHER" id="org.apache.isis.applib.fixtures/FixtureType#OTHER%"/>
-      <children xsi:type="editmodel:EnumerationLiteralEditModel" name="DOMAIN_OBJECTS" id="org.apache.isis.applib.fixtures/FixtureType#DOMAIN_OBJECTS%"/>
-    </children>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.6/@sourceConnections.0" name="BaseFixture" location="312,143" size="118,29" id="org.apache.isis.applib.fixtures/BaseFixture" runTimeClassModel="">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.2/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib.fixtures/InstallableFixture&lt;-org.apache.isis.applib.fixtures/BaseFixture" source="//@children.1" target="//@children.3" targetEnd="//@children.1/@sourceConnections.0/@children.1" sourceEnd="//@children.1/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="59,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="76,43" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="LogonFixture" location="50,143" size="127,29" id="org.apache.isis.applib.fixtures/LogonFixture" runTimeClassModel="getRoles(),username,getType(),getUsername(),roles,install(),LogonFixture(Ljava.lang.String;[Ljava.lang.String;),LogonFixture(Ljava.lang.String;Ljava.util.List;),toString()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.fixtures/InstallableFixture&lt;-org.apache.isis.applib.fixtures/LogonFixture" source="//@children.2" target="//@children.1/@sourceConnections.0" targetEnd="//@children.2/@sourceConnections.0/@children.1" sourceEnd="//@children.2/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="63,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="76,43" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:InterfaceEditModel" targetConnections="//@children.1/@sourceConnections.0" name="InstallableFixture" location="165,50" size="153,43" id="org.apache.isis.applib.fixtures/InstallableFixture" runTimeClassModel="getType(),install()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="UserProfileFixture" location="196,274" size="157,29" id="org.apache.isis.applib.fixtures/UserProfileFixture" runTimeClassModel="setService(Lorg.apache.isis.applib.fixtures.userprofile.UserProfileService;),UserProfileFixture(),install()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.fixtures/BaseFixture&lt;-org.apache.isis.applib.fixtures/UserProfileFixture" source="//@children.4" target="//@children.6/@sourceConnections.0" targetEnd="//@children.4/@sourceConnections.0/@children.1" sourceEnd="//@children.4/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="78,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:InterfaceEditModel" targetConnections="//@children.6/@sourceConnections.1" name="CompositeFixture" location="570,171" size="154,43" id="org.apache.isis.applib.fixtures/CompositeFixture" runTimeClassModel="getFixtures()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="AbstractFixture" location="563,274" size="138,29" id="org.apache.isis.applib.fixtures/AbstractFixture" runTimeClassModel="fixtures,laterDate(III),getFixtures(),setService(Lorg.apache.isis.applib.fixtures.switchuser.SwitchUserService;),earlierTime(II),AbstractFixture(Lorg.apache.isis.applib.fixtures.FixtureType;),laterTime(II),earlierDate(III),install(),AbstractFixture()">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.8/@sourceConnections.0 //@children.4/@sourceConnections.0 //@children.7/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib.fixtures/BaseFixture&lt;-org.apache.isis.applib.fixtures/AbstractFixture" source="//@children.6" target="//@children.1" targetEnd="//@children.6/@sourceConnections.0/@children.1" sourceEnd="//@children.6/@sourceConnections.0/@children.0" connectionRoute [...]
-      <children xsi:type="editmodel:AssociationEndEditModel" location="69,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="59,29" anchorKind="FixedAtEdge"/>
-    </sourceConnections>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.fixtures/CompositeFixture&lt;-org.apache.isis.applib.fixtures/AbstractFixture" source="//@children.6" target="//@children.5" targetEnd="//@children.6/@sourceConnections.1/@children.1" sourceEnd="//@children.6/@sourceConnections.1/@children.0" connectionRouterKind="Manual">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="85,0" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="77,42"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="SwitchUserFixture" location="383,274" size="158,29" id="org.apache.isis.applib.fixtures/SwitchUserFixture" runTimeClassModel="getRoles(),username,setService(Lorg.apache.isis.applib.fixtures.switchuser.SwitchUserService;),getUsername(),roles,install(),SwitchUserFixture(Ljava.lang.String;[Ljava.lang.String;)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.fixtures/BaseFixture&lt;-org.apache.isis.applib.fixtures/SwitchUserFixture" source="//@children.7" target="//@children.6/@sourceConnections.0" targetEnd="//@children.7/@sourceConnections.0/@children.1" sourceEnd="//@children.7/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="79,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel" location="20,14"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <children xsi:type="editmodel:ClassEditModel" name="DateFixture" location="50,274" size="116,29" id="org.apache.isis.applib.fixtures/DateFixture" runTimeClassModel="getDay(),getMonth(),hour,minute,getHour(),getYear(),month,year,install(),day,DateFixture(IIIII),getMinute(),DateFixture(III)">
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
-    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.fixtures/BaseFixture&lt;-org.apache.isis.applib.fixtures/DateFixture" source="//@children.8" target="//@children.6/@sourceConnections.0" targetEnd="//@children.8/@sourceConnections.0/@children.1" sourceEnd="//@children.8/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
-      <children xsi:type="editmodel:AssociationEndEditModel" location="58,0" anchorKind="FixedAtEdge" attachSource="true"/>
-      <children xsi:type="editmodel:AssociationEndEditModel"/>
-    </sourceConnections>
-    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
-  </children>
-  <diagramOptions xsi:type="options:ClassDiagramOptions" properties="wireOptions=1;Product=eUML2" autoName="false"/>
-  <boardSetting snapToGeometry="true" gridEnabled="true" gridSpacing="15,15" gridOrigin="0,0" rulerUnit="pixel" gridVisibility="false">
-    <leftRuler/>
-    <topRuler/>
-  </boardSetting>
-  <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference" showPopupBars="true" showConnectionHandles="true" attributeSorter="Natural" methodSorter="Natural" showClassStereotype="true" showPackageStereotype="true" showDependencyStereotype="true" showInterfaceStereotype="true" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicIn [...]
-</editmodel:ClassDiagramEditModel>
diff --git a/core/security/api/_adoc/antora.yml b/core/security/api/_adoc/antora.yml
new file mode 100644
index 0000000..09a6b1a
--- /dev/null
+++ b/core/security/api/_adoc/antora.yml
@@ -0,0 +1,2 @@
+name: security
+version: master
diff --git a/core/security/shiro/_adoc/modules/security-shiro/_attributes.adoc b/core/security/api/_adoc/modules/api/_attributes.adoc
similarity index 100%
copy from core/security/shiro/_adoc/modules/security-shiro/_attributes.adoc
copy to core/security/api/_adoc/modules/api/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/examples/.gitkeep b/core/security/api/_adoc/modules/api/attachments/.gitkeep
similarity index 100%
copy from core/security/shiro/_adoc/modules/security-shiro/examples/.gitkeep
copy to core/security/api/_adoc/modules/api/attachments/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/security-shiro/attachments/.gitkeep b/core/security/api/_adoc/modules/api/examples/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/attachments/.gitkeep
rename to core/security/api/_adoc/modules/api/examples/.gitkeep
diff --git a/core/security/bypass/_adoc/modules/security-bypass/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG b/core/security/api/_adoc/modules/api/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
similarity index 100%
copy from core/security/bypass/_adoc/modules/security-bypass/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
copy to core/security/api/_adoc/modules/api/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
diff --git a/core/security/shiro/_adoc/modules/security-shiro/nav.adoc b/core/security/api/_adoc/modules/api/nav.adoc
similarity index 100%
copy from core/security/shiro/_adoc/modules/security-shiro/nav.adoc
copy to core/security/api/_adoc/modules/api/nav.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/partials/_attributes.adoc b/core/security/api/_adoc/modules/api/pages/_attributes.adoc
similarity index 100%
copy from core/security/shiro/_adoc/modules/security-shiro/partials/_attributes.adoc
copy to core/security/api/_adoc/modules/api/pages/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/pages/about.adoc b/core/security/api/_adoc/modules/api/pages/about.adoc
similarity index 85%
copy from core/security/shiro/_adoc/modules/security-shiro/pages/about.adoc
copy to core/security/api/_adoc/modules/api/pages/about.adoc
index 54d76c5..3853d10 100644
--- a/core/security/shiro/_adoc/modules/security-shiro/pages/about.adoc
+++ b/core/security/api/_adoc/modules/api/pages/about.adoc
@@ -1,6 +1,6 @@
-= Shiro Security
+= API
 :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::_attributes.adoc[]
 :page-partial:
 
-This guide describes the configuration of the Shiro implementation of Apache Isis' `Authenticator and `Authorizor` APIs.
+TODO
\ No newline at end of file
diff --git a/core/security/shiro/_adoc/modules/security-shiro/pages/_attributes.adoc b/core/security/api/_adoc/modules/api/partials/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/pages/_attributes.adoc
rename to core/security/api/_adoc/modules/api/partials/_attributes.adoc
diff --git a/core/security/api/_adoc/modules/api/partials/module-nav.adoc b/core/security/api/_adoc/modules/api/partials/module-nav.adoc
new file mode 100644
index 0000000..e636f85
--- /dev/null
+++ b/core/security/api/_adoc/modules/api/partials/module-nav.adoc
@@ -0,0 +1,2 @@
+* xref:security:api:about.adoc[API]
+
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/_attributes.adoc b/core/security/bypass/_adoc/modules/bypass/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/_attributes.adoc
rename to core/security/bypass/_adoc/modules/bypass/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/examples/.gitkeep b/core/security/bypass/_adoc/modules/bypass/attachments/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/examples/.gitkeep
rename to core/security/bypass/_adoc/modules/bypass/attachments/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/attachments/.gitkeep b/core/security/bypass/_adoc/modules/bypass/examples/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/attachments/.gitkeep
rename to core/security/bypass/_adoc/modules/bypass/examples/.gitkeep
diff --git a/core/security/bypass/_adoc/modules/security-bypass/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG b/core/security/bypass/_adoc/modules/bypass/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
rename to core/security/bypass/_adoc/modules/bypass/images/security/security-apis-impl/configure-isis-to-use-bypass.PNG
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/nav.adoc b/core/security/bypass/_adoc/modules/bypass/nav.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/nav.adoc
rename to core/security/bypass/_adoc/modules/bypass/nav.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/_attributes.adoc b/core/security/bypass/_adoc/modules/bypass/pages/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/_attributes.adoc
rename to core/security/bypass/_adoc/modules/bypass/pages/_attributes.adoc
diff --git a/core/security/bypass/_adoc/modules/security-bypass/pages/about.adoc b/core/security/bypass/_adoc/modules/bypass/pages/about.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/pages/about.adoc
rename to core/security/bypass/_adoc/modules/bypass/pages/about.adoc
diff --git a/core/security/bypass/_adoc/modules/security-bypass/pages/configuring-isis-to-use-bypass.adoc b/core/security/bypass/_adoc/modules/bypass/pages/configuring-isis-to-use-bypass.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/pages/configuring-isis-to-use-bypass.adoc
rename to core/security/bypass/_adoc/modules/bypass/pages/configuring-isis-to-use-bypass.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/pages/_attributes.adoc b/core/security/bypass/_adoc/modules/bypass/partials/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/pages/_attributes.adoc
rename to core/security/bypass/_adoc/modules/bypass/partials/_attributes.adoc
diff --git a/core/security/bypass/_adoc/modules/bypass/partials/module-nav.adoc b/core/security/bypass/_adoc/modules/bypass/partials/module-nav.adoc
new file mode 100644
index 0000000..7596941
--- /dev/null
+++ b/core/security/bypass/_adoc/modules/bypass/partials/module-nav.adoc
@@ -0,0 +1,3 @@
+* Bypass Implementation
+** xref:security:bypass:configuring-isis-to-use-bypass.adoc[Configuring to use Bypass]
+
diff --git a/core/security/bypass/_adoc/modules/security-bypass/partials/module-nav.adoc b/core/security/bypass/_adoc/modules/security-bypass/partials/module-nav.adoc
deleted file mode 100644
index b8eaaa1..0000000
--- a/core/security/bypass/_adoc/modules/security-bypass/partials/module-nav.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-* Bypass Implementation
-** xref:security:security-bypass:configuring-isis-to-use-bypass.adoc[Configuring to use Bypass]
-
diff --git a/core/security/shiro/_adoc/modules/security-shiro/partials/module-nav.adoc b/core/security/shiro/_adoc/modules/security-shiro/partials/module-nav.adoc
deleted file mode 100644
index c639c7a..0000000
--- a/core/security/shiro/_adoc/modules/security-shiro/partials/module-nav.adoc
+++ /dev/null
@@ -1,10 +0,0 @@
-* Shiro Implementation
-
-** xref:security:security-shiro:configuring-isis-to-use-shiro.adoc[Configuring to use Shiro]
-** Realms
-*** xref:security:security-shiro:ini-realm.adoc[INI Realm]
-*** xref:security:security-shiro-realm-jdbc:about.adoc[JDBC Realm]
-*** xref:security:security-shiro-realm-ldap:about.adoc[LDAP Realm]
-** xref:security:security-shiro:enhanced-wildcard-permission.adoc[Enhanced Wildcard Permissions]
-** xref:security:security-shiro:run-as.adoc[Run As]
-** xref:security:security-shiro:shiro-caching.adoc[Shiro Caching]
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/_attributes.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/examples/.gitkeep b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/attachments/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/examples/.gitkeep
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/attachments/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/attachments/.gitkeep b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/examples/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/attachments/.gitkeep
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/examples/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-custom-jdbc-realm.png b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/images/configure-shiro-to-use-custom-jdbc-realm.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-custom-jdbc-realm.png
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/images/configure-shiro-to-use-custom-jdbc-realm.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/nav.adoc b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/nav.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/nav.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/nav.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/pages/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/_attributes.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/pages/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/pages/about.adoc b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/pages/about.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/pages/about.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/pages/about.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/pages/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/partials/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/pages/_attributes.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/partials/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/module-nav.adoc b/core/security/shiro/_adoc/modules/shiro-realm-jdbc/partials/module-nav.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/partials/module-nav.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-jdbc/partials/module-nav.adoc
diff --git a/core/security/bypass/_adoc/modules/security-bypass/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro-realm-ldap/_attributes.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/_attributes.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/_attributes.adoc
diff --git a/core/security/bypass/_adoc/modules/security-bypass/examples/.gitkeep b/core/security/shiro/_adoc/modules/shiro-realm-ldap/attachments/.gitkeep
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/examples/.gitkeep
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/attachments/.gitkeep
diff --git a/core/security/bypass/_adoc/modules/security-bypass/attachments/.gitkeep b/core/security/shiro/_adoc/modules/shiro-realm-ldap/examples/.gitkeep
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/attachments/.gitkeep
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/examples/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-groups.png b/core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-groups.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-groups.png
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-groups.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-partition.png b/core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-mojo-partition.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-partition.png
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-mojo-partition.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png b/core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-mojo-root-dse.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-mojo-root-dse.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-sasl-authentication.png b/core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-sasl-authentication.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-sasl-authentication.png
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-sasl-authentication.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-users.png b/core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-users.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-users.png
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/images/activeds-ldap-users.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-isis-ldap-realm.PNG b/core/security/shiro/_adoc/modules/shiro-realm-ldap/images/configure-shiro-to-use-isis-ldap-realm.PNG
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-isis-ldap-realm.PNG
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/images/configure-shiro-to-use-isis-ldap-realm.PNG
diff --git a/core/security/bypass/_adoc/modules/security-bypass/nav.adoc b/core/security/shiro/_adoc/modules/shiro-realm-ldap/nav.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/nav.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/nav.adoc
diff --git a/core/security/bypass/_adoc/modules/security-bypass/partials/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro-realm-ldap/pages/_attributes.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/partials/_attributes.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/pages/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/pages/about.adoc b/core/security/shiro/_adoc/modules/shiro-realm-ldap/pages/about.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/pages/about.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/pages/about.adoc
diff --git a/core/security/bypass/_adoc/modules/security-bypass/pages/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro-realm-ldap/partials/_attributes.adoc
similarity index 100%
rename from core/security/bypass/_adoc/modules/security-bypass/pages/_attributes.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/partials/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/module-nav.adoc b/core/security/shiro/_adoc/modules/shiro-realm-ldap/partials/module-nav.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/partials/module-nav.adoc
rename to core/security/shiro/_adoc/modules/shiro-realm-ldap/partials/module-nav.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/_attributes.adoc
rename to core/security/shiro/_adoc/modules/shiro/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/examples/.gitkeep b/core/security/shiro/_adoc/modules/shiro/attachments/.gitkeep
similarity index 100%
copy from core/security/shiro/_adoc/modules/security-shiro/examples/.gitkeep
copy to core/security/shiro/_adoc/modules/shiro/attachments/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/security-shiro/examples/.gitkeep b/core/security/shiro/_adoc/modules/shiro/examples/.gitkeep
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/examples/.gitkeep
rename to core/security/shiro/_adoc/modules/shiro/examples/.gitkeep
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-groups.png b/core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-groups.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-groups.png
rename to core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-groups.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-mojo-partition.png b/core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-partition.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-mojo-partition.png
rename to core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-partition.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-mojo-root-dse.png b/core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-mojo-root-dse.png
rename to core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-mojo-root-dse.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-sasl-authentication.png b/core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-sasl-authentication.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-sasl-authentication.png
rename to core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-sasl-authentication.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-users.png b/core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-users.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/activeds-ldap-users.png
rename to core/security/shiro/_adoc/modules/shiro/images/configuration/configuring-shiro/ldap/activeds-ldap-users.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-isis-to-use-shiro.png b/core/security/shiro/_adoc/modules/shiro/images/security/security-apis-impl/configure-isis-to-use-shiro.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-isis-to-use-shiro.png
rename to core/security/shiro/_adoc/modules/shiro/images/security/security-apis-impl/configure-isis-to-use-shiro.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/images/configure-shiro-to-use-custom-jdbc-realm.png b/core/security/shiro/_adoc/modules/shiro/images/security/security-apis-impl/configure-shiro-to-use-custom-jdbc-realm.png
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-jdbc/images/configure-shiro-to-use-custom-jdbc-realm.png
rename to core/security/shiro/_adoc/modules/shiro/images/security/security-apis-impl/configure-shiro-to-use-custom-jdbc-realm.png
diff --git a/core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG b/core/security/shiro/_adoc/modules/shiro/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG
rename to core/security/shiro/_adoc/modules/shiro/images/security/security-apis-impl/configure-shiro-to-use-ini-realm.PNG
diff --git a/core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/configure-shiro-to-use-isis-ldap-realm.PNG b/core/security/shiro/_adoc/modules/shiro/images/security/security-apis-impl/configure-shiro-to-use-isis-ldap-realm.PNG
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro-realm-ldap/images/configure-shiro-to-use-isis-ldap-realm.PNG
rename to core/security/shiro/_adoc/modules/shiro/images/security/security-apis-impl/configure-shiro-to-use-isis-ldap-realm.PNG
diff --git a/core/security/shiro/_adoc/modules/security-shiro/nav.adoc b/core/security/shiro/_adoc/modules/shiro/nav.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/nav.adoc
rename to core/security/shiro/_adoc/modules/shiro/nav.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/partials/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro/pages/_attributes.adoc
similarity index 100%
copy from core/security/shiro/_adoc/modules/security-shiro/partials/_attributes.adoc
copy to core/security/shiro/_adoc/modules/shiro/pages/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/pages/about.adoc b/core/security/shiro/_adoc/modules/shiro/pages/about.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/pages/about.adoc
rename to core/security/shiro/_adoc/modules/shiro/pages/about.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/pages/configuring-isis-to-use-shiro.adoc b/core/security/shiro/_adoc/modules/shiro/pages/configuring-isis-to-use-shiro.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/pages/configuring-isis-to-use-shiro.adoc
rename to core/security/shiro/_adoc/modules/shiro/pages/configuring-isis-to-use-shiro.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/pages/enhanced-wildcard-permission.adoc b/core/security/shiro/_adoc/modules/shiro/pages/enhanced-wildcard-permission.adoc
similarity index 91%
rename from core/security/shiro/_adoc/modules/security-shiro/pages/enhanced-wildcard-permission.adoc
rename to core/security/shiro/_adoc/modules/shiro/pages/enhanced-wildcard-permission.adoc
index 866c46c..e1f4d6c 100644
--- a/core/security/shiro/_adoc/modules/security-shiro/pages/enhanced-wildcard-permission.adoc
+++ b/core/security/shiro/_adoc/modules/shiro/pages/enhanced-wildcard-permission.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-If using the text-based xref:security:security-shiro:ini-realm.adoc[`IniRealm`] or xref:security:security-shiro-realm-ldap:about.adoc[Apache Isis' LDAP realm], then note that Shiro also allows the string representation of the permissions to be mapped (resolved) to alternative `Permission` instances.
+If using the text-based xref:security:shiro:ini-realm.adoc[`IniRealm`] or xref:security:shiro-realm-ldap:about.adoc[Apache Isis' LDAP realm], then note that Shiro also allows the string representation of the permissions to be mapped (resolved) to alternative `Permission` instances.
 Apache Isis provides its own `IsisPermission` which introduces the concept of a "veto".
 
 A vetoing permission is one that prevents access to a feature, rather than grants it.
diff --git a/core/security/shiro/_adoc/modules/security-shiro/pages/ini-realm.adoc b/core/security/shiro/_adoc/modules/shiro/pages/ini-realm.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/pages/ini-realm.adoc
rename to core/security/shiro/_adoc/modules/shiro/pages/ini-realm.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/pages/run-as.adoc b/core/security/shiro/_adoc/modules/shiro/pages/run-as.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/pages/run-as.adoc
rename to core/security/shiro/_adoc/modules/shiro/pages/run-as.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/pages/shiro-caching.adoc b/core/security/shiro/_adoc/modules/shiro/pages/shiro-caching.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/pages/shiro-caching.adoc
rename to core/security/shiro/_adoc/modules/shiro/pages/shiro-caching.adoc
diff --git a/core/security/shiro/_adoc/modules/security-shiro/partials/_attributes.adoc b/core/security/shiro/_adoc/modules/shiro/partials/_attributes.adoc
similarity index 100%
rename from core/security/shiro/_adoc/modules/security-shiro/partials/_attributes.adoc
rename to core/security/shiro/_adoc/modules/shiro/partials/_attributes.adoc
diff --git a/core/security/shiro/_adoc/modules/shiro/partials/module-nav.adoc b/core/security/shiro/_adoc/modules/shiro/partials/module-nav.adoc
new file mode 100644
index 0000000..a209cde
--- /dev/null
+++ b/core/security/shiro/_adoc/modules/shiro/partials/module-nav.adoc
@@ -0,0 +1,10 @@
+* Shiro Implementation
+
+** xref:security:shiro:configuring-isis-to-use-shiro.adoc[Configuring to use Shiro]
+** Realms
+*** xref:security:shiro:ini-realm.adoc[INI Realm]
+*** xref:security:shiro-realm-jdbc:about.adoc[JDBC Realm]
+*** xref:security:shiro-realm-ldap:about.adoc[LDAP Realm]
+** xref:security:shiro:enhanced-wildcard-permission.adoc[Enhanced Wildcard Permissions]
+** xref:security:shiro:run-as.adoc[Run As]
+** xref:security:shiro:shiro-caching.adoc[Shiro Caching]